ace-elements.min.js 30.7 KB
!function(e,t){var a=function(t,a){function i(e){e.preventDefault(),e.stopPropagation();var t=y.offset(),a=t[c],i=v?e.pageY:e.pageX;i>a+z?(z=i-a-A+E,z>j&&(z=j)):(z=i-a-E,0>z&&(z=0)),o.update_scroll()}function n(t){t.preventDefault(),t.stopPropagation(),q=N=v?t.pageY:t.pageX,M=!0,e("html").off("mousemove.ace_scroll").on("mousemove.ace_scroll",s),e(P).off("mouseup.ace_scroll").on("mouseup.ace_scroll",r),y.addClass("active"),H&&o.$element.trigger("drag.start")}function s(e){e.preventDefault(),e.stopPropagation(),q=v?e.pageY:e.pageX,q-N+z>j?q=N+j-z:0>q-N+z&&(q=N-z),z+=q-N,N=q,0>z?z=0:z>j&&(z=j),o.update_scroll()}function r(t){t.preventDefault(),t.stopPropagation(),M=!1,e("html").off(".ace_scroll"),e(P).off(".ace_scroll"),y.removeClass("active"),H&&o.$element.trigger("drag.end")}var o=this,l=e.extend({},e.fn.ace_scroll.defaults,a);this.size=0,this.$element=e(t),this.element=t;var c,d,u,h,f,p,v=!0,g=!1,m=!1,b=!1,_=null,w=null,y=null,x=null,C=null,k=null,$=null,A=0,z=0,j=0,E=0,D=!0,I=!1,T=1,S=!1,M=!1,P="onmouseup"in window?window:"html",H=l.dragEvent||!1,L=a.scrollEvent||!1;this.create=function(t){if(!b){if(t&&(l=e.extend({},e.fn.ace_scroll.defaults,t)),this.size=parseInt(this.$element.attr("data-size"))||l.size||200,v=!l.horizontal,c=v?"top":"left",d=v?"height":"width",u=v?"maxHeight":"maxWidth",h=v?"clientHeight":"clientWidth",f=v?"scrollTop":"scrollLeft",p=v?"scrollHeight":"scrollWidth",this.$element.addClass("ace-scroll "+((v?"":" scroll-hz")+(l.styleClass?" "+l.styleClass:""))),"static"==this.$element.css("position")?(S=this.element.style.position,this.element.style.position="relative"):S=!1,this.$element.wrapInner('<div class="scroll-content" />'),this.$element.prepend('<div class="scroll-track"><div class="scroll-bar"></div></div>'),_=this.$element.find(".scroll-content").eq(0),v||_.wrapInner("<div />"),w=_.get(0),y=this.$element.find(".scroll-track").eq(0),x=y.find(".scroll-bar").eq(0),C=y.get(0),k=x.get(0),$=k.style,y.hide(),y.on("mousedown",i),x.on("mousedown",n),_.on("scroll",function(){D&&(z=parseInt(Math.round(this[f]*T)),$[c]=z+"px"),D=!1,L&&this.$element.trigger("scroll",[w])}),l.mouseWheel){var a=l.mouseWheelLock,s=l.lockAnyway;this.$element.on("mousewheel.ace_scroll DOMMouseScroll.ace_scroll",function(t){if(!g){if(!m)return!s;M&&(M=!1,e("html").off(".ace_scroll"),e(P).off(".ace_scroll"),H&&o.$element.trigger("drag.end"));var i=t.originalEvent.detail<0||t.originalEvent.wheelDelta>0?1:-1,n=!1,r=w[h],l=w[f];a||(n=-1==i?w[p]<=l+r:0==l),o.move_bar(!0);var c=parseInt(Math.round(Math.min(Math.max(r/8,54)),o.size))+1;return w[f]=l-i*c,n&&!s}})}var r=ace.vars.touch&&"ace_drag"in e.event.special&&l.touchDrag;if(r){var A="",j=r?"ace_drag":"swipe";this.$element.on(j+".ace_scroll",function(e){if(g)return void(e.retval.cancel=!0);if(!m)return void(e.retval.cancel=s);if(A=e.direction,v&&("up"==A||"down"==A)||!v&&("left"==A||"right"==A)){var t=v?e.dy:e.dx;0!=t&&(Math.abs(t)>20&&r&&(t=2*t),o.move_bar(!0),w[f]=w[f]+t)}})}l.hoverReset&&this.$element.on("mouseenter.ace_scroll touchstart.ace_scroll",function(){o.reset()}),v||_.children(0).css(d,this.size),_.css(u,this.size),g=!1,b=!0}},this.is_active=function(){return m},this.is_enabled=function(){return!g},this.move_bar=function(e){D=e},this.reset=function(){if(!g){b||this.create();var e=v?w[p]:this.size;if(v&&0==e||!v&&0==this.element.scrollWidth)return void this.$element.removeClass("scroll-active");var t=v?this.size:w.clientWidth;v||_.children(0).css(d,this.size),_.css(u,this.size),e>t?(m=!0,y.css(d,t).show(),T=parseFloat((t/e).toFixed(5)),A=parseInt(Math.round(t*T)),E=parseInt(Math.round(A/2)),j=t-A,z=parseInt(Math.round(w[f]*T)),$[d]=A+"px",$[c]=z+"px",this.$element.addClass("scroll-active"),I||(l.reset&&(w[f]=0,$[c]=0),I=!0)):(m=!1,y.hide(),this.$element.removeClass("scroll-active"),_.css(u,""))}},this.disable=function(){return w[f]=0,$[c]=0,g=!0,m=!1,y.hide(),this.$element.removeClass("scroll-active"),_.css(u,""),this},this.enable=function(){return g=!1,this.reset(),this},this.destroy=function(){return m=!1,g=!1,b=!1,this.$element.removeClass("ace-scroll scroll-hz"+(l.extraClass?" "+l.extraClass:"")),this.$element.off(".ace_scroll"),v||_.find("> div").children().unwrap(),_.children().unwrap(),_.remove(),y.remove(),S!==!1&&(this.element.style.position=S),this},this.modify=function(t){return t&&(l=e.extend({},e.fn.ace_scroll.defaults,t)),this.destroy(),this.create(),this.reset(),this},this.update=function(e){return this.size=e.size,this},this.update_scroll=function(){D=!1,$[c]=z+"px",w[f]=parseInt(Math.round(z/T))};var N=-1,q=-1;return this.create(),this.reset(),this};e.fn.ace_scroll=function(i,n){var s,r=this.each(function(){var t=e(this),r=t.data("ace_scroll"),o="object"==typeof i&&i;r||t.data("ace_scroll",r=new a(this,o)),"string"==typeof i&&(s=r[i](n))});return s===t?r:s},e.fn.ace_scroll.defaults={size:200,horizontal:!1,mouseWheel:!0,mouseWheelLock:!1,lockAnyway:!1,styleClass:!1,hoverReset:!0,reset:!1,dragEvent:!1,touchDrag:!0,touchSwipe:!1,scrollEvent:!1}}(window.jQuery),function(e,t){var a=function(t,a){var i=e.extend({},e.fn.ace_colorpicker.defaults,a),n=e(t),s="",r="",o=null,l=[];n.addClass("hide").find("option").each(function(){var e="colorpick-btn",t=this.value.replace(/[^\w\s,#\(\)\.]/g,"");this.value!=t&&(this.value=t),this.selected&&(e+=" selected",r=t),l.push(t),s+='<li><a class="'+e+'" href="#" style="background-color:'+t+';" data-color="'+t+'"></a></li>'}).end().on("change.color",function(){n.next().find(".btn-colorpicker").css("background-color",this.value)}).after('<div class="dropdown dropdown-colorpicker">		<a data-toggle="dropdown" class="dropdown-toggle" '+(i.auto_pos?'data-position="auto"':"")+' href="#"><span class="btn-colorpicker" style="background-color:'+r+'"></span></a><ul class="dropdown-menu'+(i.caret?" dropdown-caret":"")+(i.pull_right?" dropdown-menu-right":"")+'">'+s+"</ul></div>");var c=n.next().find(".dropdown-menu");c.on(ace.click_event,function(t){var a=e(t.target);if(!a.is(".colorpick-btn"))return!1;o&&o.removeClass("selected"),o=a,o.addClass("selected");var i=o.data("color");return n.val(i).trigger("change"),t.preventDefault(),!0}),o=n.next().find("a.selected"),this.pick=function(a,i){if("number"==typeof a){if(a>=l.length)return;t.selectedIndex=a,c.find("a:eq("+a+")").trigger(ace.click_event)}else if("string"==typeof a){var s=a.replace(/[^\w\s,#\(\)\.]/g,"");if(a=l.indexOf(s),-1==a&&i===!0&&(l.push(s),e("<option />").appendTo(n).val(s),e('<li><a class="colorpick-btn" href="#"></a></li>').appendTo(c).find("a").css("background-color",s).data("color",s),a=l.length-1),-1==a)return;c.find("a:eq("+a+")").trigger(ace.click_event)}},this.destroy=function(){n.removeClass("hide").off("change.color").next().remove(),l=[]}};e.fn.ace_colorpicker=function(i,n){var s,r=this.each(function(){var t=e(this),r=t.data("ace_colorpicker"),o="object"==typeof i&&i;r||t.data("ace_colorpicker",r=new a(this,o)),"string"==typeof i&&(s=r[i](n))});return s===t?r:s},e.fn.ace_colorpicker.defaults={pull_right:!1,caret:!0,auto_pos:!0}}(window.jQuery),function(e,t){var a="multiple"in document.createElement("INPUT"),i="FileList"in window,n="FileReader"in window,s="File"in window,r=function(t,a){var i=this;this.settings=e.extend({},e.fn.ace_file_input.defaults,a),this.$element=e(t),this.element=t,this.disabled=!1,this.can_reset=!0,this.$element.off("change.ace_inner_call").on("change.ace_inner_call",function(e,t){return i.disabled||t===!0?void 0:l.call(i)});var n=this.$element.closest("label").css({display:"block"}),s=0==n.length?"label":"span";this.$element.wrap("<"+s+' class="ace-file-input" />'),this.apply_settings(),this.reset_input_field()};r.error={FILE_LOAD_FAILED:1,IMAGE_LOAD_FAILED:2,THUMBNAIL_FAILED:3},r.prototype.apply_settings=function(){var t=this;this.multi=this.$element.attr("multiple")&&a,this.well_style="well"==this.settings.style,this.well_style?this.$element.parent().addClass("ace-file-multiple"):this.$element.parent().removeClass("ace-file-multiple"),this.$element.parent().find(":not(input[type=file])").remove(),this.$element.after('<span class="ace-file-container" data-title="'+this.settings.btn_choose+'"><span class="ace-file-name" data-title="'+this.settings.no_file+'">'+(this.settings.no_icon?'<i class="'+ace.vars.icon+this.settings.no_icon+'"></i>':"")+"</span></span>"),this.$label=this.$element.next(),this.$container=this.$element.closest(".ace-file-input");var n=!!this.settings.icon_remove;if(n){var s=e('<a class="remove" href="#"><i class="'+ace.vars.icon+this.settings.icon_remove+'"></i></a>').appendTo(this.$element.parent());s.on(ace.click_event,function(e){if(e.preventDefault(),!t.can_reset)return!1;var a=!0;if(t.settings.before_remove&&(a=t.settings.before_remove.call(t.element)),!a)return!1;t.reset_input();return!1})}this.settings.droppable&&i&&o.call(this)},r.prototype.show_file_list=function(t){var a="undefined"==typeof t?this.$element.data("ace_input_files"):t;if(a&&0!=a.length){this.well_style&&(this.$label.find(".ace-file-name").remove(),this.settings.btn_change||this.$label.addClass("hide-placeholder")),this.$label.attr("data-title",this.settings.btn_change).addClass("selected");for(var i=0;i<a.length;i++){var s="string"==typeof a[i]?a[i]:e.trim(a[i].name),r=s.lastIndexOf("\\")+1;0==r&&(r=s.lastIndexOf("/")+1),s=s.substr(r);var o="fa fa-file",l="file";if(/\.(jpe?g|png|gif|svg|bmp|tiff?)$/i.test(s)?(o="fa fa-picture-o file-image",l="image"):/\.(mpe?g|flv|mov|avi|swf|mp4|mkv|webm|wmv|3gp)$/i.test(s)?(o="fa fa-film file-video",l="video"):/\.(mp3|ogg|wav|wma|amr|aac)$/i.test(s)&&(o="fa fa-music file-audio",l="audio"),this.well_style){this.$label.append('<span class="ace-file-name" data-title="'+s+'"><i class="'+ace.vars.icon+o+'"></i></span>');var d=e.trim(a[i].type),u=n&&this.settings.thumbnail&&(d.length>0&&d.match("image")||0==d.length&&"image"==l);if(u){var h=this;e.when(c.call(this,a[i])).fail(function(e){h.settings.preview_error&&h.settings.preview_error.call(h,s,e.code)})}}else this.$label.find(".ace-file-name").attr({"data-title":s}).find(ace.vars[".icon"]).attr("class",ace.vars.icon+o)}return!0}},r.prototype.reset_input=function(){this.reset_input_ui(),this.reset_input_field()},r.prototype.reset_input_ui=function(){this.$label.attr({"data-title":this.settings.btn_choose,"class":"ace-file-container"}).find(".ace-file-name:first").attr({"data-title":this.settings.no_file,"class":"ace-file-name"}).find(ace.vars[".icon"]).attr("class",ace.vars.icon+this.settings.no_icon).prev("img").remove(),this.settings.no_icon||this.$label.find(ace.vars[".icon"]).remove(),this.$label.find(".ace-file-name").not(":first").remove(),this.reset_input_data()},r.prototype.reset_input_field=function(){this.$element.wrap("<form>").parent().get(0).reset(),this.$element.unwrap()},r.prototype.reset_input_data=function(){this.$element.data("ace_input_files")&&(this.$element.removeData("ace_input_files"),this.$element.removeData("ace_input_method"))},r.prototype.enable_reset=function(e){this.can_reset=e},r.prototype.disable=function(){this.disabled=!0,this.$element.attr("disabled","disabled").addClass("disabled")},r.prototype.enable=function(){this.disabled=!1,this.$element.removeAttr("disabled").removeClass("disabled")},r.prototype.files=function(){return e(this).data("ace_input_files")||null},r.prototype.method=function(){return e(this).data("ace_input_method")||""},r.prototype.update_settings=function(t){this.settings=e.extend({},this.settings,t),this.apply_settings()},r.prototype.loading=function(t){if(t===!1)this.$container.find(".ace-file-overlay").remove(),this.element.removeAttribute("readonly");else{var a="string"==typeof t?t:'<i class="overlay-content fa fa-spin fa-spinner orange2 fa-2x"></i>',i=this.$container.find(".ace-file-overlay");0==i.length&&(i=e('<div class="ace-file-overlay"></div>').appendTo(this.$container),i.on("click tap",function(e){return e.stopImmediatePropagation(),e.preventDefault(),!1}),this.element.setAttribute("readonly","true")),i.empty().append(a)}};var o=function(){var e=this,t=this.$element.parent();t.off("dragenter").on("dragenter",function(e){e.preventDefault(),e.stopPropagation()}).off("dragover").on("dragover",function(e){e.preventDefault(),e.stopPropagation()}).off("drop").on("drop",function(t){if(t.preventDefault(),t.stopPropagation(),!e.disabled){var a=t.originalEvent.dataTransfer,i=a.files;if(!e.multi&&i.length>1){var n=[];n.push(i[0]),i=n}return i=u.call(e,i,!0),i===!1?!1:(e.$element.data("ace_input_method","drop"),e.$element.data("ace_input_files",i),e.show_file_list(i),e.$element.triggerHandler("change",[!0]),!0)}})},l=function(){var e=this.element.files||[this.element.value];return e=u.call(this,e,!1),e===!1?!1:(this.$element.data("ace_input_method","select"),this.$element.data("ace_input_files",e),this.show_file_list(e),!0)},c=function(t){var a=this,i=a.$label.find(".ace-file-name:last"),n=new e.Deferred,s=new FileReader;return s.onload=function(s){i.prepend("<img class='middle' style='display:none;' />");var o=i.find("img:last").get(0);e(o).one("load",function(){var s=50;"large"==a.settings.thumbnail?s=150:"fit"==a.settings.thumbnail&&(s=i.width()),i.addClass(s>50?"large":"");var l=d(o,s,t.type);if(null==l)return e(this).remove(),void n.reject({code:r.error.THUMBNAIL_FAILED});var c=l.w,u=l.h;"small"==a.settings.thumbnail&&(c=u=s),e(o).css({"background-image":"url("+l.src+")",width:c,height:u}).data("thumb",l.src).attr({src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg=="}).show(),n.resolve()}).one("error",function(){i.find("img").remove(),n.reject({code:r.error.IMAGE_LOAD_FAILED})}),o.src=s.target.result},s.onerror=function(){n.reject({code:r.error.FILE_LOAD_FAILED})},s.readAsDataURL(t),n.promise()},d=function(t,a){var i=t.width,n=t.height;i=i>0?i:e(t).width(),n=n>0?n:e(t).height(),(i>a||n>a)&&(i>n?(n=parseInt(a/i*n),i=a):(i=parseInt(a/n*i),n=a));var s;try{var r=document.createElement("canvas");r.width=i,r.height=n;var o=r.getContext("2d");o.drawImage(t,0,0,t.width,t.height,0,0,i,n),s=r.toDataURL()}catch(l){s=null}return s?(/^data\:image\/(png|jpe?g|gif);base64,[0-9A-Za-z\+\/\=]+$/.test(s)||(s=null),s?{src:s,w:i,h:n}:null):null},u=function(e,t){var a=p.call(this,e,t);return-1===a?(this.reset_input(),!1):a&&0!=a.length?((a instanceof Array||i&&a instanceof FileList)&&(e=a),a=!0,this.settings.before_change&&(a=this.settings.before_change.call(this.element,e,t)),-1===a?(this.reset_input(),!1):a&&0!=a.length?((a instanceof Array||i&&a instanceof FileList)&&(e=a),e):(this.$element.data("ace_input_files")||this.reset_input(),!1)):(this.$element.data("ace_input_files")||this.reset_input(),!1)},h=function(e){return e?("string"==typeof e&&(e=[e]),0==e.length?null:new RegExp(".(?:"+e.join("|")+")$","i")):null},f=function(e){return e?("string"==typeof e&&(e=[e]),0==e.length?null:new RegExp("^(?:"+e.join("|").replace(/\//g,"\\/")+")$","i")):null},p=function(t,a){var i=h(this.settings.allowExt),n=h(this.settings.denyExt),r=f(this.settings.allowMime),o=f(this.settings.denyMime),l=this.settings.maxSize||!1;if(!(i||n||r||o||l))return!0;for(var c=[],d={},u=0;u<t.length;u++){var p=t[u],v=s?p.name:p;if(!i||i.test(v))if(n&&n.test(v))"ext"in d||(d.ext=[]),d.ext.push(v);else{var g;if(s){if((g=e.trim(p.type)).length>0){if(r&&!r.test(g)){"mime"in d||(d.mime=[]),d.mime.push(v);continue}if(o&&o.test(g)){"mime"in d||(d.mime=[]),d.mime.push(v);continue}}l&&p.size>l?("size"in d||(d.size=[]),d.size.push(v)):c.push(p)}else c.push(p)}else"ext"in d||(d.ext=[]),d.ext.push(v)}if(c.length==t.length)return t;var m={ext:0,mime:0,size:0};"ext"in d&&(m.ext=d.ext.length),"mime"in d&&(m.mime=d.mime.length),"size"in d&&(m.size=d.size.length);var b;return this.$element.trigger(b=new e.Event("file.error.ace"),{file_count:t.length,invalid_count:t.length-c.length,error_list:d,error_count:m,dropped:a}),b.isDefaultPrevented()?-1:c};e.fn.ace_file_input=function(a,i){var n,s=this.each(function(){var t=e(this),s=t.data("ace_file_input"),o="object"==typeof a&&a;s||t.data("ace_file_input",s=new r(this,o)),"string"==typeof a&&(n=s[a](i))});return n===t?s:n},e.fn.ace_file_input.defaults={style:!1,no_file:"No File ...",no_icon:"fa fa-upload",btn_choose:"Choose",btn_change:"Change",icon_remove:"fa fa-times",droppable:!1,thumbnail:!1,allowExt:null,denyExt:null,allowMime:null,denyMime:null,maxSize:!1,before_change:null,before_remove:null,preview_error:null}}(window.jQuery),!function(e){"use strict";var t=function(t,a){this.$element=e(t),this.options=e.extend({},e.fn.bs_typeahead.defaults,a),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.source=this.options.source,this.$menu=e(this.options.menu),this.shown=!1,this.listen()};t.prototype={constructor:t,select:function(){var e=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(e)).change(),this.hide()},updater:function(e){return e},show:function(){var t=e.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return this.$menu.insertAfter(this.$element).css({top:t.top+t.height,left:t.left}).show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(){var t;return this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(t=e.isFunction(this.source)?this.source(this.query,e.proxy(this.process,this)):this.source,t?this.process(t):this)},process:function(t){var a=this;return t=e.grep(t,function(e){return a.matcher(e)}),t=this.sorter(t),t.length?this.render(t.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(e){return~e.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(e){for(var t,a=[],i=[],n=[];t=e.shift();)t.toLowerCase().indexOf(this.query.toLowerCase())?~t.indexOf(this.query)?i.push(t):n.push(t):a.push(t);return a.concat(i,n)},highlighter:function(e){var t=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return e.replace(new RegExp("("+t+")","ig"),function(e,t){return"<strong>"+t+"</strong>"})},render:function(t){var a=this;return t=e(t).map(function(t,i){return t=e(a.options.item).attr("data-value",i),t.find("a").html(a.highlighter(i)),t[0]}),t.first().addClass("active"),this.$menu.html(t),this},next:function(){var t=this.$menu.find(".active").removeClass("active"),a=t.next();a.length||(a=e(this.$menu.find("li")[0])),a.addClass("active")},prev:function(){var e=this.$menu.find(".active").removeClass("active"),t=e.prev();t.length||(t=this.$menu.find("li").last()),t.addClass("active")},listen:function(){this.$element.on("focus",e.proxy(this.focus,this)).on("blur",e.proxy(this.blur,this)).on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",e.proxy(this.keydown,this)),this.$menu.on("click",e.proxy(this.click,this)).on("mouseenter","li",e.proxy(this.mouseenter,this)).on("mouseleave","li",e.proxy(this.mouseleave,this))},eventSupported:function(e){var t=e in this.$element;return t||(this.$element.setAttribute(e,"return;"),t="function"==typeof this.$element[e]),t},move:function(e){if(this.shown){switch(e.keyCode){case 9:case 13:case 27:e.preventDefault();break;case 38:e.preventDefault(),this.prev();break;case 40:e.preventDefault(),this.next()}e.stopPropagation()}},keydown:function(t){this.suppressKeyPressRepeat=~e.inArray(t.keyCode,[40,38,9,13,27]),this.move(t)},keypress:function(e){this.suppressKeyPressRepeat||this.move(e)},keyup:function(e){switch(e.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}e.stopPropagation(),e.preventDefault()},focus:function(){this.focused=!0},blur:function(){this.focused=!1,!this.mousedover&&this.shown&&this.hide()},click:function(e){e.stopPropagation(),e.preventDefault(),this.select(),this.$element.focus()},mouseenter:function(t){this.mousedover=!0,this.$menu.find(".active").removeClass("active"),e(t.currentTarget).addClass("active")},mouseleave:function(){this.mousedover=!1,!this.focused&&this.shown&&this.hide()}};var a=e.fn.bs_typeahead;e.fn.bs_typeahead=function(a){return this.each(function(){var i=e(this),n=i.data("bs_typeahead"),s="object"==typeof a&&a;n||i.data("bs_typeahead",n=new t(this,s)),"string"==typeof a&&n[a]()})},e.fn.bs_typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1},e.fn.bs_typeahead.Constructor=t,e.fn.bs_typeahead.noConflict=function(){return e.fn.bs_typeahead=a,this},e(document).on("focus.bs_typeahead.data-api",'[data-provide="bs_typeahead"]',function(){var t=e(this);t.data("bs_typeahead")||t.bs_typeahead(t.data())})}(window.jQuery),function(e){e.fn.ace_wysiwyg=function(t){var a=e.extend({speech_button:!0,wysiwyg:{}},t),i=["#ac725e","#d06b64","#f83a22","#fa573c","#ff7537","#ffad46","#42d692","#16a765","#7bd148","#b3dc6c","#fbe983","#fad165","#92e1c0","#9fe1e7","#9fc6e7","#4986e7","#9a9cff","#b99aff","#c2c2c2","#cabdbf","#cca6ac","#f691b2","#cd74e6","#a47ae2","#444444"],n={font:{values:["Arial","Courier","Comic Sans MS","Helvetica","Open Sans","Tahoma","Verdana"],icon:"fa fa-font",title:"Font"},fontSize:{values:{5:"Huge",3:"Normal",1:"Small"},icon:"fa fa-text-height",title:"Font Size"},bold:{icon:"fa fa-bold",title:"Bold (Ctrl/Cmd+B)"},italic:{icon:"fa fa-italic",title:"Italic (Ctrl/Cmd+I)"},strikethrough:{icon:"fa fa-strikethrough",title:"Strikethrough"},underline:{icon:"fa fa-underline",title:"Underline"},insertunorderedlist:{icon:"fa fa-list-ul",title:"Bullet list"},insertorderedlist:{icon:"fa fa-list-ol",title:"Number list"},outdent:{icon:"fa fa-outdent",title:"Reduce indent (Shift+Tab)"},indent:{icon:"fa fa-indent",title:"Indent (Tab)"},justifyleft:{icon:"fa fa-align-left",title:"Align Left (Ctrl/Cmd+L)"},justifycenter:{icon:"fa fa-align-center",title:"Center (Ctrl/Cmd+E)"},justifyright:{icon:"fa fa-align-right",title:"Align Right (Ctrl/Cmd+R)"},justifyfull:{icon:"fa fa-align-justify",title:"Justify (Ctrl/Cmd+J)"},createLink:{icon:"fa fa-link",title:"Hyperlink",button_text:"Add",placeholder:"URL",button_class:"btn-primary"},unlink:{icon:"fa fa-chain-broken",title:"Remove Hyperlink"},insertImage:{icon:"fa fa-picture-o",title:"Insert picture",button_text:'<i class="'+ace.vars.icon+'fa fa-file"></i> Choose Image &hellip;',placeholder:"Image URL",button_insert:"Insert",button_class:"btn-success",button_insert_class:"btn-primary",choose_file:!0},foreColor:{values:i,title:"Change Color"},backColor:{values:i,title:"Change Background Color"},undo:{icon:"fa fa-undo",title:"Undo (Ctrl/Cmd+Z)"},redo:{icon:"fa fa-repeat",title:"Redo (Ctrl/Cmd+Y)"},viewSource:{icon:"fa fa-code",title:"View Source"}},s=a.toolbar||["font",null,"fontSize",null,"bold","italic","strikethrough","underline",null,"insertunorderedlist","insertorderedlist","outdent","indent",null,"justifyleft","justifycenter","justifyright","justifyfull",null,"createLink","unlink",null,"insertImage",null,"foreColor",null,"undo","redo",null,"viewSource"];return this.each(function(){var t=' <div class="wysiwyg-toolbar btn-toolbar center"> <div class="btn-group"> ';for(var i in s)if(s.hasOwnProperty(i)){var r=s[i];if(null===r){t+=' </div> <div class="btn-group"> ';continue}if("string"==typeof r&&r in n)r=n[r],r.name=s[i];else{if(!("object"==typeof r&&r.name in n))continue;r=e.extend(n[r.name],r)}var o="className"in r?r.className:"btn-default";switch(r.name){case"font":t+=' <a class="btn btn-sm '+o+' dropdown-toggle" data-toggle="dropdown" title="'+r.title+'"><i class="'+ace.vars.icon+r.icon+'"></i><i class="'+ace.vars.icon+'fa fa-angle-down icon-on-right"></i></a> ',t+=' <ul class="dropdown-menu dropdown-light dropdown-caret">';for(var l in r.values)r.values.hasOwnProperty(l)&&(t+=' <li><a data-edit="fontName '+r.values[l]+'" style="font-family:\''+r.values[l]+"'\">"+r.values[l]+"</a></li> ");t+=" </ul>";break;case"fontSize":t+=' <a class="btn btn-sm '+o+' dropdown-toggle" data-toggle="dropdown" title="'+r.title+'"><i class="'+ace.vars.icon+r.icon+'"></i>&nbsp;<i class="'+ace.vars.icon+'fa fa-angle-down icon-on-right"></i></a> ',t+=' <ul class="dropdown-menu dropdown-light dropdown-caret"> ';for(var c in r.values)r.values.hasOwnProperty(c)&&(t+=' <li><a data-edit="fontSize '+c+'"><font size="'+c+'">'+r.values[c]+"</font></a></li> ");t+=" </ul> ";break;case"createLink":t+=' <div class="btn-group"> <a class="btn btn-sm '+o+' dropdown-toggle" data-toggle="dropdown" title="'+r.title+'"><i class="'+ace.vars.icon+r.icon+'"></i></a> ',t+=' <div class="dropdown-menu dropdown-caret dropdown-menu-right">							 <div class="input-group">								<input class="form-control" placeholder="'+r.placeholder+'" type="text" data-edit="'+r.name+'" />								<span class="input-group-btn">									<button class="btn btn-sm '+r.button_class+'" type="button">'+r.button_text+"</button>								</span>							 </div>						</div> </div>";break;case"insertImage":t+=' <div class="btn-group"> <a class="btn btn-sm '+o+' dropdown-toggle" data-toggle="dropdown" title="'+r.title+'"><i class="'+ace.vars.icon+r.icon+'"></i></a> ',t+=' <div class="dropdown-menu dropdown-caret dropdown-menu-right">							 <div class="input-group">								<input class="form-control" placeholder="'+r.placeholder+'" type="text" data-edit="'+r.name+'" />								<span class="input-group-btn">									<button class="btn btn-sm '+r.button_insert_class+'" type="button">'+r.button_insert+"</button>								</span>							 </div>",r.choose_file&&"FileReader"in window&&(t+='<div class="space-2"></div>							 <label class="center block no-margin-bottom">								<button class="btn btn-sm '+r.button_class+' wysiwyg-choose-file" type="button">'+r.button_text+'</button>								<input type="file" data-edit="'+r.name+'" />							  </label>'),t+=" </div> </div>";break;case"foreColor":case"backColor":t+=' <select class="hide wysiwyg_colorpicker" title="'+r.title+'"> ';for(var d in r.values)t+=' <option value="'+r.values[d]+'">'+r.values[d]+"</option> ";t+=" </select> ",t+=' <input style="display:none;" disabled class="hide" type="text" data-edit="'+r.name+'" /> ';break;case"viewSource":t+=' <a class="btn btn-sm '+o+'" data-view="source" title="'+r.title+'"><i class="'+ace.vars.icon+r.icon+'"></i></a> ';break;default:t+=' <a class="btn btn-sm '+o+'" data-edit="'+r.name+'" title="'+r.title+'"><i class="'+ace.vars.icon+r.icon+'"></i></a> '}}t+=" </div> ";var u;a.speech_button&&"onwebkitspeechchange"in(u=document.createElement("input"))&&(t+=' <input class="wysiwyg-speech-input" type="text" data-edit="inserttext" x-webkit-speech />'),u=null,t+=" </div> ",t=a.toolbar_place?a.toolbar_place.call(this,t):e(this).before(t).prev(),t.find("a[title]").tooltip({animation:!1,container:"body"}),t.find(".dropdown-menu input[type=text]").on("click",function(){return!1}).on("change",function(){e(this).closest(".dropdown-menu").siblings(".dropdown-toggle").dropdown("toggle")}).on("keydown",function(t){27==t.which?(this.value="",e(this).change()):13==t.which&&(t.preventDefault(),t.stopPropagation(),e(this).change())}),t.find("input[type=file]").prev().on(ace.click_event,function(){e(this).next().click()}),t.find(".wysiwyg_colorpicker").each(function(){e(this).ace_colorpicker({pull_right:!0}).change(function(){e(this).nextAll("input").eq(0).val(this.value).change()}).next().find(".btn-colorpicker").tooltip({title:this.title,animation:!1,container:"body"})});var h=e(this),f=!1;t.find("a[data-view=source]").on("click",function(t){if(t.preventDefault(),f){var a=h.next();h.html(a.val()).show(),a.remove(),e(this).removeClass("active")}else e("<textarea />").css({width:h.outerWidth(),height:h.outerHeight()}).val(h.html()).insertAfter(h),h.hide(),e(this).addClass("active");f=!f});var p=e.extend({},{activeToolbarClass:"active",toolbarSelector:t},a.wysiwyg||{});e(this).wysiwyg(p)}),this}}(window.jQuery),function(e,t){function a(t,a){var i=a.max;i=(""+i).length;var n=parseInt(Math.max(20*i+40,90)),s=e(t);s.addClass("spinner-input form-control").wrap('<div class="ace-spinner">');var r=s.closest(".ace-spinner").spinner(a).wrapInner("<div class='input-group'></div>"),o=r.data("spinner");a.on_sides?(s.before('<div class="spinner-buttons input-group-btn">					<button type="button" class="btn spinner-down btn-xs '+a.btn_down_class+'">						<i class="'+ace.vars.icon+a.icon_down+'"></i>					</button>				</div>').after('<div class="spinner-buttons input-group-btn">					<button type="button" class="btn spinner-up btn-xs '+a.btn_up_class+'">						<i class="'+ace.vars.icon+a.icon_up+'"></i>					</button>				</div>'),r.addClass("touch-spinner"),r.css("width",n+"px")):(s.after('<div class="spinner-buttons input-group-btn">					<button type="button" class="btn spinner-up btn-xs '+a.btn_up_class+'">						<i class="'+ace.vars.icon+a.icon_up+'"></i>					</button>					<button type="button" class="btn spinner-down btn-xs '+a.btn_down_class+'">						<i class="'+ace.vars.icon+a.icon_down+'"></i>					</button>				</div>'),ace.vars.touch||a.touch_spinner?(r.addClass("touch-spinner"),r.css("width",n+"px")):(s.next().addClass("btn-group-vertical"),r.css("width",n+"px"))),s.on("mousewheel.spinner DOMMouseScroll.spinner",function(e){var t=e.originalEvent.detail<0||e.originalEvent.wheelDelta>0?1:-1;return o.step(t>0),o.triggerChangedEvent(),!1}),r.on("changed",function(){s.trigger("change")}),this._call=function(e,t){o[e](t)}}e.fn.ace_spinner=function(i,n){var s,r=this.each(function(){var t=e(this),r=t.data("ace_spinner"),o="object"==typeof i&&i;r||(o=e.extend({},e.fn.ace_spinner.defaults,i),t.data("ace_spinner",r=new a(this,o))),"string"==typeof i&&(s=r._call(i,n))});return s===t?r:s},e.fn.ace_spinner.defaults={icon_up:"fa fa-chevron-up",icon_down:"fa fa-chevron-down",on_sides:!1,btn_up_class:"",btn_down_class:"",max:999,touch_spinner:!1}}(window.jQuery),function(e){var t={"open-icon":ace.vars.icon+"fa fa-folder-open","close-icon":ace.vars.icon+"fa fa-folder",selectable:!0,"selected-icon":ace.vars.icon+"fa fa-check","unselected-icon":ace.vars.icon+"fa fa-times"};e.fn.ace_tree=function(a){return t=e.extend({},t,a),this.each(function(){var a=e(this);a.html('<div class="tree-folder" style="display:none;">				<div class="tree-folder-header">					<i class="'+ace.vars.icon+t["close-icon"]+'"></i>					<div class="tree-folder-name"></div>				</div>				<div class="tree-folder-content"></div>				<div class="tree-loader" style="display:none"></div>			</div>			<div class="tree-item" style="display:none;">				'+(null==t["unselected-icon"]?"":'<i class="'+ace.vars.icon+t["unselected-icon"]+'"></i>')+'				<div class="tree-item-name"></div>			</div>'),a.addClass(1==t.selectable?"tree-selectable":"tree-unselectable"),a.tree(t)}),this}}(window.jQuery),function(e){e.fn.ace_wizard=function(t){return this.each(function(){var a=e(this);a.wizard();var i=a.siblings(".wizard-actions").eq(0),n=a.data("wizard");n.$prevBtn.remove(),n.$nextBtn.remove(),n.$prevBtn=i.find(".btn-prev").eq(0).on(ace.click_event,function(){n.previous()}).attr("disabled","disabled"),n.$nextBtn=i.find(".btn-next").eq(0).on(ace.click_event,function(){n.next()}).removeAttr("disabled"),n.nextText=n.$nextBtn.text();var s=t&&(t.selectedItem&&t.selectedItem.step||t.step);s&&(n.currentStep=s,n.setState())}),this}}(window.jQuery);