-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathne-modules-all.min.js
More file actions
14 lines (14 loc) · 399 KB
/
ne-modules-all.min.js
File metadata and controls
14 lines (14 loc) · 399 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function e(e){try{return 0!==angular.element(e).length}catch(e){return!1}}function t(t,i){if(!t||""===t||n.hasOwnProperty(t))throw"textAngular Error: A unique name is required for a Tool Definition";if(i.display&&(""===i.display||!e(i.display))||!i.display&&!i.buttontext&&!i.iconclass)throw'textAngular Error: Tool Definition for "'+t+'" does not have a valid display/iconclass/buttontext value';n[t]=i}angular.module("neContentEditors",[]).factory("neMarkdown",["$document","NeRemarked","neMarked",function(e,t,n){function i(e,t,n){var i=e.inputValue.substring(e.start-t.length,e.start),r=e.inputValue.substring(e.end,e.end+n.length);return i===t&&r===n}function r(e,t,n,r){return r=r||"toggle",function(a){var o="";return e=e||"",t=t||"",a&&a.end>a.start&&"replace"!==r?"remove"===r||"toggle"===r&&i(a,e,t)?(o=a.inputValue.substring(0,a.start-e.length)+a.value+a.inputValue.substring(a.end+t.length,a.inputValue.length),a.select(a.start-e.length,a.end-e.length)):(o=e+a.value+t,o=a.inputValue.substring(0,a.start)+o+a.inputValue.substring(a.end,a.inputValue.length),a.select(a.start+e.length,a.end+e.length)):a&&(n||""===n)&&(o=a.inputValue.substring(0,a.start)+e+n+t+a.inputValue.substring(a.end,a.inputValue.length),a.select(a.start+e.length,a.start+n.length+e.length)),o}}function a(e,t){var n,i,r="\n";for(n=1;n<t+3;n++)for(i=1;i<e+1;i++)r+=1===i?"\n":" | ",r+=1===n?"col "+i:2===n?"-----":"row "+(n-2);return r+"\n"}var o,s={},l={link_list:!1,h1_setext:!1,h2_setext:!1,h_atx_suf:!1,gfm_code:!1,li_bullet:"*",hr_char:"-",indnt_str:" ",bold_char:"*",emph_char:"_",gfm_del:!0,gfm_tbls:!0,tbl_edges:!1,hash_lnks:!1,br_only:!1},u=new t(l);return s.parseHTML=function(e){return u.render(e||"")},o={gfm:!0,tables:!0,breaks:!1,pedantic:!1,sanitize:!1,smartLists:!0,smartypants:!1},n.setOptions(o),s.renderHTML=function(e){return n(e||"")},s.editor={bold:r("**","**","bold text"),italic:r("*","*","italic text"),strikethrough:r("~~","~~","strikethrough text"),h1:r("\n# ","","headline 1"),h2:r("\n## ","","headline 2"),h3:r("\n### ","","headline 3"),h4:r("\n#### ","","headline 4"),h5:r("\n##### ","","headline 5"),h6:r("\n###### ","","headline 6"),ol:r("\n1. ","","numbered list"),ul:r("\n- ","","bulleted list"),indent:r(" ","","","replace"),dedent:r(" ","","","remove"),blocquote:r("\n> ","","blocquote text"),hr:r("\n\n-----\n\n","","","replace"),link:function(e,t,n){return t||""===t||(t=prompt("Please enter link url","http://")),t?r("","[ "+(n||"link text")+" ]( "+t+" )","","replace")(e):""},image:function(e,t){return t||""===t||(t=prompt("Please enter image url","http://")),t?r("","',"","replace")(e):""},table:function(e,t,n){return t=parseInt(t,10),n=parseInt(n,10),t>0&&n>0?r("",a(t,n),"","add")(e):e.inputValue}},s}]).controller("NeMdCtrl",["$scope","neMarkdown",function(e,t){e.editor=t.editor}]).controller("NeWsCtrl",["$scope","neWysiwyg",function(e,t){e.editor=t.editor}]).factory("neWysiwyg",["$document","neModals",function(e,t){function n(e,t){var n,i,r,a,o,s,l,u,c=window.getSelection(),d=e.range;c.removeAllRanges(),d.deleteContents(),n=d.startContainer,i=d.startOffset,d=document.createRange(),3===n.nodeType&&3===t.nodeType?(n.insertData(i,t.nodeValue),d.setEnd(n,i+t.length),d.setStart(n,i+t.length)):(3===n.nodeType?(a=n,n=a.parentNode,o=a.nodeValue,s=o.substr(0,i),l=o.substr(i),u=document.createTextNode(s),r=document.createTextNode(l),n.insertBefore(r,a),n.insertBefore(t,r),n.insertBefore(u,t),n.removeChild(a)):(r=n.childNodes[i],n.insertBefore(t,r)),d.setEnd(r,0),d.setStart(r,0)),c.addRange(d)}function i(t,n){return function(i){return e[0].execCommand(t,!1,n),i.parent.html()}}var r=["#ffffff","#ffccc9","#ffce93","#fffc9e","#ffffc7","#9aff99","#96fffb","#cdffff","#cbcefb","#cfcfcf","#fd6864","#fe996b","#fffe65","#fcff2f","#67fd9a","#38fff8","#68fdff","#9698ed","#c0c0c0","#fe0000","#f8a102","#ffcc67","#f8ff00","#34ff34","#68cbd0","#34cdf9","#6665cd","#9b9b9b","#cb0000","#f56b00","#ffcb2f","#ffc702","#32cb00","#00d2cb","#3166ff","#6434fc","#656565","#9a0000","#ce6301","#cd9934","#999903","#009901","#329a9d","#3531ff","#6200c9","#343434","#680100","#963400","#986536","#646809","#036400","#34696d","#00009b","#303498","#000000","#330001","#643403","#663234","#343300","#013300","#003532","#010066","#340096"],a=[{name:"Extra Small",css:"xx-small",value:"1"},{name:"Small",css:"x-small",value:"2"},{name:"Medium",css:"small",value:"3"},{name:"Large",css:"medium",value:"4"},{name:"Extra Large",css:"large",value:"5"},{name:"Huge",css:"x-large",value:"6"}],o={undo:i("undo"),redo:i("redo"),bold:i("bold"),italic:i("italic"),strikethrough:i("strikeThrough"),underline:i("underline"),quote:i("quote"),h1:i("formatblock","<h1>"),h2:i("formatblock","<h2>"),h3:i("formatblock","<h3>"),h4:i("formatblock","<h4>"),h5:i("formatblock","<h5>"),h6:i("formatblock","<h6>"),fontSizes:a,fontSize:function(e,t){return i("fontsize",t)(e)},colors:r,color:function(e,t){return i("forecolor",t)(e)},bgColor:function(e,t){return i("hilitecolor",t)(e)},justifyLeft:i("justifyleft"),justifyCenter:i("justifycenter"),justifyRight:i("justifyright"),justifyFull:i("justifyfull"),ol:i("insertorderedlist"),ul:i("insertunorderedlist"),indent:i("indent"),outdent:i("outdent"),unlink:i("unlink"),link:function(e,t,i){if(t||""===t||(t=prompt("Please enter link url","http://")),t){return n(e,angular.element('<a href="'+t+'">'+(i||t)+"</a>")[0]),e.parent.html()}return""},image:function(e,t){if(t||""===t||(t=prompt("Please enter image url","http://")),t){return n(e,angular.element('<img src="'+t+'">')[0]),e.parent.html()}return""},table:function(t,i,r){var a,o,s,l,u,c,d,p,f,h;if(r=parseInt(r,10),i=parseInt(i,10),a=e[0],r>0&&i>0){for(o=a.createElement("table"),s=a.createElement("thead"),l=a.createElement("tbody"),c=a.createElement("tr"),f=0;f<i;f++)u=a.createElement("th"),u.innerHTML="col "+(f+1),p=a.createElement("br"),u.appendChild(p),c.appendChild(u);for(s.appendChild(c),h=0;h<r;h++){for(c=a.createElement("tr"),f=0;f<i;f++)d=a.createElement("td"),d.innerHTML="row "+(h+1),p=a.createElement("br"),d.appendChild(p),c.appendChild(d);l.appendChild(c)}o.appendChild(s),o.appendChild(l),n(t,o)}return t.parent.html()},hr:i("inserthorizontalrule")};return this.editor=o,this}]).directive("neContenteditable",["$sce",function(e){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){function r(e){var r=t.html();n.stripBr&&"<br>"===r&&(r=""),(e&&r||!e)&&i.$setViewValue(r)}i&&(n.contenteditable||t.attr("contenteditable","true"),i.$render=function(){t.html(i.$viewValue||"")},t.on("blur keyup change",function(){e.$apply(r)}),r(!0))}}}]).directive("neSelectionModel",[function(){return{restrict:"A",require:"^ngModel",scope:{neSelectionModel:"="},link:function(e,t,n,i){function r(){function t(e,t,n){e.focus(),e.setSelectionRange?e.setSelectionRange(t,n):e.createTextRange&&(e=e.createTextRange(),e.collapse(!0),e.moveEnd("character",n),e.moveStart("character",t),e.select())}function n(){var i=this,r=i.selectionStart,a=i.selectionEnd;e.$apply(function(){e.neSelectionModel={parent:angular.element(i),value:i.value.substring(r,a),inputValue:i.value,start:r,end:a,select:function(e,r){setTimeout(function(){t(i,e,r),n.call(i)},0)}}})}this.setSelection=t,this.getSelection=n}function a(e,t){for(;e;){if(t(e))return e;e=e.parentNode}}function o(t){function n(e,t,n){}function i(){var t=this,i=a(angular.element(t)[0],function(e){return"HTML"===e.tagName}).parentNode,r=i.getSelection(),o=r.getRangeAt(0).startOffset,s=r.getRangeAt(0).endOffset,l=angular.element(t);e.$apply(function(){e.neSelectionModel={range:r.getRangeAt(0),parent:l,value:l.html().substring(o,s),inputValue:l.html(),start:o,startElement:r.getRangeAt(0).startContainer,end:s,endElement:r.getRangeAt(0).endContainer,select:function(e,i,r,a){var o=r||this.startElement,s=a||this.endElement;setTimeout(function(){n(t,e,i,o,s)},0)}}})}this.setSelection=n,this.getSelection=i}if("TEXTAREA"!==t[0].nodeName&&"true"!==n.contenteditable)throw new Error('neSelectionModel directive can be used only on <textarea> or contentEditable="true" element');var s="TEXTAREA"===t[0].nodeName?new r:new o;t.on("mouseup keyup",s.getSelection),e.$on("$destroy",function(){t.unbind("mouseup keyup",s.getSelection),e.neSelectionModel=null})}}}]).factory("NeRemarked",[function(){return function(e){function t(e,i){if(!i)return e;for(var r in e)"Object"==n(i[r])?t(e[r],i[r]):void 0!==i[r]&&(e[r]=i[r])}function n(e){return Object.prototype.toString.call(e).slice(8,-1)}function i(e,t){for(var n="";t-- >0;)n+=e;return n}function r(e){for(var e=e.replace(/^\s\s*/,""),t=/\s/,n=e.length;t.test(e.charAt(--n)););return e.slice(0,n+1)}function a(e,t){var n,i,r;if(!e)return"";for(n="<"+e,r=0;r<t.attributes.length;r++)i=t.attributes.item(r),n+=" "+i.nodeName+'="'+i.nodeValue+'"';return n+">"}function o(e){return e?"</"+e+">":""}function s(e,t){return e.replace(/^/gm,t)}function l(e){return("#text"==e.nodeName?"txt":e.nodeName).toLowerCase()}function u(e,t){var n,i;return t instanceof Array?(n=t[0],i=t[1]):n=i=t,n=n instanceof Function?n.call(this,e):n,i=i instanceof Function?i.call(this,e):i,n+e+i}function c(e){return e.outerHTML||function(e){var t,n=document.createElement("div");return n.appendChild(e.cloneNode(!0)),t=n.innerHTML,n=null,t}(e)}var d,p,f=[],h={link_list:!1,h1_setext:!0,h2_setext:!0,h_atx_suf:!1,gfm_code:!1,li_bullet:"*-+"[0],hr_char:"-_*"[0],indnt_str:[" ","\t"," "][0],bold_char:"*_"[0],emph_char:"*_"[1],gfm_del:!0,gfm_tbls:!0,tbl_edges:!1,hash_lnks:!1,br_only:!1,col_pre:"col ",unsup_tags:{ignore:"script style noscript",inline:"span sup sub i u b center big",block2:"div form fieldset dl header footer address article aside figure hgroup section",block1c:"dt dd caption legend figcaption output",block2c:"canvas audio video iframe"},tag_remap:{i:"em",b:"strong"}};t(h,e),this.render=function(e){var t,n,r,a,o,s,u,c;if(f=[],"string"==typeof e&&(t=e,e=document.createElement("div"),e.innerHTML=t),n=new d.tag(e,null,0),r=n.rend().replace(/^[\t ]+\n/gm,"\n"),h.link_list&&f.length>0){for(r+="\n\n",a=0,o=0;o<f.length;o++)f[o].e.title&&(s=f[o].e.href.length)&&s>a&&(a=s);for(u=0;u<f.length;u++)c=f[u].e.title?i(" ",a+2-f[u].e.href.length)+'"'+f[u].e.title+'"':"",r+=" ["+(+u+1)+"]: "+("a"==l(f[u].e)?f[u].e.href:f[u].e.src)+c+"\n"}return r.replace(/^[\t ]+\n/gm,"\n")},d={},d.tag=klass({wrap:"",lnPfx:"",lnInd:0,init:function(e,t,n){this.e=e,this.p=t,this.i=n,this.c=[],this.tag=l(e),this.initK()},initK:function(){var e,t,n,i,r,a,o,s,u,c,p,g,m,b,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.p&&this.tagr&&this.c[0]instanceof d.blk?this.lnInd=4:this.lnInd=0),null===this.wrapK&&(this.tagr&&this.c[0]instanceof d.blk?this.wrapK="\n":this.wrapK="")},rend:function(){return u.call(this,(this.tagr?a(this.tag,this.e):"")+u.call(this,s(s(this.rendK(),this.lnPfx),i(" ",this.lnInd)),this.wrapK)+(this.tagr?o(this.tag):""),this.wrap)},rendK:function(){var e,t,n,i=this.supr();if(this.p instanceof d.li){if(e=null,!(t=i.match(/^[\t ]+/gm)))return i;for(n=0;n<t.length;n++)(null===e||t[n][0].length<e.length)&&(e=t[n][0]);return i.replace(new RegExp("^"+e),"")}return i}}),d.tblk=d.blk.extend({tagr:!0}),d.cblk=d.blk.extend({wrap:["\n",""]}),d.ctblk=d.cblk.extend({tagr:!0}),d.inl=d.tag.extend({rend:function(){return u.call(this,this.rendK(),this.wrap)}}),d.tinl=d.inl.extend({tagr:!0,rend:function(){return a(this.tag,this.e)+u.call(this,this.rendK(),this.wrap)+o(this.tag)}}),d.p=d.blk.extend({rendK:function(){return this.supr().replace(/^\s+/gm,"")}}),d.list=d.blk.extend({expn:!1,wrap:[function(){return this.p instanceof d.li?"\n":"\n\n"},""]}),d.ul=d.list.extend({}),d.ol=d.list.extend({}),d.li=d.cblk.extend({wrap:["\n",function(e){return this.p.expn||e.match(/\n{2}/gm)?"\n":""}],wrapK:[function(){return"ul"==this.p.tag?h.li_bullet+" ":this.i+1+". "},""],rendK:function(){return this.supr().replace(/\n([^\n])/gm,"\n"+h.indnt_str+"$1")}}),d.hr=d.blk.extend({wrap:["\n\n",i(h.hr_char,3)]}),d.h=d.blk.extend({}),d.h_setext=d.h.extend({}),h.h1_setext&&(d.h1=d.h_setext.extend({wrapK:["",function(e){return"\n"+i("=",e.length)}]})),h.h2_setext&&(d.h2=d.h_setext.extend({wrapK:["",function(e){return"\n"+i("-",e.length)}]})),d.h_atx=d.h.extend({wrapK:[function(e){return i("#",this.tag[1])+" "},function(e){return h.h_atx_suf?" "+i("#",this.tag[1]):""}]}),!h.h1_setext&&(d.h1=d.h_atx.extend({})),!h.h2_setext&&(d.h2=d.h_atx.extend({})),d.h3=d.h_atx.extend({}),d.h4=d.h_atx.extend({}),d.h5=d.h_atx.extend({}),d.h6=d.h_atx.extend({}),d.a=d.inl.extend({lnkid:null,rend:function(){var e=this.rendK(),t=this.e.getAttribute("href"),n=this.e.title?' "'+this.e.title+'"':"";return!t||t==e||"#"==t[0]&&!h.hash_lnks?e:h.link_list?"["+e+"] ["+(this.lnkid+1)+"]":"["+e+"]("+t+n+")"}}),d.img=d.inl.extend({lnkid:null,rend:function(){var e,t=this.e.alt,n=this.e.getAttribute("src");return h.link_list?"!["+t+"] ["+(this.lnkid+1)+"]":(e=this.e.title?' "'+this.e.title+'"':"","")}}),d.em=d.inl.extend({wrap:h.emph_char}),d.del=h.gfm_del?d.inl.extend({wrap:"~~"}):d.tinl.extend(),d.br=d.inl.extend({wrap:["",function(){var e=h.br_only?"<br>":" ";return this.p instanceof d.h?"<br>":e+"\n"}]}),d.strong=d.inl.extend({wrap:i(h.bold_char,2)}),d.blockquote=d.blk.extend({lnPfx:"> ",rend:function(){return this.supr().replace(/>[ \t]$/gm,">")}}),d.pre=d.blk.extend({tagr:!0,wrapK:"\n",lnInd:0}),d.code=d.blk.extend({tagr:!1,wrap:"",wrapK:function(e){return-1!==e.indexOf("`")?"``":"`"},lnInd:0,init:function(e,t,n){if(this.supr(e,t,n),this.p instanceof d.pre)if(this.p.tagr=!1,h.gfm_code){var i=this.e.getAttribute("class");i=(i||"").split(" ")[0],0===i.indexOf("lang-")&&(i=i.substr(5)),this.wrapK=["```"+i+"\n","\n```"]}else this.wrapK="",this.p.lnInd=4}}),d.table=h.gfm_tbls?d.blk.extend({cols:[],init:function(e,t,n){this.supr(e,t,n),this.cols=[]},rend:function(){var e,t,n;for(e=0;e<this.c.length;e++)for(t=0;t<this.c[e].c.length;t++)for(n=0;n<this.c[e].c[t].c.length;n++)this.c[e].c[t].c[n].prep();return this.supr()}}):d.tblk.extend(),d.thead=h.gfm_tbls?d.cblk.extend({wrap:["\n",function(e){var t,n,a,o,s="";for(t=0;t<this.p.cols.length;t++)n=this.p.cols[t],a="c"==n.a[0]?":":" ",o="r"==n.a[0]||"c"==n.a[0]?":":" ",s+=(0==t&&h.tbl_edges?"|":"")+a+i("-",n.w)+o+(t<this.p.cols.length-1||h.tbl_edges?"|":"");return"\n"+r(s)}]}):d.ctblk.extend(),d.tbody=h.gfm_tbls?d.cblk.extend():d.ctblk.extend(),d.tfoot=h.gfm_tbls?d.cblk.extend():d.ctblk.extend(),d.tr=h.gfm_tbls?d.cblk.extend({wrapK:[h.tbl_edges?"| ":"",h.tbl_edges?" |":""]}):d.ctblk.extend(),d.th=h.gfm_tbls?d.inl.extend({guts:null,wrap:[function(){var e,t=this.p.p.p.cols[this.i],n=0==this.i?"":" ",r=t.w-this.guts.length;switch(t.a[0]){case"r":e=i(" ",r);break;case"c":e=i(" ",Math.floor(r/2));break;default:e=""}return n+e},function(){var e,t=this.p.p.p.cols[this.i],n=this.i==this.p.c.length-1?"":" |",r=t.w-this.guts.length;switch(t.a[0]){case"r":e="";break;case"c":e=i(" ",Math.ceil(r/2));break;default:e=i(" ",r)}return e+n}],prep:function(){var e,t;this.guts=this.rendK(),this.rendK=function(){return this.guts},e=this.p.p.p.cols,e[this.i]||(e[this.i]={w:null,a:""}),t=e[this.i],t.w=Math.max(t.w||0,this.guts.length),this.e.align&&(t.a=this.e.align)}}):d.ctblk.extend(),d.td=d.th.extend(),d.txt=d.inl.extend({initK:function(){this.c=this.e.textContent.split(/^/gm)},rendK:function(){var e=this.c.join("").replace(/\r/gm,"");return this.p instanceof d.code||this.p instanceof d.pre||(e=e.replace(/^\s*#/gm,"\\#").replace(/\*/gm,"\\*")),0==this.i&&(e=e.replace(/^\n+/,"")),this.i==this.p.c.length-1&&(e=e.replace(/\n+$/,"")),e}}),d.rawhtml=d.blk.extend({initK:function(){this.guts=c(this.e)},rendK:function(){return this.guts}});for(p in h.unsup_tags)h.unsup_tags[p]=new RegExp("^(?:"+("inline"==p?"a|em|strong|img|code|del|":"")+h.unsup_tags[p].replace(/\s/g,"|")+")$")}}]).factory("neMarked",[function(){return function(){function e(e){this.tokens=[],this.tokens.links={},this.options=e||l.defaults,this.rules=c.normal,this.options.gfm&&(this.options.tables?this.rules=c.tables:this.rules=c.gfm)}function t(e,t){if(this.options=t||l.defaults,this.links=e,this.rules=u.normal,this.renderer=this.options.renderer||new n,!this.links)throw new Error("Tokens array requires a `links` property.");this.options.gfm?this.options.breaks?this.rules=u.breaks:this.rules=u.gfm:this.options.pedantic&&(this.rules=u.pedantic)}function n(){}function i(e){this.tokens=[],this.token=null,this.options=e||l.defaults,this.options.renderer=this.options.renderer||new n,this.renderer=this.options.renderer}function r(e,encode){return e.replace(encode?/&/g:/&(?!#?\w+;)/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function a(e,t){return e=e.source,t=t||"",function n(i,r){return i?(r=r.source||r,r=r.replace(/(^|[^\[])\^/g,"$1"),e=e.replace(i,r),n):new RegExp(e,t)}}function o(){}function s(e){for(var t,n,i=1;i<arguments.length;i++){t=arguments[i];for(n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}function l(t,n,a){var o,u;if(a||"function"==typeof n){a||(a=n,n=null),n=s({},l.defaults,n||{}),o=n.highlight,0;try{u=e.lex(t,n)}catch(e){return a(e)}return u.length,function(){var e,t;try{e=i.parse(u,n)}catch(e){t=e}return n.highlight=o,t?a(t):a(null,e)}()}try{return n&&(n=s({},l.defaults,n)),i.parse(e.lex(t,n),n)}catch(e){if(e.message+="\nPlease report this to https://github.com/chjj/marked.",(n||l.defaults).silent)return"<p>An error occured:</p><pre>"+r(e.message+"",!0)+"</pre>";throw e}}var u,c={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:o,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:o,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:o,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};c.bullet=/(?:[*+-]|\d+\.)/,c.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,c.item=a(c.item,"gm")(/bull/g,c.bullet)(),c.list=a(c.list)(/bull/g,c.bullet)("hr",/\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/)(),c._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|@)\\b",c.html=a(c.html)("comment",/<!--[\s\S]*?-->/)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,c._tag)(),c.paragraph=a(c.paragraph)("hr",c.hr)("heading",c.heading)("lheading",c.lheading)("blockquote",c.blockquote)("tag","<"+c._tag)("def",c.def)(),c.normal=s({},c),c.gfm=s({},c.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/}),c.gfm.paragraph=a(c.paragraph)("(?!","(?!"+c.gfm.fences.source.replace("\\1","\\2")+"|"+c.list.source.replace("\\1","\\3")+"|")(),c.tables=s({},c.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}),e.rules=c,e.lex=function(t,n){return new e(n).lex(t)},e.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},e.prototype.token=function(e,t){for(var n,i,r,a,o,s,l,u,d,e=e.replace(/^ +$/gm,"");e;)if((r=this.rules.newline.exec(e))&&(e=e.substring(r[0].length),r[0].length>1&&this.tokens.push({type:"space"})),r=this.rules.code.exec(e))e=e.substring(r[0].length),r=r[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",text:this.options.pedantic?r:r.replace(/\n+$/,"")});else if(r=this.rules.fences.exec(e))e=e.substring(r[0].length),this.tokens.push({type:"code",lang:r[2],text:r[3]});else if(r=this.rules.heading.exec(e))e=e.substring(r[0].length),this.tokens.push({type:"heading",depth:r[1].length,text:r[2]});else if(t&&(r=this.rules.nptable.exec(e))){for(e=e.substring(r[0].length),s={type:"table",header:r[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:r[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:r[3].replace(/\n$/,"").split("\n")},u=0;u<s.align.length;u++)/^ *-+: *$/.test(s.align[u])?s.align[u]="right":/^ *:-+: *$/.test(s.align[u])?s.align[u]="center":/^ *:-+ *$/.test(s.align[u])?s.align[u]="left":s.align[u]=null;for(u=0;u<s.cells.length;u++)s.cells[u]=s.cells[u].split(/ *\| */);this.tokens.push(s)}else if(r=this.rules.lheading.exec(e))e=e.substring(r[0].length),this.tokens.push({type:"heading",depth:"="===r[2]?1:2,text:r[1]});else if(r=this.rules.hr.exec(e))e=e.substring(r[0].length),this.tokens.push({type:"hr"});else if(r=this.rules.blockquote.exec(e))e=e.substring(r[0].length),this.tokens.push({type:"blockquote_start"}),r=r[0].replace(/^ *> ?/gm,""),this.token(r,t),this.tokens.push({type:"blockquote_end"});else if(r=this.rules.list.exec(e)){for(e=e.substring(r[0].length),a=r[2],this.tokens.push({type:"list_start",ordered:a.length>1}),r=r[0].match(this.rules.item),n=!1,d=r.length,u=0;u<d;u++)s=r[u],l=s.length,s=s.replace(/^ *([*+-]|\d+\.) +/,""),~s.indexOf("\n ")&&(l-=s.length,s=this.options.pedantic?s.replace(/^ {1,4}/gm,""):s.replace(new RegExp("^ {1,"+l+"}","gm"),"")),this.options.smartLists&&u!==d-1&&(o=c.bullet.exec(r[u+1])[0],a===o||a.length>1&&o.length>1||(e=r.slice(u+1).join("\n")+e,u=d-1)),i=n||/\n\n(?!\s*$)/.test(s),u!==d-1&&(n="\n"===s.charAt(s.length-1),i||(i=n)),this.tokens.push({type:i?"loose_item_start":"list_item_start"}),this.token(s,!1),this.tokens.push({type:"list_item_end"});this.tokens.push({type:"list_end"})}else if(r=this.rules.html.exec(e))e=e.substring(r[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:"pre"===r[1]||"script"===r[1]||"style"===r[1],text:r[0]});else if(t&&(r=this.rules.def.exec(e)))e=e.substring(r[0].length),this.tokens.links[r[1].toLowerCase()]={href:r[2],title:r[3]};else if(t&&(r=this.rules.table.exec(e))){for(e=e.substring(r[0].length),s={type:"table",header:r[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:r[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:r[3].replace(/(?: *\| *)?\n$/,"").split("\n")},u=0;u<s.align.length;u++)/^ *-+: *$/.test(s.align[u])?s.align[u]="right":/^ *:-+: *$/.test(s.align[u])?s.align[u]="center":/^ *:-+ *$/.test(s.align[u])?s.align[u]="left":s.align[u]=null;for(u=0;u<s.cells.length;u++)s.cells[u]=s.cells[u].replace(/^ *\| *| *\| *$/g,"").split(/ *\| */);this.tokens.push(s)}else if(t&&(r=this.rules.paragraph.exec(e)))e=e.substring(r[0].length),this.tokens.push({type:"paragraph",text:"\n"===r[1].charAt(r[1].length-1)?r[1].slice(0,-1):r[1]});else if(r=this.rules.text.exec(e))e=e.substring(r[0].length),this.tokens.push({type:"text",text:r[0]});else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0));return this.tokens},u={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:o,tag:/^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:o,text:/^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/},u._inside=/(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/,u._href=/\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/,u.link=a(u.link)("inside",u._inside)("href",u._href)(),u.reflink=a(u.reflink)("inside",u._inside)(),u.normal=s({},u),u.pedantic=s({},u.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),u.gfm=s({},u.normal,{escape:a(u.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:a(u.text)("]|","~]|")("|","|https?://|")()}),u.breaks=s({},u.gfm,{br:a(u.br)("{2,}","*")(),text:a(u.gfm.text)("{2,}","*")()}),t.rules=u,t.output=function(e,n,i){return new t(n,i).output(e)},t.prototype.output=function(e){for(var t,n,i,a,o="";e;)if(a=this.rules.escape.exec(e))e=e.substring(a[0].length),o+=a[1];else if(a=this.rules.autolink.exec(e))e=e.substring(a[0].length),"@"===a[2]?(n=":"===a[1].charAt(6)?this.mangle(a[1].substring(7)):this.mangle(a[1]),i=this.mangle("mailto:")+n):(n=r(a[1]),i=n),o+=this.renderer.link(i,null,n);else if(a=this.rules.url.exec(e))e=e.substring(a[0].length),n=r(a[1]),i=n,o+=this.renderer.link(i,null,n);else if(a=this.rules.tag.exec(e))e=e.substring(a[0].length),o+=this.options.sanitize?r(a[0]):a[0];else if(a=this.rules.link.exec(e))e=e.substring(a[0].length),o+=this.outputLink(a,{href:a[2],title:a[3]});else if((a=this.rules.reflink.exec(e))||(a=this.rules.nolink.exec(e))){if(e=e.substring(a[0].length),t=(a[2]||a[1]).replace(/\s+/g," "),!(t=this.links[t.toLowerCase()])||!t.href){o+=a[0].charAt(0),e=a[0].substring(1)+e;continue}o+=this.outputLink(a,t)}else if(a=this.rules.strong.exec(e))e=e.substring(a[0].length),o+=this.renderer.strong(this.output(a[2]||a[1]));else if(a=this.rules.em.exec(e))e=e.substring(a[0].length),o+=this.renderer.em(this.output(a[2]||a[1]));else if(a=this.rules.code.exec(e))e=e.substring(a[0].length),o+=this.renderer.codespan(r(a[2],!0));else if(a=this.rules.br.exec(e))e=e.substring(a[0].length),o+=this.renderer.br();else if(a=this.rules.del.exec(e))e=e.substring(a[0].length),o+=this.renderer.del(this.output(a[1]));else if(a=this.rules.text.exec(e))e=e.substring(a[0].length),o+=r(this.smartypants(a[0]));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0));return o},t.prototype.outputLink=function(e,t){var n=r(t.href),i=t.title?r(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,i,this.output(e[1])):this.renderer.image(n,i,r(e[1]))},t.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/--/g,"—").replace(/(^|[-\u2014\/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014\/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},t.prototype.mangle=function(e){for(var t,n="",i=e.length,r=0;r<i;r++)t=e.charCodeAt(r),Math.random()>.5&&(t="x"+t.toString(16)),n+="&#"+t+";";return n},n.prototype.code=function(e,t){return t?'<pre><code class="lang-'+t+'">'+r(e)+"\n</code></pre>\n":"<pre><code>"+r(e,!0)+"\n</code></pre>"},n.prototype.blockquote=function(e){return"<blockquote>\n"+e+"</blockquote>\n"},n.prototype.html=function(e){return e},n.prototype.heading=function(e,t,n,i){return"<h"+t+">"+e+"</h"+t+">\n"},n.prototype.hr=function(){return"<hr>\n"},n.prototype.list=function(e,t){var n=t?"ol":"ul";return"<"+n+">\n"+e+"</"+n+">\n"},n.prototype.listitem=function(e){return"<li>"+e+"</li>\n"},n.prototype.paragraph=function(e){return"<p>"+e+"</p>\n"},n.prototype.table=function(e,t){return"<table>\n<thead>\n"+e+"</thead>\n<tbody>\n"+t+"</tbody>\n</table>\n"},n.prototype.tablerow=function(e){return"<tr>\n"+e+"</tr>\n"},n.prototype.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' style="text-align:'+t.align+'">':"<"+n+">")+e+"</"+n+">\n"},n.prototype.strong=function(e){return"<strong>"+e+"</strong>"},n.prototype.em=function(e){return"<em>"+e+"</em>"},n.prototype.codespan=function(e){return"<code>"+e+"</code>"},n.prototype.br=function(){return"<br>"},n.prototype.del=function(e){return"<del>"+e+"</del>"},n.prototype.link=function(e,t,n){var i='<a href="'+e+'"';return t&&(i+=' title="'+t+'"'),i+=">"+n+"</a>"},n.prototype.image=function(e,t,n){var i='<img src="'+e+'" alt="'+n+'"';return t&&(i+=' title="'+t+'"'),i+=">"},i.parse=function(e,t,n){return new i(t,n).parse(e)},i.prototype.parse=function(e){this.inline=new t(e.links,this.options,this.renderer),this.tokens=e.reverse();for(var n="";this.next();)n+=this.tok();return n},i.prototype.next=function(){return this.token=this.tokens.pop()},i.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},i.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},i.prototype.tok=function(){var e,t,n,i,r,a,o,s;switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth);case"code":return this.renderer.code(this.token.text,this.token.lang);case"table":for(e="",t="",r="",n=0;n<this.token.header.length;n++)({header:!0,align:this.token.align[n]}),r+=this.renderer.tablecell(this.inline.output(this.token.header[n]),{header:!0,align:this.token.align[n]});for(e+=this.renderer.tablerow(r),n=0;n<this.token.cells.length;n++){for(i=this.token.cells[n],r="",a=0;a<i.length;a++)r+=this.renderer.tablecell(this.inline.output(i[a]),{header:!1,align:this.token.align[a]});t+=this.renderer.tablerow(r)}return this.renderer.table(e,t);case"blockquote_start":for(t="";"blockquote_end"!==this.next().type;)t+=this.tok();return this.renderer.blockquote(t);case"list_start":for(t="",o=this.token.ordered;"list_end"!==this.next().type;)t+=this.tok();return this.renderer.list(t,o);case"list_item_start":for(t="";"list_item_end"!==this.next().type;)t+="text"===this.token.type?this.parseText():this.tok();return this.renderer.listitem(t);case"loose_item_start":for(t="";"list_item_end"!==this.next().type;)t+=this.tok();return this.renderer.listitem(t);case"html":return s=this.token.pre||this.options.pedantic?this.token.text:this.inline.output(this.token.text),this.renderer.html(s);case"paragraph":return this.renderer.paragraph(this.inline.output(this.token.text));case"text":return this.renderer.paragraph(this.parseText())}},o.exec=o,l.options=l.setOptions=function(e){return s(l.defaults,e),l},l.defaults={gfm:!0,tables:!0,breaks:!1,pedantic:!1,sanitize:!1,smartLists:!1,silent:!1,smartypants:!1,renderer:new n},l.Parser=i,l.parser=i.parse,l.Renderer=n,l.Lexer=e,l.lexer=e.lex,l.InlineLexer=t,l.inlineLexer=t.output,l.parse=l,"object"==typeof exports?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):this.marked=l}.call(function(){return this||("undefined"!=typeof window?window:global)}()),marked}]),function(e,t){"function"==typeof define?define(t):"undefined"!=typeof module?module.exports=t():this.klass=t()}(0,function(){function e(e){return r.call(t(e)?e:function(){},e,1)}function t(e){return typeof e===s}function n(e,t,n){return function(){var i,r=this.supr;return this.supr=n[u][e],i=t.apply(this,arguments),this.supr=r,i}}function i(e,i,r){for(var a in i)i.hasOwnProperty(a)&&(e[a]=t(i[a])&&t(r[u][a])&&l.test(i[a])?n(a,i[a],r):i[a])}function r(e,n){function r(){}function a(){this.init?this.init.apply(this,arguments):(n||l&&o.apply(this,arguments),c.apply(this,arguments))}r[u]=this[u];var o=this,s=new r,l=t(e),c=l?e:this,d=l?{}:e;return a.methods=function(e){return i(s,e,o),a[u]=s,this},
a.methods.call(a,d).prototype.constructor=a,a.extend=arguments.callee,a[u].implement=a.statics=function(e,t){return e="string"==typeof e?function(){var n={};return n[e]=t,n}():e,i(this,e,o),this},a}var a=this,o=a.klass,s="function",l=/xyz/.test(function(){xyz})?/\bsupr\b/:/.*/,u="prototype";return e.noConflict=function(){return a.klass=o,this},a.klass=e,e}),angular.module("neDirectives",["neObject"]).directive("neInitData",[function(){return{priority:1e3,restrict:"AE",compile:function(){return{pre:function(e,t,n){n.neInitData?e.$eval((n.neInitAs?n.neInitAs+"=":"")+n.neInitData):t.html()&&e.$eval((n.neInitAs?n.neInitAs+"=":"")+t.html()),n.neInitDone&&e.$eval(n.neInitDone)}}}}}]).service("neKeyPressHandler",[function(){return function(e,t,n){return function(i,r,a){function o(r){r.which===t&&(i.$apply(function(){i.$eval(a[e])}),n&&r.preventDefault())}var s;s="INPUT"===r[0].nodeName?r:angular.element(document),s.bind("keydown keypress",o),i.$on("$destroy",function(){s.unbind("keydown keypress",o)})}}}]).directive("neKeypressEnter",["neKeyPressHandler",function(e){return e("neKeypressEnter",13,!0)}]).directive("neKeypressEscape",["neKeyPressHandler",function(e){return e("neKeypressEscape",27,!0)}]).directive("neKeypressRight",["neKeyPressHandler",function(e){return e("neKeypressRight",39)}]).directive("neKeypressLeft",["neKeyPressHandler",function(e){return e("neKeypressLeft",37)}]).directive("neKeypressUp",["neKeyPressHandler",function(e){return e("neKeypressUp",38)}]).directive("neKeypressDown",["neKeyPressHandler",function(e){return e("neKeypressDown",40)}]).directive("neKeypressBackspace",["neKeyPressHandler",function(e){return e("neKeypressBackspace",8)}]).directive("neLoadingStart",["$timeout",function(e){return function(t,n,i){"IMG"===n[0].nodeName&&i.$observe("src",function(){e(function(){t.$eval(i.neLoadingStart)})})}}]).directive("neLoadingEnd",["$timeout",function(e){return function(t,n,i){function r(n){e(function(){t.$eval(i.neLoadingEnd)},5),n.preventDefault()}"IMG"===n[0].nodeName&&(n.bind("load",r),t.$on("$destroy",function(){n.unbind("load",r)}))}}]).directive("neStatusIcon",[function(){return{restrict:"A",compile:function(e,t){var n='<div class="right-inner-addon">'+("reverse"!==t.neStatusIcon?'<i class="fa fa-check text-success" ng-show="'+e.attr("ng-model")+'"></i>':"")+("reverse"===t.neStatusIcon?'<i class="fa fa-times text-danger" ng-show="!'+e.attr("ng-model")+'"></i>':"")+"</div>";e.wrap(n),e.removeAttr("status-icon")}}}]).directive("neMatchHrefPath",["$window","$location",function(e,t){return{priority:-100,link:function(n,i,r){function a(){(t.path()+"/").match(new RegExp("^"+o+"[/#?].*"))?i.addClass(l):i.removeClass(l)}var o,s,l=n.$eval(r.neMatchHrefPath)||r.neMatchHrefPath;if(l){if(r.href)try{o=n.$eval(r.href)}catch(e){o=r.href}else if(s=i.find("a")[0],o=s?s.getAttribute("href"):null,s&&o)try{o=n.$eval(o.replace("{{","").replace("}}",""))}catch(e){o=o}o&&-1===o.indexOf("#")?(o=o.replace(/^http:/g,"").replace(/^https:/g,"").replace(e.location.hostname,"").replace(/\/+/g,"/"),(e.location.pathname+"/").match(new RegExp("^"+o+"[/#?].*"))?i.addClass(l):i.removeClass(l)):o&&(o=o.match(/^([^\#]*)\#([^\#\?]*).*$/),o=o?o[o.length-1]:null,o&&n.$on("$locationChangeSuccess",a),a())}}}}]).directive("neFile",[function(){return{restrict:"E",template:'<input type="file" />',replace:!0,require:"ngModel",link:function(e,t,n,i){var r=function(){e.$apply(function(){var e,r;if(n.multiple||""===n.multiple){for(e=[],r=0;r<t[0].files.length;r++)e.push(t[0].files[r]);i.$setViewValue(e)}else i.$setViewValue(t[0].files[0])})};t.attr("accept",n.accept),t.bind("change",r)}}}]).constant("neFileDropAreaSystemFiles",["thumbs.db","desktop.ini",".DS_Store"]).service("neFileDropArea",["$q","neFileDropAreaSystemFiles",function(e,t){return this.bind=function(n,i,r,a){function o(e){e.stopPropagation(),e.preventDefault()}function s(e){o(e),g||(n.addClass("ne-dragover"),g=!0)}function l(e){o(e),n.removeClass("ne-dragover"),g=!1}function u(t){return e(function(e,n){t.file(e,n)})}function c(t){return e(function(e,n){t.readEntries(e,n)})}function d(n,i){return n.isFile?i&&t.indexOf(n.name)>-1?void 0:u(n):n.isDirectory?c(n.createReader()).then(function(t){var n,i,r=[];for(i=0;i<t.length;i++)(n=d(t[i],!0))&&r.push(n);return e.all(r).then(function(e){return[].concat.apply([],e)})}):void 0}function p(t){var n,i,r,a,o=t.dataTransfer.items;if(!o)return e.resolve(t.dataTransfer.files);if(!o[0].webkitGetAsEntry)return e.resolve(t.dataTransfer.files);for(n=[],i=[],a=0;a<o.length;a++)(r=d(o[a].webkitGetAsEntry()))&&i.push(r);return e.all(i).then(function(t){return n=[].concat.apply([],t),e.resolve(n)})}function f(e){l(e),p(e).then(function(e){var t,n=0,a=e[0];a&&(n+=a.fileSize,r?(t=new FileReader,t.onerror=function(e){alert("Cannot read file: "+e.target.error)},t.onload=function(e){return function(e){i(e.target.result)}}(),t[r](a)):i(e))}).catch(a)}var h=n[0],g=!1;return h.addEventListener("dragenter",s,!1),h.addEventListener("dragover",s,!1),h.addEventListener("dragleave",l,!1),h.addEventListener("drop",f,!1),{unbind:function(){g=null,h.removeEventListener("dragenter",s,!1),h.removeEventListener("dragover",s,!1),h.removeEventListener("dragleave",l,!1),h.removeEventListener("drop",f,!1)}}},this}]).directive("neFileDropArea",["neFileDropArea",function(e){return{restrict:"A",scope:{onError:"&neFileDropOnError",onDrop:"&neFileDrop",onDropAlias1:"&neFilesDrop",onDropAlias2:"&ondrop"},link:function(t,n,i,r){var a=i.neFileDropArea?new RegExp(i.neFileDropArea):null,o=e.bind(n,function(e){var n,i=[];for(n=0;n<e.length;n++)a&&!e[n].type.match(a)||i.push(e[n]);i.length&&(t.onDrop({files:i}),t.onDropAlias1({files:i}),t.onDropAlias2({files:i}))},null,function(e){t.onError({error:e})});t.$on("$destroy",o.unbind)}}}]).directive("neCopy",[function(){return{restrict:"A",link:function(e,t,n,i){function r(){e[s]=angular.copy(o)}function a(){var t,n=e[s];for(t in n)!n.hasOwnProperty(t)||"$"===t[0]&&"$"===t[1]||(o[t]=n[t])}var o=e.$eval(n.neCopy),s=e.alias||n.neCopyAlias||"$copy";e.$rollback=r,e.$commit=a,o.$commit=a,o.$rollback=r,e.$rollback()}}}]).directive("neFormChange",[function(){return{restrict:"A",require:"^form",link:function(e,t,n,i){e.$watch(function(){return i.$valid},function(t){e.$valid=e.$isValid=t,e.$eval(n.neFormChange)})}}}]).directive("neBindHtml",["$sce",function(e){return{restrict:"A",link:function(e,t,n){n.$observe("neBindHtml",function(e){t.html(e)})}}}]).filter("html",["$sce",function(e){return function(t){return e.trustAsHtml(t)}}]).filter("trusted",["$sce",function(e){return function(t){return e.trustAsHtml(t)}}]),angular.module("neDragdrop",[]).directive("draggable",[function(){return function(e,t,n){function i(e){return e.preventDefault(),!1}function r(t){var i;return n.drag&&(i=e.$apply(n.drag)),t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",JSON.stringify(i||new Date)),this.classList.add("dragged"),!1}function a(t){return this.classList.remove("dragged"),n.dragEnd&&e.$apply(n.dragEnd),!1}var o=t[0];"false"===n.draggable?(o.addEventListener("dragstart",i),e.$on("$destroy",function(){o.removeEventListener("dragstart",i)})):(o.draggable=!0,o.addEventListener("dragstart",r),o.addEventListener("dragend",a),e.$on("$destroy",function(){o.removeEventListener("dragstart",r),o.removeEventListener("dragend",a)}))}}]).directive("droppable",[function(){return function(e,t,n){function i(t){return t.dataTransfer.dropEffect="move",t.preventDefault&&t.preventDefault(),(!n.droppable||n.droppable&&e.$apply(n.droppable))&&this.classList.add("dragover"),!1}function r(t){return(!n.droppable||n.droppable&&e.$apply(n.droppable))&&this.classList.add("dragover"),!1}function a(e){return this.classList.remove("dragover"),!1}function o(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault(),this.classList.remove("dragover");var i;try{i=JSON.parse(t.dataTransfer.getData("text")+"")}catch(e){}return n.drop&&(!n.droppable||n.droppable&&e.$eval(n.droppable))&&(e.$eval(n.drop,{data:i}),e.$apply()),!1}var s=t[0];s.addEventListener("dragover",i),s.addEventListener("dragenter",r),s.addEventListener("dragleave",a),s.addEventListener("drop",o),e.$on("$destroy",function(){s.removeEventListener("dragover",i),s.removeEventListener("dragenter",r),s.removeEventListener("dragleave",a),s.removeEventListener("drop",o)})}}]),angular.module("neGrid",["neObject","neLocal"]).run(["$templateCache",function(e){e.put("neGrid/pagination.html",'<div ng-if="!paginationDisabled" class="row text-{{fontSize}}"> <div class="col-xs-12 col-sm-9 col-md-10 text-center"> <div class="btn-group btn-group-{{size}}"> <button class="btn btn-default" ng-disabled="grid.prevDisabled" ng-click="grid.setPage(\'first\')"><span class="fa fa-fast-backward"></span></button> <button class="btn btn-default" ng-disabled="grid.prevDisabled" ng-click="grid.setPage(\'prev\')"><span class="fa fa-backward"></span></button> </div> <span> <span ng-if="grid.pagesCount"> {{\'page\'|translate}} </span> <input type="number" class="input-{{size}} width-sm" ng-model="grid.pagination.page" min="1" max="{{grid.pagination.pages||\'\'}}" ne-keypress-enter="grid.setPage(grid.pagination.page)"> <span ng-if="grid.pagesCount"> {{\'of\'|translate}} {{grid.pagesCount}} </span> <span ng-if="grid.pagesCount" class="hidden-xs">({{grid.pagination.count}} {{\'items\'|translate}})</span> </span> <div class="btn-group btn-group-{{size}}"> <button class="btn btn-default" ng-disabled="grid.nextDisabled" ng-click="grid.setPage(\'next\')"><span class="fa fa-forward"></span></button> <button class="btn btn-default" ng-disabled="grid.nextDisabled || !grid.pagesCount" ng-click="grid.setPage(\'last\')"><span class="fa fa-fast-forward"></span></button> </div> </div> <div class="col-sm-3 col-md-2 text-right hidden-xs"> <div class="input-group"> <input class="input-{{size}} width-sm" type="number" ng-model="grid.limit" ne-keypress-enter="grid.setPage(\'first\')" min="1" max="{{grid.maxLimit}}"> <span class="input-group-btn"> <button class="btn btn-default btn-{{size}}" ng-click="grid.setPage(\'first\')"><span class="fa fa-refresh"></span></button> </span> </div> </div></div>')}]).directive("neGridPagination",[function(){return{templateUrl:"neGrid/pagination.html",scope:{grid:"=neGridPagination"},link:function(e,t,n){e.size=n.neGridPaginationSize||"sm",e.fontSize="base","xs"===e.size&&(e.fontSize="sm"),"lg"===e.size&&(e.fontSize="lg")}}}]).directive("neGridUpdateBlur",["$timeout","neObject",function(e,t){return{restrict:"A",require:"?ngModel",link:function(e,n,i,r){function a(e){h=e,h?n.addClass(l):n.removeClass(l)}function o(t){s(),i.afterUpdate&&e.$eval(i.gridAfterUpdate)}function s(){a(!1),g=r.$viewValue}var l,u,c,d,p,f,h,g;if(r){if("ng-dirty"===(l=i.dirtyClass||"is-dirty"))throw new Error('dirtyClass cannot be equal to "ng-dirty", it is angular reserved class name');if(u=(i.neGridUpdateBlur||"").split(","),c=u[0]||"grid",d=u[1]||"item",p=t.deepGet(e,c),f=t.deepGet(e,d),!p)throw new Error('Scope has not grid with name "'+c+'"');if(!f)throw new Error('Scope has not grid item with name "'+d+'"');h=!1,n.on("blur",function(){h&&p.updateItem(f,o)}),n.bind("keydown keypress",function(e){13===e.which&&h&&"INPUT"===n[0].nodeName&&(p.updateItem(f,o),e.preventDefault())}),g="",e.$watch(r.$viewValue,function(){g=r.$viewValue}),r.$viewChangeListeners.push(function(){a(g!==r.$viewValue?!0:!1)})}}}}]).factory("NeGrid",["$timeout","neObject",function(e,t){function n(e){var E,T=[{},n.defaults];for(E=0;E<arguments.length;E++)T.push(arguments[E]);return e=angular.merge.apply(angular,T),this.id=e.id,this.idKey=e.idKey||"id",this.defaultLimit=e.defaultLimit||10,this.limit=e.limit||this.defaultLimit,this.maxLimit=e.maxLimit||100,this.defaultQuery=e.defaultQuery||{},this.defaultSort=e.defaultSort||{},this.interceptLoad=e.interceptLoad||e.beforeLoad||e.loadInterceptor,this.onQuery=e.onQueryChange||e.onQuery||e.onFilter,this.onLoad=e.onLoad,this.onFill=e.onFill||e.onData,this.onSelect=e.onSelect,this.onFocus=e.onFocus,this.onUpdate=e.onUpdate,this.onCreate=e.onCreate,this.onRemove=e.onRemove,this.resource=e.restResource||e.resource,this.getResourceMethod=e.getResourceMethod||e.resourceMethod||("function"==typeof this.resource?this.resource:null)||r,this.autoLoad=e.autoLoad||e.loadOnChange,this.multiSelect=e.multiSelect||e.multiselect||!1,this.silentMode=!1,this.pagination={page:e.page||this.defaultQuery.$page||1},this.page=this.pagination.page,this.pagesCount=1,this.query=t.extend("data",{},e.query||{},{$page:this.page,$limit:this.limit},this.defaultQuery),this.sort=t.extend("data",{},this.defaultSort||{},e.sort||{}),this.items=[],this.disabled=!0,this.doSilent=this.doSilent,this.fillItems=a,this.addItems=o,this.addItem=o,this.appendItems=o,this.appendItem=o,this.prependItems=s,this.prependItem=s,this.setSort=l,this.setSortSilent=i("setSort"),this.setSortBy=u,this.setSortBySilent=i("setSortBy"),this.updateQuery=f,this.updateQuerySilent=i("updateQuery"),this.setQuery=p,this.setQuerySilent=i("setQuery"),this.setFilter=p,this.setFilterSilent=i("setQuery"),this.setPage=d,this.setPageSilent=i("setPage"),this.load=c,this.refresh=c,this.createItem=h,this.updateItem=g,this.refreshItem=m,this.removeItem=b,this.selectItem=w,this.selectAll=$,this.toggleItemSelection=x,this.toggleSelection=k,this.focusItem=v,this.getFocusedItem=y,this.getSelectedItems=S,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,t){if(!this.resource)throw new Error("NeGrid: resource is undefined");return this.resource[e]}function a(e,t){var n=this;return t=t||{},n.items=e,n.pagination=t,n.pagesCount=Math.ceil(t.count/n.limit),t.page<=1?n.prevDisabled=!0:n.prevDisabled=!t.prev,t.spage>=n.pagesCount?n.nextDisabled=!0:n.nextDisabled=!t.next,"function"!=typeof n.onFill||n.silentMode||n.onFill(n.items,n.pagination,n.query),this}function o(e){return e=Array.isArray(e)?e:[e],Array.prototype.push.apply(this.items,e),this}function s(e){return e=Array.isArray(e)?e:[e],Array.prototype.unshift.apply(this.items,e),this}function l(e,t){var n=this;return n.sort=e,n.setPage("first",t)}function u(e,t){if(e){var n={};return n[e]=t||this.sortDir,this.setSort(n)}}function c(e,t){var n=this;return(!n.interceptLoad||n.interceptLoad&&!1!==n.interceptLoad(n.query))&&(n.disabled=!0,n.lastFindReqId=n.getResourceMethod("find")(n.query,function(t,i){n.lastFindReqId&&n.lastFindReqId!==this.requestId||("function"==typeof n.onLoad&&n.onLoad(t,i),n.fillItems(t,i),e&&e(),n.disabled=!1)},t)),n}function d(e,t,n){var i,r;return"function"==typeof arguments[0]&&(t=arguments[0],e=null),i=this,r="number"==typeof e?e:"first"===e?1:"next"===e?i.pagination.page+1:"last"===e?i.pagesCount:"prev"===e?i.pagination.page-1:"refresh"===e||null===e?i.pagination.page||1:1,i.pagesCount&&r>i.pagesCount&&"number"!=typeof e&&(r=i.pagesCount+0),r<=0&&(r=1),i.page=r,i.updateQuery(n),i.autoLoad&&!i.silentMode?i.load(t):(t&&t(),i)}function p(e,n){var i=this;return i.query=t.extend("data",{},i.defaultQuery||{},e||{}),i.setPage(i.query.$page||"first",n,e),i}function f(e){var n,i=this;return e=e||{},i.page=e.$page||i.page,i.limit=e.$limit||i.limit,i.sort=e.$sort||i.sort,i.page&&("number"!=typeof i.page||i.page<=0)&&(i.page=1),!i.limit||i.limit<0?i.limit=i.defaultLimit:i.limit>i.maxLimit&&(i.limit=i.maxLimit),n=t.extend("data",{},e,{$limit:i.limit,$sort:{},$page:i.page}),i.sort&&(n.$sort=i.sort),n.$sort=t.extend("data",{},i.defaultSort||{},n.$sort||{}),0===Object.keys(n.$sort).length&&delete n.$sort,delete i.query.$page,delete i.query.$sort,delete i.query.$limit,i.query=t.extend("data",n,i.query||{}),i.onQuery&&!i.silentMode&&i.onQuery(i.query),i}function h(e,t,n){var i=this;return i.getResourceMethod("create",e)(e,function(n){i.setPage("first",t),"function"==typeof i.onCreate&&i.onCreate(e),i.autoLoad||i.load(t)},n),i}function g(e,n,i){var r=this;return r.getResourceMethod("update",e)(e,function(i){var a=r.items.indexOf(e),o=angular.copy(e);r.items[a]=t.extend("data",r.items[a],i),r.onUpdate&&r.onUpdate(r.items[a],o),n&&n(r.items[a])},i),r}function m(e,n,i){var r=this,a=r.idKey,o={};return o[a]=t.deepGet(e,a),r.getResourceMethod("find",e)(o,function(i,a){var o=r.items.indexOf(e);r.items[o]=t.extend("data",r.items[o],i[0]),n&&n(r.items[o])},i),r}function b(e,t,n){var i=this;return i.getResourceMethod("remove",e)(e,function(n){i.items.splice(i.items.indexOf(e),1),i.onRemove&&i.onRemove(e),t&&t(e)},n),i}function v(e){var t,n=this;if(!0===e.$focused)return n;for(t=0;t<n.items.length;t++)n.items[t].$focused=!1;return e.$focused=!0,n.focusedItem=e,"function"==typeof n.onFocus&&n.onFocus(e),n}function y(){var e,t=this;for(e=0;e<t.items.length;e++)if(!0===t.items[e].$focused)return t.items[e]}function w(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 x(e){return this.selectItem(e)}function $(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 S(){var e,t=this,n=[];for(e=0;e<t.items.length;e++)!0===t.items[e].$selected&&n.push(t.items[e]);return n}return n.defaults={},n.define=n.create=function(e){return new n(e)},n}]),angular.module("neLoading",[]).constant("neLoadingDebounce",350).constant("neLoadingEndDelay",300).factory("neLoading",["$timeout","neLoadingDebounce","neLoadingEndDelay",function(e,t,n){function i(e){var t=0,n=e/100;return t=n>=0&&n<.25?(3*Math.random()+3)/100:n>=.25&&n<.65?3*Math.random()/100:n>=.65&&n<.9?2*Math.random()/100:n>=.9&&n<.99?.005:0,e+Math.ceil(100*t)}var r={requestCount:0,isLoading:function(){return r.requestCount>0},statusTimeout:null,status:0,prevStatus:0,lastStart:(new Date).getTime(),statusListeners:[],fireStatusListeners:function(t){for(var n=0;n<r.statusListeners.length;n++)!function(n){e(function(){r.statusListeners[n](void 0!==t?t:r.status)},0,!1)}(n)},setStatus:function(a){if(r.statusTimeout&&e.cancel(r.statusTimeout),!(a<0)){r.prevStatus=r.status+0,r.status=a;var o=(new Date).getTime();0===r.prevStatus&&a>0&&(r.lastStart=o),o-r.lastStart>t&&r.fireStatusListeners(r.status),r.status>0&&r.status<99?r.statusTimeout=e(function(){r.setStatus(i(r.status))},t,!1):r.status>=100&&(r.status=0,r.prevStatus=0,r.statusTimeout=e(function(){r.setStatus(0),r.fireStatusListeners(0)},n,!1))}},reqStarted:function(e){0===r.status&&r.setStatus(1),r.requestCount++,e&&console.log(e,r.requestCount,r.status)},reqEnded:function(e){r.requestCount>0&&r.requestCount--,e&&console.log(e,r.requestCount,r.status),0===r.requestCount&&r.setStatus(100)}};return r}]).factory("neLoadingInterceptor",["$q","$cacheFactory","neLoading",function(e,t,n){function i(e){var n,i;return!!e&&("GET"!==e.method||!1===e.cache?(e.cached=!1,!1):(n=!0===e.cache?t.get("$http"):e.cache,i=void 0!==n&&void 0!==n.get(e.url),void 0!==e.cached&&i!==e.cached?e.cached:(e.cached=i,i)))}return{request:function(e){return e.ignoreLoading||i(e)||n.reqStarted(),e},response:function(e){return e.config.ignoreLoading||i(e.config)||n.reqEnded(),e},responseError:function(t){return t.config.ignoreLoading||i(t.config)||n.reqEnded(),e.reject(t)}}}]).config(["$httpProvider",function(e){e.interceptors.push("neLoadingInterceptor")}]).controller("NeLoadingCtrl",["$scope","neLoading",function(e,t){t.statusListeners.push(function(t){e.status=t,e.loading=t>0,e.$digest()})}]),angular.module("neLocal",[]).provider("neLocal",[function(){var e="default",t={default:{common:{}}},n="/";return this.translate=function(i){var r,a;return void 0===i||null===i?"":(r=i+"",a=t[e]||{},a.common=a.common||{},(a[n]?a[n][r]:null)||a.common[r]||(t.default[n]?t.default[n][r]:null)||t.default.common[r]||r||"")},this.setPath=function(e){n=e},this.language=function(t){return t&&(e=t),e},this.languages=function(e){return e?t[e]:t},this.getLanguageId=function(){return e},this.getLanguagePath=function(){return n},this.set=this.translations=function(e,n,i,r){if(t[e]=t[e]||{},t[e].common=t[e].common||{},4===arguments.length)t[e][n]=t[e][n]||{},t[e][n][i]=r;else if(3===arguments.length&&angular.isObject(i))t[e][n]=t[e][n]||{},angular.extend(t[e][n],i);else if(3===arguments.length)r=arguments[2],i=arguments[1],t[e].common[i]=r;else{if(2!==arguments.length)throw new Error("Wrong arguments");i=arguments[1];var a=angular.isObject(i.common);angular.extend(a?t[e]:t[e].common,i)}},this.$get=function(){return this},this}]).run(["$rootScope","$location","neLocal",function(e,t,n){e.$on("$routeChangeStart",function(e,i,r){n.setPath(t.path())})}]).filter("neTranslate",["neLocal",function(e){return function(t,n,i){return e.translate(t)}}]).filter("translate",["neLocal",function(e){return function(t,n,i){return e.translate(t)}}]),angular.module("neMenu",[]).factory("NeMenu",["$document","$timeout",function(e,t){function n(e,t){var n,i;if("string"!=typeof e)throw new Error("NeMenu: menu ID is required !");return r[e]?r[e]:(n={id:e},i=angular.merge(this,n,t||{}),i.items=[],r[e]=i,i)}function i(n){t(function(){function i(){t(function(){n.selected=!1,e.unbind("click",i)})}e.bind("click",i)},0,!1)}var r={};return n.prototype.set=function(e,t){var n=this;return n[e]=t,n.onChange&&n.onChange(e,t),n},n.prototype.toggle=function(e){var t=this;return t[e]=!t[e],t.onChange&&t.onChange(e,t[e]),t},n.prototype.select=n.prototype.selectItem=function(e,t){var n,r,a=this;for(t&&(e.onSelect||e.children&&e.children.length)&&(t.preventDefault(),e.selected||i(e)),r=0;r<a.items.length;r++)a.items[r].selected&&(n=a.items[r]),a.items[r]===e?a.items[r].selected=!a.items[r].selected:a.items[r].selected=!1;return a.onSelect&&a.onSelect(e,n),e.onSelect&&e.onSelect(e,n),a},n.prototype.get=n.prototype.getItem=function e(t,n){var i,r,a=this,o=(n?n.children:a.items)||[];for(r=0;r<o.length;r++)if(o[r].id===t)return o[r];for(r=0;r<o.length;r++)if(o[r].children&&(i=e(t,o[r])))return i},n.get=function(e){return r[e]},n}]),angular.module("neModals",[]).factory("neModals",["$timeout","$sce",function(e,t){function n(e){e=e||i.defaults;for(var n in e)this[n]=e[n];return this.id=e.id||"modal_"+Object.keys(i.items).length,this.backdrop=!0,!1===e.backdrop&&(this.backdrop=!1),this.backdropOpacity=this.backdropOpacity||i.defaults.backdropOpacity,this.css=this.css||i.defaults.css,this.zIndex=i.defaults.zIndex,this.showAfterCreate=void 0===this.showAfterCreate||this.showAfterCreate,this.removeOnClose=void 0===this.removeOnClose||this.removeOnClose,this.destroyOnClose=void 0===this.destroyOnClose||this.destroyOnClose,this.html=this.html?t.trustAsHtml(this.html):"",this.include=this.include||this.templateUrl||this.bodyTemplateUrl,this.allowResize=void 0===this.allowResize?i.defaults.allowResize:this.allowResize,this.show=this.open=function(){this.visible||(this.visible=!0,0===i.opened&&angular.element(document.getElementsByTagName("body")).addClass("modal-open"),i.opened++,this.zIndex=i.defaults.zIndex+11*i.opened,i.fireChangeListeners())},this.hide=this.close=function(){this.visible&&(this.visible=!1,i.opened--,this.removeOnClose&&this.destroyOnClose&&i.remove(this.id),0===i.opened&&angular.element(document.getElementsByTagName("body")).removeClass("modal-open"),i.fireChangeListeners(),"function"==typeof this.onClose&&this.onClose())},i.items[this.id]=this,this.showAfterCreate?this.show():i.fireChangeListeners(),this}var i={items:{},defaults:{visible:!1,backdrop:!0,backdropOpacity:.4,css:"",removeOnClose:!1,destroyOnClose:!1,showAfterCreate:!0,title:"modal title",allowResize:!0,zIndex:1040,text:"",html:"",include:"",buttons:[{text:"Cancel",disabled:!1,css:"btn-default",click:function(){}},{text:"Ok",disabled:!1,css:"btn-primary",click:function(){}}]},opened:0,changeListeners:[],fireChangeListeners:function(){for(var t=0;t<this.changeListeners.length;t++)!function(t){e(function(){i.changeListeners[t](i.items)},0,!1)}(t)}};return i.create=function(e){return new n(e)},i.get=function(e){return i.items[e]},i.remove=function(e){delete i.items[e]},i}]).controller("NeModalsCtrl",["$scope","neModals",function(e,t){t.changeListeners.push(function(t){e.modals=t,e.$digest()})}]).directive("neModalsContainer",[function(){return{templateUrl:"neModals/container.html"}}]).run(["$templateCache",function(e){e.put("neModals/container.html",'<div ng-controller="NeModalsCtrl"> <div ng-repeat="(id,modal) in modals"> <div class="modal ng-hide" ng-show="modal.visible" style="z-index:{{modal.zIndex}};"> <div class="modal-dialog {{modal.css}}" ng-class="{\'modal-full\':modal.wide,\'modal-lg\':modal.large||modal.lg,\'modal-xs\':modal.small||modal.xs}"> <div class="modal-content"> <div class="modal-header"> <button class="close" ng-click="modal.hide()"><i class="fa fa-times fa-fw fa-lg"></i></button> <button class="close" ng-if="modal.allowResize" ng-click="modal.wide = !modal.wide"> <i style="font-size:15px;margin-right:5px;" class="fa fa-fw" ng-class="{\'fa-expand\':!modal.wide,\'fa-compress\':modal.wide}"></i> </button> <h4 class="modal-title">{{modal.title|translate}}</h4> </div> <div class="modal-body"> {{modal.text|translate}} <div ng-bind-html="modal.html"></div> <div ng-include="modal.include"></div> </div> <div class="modal-footer" ng-show="modal.buttons"> <button ng-repeat="button in modal.buttons" type="button" ng-disabled="button.disabled" class="{{button.css}}" ng-click="button.click()">{{button.text|translate}}</button> </div> </div> </div> </div> <div class="modal-backdrop in" ng-show="modal.visible && modal.backdrop" ng-style="{\'z-index\':modal.zIndex-10,\'opacity\':modal.opacity}"></div> </div></div>')}]),angular.module("neNotifications",["neLoading"]).factory("neNotifications",["$timeout",function(e){function t(e,t,n,i){2===i.length&&"string"!=typeof i[1]&&(i[1],i[0],"")}var n=this;return n.timeout=3e3,n.queue=[],n.changeListeners=[],n.fireListeners=function(){for(var t=0;t<n.changeListeners.length;t++)!function(t){e(function(){n.changeListeners[t](n.queue)},0,!1)}(t)},n.add=n.show=n.create=function(t,i,r,a,o){function s(){n.remove(this.id)}function l(e){e=e||{},delete e.id;var t=n.getIndex(this.id);return t>-1&&(n.queue[t]=angular.merge(this,e)),n.fireListeners(),this}function u(t){var i,r=this;r.timeoutPromise&&e.cancel(r.timeoutPromise),r.fixed||"number"!=typeof t||(i=r.timeout-((new Date).getTime()-r.showTime),i=i<0?0:i,r.showTime=(new Date).getTime(),r.timeout=i+t,r.timeoutPromise=e(function(){n.remove(r.id)},r.timeout,!1))}var c,d,p,f={};return 4===arguments.length&&"string"!=typeof arguments[3]?(o=arguments[3],a=""):3===arguments.length&&"string"!=typeof arguments[2]?(o=arguments[2],r=arguments[1],i=""):2===arguments.length&&"string"!=typeof arguments[2]?(o=arguments[1],r=arguments[0],i="",t="info"):2===arguments.length&&"string"==typeof arguments[2]?(r=arguments[1],i=""):1===arguments.length&&angular.isObject(arguments[0])&&(f=arguments[0],t=f.type,i=f.title,a=f.icon,r=f.text,o=f.timeout),"error"!==t&&"danger"!==t||(t="danger"),c=(new Date).getTime()+Math.floor(100*Math.random()+1),d=angular.merge(f,{id:f.id||c,type:t,title:i,icon:a,text:r,timeout:0,fixed:!1,close:s,hide:s,destroy:s,update:l,postpone:u}),d.include=f.bodyTemplateUrl||f.include,p=n.getIndex(d.id),p>-1?n.queue[p]=d:n.queue.push(d),n.fireListeners(),!1!==o&&0!==o?(d.timeout=parseInt(o,10),d.showTime=(new Date).getTime(),d.timeoutPromise=e(function(){n.remove(d.id)},d.timeout||n.timeout,!1)):d.fixed=!0,d},n.error=n.danger=n.danger=function(e,i,r){return t(e,i,r,arguments),this.show("error",e,i,"fa fa-exclamation-circle fa-2x",void 0!==r?r:2*n.timeout)},n.success=function(e,n,i){return t(e,n,i,arguments),this.show("success",e,n,"fa fa-check-circle fa-2x",i)},n.warning=function(e,n,i){return t(e,n,i,arguments),this.show("warning",e,n,"fa fa-warning fa-2x",i)},n.info=function(e,n,i){return t(e,n,i,arguments),this.show("info",e,n,"fa fa-info-circle fa-2x",i)},n.getIndex=function(e){for(var t=0;t<n.queue.length;t++)if(n.queue[t].id===e)return t},n.get=function(e){return n.queue[n.getIndex(e)]},n.remove=n.hide=function(e){var t=n.getIndex(e);-1!==t&&(n.queue.splice(t,1),n.fireListeners())},n}]).controller("NeNotificationsCtrl",["$scope","neNotifications",function(e,t){t.changeListeners.push(function(t){e.notifications=t,e.$digest()})}]).directive("neNotificationsContainer",[function(){return{templateUrl:"neNotifications/container.html"}}]).run(["$templateCache",function(e){e.put("neNotifications/container.html",'<div class="notification-container" ng-controller="NeNotificationsCtrl"> <div ng-show="true" class="ng-hide"> <div ng-repeat="n in notifications" class="alert alert-{{n.type}}" ng-class="{expanded:n.expanded}" ng-click="n.fixed=true;n.postpone()" ng-mouseenter="n.postpone()" ng-mouseleave="n.postpone(1000)"> <i class="alert-pin fa fa-thumb-tack" ng-if="n.fixed"></i> <i class="alert-expand fa" ng-class="{\'fa-expand\':!n.expanded,\'fa-compress\':n.expanded}" ng-click="n.expanded=!n.expanded;n.fixed=true"></i> <i class="alert-close fa fa-times" ng-click="n.close()"></i> <table style="width:100%;word-wrap:break-word" class="table-fixed"> <tr> <td style="width:40px"> <i class="{{n.icon}}"></i> </td> <td style="padding:0px 5px"> <div class="notification-content" ng-if="!n.include"> <strong ng-if="n.title"><span ne-bind-html="{{n.title|translate}}"></span><br></strong> <span ne-bind-html="{{n.text|translate}}"></span> </div> <div ng-if="n.include" ng-include="n.include"></div> </td> </tr> </table> </div> <div class="alert alert-default" ng-show="loading" ng-controller="NeLoadingCtrl"> <table style="width:100%"> <tr> <td style="width:40px"> <i class="fa fa-fw fa-spinner fa-spin fa-2x"></i> </td> <td style="padding:0px 5px"> <strong>{{::\'Loading...\'|translate}}</strong> </td> </tr> </table> </div> </div></div>')}]),angular.module("neObject",[]).factory("neObject",["$timeout",function(e){function t(e){var t,n,i;if(!e||"[object Object]"!==Object.prototype.toString.call(e)||e.nodeType||e.setInterval)return!1;if(t=hasOwnProperty.call(e,"constructor"),n=hasOwnProperty.call(e.constructor.prototype,"isPrototypeOf"),e.constructor&&!t&&!n)return!1;for(i in e);return void 0===i||C.call(e,i)}function n(){var e,n,r,a,o,s,l=this.extendReservedInstances,u=this,c=arguments[0]||{},d=1,p=arguments.length,f=!1;for("boolean"!=typeof c&&"data"!==c||(f=c,c=arguments[1]||{},d=2),"object"!=typeof c&&"function"!=typeof c&&(c={});d<p;d++){if(e=arguments[d],i(e,l))return c=e;if(null!==e)for(n in e)if(r=c[n],a=e[n],i(a,l))c[n]=a;else if(c!==a)if(f&&a&&(t(a)||(o=Array.isArray(a)))){if(o){if(o=!1,"data"===f){c[n]=a.slice(0);continue}s=r&&Array.isArray(r)?r:[]}else s=r&&t(r)?r:{};c[n]=u.extend(f,s,a)}else c[n]=a}return c}function i(e,t){for(var n=0;n<t.length;n++)if(e instanceof t[n])return!0;return!1}
function r(e,t,n){var i,a;if(angular.isObject(e)){n=n||"";for(a in e)angular.isObject(e[a])&&r(e[a],t,""===n?a:n+"."+a),i=t(""===n?a:n+"."+a,a,e[a]),void 0===i?delete e[a]:e[a]=i}}function a(e,t,n,i){var r,a=t.split("."),o=e;if("this"===t)"push"===i?e.push(n):e=n.toString();else for(r=0;r<a.length;r++)r>=a.length-1?"push"===i?o[a[r]].push(n):o[a[r]]=n:o[a[r]]=void 0===o[a[r]]||null===o[a[r]]?{}:o[a[r]],o=o[a[r]];return e}function o(e,t){var n,i,r;if((e||!1===e||0===e)&&"function"!=typeof e){if("this"===t)return e;for(n=t.split("."),i=e,r=0;r<n.length;r++){if(!i[n[r]]&&!1!==i[n[r]]&&0!==i[n[r]])return;i=i[n[r]]}if("function"!=typeof i)return i}}function s(e,t){var n,i;if(e=e||{},t=t||"",n=t.split("."),0!==n.length){if(1===n.length)return void delete e[n[0]];for(i=0;i<n.length-1;i++)if(!(e=e[n[i]]))return;delete e[n[n.length-1]]}}function l(e,t,n){var i,r;2===arguments.length?w(e)?(i=e,n=arguments[1]):(n=arguments[1],t=1):(i={},i[e]=t);for(r in i)"asc"===i[r]&&(i[r]=1),"desc"===i[r]&&(i[r]=-1);return n.sort(function(e,t){for(var n in i){if(o(e,n)>o(t,n))return i[n];if(o(e,n)<o(t,n))return-i[n]}return 0}),n}function u(e,t,n){var i,r=[];for(i in e)"$key"!==i&&"$sortIndex"!==i&&e.hasOwnProperty(i)&&(e.$key=i,t&&(e.$sortIndex=o(e[i],t)),r.push(e[i]));return t?l("$sortIndex",n||"asc",r):r}function c(e,t){var n,i,r;if(!angular.isArray(e)||!t)return{};for(n={},r=0;r<e.length;r++)i=o(e[r],t),n[i]=e[r];return n}function d(e){return"[object RegExp]"===Object.prototype.toString.call(e)}function p(e){return e&&e.window===e}function f(e){return e&&e.$evalAsync&&e.$watch}function h(e){if("$"===e[0]&&"$"===e[1])return!0}function g(e,t,n){if(n=n||h,e===t)return!0;if(null===e||null===t)return!1;if(e!==e&&t!==t)return!0;var i,r,a,o=typeof e,s=typeof t;if(o==s&&"object"==o){if(!angular.isArray(e)){if(angular.isDate(e))return!!angular.isDate(t)&&g(e.getTime(),t.getTime(),n);if(d(e))return!!d(t)&&e.toString()==t.toString();if(f(e)||f(t)||p(e)||p(t)||angular.isArray(t)||angular.isDate(t)||d(t))return!1;a=Object.create(null);for(r in e)if(!n(r)&&!angular.isFunction(e[r])){if(!g(e[r],t[r],n))return!1;a[r]=!0}for(r in t)if(!(r in a)&&!n(r)&&angular.isDefined(t[r])&&!angular.isFunction(t[r]))return!1;return!0}if(!angular.isArray(t))return!1;if((i=e.length)==t.length){for(r=0;r<i;r++)if(!g(e[r],t[r],n))return!1;return!0}}return!1}function m(t,n,i){n=angular.isUndefined(n)?0:n,i=!!angular.isUndefined(i)||i;var r;return function(){var a,o;return r&&e.cancel(r),a=this,o=arguments,r=e(function(){r=null,t.apply(a,o)},n,i)}}function b(e,t){var n,i,r,a;if(void 0===t&&(t=!0),"string"==typeof e&&(i=e.match(t?E:S)))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?E:S))?(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(e){}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 w(e){return"[object Object]"===Object.prototype.toString.call(e)}function x(e){return Array.isArray(e)}function $(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}function k(){return $()+$()+"-"+$()+"-"+$()+"-"+$()+"-"+$()+$()+$()}var C=Object.prototype.hasOwnProperty,S=/^(\d{4}|\+\d{6})(?:-(\d{2})(?:-(\d{2})(?:T(\d{2}):(\d{2}):(\d{2})\.(\d{1,})(Z|([\-+])(\d{2}):(\d{2}))?)?)?)?$/,E=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*))(?:Z|(\+|-)([\d|:]*))?$/;return{isObject:w,isArray:x,sortArray:l,extendReservedInstances:[File,FileList,Blob],extend:n,merge:n,setObjValue:a,deepSet:a,getObjValue:o,deepGet:o,deepReplace:r,deepRemove:s,deepEquals:g,deepEqual:g,objectToArray:u,arrayToObject:c,dateStringsToDates:b,fromJson:v,fromJSON:v,removePrefixedProps:y,debounce:m,guid:k}}]),angular.module("neQuery",["neLocal","neObject"]).config(["neLocalProvider",function(e){e.set("default",{$eq:"=",$lt:"<",$lte:"<=",$gt:">",$gte:">=",$regex_exact:"exact match",$regex_contains:"contains",$regex_begins:"begins with",$regex_ends:"ends with",$in:"is in",$ne:"not equal to",$regex_ncontains:"not contains",$regex_nbegins:"not begins with",$regex_nends:"not ends with",$nin:"is not in",$regex:"custom regex",$size:"items count",$exists:"exists",$and:"and",$or:"or",OR:"OR",AND:"AND",choose:"(choose)",qtype_short_number:"0-9",qtype_short_date:"Date",qtype_short_datetime:"Time",qtype_short_boolean:"Y/N",qtype_short_string:"A-Z",qtype_short_array:"[A]",qtype_short_object:"{O}",qtype_number:"Number",qtype_date:"Date",qtype_datetime:"Date & Time",qtype_boolean:"Boolean",qtype_string:"Text",qtype_array:"Array",qtype_object:"Object",qvalue_true:"True",qvalue_false:"False",Search:"Search","Order By":"Order By","choose field":"choose field","type value":"type value","empty value":"empty value"})}]).run(["$templateCache",function(e){e.put("neQuery/query.html",'<div class="visible-inline-block"><div ng-repeat-start="query in query track by $index" class="visible-inline-block" style="position:relative;margin:2px" ng-style="{\'margin-top\':$first ? \'0px\' : \'2px\'}"> <small ng-if="!$first && query.logical===\'OR\' && !query.length">{{query.logical | translate}}<br></small> <div ng-if="!query.length" class="visible-inline-block"> <div class="dropdown visible-inline-block" uib-dropdown keyboard-nav> <button ng-if="query.onlyPredefinedFields" class="btn btn-sm btn-default" ng-disabled="disabled" uib-dropdown-toggle style="width:142px"> <span class="nowrap" ng-if="query.fieldName">{{query.fieldName}}</span><span class="nowrap" ng-if="!query.fieldName">{{::\'choose field\'|translate}}</span> </button> <input ng-if="!query.onlyPredefinedFields" type="text" ng-disabled="disabled" placeholder="{{::\'choose field\'|translate}}" class="input-sm" uib-dropdown-toggle ng-change="query.setFieldByName(query.fieldName);onChange()" ng-model="query.fieldName"/> <ul ng-if="query.fields.filterByName(query.fieldName, query.field.name).length" class="dropdown-menu" style="max-height:250px;overflow:auto"> <li ng-repeat="field in query.fields.filterByName(query.fieldName, query.field.name)" ng-class="{\'active\':(field.name===query.fieldName)}"> <a href="" ng-click="query.setField(field);onChange()">\t\t\t {{field.name}}\t\t\t </a> </li> </ul> </div> <div class="dropdown visible-inline-block" uib-dropdown keyboard-nav> <button ng-disabled="query.field.disableOperator || disabled" class="btn btn-default btn-sm btn-intensive" uib-dropdown-toggle style="width:120px"> <span class="class="nowrap"">{{query.operator | translate}} </span> </button> <ul class="dropdown-menu" style="min-width:210px;overflow:auto"> <li ng-if="!query.field.disableType" class="text-center" style="padding-top:4px"> <div class="btn-group btngroup-xs"> <button class="btn btn-default btn-xs" ng-class="{\'btn-success\':(query.type.name===type)}" style="padding:2px;" uib-tooltip="{{\'qtype_\'+type | translate}}" tooltip-append-to-body="true" ng-repeat="type in query.types" ng-click="query.setType(type);$event.stopPropagation();"> {{\'qtype_short_\'+type | translate}} </button> </div> </li> <li ng-if="!query.field.disableType" class="divider"></li> <li ng-repeat="operator in query.type.operators" ng-if="!query.field.allowedOperatorIndexes || query.field.allowedOperatorIndexes.indexOf($index)>-1" ng-class="{\'active\':(query.operator===operator)}"> <a href="" ng-click="query.setOperator(operator);onChange()">\t\t\t <span>{{operator | translate}}</span>\t\t\t </a> </li> </ul> </div> <div class="visible-inline-block" ne-query-value="query"></div> <div class="btn-group btn-group-xs" ng-if="!disabled"> <button class="btn btn-default" ng-click="query.next(\'AND\');onChange()">{{::\'AND\' | translate}}</button> <button class="btn btn-default" ng-click="query.next(\'OR\');onChange()">{{::\'OR\' | translate}}</button> <button class="btn btn-default" ng-click="query.levelDown();onChange()"><i class="fa fa-fw fa-level-down"></i></button> <button class="btn btn-default" ng-click="close();query.remove();onChange()"><i class="fa fa-fw fa-minus"></i></button> </div> </div> <div ng-if="query.length" class="visible-inline-block" style="position:relative;"> <small>{{ ($first ? \' \' : query.logical) | translate}}<br></small> <div class="btn-group btn-group-xs" style="position:absolute;right:0px;top:1px" ng-if="!disabled"> <button class="btn btn-default" style="border:1px dashed #999;border-right:none;color:#999;border-bottom: 1px solid transparent;" ng-click="query.next(\'AND\')">{{::\'AND\' | translate}}</button> <button class="btn btn-default" style="border:none;border-top:1px dashed #999;color:#999;border-bottom: 1px solid transparent;" ng-click="query.next(\'OR\')">{{::\'OR\' | translate}}</button> <button class="btn btn-default" style="border:1px dashed #999;border-left:none;color:#999;border-bottom: 1px solid transparent;" ng-click="close();query.remove()"><i class="fa fa-minus"></i></button> </div> <div class="query-subquery visible-inline-block" ng-include="\'neQuery/query.html\'" style="border:1px dashed #999;padding:8px;margin:2px 0px;"></div> </div></div><br ng-repeat-end></div>'),e.put("neQuery/date.html",'<input type="text" class="input-sm" placeholder="{{(query.field.isEmptyValue(query.value) ? (query.field.placeholder||\'type value\') : \'empty value\')|translate}}" uib-datepicker-popup is-open="query.value_opened" ng-click="query.value_opened=!query.value_opened" ng-disabled="disabled" ng-model="query.value" ng-change="onChange()">'),e.put("neQuery/datetime.html",'<input type="text" class="input-sm" placeholder="{{(query.field.isEmptyValue(query.value) ? (query.field.placeholder||\'type value\') : \'empty value\')|translate}}" uib-datetimepicker-popup show-seconds="true" is-open="query.value_opened" ng-click="query.value_opened=!query.value_opened" ng-disabled="disabled" ng-model="query.value" ng-change="onChange()">'),e.put("neQuery/number.html",'<input type="number" class="input-sm" placeholder="{{(query.field.isEmptyValue(query.value) ? (query.field.placeholder||\'type value\') : \'empty value\')|translate}}" ng-disabled="disabled" ng-model="query.value" ng-change="onChange()" style="width:142px;">'),e.put("neQuery/list.html",'<select class="input-sm" ng-disabled="disabled" ng-model="query.value" ng-options="(value | translate) for value in query.field.values" ng-change="onChange()" style="width:142px;"></select>'),e.put("neQuery/boolean.html",'<select class="input-sm" ng-disabled="disabled" ng-model="query.value" ng-options="(\'qvalue_\'+value | translate) for value in [true,false]" ng-change="onChange()" style="width:142px;"></select>'),e.put("neQuery/string.html",'<input type="text" class="input-sm" placeholder="{{(query.field.isEmptyValue(query.value) ? (query.field.placeholder||\'type value\') : \'empty value\')|translate}}" ng-disabled="disabled" ng-model="query.value" ng-change="onChange()"/>'),e.put("neQuery/string-suggestions.html",'<div class="dropdown visible-inline-block" uib-dropdown keyboard-nav> <input type="text" class="input-sm" placeholder="{{(query.field.isEmptyValue(query.value) ? (query.field.placeholder||\'type value\') : \'empty value\')|translate}}" uib-dropdown-toggle ng-disabled="disabled" ng-model="query.suggestion" ng-click="(query.field.suggestionMinLength===0 && !query.suggestions) ? query.field.createSuggestions(query, query.suggestion) : null" ng-change="query.page=1;query.field.onlySuggestedValues ? query.value=null : query.value=query.suggestion;query.field.createSuggestions(query, query.suggestion, true);onChange()"> <ul ng-if="query.suggestions.length" class="dropdown-menu" style="max-height:250px;overflow:auto"> <li ng-if="query.field.pagination" class="text-center" style="padding-top:4px"> <button class="btn btn-xs btn-default" ng-disabled="!query.pagination.prev" ng-click="$event.stopPropagation();query.page=(query.page||1)-1;query.field.createSuggestions(query, query.suggestion)"><i class="fa fa-fw fa-backward"></i></button> {{query.page||1}} <button class="btn btn-xs btn-default" ng-disabled="!query.pagination.next" ng-click="$event.stopPropagation();query.page=(query.page||1)+1;query.field.createSuggestions(query, query.suggestion)"><i class="fa fa-fw fa-forward"></i></button> </li> <li ng-if="query.field.pagination" class="divider"></li> <li ng-repeat="value in query.suggestions" ng-class="{\'active\':(value===query.value)}"> <a href="" ng-click="query.value=value.key;query.suggestion=value.name;onChange()">\t\t {{value.name}}\t\t </a> </li> </ul></div>'),e.put("neQuery/disabled.html",'<input type="text" disabled="disabled" class="input-sm" ng-model="query.value">'),e.put("neQuery/sort.html",'<div class="visible-inline-block"><div ng-repeat-start="sort in query.sortBy track by $index" style="display:inline-block;position:relative;margin:2px" ng-style="{\'margin-top\':$first ? \'0px\' : \'2px\'}"> <small>{{::\'Order By\'|translate}}</small> <div class="visible-inline-block"> <div class="dropdown visible-inline-block" uib-dropdown keyboard-nav> <button ng-if="query.onlyPredefinedFields" ng-disabled="disabled" class="btn btn-sm btn-default" uib-dropdown-toggle style="width:142px"> <span class="nowrap" ng-if="sort.fieldName">{{sort.fieldName}}</span><span class="nowrap" ng-if="!sort.fieldName">{{::\'choose field\'|translate}}</span> </button> <input ng-if="!query.onlyPredefinedFields" type="text" ng-disabled="disabled" placeholder="{{::\'choose field\'|translate}}" class="input-sm" uib-dropdown-toggle ng-change="query.setSortByName(sort.fieldName, $index);onChange()" ng-model="sort.fieldName" /> <ul ng-if="query.fields.filterByName(sort.fieldName, sort.name).length" class="dropdown-menu" style="max-height:250px;overflow:auto"> <li ng-repeat="field in query.fields.filterByName(sort.fieldName, sort.name)" ng-class="{\'active\':(field.name===sort.fieldName)}"> <a href="" ng-click="query.setSortField(field,$parent.$index);onChange()"> \t\t\t {{field.name}} \t\t\t</a> </li> </ul> </div> <div class="btn-group btn-group-xs"> <button class="btn btn-default" ng-disabled="disabled" ng-click="query.toggleSortDirection($index);onChange()"> <i class="fa fa-fw" ng-class="{\'fa-sort-amount-asc\':sort.direction===1,\'fa-sort-amount-desc\':sort.direction===-1}"></i> </button> <button class="btn btn-default" ng-disabled="disabled" ng-click="query.addSort($index);onChange()"><i class="fa fa-fw fa-plus"></i></button> <button class="btn btn-default" ng-disabled="disabled" ng-click="query.removeSort($index);onChange()"><i class="fa fa-fw fa-minus"></i></button> </div> </div></div><br ng-repeat-end><button ng-if="!query.sortBy.length" class="btn btn-default btn-sm btn-intensive" ng-disabled="disabled" ng-click="query.addSort();onChange()"><i class="fa fa-fw fa-signal"></i> <span class="hidden-sm">{{::\'Order By\'|translate}}</span></button></div>')}]).directive("neQueryValue",[function(){return{restrict:"A",template:'<div ng-include="query.field.template||query.type.templates[query.operator]||query.type.template||query.templates[query.type.name]||query.templates.disabled"></div>',link:function(e,t,n,i){}}}]).directive("neQuerySearch",[function(){return{restrict:"A",template:'<div class="pull-left" ne-query="query" ne-query-change="onChange()" ne-query-disabled="disabled"></div><div class="pull-left hidden-xs" style="width:20px"> </div><div class="pull-left" ne-query-sort="query" ne-query-sort-change="onChange()" ne-query-sort-disabled="disabled"></div><button ng-disabled="disabled" class="btn btn-primary btn-sm btn-intensive" ng-click="searchClick()" style="margin-left:2px"> <i class="fa fa-fw fa-search"></i> <span class="hidden-sm">{{::\'Search\' | translate}}</span></button>',scope:{query:"=neQuerySearch",searchClick:"&neQuerySearchClick",onQuerySearchChange:"&neQuerySearchChange",querySearchEmpty:"=neQuerySearchEmpty",disabled:"=neQuerySearchDisabled"},link:function(e,t,n,i){var r=!!n.neQuerySearchEmpty;e.onChange=function(){e.query.setDirty(),r&&(e.querySearchEmpty=e.query.isEmpty()),e.onQuerySearchChange&&e.onQuerySearchChange()},r&&(e.querySearchEmpty=e.query.isEmpty())}}}]).directive("neQuery",[function(){return{restrict:"A",templateUrl:"neQuery/query.html",scope:{query:"=neQuery",onQueryChange:"&neQueryChange",queryEmpty:"=neQueryEmpty",disabled:"=neQueryDisabled"},link:function(e,t,n,i){var r=!!n.neQueryEmpty;e.onChange=function(){e.query.setDirty(),r&&(e.queryEmpty=e.query.isQueryEmpty()),e.onQueryChange&&e.onQueryChange()},r&&(e.queryEmpty=e.query.isQueryEmpty())}}}]).directive("neQuerySort",[function(){return{restrict:"A",templateUrl:"neQuery/sort.html",scope:{query:"=neQuerySort",onQuerySortChange:"&neQuerySortChange",querySortEmpty:"=neQuerySortEmpty",disabled:"=neQuerySortDisabled"},link:function(e,t,n,i){var r=!!n.neQuerySortEmpty;e.onChange=function(){e.query.setDirty(),r&&(e.querySortEmpty=e.query.isSortEmpty()),e.onQuerySortChange&&e.onQuerySortChange()},r&&(e.querySortEmpty=e.query.isSortEmpty())}}}]).constant("neQueryConfig",{useRegexBracketsWrap:!1,useStrictDateParser:!0}).factory("NeQuery",["neLocal","neObject","neQueryConfig",function(e,t,n){function i(e){var t,n,i;if(void 0===e)return!1;for(t={"-":!0,"[":!0,"]":!0,"/":!0,"{":!0,"}":!0,"(":!0,")":!0,"*":!0,"+":!0,"?":!0,".":!0,"\\":!0,"^":!0,$:!0,"|":!0},n=!1,i=0;i<e.length;i++)if("\\"===e[i]&&(n=!n),"\\"!==e[i+1]&&t[e[i]]&&!n)return!0;return!1}function r(e){return(e||"").replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function a(e){return(e||"").replace(/\\(?!\\)/g,"")}function o(e){var t,n;if(!e)return{};for(this,t={},t[q]={},n=0;n<e.length;n++)t[q][e[n].key]=e[n].direction;return t}function s(e){var t,n=this,i=[];if(n.sortBy=[],"[object Object]"===Object.prototype.toString.call(e))for(t in e)n.addSort(),n.setSortByName(t,n.sortBy.length-1).direction=e[t];return i}function l(e,t){if(["string","number","boolean"].indexOf(typeof e)>-1)return!0;if(null===t||void 0===t||"function"==typeof t)return!1;if(["string","number","boolean"].indexOf(typeof t)>-1)return!0;for(var n in t)if(void 0!==e[n]&&null!==e[n])return!0;return!1}function u(e,n){var i,r,a,s,c,d,p,f,h,g={};if(g=t.extend(!0,g,e.options),e.length){for(r=[],a=0,s=0;s<e.length;s++)s>0&&"OR"===e[s].logical&&a++,r[a]=r[a]||[],r[a].push(e[s]);if(0===a)for(d=!1,p=r[a],s=0;s<p.length;s++){c=u(p[s],!0);for(f in c)if(void 0!==g[f]&&null!==g[f])if(p[s].field.merge)g=p[s].field.merge(f,c,g);else{if(l(g[f],c[f])){delete g[f],g=z.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,z.OR.build(r))}else e.operator&&e.field&&e.field.key&&(i=angular.copy(e.value),e.type.onBuild&&(i=e.type.onBuild(i)),e.field.isEmptyValue&&e.field.isEmptyValue(i)||void 0!==(i=z[e.operator].build("function"==typeof e.field.onBuild?e.field.onBuild(i):i))&&null!==i&&(e.field.build?(h=e.field.build(e.field.key,i,e),g[h.key||e.field.key]=h.key?h.value:h):g[e.field.key]=i));return n||(g=t.extend(!0,g,o.call(e,e.sortBy))),g}function c(e,t){function n(e,t,n){r=e.append(n),r.type=B[t.typeName],r.value=t.value,r.setFieldByName(t.fieldName,!0),r.resolveValueNames(),r.operator=t.operator}var i,r,a,o,l,u,d,p,f,h=this,g=[];for(a in e)-1===["AND","OR","VALUE"].indexOf(a)&&(a===q?s.call(h,e[a]):z[a]||a[0]!==H&&-1===I.indexOf(a)?g.push(a):h.options[a]=e[a]);for(o=0;o<g.length;o++){for(a=g[o],l=null,u=0;u<h.fields.length;u++)if((h.fields[u].field===a||h.fields[u].match&&a.match(h.fields[u].match))&&h.fields[u].parse){l=h.fields[u].parse;break}if(d={},l&&(d=l(a,e[a],t),d&&d.key?(a=d.key,e[a]=d.value):d&&(e[a]=d),Array.isArray(e[a])))for(p in e[a])c.call(h,e[a][p].value,e[a][p].logical||t);else if(i=(z[a]||z.VALUE).parse(a,e[a])){if(Array.isArray(i))for(f=0;f<i.length;f++)n(h,i[f],0===o&&0===f?t:"AND");else if(i.queries)for(r=null,f=0;f<i.queries.length;f++)1!==g.length||t?r?r.parse(i.queries[f],i.logical):(r=h.append(t),r.parse(i.queries[f],i.logical)):h.parse(i.queries[f],0===f&&t?t:i.logical);else 0===o?n(h,i,t):n(h,i,"AND");d.key&&delete e[d.key]}else d.key&&delete e[d.key]}return h}function d(e){var t,i,r;return"boolean"==typeof e?t="boolean":"number"==typeof e?t="number":e instanceof Date?t=0===e.getHours()&&0===e.getMinutes()&&0===e.getSeconds()&&0===e.getMilliseconds()?"date":"datetime":"string"==typeof e&&(i=e.match(n.useStrictDateParser?U:j),i&&(r=Date.parse(i[0])),isNaN(r)?t="string":(e=new Date(r),t=0===e.getHours()&&0===e.getMinutes()&&0===e.getSeconds()&&0===e.getMilliseconds()?"date":"datetime")),{type:t,value:e}}function p(e){var n,i=[];return i.options={},i.sortBy=[],i.build=function(e){return u.call(this,this,e)},i.parse=function(e,t){return c.call(this,e,t)},i.fill=function(e){return this.splice(0,this.length),this.parse(e),this.parent&&this.parent()||0!==this.length||this.append("AND"),i.runValueNameResolver&&i.runValueNameResolver(),i.onFill&&i.onFill(),i},i.isEmpty=y,i.isQueryEmpty=w,i.isSortEmpty=x,i.isDirty=k,i.setDirty=$,i.clear=v,i.newQuery=p,i.templates=P,i.fields=this.fields,i.types=this.types,i.onlyPredefinedFields=this.onlyPredefinedFields,i.logical=e||"AND",i.append=f,i.next=g,i.levelDown=h,i.remove=m,i.reset=b,i.setFieldByName=C,i.resolveValueNames=S,i.setField=E,i.setOperator=T,i.setType=D,i.addSort=N,i.removeSort=O,i.toggleSortDirection=M,i.setSortByName=R,i.setSortField=A,i.root=i.getRoot=function(){return n?n.getRoot():i},i.parent=i.getParent=function(){return n},i.setParent=function(e){n=e},n||(i.runValueNameResolver=function(){var e=this,n={},i={};e.fields.forEach(function(e){var t,r={};if(i[e.key]=e,e.valueNames){for(t in e.valueNames)null!==e.valueNames[t]&&void 0!==e.valueNames[t]||(r[t]=null);n[e.key]=r,Object.keys(r).length?e.resolveValueNames&&e.resolveValueNames(r,function(t){t=t||{};for(var n in t)e.valueNames[n]=t[n]}):delete n[e.key]}}),e.resolveAllValueNames&&Object.keys(n).length&&e.resolveAllValueNames(n,i,function(n){e.fields.forEach(function(e){n[e.key]&&t.merge(e.valueNames,n[e.key])})})}),i.reset(),i}function f(e){var t=this.newQuery(e);return t.setParent(this),this.push(t),t}function h(e){var t,n,i=this;if(i.parent()&&!(i.parent().length<=1))return t=i.parent().indexOf(i),n=i.next(i.logical),i.parent().splice(t,1),i.logical="AND",i.setParent(n),n.push(i),n}function g(e){var t,n,i=this;if(i.parent())return t=i.parent().indexOf(i),n=this.newQuery(e),n.setParent(i.parent()),i.parent().splice(t+1,0,n),n}function m(){var e,t=this;if(t.parent()){if(!t.parent().parent()&&1===t.parent().length)return t.reset();if(1===t.parent().length)return t.parent().remove();e=t.parent().indexOf(t),t.parent().splice(e,1),t=null}}function b(){var e=this;if(e.fields.length){if(e.field=e.fields[0],e.type=B[e.field.type],!e.type)throw new Error('Field type "'+e.field.type+'" not recognized, please choose one from "'+Object.keys(B).join(", ")+'"');e.fieldName=e.field.name,e.operator=e.type.operators[e.field.operatorIndex||0]}else e.field=e.field||{},e.type=B[e.type||e.types[0]],e.operator=e.type.operators[0];e.value=null}function v(){return this.splice(0,this.length),this.setDirty(!1),this}function y(e){return e=e||this.build(),this.isQueryEmpty(e)&&this.isSortEmpty(e)}function w(e){e=e||this.build();var t=Object.keys(e).length;return 0===t||1===t&&e.hasOwnProperty("$sort")}function x(e){return e=e||this.build(),0===Object.keys(e.$sort||{}).length}function $(e){return this.$dirty=!0,this.$touched=!0,this}function k(){return this.$dirty}function C(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 S(){var e=this,t=e.getRoot(),n=t.fields.filter(function(t){return t.key===(e.field||{}).key})[0];n&&(n.valueNames=n.valueNames||{},Object.defineProperty(e,"suggestion",{get:function(){return n.valueNames[e.value]||e.value},set:function(t){n.valueNames[e.value]=t}}),n.valueNames[e.value]||(e.field.resolveValueName?e.field.resolveValueName(e.value,function(t){if("string"==typeof t)e.suggestion=t,n.valueNames[e.value]=t;else{Array.isArray(t)||(t=[t]);for(var i=0;i<t.length;i++)if(t[i].key===e.value)return e.suggestion=t[i].name,void(n.valueNames[e.value]=t[i].name)}}):n.valueNames[e.value]=null))}function E(e,t){if(this.type.name!==e.type){if(this.type=B[e.type],!this.type)throw new Error('Field type "'+e.type+'" not recognized, please choose one from "'+Object.keys(B).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 T(e){this.type.templates&&this.type.templates[this.operator]!==this.type.templates[e]&&(this.value=null),this.operator=e}function D(e){this.type=B[e],this.operator=this.type.operators[0],this.value=null}function N(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 R(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 A(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 L(n,i){var r,a,o,s,l,u,c,d={};for(1===arguments.length&&(Array.isArray(arguments[0])?(i=arguments[0],n=null):angular.isObject(arguments[0])&&(d=arguments[0],i=d.fields,n=d.name)),i=i||[],r=0;r<i.length;r++){if(i[r].key=i[r].key||i[r].field||i[r].property,i[r].name=e.translate(i[r].name||i[r].key),i[r].nameLower=(i[r].name||"").toLowerCase(),i[r].behaviour&&(a=null,o={},null,"string"==typeof i[r].behaviour?a=i[r].behaviour:(a=Object.keys(i[r].behaviour)[0],o=i[r].behaviour[a]),s=V[a])){l=s.call(i[r],o);for(u in l)i[r][u]=l[u]}i[r].type&&(i[r].disableType=!0),i[r].type=i[r].type||i[r].defaultType||F,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||!(!this.emptyValues&&!this.type.emptyValues)&&(this.emptyValues||this.type.emptyValues).indexOf(e)>-1},i[r].loadSuggestions=i[r].loadSuggestions||i[r].getSuggestions||i[r].suggestions,i[r].onlySuggestedValues=i[r].onlySuggestedValues,i[r].loadSuggestions&&(i[r].resetOnFieldChange=!0,i[r].onSet=i[r].onSet||function(e,t){t?(e.value=null,e.suggestion="",e.suggestions=[]):e.suggestion=e.suggestion||e.value},i[r].template=i[r].template||P.suggestions,i[r].createSuggestions=function(e){function n(t,n){n=n||"",t.page=t.page||e.page||1,t.limit=t.limit||e.limit||10,n.length>=e.suggestionMinLength&&e.loadSuggestions.call(t,n,function(e,n){t.suggestions=e.map(function(e){return{key:e.key||e,name:e.name||e.key||e}}),t.pagination=n,t.page=n.page||t.page,t.limit=n.limit||t.limit})}e.suggestionMinLength=e.suggestionMinLength>=0?e.suggestionMinLength:e.suggestionMinSearchLength>=0?e.suggestionMinSearchLength:3;var i=t.debounce(n,e.suggestionDebounce>=0?e.suggestionDebounce:350);return function(e,t,r){return r?i(e,t):n(e,t)}}(i[r]))}return i.filterByName=_,c=p.call({fields:i,types:Object.keys(B)},"AND"),c.name=n,c.onlyPredefinedFields=d.onlyPredefinedFields,c.append("AND"),c}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"},q="$sort",I=["$limit","$page","$skip","$sort"],H="$",F="string",B={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)}},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}}},j=/^(\d{4}|\+\d{6})(?:-(\d{2})(?:-(\d{2})(?:T(\d{2}):(\d{2}):(\d{2})\.(\d{1,})(Z|([\-+])(\d{2}):(\d{2}))?)?)?)?$/,U=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*))(?:Z|(\+|-)([\d|:]*))?$/,z={AND:{build:function(e){var t,n,i=[];for(n=0;n<(e.length||0);n++)t=u(e[n],!0),Object.keys(t).length&&i.push(t);return i.length?{$and:i}:{}}},OR:{build:function(e){var t,n,i=[];for(n=0;n<(e.length||0);n++)t=u(e[n],!0),Object.keys(t).length&&i.push(t);return i.length?{$or:i}:{}}},VALUE:{parse:function(e,t){var n,i,r=[],a=d(t),o=a.type;if(t=a.value,"[object Object]"===Object.prototype.toString.call(t)){for(i in t)(n=(z[i]||z.VALUE).parse(e,t[i]))&&r.push(n);return r}if(o)return{fieldName:e,typeName:o,operator:"string"===o?"$regex_exact":"$eq",value:t}}},$and:{parse:function(e,t){return Array.isArray(t)?{logical:"AND",queries:t}:null}},$or:{parse:function(e,t){return Array.isArray(t)?{logical:"OR",queries:t}:null}},$eq:{build:function(e){return e},parse:function(e,t){var n=d(t),i=n.type;if(t=n.value,i)return{fieldName:e,typeName:i,operator:"string"===i?"$regex_exact":"$eq",value:t}}},$exists:{build:function(e){return{$exists:e}},parse:function(e,t){if("boolean"==typeof t)return{fieldName:e,typeName:"object",operator:"$exists",value:t}}},$size:{build:function(e){return{$size:e}},parse:function(e,t){if("number"==typeof t)return{fieldName:e,typeName:"array",operator:"$size",value:t}}},$lt:{build:function(e){return{
$lt:e}},parse:function(e,t){var n=d(t),i=n.type;if(t=n.value,"number"===i||"date"===i||"datetime"===i)return{fieldName:e,typeName:i,operator:"$lt",value:t}}},$lte:{build:function(e){return{$lte:e}},parse:function(e,t){var n=d(t),i=n.type;if(t=n.value,"number"===i||"date"===i||"datetime"===i)return{fieldName:e,typeName:i,operator:"$lte",value:t}}},$gt:{build:function(e){return{$gt:e}},parse:function(e,t){var n=d(t),i=n.type;if(t=n.value,"number"===i||"date"===i||"datetime"===i)return{fieldName:e,typeName:i,operator:"$gt",value:t}}},$gte:{build:function(e){return{$gte:e}},parse:function(e,t){var n=d(t),i=n.type;if(t=n.value,"number"===i||"date"===i||"datetime"===i)return{fieldName:e,typeName:i,operator:"$gte",value:t}}},$regex:{build:function(e){return n.useRegexBracketsWrap&&(e="("+e+")"),{$regex:e}},parse:function(e,t){var i,r,a,o;if(n.useRegexBracketsWrap&&"string"==typeof t&&"("===t[0]&&")"===t[t.length-1])t=t.slice(1,t.length-1);else for(o=0;o<B.string.operators.length;o++)if(r=B.string.operators[o],z[r]&&z[r].check&&void 0!==(a=z[r].check(t))){i=r,t=a;break}return{fieldName:e,typeName:"string",operator:i||"$regex",value:t}}},$regex_exact:{build:function(e){return e}},$regex_contains:{build:function(e){return e=r(e),{$regex:".*"+e+".*"}},check:function(e){if(e=(e.match(/^\.\*(.*)\.\*$/)||[])[1],!i(e))return void 0===e?void 0:a(e)}},$regex_ncontains:{build:function(e){return e=e=r(e),{$regex:"^((?!"+e+").)*$"}},check:function(e){if(e=(e.match(/^\^\(\(\?\!(.*)\)\.\)\*\$$/)||[])[1],!i(e))return void 0===e?void 0:a(e)}},$regex_begins:{build:function(e){return e=r(e),{$regex:"^"+e+".*"}},check:function(e){if(e=(e.match(/^\^(.*)\.\*$/)||[])[1],!i(e))return void 0===e?void 0:a(e)}},$regex_nbegins:{build:function(e){return e=r(e),{$regex:"^(?!"+e+").*$"}},check:function(e){if(e=(e.match(/^\^\(\?\!(.*)\)\.\*\$$/)||[])[1],!i(e))return void 0===e?void 0:a(e)}},$regex_ends:{build:function(e){return e=r(e),{$regex:".*"+e+"$"}},check:function(e){if(e=(e.match(/^\.\*(.*)\$$/)||[])[1],!i(e))return void 0===e?void 0:a(e)}},$regex_nends:{build:function(e){return e=r(e),{$regex:"^(?!.*"+e+"$)"}},check:function(e){if(e=(e.match(/^\^\(\?\!\.\*(.*)\$\)$/)||[])[1],!i(e))return void 0===e?void 0:a(e)}},$ne:{build:function(e){return{$ne:e}},parse:function(e,t){var n=d(t),i=n.type;if(t=n.value,i)return{fieldName:e,typeName:i,operator:"$ne",value:t}}},$in:{build:function(e){return"string"==typeof e&&(e=e.replace(/,\s+/g,",").replace(/\s+,/g,",").replace(/^,/,"").replace(/,$/,"").split(",")),{$in:e}},parse:function(e,t){if(Array.isArray(t))return{fieldName:e,typeName:"string",operator:"$in",value:t.join(", ")}}},$nin:{build:function(e){return"string"==typeof e&&(e=e.replace(/,\s+/g,",").replace(/\s+,/g,",").replace(/^,/,"").replace(/,$/,"").split(",")),{$nin:e}},parse:function(e,t){if(Array.isArray(t))return{fieldName:e,typeName:"string",operator:"$nin",value:t.join(", ")}}}},V={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 L.templates=P,L.fieldBehaviours=V,L}]).factory("neQueryTests",["NeQuery","neObject",function(e,t){return function(){function n(e,n,r){var a=i.fill(n).build();t.deepEqual(r||n,a,function(e){return"$sort"===e})?console.log('Query test "'+e+'" - OK'):console.warn('Query test failed "'+e+'", input query do not match built one',r||n,a)}var i=new e;n("simple range query",{field1:{$gte:1,$lte:2}}),n("simple and[1,2]",{field1:"value1",field2:"value2"}),n("simple and[1,2] with $and operator",{$and:[{field1:"value1"},{field2:"value2"}]},{field1:"value1",field2:"value2"}),n("simple or[1,2] with $or operator",{$or:[{field1:"value1"},{field2:"value2"}]}),n("or[ and[1,2], or[1,2], and[1,2] ]",{$and:[{$or:[{field1_or1:"value1_or1"},{field2_or1:"value2_or1"}]},{$or:[{field1_or2:"value1_or2"},{field2_or2:"value2_or2"}]}]}),n("or[ or[1,2], and[1,2], or[1,2] ]",{$or:[{$or:[{field1_or1:"value1_or1"},{field2_or1:"value2_or1"}]},{$and:[{field1_and1:"value1_and1"},{field2_and1:"value2_and1"}]},{$or:[{field1_or2:"value1_or2"},{field2_or2:"value2_or2"}]}]},{$or:[{$or:[{field1_or1:"value1_or1"},{field2_or1:"value2_or1"}]},{field1_and1:"value1_and1",field2_and1:"value2_and1"},{$or:[{field1_or2:"value1_or2"},{field2_or2:"value2_or2"}]}]}),n("and[ or[1,2], and[1,2], or[1,2] ]",{$and:[{$or:[{field1_or1:"value1_or1"},{field2_or1:"value2_or1"}]},{$and:[{field1_and1:"value1_and1"},{field2_and1:"value2_and1"}]},{$or:[{field1_or2:"value1_or2"},{field2_or2:"value2_or2"}]}]},{$and:[{$or:[{field1_or1:"value1_or1"},{field2_or1:"value2_or1"}]},{field1_and1:"value1_and1",field2_and1:"value2_and1"},{$or:[{field1_or2:"value1_or2"},{field2_or2:"value2_or2"}]}]}),n("and[ or[1,2], or[1,2] ]",{$and:[{$or:[{field1_or1:"value1_or1"},{field2_or1:"value2_or1"}]},{$or:[{field1_or2:"value1_or2"},{field2_or2:"value2_or2"}]}]}),n("or[ and[1,2], and[1,2] ]",{$or:[{$and:[{field1_and1:"value1_and1"},{field2_and1:"value2_and1"}]},{$and:[{field1_and2:"value1_and2"},{field2_and2:"value2_and2"}]}]},{$or:[{field1_and1:"value1_and1",field2_and1:"value2_and1"},{field1_and2:"value1_and2",field2_and2:"value2_and2"}]}),n("or[ or[1,range], and[range,1,2], or[range,range] ]",{$or:[{$or:[{field1_or1:"value1_or1"},{field2_or1:{$gt:1,$lt:100}}]},{$and:[{field1_and1:{$gt:1,$lt:100}},{field1_and1:"value1_and1"},{field2_and1:"value2_and1"},{$or:[{field1_and1_or:{$gte:1,$lte:100}},{field2_and1_or:"value2_and1_or"}]}]},{$or:[{field1_or2:{$gte:1,$lte:100}},{field2_or2:{$gte:1,$lte:100}}]}]},{$or:[{$or:[{field1_or1:"value1_or1"},{field2_or1:{$gt:1,$lt:100}}]},{$and:[{field1_and1:{$gt:1}},{field1_and1:{$lt:100}},{field1_and1:"value1_and1"},{field2_and1:"value2_and1"},{$or:[{field1_and1_or:{$gte:1,$lte:100}},{field2_and1_or:"value2_and1_or"}]}]},{$or:[{field1_or2:{$gte:1,$lte:100}},{field2_or2:{$gte:1,$lte:100}}]}]})}}]),angular.module("neRest",["neObject","neNotifications","neLoading"]).config(["$httpProvider",function(e){e.defaults.headers.common["X-Requested-With"]="XMLHttpRequest"}]).factory("NeResourceTransformators.dateStringsToDates",["neObject",function(e){return e.dateStringsToDates}]).factory("NeResourceTransformators.removePrefixedProps",["neObject",function(e){return e.removePrefixedProps}]).factory("NeRestResource",["$http","$timeout","neObject","neNotifications","neLoading","NeResourceTransformators.dateStringsToDates","NeResourceTransformators.removePrefixedProps",function(e,t,n,i,r,a,o){function s(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function l(e,t,n){var i=new RegExp(s(t),"g");return e.replace(i,n)}function u(e){return e=e.indexOf("?")>-1?e.replace(/([^\/])\?/,"$1/?"):e+"/",e.replace(/([^:])(\/){2,}/g,"$1/")}function c(e){var t,n=(e||"").match(/\{([^\{\}]+)/g)||[];for(t=0;t<n.length;t++)n[t]=n[t].substring(1);return n}function d(e){return void 0===e||null===e?"":JSON.stringify(e).replace(/^"/,"").replace(/"$/,"")}function p(e,t,i,r){var a,o,s,c,p,f=this;for(t=u(t||""),a=e?e+"/"+t:t,o=f.options.commands[r].urlParams,p=0;p<o.length;p++)c=n.deepGet(i,o[p]),s="_command"===o[p]?r:void 0===c?"":c,"string"==typeof s&&(s=encodeURIComponent(s).replace(/\//g,"%2F").replace(/\?/g,"%3F").replace(/#/g,"%23")),a=l(a,"{"+o[p]+"}",d(s));return f.options.commands[r].isFile?u(a).replace(/\/$/,""):u(a)}function f(e,t){var n,i,r=this,a="",o=r.options.commands[t],s=r.options,l=o.queryKey||s.queryKey,u=o.urlParams;if(l)return Object.keys(e).length?"?"+l+"="+JSON.stringify(e):"";for(n in e)if(e.hasOwnProperty(n)&&-1===u.indexOf(n))if(Array.isArray(e[n]))for(i=0;i<e[n].length;i++)a+="&"+n+"="+d(e[n][i]);else void 0!==e[n]&&(a+="&"+n+"="+d(e[n]));return a?"?"+a.substring(1):""}function h(e,t,i,r){var a,o,s=e.commands[t],l=s.dataKey||e.dataKey,u=s.resourceKey||e.resourceKey,c=s.idKey||e.idKey;return r?r=n.deepGet(r,u):i&&(a=n.deepGet(i,l),r=n.deepGet(a,u)),r&&void 0!==(o=n.deepGet(r,c))&&(r.id=o),r}function g(e,t,i){var r,a,o=e.commands[t],s=(o.isList,o.dataKey||e.dataKey),l=o.resourceListKey||e.resourceListKey,u=n.deepGet(i,s);if(l&&(u=n.deepGet(u,l)),r=[],Array.isArray(u))for(a=0;a<u.length;a++)r.push(h(e,t,null,u[a]));return r}function m(e,t,i,r){var a=e.commands[t],o=a.queryPageKey||e.queryPageKey,s={count:n.deepGet(i,a.paginationCountKey||e.paginationCountKey)||0,page:n.deepGet(i,a.paginationPageKey||e.paginationPageKey)||n.deepGet(r,o)||0,pages:n.deepGet(i,a.paginationPagesCountKey||e.paginationPagesCountKey)||0,next:n.deepGet(i,a.paginationHasNextKey||e.paginationHasNextKey),prev:n.deepGet(i,a.paginationHasPrevKey||e.paginationHasPrevKey)};return void 0===s.page||void 0===s.pages||void 0!==s.next&&void 0!==s.prev||(s.next=s.page<s.pages,s.prev=s.page>1),s}function b(e,t,i,r){var a,o,s=e.commands[t],l=s.additionalDataKeys||e.additionalDataKeys;for(o in l)void 0!==(a=n.deepGet(i,o))&&n.deepSet(r,l[o],a);return r}function v(e,t){var n,i=[];for(n=2;n<arguments.length;n++)i.push(arguments[n]);for(n=0;n<t.length;n++)if("function"==typeof t[n]&&!0===t[n].apply(e,i))return}function y(e,t,n,i,r){return function(e){var a,o=e.config,s=n.commands[i],l=S(C(e.data),s.transformResponse),u=e.status,c=e.headers,d=s.isList;d?(a=g(n,i,l)||[],a.pagination=m(n,i,l,t)):a=h(n,i,l),a=b(n,i,l,a),v(o,[s.onData,n.onData],a,(a||{}).pagination,l,u,c,d,i),v(o,r,a,(a||{}).pagination,l,u,c)}}function w(e,t,i,r,a){return function(e){var t=e.config,o=i.commands[r],s=S(C(e.data),o.transformResponse),l=e.status,u=e.headers,c=a.concat([(o.responseErrors||{})[l]||(o.responseErrors||{}).default,i.responseErrors[l]||i.responseErrors.default]),d=o.errorKey||i.errorKey;v(t,c,n.deepGet(s,d),l,u,e.data)}}function x(e,n,i,a,o,s){function l(t,s){var l,u,c,d;if(t=t||{},l=t.getResponseHeader("content-type"),u=t.responseText,c=t.status?parseInt(t.status):0,l&&"application/json"===l.substring(0,16))try{u=JSON.parse(t.responseText)}catch(e){c=0}d={data:u,status:c,headers:t.headers,httpOpts:{}},f("removeEventListener"),$||r.reqEnded(),c>=200&&c<=299?y(i,n,g,e,a)(d):w(i,n,g,e,o)(d)}function u(e){l(e.target,"load")}function c(e){l(e.target,"error")}function d(e){l(e.target,"abort")}function p(e){s&&(e.lengthComputable?v(i,s,Math.ceil(100*e.loaded/e.total)):v(i,s,50))}function f(e){T[e]("load",u,!1),T[e]("error",c,!1),T[e]("abort",d,!1),T.upload[e]("progress",p,!1)}var h,g=this.options,m=i.url,b=i.headers,x=i.data,$=i.ignoreLoading,k=new FormData;for(h in x)x[h]instanceof Blob||x[h]instanceof File?k.append(h,x[h],x[h].name):k.append(h,x[h]);t(function(){f("addEventListener"),$||r.reqStarted(),T.open("POST",m,!0);for(var e in b)"content-type"!==e.toLowerCase()&&"content-length"!==e.toLowerCase()&&T.setRequestHeader(e,b[e]);T.send(k)})}function $(){var e,t,n,i,r=[{},$.defaults];for(e=0;e<arguments.length;e++)r.push(arguments[e]);t=angular.merge.apply(angular,r),t.baseUrl=u(t.baseUrl),n=this,n.options=t;for(i in t.commands)t.commands[i].transformRequest=angular.merge({},t.transformRequest,t.commands[i].transformRequest||{}),t.commands[i].transformResponse=angular.merge({},t.transformResponse,t.commands[i].transformResponse||{}),n[i]=function(e){return function(){var t,i=[e];for(t=0;t<arguments.length;t++)i.push(arguments[t]);return n.command.apply(n,i)}}(i);return n}function k(e,t,n,i,r){return"$page"!==t&&(e=r.deepSet(e,t,e.$page),delete e.$page),"$limit"!==n&&(e=r.deepSet(e,n,e.$limit),delete e.$limit),"$sort"!==i&&(e=r.deepSet(e,i,e.$sort),delete e.$sort),e}function C(e){var t=e;return"[object Object]"===Object.prototype.toString.call(e)&&(t=n.extend(!0,{},e)),Array.isArray(e)&&(t=n.extend(!0,[],e)),t}function S(e,t){t=t||{};for(var n in t)$.dataTransformators[n]&&$.dataTransformators[n](e,t[n]);return e}var E={baseUrl:"/yoururl",urlEndSlash:!1,headers:{"Content-Type":"application/json"},dataKey:"data",resourceListKey:"this",resourceKey:"this",idKey:"id",errorKey:"data",paginationCountKey:"pagination.count",paginationPageKey:"pagination.page",paginationPagesCountKey:"pagination.pages",paginationHasNextKey:"pagination.next",paginationHasPrevKey:"pagination.prev",additionalDataKeys:{},responseErrors:{400:function(e,t,n){var r,a=e;if(angular.isObject(e)){a="";for(r in e)a+=r+": "+e[r]+", "}i.error("Validation Failed",a)},403:function(e,t,n){i.error("Access Denied","Try logout and login again, please")},404:function(e,t,n){i.error("Document or his version not found","Try refresh page, please")},409:function(e,t,n){i.error(e)},default:function(e,t,n){i.error("Connection Failed","Try later, please")}},defaultQuery:{},urlBuilder:p,queryStringBuilder:f,queryKey:null,queryPageKey:"$page",queryLimitKey:"$limit",querySortKey:"$sort",transformRequest:{removePrefixedProps:"$"},transformResponse:{dateStringsToDates:!0},commands:{one:{method:"GET",url:"/{id}"},all:{method:"GET",isList:!0},find:{method:"GET",isList:!0},create:{method:"POST",url:"/{id}"},update:{method:"PUT",url:"/{id}"},remove:{method:"DELETE",url:"/{id}"}}},T=function(){try{return new XMLHttpRequest}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(e){}throw new Error("This browser does not support XMLHttpRequest.")}();return $.defaults=E,$.define=$.create=function(e){return new $(e)},$.dataTransformators={dateStringsToDates:a,removePrefixedProps:o},$.prototype.command=function(t,i,r,a,o,s){var l,u,d,p,f,h,g,m,b,v,$,E,T,D,N,O,M,R,A,_,L,P,q,I,H,F,B,j=this;if(!j.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=j.options,d=u.commands[t],p=("string"==typeof d.baseUrl?d.baseUrl:u.baseUrl)||"",f=(d.method||"GET").toLowerCase(),h=d.responseType||u.responseType,g="boolean"==typeof d.body?d.body:["options","post","post-multipart","upload","put","delete"].indexOf(f)>-1,m=d.headers||u.headers,b=("string"==typeof d.url?d.url:u.url)||"",v=d.urlBuilder||u.urlBuilder,$=d.urlEndSlash||u.urlEndSlash,E=d.queryStringBuilder||u.queryStringBuilder,T=d.defaultQuery||u.defaultQuery,D=void 0!==d.ignoreLoading?d.ignoreLoading:u.ignoreLoading,N=d.transformRequest,O=d.idKey||u.idKey,M=d.queryPageKey||u.queryPageKey,R=d.queryLimitKey||u.queryLimitKey,A=d.querySortKey||u.querySortKey,u.commands[t].urlParams=d.urlParams||c(b),null===r&&g&&angular.isObject(i)?(r=arguments[1],i=null,l={}):(l={},l=!i||"string"!=typeof i&&"number"!=typeof i?i:n.deepSet(l,O,i),l=angular.merge({},T,l||{})),0===l.$page)throw new Error("NeRestResource: query.$page is equal to zero, must be greater");return l=C(l),r&&(r=C(r)),l=k(l,M,R,A,n),r&&(r=k(r,M,R,A,n)),_=[a,d.onSuccess,u.onSuccess],L=[o,d.onError,u.onError],P=[s,d.onProgress,u.onProgress],q=angular.merge({},r||{},l||{}),I=v.call(j,p,b,q,t),$&&-1===I.indexOf("?")&&(I+="/"),H=E.call(j,l,t),I.indexOf("?")>-1&&0===H.indexOf("?")&&(H="&"+H.substring(1)),F=n.guid(),B={url:I+H,method:f,data:S(r,N),headers:"function"==typeof m?m(u.headers,r,t,f,I+H):m,ignoreLoading:D,requestId:F,responseType:h},"post-multipart"===f||"upload"===f?x.call(j,t,l,B,_,L,P):e(B).then(y(B,l,u,t,_),w(B,l,u,t,L)),F},$}]),angular.module("neState",["ngCookies"]).factory("NeStateService",["$timeout","$location","$rootScope","$cookies","neObject",function(e,t,n,i,r){function a(e){return window.btoa(e)}function o(e){return window.atob(e)}function s(e){return e=e||{},angular.merge(this,{},d,e),this.history={},this.changeListeners=[],this}function l(e){return function(t){var n,i;if(!this.history[t])throw new Error('StateService: there is no registered state with id "'+t+'"');return n=this.getCurrentState(t),i=this.history[t].currentStateIndex+e,i<0&&(i=0),i>=this.history[t].length&&(i=this.history[t].length?this.history[t].length-1:0),this.history[t].currentStateIndex=i,n===this.getCurrentState(t)?this:this.fireChange(t,n)}}var u={encrypt:!1,prefix:"q",parser:function(e){var n=this.prefix,i=this.encrypt;e=e||t.search()[n];try{return i&&(e=o(e)),r.fromJson(e||"{}")||{}}catch(e){}return{}},builder:function(e){function t(t,n){return e[t]?Object.keys(e[t]).length?n:void 0:n}var n=(this.prefix,this.encrypt),i=JSON.stringify(e,t);return n&&(i=a(i)),i},autoUpdate:!1,autoFill:!1,sync:!1,_unbinders:{},init:function(e,t){var i=this;(i.autoFill||i.sync)&&(t&&(i._unbinders[t]={routeUpdate:n.$on("$routeUpdate",function(){i.fill(e,t)}),routeChangeSuccess:n.$on("$routeChangeSuccess",function(){i.fill(e,t)})}),i.fill(e,t))},destroy:function(e,t){return this.unbind(e,t)},unbind:function(e,t){var n,i,r=this,a=t?[t]:Object.keys(r._unbinders);for(n=0;n<a.length;n++)i=a[n],r._unbinders[i]&&(r._unbinders[i].routeUpdate(),r._unbinders[i].routeChangeSuccess())},fill:function(n,i){var r=this,a=t.search()[r.prefix],o=r.parser(a)||{};e(function(){if(i)n.change(i,o[i]||{},!0);else for(var e in n.history)n.change(e,o[e]||{},!0)})},update:function(e,n){var i,r=this;(r.autoUpdate||r.sync)&&(i=r.builder(e.getCurrentState()),t.search(r.prefix,i))}},c={prefix:"appState",path:"/",secure:!1,autoUpdate:!1,autoFill:!1,sync:!1,init:function(e,t){},destroy:function(e,t){},unbind:function(e,t){},fill:function(t,n){var r=this,a=i.getObject(r.prefix)||{};e(function(){if(n)t.change(n,a[n]||{},!0);else for(var e in t.history)t.change(e,a[e]||{},!0)})},update:function(e,t){var n=this;(n.autoUpdate||n.sync)&&i.putObject(n.prefix,e.getCurrentState(),{domain:n.domain,expires:n.expires,path:n.path,secure:n.secure})}},d={maxHistoryStates:5,store:u};return s.locationStore=u,s.cookiesStore=c,s.prototype.create=s.prototype.register=function(e,t){var n,i;return t=t||{},n=this,n.history[e]?n.history[e]:(i=[],i.maxHistoryStates=t.maxHistoryStates||n.maxHistoryStates,"location"===t.store&&(t.store=u),"cookies"===t.store&&(t.store=c),i.store=angular.merge({},n.store,t.store||{}),i.changeListeners=[],i.currentStateIndex=-1,n.history[e]=i,n.history[e].store.init(n,e),n.history[e])},s.prototype.changeState=s.prototype.change=function(e,t,n){var i,a,o,s;if(!angular.isObject(t))throw new Error('StateService: cannot change state, value have to be object and is "'+t+'"');return i=this,i.history[e]=i.history[e]||i.register(e),a=i.history[e].currentStateIndex,o=i.history[e].length?i.history[e].length-1-a:0,i.history[e].length>0&&r.deepEquals(i.history[e][a],t)?i:(i.history[e].splice(a+1,o),i.history[e].push(angular.merge({},t)),i.history[e].length>i.history[e].maxHistoryStates?i.history[e].splice(0,1):i.history[e].currentStateIndex++,n||i.history[e].store.update(i,e),s=n,i.fireChange(e,null,s))},s.prototype.updateState=s.prototype.update=function(e,t){var n,i;if(!angular.isObject(t))throw new Error('StateService: cannot change state, value have to be object and is "'+t+'"');return n=this,n.history[e]=n.history[e]||n.register(e),n.history[e].length?(i=n.history[e].currentStateIndex,n.history[e][i]=angular.merge({},t),n):n},s.prototype.fireChange=function(e,t,n){var i,r,a,o;if(!this.history[e])throw new Error('StateService: there is no registered state with id "'+e+'"');for(i=this.history[e].currentStateIndex,r=this.history[e].changeListeners,t=t||this.getPrevState(e)||{},a=this.getCurrentState(e)||{},o=0;o<r.length;o++)r[o](a,t,n,i);for(o=0;o<this.changeListeners.length;o++)this.changeListeners[o](e,a,t,n,i);return this},s.prototype.watch=s.prototype.onChange=function(e,t){var n=this;return 1===arguments.length&&(t=arguments[0],e=null),e?(n.history[e]=n.history[e]||n.register(e),n.history[e].changeListeners.push(t)):n.changeListeners.push(t),n},s.prototype.unWatch=s.prototype.unbindChange=s.prototype.offChange=function(e,t){1===arguments.length&&(t=arguments[0],e=null);var n;if(e){if(!this.history[e])throw new Error('StateService: there is no registered state with id "'+e+'"');n=this.history[e].changeListeners.indexOf(t),n>=0&&this.history[e].changeListeners.splice(n,1)}else(n=this.changeListeners.indexOf(t))>=0&&this.changeListeners.splice(n,1);return this},s.prototype.clear=function(e){return e?(this.history[e].splice(0,this.history[e].length),this.history[e].changeListeners=[],this.history[e].currentStateIndex=-1):(this.history={},this.changeListeners=[]),this},s.prototype.destroy=function(e){if(e)this.history[e].store.unbind(this,e),this.store.unbind(this,e),this.clear(e),delete this.history[e];else{this.history={},this.changeListeners=[],this.store.unbind(this,e);for(var t in this.history)this.history[t].store.unbind(this,t)}return this},s.prototype.getCurrentState=function(e){var t;if(0===arguments.length){t={};for(e in this.history)t[e]=this.history[e][this.history[e].currentStateIndex];return t}if(!this.history[e])throw new Error('StateService: there is no registered state with id "'+e+'"');return this.history[e][this.history[e].currentStateIndex]},s.prototype.getPrevState=function(e){if(!this.history[e])throw new Error('StateService: there is no registered state with id "'+e+'"');var t=this.history[e].currentStateIndex-1;return t<0?{}:this.history[e][t]},s.prototype.getNextState=function(e){if(!this.history[e])throw new Error('StateService: there is no registered state with id "'+e+'"');var t=this.history[e].currentStateIndex+1;return t>=this.history[e].length&&(t=this.history[e].length?this.history[e].length-1:0),this.history[e][t]},s.prototype.getFutureState=function(e,t){var n={};return 2===arguments.length?(n[e]=t,n=angular.merge({},this.getCurrentState(),n)):n=this.getCurrentState(),n},s.prototype.undo=l(-1),s.prototype.redo=l(1),s.prototype.undoAll=function(){for(var e in stateObj)this.undo(e)},s.prototype.redoAll=function(){for(var e in stateObj)this.redo(e)},s}]),angular.module("neTree",["neObject"]).run(["$templateCache",function(e){e.put("neTree/item.html","<div>{{item}}</div>"),e.put("neTree/child.html",'<div ng-include="tree.itemTemplate"></div><ul ng-show="item.$expanded"> <li ng-repeat="item in item.$children" ng-include="\'neTree/child.html\'"></li></ul>'),e.put("neTree/tree.html",'<div class="tree"> <ul> <li ng-repeat="item in tree.items" ng-include="\'neTree/child.html\'"></li> </ul> <div class="tree-backdrop" ng-show="tree.disabled"></div></div>'),e.put("neTree/tree-item-pagination.html",'<div ng-if="item.$expanded" class="tree-item-pagination" ng-class="{\'tree-item-pagination-border\':item.$children.length}"> <div ng-if="item.$pagination && !item.$paginationDisabled" class="btn-group btn-group-xs"> <button class="btn btn-light btn-xs" ng-click="tree.setPage(item, \'prev\')" ng-disabled="item.$prevDisabled"> <i class="fa fa-backward"></i> </button> <button class="btn btn-light btn-xs" ng-click="tree.addPage(item)" ng-disabled="item.$nextDisabled"> {{item.$pagination.page}} <span ng-if="item.$pagination.pagesCount">{{::\'of\'|translate}} {{item.$pagination.pagesCount}}</span> </button> <button class="btn btn-light btn-xs" ng-click="tree.setPage(item, \'next\')" ng-disabled="item.$nextDisabled"> <i class="fa fa-forward"></i> </button> </div></div>')}]).directive("neTreeUpdateBlur",["$timeout",function(e){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){function r(e){c=e,c?t.addClass(o):t.removeClass(o)}function a(){r(!1),d=i.$viewValue}var o,s,l,u,c,d;if(i){if("ng-dirty"===(o=n.dirtyClass||"is-dirty"))throw new Error('dirtyClass cannot be equal to "ng-dirty", it is angular reserved class name');if(s=(n.treeUpdateBlur||"").split(","),l=s[0]||"item",u=s[1]||"tree",!e[u])throw new Error('Scope has not grid with name "'+u+'"');if(!e[l])throw new Error('Scope has not grid item with name "'+l+'"');c=!1,t.on("blur",function(){c&&e[u].updateItem(e[l],a)}),t.bind("keydown keypress",function(n){13===n.which&&c&&"INPUT"===t[0].nodeName&&(e[u].updateItem(e[l],a),n.preventDefault())}),d="",e.$watch(i.$viewValue,function(){d=i.$viewValue}),i.$viewChangeListeners.push(function(){r(d!==i.$viewValue?!0:!1)})}}}}]).directive("neTree",[function(){return{restrict:"EA",templateUrl:"neTree/tree.html",scope:{tree:"=neTree"},replace:!0,link:function(e,t,n){e.tree.itemTemplate=e.tree.itemTemplate||"neTree/item.html"}}}]).directive("neTreeItemPagination",[function(){return{restrict:"EA",templateUrl:"neTree/tree-item-pagination.html",link:function(e,t,n){}}}]).factory("NeTree",["$timeout","neObject",function(e,t){function n(e){var p,h=[{},n.defaults];for(p=0;p<arguments.length;p++)h.push(arguments[p]);return e=angular.merge.apply(angular,h),this.id=e.id,this.idKey=e.idKey||"id",this.childrenKey=e.childrenKey,this.childrenCountKey=e.childrenCountKey,this.childrenReferenceKey=e.childrenReferenceKey,this.parentReferenceKey=e.parentReferenceKey,this.ancestorsReferenceKey=e.ancestorsReferenceKey,this.getChildrenQuery=e.getChildrenQuery||c,this.maintainReferences=e.maintainReferences||d,this.defaultLimit=e.defaultLimit||10,this.$limit=e.limit||this.defaultLimit,this.maxLimit=e.maxLimit||100,this.defaultQuery=e.defaultQuery||{},this.defaultSort=e.defaultSort||{},this.interceptLoad=e.interceptLoad||e.beforeLoad||e.loadInterceptor,this.onQuery=e.onQueryChange||e.onQuery||e.onFilter,this.onFill=e.onFill||e.onData||e.onLoad,this.onSelect=e.onSelect,this.onFocus=e.onFocus,this.onMove=e.onMove,this.onUpdate=e.onUpdate,this.onCreate=e.onCreate,this.resource=e.restResource||e.resource,this.getResourceMethod=e.getResourceMethod||e.resourceMethod||("function"==typeof this.resource?this.resource:null)||r,this.onRemove=e.onRemove,this.autoLoad=e.autoLoad||e.loadOnChange,this.multiSelect=e.multiSelect||e.multiselect||!1,this.silentMode=!1,this.$query=t.extend("data",{},{$page:this.$page,$limit:this.$limit},this.defaultQuery),this.items=[],this.itemTemplate=e.itemTemplate||e.include||"neTree/item.html",this.disabled=!0,this.fillItems=f,this.fill=f,this.addItems=x,this.addItem=x,this.appendItems=x,this.appendItem=x,this.prependItems=$,this.prependItem=$,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=w,this.addPageSilent=i("addPage"),this.appendPage=w,this.appendPageSilent=i("addPage"),this.load=b,this.loadItems=b,this.refresh=b,this.refreshItems=b,this.refreshItem=T,this.createItem=S,this.copyItem=C,this.updateItem=E,this.removeItem=N,this.moveItem=D,this.selectItem=R,this.focusItem=O,this.getFocusedItem=M,this.getSelectedItems=A,this.selectedItems=[],this.focusedItem=null,this.walkItems=a,this.walk=a,this.getParentOf=o,this.getParentsOf=s,this.getAncestorsOf=s,this.getChildrenOf=l,this.getChildrenCountOf=u,this}function i(e){return function(){var t=this;return t.silentMode=!0,t[e].apply(t,arguments),t.silentMode=!1,t}}function r(e,t){if(!this.resource)throw new Error("NeTree: resource is undefined");return this.resource[e]}function a(e,t){1===arguments.length&&(t=arguments[0],e=null);var n=this;if(!e||e===n||!0!==t(e,n.getParentOf(e)))return function e(t,n,i){var r;for(t=t||[],r=0;r<t.length;r++)if(!0===i(t[r],n))return;for(r=0;r<t.length;r++)t[r].$children&&t[r].$children.length>0&&e(t[r].$children,t[r],i)}(e?e.$children||(e===n?n.items:[]):n.items,e,t)}function o(e){var t;return this.walkItems(function(n){return!!(n.$children&&n.$children.indexOf(e)>=0)&&(t=n,!0)}),t}function s(e,t){var n,i=this;return t=t||[],n=i.getParentOf(e),n?(t.unshift(n),i.getAncestorsOf(n,t)):t}function l(e){if(!e)throw new Error("Wrong arguments");return e.$children}function u(e){if(!e)throw new Error("Wrong arguments");return(e.$children||[]).length}function c(e){var n=this,i=n.idKey,r=n.ancestorsReferenceKey,a=n.parentReferenceKey,o=n.childrenReferenceKey,s={};if(r)e?(s.$and=[{},{}],s.$and[0][r]={$size:(t.deepGet(e,r)||[]).length+1},s.$and[1][r]=t.deepGet(e,i)):s[r]={$size:0};else if(a)s[a]=t.deepGet(e,i);else{if(!o)throw new Error('Cannot create query, "ancestorsReferenceKey", or "parentReferenceKey", or "childrenReferenceKey" not set');s[o]=t.deepGet(e,o)}return s}function d(e,n,i){var r,a,o,s,l,u,c,d,p,f,h,g,m;e&&n&&(r=this,a=r.idKey,o=r.ancestorsReferenceKey,s=r.parentReferenceKey,l=r.childrenReferenceKey,u=r.childrenCountKey,c=!1,o&&!i&&(d=[].concat(t.deepGet(e,o)||[]),d.push(t.deepGet(e,a)),t.deepSet(n,o,d)),s&&!i&&(p=t.deepGet(e,a),t.deepSet(n,s,p)),l&&(f=t.deepGet(e,l)||[],h=t.deepGet(n,a),i?(g=f.indexOf(h))>-1&&f.splice(g,1):-1===f.indexOf(h)?f.push(h):c=!0,t.deepSet(e,l,f)),u&&!c&&(m=t.deepGet(e,u)||0,t.deepSet(e,u,m+(i?-1:1))))}function p(e,t,n){var i=this;n=n||{},t[e+"limit"]=t[e+"limit"]||i.defaultLimit,t[e+"pagination"]=n,t[e+"pagesCount"]=Math.ceil(n.count/t[e+"limit"]),void 0!==n.prev?t[e+"prevDisabled"]=!n.prev:n.page<=1&&(t[e+"prevDisabled"]=!0),void 0!==n.next?t[e+"nextDisabled"]=!n.next:n.page>=t[e+"pagesCount"]&&(t[e+"nextDisabled"]=!0),t[e+"paginationDisabled"]=t[e+"prevDisabled"]&&t[e+"nextDisabled"]}function f(e,t,n,i){var r=this;return r.disabled=!1,Array.isArray(arguments[0])&&(n=arguments[1],t=arguments[0],e=null),3===arguments.length&&"string"==typeof arguments[2]&&(i=arguments[2],n=e?e.$pagination:null),t=Array.isArray(t)?t:[t],e?(["push","append"].indexOf(i)>-1?Array.prototype.push.apply(e.$children,t):["unshift","prepend"].indexOf(i)>-1?Array.prototype.unshift.apply(e.$children,t):e.$children=t,p("$",e,n)):(["push","append"].indexOf(i)>-1?Array.prototype.push.apply(r.items,t):["unshift","prepend"].indexOf(i)>-1?Array.prototype.unshift.apply(r.items,t):r.items=t,p("$",r,n)),h(r,e),"function"!=typeof r.onFill||r.silentMode||(e?r.onFill(e,e.$children,e.$pagination,e.$query):r.onFill(r,r.items,r.$pagination,r.$query)),this}function h(e,n){e.walkItems(n,function(n,i){if(e.childrenKey){var r=t.deepGet(n,e.childrenKey);r&&!n.$children&&(n.$children=r)}n.$level=i?i.$level+1:0})}function g(e,t,n){"function"==typeof arguments[1]&&(n=arguments[1],t=arguments[0],e=null);var i=this;return e?e.$sort=t:i.$sort=t,grid.setPage("first",e,n)}function m(e,t,n){if("string"==typeof arguments[0]&&(n=arguments[1],t=arguments[0],e=null),t){var i={};return i[t]=n,this.setSort(e,i)}}function b(e,n,i,r){var a,o,s,l=this;return 2===arguments.length&&"function"==typeof arguments[1]?(i=arguments[1],n=!1):1===arguments.length&&"function"==typeof arguments[0]&&(i=arguments[0],n=!1,e=null),a=e?l.getChildrenOf(e):l.items,o=e?l.getChildrenCountOf(e):l.items.length,!e||!a||a.length<o||n?(!l.interceptLoad||l.interceptLoad&&!1!==l.interceptLoad((e||l).$query,e))&&(s=e?e.$query||{}:l.$query||{},s=t.extend("data",{},{$page:1,$limit:l.$limit||l.defaultLimit},l.defaultQuery,s,l.getChildrenQuery(e)),s.$sort&&(s.$sort=t.extend("data",{},l.defaultSort,s.$sort)),e?e.$query=s:delete s.$limit,l.disabled=!0,l.lastFindReqId=l.getResourceMethod("find",e)(s,function(t,r){l.lastFindReqId&&l.lastFindReqId!==this.requestId||(l.fillItems(e,t,r,n),i&&i(t),l.disabled=!1)},r)):i&&i(l.items),l}function 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),
a<=0&&(a=1),e.$page=a,r.updateQuery(e,i),r.autoLoad&&!r.silentMode?r.load(e,!0,n):(n&&n(),r)}function y(e,n,i){2===arguments.length&&(i=arguments[1],n=arguments[0],e=null),e=e||r;var r=this;return e.$query=t.extend("data",{},r.defaultQuery||{},n||{}),r.setPage(e,e.$query.$page||"first",i,n),r}function w(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 x(e,t){1===arguments.length&&(t=arguments[0],e=null);var n=this;if(t)return n.fillItems(e,t,"push"),n}function $(e,t){1===arguments.length&&(t=arguments[0],e=null);var n=this;if(t)return n.fillItems(e,t,"unshift"),n}function k(e,n){var i,r;return 1===arguments.length&&(n=arguments[0],e=null),i=this,n=n||{},e=e||i,e.$page=n.$page||e.$page,e.$limit=n.$limit||e.$limit||i.$limit,e.$sort=n.$sort||e.$sort,e.$page&&("number"!=typeof e.$page||e.$page<=0)&&(e.$page=1),!e.$limit||e.$limit<0?e.$limit=i.defaultLimit:e.$limit>i.maxLimit&&(e.$limit=i.maxLimit),r=t.extend("data",{},n,{$limit:e.$limit,$sort:{},$page:e.$page}),e.$sort&&(r.$sort=e.$sort),r.$sort=t.extend("data",{},i.defaultSort||{},e.$sort||{}),0===Object.keys(r.$sort).length&&delete r.$sort,e.$query&&(delete e.$query.$page,delete e.$query.$sort,delete e.$query.$limit),e.$query=t.extend("data",r,e.$query||{}),i.onQuery&&!i.silentMode&&i.onQuery(e.$query,e),i}function C(e,n,i){var r=angular.copy(e);return t.deepRemove(r,this.idKey),this.createItem(this.getParentOf(e),r,n,i)}function S(e,n,i,r,a){var o=this;return"boolean"==typeof arguments[1]?(r=arguments[2],i=arguments[1],n=arguments[0],e=null):3===arguments.length&&"function"==typeof arguments[2]?(r=arguments[2],i=!1):2===arguments.length&&"function"==typeof arguments[1]?(r=arguments[1],n=arguments[0],e=null):1===arguments.length&&(n=arguments[0],e=null),o.maintainReferences(e,n),o.getResourceMethod("create",n,e)(n,function(a){n=t.extend("data",n,a),i&&e&&o.maintainReferences(e,n),i?e&&e.$children?(e.$expanded=!0,o.appendItems(e,a),"function"==typeof r&&r(a),"function"==typeof o.onCreate&&o.onCreate(a)):o.load(e,function(n){e&&(e.$expanded=!0);for(var i=0;i<n.length;i++)if(t.deepGet(n[i],o.idKey)===t.deepGet(a,o.idKey)){"function"==typeof r&&r(n[i]),"function"==typeof o.onCreate&&o.onCreate(n[i]);break}}):("function"==typeof r&&r(n),"function"==typeof o.onCreate&&o.onCreate(n))},a),o}function E(e,n,i){return this.getResourceMethod("update",e)(e,function(i){e=t.extend("data",e,i),n&&n(e)},i),this}function T(e,n,i){var r=this.idKey,a={};return a[r]=t.deepGet(e,r),this.getResourceMethod("find",e)(a,function(t){var i=e.$expanded;e=t,i?b(e,function(){n&&n(e)}):n&&n(e)},i),this}function D(e,t,n,i){}function N(e,t,n){var i=this;i.getResourceMethod("remove",e)(e,function(){i.maintainReferences(i.getParentOf(e),e,!0);var n=i.getParentOf(e);n?n.$children.splice(n.$children.indexOf(e),1):i.items.splice(i.items.indexOf(e),1),"function"==typeof t&&t()},n)}function O(e,t){var n=this,i=!!e.$focused;return n.focusedItem&&n.focusedItem!==e&&(n.focusedItem.$focused=!1),e.$focused=!t||!e.$focused,n.focusedItem=t&&i?null:e,"function"==typeof n.onFocus&&n.onFocus(e),n}function M(){return this.focusedItem}function R(e){var t,n,i=this,r=!i.multiSelect,a=e.$selected;if(r){for(t=0;t<i.selectedItems.length;t++)i.selectedItems[t].$selected&&(i.selectedItems[t].$selected=!1);a?i.selectedItems=[]:(e.$selected=!0,i.selectedItems=[e])}else e.$selected?(e.$selected=!1,(n=i.selectedItems.indexOf(e))>=0&&i.selectedItems.splice(n,1)):(e.$selected=!0,i.selectedItems.push(e));"function"==typeof i.onSelect&&i.onSelect(e,e.$selected)}function A(){return this.selectedItems}return n.defaults={},n}]),function(e,t){"use strict";var n,i,r,a=["ng","oc.lazyLoad"],o={},s=[],l=[],u=[],c=[],d=e.noop,p={},f=[];e.module("oc.lazyLoad",["ng"]).provider("$ocLazyLoad",["$controllerProvider","$provide","$compileProvider","$filterProvider","$injector","$animateProvider",function(n,h,g,m,b,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=$(s)),s&&-1===f.indexOf(s)&&(!E[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])),x(t,l._invokeQueue,s,i.reconfig),x(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 w(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)?S(t.toString()):e.isObject(t)?S(C(t)):e.isDefined(t)&&null!==t?S(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 x(t,n,i,r){var a,o,l,u,c,d,p,f;if(n)for(a=0,o=n.length;a<o;a++)if(l=n[a],e.isArray(l)){if(null!==t){if(!t.hasOwnProperty(l[0]))throw new Error("unsupported provider "+l[0]);u=t[l[0]]}if(c=w(l,i),"invoke"!==l[1])c&&e.isDefined(u)&&u[l[1]].apply(u,l[2]);else if(d=function(t){var n=s.indexOf(i+"-"+t);(-1===n||r)&&(-1===n&&s.push(i+"-"+t),e.isDefined(u)&&u[l[1]].apply(u,l[2]))},e.isFunction(l[2][0]))d(l[2][0]);else if(e.isArray(l[2][0]))for(p=0,f=l[2][0].length;p<f;p++)e.isFunction(l[2][0][p])&&d(l[2][0][p])}}function $(t){var n=null;return e.isString(t)?n=t:e.isObject(t)&&t.hasOwnProperty("name")&&e.isString(t.name)&&(n=t.name),n}function k(t){if(!e.isString(t))return!1;try{return r(t)}catch(e){if(/No module/.test(e)||e.message.indexOf("$injector:nomod")>-1)return!1}}var C,S,E={},T={$controllerProvider:n,$compileProvider:g,$filterProvider:m,$provide:h,$injector:b,$animateProvider:v},D=!1,N=!1,O=[],M={};O.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){E[e.name]=e}):E[t.modules.name]=t.modules),e.isDefined(t.debug)&&(D=t.debug),e.isDefined(t.events)&&(N=t.events)},this._init=function(n){var i,r,o,s,u;0===l.length&&(i=[n],r=["ng:app","ng-app","x-ng-app","data-ng-app"],o=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/,s=function(e){return e&&i.push(e)},e.forEach(r,function(t){r[t]=!0,s(document.getElementById(t)),t=t.replace(":","\\:"),void 0!==n[0]&&n[0].querySelectorAll&&(e.forEach(n[0].querySelectorAll("."+t),s),e.forEach(n[0].querySelectorAll("."+t+"\\:"),s),e.forEach(n[0].querySelectorAll("["+t+"]"),s))}),e.forEach(i,function(t){var i,a;0===l.length&&(i=" "+n.className+" ",a=o.exec(i),a?l.push((a[2]||"").replace(/\s+/g,",")):e.forEach(t.attributes,function(e){0===l.length&&r[e.name]&&l.push(e.value)}))})),0!==l.length||(t.jasmine||t.mocha)&&e.isDefined(e.mock)||console.error("No module found during bootstrap, unable to init ocLazyLoad. You should always use the ng-app directive or angular.boostrap when you use ocLazyLoad."),u=function t(n){if(-1===a.indexOf(n)){a.push(n);var i=e.module(n);x(null,i._invokeQueue,n),x(null,i._configBlocks,n),e.forEach(i.requires,t)}},e.forEach(l,function(e){u(e)}),l=[],c.pop()},C=function(t){try{return JSON.stringify(t)}catch(i){var n=[];return JSON.stringify(t,function(t,i){if(e.isObject(i)&&null!==i){if(-1!==n.indexOf(i))return;n.push(i)}return i})}},S=function(e){var t,n,i,r=0;if(0==e.length)return r;for(t=0,i=e.length;t<i;t++)n=e.charCodeAt(t),r=(r<<5)-r+n,r|=0;return r},this.$get=["$log","$rootElement","$rootScope","$cacheFactory","$q",function(t,n,s,u,p){function h(e){var n=p.defer();return t.error(e.message),n.reject(e),n.promise}var g,m=u("ocLazyLoad");return D||(t={},t.error=e.noop,t.warn=e.noop,t.info=e.noop),T.getInstanceInjector=function(){return g||(g=n.data("$injector")||e.injector())},d=function(e,n){N&&s.$broadcast(e,n),D&&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 E[t]?e.copy(E[t]):null},setModuleConfig:function(t){if(!e.isObject(t))throw new Error("You need to give the module config object to set");return E[t.name]=t,t},getModules:function(){return a},isLoaded:function(t){var n,i,r=function(e){var t=a.indexOf(e)>-1;return t||(t=!!k(e)),t};if(e.isString(t)&&(t=[t]),e.isArray(t)){for(n=0,i=t.length;n<i;n++)if(!r(t[n]))return!1;return!0}throw new Error("You need to define the module(s) name(s)")},_getModuleName:$,_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(null===(t=s._getModuleName(t)))return p.when();try{i=s._getModule(t)}catch(e){return h(e)}return r=s.getRequires(i),e.forEach(r,function(i){var r,l;if(e.isString(i)){if(null===(r=s.getModuleConfig(i)))return void O.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),O.push(i.name)),e.isDefined(i.files)&&0!==i.files.length){if(!e.isDefined(s.filesLoader))return h(new Error('Error: the module "'+i.name+'" is defined in external files ('+i.files+"), but no loader has been defined."));o.push(s.filesLoader(i,n).then(function(){return s._loadDependencies(i)}))}}),p.all(o)},inject:function(t){var n,i,r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],a=!(arguments.length<=2||void 0===arguments[2])&&arguments[2],o=this,s=p.defer();if(e.isDefined(t)&&null!==t){if(e.isArray(t))return n=[],e.forEach(t,function(e){n.push(o.inject(e,r,a))}),p.all(n);o._addToLoadList(o._getModuleName(t),!0,a)}if(l.length>0)i=l.slice(),function e(t){O.push(t),M[t]=s.promise,o._loadDependencies(t,r).then(function(){try{f=[],y(T,O,r)}catch(e){return o._$log.error(e.message),void s.reject(e)}l.length>0?e(l.shift()):s.resolve(i)},function(e){s.reject(e)})}(l.shift());else{if(r&&r.name&&M[r.name])return M[r.name];s.resolve()}return s.promise},getRequires:function(t){var n=[];return e.forEach(t.requires,function(e){-1===a.indexOf(e)&&n.push(e)}),n},_invokeQueue:x,_registerInvokeList:w,_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,a){return{restrict:"A",terminal:!0,priority:1e3,compile:function(a,o){var s=a[0].innerHTML;return a.html(""),function(a,o,l){var u=r(l.ocLazyLoad);a.$watch(function(){return u(a)||l.ocLazyLoad},function(r){e.isDefined(r)&&t.load(r).then(function(){i.enter(s,o),n(o.contents())(a)})},!0)}}}}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$q","$window","$interval",function(t,n,i,r){var a=!1,o=i.document.getElementsByTagName("head")[0]||i.document.getElementsByTagName("body")[0];return t.buildElement=function(s,l,u){var c,d,p,f,h,g,m,b,v,y,w,x=n.defer(),$=t._getFilesCache(),k=function(e){var t=(new Date).getTime();return e.indexOf("?")>=0?"&"===e.substring(0,e.length-1)?e+"_dc="+t:e+"&_dc="+t:e+"?_dc="+t};switch(e.isUndefined($.get(l))&&$.put(l,x.promise),s){case"css":c=i.document.createElement("link"),c.type="text/css",c.rel="stylesheet",c.href=!1===u.cache?k(l):l;break;case"js":c=i.document.createElement("script"),c.src=!1===u.cache?k(l):l;break;default:$.remove(l),x.reject(new Error('Requested type "'+s+'" is not known. Could not inject "'+l+'"'))}return c.onload=c.onreadystatechange=function(e){c.readyState&&!/^c|loade/.test(c.readyState)||d||(c.onload=c.onreadystatechange=null,d=1,t._broadcast("ocLazyLoad.fileLoaded",l),x.resolve())},c.onerror=function(){$.remove(l),x.reject(new Error("Unable to load "+l))},c.async=u.serie?0:1,p=o.lastChild,u.insertBefore&&(f=e.element(e.isDefined(window.jQuery)?u.insertBefore:document.querySelector(u.insertBefore)))&&f.length>0&&(p=f[0]),p.parentNode.insertBefore(c,p),"css"==s&&(h=i.navigator.userAgent.toLowerCase(),/iP(hone|od|ad)/.test(i.navigator.platform)?(g=i.navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),m=parseFloat([parseInt(g[1],10),parseInt(g[2],10),parseInt(g[3]||0,10)].join(".")),a=m<6):h.indexOf("android")>-1?(b=parseFloat(h.slice(h.indexOf("android")+8)),a=b<4.4):h.indexOf("safari")>-1&&(v=h.match(/version\/([\.\d]+)/i),a=v&&v[1]&&parseFloat(v[1])<6),a&&(y=1e3,w=r(function(){try{c.sheet.cssRules,r.cancel(w),c.onload()}catch(e){--y<=0&&c.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)||!1===c.cache){if(null!==(i=/^(css|less|html|htm|js)?(?=!)/.exec(n))&&(r=i[1],n=n.substr(i[1].length+1,n.length)),!r)if(null!==(i=/[.](css|less|html|htm|js)?((\?|#).*)?$/.exec(n)))r=i[1];else{if(t.jsLoader.hasOwnProperty("ocLazyLoadLoader")||!t.jsLoader.hasOwnProperty("requirejs"))return void t._$log.error("File type could not be determined. "+n);r="js"}"css"!==r&&"less"!==r||-1!==d.indexOf(n)?"html"!==r&&"htm"!==r||-1!==p.indexOf(n)?"js"===r||-1===f.indexOf(n)?f.push(n):t._$log.error("File type is not valid. "+n):p.push(n):d.push(n)}else g&&h.push(g)},c.serie?r(c.files.shift()):e.forEach(c.files,function(e){r(e)}),d.length>0&&(a=n.defer(),t.cssLoader(d,function(n){e.isDefined(n)&&t.cssLoader.hasOwnProperty("ocLazyLoadLoader")?(t._$log.error(n),a.reject(n)):a.resolve()},c),h.push(a.promise)),p.length>0&&(o=n.defer(),t.templatesLoader(p,function(n){e.isDefined(n)&&t.templatesLoader.hasOwnProperty("ocLazyLoadLoader")?(t._$log.error(n),o.reject(n)):o.resolve()},c),h.push(o.promise)),f.length>0&&(s=n.defer(),t.jsLoader(f,function(n){e.isDefined(n)&&(t.jsLoader.hasOwnProperty("ocLazyLoadLoader")||t.jsLoader.hasOwnProperty("requirejs"))?(t._$log.error(n),s.reject(n)):s.resolve()},c),h.push(s.promise)),0===h.length?(l=n.defer(),u="Error: no file to load has been found, if you're trying to load an existing module you should use the 'inject' method instead of 'load'.",t._$log.error(u),l.reject(u),l.promise):c.serie&&c.files.length>0?n.all(h).then(function(){return t.filesLoader(i,c)}):n.all(h).finally(function(e){return t.toggleWatch(!1),e})},t.load=function(i){var r,a,o,s=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],l=this,u=null,c=[],d=n.defer(),p=e.copy(i),f=e.copy(s);return e.isArray(p)?(e.forEach(p,function(e){c.push(l.load(e,f))}),n.all(c).then(function(e){d.resolve(e)},function(e){d.reject(e)}),d.promise):(e.isString(p)?(u=l.getModuleConfig(p))||(u={files:[p]}):e.isObject(p)&&(u=e.isDefined(p.path)&&e.isDefined(p.type)?{files:[p]}:l.setModuleConfig(p)),null===u?(a=l._getModuleName(p),r='Module "'+(a||"unknown")+'" is not configured, cannot load.',t._$log.error(r),d.reject(new Error(r)),d.promise):(e.isDefined(u.template)&&(e.isUndefined(u.files)&&(u.files=[]),e.isString(u.template)?u.files.push(u.template):e.isArray(u.template)&&u.files.concat(u.template)),o=e.extend({},f,u),e.isUndefined(u.files)&&e.isDefined(u.name)&&t.moduleExists(u.name)?t.inject(u.name,o,!0):(t.filesLoader(u,o).then(function(){t.inject(null,o).then(function(e){d.resolve(e)},function(e){d.reject(e)})},function(e){d.reject(e)}),d.promise)))},t}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$q",function(t,n){return t.cssLoader=function(i,r,a){var o=[];e.forEach(i,function(e){o.push(t.buildElement("css",e,a))}),n.all(o).then(function(){r()},function(e){r(e)})},t.cssLoader.ocLazyLoadLoader=!0,t}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$q",function(t,n){return t.jsLoader=function(i,r,a){var o=[];e.forEach(i,function(e){o.push(t.buildElement("js",e,a))}),n.all(o).then(function(){r()},function(e){r(e)})},t.jsLoader.ocLazyLoadLoader=!0,t}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$templateCache","$q","$http",function(t,n,i,r){return t.templatesLoader=function(a,o,s){var l=[],u=t._getFilesCache();return e.forEach(a,function(t){var a=i.defer();l.push(a.promise),r.get(t,s).success(function(i){e.isString(i)&&i.length>0&&e.forEach(e.element(i),function(e){"SCRIPT"===e.nodeName&&"text/ng-template"===e.type&&n.put(e.id,e.innerHTML)}),e.isUndefined(u.get(t))&&u.put(t,!0),a.resolve()}).error(function(e){a.reject(new Error('Unable to load template file "'+t+'": '+e))})}),i.all(l).then(function(){o()},function(e){o(e)})},t.templatesLoader.ocLazyLoadLoader=!0,t}])}])}(angular),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){var n,i,r,a;if(null==this)throw new TypeError('"this" is null or not defined');if(i=Object(this),0===(r=i.length>>>0))return-1;if(a=+t||0,Math.abs(a)===1/0&&(a=0),a>=r)return-1;for(n=Math.max(a>=0?a:r-Math.abs(a),0);n<r;){if(n in i&&i[n]===e)return n;n++}return-1}),angular.module("textAngular.ext",["textAngularSetup","neModals"]).value("taOptions",{forceTextAngularSanitize:!0,keyMappings:[],toolbar:[["undo","redo"],["h1","h2","h3","h4","h5","h6","p","pre","quote","table"],["bold","italics","underline","strikeThrough","ul","ol"],["color","bgColor","clear"],["justifyLeft","justifyCenter","justifyRight","justifyFull","indent","outdent"],["html","insertImage","insertLink","insertVideo"]],classes:{focussed:"focussed",toolbar:"btn-toolbar",toolbarGroup:"btn-group btn-group-xs",toolbarButton:"btn btn-default",toolbarButtonActive:"active",disabled:"disabled",textEditor:"form-control",htmlEditor:"form-control"},defaultTagAttributes:{a:{target:""}},setup:{textEditorSetup:function(e){},htmlEditorSetup:function(e){}},defaultFileDropHandler:function(e,t){return!1}}).run(["$templateCache",function(e){e.put("textAngular/insert-link-modal.html",'<div> <div> <input type="text" class="form-control" ng-model="modal.link" placeholder="http://" /> </div> <div class="text-right margin-top-lg"> <button class="btn btn-default" ng-click="modal.close()">{{::\'Cancel\'|translate}}</button> <button class="btn btn-mini btn-primary" ng-disabled="!modal.link" ng-click="modal.insertLink(modal.link);modal.close()">{{::\'Insert\'|translate}}</button> </div></div>'),e.put("textAngular/insert-table-modal.html",'<div> <div> <label>{{::\'Columns\'|translate}}</label><br> <input type="number" class="form-control" ng-model="modal.cols"><br> <label>{{::\'Rows\'|translate}}</label><br> <input type="number" class="form-control" ng-model="modal.rows"> </div> <div class="text-right margin-top-lg"> <button class="btn btn-default btn-mini" ng-click="modal.close()">{{::\'Cancel\'|translate}}</button> <button class="btn btn-mini btn-primary" ng-click="modal.insertTable(modal.cols || 2, modal.rows || 2);modal.close()">{{::\'Insert\'|translate}}</button> </div></div>'),e.put("textAngular/change-color-dropdown.html",'<div class="btn-group" style="float:left;" uib-dropdown> <button class="btn btn-default btn-xs" uib-dropdown-toggle ng-click="storeSelection()" ng-disabled="isDisabled()"> <i class="fa {{icon}}"></i><i class="fa fa-caret-down"></i> </button> <ul class="dropdown-menu"> <li ng-repeat="c in colors" style="float:left;float:left;margin:2px;"> <a href="" style="border:1px solid black;display:block;width:15px;height:15px;padding:0px;background-color:{{c}}" ng-click="setColor(c)"> </a> </li> </ul></div>')}]).run(["$templateCache","$window","taRegisterTool","taTranslations","taSelection","taToolFunctions","$sanitize","taOptions","taTools","neModals",function(e,t,n,i,r,a,o,s,l,u){function c(e,t){var n,i,r;if(t>0&&e>0){for(n="<table><thead><tr>",i=0;i<e;i++)n+="<th>col"+(i+1)+"</th>";for(n+="</tr></thead><tbody>",r=0;r<t;r++){for(n+="<tr>",i=0;i<e;i++)n+="<td>row"+(r+1)+"</td>";n+="</tr>"}return n+="</tbody></table>"}}l.clear.iconclass="fa fa-eraser",l.clear.action=function(){this.$editor().wrapSelection("removeFormat",null)},l.insertLink.action=function(e,t){var n=this;return u.create({id:"textAngular.insertLink",title:"Insert Link",templateUrl:"textAngular/insert-link-modal.html",removeOnClose:!0,link:"http://",onClose:function(){this.inserted||(t(),e.resolve())},insertLink:function(i){this.inserted=!0,t(),i&&""!==i&&"http://"!==i&&n.$editor().wrapSelection("createLink",i,!0),e.resolve()}}),!1},l.insertImage.action=function(e,t){var n=this;return u.create({id:"textAngular.insertImage",title:"Insert Image",templateUrl:"textAngular/insert-link-modal.html",removeOnClose:!0,link:"http://",onClose:function(){this.inserted||(t(),e.resolve())},insertLink:function(i){this.inserted=!0,t(),i&&""!==i&&"http://"!==i&&n.$editor().wrapSelection("insertImage",i,!0),e.resolve()}}),!1},l.insertVideo.action=function(e,t){return u.create({id:"textAngular.insertVideo",title:"Insert Youtube Video",templateUrl:"textAngular/insert-link-modal.html",removeOnClose:!0,link:"https://",onClose:function(){this.inserted||(t(),e.resolve())},insertLink:function(n){var i,r,o;this.inserted=!0,t(),n&&""!==n&&"https://"!==n&&(i=a.extractYoutubeVideoId(n))&&(r="https://www.youtube.com/embed/"+i,o='<img class="ta-insert-video" src="https://img.youtube.com/vi/'+i+'/hqdefault.jpg" ta-insert-video="'+r+'" contenteditable="false" allowfullscreen="true" frameborder="0" />',ta.$editor().wrapSelection("insertHTML",o,!0)),e.resolve()}}),!1},l.insertLink.onElementSelect.action=function(e,t,n){var r,a,o,s,l,c;e.preventDefault(),n.displayElements.popover.css("width","436px"),r=n.displayElements.popoverContainer,r.empty(),r.css("line-height","28px"),a=angular.element('<a href="'+t.attr("href")+'" target="_blank">'+t.attr("href")+' <i class="fa fa-mail-forward"></i></a>'),a.css({display:"inline-block","max-width":"200px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap","vertical-align":"middle"}),r.append(a),o=angular.element('<div class="btn-group pull-right">'),s=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" tabindex="-1" unselectable="on" title="'+i.editLink.reLinkButton.tooltip+'"><i class="fa fa-edit icon-edit"></i></button>'),s.on("click",function(e){e.preventDefault(),u.create({id:"textAngular.insertLink",title:"Insert Link",templateUrl:"textAngular/insert-link-modal.html",removeOnClose:!0,link:t.attr("href"),insertLink:function(e){e&&""!==e&&"http://"!==e&&(t.attr("href",e),n.updateTaBindtaTextElement()),n.hidePopover()}})}),o.append(s),l=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" tabindex="-1" unselectable="on"><i class="fa fa-external-link"></i></button>'),"_blank"===t.attr("target")&&l.addClass("active"),l.on("click",function(e){e.preventDefault(),t.attr("target","_blank"===t.attr("target")?"":"_blank"),l.toggleClass("active"),n.updateTaBindtaTextElement()}),o.append(l),c=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" tabindex="-1" unselectable="on" title="'+i.editLink.unLinkButton.tooltip+'"><i class="fa fa-unlink icon-unlink"></i></button>'),c.on("click",function(e){e.preventDefault(),t.replaceWith(t.contents()),n.updateTaBindtaTextElement(),n.hidePopover()}),o.append(c),r.append(o),n.showPopover(t)},n("table",{iconclass:"fa fa-table",tooltiptext:"Table",action:function(e,t){var n=this;return u.create({id:"textAngular.insertTable",title:"Insert Table",templateUrl:"textAngular/insert-table-modal.html",removeOnClose:!0,cols:2,rows:2,onClose:function(){console.warn("inserted",this.inserted),this.inserted||(t(),e.resolve())},insertTable:function(i,r){if(this.inserted=!0,t(),i>0&&r>0){var a=c(i,r);n.$editor().wrapSelection("insertHTML",a,!0)}e.resolve()}}),!1}});var d=["#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"];n("color",{display:e.get("textAngular/change-color-dropdown.html"),class:" ",icon:"fa-font",colors:d,storeSelection:function(){this.selection=t.rangy.saveSelection()},setColor:function(e){t.rangy.restoreSelection(this.selection),this.$editor().wrapSelection("foreColor",e)},action:function(){return!0}}),n("bgColor",{display:e.get("textAngular/change-color-dropdown.html"),class:" ",icon:"fa-magic",colors:d,storeSelection:function(){this.selection=t.rangy.saveSelection()},setColor:function(e){t.rangy.restoreSelection(this.selection),this.$editor().wrapSelection("backColor",e)},action:function(){return!0}})}]),function(e,t){t.true=e,function(t,n){"function"==typeof define&&define.amd?define(t):"undefined"!=typeof module&&"object"==typeof e?module.exports=t():n.rangy=t()}(function(){function e(e,t){var n=typeof e[t];return n==E||!(n!=S||!e[t])||"unknown"==n}function t(e,t){return!(typeof e[t]!=S||!e[t])}function n(e,t){return typeof e[t]!=T}function i(e){return function(t,n){for(var i=n.length;i--;)if(!e(t,n[i]))return!1;return!0}}function r(e){return e&&R(e,M)&&_(e,O)}function a(e){return t(e,"body")?e.body:e.getElementsByTagName("body")[0]}function o(t){typeof console!=T&&e(console,"log")&&console.log(t)}function s(e,t){q&&t?alert(e):o(e)}function l(e){H.initialized=!0,H.supported=!1,s("Rangy is not supported in this environment. Reason: "+e,H.config.alertOnFail)}function u(e){s("Rangy warning: "+e,H.config.alertOnWarn)}function c(e){return e.message||e.description||String(e)}function d(){var t,n,i,s,u,d,p,f,h;if(q&&!H.initialized){if(n=!1,i=!1,e(document,"createRange")&&(t=document.createRange(),R(t,N)&&_(t,D)&&(n=!0)),!(s=a(document))||"body"!=s.nodeName.toLowerCase())return void l("No body element found");if(s&&e(s,"createTextRange")&&(t=s.createTextRange(),r(t)&&(i=!0)),!n&&!i)return void l("Neither Range nor TextRange are available");H.initialized=!0,H.features={implementsDomRange:n,implementsTextRange:i};for(p in P)(u=P[p])instanceof g&&u.init(u,H);for(f=0,h=x.length;h>f;++f)try{x[f](H)}catch(e){d="Rangy init listener threw an exception. Continuing. Detail: "+c(e),o(d)}}}function p(e,t,n){n&&(e+=" in module "+n.name),H.warn("DEPRECATED: "+e+" is deprecated. Please use "+t+" instead.")}function f(e,t,n,i){e[t]=function(){return p(t,n,i),e[n].apply(e,I.toArray(arguments))}}function h(e){e=e||window,d();for(var t=0,n=$.length;n>t;++t)$[t](e)}function g(e,t,n){this.name=e,this.dependencies=t,this.initialized=!1,this.supported=!1,this.initializer=n}function m(e,t,n){var i=new g(e,t,function(t){if(!t.initialized){t.initialized=!0;try{n(H,t),t.supported=!0}catch(t){var i="Module '"+e+"' failed to load: "+c(t);o(i),t.stack&&o(t.stack)}}});return P[e]=i,i}function b(){}function v(){}var y,w,x,$,k,C,S="object",E="function",T="undefined",D=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],N=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],O=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],M=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],R=i(e),A=i(t),_=i(n),L=[].forEach?function(e,t){e.forEach(t)}:function(e,t){for(var n=0,i=e.length;i>n;++n)t(e[n],n)},P={},q=typeof window!=T&&typeof document!=T,I={isHostMethod:e,isHostObject:t,isHostProperty:n,areHostMethods:R,areHostObjects:A,areHostProperties:_,isTextRange:r,getBody:a,forEach:L},H={version:"1.3.0",initialized:!1,isBrowser:q,supported:!0,util:I,features:{},modules:P,config:{alertOnFail:!1,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==T||rangyAutoInitialize}};return H.fail=l,H.warn=u,!{}.hasOwnProperty?l("hasOwnProperty not supported"):(I.extend=y=function(e,t,n){var i,r,a;for(a in t)t.hasOwnProperty(a)&&(i=e[a],r=t[a],n&&null!==i&&"object"==typeof i&&null!==r&&"object"==typeof r&&y(i,r,!0),e[a]=r);return t.hasOwnProperty("toString")&&(e.toString=t.toString),e},I.createOptions=function(e,t){var n={};return y(n,t),e&&y(n,e),n}),q||l("Rangy can only run in a browser"),function(){var e,t,n;if(q){t=document.createElement("div"),t.appendChild(document.createElement("span")),n=[].slice;try{1==n.call(t.childNodes,0)[0].nodeType&&(e=function(e){return n.call(e,0)})}catch(e){}}e||(e=function(e){for(var t=[],n=0,i=e.length;i>n;++n)t[n]=e[n];return t}),I.toArray=e}(),q&&(e(document,"addEventListener")?w=function(e,t,n){e.addEventListener(t,n,!1)}:e(document,"attachEvent")?w=function(e,t,n){e.attachEvent("on"+t,n)}:l("Document does not have required addEventListener or attachEvent method"),I.addListener=w),x=[],I.deprecationNotice=p,I.createAliasForDeprecatedMethod=f,H.init=d,H.addInitListener=function(e){H.initialized?e(H):x.push(e)},$=[],H.addShimListener=function(e){$.push(e)},q&&(H.shim=H.createMissingNativeApi=h,f(H,"createMissingNativeApi","shim")),g.prototype={init:function(){for(var e,t,n=this.dependencies||[],i=0,r=n.length;r>i;++i){if(t=n[i],!((e=P[t])&&e instanceof g))throw new Error("required module '"+t+"' not found");if(e.init(),!e.supported)throw new Error("required module '"+t+"' not supported")}this.initializer(this)},fail:function(e){throw this.initialized=!0,this.supported=!1,new Error(e)},warn:function(e){H.warn("Module "+this.name+": "+e)},deprecationNotice:function(e,t){H.warn("DEPRECATED: "+e+" in module "+this.name+" is deprecated. Please use "+t+" instead")},createError:function(e){return new Error("Error in Rangy "+this.name+" module: "+e)}},
H.createModule=function(e){var t,n,i;2==arguments.length?(t=arguments[1],n=[]):(t=arguments[2],n=arguments[1]),i=m(e,n,t),H.initialized&&H.supported&&i.init()},H.createCoreModule=function(e,t,n){m(e,t,n)},H.RangePrototype=b,H.rangePrototype=new b,H.selectionPrototype=new v,H.createCoreModule("DomUtil",[],function(e,t){function n(e){var t;return typeof e.namespaceURI==P||null===(t=e.namespaceURI)||"http://www.w3.org/1999/xhtml"==t}function i(e){var t=e.parentNode;return 1==t.nodeType?t:null}function r(e){for(var t=0;e=e.previousSibling;)++t;return t}function a(e){switch(e.nodeType){case 7:case 10:return 0;case 3:case 8:return e.length;default:return e.childNodes.length}}function o(e,t){var n,i=[];for(n=e;n;n=n.parentNode)i.push(n);for(n=t;n;n=n.parentNode)if(A(i,n))return n;return null}function s(e,t,n){for(var i=n?t:t.parentNode;i;){if(i===e)return!0;i=i.parentNode}return!1}function l(e,t){return s(e,t,!0)}function u(e,t,n){for(var i,r=n?e:e.parentNode;r;){if((i=r.parentNode)===t)return r;r=i}return null}function c(e){var t=e.nodeType;return 3==t||4==t||8==t}function d(e){if(!e)return!1;var t=e.nodeType;return 3==t||8==t}function p(e,t){var n=t.nextSibling,i=t.parentNode;return n?i.insertBefore(e,n):i.appendChild(e),e}function f(e,t,n){var i,a,o=e.cloneNode(!1);if(o.deleteData(0,t),e.deleteData(t,e.length-t),p(o,e),n)for(a=0;i=n[a++];)i.node==e&&i.offset>t?(i.node=o,i.offset-=t):i.node==e.parentNode&&i.offset>r(e)&&++i.offset;return o}function h(e){if(9==e.nodeType)return e;if(typeof e.ownerDocument!=P)return e.ownerDocument;if(typeof e.document!=P)return e.document;if(e.parentNode)return h(e.parentNode);throw t.createError("getDocument: no document found for node")}function g(e){var n=h(e);if(typeof n.defaultView!=P)return n.defaultView;if(typeof n.parentWindow!=P)return n.parentWindow;throw t.createError("Cannot get a window object for node")}function m(e){if(typeof e.contentDocument!=P)return e.contentDocument;if(typeof e.contentWindow!=P)return e.contentWindow.document;throw t.createError("getIframeDocument: No Document object found for iframe element")}function b(e){if(typeof e.contentWindow!=P)return e.contentWindow;if(typeof e.contentDocument!=P)return e.contentDocument.defaultView;throw t.createError("getIframeWindow: No Window object found for iframe element")}function v(e){return e&&q.isHostMethod(e,"setTimeout")&&q.isHostObject(e,"document")}function y(e,t,n){var i;if(e?q.isHostProperty(e,"nodeType")?i=1==e.nodeType&&"iframe"==e.tagName.toLowerCase()?m(e):h(e):v(e)&&(i=e.document):i=document,!i)throw t.createError(n+"(): Parameter must be a Window object or DOM node");return i}function w(e){for(var t;t=e.parentNode;)e=t;return e}function x(e,n,i,a){var s,l,c,d,p;if(e==i)return n===a?0:a>n?-1:1;if(s=u(i,e,!0))return n<=r(s)?-1:1;if(s=u(e,i,!0))return r(s)<a?-1:1;if(!(l=o(e,i)))throw new Error("comparePoints error: nodes have no common ancestor");if(c=e===l?l:u(e,l,!0),d=i===l?l:u(i,l,!0),c===d)throw t.createError("comparePoints got to case 4 and childA and childB are the same!");for(p=l.firstChild;p;){if(p===c)return-1;if(p===d)return 1;p=p.nextSibling}}function $(e){try{return e.parentNode,!1}catch(e){return!0}}function k(e){if(!e)return"[No node]";if(_&&$(e))return"[Broken node]";if(c(e))return'"'+e.data+'"';if(1==e.nodeType){var t=e.id?' id="'+e.id+'"':"";return"<"+e.nodeName+t+">[index:"+r(e)+",length:"+e.childNodes.length+"]["+(e.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return e.nodeName}function C(e){for(var t,n=h(e).createDocumentFragment();t=e.firstChild;)n.appendChild(t);return n}function S(e,t,n){var i,r=I(e),a=e.createElement("div");return a.contentEditable=""+!!n,t&&(a.innerHTML=t),i=r.firstChild,i?r.insertBefore(a,i):r.appendChild(a),a}function E(e){return e.parentNode.removeChild(e)}function T(e){this.root=e,this._next=e}function D(e){return new T(e)}function N(e,t){this.node=e,this.offset=t}function O(e){this.code=this[e],this.codeName=e,this.message="DOMException: "+this.codeName}var M,R,A,_,L,P="undefined",q=e.util,I=q.getBody;q.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||t.fail("document missing a Node creation method"),q.isHostMethod(document,"getElementsByTagName")||t.fail("document missing getElementsByTagName method"),M=document.createElement("div"),q.areHostMethods(M,["insertBefore","appendChild","cloneNode"]||!q.areHostObjects(M,["previousSibling","nextSibling","childNodes","parentNode"]))||t.fail("Incomplete Element implementation"),q.isHostProperty(M,"innerHTML")||t.fail("Element is missing innerHTML property"),R=document.createTextNode("test"),q.areHostMethods(R,["splitText","deleteData","insertData","appendData","cloneNode"]||!q.areHostObjects(M,["previousSibling","nextSibling","childNodes","parentNode"])||!q.areHostProperties(R,["data"]))||t.fail("Incomplete Text Node implementation"),A=function(e,t){for(var n=e.length;n--;)if(e[n]===t)return!0;return!1},_=!1,function(){var t,n=document.createElement("b");n.innerHTML="1",t=n.firstChild,n.innerHTML="<br />",_=$(t),e.features.crashyTextNodes=_}(),typeof window.getComputedStyle!=P?L=function(e,t){return g(e).getComputedStyle(e,null)[t]}:typeof document.documentElement.currentStyle!=P?L=function(e,t){return e.currentStyle?e.currentStyle[t]:""}:t.fail("No means of obtaining computed style properties found"),T.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var e,t,n=this._current=this._next;if(this._current)if(e=n.firstChild)this._next=e;else{for(t=null;n!==this.root&&!(t=n.nextSibling);)n=n.parentNode;this._next=t}return this._current},detach:function(){this._current=this._next=this.root=null}},N.prototype={equals:function(e){return!!e&&this.node===e.node&&this.offset==e.offset},inspect:function(){return"[DomPosition("+k(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},O.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11,INVALID_NODE_TYPE_ERR:24},O.prototype.toString=function(){return this.message},e.dom={arrayContains:A,isHtmlNamespace:n,parentElement:i,getNodeIndex:r,getNodeLength:a,getCommonAncestor:o,isAncestorOf:s,isOrIsAncestorOf:l,getClosestAncestorIn:u,isCharacterDataNode:c,isTextOrCommentNode:d,insertAfter:p,splitDataNode:f,getDocument:h,getWindow:g,getIframeWindow:b,getIframeDocument:m,getBody:I,isWindow:v,getContentDocument:y,getRootContainer:w,comparePoints:x,isBrokenNode:$,inspectNode:k,getComputedStyleProperty:L,createTestElement:S,removeNode:E,fragmentFromNodeChildren:C,createIterator:D,DomPosition:N},e.DOMException=O}),H.createCoreModule("DomRange",["DomUtil"],function(e,t){function n(e,t){return 3!=e.nodeType&&(se(e,t.startContainer)||se(e,t.endContainer))}function i(e){return e.document||le(e.startContainer)}function r(e){return he(e.startContainer)}function a(e){return new ie(e.parentNode,oe(e))}function o(e){return new ie(e.parentNode,oe(e)+1)}function s(e,t,n){var i=11==e.nodeType?e.firstChild:e;return ae(t)?n==t.length?te.insertAfter(e,t):t.parentNode.insertBefore(e,0==n?t:ce(t,n)):n>=t.childNodes.length?t.appendChild(e):t.insertBefore(e,t.childNodes[n]),i}function l(e,t,n){if(S(e),S(t),i(t)!=i(e))throw new re("WRONG_DOCUMENT_ERR");var r=ue(e.startContainer,e.startOffset,t.endContainer,t.endOffset),a=ue(e.endContainer,e.endOffset,t.startContainer,t.startOffset);return n?0>=r&&a>=0:0>r&&a>0}function u(e){for(var t,n,r,a=i(e.range).createDocumentFragment();n=e.next();){if(t=e.isPartiallySelectedSubtree(),n=n.cloneNode(!t),t&&(r=e.getSubtreeIterator(),n.appendChild(u(r)),r.detach()),10==n.nodeType)throw new re("HIERARCHY_REQUEST_ERR");a.appendChild(n)}return a}function c(e,t,n){var i,r,a,o;for(n=n||{stop:!1};a=e.next();)if(e.isPartiallySelectedSubtree()){if(!1===t(a))return void(n.stop=!0);if(o=e.getSubtreeIterator(),c(o,t,n),o.detach(),n.stop)return}else for(i=te.createIterator(a);r=i.next();)if(!1===t(r))return void(n.stop=!0)}function d(e){for(var t;e.next();)e.isPartiallySelectedSubtree()?(t=e.getSubtreeIterator(),d(t),t.detach()):e.remove()}function p(e){for(var t,n,r=i(e.range).createDocumentFragment();t=e.next();){if(e.isPartiallySelectedSubtree()?(t=t.cloneNode(!1),n=e.getSubtreeIterator(),t.appendChild(p(n)),n.detach()):e.remove(),10==t.nodeType)throw new re("HIERARCHY_REQUEST_ERR");r.appendChild(t)}return r}function f(e,t,n){var i,r,a=!(!t||!t.length),o=!!n;return a&&(i=new RegExp("^("+t.join("|")+")$")),r=[],c(new g(e,!1),function(t){var s,l;a&&!i.test(t.nodeType)||o&&!n(t)||(s=e.startContainer,t==s&&ae(s)&&e.startOffset==s.length||(l=e.endContainer,t==l&&ae(l)&&0==e.endOffset||r.push(t)))}),r}function h(e){return"["+(void 0===e.getName?"Range":e.getName())+"("+te.inspectNode(e.startContainer)+":"+e.startOffset+", "+te.inspectNode(e.endContainer)+":"+e.endOffset+")]"}function g(e,t){if(this.range=e,this.clonePartiallySelectedTextNodes=t,!e.collapsed){this.sc=e.startContainer,this.so=e.startOffset,this.ec=e.endContainer,this.eo=e.endOffset;var n=e.commonAncestorContainer;this.sc===this.ec&&ae(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==n||ae(this.sc)?de(this.sc,n,!0):this.sc.childNodes[this.so],this._last=this.ec!==n||ae(this.ec)?de(this.ec,n,!0):this.ec.childNodes[this.eo-1])}}function m(e){return function(t,n){for(var i,r=n?t:t.parentNode;r;){if(i=r.nodeType,fe(e,i))return r;r=r.parentNode}return null}}function b(e,t){if(j(e,t))throw new re("INVALID_NODE_TYPE_ERR")}function v(e,t){if(!fe(t,e.nodeType))throw new re("INVALID_NODE_TYPE_ERR")}function y(e,t){if(0>t||t>(ae(e)?e.length:e.childNodes.length))throw new re("INDEX_SIZE_ERR")}function w(e,t){if(F(e,!0)!==F(t,!0))throw new re("WRONG_DOCUMENT_ERR")}function x(e){if(B(e,!0))throw new re("NO_MODIFICATION_ALLOWED_ERR")}function $(e,t){if(!e)throw new re(t)}function k(e,t){return t<=(ae(e)?e.length:e.childNodes.length)}function C(e){return!!e.startContainer&&!!e.endContainer&&!(ge&&(te.isBrokenNode(e.startContainer)||te.isBrokenNode(e.endContainer)))&&he(e.startContainer)==he(e.endContainer)&&k(e.startContainer,e.startOffset)&&k(e.endContainer,e.endOffset)}function S(e){if(!C(e))throw new Error("Range error: Range is not valid. This usually happens after DOM mutation. Range: ("+e.inspect()+")")}function E(e,t){S(e);var n=e.startContainer,i=e.startOffset,r=e.endContainer,a=e.endOffset,o=n===r;ae(r)&&a>0&&a<r.length&&ce(r,a,t),ae(n)&&i>0&&i<n.length&&(n=ce(n,i,t),o?(a-=i,r=n):r==n.parentNode&&a>=oe(n)&&a++,i=0),e.setStartAndEnd(n,i,r,a)}function T(e){S(e);var t=e.commonAncestorContainer.parentNode.cloneNode(!1);return t.appendChild(e.cloneContents()),t.innerHTML}function D(e){e.START_TO_START=W,e.START_TO_END=Q,e.END_TO_END=G,e.END_TO_START=Y,e.NODE_BEFORE=X,e.NODE_AFTER=J,e.NODE_BEFORE_AND_AFTER=Z,e.NODE_INSIDE=ee}function N(e){D(e),D(e.prototype)}function O(e,t){return function(){var n,i,r,a,s,l,u;return S(this),r=this.startContainer,a=this.startOffset,s=this.commonAncestorContainer,l=new g(this,!0),r!==s&&(n=de(r,s,!0),i=o(n),r=i.node,a=i.offset),c(l,x),l.reset(),u=e(l),l.detach(),t(this,r,a,r,a),u}}function M(t,i){function r(e,t){return function(n){v(n,L),v(he(n),P);var i=(e?a:o)(n);(t?s:l)(this,i.node,i.offset)}}function s(e,t,n){var r=e.endContainer,a=e.endOffset;(t!==e.startContainer||n!==e.startOffset)&&((he(t)!=he(r)||1==ue(t,n,r,a))&&(r=t,a=n),i(e,t,n,r,a))}function l(e,t,n){var r=e.startContainer,a=e.startOffset;(t!==e.endContainer||n!==e.endOffset)&&((he(t)!=he(r)||-1==ue(t,n,r,a))&&(r=t,a=n),i(e,r,a,t,n))}var u=function(){};u.prototype=e.rangePrototype,t.prototype=new u,ne.extend(t.prototype,{setStart:function(e,t){b(e,!0),y(e,t),s(this,e,t)},setEnd:function(e,t){b(e,!0),y(e,t),l(this,e,t)},setStartAndEnd:function(){var e=arguments,t=e[0],n=e[1],r=t,a=n;switch(e.length){case 3:a=e[2];break;case 4:r=e[2],a=e[3]}i(this,t,n,r,a)},setBoundary:function(e,t,n){this["set"+(n?"Start":"End")](e,t)},setStartBefore:r(!0,!0),setStartAfter:r(!1,!0),setEndBefore:r(!0,!1),setEndAfter:r(!1,!1),collapse:function(e){S(this),e?i(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):i(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(e){b(e,!0),i(this,e,0,e,pe(e))},selectNode:function(e){b(e,!1),v(e,L);var t=a(e),n=o(e);i(this,t.node,t.offset,n.node,n.offset)},extractContents:O(p,i),deleteContents:O(d,i),canSurroundContents:function(){S(this),x(this.startContainer),x(this.endContainer);var e=new g(this,!0),t=e._first&&n(e._first,this)||e._last&&n(e._last,this);return e.detach(),!t},splitBoundaries:function(){E(this)},splitBoundariesPreservingPositions:function(e){E(this,e)},normalizeBoundaries:function(){var e,t,n,r,a,o,s,l,u,c;S(this),t=this.startContainer,n=this.startOffset,r=this.endContainer,a=this.endOffset,o=function(e){var t=e.nextSibling;t&&t.nodeType==e.nodeType&&(r=e,a=e.length,e.appendData(t.data),me(t))},s=function(e){var i,o,s=e.previousSibling;s&&s.nodeType==e.nodeType&&(t=e,i=e.length,n=s.length,e.insertData(0,s.data),me(s),t==r?(a+=n,r=t):r==e.parentNode&&(o=oe(e),a==o?(r=e,a=i):a>o&&a--))},l=!0,ae(r)?a==r.length?o(r):0==a&&(e=r.previousSibling)&&e.nodeType==r.nodeType&&(a=e.length,t==r&&(l=!1),e.appendData(r.data),me(r),r=e):(a>0&&(u=r.childNodes[a-1])&&ae(u)&&o(u),l=!this.collapsed),l?ae(t)?0==n?s(t):n==t.length&&(e=t.nextSibling)&&e.nodeType==t.nodeType&&(r==e&&(r=t,a+=t.length),t.appendData(e.data),me(e)):n<t.childNodes.length&&(c=t.childNodes[n])&&ae(c)&&s(c):(t=r,n=a),i(this,t,n,r,a)},collapseToPoint:function(e,t){b(e,!0),y(e,t),this.setStartAndEnd(e,t)}}),N(t)}function R(e){e.collapsed=e.startContainer===e.endContainer&&e.startOffset===e.endOffset,e.commonAncestorContainer=e.collapsed?e.startContainer:te.getCommonAncestor(e.startContainer,e.endContainer)}function A(e,t,n,i,r){e.startContainer=t,e.startOffset=n,e.endContainer=i,e.endOffset=r,e.document=te.getDocument(t),R(e)}function _(e){this.startContainer=e,this.startOffset=0,this.endContainer=e,this.endOffset=0,this.document=e,R(this)}var L,P,q,I,H,F,B,j,U,z,V,K,W,Q,G,Y,X,J,Z,ee,te=e.dom,ne=e.util,ie=te.DomPosition,re=e.DOMException,ae=te.isCharacterDataNode,oe=te.getNodeIndex,se=te.isOrIsAncestorOf,le=te.getDocument,ue=te.comparePoints,ce=te.splitDataNode,de=te.getClosestAncestorIn,pe=te.getNodeLength,fe=te.arrayContains,he=te.getRootContainer,ge=e.features.crashyTextNodes,me=te.removeNode;g.prototype={_current:null,_next:null,_first:null,_last:null,isSingleCharacterDataNode:!1,reset:function(){this._current=null,this._next=this._first},hasNext:function(){return!!this._next},next:function(){var e=this._current=this._next;return e&&(this._next=e!==this._last?e.nextSibling:null,ae(e)&&this.clonePartiallySelectedTextNodes&&(e===this.ec&&(e=e.cloneNode(!0)).deleteData(this.eo,e.length-this.eo),this._current===this.sc&&(e=e.cloneNode(!0)).deleteData(0,this.so))),e},remove:function(){var e,t,n=this._current;!ae(n)||n!==this.sc&&n!==this.ec?n.parentNode&&me(n):(e=n===this.sc?this.so:0,t=n===this.ec?this.eo:n.length,e!=t&&n.deleteData(e,t-e))},isPartiallySelectedSubtree:function(){return n(this._current,this.range)},getSubtreeIterator:function(){var e,t,n,r,a,o;return this.isSingleCharacterDataNode?(e=this.range.cloneRange(),e.collapse(!1)):(e=new _(i(this.range)),t=this._current,n=t,r=0,a=t,o=pe(t),se(t,this.sc)&&(n=this.sc,r=this.so),se(t,this.ec)&&(a=this.ec,o=this.eo),A(e,n,r,a,o)),new g(e,this.clonePartiallySelectedTextNodes)},detach:function(){this.range=this._current=this._next=this._first=this._last=this.sc=this.so=this.ec=this.eo=null}},L=[1,3,4,5,7,8,10],P=[2,9,11],q=[5,6,10,12],I=[1,3,4,5,7,8,10,11],H=[1,3,4,5,7,8],F=m([9,11]),B=m(q),j=m([6,10,12]),U=document.createElement("style"),z=!1;try{U.innerHTML="<b>x</b>",z=3==U.firstChild.nodeType}catch(e){}e.features.htmlParsingConforms=z,V=z?function(e){var t,n=this.startContainer,i=le(n);if(!n)throw new re("INVALID_STATE_ERR");return t=null,1==n.nodeType?t=n:ae(n)&&(t=te.parentElement(n)),t=null===t||"HTML"==t.nodeName&&te.isHtmlNamespace(le(t).documentElement)&&te.isHtmlNamespace(t)?i.createElement("body"):t.cloneNode(!1),t.innerHTML=e,te.fragmentFromNodeChildren(t)}:function(e){var t=i(this),n=t.createElement("body");return n.innerHTML=e,te.fragmentFromNodeChildren(n)},K=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],W=0,Q=1,G=2,Y=3,X=0,J=1,Z=2,ee=3,ne.extend(e.rangePrototype,{compareBoundaryPoints:function(e,t){S(this),w(this.startContainer,t.startContainer);var n,i,r,a,o=e==Y||e==W?"start":"end",s=e==Q||e==W?"start":"end";return n=this[o+"Container"],i=this[o+"Offset"],r=t[s+"Container"],a=t[s+"Offset"],ue(n,i,r,a)},insertNode:function(e){if(S(this),v(e,I),x(this.startContainer),se(e,this.startContainer))throw new re("HIERARCHY_REQUEST_ERR");var t=s(e,this.startContainer,this.startOffset);this.setStartBefore(t)},cloneContents:function(){var e,t,n;return S(this),this.collapsed?i(this).createDocumentFragment():this.startContainer===this.endContainer&&ae(this.startContainer)?(e=this.startContainer.cloneNode(!0),e.data=e.data.slice(this.startOffset,this.endOffset),t=i(this).createDocumentFragment(),t.appendChild(e),t):(n=new g(this,!0),e=u(n),n.detach(),e)},canSurroundContents:function(){S(this),x(this.startContainer),x(this.endContainer);var e=new g(this,!0),t=e._first&&n(e._first,this)||e._last&&n(e._last,this);return e.detach(),!t},surroundContents:function(e){if(v(e,H),!this.canSurroundContents())throw new re("INVALID_STATE_ERR");var t=this.extractContents();if(e.hasChildNodes())for(;e.lastChild;)e.removeChild(e.lastChild);s(e,this.startContainer,this.startOffset),e.appendChild(t),this.selectNode(e)},cloneRange:function(){S(this);for(var e,t=new _(i(this)),n=K.length;n--;)e=K[n],t[e]=this[e];return t},toString:function(){var e,t,n;return S(this),(e=this.startContainer)===this.endContainer&&ae(e)?3==e.nodeType||4==e.nodeType?e.data.slice(this.startOffset,this.endOffset):"":(t=[],n=new g(this,!0),c(n,function(e){(3==e.nodeType||4==e.nodeType)&&t.push(e.data)}),n.detach(),t.join(""))},compareNode:function(e){var t,n,i,r;if(S(this),t=e.parentNode,n=oe(e),!t)throw new re("NOT_FOUND_ERR");return i=this.comparePoint(t,n),r=this.comparePoint(t,n+1),0>i?r>0?Z:X:r>0?J:ee},comparePoint:function(e,t){return S(this),$(e,"HIERARCHY_REQUEST_ERR"),w(e,this.startContainer),ue(e,t,this.startContainer,this.startOffset)<0?-1:ue(e,t,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:V,toHtml:function(){return T(this)},intersectsNode:function(e,t){var n,i,a,o;return S(this),he(e)==r(this)&&(n=e.parentNode,i=oe(e),!n||(a=ue(n,i,this.endContainer,this.endOffset),o=ue(n,i+1,this.startContainer,this.startOffset),t?0>=a&&o>=0:0>a&&o>0))},isPointInRange:function(e,t){return S(this),$(e,"HIERARCHY_REQUEST_ERR"),w(e,this.startContainer),ue(e,t,this.startContainer,this.startOffset)>=0&&ue(e,t,this.endContainer,this.endOffset)<=0},intersectsRange:function(e){return l(this,e,!1)},intersectsOrTouchesRange:function(e){return l(this,e,!0)},intersection:function(e){if(this.intersectsRange(e)){var t=ue(this.startContainer,this.startOffset,e.startContainer,e.startOffset),n=ue(this.endContainer,this.endOffset,e.endContainer,e.endOffset),i=this.cloneRange();return-1==t&&i.setStart(e.startContainer,e.startOffset),1==n&&i.setEnd(e.endContainer,e.endOffset),i}return null},union:function(e){if(this.intersectsOrTouchesRange(e)){var t=this.cloneRange();return-1==ue(e.startContainer,e.startOffset,this.startContainer,this.startOffset)&&t.setStart(e.startContainer,e.startOffset),1==ue(e.endContainer,e.endOffset,this.endContainer,this.endOffset)&&t.setEnd(e.endContainer,e.endOffset),t}throw new re("Ranges do not intersect")},containsNode:function(e,t){return t?this.intersectsNode(e,!1):this.compareNode(e)==ee},containsNodeContents:function(e){return this.comparePoint(e,0)>=0&&this.comparePoint(e,pe(e))<=0},containsRange:function(e){var t=this.intersection(e);return null!==t&&e.equals(t)},containsNodeText:function(e){var t,n,i=this.cloneRange();return i.selectNode(e),t=i.getNodes([3]),t.length>0?(i.setStart(t[0],0),n=t.pop(),i.setEnd(n,n.length),this.containsRange(i)):this.containsNodeContents(e)},getNodes:function(e,t){return S(this),f(this,e,t)},getDocument:function(){return i(this)},collapseBefore:function(e){this.setEndBefore(e),this.collapse(!1)},collapseAfter:function(e){this.setStartAfter(e),this.collapse(!0)},getBookmark:function(t){var n,r,a,o=i(this),s=e.createRange(o);return t=t||te.getBody(o),s.selectNodeContents(t),n=this.intersection(s),r=0,a=0,n&&(s.setEnd(n.startContainer,n.startOffset),r=s.toString().length,a=r+n.toString().length),{start:r,end:a,containerNode:t}},moveToBookmark:function(e){var t,n,i,r,a,o,s,l=e.containerNode,u=0;for(this.setStart(l,0),this.collapse(!0),a=[l],o=!1,s=!1;!s&&(t=a.pop());)if(3==t.nodeType)n=u+t.length,!o&&e.start>=u&&e.start<=n&&(this.setStart(t,e.start-u),o=!0),o&&e.end>=u&&e.end<=n&&(this.setEnd(t,e.end-u),s=!0),u=n;else for(r=t.childNodes,i=r.length;i--;)a.push(r[i])},getName:function(){return"DomRange"},equals:function(e){return _.rangesEqual(this,e)},isValid:function(){return C(this)},inspect:function(){return h(this)},detach:function(){}}),M(_,A),ne.extend(_,{rangeProperties:K,RangeIterator:g,copyComparisonConstants:N,createPrototypeRange:M,inspect:h,toHtml:T,getRangeDocument:i,rangesEqual:function(e,t){return e.startContainer===t.startContainer&&e.startOffset===t.startOffset&&e.endContainer===t.endContainer&&e.endOffset===t.endOffset}}),e.DomRange=_}),H.createCoreModule("WrappedRange",["DomRange"],function(e,t){var n,i,r,a,o,s,l,u,c=e.dom,d=e.util,p=c.DomPosition,f=e.DomRange,h=c.getBody,g=c.getContentDocument,m=c.isCharacterDataNode;e.features.implementsDomRange&&function(){function i(e){for(var t,n=v.length;n--;)t=v[n],e[t]=e.nativeRange[t];e.collapsed=e.startContainer===e.endContainer&&e.startOffset===e.endOffset}function r(e,t,n,i,r){var a=e.startContainer!==t||e.startOffset!=n,o=e.endContainer!==i||e.endOffset!=r,s=!e.equals(e.nativeRange);(a||o||s)&&(e.setEnd(i,r),e.setStart(t,n))}var a,o,s,l,u,p,m,b,v=f.rangeProperties;n=function(e){if(!e)throw t.createError("WrappedRange: Range must be specified");this.nativeRange=e,i(this)},f.createPrototypeRange(n,r),a=n.prototype,a.selectNode=function(e){this.nativeRange.selectNode(e),i(this)},a.cloneContents=function(){return this.nativeRange.cloneContents()},a.surroundContents=function(e){this.nativeRange.surroundContents(e),i(this)},a.collapse=function(e){this.nativeRange.collapse(e),i(this)},a.cloneRange=function(){return new n(this.nativeRange.cloneRange())},a.refresh=function(){i(this)},a.toString=function(){return this.nativeRange.toString()},s=document.createTextNode("test"),h(document).appendChild(s),l=document.createRange(),l.setStart(s,0),l.setEnd(s,0);try{l.setStart(s,1),a.setStart=function(e,t){this.nativeRange.setStart(e,t),i(this)},a.setEnd=function(e,t){this.nativeRange.setEnd(e,t),i(this)},o=function(e){return function(t){this.nativeRange[e](t),i(this)}}}catch(e){a.setStart=function(e,t){try{this.nativeRange.setStart(e,t)}catch(n){this.nativeRange.setEnd(e,t),this.nativeRange.setStart(e,t)}i(this)},a.setEnd=function(e,t){try{this.nativeRange.setEnd(e,t)}catch(n){this.nativeRange.setStart(e,t),this.nativeRange.setEnd(e,t)}i(this)},o=function(e,t){return function(n){try{this.nativeRange[e](n)}catch(i){this.nativeRange[t](n),this.nativeRange[e](n)}i(this)}}}a.setStartBefore=o("setStartBefore","setEndBefore"),a.setStartAfter=o("setStartAfter","setEndAfter"),a.setEndBefore=o("setEndBefore","setStartBefore"),a.setEndAfter=o("setEndAfter","setStartAfter"),a.selectNodeContents=function(e){this.setStartAndEnd(e,0,c.getNodeLength(e))},l.selectNodeContents(s),l.setEnd(s,3),u=document.createRange(),u.selectNodeContents(s),u.setEnd(s,4),u.setStart(s,2),-1==l.compareBoundaryPoints(l.START_TO_END,u)&&1==l.compareBoundaryPoints(l.END_TO_START,u)?a.compareBoundaryPoints=function(e,t){return t=t.nativeRange||t,e==t.START_TO_END?e=t.END_TO_START:e==t.END_TO_START&&(e=t.START_TO_END),this.nativeRange.compareBoundaryPoints(e,t)}:a.compareBoundaryPoints=function(e,t){return this.nativeRange.compareBoundaryPoints(e,t.nativeRange||t)},p=document.createElement("div"),p.innerHTML="123",m=p.firstChild,b=h(document),b.appendChild(p),l.setStart(m,1),l.setEnd(m,2),l.deleteContents(),"13"==m.data&&(a.deleteContents=function(){this.nativeRange.deleteContents(),i(this)},a.extractContents=function(){var e=this.nativeRange.extractContents();return i(this),e}),b.removeChild(p),b=null,d.isHostMethod(l,"createContextualFragment")&&(a.createContextualFragment=function(e){return this.nativeRange.createContextualFragment(e)}),h(document).removeChild(s),a.getName=function(){return"WrappedRange"},e.WrappedRange=n,e.createNativeRange=function(e){return e=g(e,t,"createNativeRange"),e.createRange()}}(),e.features.implementsTextRange&&(r=function(e){var t,n,i,r=e.parentElement(),a=e.duplicate();return a.collapse(!0),t=a.parentElement(),a=e.duplicate(),a.collapse(!1),n=a.parentElement(),i=t==n?t:c.getCommonAncestor(t,n),i==r?i:c.getCommonAncestor(r,i)},a=function(e){return 0==e.compareEndPoints("StartToEnd",e)},o=function(e,t,n,i,r){var a,o,s,l,u,d,f,h,g,b,v,y,w,x,$,k,C=e.duplicate();if(C.collapse(n),a=C.parentElement(),c.isOrIsAncestorOf(t,a)||(a=t),!a.canHaveHTML)return o=new p(a.parentNode,c.getNodeIndex(a)),{boundaryPosition:o,nodeInfo:{nodeIndex:o.offset,containerElement:o.node}};for(s=c.getDocument(a).createElement("span"),s.parentNode&&c.removeNode(s),g=n?"StartToStart":"StartToEnd",b=r&&r.containerElement==a?r.nodeIndex:0,v=a.childNodes.length,y=v,w=y;w==v?a.appendChild(s):a.insertBefore(s,a.childNodes[w]),C.moveToElementText(s),0!=(l=C.compareEndPoints(g,e))&&b!=y;){if(-1==l){if(y==b+1)break;b=w}else y=y==b+1?b:w;w=Math.floor((b+y)/2),a.removeChild(s)}if(h=s.nextSibling,-1==l&&h&&m(h)){if(C.setEndPoint(n?"EndToStart":"EndToEnd",e),/[\r\n]/.test(h.data))for($=C.duplicate(),k=$.text.replace(/\r\n/g,"\r").length,x=$.moveStart("character",k);-1==(l=$.compareEndPoints("StartToEnd",$));)x++,$.moveStart("character",1);else x=C.text.length;f=new p(h,x)}else u=(i||!n)&&s.previousSibling,d=(i||n)&&s.nextSibling,f=d&&m(d)?new p(d,0):u&&m(u)?new p(u,u.data.length):new p(a,c.getNodeIndex(s));return c.removeNode(s),{boundaryPosition:f,nodeInfo:{nodeIndex:w,containerElement:a}}},s=function(e,t){var n,i,r,a,o=e.offset,s=c.getDocument(e.node),l=h(s).createTextRange(),u=m(e.node);return u?(n=e.node,i=n.parentNode):(a=e.node.childNodes,n=o<a.length?a[o]:null,i=e.node),r=s.createElement("span"),r.innerHTML="&#feff;",n?i.insertBefore(r,n):i.appendChild(r),l.moveToElementText(r),l.collapse(!t),i.removeChild(r),u&&l[t?"moveStart":"moveEnd"]("character",o),l},i=function(e){this.textRange=e,this.refresh()},i.prototype=new f(document),i.prototype.refresh=function(){var e,t,n,i=r(this.textRange);a(this.textRange)?t=e=o(this.textRange,i,!0,!0).boundaryPosition:(n=o(this.textRange,i,!0,!1),e=n.boundaryPosition,t=o(this.textRange,i,!1,!1,n.nodeInfo).boundaryPosition),this.setStart(e.node,e.offset),this.setEnd(t.node,t.offset)},i.prototype.getName=function(){return"WrappedTextRange"},f.copyComparisonConstants(i),l=function(e){if(e.collapsed)return s(new p(e.startContainer,e.startOffset),!0);var t=s(new p(e.startContainer,e.startOffset),!0),n=s(new p(e.endContainer,e.endOffset),!1),i=h(f.getRangeDocument(e)).createTextRange();return i.setEndPoint("StartToStart",t),i.setEndPoint("EndToEnd",n),i},i.rangeToTextRange=l,i.prototype.toTextRange=function(){return l(this)},e.WrappedTextRange=i,(!e.features.implementsDomRange||e.config.preferTextRange)&&(u=function(e){return e("return this;")()}(Function),void 0===u.Range&&(u.Range=i),e.createNativeRange=function(e){return e=g(e,t,"createNativeRange"),h(e).createTextRange()},e.WrappedRange=i)),e.createRange=function(n){return n=g(n,t,"createRange"),new e.WrappedRange(e.createNativeRange(n))},e.createRangyRange=function(e){return e=g(e,t,"createRangyRange"),new f(e)},d.createAliasForDeprecatedMethod(e,"createIframeRange","createRange"),d.createAliasForDeprecatedMethod(e,"createIframeRangyRange","createRangyRange"),e.addShimListener(function(t){var n=t.document;void 0===n.createRange&&(n.createRange=function(){return e.createRange(n)}),n=t=null})}),H.createCoreModule("WrappedSelection",["DomRange","WrappedRange"],function(e,t){function n(e){return"string"==typeof e?/^backward(s)?$/i.test(e):!!e}function i(e,n){if(e){if(D.isWindow(e))return e;if(e instanceof b)return e.win;var i=D.getContentDocument(e,t,n);return D.getWindow(i)}return window}function r(e){return i(e,"getWinSelection").getSelection()}function a(e){return i(e,"getDocSelection").document.selection}function o(e){var t=!1;return e.anchorNode&&(t=1==D.comparePoints(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOffset)),t}function s(e,t,n){var i=n?"end":"start",r=n?"start":"end";e.anchorNode=t[i+"Container"],e.anchorOffset=t[i+"Offset"],e.focusNode=t[r+"Container"],e.focusOffset=t[r+"Offset"]}function l(e){var t=e.nativeSelection;e.anchorNode=t.anchorNode,e.anchorOffset=t.anchorOffset,e.focusNode=t.focusNode,e.focusOffset=t.focusOffset}function u(e){e.anchorNode=e.focusNode=null,e.anchorOffset=e.focusOffset=0,e.rangeCount=0,e.isCollapsed=!0,e._ranges.length=0}function c(t){var n;return t instanceof M?(n=e.createNativeRange(t.getDocument()),n.setEnd(t.endContainer,t.endOffset),n.setStart(t.startContainer,t.startOffset)):t instanceof R?n=t.nativeRange:L.implementsDomRange&&t instanceof D.getWindow(t.startContainer).Range&&(n=t),n}function d(e){if(!e.length||1!=e[0].nodeType)return!1;for(var t=1,n=e.length;n>t;++t)if(!D.isAncestorOf(e[0],e[t]))return!1;return!0}function p(e){var n=e.getNodes();if(!d(n))throw t.createError("getSingleElementFromRange: range "+e.inspect()+" did not consist of a single element");return n[0]}function f(e){return!!e&&void 0!==e.text}function h(e,t){var n=new R(t);e._ranges=[n],s(e,n,!1),e.rangeCount=1,e.isCollapsed=n.collapsed}function g(t){var n,i,r,a;if(t._ranges.length=0,"None"==t.docSelection.type)u(t);else if(n=t.docSelection.createRange(),f(n))h(t,n);else{for(t.rangeCount=n.length,r=q(n.item(0)),a=0;a<t.rangeCount;++a)i=e.createRange(r),i.selectNode(n.item(a)),t._ranges.push(i);t.isCollapsed=1==t.rangeCount&&t._ranges[0].collapsed,s(t,t._ranges[t.rangeCount-1],!1)}}function m(e,n){for(var i=e.docSelection.createRange(),r=p(n),a=q(i.item(0)),o=I(a).createControlRange(),s=0,l=i.length;l>s;++s)o.add(i.item(s));try{o.add(r)}catch(e){throw t.createError("addRange(): Element within the specified Range could not be added to control selection (does it have layout?)")}o.select(),g(e)}function b(e,t,n){this.nativeSelection=e,this.docSelection=t,this._ranges=[],this.win=n,this.refresh()}function v(e){e.win=e.anchorNode=e.focusNode=e._ranges=null,e.rangeCount=e.anchorOffset=e.focusOffset=0,e.detached=!0}function y(e,t){for(var n,i,r=te.length;r--;)if(n=te[r],i=n.selection,"deleteAll"==t)v(i);else if(n.win==e)return"delete"==t?(te.splice(r,1),!0):i;return"deleteAll"==t&&(te.length=0),null}function w(e,n){for(var i,r=q(n[0].startContainer),a=I(r).createControlRange(),o=0,s=n.length;s>o;++o){i=p(n[o]);try{a.add(i)}catch(e){throw t.createError("setRanges(): Element within one of the specified Ranges could not be added to control selection (does it have layout?)")}}a.select(),g(e)}function x(e,t){if(e.win.document!=q(t))throw new A("WRONG_DOCUMENT_ERR")}function $(t){return function(n,i){var r;this.rangeCount?(r=this.getRangeAt(0),r["set"+(t?"Start":"End")](n,i)):(r=e.createRange(this.win.document),r.setStartAndEnd(n,i)),this.setSingleRange(r,this.isBackward())}}function k(e){var t,n,i=[],r=new _(e.anchorNode,e.anchorOffset),a=new _(e.focusNode,e.focusOffset),o="function"==typeof e.getName?e.getName():"Selection";if(void 0!==e.rangeCount)for(t=0,n=e.rangeCount;n>t;++t)i[t]=M.inspect(e.getRangeAt(t))
;return"["+o+"(Ranges: "+i.join(", ")+")(anchor: "+r.inspect()+", focus: "+a.inspect()+"]"}var C,S,E,T,D,N,O,M,R,A,_,L,P,q,I,H,F,B,j,U,z,V,K,W,Q,G,Y,X,J,Z,ee,te,ne,ie,re,ae,oe,se;if(e.config.checkSelectionRanges=!0,E="boolean",T="number",D=e.dom,N=e.util,O=N.isHostMethod,M=e.DomRange,R=e.WrappedRange,A=e.DOMException,_=D.DomPosition,L=e.features,P="Control",q=D.getDocument,I=D.getBody,H=M.rangesEqual,F=O(window,"getSelection"),B=N.isHostObject(document,"selection"),L.implementsWinGetSelection=F,L.implementsDocSelection=B,j=B&&(!F||e.config.preferTextRange))C=a,e.isSelectionValid=function(e){var t=i(e,"isSelectionValid").document,n=t.selection;return"None"!=n.type||q(n.createRange().parentElement())==t};else{if(!F)return t.fail("Neither document.selection or window.getSelection() detected."),!1;C=r,e.isSelectionValid=function(){return!0}}if(e.getNativeSelection=C,!(U=C()))return t.fail("Native selection was null (possibly issue 138?)"),!1;if(z=e.createNativeRange(document),V=I(document),K=N.areHostProperties(U,["anchorNode","focusNode","anchorOffset","focusOffset"]),L.selectionHasAnchorAndFocus=K,W=O(U,"extend"),L.selectionHasExtend=W,Q=typeof U.rangeCount==T,L.selectionHasRangeCount=Q,G=!1,Y=!0,X=W?function(t,n){var i=M.getRangeDocument(n),r=e.createRange(i);r.collapseToPoint(n.endContainer,n.endOffset),t.addRange(c(r)),t.extend(n.startContainer,n.startOffset)}:null,N.areHostMethods(U,["addRange","getRangeAt","removeAllRanges"])&&typeof U.rangeCount==T&&L.implementsDomRange&&function(){var t,n,i,r,a,s,l,u,c,d,p=window.getSelection();if(p){for(t=p.rangeCount,n=t>1,i=[],r=o(p),a=0;t>a;++a)i[a]=p.getRangeAt(a);for(s=D.createTestElement(document,"",!1),l=s.appendChild(document.createTextNode(" ")),u=document.createRange(),u.setStart(l,1),u.collapse(!0),p.removeAllRanges(),p.addRange(u),Y=1==p.rangeCount,p.removeAllRanges(),n||(c=window.navigator.appVersion.match(/Chrome\/(.*?) /),c&&parseInt(c[1])>=36?G=!1:(d=u.cloneRange(),u.setStart(l,0),d.setEnd(l,3),d.setStart(l,2),p.addRange(u),p.addRange(d),G=2==p.rangeCount)),D.removeNode(s),p.removeAllRanges(),a=0;t>a;++a)0==a&&r?X?X(p,i[a]):(e.warn("Rangy initialization: original selection was backwards but selection has been restored forwards because the browser does not support Selection.extend"),p.addRange(i[a])):p.addRange(i[a])}}(),L.selectionSupportsMultipleRanges=G,L.collapsedNonEditableSelectionsSupported=Y,Z=!1,V&&O(V,"createControlRange")&&(J=V.createControlRange(),N.areHostProperties(J,["item","add"])&&(Z=!0)),L.implementsControlRange=Z,S=K?function(e){return e.anchorNode===e.focusNode&&e.anchorOffset===e.focusOffset}:function(e){return!!e.rangeCount&&e.getRangeAt(e.rangeCount-1).collapsed},O(U,"getRangeAt")?ee=function(e,t){try{return e.getRangeAt(t)}catch(e){return null}}:K&&(ee=function(t){var n=q(t.anchorNode),i=e.createRange(n);return i.setStartAndEnd(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset),i.collapsed!==this.isCollapsed&&i.setStartAndEnd(t.focusNode,t.focusOffset,t.anchorNode,t.anchorOffset),i}),b.prototype=e.selectionPrototype,te=[],ne=function(e){if(e&&e instanceof b)return e.refresh(),e;e=i(e,"getNativeSelection");var t=y(e),n=C(e),r=B?a(e):null;return t?(t.nativeSelection=n,t.docSelection=r,t.refresh()):(t=new b(n,r,e),te.push({win:e,selection:t})),t},e.getSelection=ne,N.createAliasForDeprecatedMethod(e,"getIframeSelection","getSelection"),ie=b.prototype,!j&&K&&N.areHostMethods(U,["removeAllRanges","addRange"]))ie.removeAllRanges=function(){this.nativeSelection.removeAllRanges(),u(this)},re=function(e,t){X(e.nativeSelection,t),e.refresh()},ie.addRange=Q?function(t,i){var r,a,o;if(Z&&B&&this.docSelection.type==P)m(this,t);else if(n(i)&&W)re(this,t);else{G?r=this.rangeCount:(this.removeAllRanges(),r=0),a=c(t).cloneRange();try{this.nativeSelection.addRange(a)}catch(e){}this.rangeCount=this.nativeSelection.rangeCount,this.rangeCount==r+1?(e.config.checkSelectionRanges&&(o=ee(this.nativeSelection,this.rangeCount-1))&&!H(o,t)&&(t=new R(o)),this._ranges[this.rangeCount-1]=t,s(this,t,se(this.nativeSelection)),this.isCollapsed=S(this)):this.refresh()}}:function(e,t){n(t)&&W?re(this,e):(this.nativeSelection.addRange(c(e)),this.refresh())},ie.setRanges=function(e){if(Z&&B&&e.length>1)w(this,e);else{this.removeAllRanges();for(var t=0,n=e.length;n>t;++t)this.addRange(e[t])}};else{if(!(O(U,"empty")&&O(z,"select")&&Z&&j))return t.fail("No means of selecting a Range or TextRange was found"),!1;ie.removeAllRanges=function(){var e,t,n;try{this.docSelection.empty(),"None"!=this.docSelection.type&&(this.anchorNode?e=q(this.anchorNode):this.docSelection.type==P&&(t=this.docSelection.createRange(),t.length&&(e=q(t.item(0)))),e&&(n=I(e).createTextRange(),n.select(),this.docSelection.empty()))}catch(e){}u(this)},ie.addRange=function(t){this.docSelection.type==P?m(this,t):(e.WrappedTextRange.rangeToTextRange(t).select(),this._ranges[0]=t,this.rangeCount=1,this.isCollapsed=this._ranges[0].collapsed,s(this,t,!1))},ie.setRanges=function(e){this.removeAllRanges();var t=e.length;t>1?w(this,e):t&&this.addRange(e[0])}}if(ie.getRangeAt=function(e){if(0>e||e>=this.rangeCount)throw new A("INDEX_SIZE_ERR");return this._ranges[e].cloneRange()},j)ae=function(t){var n;e.isSelectionValid(t.win)?n=t.docSelection.createRange():(n=I(t.win.document).createTextRange(),n.collapse(!0)),t.docSelection.type==P?g(t):f(n)?h(t,n):u(t)};else if(O(U,"getRangeAt")&&typeof U.rangeCount==T)ae=function(t){if(Z&&B&&t.docSelection.type==P)g(t);else if(t._ranges.length=t.rangeCount=t.nativeSelection.rangeCount,t.rangeCount){for(var n=0,i=t.rangeCount;i>n;++n)t._ranges[n]=new e.WrappedRange(t.nativeSelection.getRangeAt(n));s(t,t._ranges[t.rangeCount-1],se(t.nativeSelection)),t.isCollapsed=S(t)}else u(t)};else{if(!K||typeof U.isCollapsed!=E||typeof z.collapsed!=E||!L.implementsDomRange)return t.fail("No means of obtaining a Range or TextRange from the user's selection was found"),!1;ae=function(e){var t,n=e.nativeSelection;n.anchorNode?(t=ee(n,0),e._ranges=[t],e.rangeCount=1,l(e),e.isCollapsed=S(e)):u(e)}}ie.refresh=function(e){var t,n=e?this._ranges.slice(0):null,i=this.anchorNode,r=this.anchorOffset;if(ae(this),e){if((t=n.length)!=this._ranges.length)return!0;if(this.anchorNode!=i||this.anchorOffset!=r)return!0;for(;t--;)if(!H(n[t],this._ranges[t]))return!0;return!1}},oe=function(e,t){var n,i,r=e.getAllRanges();for(e.removeAllRanges(),n=0,i=r.length;i>n;++n)H(t,r[n])||e.addRange(r[n]);e.rangeCount||u(e)},ie.removeRange=Z&&B?function(e){if(this.docSelection.type==P){for(var t,n=this.docSelection.createRange(),i=p(e),r=q(n.item(0)),a=I(r).createControlRange(),o=!1,s=0,l=n.length;l>s;++s)t=n.item(s),t!==i||o?a.add(n.item(s)):o=!0;a.select(),g(this)}else oe(this,e)}:function(e){oe(this,e)},!j&&K&&L.implementsDomRange?(se=o,ie.isBackward=function(){return se(this)}):se=ie.isBackward=function(){return!1},ie.isBackwards=ie.isBackward,ie.toString=function(){for(var e=[],t=0,n=this.rangeCount;n>t;++t)e[t]=""+this._ranges[t];return e.join("")},ie.collapse=function(t,n){x(this,t);var i=e.createRange(t);i.collapseToPoint(t,n),this.setSingleRange(i),this.isCollapsed=!0},ie.collapseToStart=function(){if(!this.rangeCount)throw new A("INVALID_STATE_ERR");var e=this._ranges[0];this.collapse(e.startContainer,e.startOffset)},ie.collapseToEnd=function(){if(!this.rangeCount)throw new A("INVALID_STATE_ERR");var e=this._ranges[this.rangeCount-1];this.collapse(e.endContainer,e.endOffset)},ie.selectAllChildren=function(t){x(this,t);var n=e.createRange(t);n.selectNodeContents(t),this.setSingleRange(n)},ie.deleteFromDocument=function(){var e,t,n,i,r;if(Z&&B&&this.docSelection.type==P){for(t=this.docSelection.createRange();t.length;)e=t.item(0),t.remove(e),D.removeNode(e);this.refresh()}else if(this.rangeCount&&(n=this.getAllRanges(),n.length)){for(this.removeAllRanges(),i=0,r=n.length;r>i;++i)n[i].deleteContents();this.addRange(n[r-1])}},ie.eachRange=function(e,t){for(var n=0,i=this._ranges.length;i>n;++n)if(e(this.getRangeAt(n)))return t},ie.getAllRanges=function(){var e=[];return this.eachRange(function(t){e.push(t)}),e},ie.setSingleRange=function(e,t){this.removeAllRanges(),this.addRange(e,t)},ie.callMethodOnEachRange=function(e,t){var n=[];return this.eachRange(function(i){n.push(i[e].apply(i,t||[]))}),n},ie.setStart=$(!0),ie.setEnd=$(!1),e.rangePrototype.select=function(e){ne(this.getDocument()).setSingleRange(this,e)},ie.changeEachRange=function(e){var t=[],n=this.isBackward();this.eachRange(function(n){e(n),t.push(n)}),this.removeAllRanges(),n&&1==t.length?this.addRange(t[0],"backward"):this.setRanges(t)},ie.containsNode=function(e,t){return this.eachRange(function(n){return n.containsNode(e,t)},!0)||!1},ie.getBookmark=function(e){return{backward:this.isBackward(),rangeBookmarks:this.callMethodOnEachRange("getBookmark",[e])}},ie.moveToBookmark=function(t){for(var n,i,r=[],a=0;n=t.rangeBookmarks[a++];)i=e.createRange(this.win),i.moveToBookmark(n),r.push(i);t.backward?this.setSingleRange(r[0],"backward"):this.setRanges(r)},ie.saveRanges=function(){return{backward:this.isBackward(),ranges:this.callMethodOnEachRange("cloneRange")}},ie.restoreRanges=function(e){this.removeAllRanges();for(var t,n=0;t=e.ranges[n];++n)this.addRange(t,e.backward&&0==n)},ie.toHtml=function(){var e=[];return this.eachRange(function(t){e.push(M.toHtml(t))}),e.join("")},L.implementsTextRange&&(ie.getNativeTextRange=function(){var n,i;if(n=this.docSelection){if(i=n.createRange(),f(i))return i;throw t.createError("getNativeTextRange: selection is a control selection")}if(this.rangeCount>0)return e.WrappedTextRange.rangeToTextRange(this.getRangeAt(0));throw t.createError("getNativeTextRange: selection contains no range")}),ie.getName=function(){return"WrappedSelection"},ie.inspect=function(){return k(this)},ie.detach=function(){y(this.win,"delete"),v(this)},b.detachAll=function(){y(null,"deleteAll")},b.inspect=k,b.isDirectionBackward=n,e.Selection=b,e.selectionPrototype=ie,e.addShimListener(function(e){void 0===e.getSelection&&(e.getSelection=function(){return ne(e)}),e=null})}),k=!1,C=function(e){k||(k=!0,!H.initialized&&H.config.autoInitialize&&d())},q&&("complete"==document.readyState?C():(e(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",C,!1),w(window,"load",C))),H},this),function(t,n){"function"==typeof define&&define.amd?define(["./rangy-core"],t):"undefined"!=typeof module&&"object"==typeof e?module.exports=t(require("rangy")):t(n.rangy)}(function(e){return e.createModule("SaveRestore",["WrappedRange"],function(e,t){function n(e,t){return(t||document).getElementById(e)}function i(e,t){var n,i="selectionBoundary_"+ +new Date+"_"+(""+Math.random()).slice(2),r=h.getDocument(e.startContainer),a=e.cloneRange();return a.collapse(t),n=r.createElement("span"),n.id=i,n.style.lineHeight="0",n.style.display="none",n.className="rangySelectionBoundary",n.appendChild(r.createTextNode(b)),a.insertNode(n),n}function r(e,i,r,a){var o=n(r,e);o?(i[a?"setStartBefore":"setEndBefore"](o),g(o)):t.warn("Marker element has been removed. Cannot restore selection.")}function a(e,t){return t.compareBoundaryPoints(e.START_TO_START,e)}function o(t,n){var r,a,o=e.DomRange.getRangeDocument(t),s=t.toString(),l=m(n);return t.collapsed?(a=i(t,!1),{document:o,markerId:a.id,collapsed:!0}):(a=i(t,!1),r=i(t,!0),{document:o,startMarkerId:r.id,endMarkerId:a.id,collapsed:!1,backward:l,toString:function(){return"original text: '"+s+"', new text: '"+t.toString()+"'"}})}function s(i,a){var o,s,l,u=i.document;return void 0===a&&(a=!0),o=e.createRange(u),i.collapsed?(s=n(i.markerId,u),s?(s.style.display="inline",l=s.previousSibling,l&&3==l.nodeType?(g(s),o.collapseToPoint(l,l.length)):(o.collapseBefore(s),g(s))):t.warn("Marker element has been removed. Cannot restore selection.")):(r(u,o,i.startMarkerId,!0),r(u,o,i.endMarkerId,!1)),a&&o.normalizeBoundaries(),o}function l(t,i){var r,s,l,u,c=[],d=m(i);for(t=t.slice(0),t.sort(a),l=0,u=t.length;u>l;++l)c[l]=o(t[l],d);for(l=u-1;l>=0;--l)r=t[l],s=e.DomRange.getRangeDocument(r),r.collapsed?r.collapseAfter(n(c[l].markerId,s)):(r.setEndBefore(n(c[l].endMarkerId,s)),r.setStartAfter(n(c[l].startMarkerId,s)));return c}function u(n){if(!e.isSelectionValid(n))return t.warn("Cannot save selection. This usually happens when the selection is collapsed and the selection document has lost focus."),null;var i=e.getSelection(n),r=i.getAllRanges(),a=1==r.length&&i.isBackward(),o=l(r,a);return a?i.setSingleRange(r[0],a):i.setRanges(r),{win:n,rangeInfos:o,restored:!1}}function c(e){for(var t=[],n=e.length,i=n-1;i>=0;i--)t[i]=s(e[i],!0);return t}function d(t,n){if(!t.restored){var i=t.rangeInfos,r=e.getSelection(t.win),a=c(i);1==i.length&&n&&e.features.selectionHasExtend&&i[0].backward?(r.removeAllRanges(),r.addRange(a[0],!0)):r.setRanges(a),t.restored=!0}}function p(e,t){var i=n(t,e);i&&g(i)}function f(e){for(var t,n=e.rangeInfos,i=0,r=n.length;r>i;++i)t=n[i],t.collapsed?p(e.doc,t.markerId):(p(e.doc,t.startMarkerId),p(e.doc,t.endMarkerId))}var h=e.dom,g=h.removeNode,m=e.Selection.isDirectionBackward,b="\ufeff";e.util.extend(e,{saveRange:o,restoreRange:s,saveRanges:l,restoreRanges:c,saveSelection:u,restoreSelection:d,removeMarkerElement:p,removeMarkers:f})}),e},this)}({},function(){return this}()),function(e,t,n){"use strict";function i(){this.$get=["$$sanitizeUri",function(e){return function(t){void 0!==arguments[1]&&(arguments[1].version="taSanitize");var n=[];return o(t,d(n,function(t,n){return!/^unsafe/.test(e(t,n))})),n.join("")}}]}function r(e){var n=[];return d(n,t.noop).chars(e),n.join("")}function a(e){var t,n={},i=e.split(",");for(t=0;t<i.length;t++)n[i[t]]=!0;return n}function o(e,n){function i(e,i,a,o){if(i=t.lowercase(i),N[i])for(;u.last()&&O[u.last()];)r("",u.last());D[i]&&u.last()==i&&r("",i),(o=S[i]||!!o)||u.push(i);var l={};a.replace(g,function(e,t,n,i,r){var a=n||i||r||"";l[t]=s(a)}),n.start&&n.start(i,l,o)}function r(e,i){var r,a=0;if(i=t.lowercase(i))for(a=u.length-1;a>=0&&u[a]!=i;a--);if(a>=0){for(r=u.length-1;r>=a;r--)n.end&&n.end(u[r]);u.length=a}}var a,o,l,u,c,d;for("string"!=typeof e&&(e=null===e||void 0===e?"":""+e),u=[],c=e,u.last=function(){return u[u.length-1]};e;){if(d="",o=!0,u.last()&&R[u.last()]?(e=e.replace(new RegExp("([^]*)<\\s*\\/\\s*"+u.last()+"[^>]*>","i"),function(e,t){return t=t.replace(v,"$1").replace(x,"$1"),n.chars&&n.chars(s(t)),""}),r("",u.last())):(C.test(e)?(l=e.match(C))&&(l[0],n.whitespace&&n.whitespace(l[0]),e=e.replace(l[0],""),o=!1):y.test(e)?(l=e.match(y))&&(n.comment&&n.comment(l[1]),e=e.replace(l[0],""),o=!1):w.test(e)?(l=e.match(w))&&(e=e.replace(l[0],""),o=!1):b.test(e)?(l=e.match(h))&&(e=e.substring(l[0].length),l[0].replace(h,r),o=!1):m.test(e)&&(l=e.match(f),l?(l[4]&&(e=e.substring(l[0].length),l[0].replace(f,i)),o=!1):(d+="<",e=e.substring(1))),o&&(a=e.indexOf("<"),d+=a<0?e:e.substring(0,a),e=a<0?"":e.substring(a),n.chars&&n.chars(s(d)))),e==c)throw p("badparse","The sanitizer was unable to parse the following block of html: {0}",e);c=e}r()}function s(e){var t,n,i,r;return e?(t=H.exec(e),n=t[1],i=t[3],r=t[2],r&&(I.innerHTML=r.replace(/</g,"<"),r="textContent"in I?I.textContent:I.innerText),n+r+i):""}function l(e){return e.replace(/&/g,"&").replace($,function(e){return"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";"}).replace(k,function(e){var t=e.charCodeAt(0);return t<=159||173==t||t>=1536&&t<=1540||1807==t||6068==t||6069==t||t>=8204&&t<=8207||t>=8232&&t<=8239||t>=8288&&t<=8303||65279==t||t>=65520&&t<=65535?"&#"+t+";":e}).replace(/</g,"<").replace(/>/g,">")}function u(e){var n="",i=e.split(";");return t.forEach(i,function(e){var i,r=e.split(":");2==r.length&&(i=F(t.lowercase(r[0])),e=F(t.lowercase(r[1])),(("color"===i||"background-color"===i)&&(e.match(/^rgb\([0-9%,\. ]*\)$/i)||e.match(/^rgba\([0-9%,\. ]*\)$/i)||e.match(/^hsl\([0-9%,\. ]*\)$/i)||e.match(/^hsla\([0-9%,\. ]*\)$/i)||e.match(/^#[0-9a-f]{3,6}$/i)||e.match(/^[a-z]*$/i))||"text-align"===i&&("left"===e||"right"===e||"center"===e||"justify"===e)||"text-decoration"===i&&("underline"===e||"line-through"===e)||"font-weight"===i&&"bold"===e||"float"===i&&("left"===e||"right"===e||"none"===e)||("width"===i||"height"===i)&&e.match(/[0-9\.]*(px|em|rem|%)/)||"direction"===i&&e.match(/^ltr|rtl|initial|inherit$/))&&(n+=i+": "+e+";"))}),n}function c(e,t,n,i){return!("img"!==e||!t["ta-insert-video"]||"ta-insert-video"!==n&&"allowfullscreen"!==n&&"frameborder"!==n&&("contenteditable"!==n||"false"!==i))}function d(e,n){var i=!1,r=t.bind(e,e.push);return{start:function(e,a,o){e=t.lowercase(e),!i&&R[e]&&(i=e),i||!0!==A[e]||(r("<"),r(e),t.forEach(a,function(i,o){var s=t.lowercase(o),d="img"===e&&"src"===s||"background"===s;("style"===s&&""!==(i=u(i))||c(e,a,s,i)||!0===q[s]&&(!0!==_[s]||n(i,d)))&&(r(" "),r(o),r('="'),r(l(i)),r('"'))}),r(o?"/>":">"))},comment:function(e){r(e)},whitespace:function(e){r(l(e))},end:function(e){e=t.lowercase(e),i||!0!==A[e]||(r("</"),r(e),r(">")),e==i&&(i=!1)},chars:function(e){i||r(l(e))}}}var p=t.$$minErr("$sanitize"),f=/^<((?:[a-zA-Z])[\w:-]*)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*(>?)/,h=/^<\/\s*([\w:-]+)[^>]*>/,g=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,m=/^</,b=/^<\//,v=/<!--(.*?)-->/g,y=/(^<!--.*?-->)/,w=/<!DOCTYPE([^>]*?)>/i,x=/<!\[CDATA\[(.*?)]]>/g,$=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,k=/([^\#-~| |!])/g,C=/^(\s+)/,S=a("area,br,col,hr,img,wbr,input"),E=a("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),T=a("rp,rt"),D=t.extend({},T,E),N=t.extend({},E,a("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")),O=t.extend({},T,a("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),M=a("animate,animateColor,animateMotion,animateTransform,circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,set,stop,svg,switch,text,title,tspan,use"),R=a("script,style"),A=t.extend({},S,N,O,D,M),_=a("background,cite,href,longdesc,src,usemap,xlink:href"),L=a("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,id,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,target,title,type,valign,value,vspace,width"),P=a("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,attributeName,attributeType,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan"),q=t.extend({},_,P,L),I=document.createElement("pre"),H=/^(\s*)([\s\S]*?)(\s*)$/,F=function(){return String.prototype.trim?function(e){return t.isString(e)?e.trim():e}:function(e){return t.isString(e)?e.replace(/^\s\s*/,"").replace(/\s\s*$/,""):e}}();t.module("ngSanitize",[]).provider("$sanitize",i),t.module("ngSanitize").filter("linky",["$sanitize",function(e){var n=/((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"”’]/,i=/^mailto:/;return function(a,o){function s(e){e&&c.push(r(e))}var l,u,c,d,p;if(!a)return a;for(u=a,c=[];l=u.match(n);)d=l[0],l[2]||l[4]||(d=(l[3]?"http://":"mailto:")+d),p=l.index,s(u.substr(0,p)),function(e,n){c.push("<a "),t.isDefined(o)&&c.push('target="',o,'" '),c.push('href="',e.replace(/"/g,"""),'">'),s(n),c.push("</a>")}(d,l[0].replace(i,"")),u=u.substring(p+l[0].length);return s(u),e(c.join(""))}}])}(window,window.angular),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="textAngular"),function(){"use strict";var e,t,i,r,a,o,s,l,u,c,d,p,f,h={ie:function(){for(var e=3,t=document.createElement("div"),n=t.getElementsByTagName("i");t.innerHTML="\x3c!--[if gt IE "+ ++e+"]><i></i><![endif]--\x3e",n[0];);return e>4?e:void 0}(),webkit:/AppleWebKit\/([\d.]+)/i.test(navigator.userAgent)},g=!1;if(h.webkit&&(document.addEventListener("mousedown",function(e){var t,n,i=e||window.event,r=i.target;if(g&&null!==r){for(t=!1,n=r;null!==n&&"html"!==n.tagName.toLowerCase()&&!t;)t="true"===n.contentEditable,n=n.parentNode;t||(document.getElementById("textAngular-editableFix-010203040506070809").setSelectionRange(0,0),r.focus(),r.select&&r.select())}g=!1},!1),angular.element(document).ready(function(){angular.element(document.body).append(angular.element('<input id="textAngular-editableFix-010203040506070809" class="ta-hidden-input" aria-hidden="true" unselectable="on" tabIndex="-1">'))})),e=/^(address|article|aside|audio|blockquote|canvas|dd|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|noscript|ol|output|p|pre|section|table|tfoot|ul|video)$/i,t=/^(ul|li|ol)$/i,i=/^(address|article|aside|audio|blockquote|canvas|dd|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|noscript|ol|output|p|pre|section|table|tfoot|ul|video|li)$/i,String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),h.ie>8||void 0===h.ie){for(c=document.styleSheets,d=0;d<c.length;d++)if((0===c[d].media.length||c[d].media.mediaText.match(/(all|screen)/gi))&&c[d].href&&c[d].href.match(/textangular\.(min\.|)css/gi)){r=c[d];break}r||(r=function(){var e=document.createElement("style");return h.webkit&&e.appendChild(document.createTextNode("")),document.getElementsByTagName("head")[0].appendChild(e),e.sheet}()),a=function(e,t){return s(r,e,t)},s=function(e,t,n){var i,a;return e.cssRules?i=Math.max(e.cssRules.length-1,0):e.rules&&(i=Math.max(e.rules.length-1,0)),e.insertRule?e.insertRule(t+"{"+n+"}",i):e.addRule(t,n,i),r.rules?a=r.rules[i]:r.cssRules&&(a=r.cssRules[i]),a},u=function(e,t){var n,i;for(n=0;n<t.length;n++)if(t[n].cssText===e.cssText){i=n;break}return i},o=function(e){l(r,e)},l=function(e,t){var n,i=e.cssRules||e.rules;i&&0!==i.length&&(n=u(t,i),e.removeRule?e.removeRule(n):e.deleteRule(n))}}angular.module("textAngular.factories",[]).factory("taBrowserTag",[function(){return function(e){return e?""===e?void 0===h.ie?"div":h.ie<=8?"P":"p":h.ie<=8?e.toUpperCase():e:h.ie<=8?"P":"p"}}]).factory("taApplyCustomRenderers",["taCustomRenderers","taDOM",function(e,t){return function(n){var i=angular.element("<div></div>");return i[0].innerHTML=n,angular.forEach(e,function(e){var n=[];e.selector&&""!==e.selector?n=i.find(e.selector):e.customAttribute&&""!==e.customAttribute&&(n=t.getByAttribute(i,e.customAttribute)),angular.forEach(n,function(t){t=angular.element(t),e.selector&&""!==e.selector&&e.customAttribute&&""!==e.customAttribute?void 0!==t.attr(e.customAttribute)&&e.renderLogic(t):e.renderLogic(t)})}),i[0].innerHTML}}]).factory("taFixChrome",function(){return function(e){var t,n,i,r,a,o;if(!e||!angular.isString(e)||e.length<=0)return e;for(t=/<([^>\/]+?)style=("([^"]+)"|'([^']+)')([^>]*)>/gi,a="",o=0;n=t.exec(e);)(i=n[3]||n[4])&&i.match(/line-height: 1.[0-9]{3,12};|color: inherit; line-height: 1.1;/i)&&(i=i.replace(/( |)font-family: inherit;|( |)line-height: 1.[0-9]{3,12};|( |)color: inherit;/gi,""),r="<"+n[1].trim(),i.trim().length>0&&(r+=" style="+n[2].substring(0,1)+i+n[2].substring(0,1)),r+=n[5].trim()+">",a+=e.substring(o,n.index)+r,o=n.index+n[0].length);return a+=e.substring(o),o>0?a.replace(/<span\s?>(.*?)<\/span>(<br(\/|)>|)/gi,"$1"):e}}).factory("taSanitize",["$sanitize",function(e){function t(e,t){for(var n,i=0,r=0,a=/<[^>]*>/gi;n=a.exec(e);)if(r=n.index,"/"===n[0].substr(1,1)){if(0===i)break;i--}else i++;return t+e.substring(0,r)+angular.element(t)[0].outerHTML.substring(t.length)+e.substring(r)}function n(e){var i,r,a,o,u,c,d,p,f,h,g,m;if(!e||!angular.isString(e)||e.length<=0)return e;for(r=/<([^>\/]+?)style=("([^"]+)"|'([^']+)')([^>]*)>/gi,d="",f="",h=0;a=r.exec(e);)if(u=a[3]||a[4],g=new RegExp(s,"i"),angular.isString(u)&&g.test(u)){for(c="",m=new RegExp(s,"ig");o=m.exec(u);)for(i=0;i<l.length;i++)o[2*i+2]&&(c+="<"+l[i].tag+">");p=n(e.substring(h,a.index)),d.length>0?f+=t(p,d):f+=p,u=u.replace(new RegExp(s,"ig"),""),f+="<"+a[1].trim(),u.length>0&&(f+=' style="'+u+'"'),f+=a[5]+">",h=a.index+a[0].length,d=c}return d.length>0?f+=t(e.substring(h),d):f+=e.substring(h),f}function i(e){var t,n,i,r,a;if(!e||!angular.isString(e)||e.length<=0)return e;for(t=/<([^>\/]+?)align=("([^"]+)"|'([^']+)')([^>]*)>/gi,i="",r=0;n=t.exec(e);)i+=e.substring(r,n.index),r=n.index+n[0].length,a="<"+n[1]+n[5],/style=("([^"]+)"|'([^']+)')/gi.test(a)?a=a.replace(/style=("([^"]+)"|'([^']+)')/i,'style="$2$3 text-align:'+(n[3]||n[4])+';"'):a+=' style="text-align:'+(n[3]||n[4])+';"',a+=">",i+=a;return i+e.substring(r)}var r,a,o,s,l=[{property:"font-weight",values:["bold"],tag:"b"},{property:"font-style",values:["italic"],tag:"i"}],u=[];for(r=0;r<l.length;r++){for(a="("+l[r].property+":\\s*(",o=0;o<l[r].values.length;o++)o>0&&(a+="|"),a+=l[r].values[o];a+=");)",u.push(a)}return s="("+u.join("|")+")",function(t,r,a){var o,s,l,u,c,d,p;if(!a)try{t=n(t)}catch(e){}t=i(t);try{o=e(t),a&&(o=t)}catch(e){o=r||""}for(s=o.match(/(<pre[^>]*>.*?<\/pre[^>]*>)/gi),l=o.replace(/(&#(9|10);)*/gi,""),u=/<pre[^>]*>.*?<\/pre[^>]*>/gi,c=0,d=0,o="";null!==(p=u.exec(l))&&c<s.length;)o+=l.substring(d,p.index)+s[c],d=p.index+p[0].length,c++;return o+l.substring(d)}}]).factory("taToolExecuteAction",["$q","$log",function(e,t){return function(n){var i,r,a,o;void 0!==n&&(this.$editor=function(){return n}),i=e.defer(),r=i.promise,a=this.$editor();try{o=this.action(i,a.startAction()),r.finally(function(){a.endAction.call(a)})}catch(e){t.error(e)}(o||void 0===o)&&i.resolve()}}]),angular.module("textAngular.DOM",["textAngular.factories"]).factory("taExecCommand",["taSelection","taBrowserTag","$document",function(n,i,r){var a=function(e,t){var i,r,a=e.find("li");for(r=a.length-1;r>=0;r--)i=angular.element("<"+t+">"+a[r].innerHTML+"</"+t+">"),e.after(i);e.remove(),n.setSelectionToElementEnd(i[0])},o=function(e){/(<br(|\/)>)$/i.test(e.innerHTML.trim())?n.setSelectionBeforeElement(angular.element(e).find("br")[0]):n.setSelectionToElementEnd(e)},s=function(e,t){var n=angular.element("<"+t+">"+e[0].innerHTML+"</"+t+">");e.after(n),e.remove(),o(n.find("li")[0])},l=function(e,t,n){var r,a,s="";for(r=0;r<e.length;r++)s+="<"+i("li")+">"+e[r].innerHTML+"</"+i("li")+">";a=angular.element("<"+n+">"+s+"</"+n+">"),t.after(a),t.remove(),o(a.find("li")[0])};return function(o,u){return o=i(o),function(c,d,p,f){var h,g,m,b,v,y,w,x,$,k,C,S,E,T,D,N,O,M,R,A,_=angular.element("<"+o+">");try{w=n.getSelectionElement()}catch(e){}if(x=angular.element(w),void 0!==w)if($=w.tagName.toLowerCase(),"insertorderedlist"===c.toLowerCase()||"insertunorderedlist"===c.toLowerCase()){if(k=i("insertorderedlist"===c.toLowerCase()?"ol":"ul"),$===k)return a(x,o);if("li"===$&&x.parent()[0].tagName.toLowerCase()===k&&1===x.parent().children().length)return a(x.parent(),o);if("li"===$&&x.parent()[0].tagName.toLowerCase()!==k&&1===x.parent().children().length)return s(x.parent(),k);if($.match(e)&&!x.hasClass("ta-bind"))return"ol"===$||"ul"===$?s(x,k):(C=!1,angular.forEach(x.children(),function(t){t.tagName.match(e)&&(C=!0)}),C?l(x.children(),x,k):l([angular.element("<div>"+w.innerHTML+"</div>")[0]],x,k));if($.match(e)){if(b=n.getOnlySelectedElements(),0===b.length)g=angular.element("<"+k+"><li>"+w.innerHTML+"</li></"+k+">"),x.html(""),x.append(g);else{if(1===b.length&&("ol"===b[0].tagName.toLowerCase()||"ul"===b[0].tagName.toLowerCase()))return b[0].tagName.toLowerCase()===k?a(angular.element(b[0]),o):s(angular.element(b[0]),k);for(m="",S=[],h=0;h<b.length;h++)if(3!==b[h].nodeType){if(E=angular.element(b[h]),"li"===b[h].tagName.toLowerCase())continue;"ol"===b[h].tagName.toLowerCase()||"ul"===b[h].tagName.toLowerCase()?m+=E[0].innerHTML:"span"!==b[h].tagName.toLowerCase()||"ol"!==b[h].childNodes[0].tagName.toLowerCase()&&"ul"!==b[h].childNodes[0].tagName.toLowerCase()?m+="<"+i("li")+">"+E[0].innerHTML+"</"+i("li")+">":m+=E[0].childNodes[0].innerHTML,S.unshift(E)}g=angular.element("<"+k+">"+m+"</"+k+">"),S.pop().replaceWith(g),angular.forEach(S,function(e){e.remove()})}return void n.setSelectionToElementEnd(g[0])}}else{if("formatblock"===c.toLowerCase()){for(y=p.toLowerCase().replace(/[<>]/gi,""),"default"===y.trim()&&(y=o,p="<"+o+">"),g="li"===$?x.parent():x;!g[0].tagName||!g[0].tagName.match(e)&&!g.parent().attr("contenteditable");)g=g.parent(),$=(g[0].tagName||"").toLowerCase();if($===y){for(b=g.children(),T=!1,h=0;h<b.length;h++)T=T||b[h].tagName.match(e);T?(g.after(b),v=g.next(),g.remove(),g=v):(_.append(g[0].childNodes),g.after(_),g.remove(),g=_)}else if(g.parent()[0].tagName.toLowerCase()!==y||g.parent().hasClass("ta-bind"))if($.match(t))g.wrap(p);else{for(b=n.getOnlySelectedElements(),0===b.length&&(b=[g[0]]),h=0;h<b.length;h++)if(3===b[h].nodeType||!b[h].tagName.match(e))for(;3===b[h].nodeType||!b[h].tagName||!b[h].tagName.match(e);)b[h]=b[h].parentNode;if(angular.element(b[0]).hasClass("ta-bind"))g=angular.element(p),g[0].innerHTML=b[0].innerHTML,b[0].innerHTML=g[0].outerHTML;else if("blockquote"===y){for(m="",h=0;h<b.length;h++)m+=b[h].outerHTML;for(g=angular.element(p),g[0].innerHTML=m,b[0].parentNode.insertBefore(g[0],b[0]),h=b.length-1;h>=0;h--)b[h].parentNode&&b[h].parentNode.removeChild(b[h])}else for(h=0;h<b.length;h++)g=angular.element(p),g[0].innerHTML=b[h].innerHTML,b[h].parentNode.insertBefore(g[0],b[h]),b[h].parentNode.removeChild(b[h])}else{for(D=g.parent(),N=D.contents(),h=0;h<N.length;h++)D.parent().hasClass("ta-bind")&&3===N[h].nodeType&&(_=angular.element("<"+o+">"),_[0].innerHTML=N[h].outerHTML,N[h]=_[0]),D.parent()[0].insertBefore(N[h],D[0]);D.remove()}return void n.setSelectionToElementEnd(g[0])}if("createlink"===c.toLowerCase())return O='<a href="'+p+'" target="'+(f.a.target?f.a.target:"")+'">',M="</a>",R=n.getSelection(),void(R.collapsed?n.insertHtml(O+p+M,u):rangy.getSelection().getRangeAt(0).canSurroundContents()&&(A=angular.element(O+M)[0],rangy.getSelection().getRangeAt(0).surroundContents(A)));if("inserthtml"===c.toLowerCase())return void n.insertHtml(p,u)}try{r[0].execCommand(c,d,p)}catch(e){}}}}]).service("taSelection",["$window","$document","taDOM",function(t,n,r){var a=n[0],o=t.rangy,s=function(e,t){return e.tagName&&e.tagName.match(/^br$/i)&&0===t&&!e.previousSibling?{element:e.parentNode,offset:0}:{element:e,offset:t}},l={getSelection:function(){var e=o.getSelection().getRangeAt(0),t=e.commonAncestorContainer,n={start:s(e.startContainer,e.startOffset),end:s(e.endContainer,e.endOffset),collapsed:e.collapsed};return t=3===t.nodeType?t.parentNode:t,t.parentNode===n.start.element||t.parentNode===n.end.element?n.container=t.parentNode:n.container=t,n},getOnlySelectedElements:function(){var e=o.getSelection().getRangeAt(0),t=e.commonAncestorContainer;return t=3===t.nodeType?t.parentNode:t,e.getNodes([1],function(e){return e.parentNode===t})},
getSelectionElement:function(){return l.getSelection().container},setSelection:function(e,t,n){var i=o.createRange();i.setStart(e,t),i.setEnd(e,n),o.getSelection().setSingleRange(i)},setSelectionBeforeElement:function(e){var t=o.createRange();t.selectNode(e),t.collapse(!0),o.getSelection().setSingleRange(t)},setSelectionAfterElement:function(e){var t=o.createRange();t.selectNode(e),t.collapse(!1),o.getSelection().setSingleRange(t)},setSelectionToElementStart:function(e){var t=o.createRange();t.selectNodeContents(e),t.collapse(!0),o.getSelection().setSingleRange(t)},setSelectionToElementEnd:function(e){var t=o.createRange();t.selectNodeContents(e),t.collapse(!1),e.childNodes&&e.childNodes[e.childNodes.length-1]&&"br"===e.childNodes[e.childNodes.length-1].nodeName&&(t.startOffset=t.endOffset=t.startOffset-1),o.getSelection().setSingleRange(t)},insertHtml:function(t,n){var s,u,c,d,p,f,h,g,m,b=angular.element("<div>"+t+"</div>"),v=o.getSelection().getRangeAt(0),y=a.createDocumentFragment(),w=b[0].childNodes,x=!0;if(w.length>0){for(d=[],c=0;c<w.length;c++)"p"===w[c].nodeName.toLowerCase()&&""===w[c].innerHTML.trim()||3===w[c].nodeType&&""===w[c].nodeValue.trim()||(x=x&&!e.test(w[c].nodeName),d.push(w[c]));for(g=0;g<d.length;g++)f=y.appendChild(d[g]);!x&&v.collapsed&&/^(|<br(|\/)>)$/i.test(v.startContainer.innerHTML)&&v.selectNode(v.startContainer)}else x=!0,f=y=a.createTextNode(t);if(x)v.deleteContents();else if(v.collapsed&&v.startContainer!==n)if(v.startContainer.innerHTML&&v.startContainer.innerHTML.match(/^<[^>]*>$/i))s=v.startContainer,1===v.startOffset?(v.setStartAfter(s),v.setEndAfter(s)):(v.setStartBefore(s),v.setEndBefore(s));else{if(3===v.startContainer.nodeType&&v.startContainer.parentNode!==n)for(s=v.startContainer.parentNode,u=s.cloneNode(),r.splitNodes(s.childNodes,s,u,v.startContainer,v.startOffset);!i.test(s.nodeName);)angular.element(s).after(u),s=s.parentNode,m=u,u=s.cloneNode(),r.splitNodes(s.childNodes,s,u,m);else s=v.startContainer,u=s.cloneNode(),r.splitNodes(s.childNodes,s,u,void 0,void 0,v.startOffset);if(angular.element(s).after(u),v.setStartAfter(s),v.setEndAfter(s),/^(|<br(|\/)>)$/i.test(s.innerHTML.trim())&&(v.setStartBefore(s),v.setEndBefore(s),angular.element(s).remove()),/^(|<br(|\/)>)$/i.test(u.innerHTML.trim())&&angular.element(u).remove(),"li"===s.nodeName.toLowerCase()){for(h=a.createDocumentFragment(),p=0;p<y.childNodes.length;p++)b=angular.element("<li>"),r.transferChildNodes(y.childNodes[p],b[0]),r.transferNodeAttributes(y.childNodes[p],b[0]),h.appendChild(b[0]);y=h,f&&(f=y.childNodes[y.childNodes.length-1],f=f.childNodes[f.childNodes.length-1])}}else v.deleteContents();v.insertNode(y),f&&l.setSelectionToElementEnd(f)}};return l}]).service("taDOM",function(){var e={getByAttribute:function(t,n){var i=[],r=t.children();return r.length&&angular.forEach(r,function(t){i=i.concat(e.getByAttribute(angular.element(t),n))}),void 0!==t.attr(n)&&i.push(t),i},transferChildNodes:function(e,t){for(t.innerHTML="";e.childNodes.length>0;)t.appendChild(e.childNodes[0]);return t},splitNodes:function(t,n,i,r,a,o){var s,l,u;if(!r&&isNaN(o))throw new Error("taDOM.splitNodes requires a splitNode or splitIndex");for(s=document.createDocumentFragment(),l=document.createDocumentFragment(),u=0;t.length>0&&(isNaN(o)||o!==u)&&t[0]!==r;)s.appendChild(t[0]),u++;for(!isNaN(a)&&a>=0&&t[0]&&(s.appendChild(document.createTextNode(t[0].nodeValue.substring(0,a))),t[0].nodeValue=t[0].nodeValue.substring(a));t.length>0;)l.appendChild(t[0]);e.transferChildNodes(s,n),e.transferChildNodes(l,i)},transferNodeAttributes:function(e,t){for(var n=0;n<e.attributes.length;n++)t.setAttribute(e.attributes[n].name,e.attributes[n].value);return t}};return e}),angular.module("textAngular.validators",[]).directive("taMaxText",function(){return{restrict:"A",require:"ngModel",link:function(e,t,n,i){var r=parseInt(e.$eval(n.taMaxText));if(isNaN(r))throw"Max text must be an integer";n.$observe("taMaxText",function(e){if(r=parseInt(e),isNaN(r))throw"Max text must be an integer";i.$dirty&&i.$validate()}),i.$validators.taMaxText=function(e){var t=angular.element("<div/>");return t.html(e),t.text().length<=r}}}}).directive("taMinText",function(){return{restrict:"A",require:"ngModel",link:function(e,t,n,i){var r=parseInt(e.$eval(n.taMinText));if(isNaN(r))throw"Min text must be an integer";n.$observe("taMinText",function(e){if(r=parseInt(e),isNaN(r))throw"Min text must be an integer";i.$dirty&&i.$validate()}),i.$validators.taMinText=function(e){var t=angular.element("<div/>");return t.html(e),!t.text().length||t.text().length>=r}}}}),angular.module("textAngular.taBind",["textAngular.factories","textAngular.DOM"]).service("_taBlankTest",[function(){var e=/<(a|abbr|acronym|bdi|bdo|big|cite|code|del|dfn|img|ins|kbd|label|map|mark|q|ruby|rp|rt|s|samp|time|tt|var)[^>]*(>|$)/i;return function(t){return function(n){var i,r;return!n||(i=/(^[^<]|>)[^<]/i.exec(n),i?r=i.index:(n=n.toString().replace(/="[^"]*"/i,"").replace(/="[^"]*"/i,"").replace(/="[^"]*"/i,"").replace(/="[^"]*"/i,""),r=n.indexOf(">")),n=n.trim().substring(r,r+100),!/^[^<>]+$/i.test(n)&&(!(0!==n.length&&n!==t&&!/^>(\s| )*<\/[^>]+>$/gi.test(n))||!/>\s*[^\s<]/i.test(n)&&!e.test(n)))}}}]).directive("taButton",[function(){return{link:function(e,t,n){t.attr("unselectable","on"),t.on("mousedown",function(e,t){return t&&angular.extend(e,t),e.preventDefault(),!1})}}}]).directive("taBind",["taSanitize","$timeout","$window","$document","taFixChrome","taBrowserTag","taSelection","taSelectableElements","taApplyCustomRenderers","taOptions","_taBlankTest","$parse","taDOM","textAngularManager",function(t,n,r,s,l,u,c,d,f,m,b,v,y,w){return{priority:2,require:["ngModel","?ngModelOptions"],link:function(u,x,$,k){function C(e){var t;return de.forEach(function(n){if(n.keyCode===e.keyCode){var i=(e.metaKey?le:0)+(e.ctrlKey?se:0)+(e.shiftKey?ce:0)+(e.altKey?ue:0);if(n.forbiddenModifiers&i)return;n.mustHaveModifiers.every(function(e){return i&e})&&(t=n.specialKey)}}),t}var S,E,T,D,N,O,M,R,A,_,L,P,q,I,H,F,B,j,U,z,V,K,W,Q,G,Y,X=k[0],J=k[1]||{},Z=void 0!==x.attr("contenteditable")&&x.attr("contenteditable"),ee=Z||"textarea"===x[0].tagName.toLowerCase()||"input"===x[0].tagName.toLowerCase(),te=!1,ne=!1,ie=!1,re=$.taUnsafeSanitizer||m.disableSanitizer,ae=/^(9|19|20|27|33|34|35|36|37|38|39|40|45|112|113|114|115|116|117|118|119|120|121|122|123|144|145)$/i,oe=/^(8|13|32|46|59|61|107|109|173|186|187|188|189|190|191|192|219|220|221|222)$/i,se=1,le=2,ue=4,ce=8,de=[{specialKey:"UndoKey",forbiddenModifiers:ue+ce,mustHaveModifiers:[le+se],keyCode:90},{specialKey:"RedoKey",forbiddenModifiers:ue,mustHaveModifiers:[le+se,ce],keyCode:90},{specialKey:"RedoKey",forbiddenModifiers:ue+ce,mustHaveModifiers:[le+se],keyCode:89},{specialKey:"TabKey",forbiddenModifiers:le+ce+ue+se,mustHaveModifiers:[],keyCode:9},{specialKey:"ShiftTabKey",forbiddenModifiers:le+ue+se,mustHaveModifiers:[ce],keyCode:9}];if(void 0===$.taDefaultWrap&&($.taDefaultWrap="p"),""===$.taDefaultWrap?(T="",D=void 0===h.ie?"<div><br></div>":h.ie>=11?"<p><br></p>":h.ie<=8?"<P> </P>":"<p> </p>"):(T=void 0===h.ie||h.ie>=11?"<"+$.taDefaultWrap+"><br></"+$.taDefaultWrap+">":h.ie<=8?"<"+$.taDefaultWrap.toUpperCase()+"></"+$.taDefaultWrap.toUpperCase()+">":"<"+$.taDefaultWrap+"></"+$.taDefaultWrap+">",D=void 0===h.ie||h.ie>=11?"<"+$.taDefaultWrap+"><br></"+$.taDefaultWrap+">":h.ie<=8?"<"+$.taDefaultWrap.toUpperCase()+"> </"+$.taDefaultWrap.toUpperCase()+">":"<"+$.taDefaultWrap+"> </"+$.taDefaultWrap+">"),J.$options||(J.$options={}),N=b(D),O=function(t){var n,i,r,a,o,s,l,u;if(N(t))return t;if(n=angular.element("<div>"+t+"</div>"),0===n.children().length)t="<"+$.taDefaultWrap+">"+t+"</"+$.taDefaultWrap+">";else{for(i=n[0].childNodes,a=!1,r=0;r<i.length&&!(a=i[r].nodeName.toLowerCase().match(e));r++);if(a)for(t="",r=0;r<i.length;r++)o=i[r],s=o.nodeName.toLowerCase(),"#comment"===s?t+="\x3c!--"+o.nodeValue+"--\x3e":"#text"===s?(l=o.textContent,l.trim()?t+="<"+$.taDefaultWrap+">"+l+"</"+$.taDefaultWrap+">":t+=l):s.match(e)?t+=o.outerHTML:(u=o.outerHTML||o.nodeValue,""!==u.trim()?t+="<"+$.taDefaultWrap+">"+u+"</"+$.taDefaultWrap+">":t+=u);else t="<"+$.taDefaultWrap+">"+t+"</"+$.taDefaultWrap+">"}return t},$.taPaste&&(E=v($.taPaste)),x.addClass("ta-bind"),u["$undoManager"+($.id||"")]=X.$undoManager={_stack:[],_index:0,_max:1e3,push:function(e){return void 0===e||null===e||void 0!==this.current()&&null!==this.current()&&e===this.current()?e:(this._index<this._stack.length-1&&(this._stack=this._stack.slice(0,this._index+1)),this._stack.push(e),M&&n.cancel(M),this._stack.length>this._max&&this._stack.shift(),this._index=this._stack.length-1,e)},undo:function(){return this.setToIndex(this._index-1)},redo:function(){return this.setToIndex(this._index+1)},setToIndex:function(e){if(!(e<0||e>this._stack.length-1))return this._index=e,this.current()},current:function(){return this._stack[this._index]}},A=u["$undoTaBind"+($.id||"")]=function(){if(!te&&Z){var e=X.$undoManager.undo();void 0!==e&&null!==e&&(Q(e),P(e,!1),R&&n.cancel(R),R=n(function(){x[0].focus(),c.setSelectionToElementEnd(x[0])},1))}},_=u["$redoTaBind"+($.id||"")]=function(){if(!te&&Z){var e=X.$undoManager.redo();void 0!==e&&null!==e&&(Q(e),P(e,!1),R&&n.cancel(R),R=n(function(){x[0].focus(),c.setSelectionToElementEnd(x[0])},1))}},L=function(){if(Z)return x[0].innerHTML;if(ee)return x.val();throw"textAngular Error: attempting to update non-editable taBind"},P=function(e,t,n){ie=n||!1,void 0!==t&&null!==t||(t=Z),void 0!==e&&null!==e||(e=L()),N(e)?(""!==X.$viewValue&&X.$setViewValue(""),t&&""!==X.$undoManager.current()&&X.$undoManager.push("")):(W(),X.$viewValue!==e&&(X.$setViewValue(e),t&&X.$undoManager.push(e))),X.$render()},u["updateTaBind"+($.id||"")]=function(){te||P(void 0,void 0,!0)},q=function(e){return X.$oldViewValue=t(l(e),X.$oldViewValue,re)},x.attr("required")&&(X.$validators.required=function(e,t){return!N(e||t)}),X.$parsers.push(q),X.$parsers.unshift(O),X.$formatters.push(q),X.$formatters.unshift(O),X.$formatters.unshift(function(e){return X.$undoManager.push(e||"")}),ee)if(u.events={},Z){if(B=!1,j=function(e){var i,r,a,o,s,l,d,p,f,h,g,m,b,v,w,$,k,C,S;if(e&&e.trim().length){if(e.match(/class=["']*Mso(Normal|List)/i)||e.match(/content=["']*Word.Document/i)){for(i=e.match(/<!--StartFragment-->([\s\S]*?)<!--EndFragment-->/i),i=i?i[1]:e,i=i.replace(/<o:p>[\s\S]*?<\/o:p>/gi,"").replace(/class=(["']|)MsoNormal(["']|)/gi,""),r=angular.element("<div>"+i+"</div>"),a=angular.element("<div></div>"),o={element:null,lastIndent:[],lastLi:null,isUl:!1},o.lastIndent.peek=function(){var e=this.length;if(e>0)return this[e-1]},s=function(e){o.isUl=e,o.element=angular.element(e?"<ul>":"<ol>"),o.lastIndent=[],o.lastIndent.peek=function(){var e=this.length;if(e>0)return this[e-1]},o.lastLevelMatch=null},l=0;l<=r[0].childNodes.length;l++)if(r[0].childNodes[l]&&"#text"!==r[0].childNodes[l].nodeName&&("p"===(d=r[0].childNodes[l].tagName.toLowerCase())||"h1"===d||"h2"===d||"h3"===d||"h4"===d||"h5"===d||"h6"===d))if(p=angular.element(r[0].childNodes[l]),f=(p.attr("class")||"").match(/MsoList(Bullet|Number|Paragraph)(CxSp(First|Middle|Last)|)/i)){if(p[0].childNodes.length<2||p[0].childNodes[1].childNodes.length<1)continue;if(h="bullet"===f[1].toLowerCase()||"number"!==f[1].toLowerCase()&&!(/^[^0-9a-z<]*[0-9a-z]+[^0-9a-z<>]</i.test(p[0].childNodes[1].innerHTML)||/^[^0-9a-z<]*[0-9a-z]+[^0-9a-z<>]</i.test(p[0].childNodes[1].childNodes[0].innerHTML)),g=(p.attr("style")||"").match(/margin-left:([\-\.0-9]*)/i),m=parseFloat(g?g[1]:0),b=(p.attr("style")||"").match(/mso-list:l([0-9]+) level([0-9]+) lfo[0-9+]($|;)/i),b&&b[2]&&(m=parseInt(b[2])),b&&(!o.lastLevelMatch||b[1]!==o.lastLevelMatch[1])||!f[3]||"first"===f[3].toLowerCase()||null===o.lastIndent.peek()||o.isUl!==h&&o.lastIndent.peek()===m)s(h),a.append(o.element);else if(null!=o.lastIndent.peek()&&o.lastIndent.peek()<m)o.element=angular.element(h?"<ul>":"<ol>"),o.lastLi.append(o.element);else if(null!=o.lastIndent.peek()&&o.lastIndent.peek()>m){for(;null!=o.lastIndent.peek()&&o.lastIndent.peek()>m;)if("li"!==o.element.parent()[0].tagName.toLowerCase()){if(!/[uo]l/i.test(o.element.parent()[0].tagName.toLowerCase()))break;o.element=o.element.parent(),o.lastIndent.pop()}else o.element=o.element.parent();o.isUl="ul"===o.element[0].tagName.toLowerCase(),h!==o.isUl&&(s(h),a.append(o.element))}o.lastLevelMatch=b,m!==o.lastIndent.peek()&&o.lastIndent.push(m),o.lastLi=angular.element("<li>"),o.element.append(o.lastLi),o.lastLi.html(p.html().replace(/<!(--|)\[if !supportLists\](--|)>[\s\S]*?<!(--|)\[endif\](--|)>/gi,"")),p.remove()}else s(!1),a.append(p);v=function(e){e=angular.element(e);for(var t=e[0].childNodes.length-1;t>=0;t--)e.after(e[0].childNodes[t]);e.remove()},angular.forEach(a.find("span"),function(e){e.removeAttribute("lang"),e.attributes.length<=0&&v(e)}),angular.forEach(a.find("font"),v),e=a.html()}else{if(e=e.replace(/<(|\/)meta[^>]*?>/gi,""),e.match(/<[^>]*?(ta-bind)[^>]*?>/)){if(e.match(/<[^>]*?(text-angular)[^>]*?>/)){for(w=angular.element("<div>"+e+"</div>"),w.find("textarea").remove(),$=y.getByAttribute(w,"ta-bind"),k=0;k<$.length;k++){for(C=$[k][0].parentNode.parentNode,S=0;S<$[k][0].childNodes.length;S++)C.parentNode.insertBefore($[k][0].childNodes[S],C);C.parentNode.removeChild(C)}e=w.html().replace('<br class="Apple-interchange-newline">',"")}}else e.match(/^<span/)&&(e.match(/<span class=(\"Apple-converted-space\"|\'Apple-converted-space\')>.<\/span>/gi)||(e=e.replace(/<(|\/)span[^>]*?>/gi,"")));e=e.replace(/<br class="Apple-interchange-newline"[^>]*?>/gi,"").replace(/<span class="Apple-converted-space">( | )<\/span>/gi," ")}/<li(\s.*)?>/i.test(e)&&!1===/(<ul(\s.*)?>|<ol(\s.*)?>).*<li(\s.*)?>/i.test(e)&&(e=e.replace(/<li(\s.*)?>.*<\/li(\s.*)?>/i,"<ul>$&</ul>")),e=e.replace(/^[ |\u00A0]+/gm,function(e){var t,n="";for(t=0;t<e.length;t++)n+=" ";return n}).replace(/\n|\r\n|\r/g,"<br />").replace(/\t/g," "),E&&(e=E(u,{$html:e})||e),e=t(e,"",re),c.insertHtml(e,x[0]),n(function(){X.$setViewValue(L()),B=!1,x.removeClass("processing-paste")},0)}else B=!1,x.removeClass("processing-paste")},x.on("paste",u.events.paste=function(e,t){var i,a,o,l,u,c;if(t&&angular.extend(e,t),te||B)return e.stopPropagation(),e.preventDefault(),!1;if(B=!0,x.addClass("processing-paste"),(a=(e.originalEvent||e).clipboardData)&&a.getData&&a.types.length>0){for(o="",l=0;l<a.types.length;l++)o+=" "+a.types[l];return/text\/html/i.test(o)?i=a.getData("text/html"):/text\/plain/i.test(o)&&(i=a.getData("text/plain")),j(i),e.stopPropagation(),e.preventDefault(),!1}u=r.rangy.saveSelection(),c=angular.element('<div class="ta-hidden-input" contenteditable="true"></div>'),s.find("body").append(c),c[0].focus(),n(function(){r.rangy.restoreSelection(u),j(c[0].innerHTML),x[0].focus(),c.remove()},0)}),x.on("cut",u.events.cut=function(e){te?e.preventDefault():n(function(){X.$setViewValue(L())},0)}),x.on("keydown",u.events.keydown=function(e,t){var n,r,a,o,s,l,d;if(t&&angular.extend(e,t),e.specialKey=C(e),m.keyMappings.forEach(function(t){e.specialKey===t.commandKeyCode&&(e.specialKey=void 0),t.testForKey(e)&&(n=t.commandKeyCode),"UndoKey"!==t.commandKeyCode&&"RedoKey"!==t.commandKeyCode||t.enablePropagation||e.preventDefault()}),void 0!==n&&(e.specialKey=n),void 0===e.specialKey||"UndoKey"===e.specialKey&&"RedoKey"===e.specialKey||(e.preventDefault(),w.sendKeyCommand(u,e)),!te&&("UndoKey"===e.specialKey&&(A(),e.preventDefault()),"RedoKey"===e.specialKey&&(_(),e.preventDefault()),13===e.keyCode&&!e.shiftKey)){if(r=function(e,t){for(var n=0;n<e.length;n++)if(e[n]===t)return!0;return!1},o=c.getSelectionElement(),!o.tagName.match(i))return;s=angular.element(T),l=["blockquote","ul","ol"],r(l,o.parentNode.tagName.toLowerCase())&&(/^<br(|\/)>$/i.test(o.innerHTML.trim())&&!o.nextSibling&&(a=angular.element(o),d=a.parent(),d.after(s),a.remove(),0===d.children().length&&d.remove(),c.setSelectionToElementStart(s[0]),e.preventDefault()),/^<[^>]+><br(|\/)><\/[^>]+>$/i.test(o.innerHTML.trim())&&(a=angular.element(o),a.after(s),a.remove(),c.setSelectionToElementStart(s[0]),e.preventDefault()))}}),x.on("keyup",u.events.keyup=function(e,t){var r,a,o,s,l;if(t&&angular.extend(e,t),9===e.keyCode)return r=c.getSelection(),void(r.start.element===x[0]&&x.children().length&&c.setSelectionToElementStart(x.children()[0]));if(M&&n.cancel(M),!te&&!ae.test(e.keyCode)){if(""!==T&&13===e.keyCode&&!e.shiftKey){for(a=c.getSelectionElement();!a.tagName.match(i)&&a!==x[0];)a=a.parentNode;a.tagName.toLowerCase()===$.taDefaultWrap||"li"===a.tagName.toLowerCase()||""!==a.innerHTML.trim()&&"<br>"!==a.innerHTML.trim()||(o=angular.element(T),angular.element(a).replaceWith(o),c.setSelectionToElementStart(o[0]))}s=L(),""!==T&&""===s.trim()?(Q(T),c.setSelectionToElementStart(x.children()[0])):"<"!==s.substring(0,1)&&$.taDefaultWrap,l=S!==e.keyCode&&oe.test(e.keyCode),U&&n.cancel(U),U=n(function(){P(s,l,!0)},J.$options.debounce||400),l||(M=n(function(){X.$undoManager.push(s)},250)),S=e.keyCode}}),x.on("blur",u.events.blur=function(){ne=!1,te?(ie=!0,X.$render()):P(void 0,void 0,!0)}),$.placeholder&&(h.ie>8||void 0===h.ie)){if(!$.id)throw"textAngular Error: An unique ID is required for placeholders to work";z=a("#"+$.id+".placeholder-text:before",'content: "'+$.placeholder+'"'),u.$on("$destroy",function(){o(z)})}x.on("focus",u.events.focus=function(){ne=!0,x.removeClass("placeholder-text"),W()}),x.on("mouseup",u.events.mouseup=function(){c.getSelection().start.element===x[0]&&x.children().length&&c.setSelectionToElementStart(x.children()[0])}),x.on("mousedown",u.events.mousedown=function(e,t){t&&angular.extend(e,t),e.stopPropagation()})}else x.on("change blur",u.events.change=u.events.blur=function(){te||X.$setViewValue(L())}),x.on("keydown",u.events.keydown=function(e,t){var n,i,r,a,o;t&&angular.extend(e,t),9===e.keyCode&&(n=this.selectionStart,i=this.selectionEnd,r=x.val(),e.shiftKey?(a=r.lastIndexOf("\n",n),o=r.lastIndexOf("\t",n),-1!==o&&o>=a&&(x.val(r.substring(0,o)+r.substring(o+1)),this.selectionStart=this.selectionEnd=n-1)):(x.val(r.substring(0,n)+"\t"+r.substring(i)),this.selectionStart=this.selectionEnd=n+1),e.preventDefault())}),I=function(e,t){var n,i="";for(n=0;n<t;n++)i+=e;return i},H=function(e,t,n){for(var i=0;i<e.length;i++)t.call(n,i,e[i])},F=function(e,t){var n="",i=e.childNodes;return t++,n+=I("\t",t-1)+e.outerHTML.substring(0,4),H(i,function(e,i){var r=i.nodeName.toLowerCase();return"#comment"===r?void(n+="\x3c!--"+i.nodeValue+"--\x3e"):"#text"===r?void(n+=i.textContent):void(i.outerHTML&&(n+="ul"===r||"ol"===r?"\n"+F(i,t):"\n"+I("\t",t)+i.outerHTML))}),n+="\n"+I("\t",t-1)+e.outerHTML.substring(e.outerHTML.lastIndexOf("<"))},X.$formatters.unshift(function(e){var t=angular.element("<div>"+e+"</div>")[0].childNodes;return t.length>0&&(e="",H(t,function(t,n){var i=n.nodeName.toLowerCase();return"#comment"===i?void(e+="\x3c!--"+n.nodeValue+"--\x3e"):"#text"===i?void(e+=n.textContent):void(n.outerHTML&&(e.length>0&&(e+="\n"),e+="ul"===i||"ol"===i?""+F(n,0):""+n.outerHTML))})),e});V=function(e){return u.$emit("ta-element-select",this),e.preventDefault(),!1},K=function(e,t){if(t&&angular.extend(e,t),!p&&!te){p=!0;var i;i=e.originalEvent?e.originalEvent.dataTransfer:e.dataTransfer,u.$emit("ta-drop-event",this,e,i),n(function(){p=!1,P(void 0,void 0,!0)},100)}},W=u["reApplyOnSelectorHandlers"+($.id||"")]=function(){te||angular.forEach(d,function(e){x.find(e).off("click",V).on("click",V)})},Q=function(e){x[0].innerHTML=e},Y=!1,X.$render=function(){if(!Y){Y=!0;var e=X.$viewValue||"";ie||(Z&&ne&&(x.removeClass("placeholder-text"),G&&n.cancel(G),G=n(function(){ne||(x[0].focus(),c.setSelectionToElementEnd(x.children()[x.children().length-1])),G=void 0},1)),Z?(Q($.placeholder?""===e?T:e:""===e?T:e),te?x.off("drop",K):(W(),x.on("drop",K))):"textarea"!==x[0].tagName.toLowerCase()&&"input"!==x[0].tagName.toLowerCase()?Q(f(e)):x.val(e)),Z&&$.placeholder&&(""===e?ne?x.removeClass("placeholder-text"):x.addClass("placeholder-text"):x.removeClass("placeholder-text")),Y=ie=!1}},$.taReadonly&&(te=u.$eval($.taReadonly),te?(x.addClass("ta-readonly"),"textarea"!==x[0].tagName.toLowerCase()&&"input"!==x[0].tagName.toLowerCase()||x.attr("disabled","disabled"),void 0!==x.attr("contenteditable")&&x.attr("contenteditable")&&x.removeAttr("contenteditable")):(x.removeClass("ta-readonly"),"textarea"===x[0].tagName.toLowerCase()||"input"===x[0].tagName.toLowerCase()?x.removeAttr("disabled"):Z&&x.attr("contenteditable","true")),u.$watch($.taReadonly,function(e,t){t!==e&&(e?(x.addClass("ta-readonly"),"textarea"!==x[0].tagName.toLowerCase()&&"input"!==x[0].tagName.toLowerCase()||x.attr("disabled","disabled"),void 0!==x.attr("contenteditable")&&x.attr("contenteditable")&&x.removeAttr("contenteditable"),angular.forEach(d,function(e){x.find(e).on("click",V)}),x.off("drop",K)):(x.removeClass("ta-readonly"),"textarea"===x[0].tagName.toLowerCase()||"input"===x[0].tagName.toLowerCase()?x.removeAttr("disabled"):Z&&x.attr("contenteditable","true"),angular.forEach(d,function(e){x.find(e).off("click",V)}),x.on("drop",K)),te=e)})),Z&&!te&&(angular.forEach(d,function(e){x.find(e).on("click",V)}),x.on("drop",K),x.on("blur",function(){h.webkit&&(g=!0)}))}}}]),p=!1,f=angular.module("textAngular",["ngSanitize","textAngularSetup","textAngular.factories","textAngular.DOM","textAngular.validators","textAngular.taBind"]),f.config([function(){angular.forEach(n,function(e,t){delete n[t]})}]),f.run([function(){if("function"==typeof define&&define.amd)define(function(e){window.rangy=e("rangy"),window.rangy.saveSelection=e("rangy/lib/rangy-selectionsaverestore")});else if("function"==typeof require&&"undefined"!=typeof module&&"object"==typeof exports)window.rangy=require("rangy"),window.rangy.saveSelection=require("rangy/lib/rangy-selectionsaverestore");else{if(!window.rangy)throw"rangy-core.js and rangy-selectionsaverestore.js are required for textAngular to work correctly, rangy-core is not yet loaded.";if(window.rangy.init(),!window.rangy.saveSelection)throw"rangy-selectionsaverestore.js is required for textAngular to work correctly."}}]),f.directive("textAngular",["$compile","$timeout","taOptions","taSelection","taExecCommand","textAngularManager","$window","$document","$animate","$log","$q","$parse",function(e,t,n,i,r,a,o,s,l,u,c,d){return{require:"?ngModel",scope:{},restrict:"EA",priority:2,link:function(p,f,h,g){var m,b,v,y,w,x,$,k,C,S,E,T,D,N,O,M=h.serial?h.serial:Math.floor(1e16*Math.random());if(p._name=h.name?h.name:"textAngularEditor"+M,T=function(e,n,i){t(function(){var t=function(){e.off(n,t),i.apply(this,arguments)};e.on(n,t)},100)},C=r(h.taDefaultWrap),angular.extend(p,angular.copy(n),{wrapSelection:function(e,t,n){"undo"===e.toLowerCase()?p["$undoTaBindtaTextElement"+M]():"redo"===e.toLowerCase()?p["$redoTaBindtaTextElement"+M]():(C(e,!1,t,p.defaultTagAttributes),n&&p["reApplyOnSelectorHandlerstaTextElement"+M](),p.displayElements.text[0].focus())},showHtml:p.$eval(h.taShowHtml)||!1}),h.taFocussedClass&&(p.classes.focussed=h.taFocussedClass),h.taTextEditorClass&&(p.classes.textEditor=h.taTextEditorClass),h.taHtmlEditorClass&&(p.classes.htmlEditor=h.taHtmlEditorClass),h.taDefaultTagAttributes)try{angular.extend(p.defaultTagAttributes,angular.fromJson(h.taDefaultTagAttributes))}catch(e){u.error(e)}h.taTextEditorSetup&&(p.setup.textEditorSetup=p.$parent.$eval(h.taTextEditorSetup)),h.taHtmlEditorSetup&&(p.setup.htmlEditorSetup=p.$parent.$eval(h.taHtmlEditorSetup)),h.taFileDrop?p.fileDropHandler=p.$parent.$eval(h.taFileDrop):p.fileDropHandler=p.defaultFileDropHandler,$=f[0].innerHTML,f[0].innerHTML="",p.displayElements={forminput:angular.element("<input type='hidden' tabindex='-1' style='display: none;'>"),html:angular.element("<textarea></textarea>"),text:angular.element("<div></div>"),scrollWindow:angular.element("<div class='ta-scroll-window'></div>"),popover:angular.element('<div class="popover fade bottom" style="max-width: none; width: 305px;"></div>'),popoverArrow:angular.element('<div class="arrow"></div>'),popoverContainer:angular.element('<div class="popover-content"></div>'),resize:{overlay:angular.element('<div class="ta-resizer-handle-overlay"></div>'),background:angular.element('<div class="ta-resizer-handle-background"></div>'),anchors:[angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-tl"></div>'),angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-tr"></div>'),angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-bl"></div>'),angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-br"></div>')],info:angular.element('<div class="ta-resizer-handle-info"></div>')}},p.displayElements.popover.append(p.displayElements.popoverArrow),p.displayElements.popover.append(p.displayElements.popoverContainer),p.displayElements.scrollWindow.append(p.displayElements.popover),p.displayElements.popover.on("mousedown",function(e,t){return t&&angular.extend(e,t),e.preventDefault(),!1}),p.showPopover=function(e){p.displayElements.popover.css("display","block"),p.reflowPopover(e),l.addClass(p.displayElements.popover,"in"),T(s.find("body"),"click keyup",function(){p.hidePopover()})},p.reflowPopover=function(e){var t,n;p.displayElements.text[0].offsetHeight-51>e[0].offsetTop?(p.displayElements.popover.css("top",e[0].offsetTop+e[0].offsetHeight+p.displayElements.scrollWindow[0].scrollTop+"px"),p.displayElements.popover.removeClass("top").addClass("bottom")):(p.displayElements.popover.css("top",e[0].offsetTop-54+p.displayElements.scrollWindow[0].scrollTop+"px"),p.displayElements.popover.removeClass("bottom").addClass("top")),t=p.displayElements.text[0].offsetWidth-p.displayElements.popover[0].offsetWidth,n=e[0].offsetLeft+e[0].offsetWidth/2-p.displayElements.popover[0].offsetWidth/2,p.displayElements.popover.css("left",Math.max(0,Math.min(t,n))+"px"),p.displayElements.popoverArrow.css("margin-left",Math.min(n,Math.max(0,n-t))-11+"px")},p.hidePopover=function(){p.displayElements.popover.css("display",""),p.displayElements.popoverContainer.attr("style",""),p.displayElements.popoverContainer.attr("class","popover-content"),p.displayElements.popover.removeClass("in")},p.displayElements.resize.overlay.append(p.displayElements.resize.background),angular.forEach(p.displayElements.resize.anchors,function(e){p.displayElements.resize.overlay.append(e)}),p.displayElements.resize.overlay.append(p.displayElements.resize.info),p.displayElements.scrollWindow.append(p.displayElements.resize.overlay),p.reflowResizeOverlay=function(e){e=angular.element(e)[0],p.displayElements.resize.overlay.css({display:"block",left:e.offsetLeft-5+"px",top:e.offsetTop-5+"px",width:e.offsetWidth+10+"px",height:e.offsetHeight+10+"px"}),p.displayElements.resize.info.text(e.offsetWidth+" x "+e.offsetHeight)},p.showResizeOverlay=function(e){var t=s.find("body");S=function(n){var i,r,a={width:parseInt(e.attr("width")),height:parseInt(e.attr("height")),x:n.clientX,y:n.clientY};(void 0===a.width||isNaN(a.width))&&(a.width=e[0].offsetWidth),(void 0===a.height||isNaN(a.height))&&(a.height=e[0].offsetHeight),p.hidePopover(),i=a.height/a.width,r=function(t){function n(e){return Math.round(Math.max(0,e))}var r,o,s={x:Math.max(0,a.width+(t.clientX-a.x)),y:Math.max(0,a.height+(t.clientY-a.y))},l=void 0!==h.taResizeForceAspectRatio,u=h.taResizeMaintainAspectRatio;(l||u&&!t.shiftKey)&&(r=s.y/s.x,s.x=i>r?s.x:s.y/i,s.y=i>r?s.x*i:s.y),o=angular.element(e),o.css("height",n(s.y)+"px"),o.css("width",n(s.x)+"px"),p.reflowResizeOverlay(e)},t.on("mousemove",r),T(t,"mouseup",function(e){e.preventDefault(),e.stopPropagation(),t.off("mousemove",r),p.$apply(function(){p.hidePopover(),p.updateTaBindtaTextElement()},100)}),n.stopPropagation(),n.preventDefault()},p.displayElements.resize.anchors[3].off("mousedown"),p.displayElements.resize.anchors[3].on("mousedown",S),p.reflowResizeOverlay(e),T(t,"click",function(){p.hideResizeOverlay()})},p.hideResizeOverlay=function(){p.displayElements.resize.anchors[3].off("mousedown",S),p.displayElements.resize.overlay.css("display","")},p.setup.htmlEditorSetup(p.displayElements.html),p.setup.textEditorSetup(p.displayElements.text),p.displayElements.html.attr({id:"taHtmlElement"+M,"ng-show":"showHtml","ta-bind":"ta-bind","ng-model":"html","ng-model-options":f.attr("ng-model-options")}),p.displayElements.text.attr({id:"taTextElement"+M,contentEditable:"true","ta-bind":"ta-bind","ng-model":"html","ng-model-options":f.attr("ng-model-options")}),p.displayElements.scrollWindow.attr({"ng-hide":"showHtml"}),h.taDefaultWrap&&p.displayElements.text.attr("ta-default-wrap",h.taDefaultWrap),h.taUnsafeSanitizer&&(p.displayElements.text.attr("ta-unsafe-sanitizer",h.taUnsafeSanitizer),p.displayElements.html.attr("ta-unsafe-sanitizer",h.taUnsafeSanitizer)),p.displayElements.scrollWindow.append(p.displayElements.text),f.append(p.displayElements.scrollWindow),f.append(p.displayElements.html),p.displayElements.forminput.attr("name",p._name),f.append(p.displayElements.forminput),h.tabindex&&(f.removeAttr("tabindex"),p.displayElements.text.attr("tabindex",h.tabindex),p.displayElements.html.attr("tabindex",h.tabindex)),h.placeholder&&(p.displayElements.text.attr("placeholder",h.placeholder),p.displayElements.html.attr("placeholder",h.placeholder)),h.taDisabled&&(p.displayElements.text.attr("ta-readonly","disabled"),p.displayElements.html.attr("ta-readonly","disabled"),p.disabled=p.$parent.$eval(h.taDisabled),p.$parent.$watch(h.taDisabled,function(e){p.disabled=e,p.disabled?f.addClass(p.classes.disabled):f.removeClass(p.classes.disabled)})),h.taPaste&&(p._pasteHandler=function(e){return d(h.taPaste)(p.$parent,{$html:e})},p.displayElements.text.attr("ta-paste","_pasteHandler($html)")),e(p.displayElements.scrollWindow)(p),e(p.displayElements.html)(p),p.updateTaBindtaTextElement=p["updateTaBindtaTextElement"+M],p.updateTaBindtaHtmlElement=p["updateTaBindtaHtmlElement"+M],f.addClass("ta-root"),p.displayElements.scrollWindow.addClass("ta-text ta-editor "+p.classes.textEditor),p.displayElements.html.addClass("ta-html ta-editor "+p.classes.htmlEditor),p._actionRunning=!1,D=!1,p.startAction=function(){return p._actionRunning=!0,D=o.rangy.saveSelection(),function(){D&&o.rangy.restoreSelection(D)}},p.endAction=function(){p._actionRunning=!1,D&&(p.showHtml?p.displayElements.html[0].focus():p.displayElements.text[0].focus(),o.rangy.removeMarkers(D)),D=!1,p.updateSelectedStyles(),p.showHtml||p["updateTaBindtaTextElement"+M]()},w=function(){p.focussed=!0,f.addClass(p.classes.focussed),k.focus(),f.triggerHandler("focus")},p.displayElements.html.on("focus",w),p.displayElements.text.on("focus",w),x=function(e){return p._actionRunning||s[0].activeElement===p.displayElements.html[0]||s[0].activeElement===p.displayElements.text[0]||(f.removeClass(p.classes.focussed),k.unfocus(),t(function(){p._bUpdateSelectedStyles=!1,f.triggerHandler("blur"),p.focussed=!1},0)),e.preventDefault(),!1},p.displayElements.html.on("blur",x),p.displayElements.text.on("blur",x),p.displayElements.text.on("paste",function(e){f.triggerHandler("paste",e)}),p.queryFormatBlockState=function(e){return!p.showHtml&&e.toLowerCase()===s[0].queryCommandValue("formatBlock").toLowerCase()},p.queryCommandState=function(e){return p.showHtml?"":s[0].queryCommandState(e)},p.switchView=function(){p.showHtml=!p.showHtml,l.enabled(!1,p.displayElements.html),l.enabled(!1,p.displayElements.text),p.showHtml?t(function(){return l.enabled(!0,p.displayElements.html),l.enabled(!0,p.displayElements.text),p.displayElements.html[0].focus()},100):t(function(){return l.enabled(!0,p.displayElements.html),l.enabled(!0,p.displayElements.text),p.displayElements.text[0].focus()},100)},h.ngModel?(N=!0,g.$render=function(){if(N){N=!1;var e=p.$parent.$eval(h.ngModel);void 0!==e&&null!==e||!$||""===$||g.$setViewValue($)}p.displayElements.forminput.val(g.$viewValue),p.html=g.$viewValue||""},f.attr("required")&&(g.$validators.required=function(e,t){var n=e||t
;return!(!n||""===n.trim())})):(p.displayElements.forminput.val($),p.html=$),p.$watch("html",function(e,t){e!==t&&(h.ngModel&&g.$viewValue!==e&&g.$setViewValue(e),p.displayElements.forminput.val(e))}),h.taTargetToolbars?k=a.registerEditor(p._name,p,h.taTargetToolbars.split(",")):(O=angular.element('<div text-angular-toolbar name="textAngularToolbar'+M+'">'),h.taToolbar&&O.attr("ta-toolbar",h.taToolbar),h.taToolbarClass&&O.attr("ta-toolbar-class",h.taToolbarClass),h.taToolbarGroupClass&&O.attr("ta-toolbar-group-class",h.taToolbarGroupClass),h.taToolbarButtonClass&&O.attr("ta-toolbar-button-class",h.taToolbarButtonClass),h.taToolbarActiveButtonClass&&O.attr("ta-toolbar-active-button-class",h.taToolbarActiveButtonClass),h.taFocussedClass&&O.attr("ta-focussed-class",h.taFocussedClass),f.prepend(O),e(O)(p.$parent),k=a.registerEditor(p._name,p,["textAngularToolbar"+M])),p.$on("$destroy",function(){a.unregisterEditor(p._name),angular.element(window).off("blur")}),p.$on("ta-element-select",function(e,t){k.triggerElementSelect(e,t)&&p["reApplyOnSelectorHandlerstaTextElement"+M]()}),p.$on("ta-drop-event",function(e,n,i,r){p.displayElements.text[0].focus(),r&&r.files&&r.files.length>0?(angular.forEach(r.files,function(e){try{c.when(p.fileDropHandler(e,p.wrapSelection)||p.fileDropHandler!==p.defaultFileDropHandler&&c.when(p.defaultFileDropHandler(e,p.wrapSelection))).then(function(){p["updateTaBindtaTextElement"+M]()})}catch(e){u.error(e)}}),i.preventDefault(),i.stopPropagation()):t(function(){p["updateTaBindtaTextElement"+M]()},0)}),p._bUpdateSelectedStyles=!1,angular.element(window).on("blur",function(){p._bUpdateSelectedStyles=!1,p.focussed=!1}),p.updateSelectedStyles=function(){var e;E&&t.cancel(E),void 0!==(e=i.getSelectionElement())&&e.parentNode!==p.displayElements.text[0]?k.updateSelectedStyles(angular.element(e)):k.updateSelectedStyles(),p._bUpdateSelectedStyles&&(E=t(p.updateSelectedStyles,200))},m=function(){if(!p.focussed)return void(p._bUpdateSelectedStyles=!1);p._bUpdateSelectedStyles||(p._bUpdateSelectedStyles=!0,p.$apply(function(){p.updateSelectedStyles()}))},p.displayElements.html.on("keydown",m),p.displayElements.text.on("keydown",m),b=function(){p._bUpdateSelectedStyles=!1},p.displayElements.html.on("keyup",b),p.displayElements.text.on("keyup",b),v=function(e,t){t&&angular.extend(e,t),p.$apply(function(){if(k.sendKeyCommand(e))return p._bUpdateSelectedStyles||p.updateSelectedStyles(),e.preventDefault(),!1})},p.displayElements.html.on("keypress",v),p.displayElements.text.on("keypress",v),y=function(){p._bUpdateSelectedStyles=!1,p.$apply(function(){p.updateSelectedStyles()})},p.displayElements.html.on("mouseup",y),p.displayElements.text.on("mouseup",y)}}}]),f.service("textAngularManager",["taToolExecuteAction","taTools","taRegisterTool",function(e,t,n){var i={},r={};return{registerEditor:function(n,a,o){if(!n||""===n)throw"textAngular Error: An editor requires a name";if(!a)throw"textAngular Error: An editor requires a scope";if(r[n])throw'textAngular Error: An Editor with name "'+n+'" already exists';var s=[];return angular.forEach(o,function(e){i[e]&&s.push(i[e])}),r[n]={scope:a,toolbars:o,_registerToolbar:function(e){this.toolbars.indexOf(e.name)>=0&&s.push(e)},editorFunctions:{disable:function(){angular.forEach(s,function(e){e.disabled=!0})},enable:function(){angular.forEach(s,function(e){e.disabled=!1})},focus:function(){angular.forEach(s,function(e){e._parent=a,e.disabled=!1,e.focussed=!0,a.focussed=!0})},unfocus:function(){angular.forEach(s,function(e){e.disabled=!0,e.focussed=!1}),a.focussed=!1},updateSelectedStyles:function(e){angular.forEach(s,function(t){angular.forEach(t.tools,function(n){n.activeState&&(t._parent=a,n.active=n.activeState(e))})})},sendKeyCommand:function(n){var i=!1;return(n.ctrlKey||n.metaKey||n.specialKey)&&angular.forEach(t,function(t,r){if(t.commandKeyCode&&(t.commandKeyCode===n.which||t.commandKeyCode===n.specialKey))for(var o=0;o<s.length;o++)if(void 0!==s[o].tools[r]){e.call(s[o].tools[r],a),i=!0;break}}),i},triggerElementSelect:function(e,n){var i,r,o,l,u,c=function(e,t){var n,i=!0;for(n=0;n<t.length;n++)i=i&&e.attr(t[n]);return i},d=[],p={},f=!1;if(n=angular.element(n),i=!1,angular.forEach(t,function(e,t){e.onElementSelect&&e.onElementSelect.element&&e.onElementSelect.element.toLowerCase()===n[0].tagName.toLowerCase()&&(!e.onElementSelect.filter||e.onElementSelect.filter(n))&&(i=i||angular.isArray(e.onElementSelect.onlyWithAttrs)&&c(n,e.onElementSelect.onlyWithAttrs),e.onElementSelect.onlyWithAttrs&&!c(n,e.onElementSelect.onlyWithAttrs)||(p[t]=e))}),i?(angular.forEach(p,function(e,t){e.onElementSelect.onlyWithAttrs&&c(n,e.onElementSelect.onlyWithAttrs)&&d.push({name:t,tool:e})}),d.sort(function(e,t){return t.tool.onElementSelect.onlyWithAttrs.length-e.tool.onElementSelect.onlyWithAttrs.length})):angular.forEach(p,function(e,t){d.push({name:t,tool:e})}),d.length>0)for(r=0;r<d.length;r++){for(o=d[r].tool,l=d[r].name,u=0;u<s.length;u++)if(void 0!==s[u].tools[l]){o.onElementSelect.action.call(s[u].tools[l],e,n,a),f=!0;break}if(f)break}return f}}},r[n].editorFunctions},retrieveEditor:function(e){return r[e]},unregisterEditor:function(e){delete r[e]},registerToolbar:function(e){if(!e)throw"textAngular Error: A toolbar requires a scope";if(!e.name||""===e.name)throw"textAngular Error: A toolbar requires a name";if(i[e.name])throw'textAngular Error: A toolbar with name "'+e.name+'" already exists';i[e.name]=e,angular.forEach(r,function(t){t._registerToolbar(e)})},retrieveToolbar:function(e){return i[e]},retrieveToolbarsViaEditor:function(e){var t=[],n=this;return angular.forEach(this.retrieveEditor(e).toolbars,function(e){t.push(n.retrieveToolbar(e))}),t},unregisterToolbar:function(e){delete i[e]},updateToolsDisplay:function(e){var t=this;angular.forEach(e,function(e,n){t.updateToolDisplay(n,e)})},resetToolsDisplay:function(){var e=this;angular.forEach(t,function(t,n){e.resetToolDisplay(n)})},updateToolDisplay:function(e,t){var n=this;angular.forEach(i,function(i,r){n.updateToolbarToolDisplay(r,e,t)})},resetToolDisplay:function(e){var t=this;angular.forEach(i,function(n,i){t.resetToolbarToolDisplay(i,e)})},updateToolbarToolDisplay:function(e,t,n){if(!i[e])throw'textAngular Error: No Toolbar with name "'+e+'" exists';i[e].updateToolDisplay(t,n)},resetToolbarToolDisplay:function(e,n){if(!i[e])throw'textAngular Error: No Toolbar with name "'+e+'" exists';i[e].updateToolDisplay(n,t[n],!0)},removeTool:function(e){delete t[e],angular.forEach(i,function(t){var n,i,r;for(delete t.tools[e],n=0;n<t.toolbar.length;n++){for(r=0;r<t.toolbar[n].length;r++){if(t.toolbar[n][r]===e){i={group:n,index:r};break}if(void 0!==i)break}void 0!==i&&(t.toolbar[i.group].slice(i.index,1),t._$element.children().eq(i.group).children().eq(i.index).remove())}})},addTool:function(e,t,r,a){n(e,t),angular.forEach(i,function(n){n.addTool(e,t,r,a)})},addToolToToolbar:function(e,t,r,a,o){n(e,t),i[r].addTool(e,t,a,o)},refreshEditor:function(e){if(!r[e])throw'textAngular Error: No Editor with name "'+e+'" exists';r[e].scope.updateTaBindtaTextElement(),r[e].scope.$$phase||r[e].scope.$digest()},sendKeyCommand:function(e,t){var n=r[e._name];if(n&&n.editorFunctions.sendKeyCommand(t))return e._bUpdateSelectedStyles||e.updateSelectedStyles(),t.preventDefault(),!1}}}]),f.directive("textAngularToolbar",["$compile","textAngularManager","taOptions","taTools","taToolExecuteAction","$window",function(e,t,n,i,r,a){return{scope:{name:"@"},restrict:"EA",link:function(o,s,l){var u,c;if(!o.name||""===o.name)throw"textAngular Error: A toolbar requires a name";angular.extend(o,angular.copy(n)),l.taToolbar&&(o.toolbar=o.$parent.$eval(l.taToolbar)),l.taToolbarClass&&(o.classes.toolbar=l.taToolbarClass),l.taToolbarGroupClass&&(o.classes.toolbarGroup=l.taToolbarGroupClass),l.taToolbarButtonClass&&(o.classes.toolbarButton=l.taToolbarButtonClass),l.taToolbarActiveButtonClass&&(o.classes.toolbarButtonActive=l.taToolbarActiveButtonClass),l.taFocussedClass&&(o.classes.focussed=l.taFocussedClass),o.disabled=!0,o.focussed=!1,o._$element=s,s[0].innerHTML="",s.addClass("ta-toolbar "+o.classes.toolbar),o.$watch("focussed",function(){o.focussed?s.addClass(o.classes.focussed):s.removeClass(o.classes.focussed)}),u=function(t,n){var i,r,a;return i=t&&t.display?angular.element(t.display):angular.element("<button type='button'>"),t&&t.class?i.addClass(t.class):i.addClass(o.classes.toolbarButton),i.attr("name",n.name),i.attr("ta-button","ta-button"),i.attr("ng-disabled","isDisabled()"),i.attr("tabindex","-1"),i.attr("ng-click","executeAction()"),i.attr("ng-class","displayActiveToolClass(active)"),t&&t.tooltiptext&&i.attr("title",t.tooltiptext),!t||t.display||n._display||(i[0].innerHTML="",t.buttontext&&(i[0].innerHTML=t.buttontext),t.iconclass&&(r=angular.element("<i>"),a=i[0].innerHTML,r.addClass(t.iconclass),i[0].innerHTML="",i.append(r),a&&""!==a&&i.append(" "+a))),n._lastToolDefinition=angular.copy(t),e(i)(n)},o.tools={},o._parent={disabled:!0,showHtml:!1,queryFormatBlockState:function(){return!1},queryCommandState:function(){return!1}},c={$window:a,$editor:function(){return o._parent},isDisabled:function(){return"function"!=typeof this.$eval("disabled")&&this.$eval("disabled")||this.$eval("disabled()")||"html"!==this.name&&this.$editor().showHtml||this.$parent.disabled||this.$editor().disabled},displayActiveToolClass:function(e){return e?o.classes.toolbarButtonActive:""},executeAction:r},angular.forEach(o.toolbar,function(e){var t=angular.element("<div>");t.addClass(o.classes.toolbarGroup),angular.forEach(e,function(e){o.tools[e]=angular.extend(o.$new(!0),i[e],c,{name:e}),o.tools[e].$element=u(i[e],o.tools[e]),t.append(o.tools[e].$element)}),s.append(t)}),o.updateToolDisplay=function(e,t,n){var i,r=o.tools[e];if(r){if(r._lastToolDefinition&&!n&&(t=angular.extend({},r._lastToolDefinition,t)),null===t.buttontext&&null===t.iconclass&&null===t.display)throw'textAngular Error: Tool Definition for updating "'+e+'" does not have a valid display/iconclass/buttontext value';null===t.buttontext&&delete t.buttontext,null===t.iconclass&&delete t.iconclass,null===t.display&&delete t.display,i=u(t,r),r.$element.replaceWith(i),r.$element=i}},o.addTool=function(e,t,n,r){o.tools[e]=angular.extend(o.$new(!0),i[e],c,{name:e}),o.tools[e].$element=u(i[e],o.tools[e]);var a;void 0===n&&(n=o.toolbar.length-1),a=angular.element(s.children()[n]),void 0===r?(a.append(o.tools[e].$element),o.toolbar[n][o.toolbar[n].length-1]=e):(a.children().eq(r).after(o.tools[e].$element),o.toolbar[n][r]=e)},t.registerToolbar(o),o.$on("$destroy",function(){t.unregisterToolbar(o.name)})}}}])}();var n={};angular.module("textAngularSetup",[]).constant("taRegisterTool",t).value("taTools",n).value("taOptions",{forceTextAngularSanitize:!0,keyMappings:[],toolbar:[["h1","h2","h3","h4","h5","h6","p","pre","quote"],["bold","italics","underline","strikeThrough","ul","ol","redo","undo","clear"],["justifyLeft","justifyCenter","justifyRight","justifyFull","indent","outdent"],["html","insertImage","insertLink","insertVideo","wordcount","charcount"]],classes:{focussed:"focussed",toolbar:"btn-toolbar",toolbarGroup:"btn-group",toolbarButton:"btn btn-default",toolbarButtonActive:"active",disabled:"disabled",textEditor:"form-control",htmlEditor:"form-control"},defaultTagAttributes:{a:{target:""}},setup:{textEditorSetup:function(e){},htmlEditorSetup:function(e){}},defaultFileDropHandler:function(e,t){var n=new FileReader;return"image"===e.type.substring(0,5)&&(n.onload=function(){""!==n.result&&t("insertImage",n.result,!0)},n.readAsDataURL(e),!0)}}).value("taSelectableElements",["a","img"]).value("taCustomRenderers",[{selector:"img",customAttribute:"ta-insert-video",renderLogic:function(e){var t=angular.element("<iframe></iframe>"),n=e.prop("attributes");angular.forEach(n,function(e){t.attr(e.name,e.value)}),t.attr("src",t.attr("ta-insert-video")),e.replaceWith(t)}}]).value("taTranslations",{html:{tooltip:"Toggle html / Rich Text"},heading:{tooltip:"Heading "},p:{tooltip:"Paragraph"},pre:{tooltip:"Preformatted text"},ul:{tooltip:"Unordered List"},ol:{tooltip:"Ordered List"},quote:{tooltip:"Quote/unquote selection or paragraph"},undo:{tooltip:"Undo"},redo:{tooltip:"Redo"},bold:{tooltip:"Bold"},italic:{tooltip:"Italic"},underline:{tooltip:"Underline"},strikeThrough:{tooltip:"Strikethrough"},justifyLeft:{tooltip:"Align text left"},justifyRight:{tooltip:"Align text right"},justifyFull:{tooltip:"Justify text"},justifyCenter:{tooltip:"Center"},indent:{tooltip:"Increase indent"},outdent:{tooltip:"Decrease indent"},clear:{tooltip:"Clear formatting"},insertImage:{dialogPrompt:"Please enter an image URL to insert",tooltip:"Insert image",hotkey:"the - possibly language dependent hotkey ... for some future implementation"},insertVideo:{tooltip:"Insert video",dialogPrompt:"Please enter a youtube URL to embed"},insertLink:{tooltip:"Insert / edit link",dialogPrompt:"Please enter a URL to insert"},editLink:{reLinkButton:{tooltip:"Relink"},unLinkButton:{tooltip:"Unlink"},targetToggle:{buttontext:"Open in New Window"}},wordcount:{tooltip:"Display words Count"},charcount:{tooltip:"Display characters Count"}}).factory("taToolFunctions",["$window","taTranslations",function(e,t){return{imgOnSelectAction:function(e,t,n){var i,r,a,o,s,l,u,c,d,p,f=function(){n.updateTaBindtaTextElement(),n.hidePopover()};e.preventDefault(),n.displayElements.popover.css("width","375px"),i=n.displayElements.popoverContainer,i.empty(),r=angular.element('<div class="btn-group" style="padding-right: 6px;">'),a=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">100% </button>'),a.on("click",function(e){e.preventDefault(),t.css({width:"100%",height:""}),f()}),o=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">50% </button>'),o.on("click",function(e){e.preventDefault(),t.css({width:"50%",height:""}),f()}),s=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">25% </button>'),s.on("click",function(e){e.preventDefault(),t.css({width:"25%",height:""}),f()}),l=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">Reset</button>'),l.on("click",function(e){e.preventDefault(),t.css({width:"",height:""}),f()}),r.append(a),r.append(o),r.append(s),r.append(l),i.append(r),r=angular.element('<div class="btn-group" style="padding-right: 6px;">'),u=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-align-left"></i></button>'),u.on("click",function(e){e.preventDefault(),t.css("float","left"),t.css("cssFloat","left"),t.css("styleFloat","left"),f()}),c=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-align-right"></i></button>'),c.on("click",function(e){e.preventDefault(),t.css("float","right"),t.css("cssFloat","right"),t.css("styleFloat","right"),f()}),d=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-align-justify"></i></button>'),d.on("click",function(e){e.preventDefault(),t.css("float",""),t.css("cssFloat",""),t.css("styleFloat",""),f()}),r.append(u),r.append(d),r.append(c),i.append(r),r=angular.element('<div class="btn-group">'),p=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-trash-o"></i></button>'),p.on("click",function(e){e.preventDefault(),t.remove(),f()}),r.append(p),i.append(r),n.showPopover(t),n.showResizeOverlay(t)},aOnSelectAction:function(n,i,r){var a,o,s,l,u,c;n.preventDefault(),r.displayElements.popover.css("width","436px"),a=r.displayElements.popoverContainer,a.empty(),a.css("line-height","28px"),o=angular.element('<a href="'+i.attr("href")+'" target="_blank">'+i.attr("href")+"</a>"),o.css({display:"inline-block","max-width":"200px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap","vertical-align":"middle"}),a.append(o),s=angular.element('<div class="btn-group pull-right">'),l=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" tabindex="-1" unselectable="on" title="'+t.editLink.reLinkButton.tooltip+'"><i class="fa fa-edit icon-edit"></i></button>'),l.on("click",function(n){n.preventDefault();var a=e.prompt(t.insertLink.dialogPrompt,i.attr("href"));a&&""!==a&&"http://"!==a&&(i.attr("href",a),r.updateTaBindtaTextElement()),r.hidePopover()}),s.append(l),u=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" tabindex="-1" unselectable="on" title="'+t.editLink.unLinkButton.tooltip+'"><i class="fa fa-unlink icon-unlink"></i></button>'),u.on("click",function(e){e.preventDefault(),i.replaceWith(i.contents()),r.updateTaBindtaTextElement(),r.hidePopover()}),s.append(u),c=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" tabindex="-1" unselectable="on">'+t.editLink.targetToggle.buttontext+"</button>"),"_blank"===i.attr("target")&&c.addClass("active"),c.on("click",function(e){e.preventDefault(),i.attr("target","_blank"===i.attr("target")?"":"_blank"),c.toggleClass("active"),r.updateTaBindtaTextElement()}),s.append(c),a.append(s),r.showPopover(i)},extractYoutubeVideoId:function(e){var t=/(?:youtube(?:-nocookie)?\.com\/(?:[^\/\n\s]+\/\S+\/|(?:v|e(?:mbed)?)\/|\S*?[?&]v=)|youtu\.be\/)([a-zA-Z0-9_-]{11})/i,n=e.match(t);return n&&n[1]||null}}}]).run(["taRegisterTool","$window","taTranslations","taSelection","taToolFunctions","$sanitize","taOptions",function(e,t,n,i,r,a,o){var s,l,u={};if(a("",u),!0===o.forceTextAngularSanitize&&"taSanitize"!==u.version)throw angular.$$minErr("textAngular")("textAngularSetup","The textAngular-sanitize provider has been replaced by another -- have you included angular-sanitize by mistake?");e("html",{iconclass:"fa fa-code",tooltiptext:n.html.tooltip,action:function(){this.$editor().switchView()},activeState:function(){return this.$editor().showHtml}}),s=function(e){return function(){return this.$editor().queryFormatBlockState(e)}},l=function(){return this.$editor().wrapSelection("formatBlock","<"+this.name.toUpperCase()+">")},angular.forEach(["h1","h2","h3","h4","h5","h6"],function(t){e(t.toLowerCase(),{buttontext:t.toUpperCase(),tooltiptext:n.heading.tooltip+t.charAt(1),action:l,activeState:s(t.toLowerCase())})}),e("p",{buttontext:"P",tooltiptext:n.p.tooltip,action:function(){return this.$editor().wrapSelection("formatBlock","<P>")},activeState:function(){return this.$editor().queryFormatBlockState("p")}}),e("pre",{buttontext:"pre",tooltiptext:n.pre.tooltip,action:function(){return this.$editor().wrapSelection("formatBlock","<PRE>")},activeState:function(){return this.$editor().queryFormatBlockState("pre")}}),e("ul",{iconclass:"fa fa-list-ul",tooltiptext:n.ul.tooltip,action:function(){return this.$editor().wrapSelection("insertUnorderedList",null)},activeState:function(){return this.$editor().queryCommandState("insertUnorderedList")}}),e("ol",{iconclass:"fa fa-list-ol",tooltiptext:n.ol.tooltip,action:function(){return this.$editor().wrapSelection("insertOrderedList",null)},activeState:function(){return this.$editor().queryCommandState("insertOrderedList")}}),e("quote",{iconclass:"fa fa-quote-right",tooltiptext:n.quote.tooltip,action:function(){return this.$editor().wrapSelection("formatBlock","<BLOCKQUOTE>")},activeState:function(){return this.$editor().queryFormatBlockState("blockquote")}}),e("undo",{iconclass:"fa fa-undo",tooltiptext:n.undo.tooltip,action:function(){return this.$editor().wrapSelection("undo",null)}}),e("redo",{iconclass:"fa fa-repeat",tooltiptext:n.redo.tooltip,action:function(){return this.$editor().wrapSelection("redo",null)}}),e("bold",{iconclass:"fa fa-bold",tooltiptext:n.bold.tooltip,action:function(){return this.$editor().wrapSelection("bold",null)},activeState:function(){return this.$editor().queryCommandState("bold")},commandKeyCode:98}),e("justifyLeft",{iconclass:"fa fa-align-left",tooltiptext:n.justifyLeft.tooltip,action:function(){return this.$editor().wrapSelection("justifyLeft",null)},activeState:function(e){if(e&&"#document"===e.nodeName)return!1;var t=!1;return e&&(t="left"===e.css("text-align")||"left"===e.attr("align")||"right"!==e.css("text-align")&&"center"!==e.css("text-align")&&"justify"!==e.css("text-align")&&!this.$editor().queryCommandState("justifyRight")&&!this.$editor().queryCommandState("justifyCenter")&&!this.$editor().queryCommandState("justifyFull")),t=t||this.$editor().queryCommandState("justifyLeft")}}),e("justifyRight",{iconclass:"fa fa-align-right",tooltiptext:n.justifyRight.tooltip,action:function(){return this.$editor().wrapSelection("justifyRight",null)},activeState:function(e){if(e&&"#document"===e.nodeName)return!1;var t=!1;return e&&(t="right"===e.css("text-align")),t=t||this.$editor().queryCommandState("justifyRight")}}),e("justifyFull",{iconclass:"fa fa-align-justify",tooltiptext:n.justifyFull.tooltip,action:function(){return this.$editor().wrapSelection("justifyFull",null)},activeState:function(e){var t=!1;return e&&(t="justify"===e.css("text-align")),t=t||this.$editor().queryCommandState("justifyFull")}}),e("justifyCenter",{iconclass:"fa fa-align-center",tooltiptext:n.justifyCenter.tooltip,action:function(){return this.$editor().wrapSelection("justifyCenter",null)},activeState:function(e){if(e&&"#document"===e.nodeName)return!1;var t=!1;return e&&(t="center"===e.css("text-align")),t=t||this.$editor().queryCommandState("justifyCenter")}}),e("indent",{iconclass:"fa fa-indent",tooltiptext:n.indent.tooltip,action:function(){return this.$editor().wrapSelection("indent",null)},activeState:function(){return this.$editor().queryFormatBlockState("blockquote")},commandKeyCode:"TabKey"}),e("outdent",{iconclass:"fa fa-outdent",tooltiptext:n.outdent.tooltip,action:function(){return this.$editor().wrapSelection("outdent",null)},activeState:function(){return!1},commandKeyCode:"ShiftTabKey"}),e("italics",{iconclass:"fa fa-italic",tooltiptext:n.italic.tooltip,action:function(){return this.$editor().wrapSelection("italic",null)},activeState:function(){return this.$editor().queryCommandState("italic")},commandKeyCode:105}),e("underline",{iconclass:"fa fa-underline",tooltiptext:n.underline.tooltip,action:function(){return this.$editor().wrapSelection("underline",null)},activeState:function(){return this.$editor().queryCommandState("underline")},commandKeyCode:117}),e("strikeThrough",{iconclass:"fa fa-strikethrough",tooltiptext:n.strikeThrough.tooltip,action:function(){return this.$editor().wrapSelection("strikeThrough",null)},activeState:function(){return document.queryCommandState("strikeThrough")}}),e("clear",{iconclass:"fa fa-ban",tooltiptext:n.clear.tooltip,action:function(e,t){var n,r,a,o,s,l,u,c,d,p,f,h,g;if(this.$editor().wrapSelection("removeFormat",null),r=angular.element(i.getSelectionElement()),a=function(e){e=angular.element(e);var t=e;angular.forEach(e.children(),function(e){var n=angular.element("<p></p>");n.html(angular.element(e).html()),t.after(n),t=n}),e.remove()},angular.forEach(r.find("ul"),a),angular.forEach(r.find("ol"),a),"li"===r[0].tagName.toLowerCase()){for(o=r[0].parentNode.childNodes,s=[],l=[],u=!1,n=0;n<o.length;n++)o[n]===r[0]?u=!0:u?l.push(o[n]):s.push(o[n]);if(c=angular.element(r[0].parentNode),d=angular.element("<p></p>"),d.html(angular.element(r[0]).html()),0===s.length||0===l.length)0===l.length?c.after(d):c[0].parentNode.insertBefore(d[0],c[0]),0===s.length&&0===l.length?c.remove():angular.element(r[0]).remove();else{for(p=angular.element("<"+c[0].tagName+"></"+c[0].tagName+">"),f=angular.element("<"+c[0].tagName+"></"+c[0].tagName+">"),n=0;n<s.length;n++)p.append(angular.element(s[n]));for(n=0;n<l.length;n++)f.append(angular.element(l[n]));c.after(f),c.after(d),c.after(p),c.remove()}i.setSelectionToElementEnd(d[0])}h=this.$editor(),g=function(e){e=angular.element(e),e[0]!==h.displayElements.text[0]&&e.removeAttr("class"),angular.forEach(e.children(),g)},angular.forEach(r,g),"li"!==r[0].tagName.toLowerCase()&&"ol"!==r[0].tagName.toLowerCase()&&"ul"!==r[0].tagName.toLowerCase()&&this.$editor().wrapSelection("formatBlock","default"),t()}}),e("insertImage",{iconclass:"fa fa-picture-o",tooltiptext:n.insertImage.tooltip,action:function(){var e;if((e=t.prompt(n.insertImage.dialogPrompt,"http://"))&&""!==e&&"http://"!==e)return this.$editor().wrapSelection("insertImage",e,!0)},onElementSelect:{element:"img",action:r.imgOnSelectAction}}),e("insertVideo",{iconclass:"fa fa-youtube-play",tooltiptext:n.insertVideo.tooltip,action:function(){var e,i,a=t.prompt(n.insertVideo.dialogPrompt,"https://");if(a&&""!==a&&"https://"!==a&&(videoId=r.extractYoutubeVideoId(a),videoId))return e="https://www.youtube.com/embed/"+videoId,i='<img class="ta-insert-video" src="https://img.youtube.com/vi/'+videoId+'/hqdefault.jpg" ta-insert-video="'+e+'" contenteditable="false" allowfullscreen="true" frameborder="0" />',this.$editor().wrapSelection("insertHTML",i,!0)},onElementSelect:{element:"img",onlyWithAttrs:["ta-insert-video"],action:r.imgOnSelectAction}}),e("insertLink",{tooltiptext:n.insertLink.tooltip,iconclass:"fa fa-link",action:function(){var e;if((e=t.prompt(n.insertLink.dialogPrompt,"http://"))&&""!==e&&"http://"!==e)return this.$editor().wrapSelection("createLink",e,!0)},activeState:function(e){return!!e&&"A"===e[0].tagName},onElementSelect:{element:"a",action:r.aOnSelectAction}}),e("wordcount",{display:'<div id="toolbarWC" style="display:block; min-width:100px;">Words: <span ng-bind="wordcount"></span></div>',disabled:!0,wordcount:0,activeState:function(){var e=this.$editor().displayElements.text,t=e[0].innerHTML||"",n=0;return""!==t.replace(/\s*<[^>]*?>\s*/g,"")&&(n=t.replace(/<\/?(b|i|em|strong|span|u|strikethrough|a|img|small|sub|sup|label)( [^>*?])?>/gi,"").replace(/(<[^>]*?>\s*<[^>]*?>)/gi," ").replace(/(<[^>]*?>)/gi,"").replace(/\s+/gi," ").match(/\S+/g).length),this.wordcount=n,this.$editor().wordcount=n,!1}}),e("charcount",{display:'<div id="toolbarCC" style="display:block; min-width:120px;">Characters: <span ng-bind="charcount"></span></div>',disabled:!0,charcount:0,activeState:function(){var e=this.$editor().displayElements.text,t=e[0].innerText||e[0].textContent,n=t.replace(/(\r\n|\n|\r)/gm,"").replace(/^\s+/g," ").replace(/\s+$/g," ").length;return this.charcount=n,this.$editor().charcount=n,!1}})}]),angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.isClass","ui.bootstrap.datepicker","ui.bootstrap.position","ui.bootstrap.datepickerPopup","ui.bootstrap.debounce","ui.bootstrap.dropdown","ui.bootstrap.stackedMap","ui.bootstrap.modal","ui.bootstrap.paging","ui.bootstrap.pager","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]),angular.module("ui.bootstrap.tpls",["uib/template/accordion/accordion-group.html","uib/template/accordion/accordion.html","uib/template/alert/alert.html","uib/template/carousel/carousel.html","uib/template/carousel/slide.html","uib/template/datepicker/datepicker.html","uib/template/datepicker/day.html","uib/template/datepicker/month.html","uib/template/datepicker/year.html","uib/template/datepickerPopup/popup.html","uib/template/modal/backdrop.html","uib/template/modal/window.html","uib/template/pager/pager.html","uib/template/pagination/pagination.html","uib/template/tooltip/tooltip-html-popup.html","uib/template/tooltip/tooltip-popup.html","uib/template/tooltip/tooltip-template-popup.html","uib/template/popover/popover-html.html","uib/template/popover/popover-template.html","uib/template/popover/popover.html","uib/template/progressbar/bar.html","uib/template/progressbar/progress.html","uib/template/progressbar/progressbar.html","uib/template/rating/rating.html","uib/template/tabs/tab.html","uib/template/tabs/tabset.html","uib/template/timepicker/timepicker.html","uib/template/typeahead/typeahead-match.html","uib/template/typeahead/typeahead-popup.html"]),angular.module("ui.bootstrap.collapse",[]).directive("uibCollapse",["$animate","$q","$parse","$injector",function(e,t,n,i){var r=i.has("$animateCss")?i.get("$animateCss"):null;return{link:function(i,a,o){function s(){a.hasClass("collapse")&&a.hasClass("in")||t.resolve(d(i)).then(function(){a.removeClass("collapse").addClass("collapsing").attr("aria-expanded",!0).attr("aria-hidden",!1),r?r(a,{addClass:"in",easing:"ease",to:{height:a[0].scrollHeight+"px"}}).start().finally(l):e.addClass(a,"in",{to:{height:a[0].scrollHeight+"px"}}).then(l)})}function l(){a.removeClass("collapsing").addClass("collapse").css({height:"auto"}),p(i)}function u(){if(!a.hasClass("collapse")&&!a.hasClass("in"))return c();t.resolve(f(i)).then(function(){a.css({height:a[0].scrollHeight+"px"}).removeClass("collapse").addClass("collapsing").attr("aria-expanded",!1).attr("aria-hidden",!0),r?r(a,{removeClass:"in",to:{height:"0"}}).start().finally(c):e.removeClass(a,"in",{to:{height:"0"}}).then(c)})}function c(){a.css({height:"0"}),a.removeClass("collapsing").addClass("collapse"),h(i)}var d=n(o.expanding),p=n(o.expanded),f=n(o.collapsing),h=n(o.collapsed);i.$eval(o.uibCollapse)||a.addClass("in").addClass("collapse").attr("aria-expanded",!0).attr("aria-hidden",!1).css({height:"auto"}),i.$watch(o.uibCollapse,function(e){e?u():s()})}}}]),angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("uibAccordionConfig",{closeOthers:!0}).controller("UibAccordionController",["$scope","$attrs","uibAccordionConfig",function(e,t,n){this.groups=[],this.closeOthers=function(i){(angular.isDefined(t.closeOthers)?e.$eval(t.closeOthers):n.closeOthers)&&angular.forEach(this.groups,function(e){e!==i&&(e.isOpen=!1)})},this.addGroup=function(e){var t=this;this.groups.push(e),e.$on("$destroy",function(n){t.removeGroup(e)})},this.removeGroup=function(e){var t=this.groups.indexOf(e);-1!==t&&this.groups.splice(t,1)}}]).directive("uibAccordion",function(){return{controller:"UibAccordionController",controllerAs:"accordion",transclude:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/accordion/accordion.html"}}}).directive("uibAccordionGroup",function(){return{require:"^uibAccordion",transclude:!0,replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/accordion/accordion-group.html"},scope:{heading:"@",panelClass:"@?",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(e){this.heading=e}},link:function(e,t,n,i){i.addGroup(e),e.openClass=n.openClass||"panel-open",e.panelClass=n.panelClass||"panel-default",e.$watch("isOpen",function(n){t.toggleClass(e.openClass,!!n),n&&i.closeOthers(e)}),e.toggleOpen=function(t){e.isDisabled||t&&32!==t.which||(e.isOpen=!e.isOpen)};var r="accordiongroup-"+e.$id+"-"+Math.floor(1e4*Math.random());e.headingId=r+"-tab",e.panelId=r+"-panel"}}}).directive("uibAccordionHeading",function(){return{transclude:!0,template:"",replace:!0,require:"^uibAccordionGroup",link:function(e,t,n,i,r){i.setHeading(r(e,angular.noop))}}}).directive("uibAccordionTransclude",function(){return{require:"^uibAccordionGroup",link:function(e,t,n,i){e.$watch(function(){return i[n.uibAccordionTransclude]},function(e){if(e){var n=angular.element(t[0].querySelector("[uib-accordion-header]"));n.html(""),n.append(e)}})}}}),angular.module("ui.bootstrap.alert",[]).controller("UibAlertController",["$scope","$attrs","$interpolate","$timeout",function(e,t,n,i){e.closeable=!!t.close;var r=angular.isDefined(t.dismissOnTimeout)?n(t.dismissOnTimeout)(e.$parent):null;r&&i(function(){e.close()},parseInt(r,10))}]).directive("uibAlert",function(){return{controller:"UibAlertController",controllerAs:"alert",templateUrl:function(e,t){
return t.templateUrl||"uib/template/alert/alert.html"},transclude:!0,replace:!0,scope:{type:"@",close:"&"}}}),angular.module("ui.bootstrap.buttons",[]).constant("uibButtonConfig",{activeClass:"active",toggleEvent:"click"}).controller("UibButtonsController",["uibButtonConfig",function(e){this.activeClass=e.activeClass||"active",this.toggleEvent=e.toggleEvent||"click"}]).directive("uibBtnRadio",["$parse",function(e){return{require:["uibBtnRadio","ngModel"],controller:"UibButtonsController",controllerAs:"buttons",link:function(t,n,i,r){var a=r[0],o=r[1],s=e(i.uibUncheckable);n.find("input").css({display:"none"}),o.$render=function(){n.toggleClass(a.activeClass,angular.equals(o.$modelValue,t.$eval(i.uibBtnRadio)))},n.on(a.toggleEvent,function(){if(!i.disabled){var e=n.hasClass(a.activeClass);e&&!angular.isDefined(i.uncheckable)||t.$apply(function(){o.$setViewValue(e?null:t.$eval(i.uibBtnRadio)),o.$render()})}}),i.uibUncheckable&&t.$watch(s,function(e){i.$set("uncheckable",e?"":void 0)})}}}]).directive("uibBtnCheckbox",function(){return{require:["uibBtnCheckbox","ngModel"],controller:"UibButtonsController",controllerAs:"button",link:function(e,t,n,i){function r(){return o(n.btnCheckboxTrue,!0)}function a(){return o(n.btnCheckboxFalse,!1)}function o(t,n){return angular.isDefined(t)?e.$eval(t):n}var s=i[0],l=i[1];t.find("input").css({display:"none"}),l.$render=function(){t.toggleClass(s.activeClass,angular.equals(l.$modelValue,r()))},t.on(s.toggleEvent,function(){n.disabled||e.$apply(function(){l.$setViewValue(t.hasClass(s.activeClass)?a():r()),l.$render()})})}}}),angular.module("ui.bootstrap.carousel",[]).controller("UibCarouselController",["$scope","$element","$interval","$timeout","$animate",function(e,t,n,i,r){function a(){for(;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(!w){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=[],w=!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(){w=!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()}return{beforeAddClass:function(n,i,r){var a,o,s,l;if("active"===i)return a=!1,o=n.data("uib-slideDirection"),s="next"===o?"left":"right",l=t.bind(this,n,s+" "+o,r),n.addClass(o),e(n,{addClass:s}).start().done(l),function(){a=!0};r()},beforeRemoveClass:function(n,i,r){var a,o,s,l;if("active"===i)return a=!1,o=n.data("uib-slideDirection"),s="next"===o?"left":"right",l=t.bind(this,n,s,r),e(n,{addClass:s}).start().done(l),function(){a=!0};r()}}}]),angular.module("ui.bootstrap.dateparser",[]).service("uibDateParser",["$log","$locale","dateFilter","orderByFilter",function(e,t,n,i){function r(e,t){var n,r,a=[],o=e.split(""),s=e.indexOf("'");if(s>-1){for(n=!1,e=e.split(""),r=s;r<e.length;r++)n?("'"===e[r]&&(r+1<e.length&&"'"===e[r+1]?(e[r+1]="$",o[r+1]=""):(o[r]="",n=!1)),e[r]="$"):"'"===e[r]&&(e[r]="$",o[r]="",n=!0);e=e.join("")}return angular.forEach(f,function(n){var i,r,s=e.indexOf(n.key);if(s>-1){for(e=e.split(""),o[s]="("+n.regex+")",e[s]="$",i=s+1,r=s+n.key.length;i<r;i++)o[i]="",e[i]="$";e=e.join(""),a.push({index:s,key:n.key,apply:n[t],matcher:n.regex})}}),{regex:new RegExp("^"+o.join("")+"$"),map:i(a,"index")}}function a(e,t,n){return!(n<1)&&(1===t&&n>28?29===n&&(e%4==0&&e%100!=0||e%400==0):3!==t&&5!==t&&8!==t&&10!==t||n<31)}function o(e){return parseInt(e,10)}function s(e,t){return e&&t?d(e,t):e}function l(e,t){return e&&t?d(e,t,!0):e}function u(e,t){var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return isNaN(n)?t:n}function c(e,t){return e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+t),e}function d(e,t,n){return n=n?-1:1,c(e,n*(u(t,e.getTimezoneOffset())-e.getTimezoneOffset()))}var p,f,h=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;this.init=function(){p=t.id,this.parsers={},this.formatters={},f=[{key:"yyyy",regex:"\\d{4}",apply:function(e){this.year=+e},formatter:function(e){var t=new Date;return t.setFullYear(Math.abs(e.getFullYear())),n(t,"yyyy")}},{key:"yy",regex:"\\d{2}",apply:function(e){e=+e,this.year=e<69?e+2e3:e+1900},formatter:function(e){var t=new Date;return t.setFullYear(Math.abs(e.getFullYear())),n(t,"yy")}},{key:"y",regex:"\\d{1,4}",apply:function(e){this.year=+e},formatter:function(e){var t=new Date;return t.setFullYear(Math.abs(e.getFullYear())),n(t,"y")}},{key:"M!",regex:"0?[1-9]|1[0-2]",apply:function(e){this.month=e-1},formatter:function(e){return/^[0-9]$/.test(e.getMonth())?n(e,"MM"):n(e,"M")}},{key:"MMMM",regex:t.DATETIME_FORMATS.MONTH.join("|"),apply:function(e){this.month=t.DATETIME_FORMATS.MONTH.indexOf(e)},formatter:function(e){return n(e,"MMMM")}},{key:"MMM",regex:t.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(e){this.month=t.DATETIME_FORMATS.SHORTMONTH.indexOf(e)},formatter:function(e){return n(e,"MMM")}},{key:"MM",regex:"0[1-9]|1[0-2]",apply:function(e){this.month=e-1},formatter:function(e){return n(e,"MM")}},{key:"M",regex:"[1-9]|1[0-2]",apply:function(e){this.month=e-1},formatter:function(e){return n(e,"M")}},{key:"d!",regex:"[0-2]?[0-9]{1}|3[0-1]{1}",apply:function(e){this.date=+e},formatter:function(e){return/^[1-9]$/.test(e.getDate())?n(e,"dd"):n(e,"d")}},{key:"dd",regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(e){this.date=+e},formatter:function(e){return n(e,"dd")}},{key:"d",regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(e){this.date=+e},formatter:function(e){return n(e,"d")}},{key:"EEEE",regex:t.DATETIME_FORMATS.DAY.join("|"),formatter:function(e){return n(e,"EEEE")}},{key:"EEE",regex:t.DATETIME_FORMATS.SHORTDAY.join("|"),formatter:function(e){return n(e,"EEE")}},{key:"HH",regex:"(?:0|1)[0-9]|2[0-3]",apply:function(e){this.hours=+e},formatter:function(e){return n(e,"HH")}},{key:"hh",regex:"0[0-9]|1[0-2]",apply:function(e){this.hours=+e},formatter:function(e){return n(e,"hh")}},{key:"H",regex:"1?[0-9]|2[0-3]",apply:function(e){this.hours=+e},formatter:function(e){return n(e,"H")}},{key:"h",regex:"[0-9]|1[0-2]",apply:function(e){this.hours=+e},formatter:function(e){return n(e,"h")}},{key:"mm",regex:"[0-5][0-9]",apply:function(e){this.minutes=+e},formatter:function(e){return n(e,"mm")}},{key:"m",regex:"[0-9]|[1-5][0-9]",apply:function(e){this.minutes=+e},formatter:function(e){return n(e,"m")}},{key:"sss",regex:"[0-9][0-9][0-9]",apply:function(e){this.milliseconds=+e},formatter:function(e){return n(e,"sss")}},{key:"ss",regex:"[0-5][0-9]",apply:function(e){this.seconds=+e},formatter:function(e){return n(e,"ss")}},{key:"s",regex:"[0-9]|[1-5][0-9]",apply:function(e){this.seconds=+e},formatter:function(e){return n(e,"s")}},{key:"a",regex:t.DATETIME_FORMATS.AMPMS.join("|"),apply:function(e){12===this.hours&&(this.hours=0),"PM"===e&&(this.hours+=12)},formatter:function(e){return n(e,"a")}},{key:"Z",regex:"[+-]\\d{4}",apply:function(e){var t=e.match(/([+-])(\d{2})(\d{2})/),n=t[1],i=t[2],r=t[3];this.hours+=o(n+i),this.minutes+=o(n+r)},formatter:function(e){return n(e,"Z")}},{key:"ww",regex:"[0-4][0-9]|5[0-3]",formatter:function(e){return n(e,"ww")}},{key:"w",regex:"[0-9]|[1-4][0-9]|5[0-3]",formatter:function(e){return n(e,"w")}},{key:"GGGG",regex:t.DATETIME_FORMATS.ERANAMES.join("|").replace(/\s/g,"\\s"),formatter:function(e){return n(e,"GGGG")}},{key:"GGG",regex:t.DATETIME_FORMATS.ERAS.join("|"),formatter:function(e){return n(e,"GGG")}},{key:"GG",regex:t.DATETIME_FORMATS.ERAS.join("|"),formatter:function(e){return n(e,"GG")}},{key:"G",regex:t.DATETIME_FORMATS.ERAS.join("|"),formatter:function(e){return n(e,"G")}}]},this.init(),this.filter=function(e,n){var i,a,o;return angular.isDate(e)&&!isNaN(e)&&n?(n=t.DATETIME_FORMATS[n]||n,t.id!==p&&this.init(),this.formatters[n]||(this.formatters[n]=r(n,"formatter")),i=this.formatters[n],a=i.map,o=n,a.reduce(function(t,n,i){var r,s=o.match(new RegExp("(.*)"+n.key));return s&&angular.isString(s[1])&&(t+=s[1],o=o.replace(s[1]+n.key,"")),r=i===a.length-1?o:"",n.apply?t+n.apply.call(null,e)+r:t+r},"")):""},this.parse=function(n,i,o){var s,l,u,c,d,f,g,m,b,v,y,w;if(!angular.isString(n)||!i)return n;if(i=t.DATETIME_FORMATS[i]||i,i=i.replace(h,"\\$&"),t.id!==p&&this.init(),this.parsers[i]||(this.parsers[i]=r(i,"apply")),s=this.parsers[i],l=s.regex,u=s.map,c=n.match(l),d=!1,c&&c.length){for(angular.isDate(o)&&!isNaN(o.getTime())?f={year:o.getFullYear(),month:o.getMonth(),date:o.getDate(),hours:o.getHours(),minutes:o.getMinutes(),seconds:o.getSeconds(),milliseconds:o.getMilliseconds()}:(o&&e.warn("dateparser:","baseDate is not a valid date"),f={year:1900,month:0,date:1,hours:0,minutes:0,seconds:0,milliseconds:0}),m=1,b=c.length;m<b;m++)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,w=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),w.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),w.call(g,f.hours,f.minutes,f.seconds,f.milliseconds))),g}},this.toTimezone=s,this.fromTimezone=l,this.timezoneToOffset=u,this.addDateMinutes=c,this.convertTimezoneToLocal=d}]),angular.module("ui.bootstrap.isClass",[]).directive("uibIsClass",["$animate",function(e){var t=/^\s*([\s\S]+?)\s+on\s+([\s\S]+?)\s*$/,n=/^\s*([\s\S]+?)\s+for\s+([\s\S]+?)\s*$/;return{restrict:"A",compile:function(i,r){function a(e,t,n){l.push(e),u.push({scope:e,element:t}),h.forEach(function(t,n){o(t,e)}),e.$on("$destroy",s)}function o(t,i){var r,a=t.match(n),o=i.$eval(a[1]),s=a[2],l=c[t];l||(r=function(t){var n=null;u.some(function(e){if(e.scope.$eval(p)===t)return n=e,!0}),l.lastActivated!==n&&(l.lastActivated&&e.removeClass(l.lastActivated.element,o),n&&e.addClass(n.element,o),l.lastActivated=n)},c[t]=l={lastActivated:null,scope:i,watchFn:r,compareWithExp:s,watcher:i.$watch(s,r)}),l.watchFn(i.$eval(s))}function s(e){var t,n=e.targetScope,i=l.indexOf(n);l.splice(i,1),u.splice(i,1),l.length?(t=l[0],angular.forEach(c,function(e){e.scope===n&&(e.watcher=t.$watch(e.compareWithExp,e.watchFn),e.scope=t)})):c={}}var l=[],u=[],c={},d=r.uibIsClass.match(t),p=d[2],f=d[1],h=f.split(",");return a}}}]),angular.module("ui.bootstrap.datepicker",["ui.bootstrap.dateparser","ui.bootstrap.isClass"]).value("$datepickerSuppressError",!1).value("$datepickerLiteralWarning",!0).constant("uibDatepickerConfig",{datepickerMode:"day",formatDay:"dd",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",maxDate:null,maxMode:"year",minDate:null,minMode:"day",ngModelOptions:{},shortcutPropagation:!1,showWeeks:!0,yearColumns:5,yearRows:4}).controller("UibDatepickerController",["$scope","$attrs","$parse","$interpolate","$locale","$log","dateFilter","uibDatepickerConfig","$datepickerLiteralWarning","$datepickerSuppressError","uibDateParser",function(e,t,n,i,r,a,o,s,l,u,c){function d(t){e.datepickerMode=t,e.datepickerOptions.datepickerMode=t}var p,f=this,h={$setViewValue:angular.noop},g={},m=[];t.datepickerOptions;e.datepickerOptions||(e.datepickerOptions={}),this.modes=["day","month","year"],["customClass","dateDisabled","datepickerMode","formatDay","formatDayHeader","formatDayTitle","formatMonth","formatMonthTitle","formatYear","maxDate","maxMode","minDate","minMode","showWeeks","shortcutPropagation","startingDay","yearColumns","yearRows"].forEach(function(t){switch(t){case"customClass":case"dateDisabled":e[t]=e.datepickerOptions[t]||angular.noop;break;case"datepickerMode":e.datepickerMode=angular.isDefined(e.datepickerOptions.datepickerMode)?e.datepickerOptions.datepickerMode:s.datepickerMode;break;case"formatDay":case"formatDayHeader":case"formatDayTitle":case"formatMonth":case"formatMonthTitle":case"formatYear":f[t]=angular.isDefined(e.datepickerOptions[t])?i(e.datepickerOptions[t])(e.$parent):s[t];break;case"showWeeks":case"shortcutPropagation":case"yearColumns":case"yearRows":f[t]=angular.isDefined(e.datepickerOptions[t])?e.datepickerOptions[t]:s[t];break;case"startingDay":angular.isDefined(e.datepickerOptions.startingDay)?f.startingDay=e.datepickerOptions.startingDay:angular.isNumber(s.startingDay)?f.startingDay=s.startingDay:f.startingDay=(r.DATETIME_FORMATS.FIRSTDAYOFWEEK+8)%7;break;case"maxDate":case"minDate":e.$watch("datepickerOptions."+t,function(e){e?angular.isDate(e)?f[t]=c.fromTimezone(new Date(e),g.timezone):(l&&a.warn("Literal date support has been deprecated, please switch to date object usage"),f[t]=new Date(o(e,"medium"))):f[t]=s[t]?c.fromTimezone(new Date(s[t]),g.timezone):null,f.refreshView()});break;case"maxMode":case"minMode":e.datepickerOptions[t]?e.$watch(function(){return e.datepickerOptions[t]},function(n){f[t]=e[t]=angular.isDefined(n)?n:datepickerOptions[t],("minMode"===t&&f.modes.indexOf(e.datepickerOptions.datepickerMode)<f.modes.indexOf(f[t])||"maxMode"===t&&f.modes.indexOf(e.datepickerOptions.datepickerMode)>f.modes.indexOf(f[t]))&&(e.datepickerMode=f[t],e.datepickerOptions.datepickerMode=f[t])}):f[t]=e[t]=s[t]||null}}),e.uniqueId="datepicker-"+e.$id+"-"+Math.floor(1e4*Math.random()),e.disabled=angular.isDefined(t.disabled)||!1,angular.isDefined(t.ngDisabled)&&m.push(e.$parent.$watch(t.ngDisabled,function(t){e.disabled=t,f.refreshView()})),e.isActive=function(t){return 0===f.compare(t.date,f.activeDate)&&(e.activeDateId=t.uid,!0)},this.init=function(t){h=t,g=t.$options||s.ngModelOptions,e.datepickerOptions.initDate?(f.activeDate=c.fromTimezone(e.datepickerOptions.initDate,g.timezone)||new Date,e.$watch("datepickerOptions.initDate",function(e){e&&(h.$isEmpty(h.$modelValue)||h.$invalid)&&(f.activeDate=c.fromTimezone(e,g.timezone),f.refreshView())})):f.activeDate=new Date,this.activeDate=h.$modelValue?c.fromTimezone(new Date(h.$modelValue),g.timezone):c.fromTimezone(new Date,g.timezone),h.$render=function(){f.render()}},this.render=function(){if(h.$viewValue){var e=new Date(h.$viewValue);!isNaN(e)?this.activeDate=c.fromTimezone(e,g.timezone):u||a.error('Datepicker directive: "ng-model" value must be a Date object')}this.refreshView()},this.refreshView=function(){if(this.element){e.selectedDt=null,this._refreshView(),e.activeDt&&(e.activeDateId=e.activeDt.uid);var t=h.$viewValue?new Date(h.$viewValue):null;t=c.fromTimezone(t,g.timezone),h.$setValidity("dateDisabled",!t||this.element&&!this.isDisabled(t))}},this.createDateObject=function(t,n){var i,r,a,o=h.$viewValue?new Date(h.$viewValue):null;return o=c.fromTimezone(o,g.timezone),i=new Date,i=c.fromTimezone(i,g.timezone),r=this.compare(t,i),a={date:t,label:c.filter(t,n),selected:o&&0===this.compare(t,o),disabled:this.isDisabled(t),past:r<0,current:0===r,future:r>0,customClass:this.customClass(t)||null},o&&0===this.compare(t,o)&&(e.selectedDt=a),f.activeDate&&0===this.compare(a.date,f.activeDate)&&(e.activeDt=a),a},this.isDisabled=function(t){return e.disabled||this.minDate&&this.compare(t,this.minDate)<0||this.maxDate&&this.compare(t,this.maxDate)>0||e.dateDisabled&&e.dateDisabled({date:t,mode:e.datepickerMode})},this.customClass=function(t){return e.customClass({date:t,mode:e.datepickerMode})},this.split=function(e,t){for(var n=[];e.length>0;)n.push(e.splice(0,t));return n},e.select=function(t){if(e.datepickerMode===f.minMode){var n=h.$viewValue?c.fromTimezone(new Date(h.$viewValue),g.timezone):new Date(0,0,0,0,0,0,0);n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),n=c.toTimezone(n,g.timezone),h.$setViewValue(n),h.$render()}else f.activeDate=t,d(f.modes[f.modes.indexOf(e.datepickerMode)-1]),e.$emit("uib:datepicker.mode");e.$broadcast("uib:datepicker.focus")},e.move=function(e){var t=f.activeDate.getFullYear()+e*(f.step.years||0),n=f.activeDate.getMonth()+e*(f.step.months||0);f.activeDate.setFullYear(t,n,1),f.refreshView()},e.toggleMode=function(t){t=t||1,e.datepickerMode===f.maxMode&&1===t||e.datepickerMode===f.minMode&&-1===t||(d(f.modes[f.modes.indexOf(e.datepickerMode)+t]),e.$emit("uib:datepicker.mode"))},e.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"},p=function(){f.element[0].focus()},e.$on("uib:datepicker.focus",p),e.keydown=function(t){var n=e.keys[t.which];if(n&&!t.shiftKey&&!t.altKey&&!e.disabled)if(t.preventDefault(),f.shortcutPropagation||t.stopPropagation(),"enter"===n||"space"===n){if(f.isDisabled(f.activeDate))return;e.select(f.activeDate)}else!t.ctrlKey||"up"!==n&&"down"!==n?(f.handleKeyDown(n,t),f.refreshView()):e.toggleMode("up"===n?1:-1)},e.$on("$destroy",function(){for(;m.length;)m.shift()()})}]).controller("UibDaypickerController",["$scope","$element","dateFilter",function(e,t,n){function i(e,t){return 1!==t||e%4!=0||e%100==0&&e%400!=0?a[t]:29}function r(e){var t,n=new Date(e);return n.setDate(n.getDate()+4-(n.getDay()||7)),t=n.getTime(),n.setMonth(0),n.setDate(1),Math.floor(Math.round((t-n)/864e5)/7)+1}var a=[31,28,31,30,31,30,31,31,30,31,30,31];this.step={months:1},this.element=t,this.init=function(t){angular.extend(t,this),e.showWeeks=t.showWeeks,t.refreshView()},this.getDates=function(e,t){for(var n,i=new Array(t),r=new Date(e),a=0;a<t;)n=new Date(r),i[a++]=n,r.setDate(r.getDate()+1);return i},this._refreshView=function(){var t,i,a,o,s,l,u,c,d,p=this.activeDate.getFullYear(),f=this.activeDate.getMonth(),h=new Date(this.activeDate);for(h.setFullYear(p,f,1),t=this.startingDay-h.getDay(),i=t>0?7-t:-t,a=new Date(h),i>0&&a.setDate(1-i),o=this.getDates(a,42),s=0;s<42;s++)o[s]=angular.extend(this.createDateObject(o[s],this.formatDay),{secondary:o[s].getMonth()!==f,uid:e.uniqueId+"-"+s});for(e.labels=new Array(7),l=0;l<7;l++)e.labels[l]={abbr:n(o[l].date,this.formatDayHeader),full:n(o[l].date,"EEEE")};if(e.title=n(this.activeDate,this.formatDayTitle),e.rows=this.split(o,7),e.showWeeks)for(e.weekNumbers=[],u=(11-this.startingDay)%7,c=e.rows.length,d=0;d<c;d++)e.weekNumbers.push(r(e.rows[d][u].date))},this.compare=function(e,t){var n=new Date(e.getFullYear(),e.getMonth(),e.getDate()),i=new Date(t.getFullYear(),t.getMonth(),t.getDate());return n.setFullYear(e.getFullYear()),i.setFullYear(t.getFullYear()),n-i},this.handleKeyDown=function(e,t){var n,r=this.activeDate.getDate();"left"===e?r-=1:"up"===e?r-=7:"right"===e?r+=1:"down"===e?r+=7:"pageup"===e||"pagedown"===e?(n=this.activeDate.getMonth()+("pageup"===e?-1:1),this.activeDate.setMonth(n,1),r=Math.min(i(this.activeDate.getFullYear(),this.activeDate.getMonth()),r)):"home"===e?r=1:"end"===e&&(r=i(this.activeDate.getFullYear(),this.activeDate.getMonth())),this.activeDate.setDate(r)}}]).controller("UibMonthpickerController",["$scope","$element","dateFilter",function(e,t,n){this.step={years:1},this.element=t,this.init=function(e){angular.extend(e,this),e.refreshView()},this._refreshView=function(){var t,i,r=new Array(12),a=this.activeDate.getFullYear();for(i=0;i<12;i++)t=new Date(this.activeDate),t.setFullYear(a,i,1),r[i]=angular.extend(this.createDateObject(t,this.formatMonth),{uid:e.uniqueId+"-"+i});e.title=n(this.activeDate,this.formatMonthTitle),e.rows=this.split(r,3)},this.compare=function(e,t){var n=new Date(e.getFullYear(),e.getMonth()),i=new Date(t.getFullYear(),t.getMonth());return n.setFullYear(e.getFullYear()),i.setFullYear(t.getFullYear()),n-i},this.handleKeyDown=function(e,t){var n,i=this.activeDate.getMonth();"left"===e?i-=1:"up"===e?i-=3:"right"===e?i+=1:"down"===e?i+=3:"pageup"===e||"pagedown"===e?(n=this.activeDate.getFullYear()+("pageup"===e?-1:1),this.activeDate.setFullYear(n)):"home"===e?i=0:"end"===e&&(i=11),this.activeDate.setMonth(i)}}]).controller("UibYearpickerController",["$scope","$element","dateFilter",function(e,t,n){function i(e){return parseInt((e-1)/a,10)*a+1}var r,a;this.element=t,this.yearpickerInit=function(){r=this.yearColumns,a=this.yearRows*r,this.step={years:a}},this._refreshView=function(){var t,n,o,s=new Array(a);for(n=0,o=i(this.activeDate.getFullYear());n<a;n++)t=new Date(this.activeDate),t.setFullYear(o+n,0,1),s[n]=angular.extend(this.createDateObject(t,this.formatYear),{uid:e.uniqueId+"-"+n});e.title=[s[0].label,s[a-1].label].join(" - "),e.rows=this.split(s,r),e.columns=r},this.compare=function(e,t){return e.getFullYear()-t.getFullYear()},this.handleKeyDown=function(e,t){var n=this.activeDate.getFullYear();"left"===e?n-=1:"up"===e?n-=r:"right"===e?n+=1:"down"===e?n+=r:"pageup"===e||"pagedown"===e?n+=("pageup"===e?-1:1)*a:"home"===e?n=i(this.activeDate.getFullYear()):"end"===e&&(n=i(this.activeDate.getFullYear())+a-1),this.activeDate.setFullYear(n)}}]).directive("uibDatepicker",function(){return{replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/datepicker/datepicker.html"},scope:{datepickerOptions:"=?"},require:["uibDatepicker","^ngModel"],controller:"UibDatepickerController",controllerAs:"datepicker",link:function(e,t,n,i){var r=i[0],a=i[1];r.init(a)}}}).directive("uibDaypicker",function(){return{replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/datepicker/day.html"},require:["^uibDatepicker","uibDaypicker"],controller:"UibDaypickerController",link:function(e,t,n,i){var r=i[0];i[1].init(r)}}}).directive("uibMonthpicker",function(){return{replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/datepicker/month.html"},require:["^uibDatepicker","uibMonthpicker"],controller:"UibMonthpickerController",link:function(e,t,n,i){var r=i[0];i[1].init(r)}}}).directive("uibYearpicker",function(){return{replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/datepicker/year.html"},require:["^uibDatepicker","uibYearpicker"],controller:"UibYearpickerController",link:function(e,t,n,i){var r=i[0];angular.extend(r,i[1]),r.yearpickerInit(),r.refreshView()}}}),angular.module("ui.bootstrap.position",[]).factory("$uibPosition",["$document","$window",function(e,t){var n,i,r={normal:/(auto|scroll)/,hidden:/(auto|scroll|hidden)/},a={auto:/\s?auto?\s?/i,primary:/^(top|bottom|left|right)$/,secondary:/^(top|bottom|left|right|center)$/,vertical:/^(top|bottom)$/},o=/(HTML|BODY)/;return{getRawNode:function(e){return e.nodeName?e:e[0]||e},parseStyle:function(e){return e=parseFloat(e),isFinite(e)?e:0},offsetParent:function(n){n=this.getRawNode(n);for(var i=n.offsetParent||e[0].documentElement;i&&i!==e[0].documentElement&&function(e){return"static"===(t.getComputedStyle(e).position||"static")}(i);)i=i.offsetParent;return i||e[0].documentElement},scrollbarWidth:function(r){var a,o;return r?(angular.isUndefined(i)&&(a=e.find("body"),a.addClass("uib-position-body-scrollbar-measure"),i=t.innerWidth-a[0].clientWidth,i=isFinite(i)?i:0,a.removeClass("uib-position-body-scrollbar-measure")),i):(angular.isUndefined(n)&&(o=angular.element('<div class="uib-position-scrollbar-measure"></div>'),e.find("body").append(o),n=o[0].offsetWidth-o[0].clientWidth,n=isFinite(n)?n:0,o.remove()),n)},scrollbarPadding:function(e){var n,i,r,a,s;return e=this.getRawNode(e),n=t.getComputedStyle(e),i=this.parseStyle(n.paddingRight),r=this.parseStyle(n.paddingBottom),a=this.scrollParent(e,!1,!0),s=this.scrollbarWidth(a,o.test(a.tagName)),{scrollbarWidth:s,widthOverflow:a.scrollWidth>a.clientWidth,right:i+s,originalRight:i,heightOverflow:a.scrollHeight>a.clientHeight,bottom:r+s,originalBottom:r}},isScrollable:function(e,n){var i,a;return e=this.getRawNode(e),i=n?r.hidden:r.normal,a=t.getComputedStyle(e),i.test(a.overflow+a.overflowY+a.overflowX)},scrollParent:function(n,i,a){var o,s,l,u,c,d;if(n=this.getRawNode(n),o=i?r.hidden:r.normal,s=e[0].documentElement,l=t.getComputedStyle(n),a&&o.test(l.overflow+l.overflowY+l.overflowX))return n;if(u="absolute"===l.position,(c=n.parentElement||s)===s||"fixed"===l.position)return s;for(;c.parentElement&&c!==s&&(d=t.getComputedStyle(c),u&&"static"!==d.position&&(u=!1),u||!o.test(d.overflow+d.overflowY+d.overflowX));)c=c.parentElement;return c},position:function(n,i){var r,a,o,s;return n=this.getRawNode(n),r=this.offset(n),i&&(a=t.getComputedStyle(n),r.top-=this.parseStyle(a.marginTop),r.left-=this.parseStyle(a.marginLeft)),o=this.offsetParent(n),s={top:0,left:0},o!==e[0].documentElement&&(s=this.offset(o),s.top+=o.clientTop-o.scrollTop,s.left+=o.clientLeft-o.scrollLeft),{width:Math.round(angular.isNumber(r.width)?r.width:n.offsetWidth),height:Math.round(angular.isNumber(r.height)?r.height:n.offsetHeight),top:Math.round(r.top-s.top),left:Math.round(r.left-s.left)}},offset:function(n){n=this.getRawNode(n);var i=n.getBoundingClientRect();return{width:Math.round(angular.isNumber(i.width)?i.width:n.offsetWidth),height:Math.round(angular.isNumber(i.height)?i.height:n.offsetHeight),top:Math.round(i.top+(t.pageYOffset||e[0].documentElement.scrollTop)),left:Math.round(i.left+(t.pageXOffset||e[0].documentElement.scrollLeft))}},viewportOffset:function(n,i,r){var a,o,s,l,u;return n=this.getRawNode(n),r=!1!==r,a=n.getBoundingClientRect(),o={top:0,left:0,bottom:0,right:0},s=i?e[0].documentElement:this.scrollParent(n),l=s.getBoundingClientRect(),o.top=l.top+s.clientTop,o.left=l.left+s.clientLeft,s===e[0].documentElement&&(o.top+=t.pageYOffset,o.left+=t.pageXOffset),o.bottom=o.top+s.clientHeight,o.right=o.left+s.clientWidth,r&&(u=t.getComputedStyle(s),o.top+=this.parseStyle(u.paddingTop),o.bottom-=this.parseStyle(u.paddingBottom),o.left+=this.parseStyle(u.paddingLeft),o.right-=this.parseStyle(u.paddingRight)),{top:Math.round(a.top-o.top),bottom:Math.round(o.bottom-a.bottom),left:Math.round(a.left-o.left),right:Math.round(o.right-a.right)}},parsePlacement:function(e){var t=a.auto.test(e);return t&&(e=e.replace(a.auto,"")),e=e.split("-"),e[0]=e[0]||"top",a.primary.test(e[0])||(e[0]="top"),e[1]=e[1]||"center",a.secondary.test(e[1])||(e[1]="center"),e[2]=!!t,e},positionElements:function(e,n,i,r){var o,s,l,u,c,d,p,f,h;switch(e=this.getRawNode(e),n=this.getRawNode(n),o=angular.isDefined(n.offsetWidth)?n.offsetWidth:n.prop("offsetWidth"),s=angular.isDefined(n.offsetHeight)?n.offsetHeight:n.prop("offsetHeight"),i=this.parsePlacement(i),l=r?this.offset(e):this.position(e),u={top:0,left:0,placement:""},i[2]&&(c=this.viewportOffset(e,r),d=t.getComputedStyle(n),p={width:o+Math.round(Math.abs(this.parseStyle(d.marginLeft)+this.parseStyle(d.marginRight))),height:s+Math.round(Math.abs(this.parseStyle(d.marginTop)+this.parseStyle(d.marginBottom)))},i[0]="top"===i[0]&&p.height>c.top&&p.height<=c.bottom?"bottom":"bottom"===i[0]&&p.height>c.bottom&&p.height<=c.top?"top":"left"===i[0]&&p.width>c.left&&p.width<=c.right?"right":"right"===i[0]&&p.width>c.right&&p.width<=c.left?"left":i[0],i[1]="top"===i[1]&&p.height-l.height>c.bottom&&p.height-l.height<=c.top?"bottom":"bottom"===i[1]&&p.height-l.height>c.top&&p.height-l.height<=c.bottom?"top":"left"===i[1]&&p.width-l.width>c.right&&p.width-l.width<=c.left?"right":"right"===i[1]&&p.width-l.width>c.left&&p.width-l.width<=c.right?"left":i[1],"center"===i[1]&&(a.vertical.test(i[0])?(f=l.width/2-o/2,c.left+f<0&&p.width-l.width<=c.right?i[1]="left":c.right+f<0&&p.width-l.width<=c.left&&(i[1]="right")):(h=l.height/2-p.height/2,c.top+h<0&&p.height-l.height<=c.bottom?i[1]="top":c.bottom+h<0&&p.height-l.height<=c.top&&(i[1]="bottom")))),i[0]){case"top":u.top=l.top-s;break;case"bottom":u.top=l.top+l.height;break;case"left":u.left=l.left-o;break;case"right":u.left=l.left+l.width}switch(i[1]){case"top":u.top=l.top;break;case"bottom":u.top=l.top+l.height-s;break;case"left":u.left=l.left;break;case"right":u.left=l.left+l.width-o;break;case"center":a.vertical.test(i[0])?u.left=l.left+l.width/2-o/2:u.top=l.top+l.height/2-s/2}return u.top=Math.round(u.top),u.left=Math.round(u.left),u.placement="center"===i[1]?i[0]:i[0]+"-"+i[1],u},positionArrow:function(e,n){var i,r,o,s,l,u,c,d;if(e=this.getRawNode(e),(i=e.querySelector(".tooltip-inner, .popover-inner"))&&(r=angular.element(i).hasClass("tooltip-inner"),o=r?e.querySelector(".tooltip-arrow"):e.querySelector(".arrow"))){if(s={top:"",bottom:"",left:"",right:""},n=this.parsePlacement(n),"center"===n[1])return void angular.element(o).css(s);switch(l="border-"+n[0]+"-width",u=t.getComputedStyle(o)[l],c="border-",a.vertical.test(n[0])?c+=n[0]+"-"+n[1]:c+=n[1]+"-"+n[0],c+="-radius",d=t.getComputedStyle(r?i:e)[c],n[0]){case"top":s.bottom=r?"0":"-"+u;break;case"bottom":s.top=r?"0":"-"+u;break;case"left":s.right=r?"0":"-"+u;break;case"right":s.left=r?"0":"-"+u}s[n[1]]=d,angular.element(o).css(s)}}}}]),angular.module("ui.bootstrap.datepickerPopup",["ui.bootstrap.datepicker","ui.bootstrap.position"]).value("$datepickerPopupLiteralWarning",!0).constant("uibDatepickerPopupConfig",{altInputFormats:[],appendToBody:!1,clearText:"Clear",closeOnDateSelection:!0,closeText:"Done",currentText:"Today",datepickerPopup:"yyyy-MM-dd",datepickerPopupTemplateUrl:"uib/template/datepickerPopup/popup.html",datepickerTemplateUrl:"uib/template/datepicker/datepicker.html",html5Types:{date:"yyyy-MM-dd","datetime-local":"yyyy-MM-ddTHH:mm:ss.sss",month:"yyyy-MM"},onOpenFocus:!0,showButtonBar:!0,placement:"auto bottom-left"
}).controller("UibDatepickerPopupController",["$scope","$element","$attrs","$compile","$log","$parse","$window","$document","$rootScope","$uibPosition","dateFilter","uibDateParser","uibDatepickerPopupConfig","$timeout","uibDatepickerConfig","$datepickerPopupLiteralWarning",function(e,t,n,i,r,a,o,s,l,u,c,d,p,f,h,g){function m(t){var n,i=d.parse(t,$,e.date);if(isNaN(i))for(n=0;n<_.length;n++)if(i=d.parse(t,_[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,L)}return M.$options&&M.$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))||!!angular.isString(i)&&!isNaN(m(t))))}function y(n){var i,r,a;!e.isOpen&&e.disabled||(i=A[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 w(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 x(){var i,r,a;e.isOpen&&(i=angular.element(A[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 $,k,C,S,E,T,D,N,O,M,R,A,_,L,P=!1,q=[];this.init=function(r){if(M=r,R=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,S=angular.isDefined(n.onOpenFocus)?e.$parent.$eval(n.onOpenFocus):p.onOpenFocus,E=angular.isDefined(n.datepickerPopupTemplateUrl)?n.datepickerPopupTemplateUrl:p.datepickerPopupTemplateUrl,T=angular.isDefined(n.datepickerTemplateUrl)?n.datepickerTemplateUrl:p.datepickerTemplateUrl,_=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]?($=p.html5Types[n.type],P=!0):($=n.uibDatepickerPopup||p.datepickerPopup,n.$observe("uibDatepickerPopup",function(e,t){var n=e||p.datepickerPopup;if(n!==$&&($=n,M.$modelValue=null,!$))throw new Error("uibDatepickerPopup must have a date format specified.")})),!$)throw new Error("uibDatepickerPopup must have a date format specified.");if(P&&n.uibDatepickerPopup)throw new Error("HTML5 date input types do not support custom formats.");D=angular.element("<div uib-datepicker-popup-wrap><div uib-datepicker></div></div>"),R?(L=R.timezone,e.ngModelOptions=angular.copy(R),e.ngModelOptions.timezone=null,!0===e.ngModelOptions.updateOnDefault&&(e.ngModelOptions.updateOn=e.ngModelOptions.updateOn?e.ngModelOptions.updateOn+" default":"default"),D.attr("ng-model-options","ngModelOptions")):L=null,D.attr({"ng-model":"date","ng-change":"dateSelection(date)","template-url":E}),N=angular.element(D.children()[0]),N.attr("template-url",T),e.datepickerOptions||(e.datepickerOptions={}),P&&"month"===n.type&&(e.datepickerOptions.datepickerMode="month",e.datepickerOptions.minMode="month"),N.attr("datepicker-options","datepickerOptions"),P?M.$formatters.push(function(t){return e.date=d.fromTimezone(t,L),t}):(M.$$parserName="date",M.$validators.date=v,M.$parsers.unshift(b),M.$formatters.push(function(t){return M.$isEmpty(t)?(e.date=t,t):(e.date=d.fromTimezone(t,L),angular.isNumber(e.date)&&(e.date=new Date(e.date)),d.filter(e.date,$))})),M.$viewChangeListeners.push(function(){e.date=m(M.$viewValue)}),t.on("keydown",w),A=i(D)(e),D.remove(),C?s.find("body").append(A):t.after(A),e.$on("$destroy",function(){for(!0===e.isOpen&&(l.$$phase||e.$apply(function(){e.isOpen=!1})),A.remove(),t.off("keydown",w),s.off("click",y),O&&O.off("scroll",x),angular.element(o).off("resize",x);q.length;)q.shift()()})},e.getText=function(t){return e[t+"Text"]||p[t+"Text"]},e.isDisabled=function(t){"today"===t&&(t=d.fromTimezone(new Date,L));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]),L):(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,$):null;t.val(i),M.$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&&q.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(){x(),S&&e.$broadcast("uib:datepicker.focus"),s.on("click",y);var i=n.popupPlacement?n.popupPlacement:p.placement;C||u.parsePlacement(i)[2]?(O=O||angular.element(u.scrollParent(t)))&&O.on("scroll",x):O=null,angular.element(o).on("resize",x)},0,!1):(s.off("click",y),O&&O.off("scroll",x),angular.element(o).off("resize",x))}),e.$on("uib:datepicker.mode",function(){f(x,0,!1)})}]).directive("uibDatepickerPopup",function(){return{require:["ngModel","uibDatepickerPopup"],controller:"UibDatepickerPopupController",scope:{datepickerOptions:"=?",isOpen:"=?",currentText:"@",clearText:"@",closeText:"@"},link:function(e,t,n,i){var r=i[0];i[1].init(r)}}}).directive("uibDatepickerPopupWrap",function(){return{replace:!0,transclude:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/datepickerPopup/popup.html"}}}),angular.module("ui.bootstrap.debounce",[]).factory("$$debounce",["$timeout",function(e){return function(t,n){var i;return function(){var r=this,a=Array.prototype.slice.call(arguments);i&&e.cancel(i),i=e(function(){t.apply(r,a)},n)}}}]),angular.module("ui.bootstrap.dropdown",["ui.bootstrap.position"]).constant("uibDropdownConfig",{appendToOpenClass:"uib-dropdown-open",openClass:"open"}).service("uibDropdownService",["$document","$rootScope",function(e,t){var n,i,r=null;this.open=function(t,a){r||(e.on("click",n),a.on("keydown",i)),r&&r!==t&&(r.isOpen=!1),r=t},this.close=function(t,a){r===t&&(r=null,e.off("click",n),a.off("keydown",i))},n=function(e){var n,i;r&&(e&&"disabled"===r.getAutoClose()||e&&3===e.which||(n=r.getToggleElement(),e&&n&&n[0].contains(e.target)||(i=r.getDropdownElement(),e&&"outsideClick"===r.getAutoClose()&&i&&i[0].contains(e.target)||(r.isOpen=!1,t.$$phase||r.$apply()))))},i=function(e){27===e.which?(e.stopPropagation(),r.focusToggleElement(),n()):r.isKeynavEnabled()&&-1!==[38,40].indexOf(e.which)&&r.isOpen&&(e.preventDefault(),e.stopPropagation(),r.focusDropdownEntry(e.which))}}]).controller("UibDropdownController",["$scope","$element","$attrs","$parse","uibDropdownConfig","uibDropdownService","$animate","$uibPosition","$document","$compile","$templateRequest",function(e,t,n,i,r,a,o,s,l,u,c){var d,p,f=this,h=e.$new(),g=r.appendToOpenClass,m=r.openClass,b=angular.noop,v=n.onToggle?i(n.onToggle):angular.noop,y=!1,w=null,x=!1,$=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&&(w=angular.element(r))}y=angular.isDefined(n.dropdownAppendToBody),x=angular.isDefined(n.keyboardNav),y&&!w&&(w=$),w&&f.dropdownMenu&&(w.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 x},h.focusDropdownEntry=function(e){var n=f.dropdownMenu?angular.element(f.dropdownMenu).find("a"):t.find("ul").eq(0).find("a");switch(e){case 40:angular.isNumber(f.selectedOption)?f.selectedOption=f.selectedOption===n.length-1?f.selectedOption:f.selectedOption+1:f.selectedOption=0;break;case 38:angular.isNumber(f.selectedOption)?f.selectedOption=0===f.selectedOption?0:f.selectedOption-1:f.selectedOption=n.length-1}n[f.selectedOption].focus()},h.getDropdownElement=function(){return f.dropdownMenu},h.focusToggleElement=function(){f.toggleElement&&f.toggleElement[0].focus()},h.$watch("isOpen",function(n,i){var r,l,p,x,$,k,C;w&&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||(x=s.offset(w),l.top=r.top-x.top+"px",p?l.right=window.innerWidth-(r.left-x.left+t.prop("offsetWidth"))+"px":l.left=r.left-x.left+"px"),f.dropdownMenu.css(l)),$=w||t,k=$.hasClass(w?g:m),k===!n&&o[n?"addClass":"removeClass"]($,w?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){angular.isFunction(e)||angular.isArray(e)?s.push(n.resolve(t.invoke(e))):angular.isString(e)?s.push(n.resolve(t.get(e))):s.push(n.resolve(e))}),n.all(s).then(function(t){var n={},i=0;return angular.forEach(e,function(e,r){n[r]=t[i++]}),n})}}}]}).directive("uibModalBackdrop",["$animate","$injector","$uibModalStack",function(e,t,n){function i(t,i,r){r.modalInClass&&(e.addClass(i,r.modalInClass),t.$on(n.NOW_CLOSING_EVENT,function(n,a){var o=a();t.modalOptions.animation?e.removeClass(i,r.modalInClass).then(o):o()}))}return{replace:!0,templateUrl:"uib/template/modal/backdrop.html",compile:function(e,t){return e.addClass(t.backdropClass),i}}}]).directive("uibModalWindow",["$uibModalStack","$q","$animateCss","$document",function(e,t,n,i){return{scope:{index:"@"},replace:!0,transclude:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/modal/window.html"},link:function(r,a,o){a.addClass(o.windowClass||""),a.addClass(o.windowTopClass||""),r.size=o.size,r.close=function(t){var n=e.getTop();n&&n.value.backdrop&&"static"!==n.value.backdrop&&t.target===t.currentTarget&&(t.preventDefault(),t.stopPropagation(),e.dismiss(n.key,"backdrop click"))},a.on("click",r.close),r.$isRendered=!0;var s=t.defer();o.$observe("modalRender",function(e){"true"===e&&s.resolve()}),s.promise.then(function(){var s=null;o.modalInClass&&(s=n(a,{addClass:o.modalInClass}).start(),r.$on(e.NOW_CLOSING_EVENT,function(e,t){var i=t();n(a,{removeClass:o.modalInClass}).start().then(i)})),t.when(s).then(function(){var t,n=e.getTop();n&&e.modalRendered(n.key),i[0].activeElement&&a[0].contains(i[0].activeElement)||(t=a[0].querySelector("[autofocus]"),t?t.focus():a[0].focus())})})}}}]).directive("uibModalAnimationClass",function(){return{compile:function(e,t){t.modalAnimation&&e.addClass(t.uibModalAnimationClass)}}}).directive("uibModalTransclude",function(){return{link:function(e,t,n,i,r){r(e.$parent,function(e){t.empty(),t.append(e)})}}}).factory("$uibModalStack",["$animate","$animateCss","$document","$compile","$rootScope","$q","$$multiMap","$$stackedMap","$uibPosition",function(e,t,n,i,r,a,o,s,l){function u(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)}function c(){var e,t=-1,n=x.keys();for(e=0;e<n.length;e++)x.get(n[e]).value.backdrop&&(t=e);return t>-1&&t<C&&(t=C),t}function d(e,t){var n=x.get(e).value,i=n.appendTo;x.remove(e),S=x.top(),S&&(C=parseInt(S.value.modalDomEl.attr("index"),10)),h(n.modalDomEl,n.modalScope,function(){var t,r=n.openedClass||w;$.remove(r,e),t=$.hasKey(r),i.toggleClass(r,t),!t&&y&&y.heightOverflow&&y.scrollbarWidth&&(y.originalRight?i.css({paddingRight:y.originalRight+"px"}):i.css({paddingRight:""}),y=null),p(!0)},n.closedDeferred),f(),t&&t.focus?t.focus():i.focus&&i.focus()}function p(e){var t;x.length()>0&&(t=x.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=x.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,w="modal-open",x=s.createNew(),$=o.createNew(),k={NOW_CLOSING_EVENT:"modal.stack.now-closing"},C=0,S=null;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||w;if(p(!1),S=x.top(),x.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}),$.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=S?parseInt(S.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),x.top().value.modalDomEl=u,x.top().value.modalOpener=d},k.close=function(e,t){var n=x.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=x.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 x.top()},k.modalRendered=function(e){var t=x.get(e);t&&t.value.renderDeferred.resolve()},k.focusFirstFocusableElement=function(e){return e.length>0&&(e[0].focus(),!0)},k.focusLastFocusableElement=function(e){return e.length>0&&(e[e.length-1].focus(),!0)},k.isModalFocused=function(e,t){if(e&&t){var n=t.value.modalDomEl;if(n&&n.length)return(e.target||e.srcElement)===n[0]}return!1},k.isFocusInFirstItem=function(e,t){return t.length>0&&(e.target||e.srcElement)===t[0]},k.isFocusInLastItem=function(e,t){return t.length>0&&(e.target||e.srcElement)===t[t.length-1]},k.loadFocusElementList=function(e){var t,n;if(e&&(t=e.value.modalDomEl)&&t.length)return n=t[0].querySelectorAll("a[href], area[href], input:not([disabled]), button:not([disabled]),select:not([disabled]), textarea:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable=true]"),n?Array.prototype.filter.call(n,function(e){return u(e)}):n},k}]).provider("$uibModal",function(){var e={options:{animation:!0,backdrop:!0,keyboard:!0},$get:["$rootScope","$q","$document","$templateRequest","$controller","$uibResolve","$uibModalStack",function(t,n,i,r,a,o,s){function l(e){return e.template?n.when(e.template):r(angular.isFunction(e.templateUrl)?e.templateUrl():e.templateUrl)}var u={},c=null;return u.getPromiseChain=function(){return c},u.open=function(r){function u(){return d}var d,p,f=n.defer(),h=n.defer(),g=n.defer(),m=n.defer(),b={result:f.promise,opened:h.promise,closed:g.promise,rendered:m.promise,close:function(e){return s.close(b,e)},dismiss:function(e){return s.dismiss(b,e)}};if(r=angular.extend({},e.options,r),r.resolve=r.resolve||{},r.appendTo=r.appendTo||i.find("body").eq(0),!r.template&&!r.templateUrl)throw new Error("One of template or templateUrl options is required.");return d=n.all([l(r),o.resolve(r.resolve,{},null,null)]),p=c=n.all([c]).then(u,u).then(function(e){var n,i,o,l=r.scope||t,u=l.$new();u.$close=b.close,u.$dismiss=b.dismiss,u.$on("$destroy",function(){u.$$uibDestructionScheduled||u.$dismiss("$uibUnscheduledDestruction")}),o={},r.controller&&(o.$scope=u,o.$uibModalInstance=b,angular.forEach(e[1],function(e,t){o[t]=e}),i=a(r.controller,o,!0),r.controllerAs?(n=i.instance,r.bindToController&&(n.$close=u.$close,n.$dismiss=u.$dismiss,angular.extend(n,l)),n=i(),u[r.controllerAs]=n):n=i(),angular.isFunction(n.$onInit)&&n.$onInit()),s.open(b,{scope:u,deferred:f,renderDeferred:m,closedDeferred:g,content:e[0],animation:r.animation,backdrop:r.backdrop,keyboard:r.keyboard,backdropClass:r.backdropClass,windowTopClass:r.windowTopClass,windowClass:r.windowClass,windowTemplateUrl:r.windowTemplateUrl,size:r.size,openedClass:r.openedClass,appendTo:r.appendTo}),h.resolve(!0)},function(e){h.reject(e),f.reject(e)}).finally(function(){c===p&&(c=null)}),b},u}]};return e}),angular.module("ui.bootstrap.paging",[]).factory("uibPaging",["$parse",function(e){return{create:function(t,n,i){t.setNumPages=i.numPages?e(i.numPages).assign:angular.noop,t.ngModelCtrl={$setViewValue:angular.noop},t._watchers=[],t.init=function(e,r){t.ngModelCtrl=e,t.config=r,e.$render=function(){t.render()},i.itemsPerPage?t._watchers.push(n.$parent.$watch(i.itemsPerPage,function(e){t.itemsPerPage=parseInt(e,10),n.totalPages=t.calculateTotalPages(),t.updatePage()})):t.itemsPerPage=r.itemsPerPage,n.$watch("totalItems",function(e,i){(angular.isDefined(e)||e!==i)&&(n.totalPages=t.calculateTotalPages(),t.updatePage())})},t.calculateTotalPages=function(){var e=t.itemsPerPage<1?1:Math.ceil(n.totalItems/t.itemsPerPage);return Math.max(e||0,1)},t.render=function(){n.page=parseInt(t.ngModelCtrl.$viewValue,10)||1},n.selectPage=function(e,i){i&&i.preventDefault(),(!n.ngDisabled||!i)&&n.page!==e&&e>0&&e<=n.totalPages&&(i&&i.target&&i.target.blur(),t.ngModelCtrl.$setViewValue(e),t.ngModelCtrl.$render())},n.getText=function(e){return n[e+"Text"]||t.config[e+"Text"]},n.noPrevious=function(){return 1===n.page},n.noNext=function(){return n.page===n.totalPages},t.updatePage=function(){t.setNumPages(n.$parent,n.totalPages),n.page>n.totalPages?n.selectPage(n.totalPages):t.ngModelCtrl.$render()},n.$on("$destroy",function(){for(;t._watchers.length;)t._watchers.shift()()})}}}]),angular.module("ui.bootstrap.pager",["ui.bootstrap.paging"]).controller("UibPagerController",["$scope","$attrs","uibPaging","uibPagerConfig",function(e,t,n,i){e.align=angular.isDefined(t.align)?e.$parent.$eval(t.align):i.align,n.create(this,e,t)}]).constant("uibPagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("uibPager",["uibPagerConfig",function(e){return{scope:{totalItems:"=",previousText:"@",nextText:"@",ngDisabled:"="},require:["uibPager","?ngModel"],controller:"UibPagerController",controllerAs:"pager",templateUrl:function(e,t){return t.templateUrl||"uib/template/pager/pager.html"},replace:!0,link:function(t,n,i,r){var a=r[0],o=r[1];o&&a.init(o,e)}}}]),angular.module("ui.bootstrap.pagination",["ui.bootstrap.paging"]).controller("UibPaginationController",["$scope","$attrs","$parse","uibPaging","uibPaginationConfig",function(e,t,n,i,r){function a(e,t,n){return{number:e,text:t,active:n}}function o(e,t){var n,i,r,o,s,l,h,g,m=[],b=1,v=t,y=angular.isDefined(u)&&u<t;for(y&&(c?(b=Math.max(e-Math.floor(u/2),1),(v=b+u-1)>t&&(v=t,b=v-u+1)):(b=(Math.ceil(e/u)-1)*u+1,v=Math.min(b+u-1,t))),n=b;n<=v;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))),v<t&&((!p||v<t-2)&&(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;return e.replace(t,function(e,t){return(t?"-":"")+e.toLowerCase()})}var t={placement:"top",placementClassPrefix:"",animation:!0,popupDelay:0,popupCloseDelay:0,useContentExp:!1},n={mouseenter:"mouseleave",click:"click",outsideClick:"outsideClick",focus:"blur",none:""},i={};this.options=function(e){angular.extend(i,e)},this.setTriggers=function(e){angular.extend(n,e)},this.$get=["$window","$compile","$timeout","$document","$uibPosition","$interpolate","$rootScope","$parse","$$stackedMap",function(r,a,o,s,l,u,c,d,p){function f(e){if(27===e.which){var t=h.top();t&&(t.value.close(),h.removeTop(),t=null)}}var h=p.createNew();return s.on("keypress",f),c.$on("$destroy",function(){s.off("keypress",f)}),function(r,c,p,f){function g(e){var t=(e||f.trigger||p).split(" ");return{show:t,hide:t.map(function(e){return n[e]||e})}}var m,b,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(e,t){var n=a(y);return function(e,t,i,a){function u(){j.isOpen?m():p()}function p(){B&&!e.$eval(i[c+"Enable"])||(w(),k(),j.popupDelay?M||(M=o(b,j.popupDelay,!1)):b())}function m(){v(),j.popupCloseDelay?R||(R=o(y,j.popupCloseDelay,!1)):y()}function b(){if(v(),w(),!j.content)return angular.noop;x(),j.$evalAsync(function(){j.isOpen=!0,C(!0),W()})}function v(){M&&(o.cancel(M),M=null),A&&(o.cancel(A),A=null)}function y(){j&&j.$evalAsync(function(){j&&(j.isOpen=!1,C(!1),j.animation?O||(O=o($,150,!1)):$())})}function w(){R&&(o.cancel(R),R=null),O&&(o.cancel(O),O=null)}function x(){D||(N=j.$new(),D=n(N,function(e){H?s.find("body").append(e):t.after(e)}),S())}function $(){v(),w(),E(),D&&(D.remove(),D=null),N&&(N.$destroy(),N=null)}function k(){var t,n,a;j.title=i[c+"Title"],j.content=V?V(e):i[r],j.popupClass=i[c+"Class"],j.placement=angular.isDefined(i[c+"Placement"])?i[c+"Placement"]:f.placement,t=l.parsePlacement(j.placement),_=t[1]?t[0]+"-"+t[1]:t[0],n=parseInt(i[c+"PopupDelay"],10),a=parseInt(i[c+"PopupCloseDelay"],10),j.popupDelay=isNaN(n)?f.popupDelay:n,j.popupCloseDelay=isNaN(a)?f.popupCloseDelay:a}function C(t){z&&angular.isFunction(z.assign)&&z.assign(e,t)}function S(){K.length=0,V?(K.push(e.$watch(V,function(e){j.content=e,!e&&j.isOpen&&y()})),K.push(N.$watch(function(){U||(U=!0,N.$$postDigest(function(){U=!1,j&&j.isOpen&&W()}))}))):K.push(i.$observe(r,function(e){j.content=e,!e&&j.isOpen?y():W()})),K.push(i.$observe(c+"Title",function(e){j.title=e,j.isOpen&&W()})),K.push(i.$observe(c+"Placement",function(e){j.placement=e||f.placement,j.isOpen&&W()}))}function E(){K.length&&(angular.forEach(K,function(e){e()}),K.length=0)}function T(e){j&&j.isOpen&&D&&(t[0].contains(e.target)||D[0].contains(e.target)||m())}var D,N,O,M,R,A,_,L,P,q,I,H=!!angular.isDefined(f.appendToBody)&&f.appendToBody,F=g(void 0),B=angular.isDefined(i[c+"Enable"]),j=e.$new(!0),U=!1,z=!!angular.isDefined(i[c+"IsOpen"])&&d(i[c+"IsOpen"]),V=!!f.useContentExp&&d(i[r]),K=[],W=function(){D&&D.html()&&(A||(A=o(function(){var e=l.positionElements(t,D,j.placement,H);D.css({top:e.top+"px",left:e.left+"px"}),D.hasClass(e.placement.split("-")[0])||(D.removeClass(_.split("-")[0]),D.addClass(e.placement.split("-")[0])),D.hasClass(f.placementClassPrefix+e.placement)||(D.removeClass(f.placementClassPrefix+_),D.addClass(f.placementClassPrefix+e.placement)),D.hasClass("uib-position-measure")?(l.positionArrow(D,e.placement),D.removeClass("uib-position-measure")):_!==e.placement&&l.positionArrow(D,e.placement),_=e.placement,A=null},0,!1)))};j.origScope=e,j.isOpen=!1,h.add(j,{close:y}),j.contentExp=function(){return j.content},i.$observe("disabled",function(e){e&&v(),e&&j.isOpen&&y()}),z&&e.$watch(z,function(e){j&&!e===j.isOpen&&u()}),L=function(){F.show.forEach(function(e){"outsideClick"===e?t.off("click",u):(t.off(e,p),t.off(e,u))}),F.hide.forEach(function(e){"outsideClick"===e?s.off("click",T):t.off(e,m)})},function(){var e=i[c+"Trigger"];L(),F=g(e),"none"!==F.show&&F.show.forEach(function(e,n){"outsideClick"===e?(t.on("click",u),s.on("click",T)):e===F.hide[n]?t.on(e,u):e&&(t.on(e,p),t.on(F.hide[n],m)),t.on("keypress",function(e){27===e.which&&m()})})}(),P=e.$eval(i[c+"Animation"]),j.animation=angular.isDefined(P)?!!P:f.animation,I=c+"AppendToBody",q=I in i&&void 0===i[I]||e.$eval(i[I]),H=angular.isDefined(q)?q:H,e.$on("$destroy",function(){L(),$(),h.remove(j),j=null})}}}}}]}).directive("uibTooltipTemplateTransclude",["$animate","$sce","$compile","$templateRequest",function(e,t,n,i){return{link:function(r,a,o){var s,l,u,c=r.$eval(o.tooltipTemplateTranscludeScope),d=0,p=function(){l&&(l.remove(),l=null),s&&(s.$destroy(),s=null),u&&(e.leave(u).then(function(){l=null}),l=u,u=null)};r.$watch(t.parseAsResourceUrl(o.uibTooltipTemplateTransclude),function(t){var o=++d;t?(i(t,!0).then(function(i){var r,l,f;o===d&&(r=c.$new(),l=i,f=n(l)(r,function(t){p(),e.enter(t,a)}),s=r,u=f,s.$emit("$includeContentLoaded",t))},function(){o===d&&(p(),r.$emit("$includeContentError",t))}),r.$emit("$includeContentRequested",t)):p()}),r.$on("$destroy",p)}}}]).directive("uibTooltipClasses",["$uibPosition",function(e){return{restrict:"A",link:function(t,n,i){if(t.placement){var r=e.parsePlacement(t.placement);n.addClass(r[0])}t.popupClass&&n.addClass(t.popupClass),t.animation()&&n.addClass(i.tooltipAnimationClass)}}}]).directive("uibTooltipPopup",function(){return{replace:!0,scope:{content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/tooltip/tooltip-popup.html"}}).directive("uibTooltip",["$uibTooltip",function(e){return e("uibTooltip","tooltip","mouseenter")}]).directive("uibTooltipTemplatePopup",function(){return{replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"uib/template/tooltip/tooltip-template-popup.html"}}).directive("uibTooltipTemplate",["$uibTooltip",function(e){return e("uibTooltipTemplate","tooltip","mouseenter",{useContentExp:!0})}]).directive("uibTooltipHtmlPopup",function(){return{replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/tooltip/tooltip-html-popup.html"}}).directive("uibTooltipHtml",["$uibTooltip",function(e){return e("uibTooltipHtml","tooltip","mouseenter",{useContentExp:!0})}]),angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("uibPopoverTemplatePopup",function(){return{replace:!0,
scope:{uibTitle:"@",contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"uib/template/popover/popover-template.html"}}).directive("uibPopoverTemplate",["$uibTooltip",function(e){return e("uibPopoverTemplate","popover","click",{useContentExp:!0})}]).directive("uibPopoverHtmlPopup",function(){return{replace:!0,scope:{contentExp:"&",uibTitle:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/popover/popover-html.html"}}).directive("uibPopoverHtml",["$uibTooltip",function(e){return e("uibPopoverHtml","popover","click",{useContentExp:!0})}]).directive("uibPopoverPopup",function(){return{replace:!0,scope:{uibTitle:"@",content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/popover/popover.html"}}).directive("uibPopover",["$uibTooltip",function(e){return e("uibPopover","popover","click")}]),angular.module("ui.bootstrap.progressbar",[]).constant("uibProgressConfig",{animate:!0,max:100}).controller("UibProgressController",["$scope","$attrs","uibProgressConfig",function(e,t,n){function i(){return angular.isDefined(e.maxParam)?e.maxParam:n.max}var r=this,a=angular.isDefined(t.animate)?e.$parent.$eval(t.animate):n.animate;this.bars=[],e.max=i(),this.addBar=function(e,t,n){a||t.css({transition:"none"}),this.bars.push(e),e.max=i(),e.title=n&&angular.isDefined(n.title)?n.title:"progressbar",e.$watch("value",function(t){e.recalculatePercentage()}),e.recalculatePercentage=function(){var t=r.bars.reduce(function(e,t){return t.percent=+(100*t.value/t.max).toFixed(2),e+t.percent},0);t>100&&(e.percent-=t-100)},e.$on("$destroy",function(){t=null,r.removeBar(e)})},this.removeBar=function(e){this.bars.splice(this.bars.indexOf(e),1),this.bars.forEach(function(e){e.recalculatePercentage()})},e.$watch("maxParam",function(e){r.bars.forEach(function(e){e.max=i(),e.recalculatePercentage()})})}]).directive("uibProgress",function(){return{replace:!0,transclude:!0,controller:"UibProgressController",require:"uibProgress",scope:{maxParam:"=?max"},templateUrl:"uib/template/progressbar/progress.html"}}).directive("uibBar",function(){return{replace:!0,transclude:!0,require:"^uibProgress",scope:{value:"=",type:"@"},templateUrl:"uib/template/progressbar/bar.html",link:function(e,t,n,i){i.addBar(e,t,n)}}}).directive("uibProgressbar",function(){return{replace:!0,transclude:!0,controller:"UibProgressController",scope:{value:"=",maxParam:"=?max",type:"@"},templateUrl:"uib/template/progressbar/progressbar.html",link:function(e,t,n,i){i.addBar(e,angular.element(t.children()[0]),{title:n.title})}}}),angular.module("ui.bootstrap.rating",[]).constant("uibRatingConfig",{max:5,stateOn:null,stateOff:null,enableReset:!0,titles:["one","two","three","four","five"]}).controller("UibRatingController",["$scope","$attrs","uibRatingConfig",function(e,t,n){var i={$setViewValue:angular.noop},r=this;this.init=function(r){var a,o;i=r,i.$render=this.render,i.$formatters.push(function(e){return angular.isNumber(e)&&e<<0!==e&&(e=Math.round(e)),e}),this.stateOn=angular.isDefined(t.stateOn)?e.$parent.$eval(t.stateOn):n.stateOn,this.stateOff=angular.isDefined(t.stateOff)?e.$parent.$eval(t.stateOff):n.stateOff,this.enableReset=angular.isDefined(t.enableReset)?e.$parent.$eval(t.enableReset):n.enableReset,a=angular.isDefined(t.titles)?e.$parent.$eval(t.titles):n.titles,this.titles=angular.isArray(a)&&a.length>0?a:n.titles,o=angular.isDefined(t.ratingStates)?e.$parent.$eval(t.ratingStates):new Array(angular.isDefined(t.max)?e.$parent.$eval(t.max):n.max),e.range=this.buildTemplateObjects(o)},this.buildTemplateObjects=function(e){for(var t=0,n=e.length;t<n;t++)e[t]=angular.extend({index:t},{stateOn:this.stateOn,stateOff:this.stateOff,title:this.getTitle(t)},e[t]);return e},this.getTitle=function(e){return e>=this.titles.length?e+1:this.titles[e]},e.rate=function(t){if(!e.readonly&&t>=0&&t<=e.range.length){var n=r.enableReset&&i.$viewValue===t?0:t;i.$setViewValue(n),i.$render()}},e.enter=function(t){e.readonly||(e.value=t),e.onHover({value:t})},e.reset=function(){e.value=i.$viewValue,e.onLeave()},e.onKeydown=function(t){/(37|38|39|40)/.test(t.which)&&(t.preventDefault(),t.stopPropagation(),e.rate(e.value+(38===t.which||39===t.which?1:-1)))},this.render=function(){e.value=i.$viewValue,e.title=r.getTitle(e.value-1)}}]).directive("uibRating",function(){return{require:["uibRating","ngModel"],scope:{readonly:"=?readOnly",onHover:"&",onLeave:"&"},controller:"UibRatingController",templateUrl:"uib/template/rating/rating.html",replace:!0,link:function(e,t,n,i){var r=i[0],a=i[1];r.init(a)}}}),angular.module("ui.bootstrap.tabs",[]).controller("UibTabsetController",["$scope",function(e){function t(e){for(var t=0;t<r.tabs.length;t++)if(r.tabs[t].index===e)return t}var n,i,r=this;r.tabs=[],r.select=function(e,a){var o,s,l;if(!i){if(o=t(n),s=r.tabs[o]){if(s.tab.onDeselect({$event:a}),a&&a.isDefaultPrevented())return;s.tab.active=!1}l=r.tabs[e],l?(l.tab.onSelect({$event:a}),l.tab.active=!0,r.active=l.index,n=l.index):!l&&angular.isNumber(n)&&(r.active=null,n=null)}},r.addTab=function(e){if(r.tabs.push({tab:e,index:e.index}),r.tabs.sort(function(e,t){return e.index>t.index?1:e.index<t.index?-1:0}),e.index===r.active||!angular.isNumber(r.active)&&1===r.tabs.length){var n=t(e.index);r.select(n)}},r.removeTab=function(e){var t,n,i;for(n=0;n<r.tabs.length;n++)if(r.tabs[n].tab===e){t=n;break}r.tabs[t].index===r.active&&(i=t===r.tabs.length-1?t-1:t+1%r.tabs.length,r.select(i)),r.tabs.splice(t,1)},e.$watch("tabset.active",function(e){angular.isNumber(e)&&e!==n&&r.select(t(e))}),e.$on("$destroy",function(){i=!0})}]).directive("uibTabset",function(){return{transclude:!0,replace:!0,scope:{},bindToController:{active:"=?",type:"@"},controller:"UibTabsetController",controllerAs:"tabset",templateUrl:function(e,t){return t.templateUrl||"uib/template/tabs/tabset.html"},link:function(e,t,n){e.vertical=!!angular.isDefined(n.vertical)&&e.$parent.$eval(n.vertical),e.justified=!!angular.isDefined(n.justified)&&e.$parent.$eval(n.justified),angular.isUndefined(n.active)&&(e.active=0)}}}).directive("uibTab",["$parse",function(e){return{require:"^uibTabset",replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/tabs/tab.html"},transclude:!0,scope:{heading:"@",index:"=?",classes:"@?",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},controllerAs:"tab",link:function(t,n,i,r,a){t.disabled=!1,i.disable&&t.$parent.$watch(e(i.disable),function(e){t.disabled=!!e}),angular.isUndefined(i.index)&&(r.tabs&&r.tabs.length?t.index=Math.max.apply(null,r.tabs.map(function(e){return e.index}))+1:t.index=0),angular.isUndefined(i.classes)&&(t.classes=""),t.select=function(e){var n,i;if(!t.disabled){for(i=0;i<r.tabs.length;i++)if(r.tabs[i].tab===t){n=i;break}r.select(n,e)}},r.addTab(t),t.$on("$destroy",function(){r.removeTab(t)}),t.$transcludeFn=a}}}]).directive("uibTabHeadingTransclude",function(){return{restrict:"A",require:"^uibTab",link:function(e,t){e.$watch("headingElement",function(e){e&&(t.html(""),t.append(e))})}}}).directive("uibTabContentTransclude",function(){function e(e){return e.tagName&&(e.hasAttribute("uib-tab-heading")||e.hasAttribute("data-uib-tab-heading")||e.hasAttribute("x-uib-tab-heading")||"uib-tab-heading"===e.tagName.toLowerCase()||"data-uib-tab-heading"===e.tagName.toLowerCase()||"x-uib-tab-heading"===e.tagName.toLowerCase()||"uib:tab-heading"===e.tagName.toLowerCase())}return{restrict:"A",require:"^uibTabset",link:function(t,n,i){var r=t.$eval(i.uibTabContentTransclude).tab;r.$transcludeFn(r.$parent,function(t){angular.forEach(t,function(t){e(t)?r.headingElement=t:n.append(t)})})}}}),angular.module("ui.bootstrap.timepicker",[]).constant("uibTimepickerConfig",{hourStep:1,minuteStep:1,secondStep:1,showMeridian:!0,showSeconds:!1,meridians:null,readonlyInput:!1,mousewheel:!0,arrowkeys:!0,showSpinners:!0,templateUrl:"uib/template/timepicker/timepicker.html"}).controller("UibTimepickerController",["$scope","$element","$attrs","$parse","$log","$locale","uibTimepickerConfig",function(e,t,n,i,r,a,o){function s(){var t=+e.hours;if((e.showMeridian?t>0&&t<13:t>=0&&t<24)&&""!==e.hours)return e.showMeridian&&(12===t&&(t=0),e.meridian===T[1]&&(t+=12)),t}function l(){var t=+e.minutes;if(t>=0&&t<60&&""!==e.minutes)return t}function u(){var t=+e.seconds;return t>=0&&t<60?t:void 0}function c(e,t){return null===e?"":angular.isDefined(e)&&e.toString().length<2&&!t?"0"+e:e.toString()}function d(e){p(),E.$setViewValue(new Date(C)),f(e)}function p(){E.$setValidity("time",!0),e.invalidHours=!1,e.invalidMinutes=!1,e.invalidSeconds=!1}function f(t){if(E.$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,!D),"m"!==t&&(e.minutes=c(i)),e.meridian=C.getHours()<12?T[0]:T[1],"s"!==t&&(e.seconds=c(r)),e.meridian=C.getHours()<12?T[0]:T[1]}else e.hours=null,e.minutes=null,e.seconds=null,e.meridian=T[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,S=[],E={$setViewValue:angular.noop},T=angular.isDefined(n.meridians)?e.$parent.$eval(n.meridians):o.meridians||a.DATETIME_FORMATS.AMPMS,D=!angular.isDefined(n.padHours)||e.$parent.$eval(n.padHours);e.tabindex=angular.isDefined(n.tabindex)?n.tabindex:0,t.removeAttr("tabindex"),this.init=function(t,i){var r,a,s,l,u;E=t,E.$render=this.render,E.$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&&S.push(e.$parent.$watch(i(n.hourStep),function(e){v=+e})),y=o.minuteStep,n.minuteStep&&S.push(e.$parent.$watch(i(n.minuteStep),function(e){y=+e})),S.push(e.$parent.$watch(i(n.min),function(e){var t=new Date(e);w=isNaN(t)?void 0:t})),S.push(e.$parent.$watch(i(n.max),function(e){var t=new Date(e);x=isNaN(t)?void 0:t})),$=!1,n.ngDisabled&&S.push(e.$parent.$watch(i(n.ngDisabled),function(e){$=e})),e.noIncrementHours=function(){var e=g(C,60*v);return $||e>x||e<C&&e<w},e.noDecrementHours=function(){var e=g(C,60*-v);return $||e<w||e>C&&e>x},e.noIncrementMinutes=function(){var e=g(C,y);return $||e>x||e<C&&e<w},e.noDecrementMinutes=function(){var e=g(C,-y);return $||e<w||e>C&&e>x},e.noIncrementSeconds=function(){var e=m(C,k);return $||e>x||e<C&&e<w},e.noDecrementSeconds=function(){var e=m(C,-k);return $||e<w||e>C&&e>x},e.noToggleMeridian=function(){return C.getHours()<12?$||g(C,720)>x:$||g(C,-720)<w},k=o.secondStep,n.secondStep&&S.push(e.$parent.$watch(i(n.secondStep),function(e){k=+e})),e.showSeconds=o.showSeconds,n.showSeconds&&S.push(e.$parent.$watch(i(n.showSeconds),function(t){e.showSeconds=!!t})),e.showMeridian=o.showMeridian,n.showMeridian&&S.push(e.$parent.$watch(i(n.showMeridian),function(t){if(e.showMeridian=!!t,E.$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){$||e.$apply(r(t)?e.incrementHours():e.decrementHours()),t.preventDefault()}),n.bind("mousewheel wheel",function(t){$||e.$apply(r(t)?e.incrementMinutes():e.decrementMinutes()),t.preventDefault()}),i.bind("mousewheel wheel",function(t){$||e.$apply(r(t)?e.incrementSeconds():e.decrementSeconds()),t.preventDefault()})},this.setupArrowkeyEvents=function(t,n,i){t.bind("keydown",function(t){$||(38===t.which?(t.preventDefault(),e.incrementHours(),e.$apply()):40===t.which&&(t.preventDefault(),e.decrementHours(),e.$apply()))}),n.bind("keydown",function(t){$||(38===t.which?(t.preventDefault(),e.incrementMinutes(),e.$apply()):40===t.which&&(t.preventDefault(),e.decrementMinutes(),e.$apply()))}),i.bind("keydown",function(t){$||(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){E.$setViewValue(null),E.$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();E.$setDirty(),angular.isDefined(e)&&angular.isDefined(t)?(C.setHours(e),C.setMinutes(t),C<w||C>x?r(!0):d("h")):r(!0)},t.bind("blur",function(t){E.$setTouched(),b()?p():null===e.hours||""===e.hours?r(!0):!e.invalidHours&&e.hours<10&&e.$apply(function(){e.hours=c(e.hours,!D)})}),e.updateMinutes=function(){var e=l(),t=s();E.$setDirty(),angular.isDefined(e)&&angular.isDefined(t)?(C.setHours(t),C.setMinutes(e),C<w||C>x?r(void 0,!0):d("m")):r(void 0,!0)},n.bind("blur",function(t){E.$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();E.$setDirty(),angular.isDefined(e)?(C.setSeconds(e),d("s")):r(void 0,void 0,!0)},i.bind("blur",function(t){b()?p():!e.invalidSeconds&&e.seconds<10&&e.$apply(function(){e.seconds=c(e.seconds)})})},this.render=function(){var t=E.$viewValue;isNaN(t)?(E.$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<w||C>x?(E.$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===T[0]?T[1]:T[0])},e.blur=function(){E.$setTouched()},e.$on("$destroy",function(){for(;S.length;)S.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(){P.moveInProgress||(P.moveInProgress=!0,P.$digest()),W()}function h(){P.position=C?d.offset(t):d.position(t),P.position.top+=t.prop("offsetHeight")}var g,m,b,v,y,w,x,$,k,C,S,E,T,D,N,O,M,R,A,_,L,P,q,I,H,F,B,j,U,z,V,K,W,Q,G,Y,X,J,Z=[9,13,27,38,40],ee=e.$eval(n.typeaheadMinLength);ee||0===ee||(ee=1),e.$watch(n.typeaheadMinLength,function(e){ee=e||0===e?e:1}),b=e.$eval(n.typeaheadWaitMs)||0,v=!1!==e.$eval(n.typeaheadEditable),e.$watch(n.typeaheadEditable,function(e){v=!1!==e}),y=r(n.typeaheadLoading).assign||angular.noop,w=r(n.typeaheadOnSelect),x=!!angular.isDefined(n.typeaheadSelectOnBlur)&&e.$eval(n.typeaheadSelectOnBlur),$=r(n.typeaheadNoResults).assign||angular.noop,k=n.typeaheadInputFormatter?r(n.typeaheadInputFormatter):void 0,C=!!n.typeaheadAppendToBody&&e.$eval(n.typeaheadAppendToBody),S=n.typeaheadAppendTo?e.$eval(n.typeaheadAppendTo):null,E=!1!==e.$eval(n.typeaheadFocusFirst),T=!!n.typeaheadSelectOnExact&&e.$eval(n.typeaheadSelectOnExact),D=r(n.typeaheadIsOpen).assign||angular.noop,N=e.$eval(n.typeaheadShowHint)||!1,O=r(n.ngModel),M=r(n.ngModel+"($$$p)"),R=function(t,n){return angular.isFunction(O(e))&&m&&m.$options&&m.$options.getterSetter?M(t,{$$$p:n}):O.assign(t,n)},A=p.parse(n.uibTypeahead),P=e.$new(),q=e.$on("$destroy",function(){P.$destroy()}),P.$on("$destroy",q),I="typeahead-"+P.$id+"-"+Math.floor(1e4*Math.random()),t.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":I}),N&&(H=angular.element("<div></div>"),H.css("position","relative"),t.after(H),F=t.clone(),F.attr("placeholder",""),F.attr("tabindex","-1"),F.val(""),F.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"}),H.append(F),F.after(t)),B=angular.element("<div uib-typeahead-popup></div>"),B.attr({id:I,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)&&B.attr("template-url",n.typeaheadTemplateUrl),angular.isDefined(n.typeaheadPopupTemplateUrl)&&B.attr("popup-template-url",n.typeaheadPopupTemplateUrl),j=function(){N&&F.val("")},U=function(){P.matches=[],P.activeIdx=-1,t.attr("aria-expanded",!1),j()},z=function(e){return I+"-option-"+e},P.$watch("activeIdx",function(e){e<0?t.removeAttr("aria-activedescendant"):t.attr("aria-activedescendant",z(e))}),V=function(e,t){return!!(P.matches.length>t&&e)&&e.toUpperCase()===P.matches[t].label.toUpperCase()},K=function(n,i){var r={$viewValue:n};y(e,!0),$(e,!1),a.when(A.source(e,r)).then(function(a){var o,s,l=n===g.$viewValue;if(l&&_)if(a&&a.length>0){for(P.activeIdx=E?0:-1,$(e,!1),P.matches.length=0,o=0;o<a.length;o++)r[A.itemName]=a[o],P.matches.push({id:z(o),label:A.viewMapper(P,r),model:a[o]});P.query=n,h(),t.attr("aria-expanded",!0),T&&1===P.matches.length&&V(n,0)&&(angular.isNumber(P.debounceUpdate)||angular.isObject(P.debounceUpdate)?c(function(){P.select(0,i)},angular.isNumber(P.debounceUpdate)?P.debounceUpdate:P.debounceUpdate.default):P.select(0,i)),N&&(s=P.matches[0].label,angular.isString(n)&&n.length>0&&s.slice(0,n.length).toUpperCase()===n.toUpperCase()?F.val(n+s.slice(n.length)):F.val(""))}else U(),$(e,!0);l&&y(e,!1)},function(){U(),y(e,!1),$(e,!0)})},C&&(angular.element(l).on("resize",f),s.find("body").on("scroll",f)),W=c(function(){P.matches.length&&h(),P.moveInProgress=!1},200),P.moveInProgress=!1,P.query=void 0,G=function(e){Q=o(function(){K(e)},b)},Y=function(){Q&&o.cancel(Q)},U(),P.assignIsOpen=function(t){D(e,t)},P.select=function(i,r){var a,s,l={};L=!0,l[A.itemName]=s=P.matches[i].model,a=A.modelMapper(e,l),R(e,a),g.$setValidity("editable",!0),g.$setValidity("parse",!0),w(e,{$item:s,$model:a,$label:A.viewMapper(e,l),$event:r}),U(),!1!==P.$eval(n.typeaheadFocusOnSelect)&&o(function(){t[0].focus()},0,!1)},t.on("keydown",function(t){if(0!==P.matches.length&&-1!==Z.indexOf(t.which)){if(-1===P.activeIdx&&(9===t.which||13===t.which)||9===t.which&&t.shiftKey)return U(),void P.$digest();t.preventDefault();var n;switch(t.which){case 9:case 13:P.$apply(function(){angular.isNumber(P.debounceUpdate)||angular.isObject(P.debounceUpdate)?c(function(){P.select(P.activeIdx,t)},angular.isNumber(P.debounceUpdate)?P.debounceUpdate:P.debounceUpdate.default):P.select(P.activeIdx,t)});break;case 27:t.stopPropagation(),U(),e.$digest();break;case 38:P.activeIdx=(P.activeIdx>0?P.activeIdx:P.matches.length)-1,P.$digest(),n=B.find("li")[P.activeIdx],n.parentNode.scrollTop=n.offsetTop;break;case 40:P.activeIdx=(P.activeIdx+1)%P.matches.length,P.$digest(),n=B.find("li")[P.activeIdx],n.parentNode.scrollTop=n.offsetTop}}}),t.bind("focus",function(e){_=!0,0!==ee||g.$viewValue||o(function(){K(g.$viewValue,e)},0)}),t.bind("blur",function(e){x&&P.matches.length&&-1!==P.activeIdx&&!L&&(L=!0,P.$apply(function(){angular.isObject(P.debounceUpdate)&&angular.isNumber(P.debounceUpdate.blur)?c(function(){P.select(P.activeIdx,e)},P.debounceUpdate.blur):P.select(P.activeIdx,e)})),!v&&g.$error.editable&&(g.$setViewValue(),g.$setValidity("editable",!0),g.$setValidity("parse",!0),t.val("")),_=!1,L=!1}),X=function(n){t[0]!==n.target&&3!==n.which&&0!==P.matches.length&&(U(),u.$$phase||e.$digest())},s.on("click",X),e.$on("$destroy",function(){s.off("click",X),(C||S)&&J.remove(),C&&(angular.element(l).off("resize",f),s.find("body").off("scroll",f)),B.remove(),N&&H.remove()}),J=i(B)(P),C?s.find("body").append(J):S?angular.element(S).eq(0).append(J):t.after(J),this.init=function(t,n){g=t,m=n,P.debounceUpdate=g.$options&&r(g.$options.debounce)(e),g.$parsers.unshift(function(t){return _=!0,0===ee||t&&t.length>=ee?b>0?(Y(),G(t)):K(t):(y(e,!1),Y(),U()),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[A.itemName]=t,n=A.viewMapper(e,r),r[A.itemName]=void 0,i=A.viewMapper(e,r),n!==i?n:t)})}}]).directive("uibTypeahead",function(){return{controller:"UibTypeaheadController",require:["ngModel","^?ngModelOptions","uibTypeahead"],link:function(e,t,n,i){i[2].init(i[0],i[1])}}}).directive("uibTypeaheadPopup",["$$debounce",function(e){return{scope:{matches:"=",query:"=",active:"=",position:"&",moveInProgress:"=",select:"&",assignIsOpen:"&",debounce:"&"},replace:!0,templateUrl:function(e,t){return t.popupTemplateUrl||"uib/template/typeahead/typeahead-popup.html"},link:function(t,n,i){t.templateUrl=i.templateUrl,t.isOpen=function(){var e=t.matches.length>0;return t.assignIsOpen({isOpen:e}),e},t.isActive=function(e){return t.active===e},t.selectActive=function(e){t.active=e},t.selectMatch=function(n,i){var r=t.debounce();angular.isNumber(r)||angular.isObject(r)?e(function(){t.select({activeIdx:n,evt:i})},angular.isNumber(r)?r:r.default):t.select({activeIdx:n,evt:i})}}}}]).directive("uibTypeaheadMatch",["$templateRequest","$compile","$parse",function(e,t,n){return{scope:{index:"=",match:"=",query:"="},link:function(i,r,a){var o=n(a.templateUrl)(i.$parent)||"uib/template/typeahead/typeahead-match.html";e(o).then(function(e){var n=angular.element(e.trim());r.replaceWith(n),t(n)(i)})}}}]).filter("uibTypeaheadHighlight",["$sce","$injector","$log",function(e,t,n){function i(e){return e.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}function r(e){return/<.*>/g.test(e)}var a;return a=t.has("$sanitize"),function(t,o){return!a&&r(t)&&n.warn("Unsafe use of typeahead please use ngSanitize"),t=o?(""+t).replace(new RegExp(i(o),"gi"),"<strong>$&</strong>"):t,a||(t=e.trustAsHtml(t)),t}}]),angular.module("uib/template/accordion/accordion-group.html",[]).run(["$templateCache",function(e){e.put("uib/template/accordion/accordion-group.html",'<div class="panel" ng-class="panelClass || \'panel-default\'">\n <div role="tab" id="{{::headingId}}" aria-selected="{{isOpen}}" class="panel-heading" ng-keypress="toggleOpen($event)">\n <h4 class="panel-title">\n <a role="button" data-toggle="collapse" href aria-expanded="{{isOpen}}" aria-controls="{{::panelId}}" tabindex="0" class="accordion-toggle" ng-click="toggleOpen()" uib-accordion-transclude="heading"><span uib-accordion-header ng-class="{\'text-muted\': isDisabled}">{{heading}}</span></a>\n </h4>\n </div>\n <div id="{{::panelId}}" aria-labelledby="{{::headingId}}" aria-hidden="{{!isOpen}}" role="tabpanel" class="panel-collapse collapse" uib-collapse="!isOpen">\n <div class="panel-body" ng-transclude></div>\n </div>\n</div>\n')}]),angular.module("uib/template/accordion/accordion.html",[]).run(["$templateCache",function(e){e.put("uib/template/accordion/accordion.html",'<div role="tablist" class="panel-group" ng-transclude></div>')}]),angular.module("uib/template/alert/alert.html",[]).run(["$templateCache",function(e){e.put("uib/template/alert/alert.html",'<div class="alert" ng-class="[\'alert-\' + (type || \'warning\'), closeable ? \'alert-dismissible\' : null]" role="alert">\n <button ng-show="closeable" type="button" class="close" ng-click="close({$event: $event})">\n <span aria-hidden="true">×</span>\n <span class="sr-only">Close</span>\n </button>\n <div ng-transclude></div>\n</div>\n')}]),angular.module("uib/template/carousel/carousel.html",[]).run(["$templateCache",function(e){e.put("uib/template/carousel/carousel.html",'<div ng-mouseenter="pause()" ng-mouseleave="play()" class="carousel" ng-swipe-right="prev()" ng-swipe-left="next()">\n <div class="carousel-inner" ng-transclude></div>\n <a role="button" href class="left carousel-control" ng-click="prev()" ng-class="{ disabled: isPrevDisabled() }" ng-show="slides.length > 1">\n <span aria-hidden="true" class="glyphicon glyphicon-chevron-left"></span>\n <span class="sr-only">previous</span>\n </a>\n <a role="button" href class="right carousel-control" ng-click="next()" ng-class="{ disabled: isNextDisabled() }" ng-show="slides.length > 1">\n <span aria-hidden="true" class="glyphicon glyphicon-chevron-right"></span>\n <span class="sr-only">next</span>\n </a>\n <ol class="carousel-indicators" ng-show="slides.length > 1">\n <li ng-repeat="slide in slides | orderBy:indexOfSlide track by $index" ng-class="{ active: isActive(slide) }" ng-click="select(slide)">\n <span class="sr-only">slide {{ $index + 1 }} of {{ slides.length }}<span ng-if="isActive(slide)">, currently active</span></span>\n </li>\n </ol>\n</div>\n')}]),angular.module("uib/template/carousel/slide.html",[]).run(["$templateCache",function(e){e.put("uib/template/carousel/slide.html",'<div ng-class="{\n \'active\': active\n }" class="item text-center" ng-transclude></div>\n')}]),angular.module("uib/template/datepicker/datepicker.html",[]).run(["$templateCache",function(e){e.put("uib/template/datepicker/datepicker.html",'<div class="uib-datepicker" ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)">\n <uib-daypicker ng-switch-when="day" tabindex="0"></uib-daypicker>\n <uib-monthpicker ng-switch-when="month" tabindex="0"></uib-monthpicker>\n <uib-yearpicker ng-switch-when="year" tabindex="0"></uib-yearpicker>\n</div>\n')}]),angular.module("uib/template/datepicker/day.html",[]).run(["$templateCache",function(e){e.put("uib/template/datepicker/day.html",'<table class="uib-daypicker" role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n <thead>\n <tr>\n <th><button type="button" class="btn btn-default btn-sm pull-left uib-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n <th colspan="{{::5 + showWeeks}}"><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm uib-title" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1"><strong>{{title}}</strong></button></th>\n <th><button type="button" class="btn btn-default btn-sm pull-right uib-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n </tr>\n <tr>\n <th ng-if="showWeeks" class="text-center"></th>\n <th ng-repeat="label in ::labels track by $index" class="text-center"><small aria-label="{{::label.full}}">{{::label.abbr}}</small></th>\n </tr>\n </thead>\n <tbody>\n <tr class="uib-weeks" ng-repeat="row in rows track by $index">\n <td ng-if="showWeeks" class="text-center h6"><em>{{ weekNumbers[$index] }}</em></td>\n <td ng-repeat="dt in row" class="uib-day text-center" role="gridcell"\n id="{{::dt.uid}}"\n ng-class="::dt.customClass">\n <button type="button" class="btn btn-default btn-sm"\n uib-is-class="\n \'btn-info\' for selectedDt,\n \'active\' for activeDt\n on dt"\n ng-click="select(dt.date)"\n ng-disabled="::dt.disabled"\n tabindex="-1"><span ng-class="::{\'text-muted\': dt.secondary, \'text-info\': dt.current}">{{::dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n')}]),angular.module("uib/template/datepicker/month.html",[]).run(["$templateCache",function(e){e.put("uib/template/datepicker/month.html",'<table class="uib-monthpicker" role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n <thead>\n <tr>\n <th><button type="button" class="btn btn-default btn-sm pull-left uib-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n <th><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm uib-title" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1"><strong>{{title}}</strong></button></th>\n <th><button type="button" class="btn btn-default btn-sm pull-right uib-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n </tr>\n </thead>\n <tbody>\n <tr class="uib-months" ng-repeat="row in rows track by $index">\n <td ng-repeat="dt in row" class="uib-month text-center" role="gridcell"\n id="{{::dt.uid}}"\n ng-class="::dt.customClass">\n <button type="button" class="btn btn-default"\n uib-is-class="\n \'btn-info\' for selectedDt,\n \'active\' for activeDt\n on dt"\n ng-click="select(dt.date)"\n ng-disabled="::dt.disabled"\n tabindex="-1"><span ng-class="::{\'text-info\': dt.current}">{{::dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n')}]),angular.module("uib/template/datepicker/year.html",[]).run(["$templateCache",function(e){
e.put("uib/template/datepicker/year.html",'<table class="uib-yearpicker" role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n <thead>\n <tr>\n <th><button type="button" class="btn btn-default btn-sm pull-left uib-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n <th colspan="{{::columns - 2}}"><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm uib-title" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1"><strong>{{title}}</strong></button></th>\n <th><button type="button" class="btn btn-default btn-sm pull-right uib-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n </tr>\n </thead>\n <tbody>\n <tr class="uib-years" ng-repeat="row in rows track by $index">\n <td ng-repeat="dt in row" class="uib-year text-center" role="gridcell"\n id="{{::dt.uid}}"\n ng-class="::dt.customClass">\n <button type="button" class="btn btn-default"\n uib-is-class="\n \'btn-info\' for selectedDt,\n \'active\' for activeDt\n on dt"\n ng-click="select(dt.date)"\n ng-disabled="::dt.disabled"\n tabindex="-1"><span ng-class="::{\'text-info\': dt.current}">{{::dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n')}]),angular.module("uib/template/datepickerPopup/popup.html",[]).run(["$templateCache",function(e){e.put("uib/template/datepickerPopup/popup.html",'<div>\n <ul class="uib-datepicker-popup dropdown-menu uib-position-measure" dropdown-nested ng-if="isOpen" ng-keydown="keydown($event)" ng-click="$event.stopPropagation()">\n <li ng-transclude></li>\n <li ng-if="showButtonBar" class="uib-button-bar">\n <span class="btn-group pull-left">\n <button type="button" class="btn btn-sm btn-info uib-datepicker-current" ng-click="select(\'today\', $event)" ng-disabled="isDisabled(\'today\')">{{ getText(\'current\') }}</button>\n <button type="button" class="btn btn-sm btn-danger uib-clear" ng-click="select(null, $event)">{{ getText(\'clear\') }}</button>\n </span>\n <button type="button" class="btn btn-sm btn-success pull-right uib-close" ng-click="close($event)">{{ getText(\'close\') }}</button>\n </li>\n </ul>\n</div>\n')}]),angular.module("uib/template/modal/backdrop.html",[]).run(["$templateCache",function(e){e.put("uib/template/modal/backdrop.html",'<div class="modal-backdrop"\n uib-modal-animation-class="fade"\n modal-in-class="in"\n ng-style="{\'z-index\': 1040 + (index && 1 || 0) + index*10}"\n></div>\n')}]),angular.module("uib/template/modal/window.html",[]).run(["$templateCache",function(e){e.put("uib/template/modal/window.html",'<div modal-render="{{$isRendered}}" tabindex="-1" role="dialog" class="modal"\n uib-modal-animation-class="fade"\n modal-in-class="in"\n ng-style="{\'z-index\': 1050 + index*10, display: \'block\'}">\n <div class="modal-dialog {{size ? \'modal-\' + size : \'\'}}"><div class="modal-content" uib-modal-transclude></div></div>\n</div>\n')}]),angular.module("uib/template/pager/pager.html",[]).run(["$templateCache",function(e){e.put("uib/template/pager/pager.html",'<ul class="pager">\n <li ng-class="{disabled: noPrevious()||ngDisabled, previous: align}"><a href ng-click="selectPage(page - 1, $event)">{{::getText(\'previous\')}}</a></li>\n <li ng-class="{disabled: noNext()||ngDisabled, next: align}"><a href ng-click="selectPage(page + 1, $event)">{{::getText(\'next\')}}</a></li>\n</ul>\n')}]),angular.module("uib/template/pagination/pagination.html",[]).run(["$templateCache",function(e){e.put("uib/template/pagination/pagination.html",'<ul class="pagination">\n <li ng-if="::boundaryLinks" ng-class="{disabled: noPrevious()||ngDisabled}" class="pagination-first"><a href ng-click="selectPage(1, $event)">{{::getText(\'first\')}}</a></li>\n <li ng-if="::directionLinks" ng-class="{disabled: noPrevious()||ngDisabled}" class="pagination-prev"><a href ng-click="selectPage(page - 1, $event)">{{::getText(\'previous\')}}</a></li>\n <li ng-repeat="page in pages track by $index" ng-class="{active: page.active,disabled: ngDisabled&&!page.active}" class="pagination-page"><a href ng-click="selectPage(page.number, $event)">{{page.text}}</a></li>\n <li ng-if="::directionLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-next"><a href ng-click="selectPage(page + 1, $event)">{{::getText(\'next\')}}</a></li>\n <li ng-if="::boundaryLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-last"><a href ng-click="selectPage(totalPages, $event)">{{::getText(\'last\')}}</a></li>\n</ul>\n')}]),angular.module("uib/template/tooltip/tooltip-html-popup.html",[]).run(["$templateCache",function(e){e.put("uib/template/tooltip/tooltip-html-popup.html",'<div class="tooltip"\n tooltip-animation-class="fade"\n uib-tooltip-classes\n ng-class="{ in: isOpen() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner" ng-bind-html="contentExp()"></div>\n</div>\n')}]),angular.module("uib/template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(e){e.put("uib/template/tooltip/tooltip-popup.html",'<div class="tooltip"\n tooltip-animation-class="fade"\n uib-tooltip-classes\n ng-class="{ in: isOpen() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner" ng-bind="content"></div>\n</div>\n')}]),angular.module("uib/template/tooltip/tooltip-template-popup.html",[]).run(["$templateCache",function(e){e.put("uib/template/tooltip/tooltip-template-popup.html",'<div class="tooltip"\n tooltip-animation-class="fade"\n uib-tooltip-classes\n ng-class="{ in: isOpen() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner"\n uib-tooltip-template-transclude="contentExp()"\n tooltip-template-transclude-scope="originScope()"></div>\n</div>\n')}]),angular.module("uib/template/popover/popover-html.html",[]).run(["$templateCache",function(e){e.put("uib/template/popover/popover-html.html",'<div class="popover"\n tooltip-animation-class="fade"\n uib-tooltip-classes\n ng-class="{ in: isOpen() }">\n <div class="arrow"></div>\n\n <div class="popover-inner">\n <h3 class="popover-title" ng-bind="uibTitle" ng-if="uibTitle"></h3>\n <div class="popover-content" ng-bind-html="contentExp()"></div>\n </div>\n</div>\n')}]),angular.module("uib/template/popover/popover-template.html",[]).run(["$templateCache",function(e){e.put("uib/template/popover/popover-template.html",'<div class="popover"\n tooltip-animation-class="fade"\n uib-tooltip-classes\n ng-class="{ in: isOpen() }">\n <div class="arrow"></div>\n\n <div class="popover-inner">\n <h3 class="popover-title" ng-bind="uibTitle" ng-if="uibTitle"></h3>\n <div class="popover-content"\n uib-tooltip-template-transclude="contentExp()"\n tooltip-template-transclude-scope="originScope()"></div>\n </div>\n</div>\n')}]),angular.module("uib/template/popover/popover.html",[]).run(["$templateCache",function(e){e.put("uib/template/popover/popover.html",'<div class="popover"\n tooltip-animation-class="fade"\n uib-tooltip-classes\n ng-class="{ in: isOpen() }">\n <div class="arrow"></div>\n\n <div class="popover-inner">\n <h3 class="popover-title" ng-bind="uibTitle" ng-if="uibTitle"></h3>\n <div class="popover-content" ng-bind="content"></div>\n </div>\n</div>\n')}]),angular.module("uib/template/progressbar/bar.html",[]).run(["$templateCache",function(e){e.put("uib/template/progressbar/bar.html",'<div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: (percent < 100 ? percent : 100) + \'%\'}" aria-valuetext="{{percent | number:0}}%" aria-labelledby="{{::title}}" ng-transclude></div>\n')}]),angular.module("uib/template/progressbar/progress.html",[]).run(["$templateCache",function(e){e.put("uib/template/progressbar/progress.html",'<div class="progress" ng-transclude aria-labelledby="{{::title}}"></div>')}]),angular.module("uib/template/progressbar/progressbar.html",[]).run(["$templateCache",function(e){e.put("uib/template/progressbar/progressbar.html",'<div class="progress">\n <div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: (percent < 100 ? percent : 100) + \'%\'}" aria-valuetext="{{percent | number:0}}%" aria-labelledby="{{::title}}" ng-transclude></div>\n</div>\n')}]),angular.module("uib/template/rating/rating.html",[]).run(["$templateCache",function(e){e.put("uib/template/rating/rating.html",'<span ng-mouseleave="reset()" ng-keydown="onKeydown($event)" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="{{range.length}}" aria-valuenow="{{value}}" aria-valuetext="{{title}}">\n <span ng-repeat-start="r in range track by $index" class="sr-only">({{ $index < value ? \'*\' : \' \' }})</span>\n <i ng-repeat-end ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon" ng-class="$index < value && (r.stateOn || \'glyphicon-star\') || (r.stateOff || \'glyphicon-star-empty\')" ng-attr-title="{{r.title}}"></i>\n</span>\n')}]),angular.module("uib/template/tabs/tab.html",[]).run(["$templateCache",function(e){e.put("uib/template/tabs/tab.html",'<li ng-class="[{active: active, disabled: disabled}, classes]" class="uib-tab nav-item">\n <a href ng-click="select($event)" class="nav-link" uib-tab-heading-transclude>{{heading}}</a>\n</li>\n')}]),angular.module("uib/template/tabs/tabset.html",[]).run(["$templateCache",function(e){e.put("uib/template/tabs/tabset.html",'<div>\n <ul class="nav nav-{{tabset.type || \'tabs\'}}" ng-class="{\'nav-stacked\': vertical, \'nav-justified\': justified}" ng-transclude></ul>\n <div class="tab-content">\n <div class="tab-pane"\n ng-repeat="tab in tabset.tabs"\n ng-class="{active: tabset.active === tab.index}"\n uib-tab-content-transclude="tab">\n </div>\n </div>\n</div>\n')}]),angular.module("uib/template/timepicker/timepicker.html",[]).run(["$templateCache",function(e){e.put("uib/template/timepicker/timepicker.html",'<table class="uib-timepicker">\n <tbody>\n <tr class="text-center" ng-show="::showSpinners">\n <td class="uib-increment hours"><a ng-click="incrementHours()" ng-class="{disabled: noIncrementHours()}" class="btn btn-link" ng-disabled="noIncrementHours()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n <td> </td>\n <td class="uib-increment minutes"><a ng-click="incrementMinutes()" ng-class="{disabled: noIncrementMinutes()}" class="btn btn-link" ng-disabled="noIncrementMinutes()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n <td ng-show="showSeconds"> </td>\n <td ng-show="showSeconds" class="uib-increment seconds"><a ng-click="incrementSeconds()" ng-class="{disabled: noIncrementSeconds()}" class="btn btn-link" ng-disabled="noIncrementSeconds()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n <td ng-show="showMeridian"></td>\n </tr>\n <tr>\n <td class="form-group uib-time hours" ng-class="{\'has-error\': invalidHours}">\n <input type="text" placeholder="HH" ng-model="hours" ng-change="updateHours()" class="form-control text-center" ng-readonly="::readonlyInput" maxlength="2" tabindex="{{::tabindex}}" ng-disabled="noIncrementHours()" ng-blur="blur()">\n </td>\n <td class="uib-separator">:</td>\n <td class="form-group uib-time minutes" ng-class="{\'has-error\': invalidMinutes}">\n <input type="text" placeholder="MM" ng-model="minutes" ng-change="updateMinutes()" class="form-control text-center" ng-readonly="::readonlyInput" maxlength="2" tabindex="{{::tabindex}}" ng-disabled="noIncrementMinutes()" ng-blur="blur()">\n </td>\n <td ng-show="showSeconds" class="uib-separator">:</td>\n <td class="form-group uib-time seconds" ng-class="{\'has-error\': invalidSeconds}" ng-show="showSeconds">\n <input type="text" placeholder="SS" ng-model="seconds" ng-change="updateSeconds()" class="form-control text-center" ng-readonly="readonlyInput" maxlength="2" tabindex="{{::tabindex}}" ng-disabled="noIncrementSeconds()" ng-blur="blur()">\n </td>\n <td ng-show="showMeridian" class="uib-time am-pm"><button type="button" ng-class="{disabled: noToggleMeridian()}" class="btn btn-default text-center" ng-click="toggleMeridian()" ng-disabled="noToggleMeridian()" tabindex="{{::tabindex}}">{{meridian}}</button></td>\n </tr>\n <tr class="text-center" ng-show="::showSpinners">\n <td class="uib-decrement hours"><a ng-click="decrementHours()" ng-class="{disabled: noDecrementHours()}" class="btn btn-link" ng-disabled="noDecrementHours()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n <td> </td>\n <td class="uib-decrement minutes"><a ng-click="decrementMinutes()" ng-class="{disabled: noDecrementMinutes()}" class="btn btn-link" ng-disabled="noDecrementMinutes()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n <td ng-show="showSeconds"> </td>\n <td ng-show="showSeconds" class="uib-decrement seconds"><a ng-click="decrementSeconds()" ng-class="{disabled: noDecrementSeconds()}" class="btn btn-link" ng-disabled="noDecrementSeconds()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n <td ng-show="showMeridian"></td>\n </tr>\n </tbody>\n</table>\n')}]),angular.module("uib/template/typeahead/typeahead-match.html",[]).run(["$templateCache",function(e){e.put("uib/template/typeahead/typeahead-match.html",'<a href\n tabindex="-1"\n ng-bind-html="match.label | uibTypeaheadHighlight:query"\n ng-attr-title="{{match.label}}"></a>\n')}]),angular.module("uib/template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function(e){e.put("uib/template/typeahead/typeahead-popup.html",'<ul class="dropdown-menu" ng-show="isOpen() && !moveInProgress" ng-style="{top: position().top+\'px\', left: position().left+\'px\'}" role="listbox" aria-hidden="{{!isOpen()}}">\n <li ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index, $event)" role="option" id="{{::match.id}}">\n <div uib-typeahead-match index="$index" match="match" query="query" template-url="templateUrl"></div>\n </li>\n</ul>\n')}]),angular.module("ui.bootstrap.carousel").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibCarouselCss&&angular.element(document).find("head").prepend('<style type="text/css">.ng-animate.item:not(.left):not(.right){-webkit-transition:0s ease-in-out left;transition:0s ease-in-out left}</style>'),angular.$$uibCarouselCss=!0}),angular.module("ui.bootstrap.datepicker").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibDatepickerCss&&angular.element(document).find("head").prepend('<style type="text/css">.uib-datepicker .uib-title{width:100%;}.uib-day button,.uib-month button,.uib-year button{min-width:100%;}.uib-left,.uib-right{width:100%}</style>'),angular.$$uibDatepickerCss=!0}),angular.module("ui.bootstrap.position").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibPositionCss&&angular.element(document).find("head").prepend('<style type="text/css">.uib-position-measure{display:block !important;visibility:hidden !important;position:absolute !important;top:-9999px !important;left:-9999px !important;}.uib-position-scrollbar-measure{position:absolute !important;top:-9999px !important;width:50px !important;height:50px !important;overflow:scroll !important;}.uib-position-body-scrollbar-measure{overflow:scroll !important;}</style>'),angular.$$uibPositionCss=!0}),angular.module("ui.bootstrap.datepickerPopup").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibDatepickerpopupCss&&angular.element(document).find("head").prepend('<style type="text/css">.uib-datepicker-popup.dropdown-menu{display:block;float:none;margin:0;}.uib-button-bar{padding:10px 9px 2px;}</style>'),angular.$$uibDatepickerpopupCss=!0}),angular.module("ui.bootstrap.tooltip").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibTooltipCss&&angular.element(document).find("head").prepend('<style type="text/css">[uib-tooltip-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-popup].tooltip.right-bottom > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.right-bottom > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.right-bottom > .tooltip-arrow,[uib-popover-popup].popover.top-left > .arrow,[uib-popover-popup].popover.top-right > .arrow,[uib-popover-popup].popover.bottom-left > .arrow,[uib-popover-popup].popover.bottom-right > .arrow,[uib-popover-popup].popover.left-top > .arrow,[uib-popover-popup].popover.left-bottom > .arrow,[uib-popover-popup].popover.right-top > .arrow,[uib-popover-popup].popover.right-bottom > .arrow,[uib-popover-html-popup].popover.top-left > .arrow,[uib-popover-html-popup].popover.top-right > .arrow,[uib-popover-html-popup].popover.bottom-left > .arrow,[uib-popover-html-popup].popover.bottom-right > .arrow,[uib-popover-html-popup].popover.left-top > .arrow,[uib-popover-html-popup].popover.left-bottom > .arrow,[uib-popover-html-popup].popover.right-top > .arrow,[uib-popover-html-popup].popover.right-bottom > .arrow,[uib-popover-template-popup].popover.top-left > .arrow,[uib-popover-template-popup].popover.top-right > .arrow,[uib-popover-template-popup].popover.bottom-left > .arrow,[uib-popover-template-popup].popover.bottom-right > .arrow,[uib-popover-template-popup].popover.left-top > .arrow,[uib-popover-template-popup].popover.left-bottom > .arrow,[uib-popover-template-popup].popover.right-top > .arrow,[uib-popover-template-popup].popover.right-bottom > .arrow{top:auto;bottom:auto;left:auto;right:auto;margin:0;}[uib-popover-popup].popover,[uib-popover-html-popup].popover,[uib-popover-template-popup].popover{display:block !important;}</style>'),angular.$$uibTooltipCss=!0}),angular.module("ui.bootstrap.timepicker").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibTimepickerCss&&angular.element(document).find("head").prepend('<style type="text/css">.uib-time input{width:50px;}</style>'),angular.$$uibTimepickerCss=!0}),angular.module("ui.bootstrap.typeahead").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibTypeaheadCss&&angular.element(document).find("head").prepend('<style type="text/css">[uib-typeahead-popup].dropdown-menu{display:block;}</style>'),angular.$$uibTypeaheadCss=!0}),angular.module("ui.bootstrap.ext",["ui.bootstrap"]).config(["uibDatepickerPopupConfig",function(e){e.datetimepickerPopup="dd.MM.yyyy HH:mm",e.showMeridian=!1}]).run(["$templateCache",function(e){e.put("uib/template/datetimepicker/popup.html",'<ul class="uib-datepicker-popup dropdown-menu" dropdown-nested ng-if="isOpen" style="max-height:450px;display: block" ng-style="{top: position.top+\'px\', left: position.left+\'px\'}" ng-keydown="keydown($event)" ng-click="$event.stopPropagation()">\n\t<li ng-transclude></li>\n\t<li style="text-align:center"><div style="display:inline-block;" uib-timepicker ng-model="date" ng-change="dateSelection(date)" readonly-input="$parent.$parent.readonlyInput" show-seconds="$parent.$parent.showSeconds" hour-step="$parent.$parent.hourStep" minute-step="$parent.$parent.minuteStep" show-meridian="$parent.$parent.showMeridian" min="$parent.$parent.min" max="$parent.$parent.max"></div></li>\n\t<li ng-if="showButtonBar" style="padding:10px 9px 2px" class="uib-button-bar">\n\t\t<button type="button" class="btn btn-sm btn-success pull-right uib-close" ng-click="close()">{{ getText(\'close\') }}</button>\n\t</li>\n</ul>\n')}]).directive("uibDatetimepickerPopup",["uibDatepickerPopupConfig",function(e){return{restrict:"A",require:"ngModel",replace:!0,template:'<input uib-datepicker-popup="{{dateFormat}}" close-on-date-selection="false" datepicker-popup-template-url="uib/template/datetimepicker/popup.html">',link:function(t,n,i,r){t.readonlyInput=i.readonlyInput,t.hourStep=i.hourStep||1,t.minuteStep=i.minuteStep||1,t.showMeridian=i.showMeridian||e.showMeridian,t.min=i.min,t.max=i.max,t.showSeconds=i.showSeconds,t.dateFormat=i.uibDatetimepickerPopup||e.datetimepickerPopup||"yyyy-MM-dd HH:mm:ss"}}}]).service("uibDropdownService",["$document","$rootScope",function(e,t){var n,i,r=null;this.open=function(t,a){r||(e.on("click",n),a.on("keydown",i)),r&&r!==t&&(r.isOpen=!1),r=t},this.close=function(t,a){r===t&&(r=null,e.off("click",n),a.off("keydown",i))},n=function(e){var n,i;r&&(e&&"disabled"===r.getAutoClose()||e&&3===e.which||(n=r.getToggleElement(),e&&n&&n[0].contains(e.target)||(i=r.getDropdownElement(),e&&"outsideClick"===r.getAutoClose()&&i&&i[0].contains(e.target)||(r.isOpen=!1,t.$$phase||r.$apply()))))},i=function(e){27===e.which?(e.stopPropagation(),r&&r.focusToggleElement(),n()):r&&r.isKeynavEnabled()&&-1!==[38,40].indexOf(e.which)&&r.isOpen&&(e.preventDefault(),e.stopPropagation(),r.focusDropdownEntry(e.which))}}]).controller("UibDropdownController",["$scope","$element","$attrs","$parse","uibDropdownConfig","uibDropdownService","$animate","$uibPosition","$document","$compile","$templateRequest",function(e,t,n,i,r,a,o,s,l,u,c){var d,p,f=this,h=e.$new(),g=r.appendToOpenClass,m=r.openClass,b=angular.noop,v=n.onToggle?i(n.onToggle):angular.noop,y=!1,w=null,x=!1,$=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&&(w=angular.element(r))}y=angular.isDefined(n.dropdownAppendToBody),x=angular.isDefined(n.keyboardNav),y&&!w&&(w=$),w&&f.dropdownMenu&&(w.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 x},h.focusDropdownEntry=function(e){var n=f.dropdownMenu?angular.element(f.dropdownMenu).find("a"):t.find("ul").eq(0).find("a");switch(e){case 40:angular.isNumber(f.selectedOption)?f.selectedOption=f.selectedOption===n.length-1?f.selectedOption:f.selectedOption+1:f.selectedOption=0;break;case 38:angular.isNumber(f.selectedOption)?f.selectedOption=0===f.selectedOption?0:f.selectedOption-1:f.selectedOption=n.length-1}n[f.selectedOption]&&n[f.selectedOption].focus()},h.getDropdownElement=function(){return f.dropdownMenu},h.focusToggleElement=function(){f.toggleElement&&f.toggleElement[0].focus()},h.$watch("isOpen",function(n,i){var r,l,p,x,$,k,C;w&&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||(x=s.offset(w),l.top=r.top-x.top+"px",p?l.right=window.innerWidth-(r.left-x.left+t.prop("offsetWidth"))+"px":l.left=r.left-x.left+"px"),f.dropdownMenu.css(l)),$=w||t,k=$.hasClass(w?g:m),k===!n&&o[n?"addClass":"removeClass"]($,w?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-all.min.js.map