b0y-101 Mini Shell


Current Path : E:/www/instructor/teacher09/components/com_jce/editor/libraries/js/
File Upload :
Current File : E:/www/instructor/teacher09/components/com_jce/editor/libraries/js/filebrowser.min.js

/* jce - 2.9.4 | 2021-03-16 | https://www.joomlacontenteditor.net | Copyright (C) 2006 - 2021 Ryan Demmer. All rights reserved | GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html */
!function($,Wf){var Tree=function(element,options){this.element=element,this.options=$.extend({collapseTree:!1,charLength:!1},options),this._init()},scrollEvents="click.scroll mousedown.scroll wheel.scroll mousewheel.scroll keyup.scroll touchmove.scroll";Tree.prototype={_trigger:function(ev,args){$(this.element).trigger("tree:"+ev,args)},_init:function(){var self=this;this.element&&(this._trigger("init",function(){self.nodeEvents()}),$(this.element).on(scrollEvents,function(){$(this).stop()}))},nodeEvents:function(parent){var self=this;parent||(parent=this.element),$("ul:first",parent).attr({role:"tree"}).addClass("uk-tree").children("li").attr("aria-level",1),$(".uk-tree",parent).on("click",function(e){var n=e.target,p=$(n).parents("li").get(0);e.preventDefault(),e.stopPropagation(),$(n).hasClass("uk-icon")&&(n=n.parentNode),$(n).hasClass("uk-tree-toggle")?self.toggleNode(e,p):self._trigger("nodeclick",[e,p]),$(self.element).find(".uk-tree-active").removeClass("uk-tree-active"),$(p).addClass("uk-tree-active")}),$("li",parent).attr({role:"treeitem"}).attr("aria-expanded",function(){return!!$(this).hasClass("uk-tree-open")}).attr("aria-level",function(i,v){if(!v)return parseFloat($(this.parentNode.parentNode).attr("aria-level"))+1}),$("li",parent).find(".uk-tree-row").attr("role","presentation").prepend('<span class="uk-tree-toggle" role="presentation"><i class="uk-icon uk-icon-caret-right"></i><i class="uk-icon uk-icon-caret-down"></i></span>'),$("li",parent).not(".uk-tree-root").find(".uk-tree-icon").attr("role","presentation").append('<i class="uk-icon uk-icon-folder"></i><i class="uk-icon uk-icon-folder-open"></i>')},_hasNodes:function(parent){"string"==$.type(parent)&&(parent=this._findParent(parent));var c=$("li",parent);return c.length>1||1==c.length&&!$(c).is(":empty")},_isNode:function(id,parent){var n=this._findNode(id,parent);return!!n.length},_getNode:function(parent){return"string"===$.type(parent)&&(parent=this._findParent(parent)),$(".uk-tree-node",parent)},_resetNodes:function(){$("li",this.element).removeClass("uk-tree-open")},renameNode:function(id,name){var parent=Wf.String.dirname(id),node=this._findNode(id,parent);$(node).attr("data-id",name),$("a:first .uk-tree-text",node).text(Wf.String.basename(name)),$('li[data-id^="'+this._escape(encodeURI(id))+'"]',node).each(function(n){var nt=$(n).attr("data-id");$(n).attr("data-id",nt.replace(id,name))})},removeNode:function(id){var parent=Wf.String.dirname(id),node=this._findNode(id,parent),ul=$(node).parent("ul");$(node).remove(),ul&&!this._hasNodes(ul)&&$(ul).remove()},sortNodes:function(parent){var p=$(parent).parent();parent=$(parent).detach();var list=$("li",parent).map(function(){var v=$(".uk-tree-text",this).attr("title");return{value:v,element:this}}).get();list.sort(function(a,b){var valueA=a.value||"",valueB=b.value||"";return valueA.localeCompare(valueB)}),$.each(list,function(i,item){$(parent).append(item.element)}),$(p).append(parent)},createNode:function(nodes,parent,sortNodes){var self=this;if(nodes.length)if(parent||(parent=Wf.String.dirname($(nodes[0]).attr("data-id")||$(nodes[0]).attr("id"))),"string"==$.type(parent)&&(parent=this._findParent(parent)),nodes=$.grep(nodes,function(node){return 0===self._findNode(node.id,parent).length}),$(this.element).find(".uk-tree-active").removeClass("uk-tree-active"),nodes&&nodes.length){var ul=$(".uk-tree-node:first",parent)||null;ul.length||(ul=document.createElement("ul"),$(ul).attr({role:"group"}).addClass("uk-tree-node").append('<li role="treeitem" aria-expanded="false"></li>'),$(parent).append(ul)),$.each(nodes,function(i,node){if(self._isNode(node.id,parent))self.toggleNodeState(parent,1);else{var title=node.name||node.id;name=Wf.String.decode(title),title=Wf.String.encode(title);var url=node.url||"#";node.class||(node.class="folder");var html='<li data-id="'+self._escape(encodeURI(node.id))+'" class="'+node.class+'" aria-level="'+parseFloat($(parent).attr("aria-level"))+'1" aria-label="'+title+'">';html+='<div class="uk-tree-row">',node.class.indexOf("folder")>=0&&(html+='<span class="uk-tree-toggle" role="presentation"> <i class="uk-icon uk-icon-caret-right"></i> <i class="uk-icon uk-icon-caret-down"></i></span>'),html+='<a href="'+url+'" title="'+title+'"><span class="uk-tree-icon">',html+=node.class.indexOf("folder")>=0?'<i role="presentation" class="uk-icon uk-icon-folder"></i><i role="presentation" class="uk-icon uk-icon-folder-open"></i>':'<i role="presentation" class="uk-icon uk-icon-file-text"></i>',html+="</span>",html+='<span class="uk-tree-text uk-margin-small-left uk-text-truncate" title="'+title+'">'+name+"</span>",html+="</a></div>",html+="</li>",$(ul).append(html),self.toggleNodeState(parent,1),self._trigger("nodecreate")}}),sortNodes!==!1&&$(ul).children().length>1&&self.sortNodes(ul)}else this.toggleNodeState(parent,1)},_findParent:function(el){return"string"===$.type(el)?$('li[data-id="'+this._encode(el)+'"]:first',this.element):$(el).parents("li:first")},_findNode:function(id,parent){return parent&&"/"!==parent||(parent=this.element),"string"===$.type(parent)&&(parent=this._findParent(parent)),$(parent).find('li[data-id="'+this._escape(this._encode(id))+'"]:first')},toggleLoader:function(node){$(node).toggleClass("uk-tree-loading")},_collapseNodes:function(ex){var self=this;ex||this._resetNodes();var parent=$(ex).parent();$("li",parent).each(function(){var el=this;if(el!==ex&&$(el).parent()!==parent){self.toggleNodeState(el,0);var child=self._getNode(el);$(child).addClass("uk-tree-hide")}})},toggleNodeState:function(node,state){if(state?$(node).addClass("uk-tree-open").attr("aria-expanded",!0):$(node).removeClass("uk-tree-open").attr("aria-expanded",!1),state){if($(node).hasClass("uk-tree-root"))return;var c=$(".uk-tree-node",node);$(node).hasClass("uk-tree-open")?$(c).removeClass("uk-tree-hide"):$(c).addClass("uk-tree-hide")}},toggleNode:function(e,node){if(e.shiftKey)return this._trigger("nodeload",node);var child=this._getNode(node);child.length?($(child).toggleClass("uk-tree-hide"),this.toggleNodeState(node,!$(child).hasClass("uk-tree-hide"))):$(node).hasClass("uk-tree-open")?this.toggleNodeState(node,0):this._trigger("nodeload",node),this.options.collapseTree&&this._collapseNodes(node)},refreshNode:function(node){var parent=this._findParent(node);return this._trigger("nodeload",parent)},_encode:function(s){try{s=decodeURIComponent(s)}catch(e){}return encodeURIComponent(s).replace(/%2F/gi,"/")},_escape:function(s){return s.replace(/'/g,"%27")},scrollTo:function(id){var el=this.element,node=this._findNode(id);if($(node).length){var padding=parseInt($(node).css("padding-left"))+parseInt($(this.element).css("padding-left")),left=$(node).get(0).offsetLeft-padding,top=$(node).get(0).offsetTop-($(".uk-tree-row",node).outerHeight()+2);$(el).find(".uk-tree-active").removeClass("uk-tree-active"),$(el).animate({scrollLeft:Math.round(left)},500).animate({scrollTop:Math.round(top)},1500,function(){$(this).off(scrollEvents)}),$(node).addClass("uk-tree-active")}}},$.fn.tree=function(options){var inst=new Tree(this,options);return $(this).on("tree:createnode",function(e,node,parent,sortNodes){"string"==typeof node&&(node=[node]),inst.createNode(node,parent,sortNodes)}),$(this).on("tree:removenode",function(e,node){inst.removeNode(node)}),$(this).on("tree:renamenode",function(e,node,name){inst.renameNode(node,name)}),$(this).on("tree:togglenode",function(e,ev,node){inst.toggleNode(ev,node)}),$(this).on("tree:togglenodestate",function(e,node,state){inst.toggleNodeState(node,state)}),$(this).on("tree:toggleloader",function(e,node){inst.toggleLoader(node)}),$(this).on("tree:refreshnode",function(e,node){inst.refreshNode(node)}),$(this).on("tree:scroll",function(e,id){inst.scrollTo(id)}),$(this).on("tree:init",function(e){inst.nodeEvents()}),this}}(jQuery,Wf),function($,window,undef){function uid(){var i,guid=(new Date).getTime().toString(32);for(i=0;i<5;i++)guid+=Math.floor(65535*Math.random()).toString(32);return"wf_"+guid+(counter++).toString(32)}function cancel(e){e.preventDefault(),e.stopImmediatePropagation()}function Transport(options){this.options=$.extend({callback:$.noop,headers:{},multipart:{},data_name:"file"},options)}function Uploader(options){var self=this;self.events=[],this.options=$.extend({container:"body",multiple:!0,input_name:"file",drop_target:null,upload_button:null,filetypes:"*",max_size:1024,data:{}},options),this.files=[];var accept=[];return this.options.filetypes.length>1&&(accept=$.map(this.options.filetypes.split(","),function(val){return"."+val})),this.input=$('<input type="file" accept="'+accept.join(",")+'" />'),$(this.input).addClass("wf-uploader-element"),$(this.input).prop("multiple",this.options.multiple),this}var counter=0,mime={jpeg:"image/jpeg",jpg:"image/jpeg",png:"image/png",gif:"image/gif",tif:"image/tiff",tiff:"image/tiff",webp:"image/webp"},Env=function(){var nav=navigator,ua=nav.userAgent,o={};return o.opera=!(!window.opera||!window.opera.buildNumber),o.webkit=/WebKit/.test(ua),o.ie11=!!window.MSInputMethodContext,o.gecko=!o.webkit&&!o.ie11&&/Gecko/.test(ua),o}();$.support.xhr2=!!(window.ProgressEvent&&window.FileReader&&window.FormData),$.support.dragdrop=$.support.xhr2&&!Env.opera,Transport.prototype={upload:function(file){this.file=file,$.support.xhr2?(this.transport=new XMLHttpRequest,this.xhr()):(this.transport=document.createElement("iframe"),this.iframe())},error:function(status,text){var callback=this.options.callback,error={message:text||"The server returned an invalid JSON response.",file:this.file,code:status||500};callback("error",error)},response:function(data){var callback=this.options.callback;if(data){var r;try{r=$.parseJSON(data)}catch(e){return data.indexOf("{")!==-1&&(data=$("<textarea />").html(data).text()),this.error(500,data),!1}if(r.error)return this.error(r.error.code,r.error.message),!1;r.file=this.file,callback("uploadcomplete",r),this.file=null}else this.error()},xhr:function(){var self=this,xhr=this.transport,o=this.options,callback=o.callback,formData=new FormData,file=this.file;xhr.upload&&(xhr.upload.onprogress=function(e){e.lengthComputable&&(file.loaded=Math.min(file.size,e.loaded),callback("progress",file))}),xhr.onreadystatechange=function(){4===xhr.readyState&&(200===xhr.status?(file.loaded=file.size,callback("progress",file),formData=null,self.response(xhr.responseText)):self.error(xhr.status),xhr.onreadystatechange=$.noop,xhr=null)},xhr.open("post",o.url,!0),$.each(o.headers,function(name,value){xhr.setRequestHeader(name,value)}),xhr.setRequestHeader("X-Requested-With","XMLHttpRequest"),$.each(o.multipart,function(name,value){"object"===$.type(value)?formData.append(value.name,value.value):formData.append(name,value)}),file.data&&$.each(file.data,function(name,value){"object"===$.type(value)?formData.append(value.name,value.value):formData.append(name,value)}),formData.append("method","upload"),formData.append("id",uid()),formData.append(o.data_name,file),xhr.send(formData)},cleanup:function(){var file=this.file;return file&&file.input&&$(file.input).parent('form[target="wf_upload_iframe"]').remove(),!1},iframe:function(){var self=this,ifr=this.transport,o=this.options,callback=o.callback,form=o.form,_uid=uid(),file=this.file,input=file.input;$(input).wrap('<form method="post" encoding="multipart/form-data" enctype="multipart/form-data" />');var form=input.parentNode;input.setAttribute("name",o.data_name),$.each(o.multipart,function(name,value){if(name!==o.data_name){var k,v;"object"===$.type(value)?(k=value.name,v=value.value):(k=name,v=value),$(form).prepend($('<input type="hidden" name="'+k+'" value="'+v+'" />'))}}),$(form).prepend($('<input type="hidden" name="method" value="upload" />')),$(form).prepend($('<input type="hidden" name="id" value="'+_uid+'" />'));var tmp=document.createElement("div");tmp.innerHTML='<iframe id="'+_uid+'_iframe" name="'+_uid+'_iframe" src="javascript:&quot;&quot;" style="display:none"></iframe>',ifr=tmp.firstChild,$(ifr).on("load",function(e){var el;try{el=ifr.contentWindow.document||ifr.contentDocument||window.frames[ifr.id].document}catch(ex){self.error(500,"Invalid Document"),self.cleanup()}if('javascript:""'===el.location.href)return!1;var result=el.body.innerHTML;return result=$.trim(result),file.loaded=100,callback("progress",file),""===result?(self.error(500,"Invalid Document"),self.cleanup(),!1):(self.cleanup(),void self.response(result))}),$(form).append(ifr),form.setAttribute("target",_uid+"_iframe"),this.transport=ifr,form.setAttribute("action",o.url),form.submit()},abort:function(){if(this.transport instanceof XMLHttpRequest)this.transport.abort(),this.transport.onreadystatechange=$.noop,this.transport=null,this.cleanup();else{var ifr=this.transport;try{ifr&&ifr.contentWindow&&(ifr.contentWindow.stop?ifr.contentWindow.stop():ifr.contentWindow.document.execCommand?ifr.contentWindow.document.execCommand("Stop"):ifr.src="about:blank")}catch(ex){}this.transport=null,this.cleanup()}}},Uploader.prototype={_events:[],files:[],on:function(event,fn){return $(document).on("upload:"+event,fn),this._events.push(event),this},fire:function(event){return $(document).trigger("upload:"+event,Array.prototype.slice.call(arguments,1)),this},init:function(){var self=this,o=this.options;if(o.drop_target&&$.support.dragdrop&&($(o.drop_target).on("dragover",function(e){var dataTransfer=e.originalEvent.dataTransfer;self.fire("dragover"),dataTransfer.dropEffect="copy",cancel(e)}),$(o.drop_target).on("dragstart dragenter dragleave dragend",function(e){self.fire(e.type),cancel(e)}),$(o.drop_target).on("drop",function(e){var dataTransfer=e.originalEvent.dataTransfer;self.fire("drop"),dataTransfer&&dataTransfer.files&&dataTransfer.files.length&&($.each(dataTransfer.files,function(i,file){self.addFile(file)}),cancel(e)),!o.upload_button&&self.files.length&&self.start(),Env.gecko&&"IMG"===e.target.nodeName&&cancel(e),cancel(e)})),o.browse_button){var btn=o.browse_button;$(btn).addClass("wf-uploader-button").wrap('<div class="wf-uploader-container" />'),$(this.input).on("change",function(){if(this.files&&$.support.xhr2)$.each(this.files,function(i,file){self.addFile(file)});else{var name=this.value.replace(/\\/g,"/").replace(/\/(.+)$/,"$1");self.addFile({name:name,input:this}),$(this).hide().clone(!0).insertAfter(this).show()}!o.upload_button&&self.files.length&&self.start()}),$(this.input).clone(!0).insertAfter(btn)}return self.fire("init"),this},addFile:function(file){if(file&&file.name){var name=file.name,ext=name.substring(name.length,name.lastIndexOf(".")+1);if(/\.(php|php(3|4|5)|phtml|pl|py|jsp|asp|htm|html|shtml|sh|cgi)\./i.test(file.name))return this.fire("error",{code:800,message:"FILE_INVALID_ERROR",file:file}),!1;if("*"!==this.options.filetypes){var rx=new RegExp("^("+this.options.filetypes.split(",").join("|")+")$","i");if(rx.test(ext)===!1)return this.fire("error",{code:601,message:"FILE_EXTENSION_ERROR",file:file}),!1}if(file.size=file.size||"",file.size&&parseInt(file.size)>1024*parseInt(this.options.max_size))return this.fire("error",{code:600,message:"FILE_SIZE_ERROR",file:file}),!1;if(file.id=uid(),file.extension=ext,file.type||(file.type=/(jpg|jpeg|bmp|tiff|tif|gif|png|webp)/.test(ext)?mime[ext]:"text/plain"),name=name.replace(/\\/g,"/").replace(/\/+/g,"/"),file.filename=name.split("/").pop(),this.fire("fileadded",file),this.fileExists(file))return this.fire("error",{code:700,message:"FILE_EXISTS_ERROR",file:file}),!1;this.files.push(file)}},removeFile:function(file){this.fire("fileremoved",file);var i=this.getFileIndex(file);return i!==-1&&this.files.splice(i,1),this},getFileIndex:function(file){var i,files=this.files,len=files.length;for(i=0;i<len;i++)if(files[i]&&files[i].id===file.id)return i;return-1},fileExists:function(file){var i,files=this.files,len=files.length;for(i=0;i<len;i++)if(files[i]&&files[i].filename===file.filename)return!0;return!1},updateFile:function(file,property){var self=this,i=this.getFileIndex(file);return i!==-1&&$.each(property,function(name,value){/^(size|type|element)$/.test(name)===!1&&(self.files[i][name]=value)}),this},renameFile:function(file,name){return this.updateFile(file,{filename:name})},upload:function(file){var data,self=this,o=this.options;"object"===$.type(o.data)&&(data=$.extend({name:file.filename||""},o.data)),"array"===$.type(o.data)&&(data=$.merge([{name:"name",value:file.filename||""}],o.data));var args={url:o.url,data_name:o.input_name,multipart:data,callback:function(ev,args){self.fire(ev,args),"uploadcomplete"!==ev&&"error"!==ev||(self.removeFile(file),self.transport=null),0===self.files.length&&self.fire("allcomplete")}};return this.transport=new Transport(args),this.transport.upload(file),this},start:function(){var self=this;return $.each(this.files,function(i,file){self.fire("uploadstart",file),self.upload(file)}),this},clear:function(){return this.files=[],$(this.element).val("").siblings(".wf-uploader-element").remove(),this},stop:function(){return this.transport&&(this.transport.abort(),this.fire("abort")),this},destroy:function(){return this.transport&&(this.transport.cleanup(),this.transport=null),this.clear(),this.fire("destroy"),$.each(this._events,function(i,ev){$(document).off("upload:"+ev)}),this}},window.Uploader=Uploader}(jQuery,window),function($,Wf){function mapIcon(ext){return/^(flv|mp4|m4v|webm|ogg|ogv|mov|wmv|avi|mvk|webm)$/.test(ext)?"video":/^(mp3|ogg|oga)$/.test(ext)?"audio":/^(jpg|jpeg|png|gif|png|svg|bmp|tiff|webp)$/.test(ext)?"image":/^(txt|htm|html)$/.test(ext)?"text":/^(doc|docx|dot|dotx)$/.test(ext)?"word":/^(xls|xlsx)$/.test(ext)?"excel":/^(ppt|pptx)$/.test(ext)?"powerpoint":/^(rar|zip|tar|gz)$/.test(ext)?"zip":/^(html|htm)$/.test(ext)?"code":/^(txt|rtf|csv)$/.test(ext)?"text":ext}function UploadWidget(element,options){this.element=element||$("<div />"),this.uploader={},this.errors=0,this.uploading=!1,this.options=$.extend({field:$("input[name=file]:first"),max_size:!1,limit:0,filetypes:"*",insert:!0,buttons:{},websafe_mode:"utf-8",browse_button:"#upload-browse",upload_button:"#upload-start",drop_target:"#upload-body"},options),this.init()}UploadWidget.prototype={FILE_SIZE_ERROR:600,FILE_EXTENSION_ERROR:601,FILE_EXISTS_ERROR:700,FILE_INVALID_ERROR:800,_trigger:function(ev,args){$(this.element).trigger("uploadwidget:"+ev.toLowerCase(),args)},init:function(){this.uploader instanceof Uploader&&this.uploader.destroy(),$(this.options.field).remove(),this._createUploader()},_createUploader:function(){var self=this;$.support.xhr2||$(this.element).addClass("wf-uploader-html4"),this.uploader=new Uploader(this.options),this.uploader.on("init",function(){self._createDragDrop(),self._trigger("init")}),this.uploader.on("fileadded",function(e,file){self._createQueue(file),self._trigger("fileadded",file)}),this.uploader.on("uploadstart",function(e,file){self._onStart(file)}),this.uploader.on("allcomplete",function(){self._onAllComplete()}),this.uploader.on("uploadcomplete",function(e,o){self._onComplete(o)}),this.uploader.on("dragover",function(e,o){$(self.options.drop_target).addClass("wf-upload-dragover")}),this.uploader.on("dragleave",function(e,o){$(self.options.drop_target).removeClass("wf-upload-dragover")}),this.uploader.on("drop",function(e,o){$(self.options.drop_target).removeClass("wf-upload-dragover")}),this.uploader.on("close",function(e,o){self.close()}),this.uploader.on("error",function(up,error){var file=error.file;"string"==typeof error&&(error={message:error,code:500}),file&&(error.code<600?$(file.element).removeClass("queue-item-loading").addClass("queue-item-error"):$(file.element).remove(),self._showError(error,file)),self.errors++}),this.uploader.on("fileremoved",function(file){}),this.uploader.on("progress",function(o,file){self._onProgress(file)}),this.uploader.init()},_showError:function(error,file){var self=this;error=$.extend({message:"",code:500},error),"array"===$.type(error.message)&&(error.message=error.message.join("\n")),error.message=$("<textarea />").html(error.message).text();var msg=error.message.replace(/[^a-z_ ]/gi,"").replace(/\s+/g,"_").toLowerCase(),details=(error.code.toString(),""),message=Wf.translate(msg,error.message);if(message=message.replace(/<br[\s\/]+?>/gi,""),message=message.replace("%s",file.name),error.details)details="<br />"+error.details;else{switch(error.code){case self.FILE_EXTENSION_ERROR:case self.FILE_INVALID_ERROR:case self.FILE_EXISTS_ERROR:details=details.replace("%s",file.name);break;case self.FILE_SIZE_ERROR:details=details.replace(/%([fsm])/g,function($0,$1){switch($1){case"f":return file.name;case"s":return Wf.String.formatSize(file.size);case"m":return Wf.String.formatSize(1024*self.options.max_size)}})}details&&(message+="<br />"+details)}error.code<600?($(".uk-progress",file.element).hide(),$('<div class="uk-alert uk-alert-danger uk-width-1-1 uk-text-center" />').html(message).appendTo(file.element)):(Wf.Modal.alert(message),this.errors--)},_onStart:function(file){this._trigger("uploadstart",file),$(file.element).addClass("queue-item-loading").find('input[type="text"]').prop("disabled",!0)},_isError:function(err){return!!err&&(!$.isArray(err)||err.length)},_onComplete:function(o){var file=o.file;$(file.element).removeClass("queue-item-loading").addClass("queue-item-complete");var item={name:file.name};if(o.result.files&&o.result.files.length){var obj=o.result.files[0]||{};$.extend(item,obj.file||obj)}this._trigger("filecomplete",[file,item])},_onAllComplete:function(){this.uploading=!1,this._trigger("uploadcomplete",this.getErrorCount())},_setProgress:function(el,percent){$(".uk-progress-bar",el).css("width",percent+"%").attr("aria-valuenow",percent+"%").text(percent+"%")},_onProgress:function(file){if(file.size){var percent=Math.floor(file.loaded/file.size*100);file.size===file.loaded&&(percent=100),this._setProgress(file.element,percent)}},upload:function(args){var files=this.uploader.files;return files.length&&(this.uploading=!0,this.uploader.options.data=args||{},this.uploader.start()),!1},refresh:function(){},close:function(){this.uploader instanceof Uploader&&(this.uploading&&this.uploader.stop(),this.uploader.destroy()),this.errors=0,this.uploader={},this.uploading=!1},getErrorCount:function(){return this.errors},isUploading:function(){return this.uploading},stop:function(){this.uploader.stop()},start:function(){this.uploader.start()},setStatus:function(s){var file=this.currentFile;file&&($(file.element).removeClass("queue-item-loading queue-item-complete queue-item-error").addClass(s.state||""),s.state&&"error"===s.state&&(this.errors++,s.message&&($(".uk-progress",file.element).hide(),$('<div class="uk-alert uk-alert-danger uk-width-1-1 uk-text-center" />').html(s.message).appendTo(file.element))))},_createDragDrop:function(){var self=this;$("#upload-queue-drag").remove(),$("#upload-queue").empty();var msg=Wf.translate("upload_drop_details","%filetypes files up to %max_size in size");msg.indexOf("%")!==-1&&(msg=msg.replace(/%([\w]+)/g,function(match,key){var value=self.options[key]||"";return"filetypes"===key&&(value='<span class="uk-text-truncate uk-display-block">'+value+"</span>"),"max_size"===key&&(value="<strong>"+Wf.String.formatSize(1024*value)+"</strong>"),value})),$('<div id="upload-queue-drag" class="uk-flex uk-flex-center uk-flex-column uk-flex-middle uk-text-large uk-height-1-1 uk-text-large uk-comment">   <div class="uk-comment-header uk-flex">       <i class="uk-icon-cloud-upload uk-icon-medium uk-margin-right uk-text-muted uk-comment-avatar"></i><h4 class="uk-comment-title">'+Wf.translate("upload_drop","Drop files here")+'</h4>   </div>   <p class="uk-margin-small uk-comment-meta uk-width-1-2 uk-text-center">'+msg+"</p></div>").appendTo("#upload-queue-block").show()},_renameFile:function(file,name){this.uploader.renameFile(file,name),this._trigger("filerename",file)},_removeFiles:function(){this.uploader.splice(),this.errors=0,$(this.element).empty()},_fileExists:function(file){return this.uploader.fileExists(file)},_removeFile:function(file){this._trigger("filedelete",file),$(file.element).hasClass("queue-item-error")&&this.errors--,$(file.element).remove(),this.uploader.removeFile(file)},_createQueue:function(file){var self=this,name=Wf.String.basename(file.filename);name=Wf.String.safe(name,self.options.websafe_mode,self.options.websafe_spaces),file.filename=name;var title=Wf.String.stripExt(name);file.element=document.createElement("div");var remove=$('<button class="uk-button uk-button-link" />').attr({title:Wf.translate("delete","Delete")}).addClass("queue-item-action").on("click",function(e){return e.preventDefault(),self.uploading?self._stop(file):self._removeFile(file)}).append('<i class="uk-icon uk-icon-trash" />'),ext=file.extension.toLowerCase(),input=$('<i class="uk-icon uk-icon-file-'+mapIcon(ext)+'" /><input type="text" value="'+title+'" class="uk-width-1-1" /><span class="queue-item-extension uk-text-muted uk-icon-none">.'+file.extension+"</span>"),name=$('<div class="queue-item-name uk-width-3-4 uk-width-small-4-5 uk-form-icon uk-form-icon-both" />').append(input),buttons=[remove];$.each(self.options.buttons,function(name,props){var btn=$('<button class="uk-button uk-button-link" title="'+props.title||name+'" />').addClass(props.class).on("click",function(e){if($(this).hasClass("disabled"))return void e.preventDefault();var fn=props.click||$.noop;fn.call(self,this),e.preventDefault()});buttons.push(btn)});var size=$('<div class="queue-item-size uk-flex-item-auto uk-text-center uk-hidden-mini" title="'+Wf.String.formatSize(file.size)+'" role="presentation" />').html(Wf.String.formatSize(file.size)),actions=$('<div class="queue-item-actions uk-flex uk-width-1-4 uk-width-small-1-5 uk-text-right" />').appendTo(file.element).append(size).append(buttons),progress=$('<div class="uk-progress uk-width-1-1"><div class="uk-progress-bar"></div></div>');$(file.element).addClass("queue-item uk-width-1-1 uk-flex uk-flex-wrap").appendTo($(self.element)).append([name,actions,progress]),$('input[type="text"]',file.element).on("change keyup",function(e){var v=this.value;v=Wf.String.safe(this.value,self.options.websafe_mode,self.options.websafe_spaces),$(this).toggleClass("uk-form-danger",v!==this.value),"change"===e.type&&self._renameFile(file,v+"."+file.extension)}).trigger("change"),self._trigger("fileSelect",file)},_stop:function(file){this.uploader.stop(),$(file.element).removeClass("queue-item-loading")}},$.fn.uploader=function(options){var inst=new UploadWidget(this,options);return $(this).on("uploadwidget:upload",function(e,data){return inst.isUploading()?(cancel(e),!1):void inst.upload(data)}),$(this).on("uploadwidget:close",function(){inst.close()}),this}}(jQuery,Wf),function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?factory():"function"==typeof define&&define.amd?define(factory):factory()}(this,function(){"use strict";function finallyConstructor(callback){var constructor=this.constructor;return this.then(function(value){return constructor.resolve(callback()).then(function(){return value})},function(reason){return constructor.resolve(callback()).then(function(){return constructor.reject(reason)})})}function isArray(x){return Boolean(x&&"undefined"!=typeof x.length)}function noop(){}function bind(fn,thisArg){return function(){fn.apply(thisArg,arguments)}}function Promise(fn){if(!(this instanceof Promise))throw new TypeError("Promises must be constructed via new");if("function"!=typeof fn)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],doResolve(fn,this)}function handle(self,deferred){for(;3===self._state;)self=self._value;return 0===self._state?void self._deferreds.push(deferred):(self._handled=!0,void Promise._immediateFn(function(){var cb=1===self._state?deferred.onFulfilled:deferred.onRejected;if(null===cb)return void(1===self._state?resolve:reject)(deferred.promise,self._value);var ret;try{ret=cb(self._value)}catch(e){return void reject(deferred.promise,e)}resolve(deferred.promise,ret)}))}function resolve(self,newValue){try{if(newValue===self)throw new TypeError("A promise cannot be resolved with itself.");if(newValue&&("object"==typeof newValue||"function"==typeof newValue)){var then=newValue.then;if(newValue instanceof Promise)return self._state=3,self._value=newValue,void finale(self);if("function"==typeof then)return void doResolve(bind(then,newValue),self)}self._state=1,self._value=newValue,finale(self)}catch(e){reject(self,e)}}function reject(self,newValue){self._state=2,self._value=newValue,finale(self)}function finale(self){2===self._state&&0===self._deferreds.length&&Promise._immediateFn(function(){self._handled||Promise._unhandledRejectionFn(self._value)});for(var i=0,len=self._deferreds.length;i<len;i++)handle(self,self._deferreds[i]);self._deferreds=null}function Handler(onFulfilled,onRejected,promise){this.onFulfilled="function"==typeof onFulfilled?onFulfilled:null,this.onRejected="function"==typeof onRejected?onRejected:null,this.promise=promise}function doResolve(fn,self){var done=!1;try{fn(function(value){done||(done=!0,resolve(self,value))},function(reason){done||(done=!0,reject(self,reason))})}catch(ex){if(done)return;done=!0,reject(self,ex)}}var setTimeoutFunc=setTimeout;Promise.prototype.catch=function(onRejected){return this.then(null,onRejected)},Promise.prototype.then=function(onFulfilled,onRejected){var prom=new this.constructor(noop);return handle(this,new Handler(onFulfilled,onRejected,prom)),prom},Promise.prototype.finally=finallyConstructor,Promise.all=function(arr){return new Promise(function(resolve,reject){function res(i,val){try{if(val&&("object"==typeof val||"function"==typeof val)){var then=val.then;if("function"==typeof then)return void then.call(val,function(val){res(i,val)},reject)}args[i]=val,0===--remaining&&resolve(args)}catch(ex){reject(ex)}}if(!isArray(arr))return reject(new TypeError("Promise.all accepts an array"));var args=Array.prototype.slice.call(arr);if(0===args.length)return resolve([]);for(var remaining=args.length,i=0;i<args.length;i++)res(i,args[i])})},Promise.resolve=function(value){return value&&"object"==typeof value&&value.constructor===Promise?value:new Promise(function(resolve){resolve(value)})},Promise.reject=function(value){return new Promise(function(resolve,reject){reject(value)})},Promise.race=function(arr){return new Promise(function(resolve,reject){if(!isArray(arr))return reject(new TypeError("Promise.race accepts an array"));for(var i=0,len=arr.length;i<len;i++)Promise.resolve(arr[i]).then(resolve,reject)})},Promise._immediateFn="function"==typeof setImmediate&&function(fn){setImmediate(fn)}||function(fn){setTimeoutFunc(fn,0)},Promise._unhandledRejectionFn=function(err){"undefined"!=typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",err)};var globalNS=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();"Promise"in globalNS?globalNS.Promise.prototype.finally||(globalNS.Promise.prototype.finally=finallyConstructor):globalNS.Promise=Promise}),function($){$.fn.listsort=function(options){function sortList(selector,type,attribute,direction){var fn;switch(type){case"date":fn=sortDate;break;default:fn=sortCompare}var list=$(selector,el).map(function(){var v=$(this).attr(attribute)||$(this).text();return"number"==type&&(v=parseFloat(v)),"extension"==type&&(v=v.substring(v.length,v.lastIndexOf(".")+1).toLowerCase()),"string"==type&&(v=v.toLowerCase()),{value:v,element:this}}).get();list.sort(fn),"desc"!=direction&&"extension"!=type||list.reverse(),$.each(list,function(i,item){$(el).append(item.element)}),list=null,$(el).trigger("listsort:sort",{type:type,direction:direction})}function sortDate(a,b){var x=a.value,y=b.value,r=0,d1=0,d2=0,t1=0,t2=0,re=/(\d{2})[\/](\d{2})[\/](\d{4}), (\d{2})[:](\d{2})/g;return d1=x.replace(re,"$3$2$1"),d2=y.replace(re,"$3$2$1"),t1=x.replace(re,"$4$5"),
t2=y.replace(re,"$4$5"),d1>d2&&(r=1),d1<d2&&(r=-1),t1>t2&&(r=1),t1<t2&&(r=-1),r}function sortCompare(a,b){return a.value<b.value?-1:b.value<a.value?1:0}options=$.extend({fields:{}},options);var el=this;return $.each(options.fields,function(element,props){$(element).addClass("asc").on("click",function(){var direction="asc";$(this).toggleClass(function(){return $(this).is(".asc")?($(this).removeClass("asc"),direction="desc"):($(this).removeClass("desc"),direction="asc"),direction});var selector=props.selector;"string"==$.type(selector)&&(selector=[selector]),$.each(selector,function(i,s){sortList(s,$(element).data("sort-type"),props.attribute,direction)})})}),this}}(jQuery),function($){function defer(fn){setTimeout(fn,0)}function escapeRegExChars(str){return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function debounce(func,wait,immediate){var timeout,result;return function(){var later,callNow,context=this,args=arguments;return later=function(){timeout=null,immediate||(result=func.apply(context,args))},callNow=immediate&&!timeout,clearTimeout(timeout),timeout=setTimeout(later,wait),callNow&&(result=func.apply(context,args)),result}}var specialKeyCodeMap={9:"tab",17:"ctrl",18:"alt",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down",91:"cmd"};$.fn.listfilter=function(options){function toUnicode(s){for(var str="",i=0,ln=s.length;i<ln;i++){var ch=s[i];/[^\w\.\-\s \/]/i.test(ch)&&(ch="\\u"+ch.charCodeAt(0)),str+=ch}return str}function filter(s){var v,x=[];"."===s.charAt(0)?(v=s.substr(1),matcher=new RegExp(".("+escapeRegExChars(v)+"[a-z0-9]*)$","i")):(s=toUnicode(s),matcher=new RegExp(escapeRegExChars(s),"ui")),/[\u0000-\u1FFF\.\-\s ]/i.test(s)?$(options.selector,options.list).each(function(){var match=!1,title=$(this).attr("title");if(title=toUnicode(title),match=matcher.test(title))$.inArray(this,x)===-1&&x.push(this);else{var i=$.inArray(this,x);i!==-1&&x.splice(i,1)}}):x=[],x&&x.length?($(options.selector,options.list).show().not(x).hide(),scroll(x[0])):reset(),$(el).trigger("listfilter:found",[null,x])}function scroll(el){var pos=$(el).position()||{top:0},top=$(options.list).scrollTop();$(options.list).css("overflow","hidden").animate({scrollTop:pos.top+top},1e3,function(){$(options.list).css("overflow","auto")})}function reset(){$(options.selector,options.list).show(),scroll($(options.selector,options.list).first())}options=$.extend({list:null,items:null,clear:null,sort:null,hide:!1,filter:null},options);var el=this;$(options.clear).on("click.listfilter",function(e){reset(),$(el).val(""),$(el).trigger("listfilter:clear",[e])}),$(el).on("listfilter:filter",function(e,s){filter(s)});var keyup=debounce(function(e){if(!e.keyCode||!specialKeyCodeMap[e.keyCode]){var v=$(el).val();defer(function(){return""===v?void $(options.clear).trigger("click.listfilter"):(e.stopImmediatePropagation(),void(v.length<3||$(el).trigger("listfilter:find",[v])))})}},500);return $(el).on("keyup.listfilter paste.listfilter cut.listfilter",keyup),this}}(jQuery),function($,Wf,undef){function getMimeType(ext){return ext=ext.toLowerCase(),ext=$.trim(ext),mimeTypes[ext]||ext}var mimeTypes={};!function(data){var i,y,ext,items=data.split(",");for(i=0;i<items.length;i+=2)for(ext=items[i+1].split("|"),y=0;y<ext.length;y++)mimeTypes[ext[y]]=items[i]}("video,flv|mp4|m4v|webm|ogg|ogv|mov|wmv|avi,audio,mp3|ogg|oga|webm|m4a,image,jpg|jpeg|apng|png|gif|png|svg|bmp|tiff|webp,text,txt|htm|html,word,doc|docx|dot|dotx,excel,xls|xlsx,powerpoint,ppt|pptx,zip,rar|zip|tar|gz,code,html|htm|xml,text,txt|rtf|csv");var scrollEvents=(function(){function s4(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return function(){return s4()+s4()+"-"+s4()+"-"+s4()+"-"+s4()+"-"+s4()+s4()+s4()}}(),"click.scroll mousedown.scroll wheel.scroll mousewheel.scroll keyup.scroll touchmove.scroll"),FileBrowser=function(element,options){this.element=element,$.extend(this,{_actions:{},_buttons:{folder:{},file:{}},_modal:[],_returnedItems:[],_pasteitems:"",_pasteaction:"",_limitcount:0,_limitend:0}),this.options=FileBrowser.options,this.setOptions(options),this._init()};FileBrowser.options={base:"",dir:"images",actions:null,buttons:null,folder_tree:!0,details:!0,search:!0,upload:{max_size:1024,filetypes:"*",overwrite:!0,limit:0,dialog:{},elements:null,buttons:{}},folder_new:{dialog:null},rename:{dialog:null},viewable:"jpeg,jpg,gif,png,webp,avi,wmv,wm,asf,asx,wmx,wvx,mov,qt,mpg,mp3,mp4,m4v,mpeg,ogg,ogv,webm,swf,flv,f4v,xml,dcr,rm,ra,ram,divx,html,htm,txt,rtf,pdf,doc,docx,xls,xlsx,ppt,pptx",list_limit:0,view_mode:"list",expandable:!0,websafe_mode:"utf-8",websafe_spaces:!1,websafe_textcase:"",date_format:"%d/%m/%Y, %H:%M",allow_download:!1,use_state_cookies:!0},FileBrowser.prototype={_trigger:function(ev,args){$(this.element).trigger("filebrowser:"+ev.toLowerCase(),args)},setOptions:function(options){this.options=$.extend(this.options,options)},getOptions:function(){return this.options},_init:function(options){var self=this;this.options=$.extend(this.options,options),$.each(this.options,function(k,v){"function"==typeof v&&($(self.element).on("filebrowser:"+k.toLowerCase(),v),delete self.options[k])}),this._addActions(this.options.actions),this._addButtons(this.options.buttons);var list=document.createElement("ul");$(list).addClass("item-list").attr({id:"item-list",role:"listbox"}).on("click.item-list",function(e){var n=e.target,p=n.parentNode;if(!$(n).hasClass("ui-sortable-handle")){if($(n).is(".uk-icon, span, a, img")&&(n=$(n).parents("li").get(0),p=n.parentNode,e.preventDefault()),"LI"===n.nodeName){if($(n).hasClass("folder")){var u=$(n).data("url")||self._getPreviousDir();return self._changeDir(u)}return e.target=n,self._setSelectedItems(e,!0),self.serializeItemData(n).then(function(data){self._trigger("onFileClick",[n,data])}),!0}return"INPUT"===n.nodeName?($(n).is(":checked")?(e.target=n,self._setSelectedItems(e,!0)):self._removeSelectedItems([p.parentNode],!0),p=$(n).parents("li"),self.serializeItemData(p).then(function(data){data.state=$(n).is(":checked"),self._trigger("onFileToggle",[p,data])}),!0):void 0}}).on("dblclick.item-list",function(e){return e.preventDefault(),!1}).on("keydown.item-list",function(e){switch(e.which){case 13:if(n=$("li.selected:last","#item-list").get(0),!n)return;if($(n).hasClass("folder")){var u=$(p).data("url")||self._getPreviousDir();return self._changeDir(u)}self._setSelectedItems(e,!0),self.serializeItemData(n).then(function(data){self._trigger("onFileClick",[n,data])});break;case 38:case 40:self._setSelectedItems(e)}e.preventDefault()}),$(".folder-up","#browser").on("click",function(e){e.preventDefault();var u=self._getPreviousDir();return self._changeDir(u)}),$("#browser-list").append(list).on("scroll.browser-list",function(e){self._updateList()}),$(".details-nav-left, .details-nav-right","#browser-details-nav").on("click",function(e){var $item=$("li.selected.active","#item-list").removeClass("active");$(this).hasClass("details-nav-left")&&$item.prevAll("li.selected:first").addClass("active"),$(this).hasClass("details-nav-right")&&$item.nextAll("li.selected:first").addClass("active"),e.preventDefault(),self._showItemDetails()});var list_limit=self._getState("limit",this.options.list_limit,function(val){return!/([0125]+)/.test(val)==!1});$("#browser-list-limit-select").val(list_limit),$("#browser-list-limit-select").on("change",function(){self._limitcount=0,self._setState("limit",$(this).val()),self.refresh()}),$("ul li","#browser-list-limit").on("click",function(e){e.preventDefault();var x=0,count=self._limitcount,limit=parseInt(self._limit);$(this).hasClass("limit-left")&&(x=count-limit),$(this).hasClass("limit-right")&&(x=count+limit),$(this).hasClass("limit-right-end")&&(x=count=self._limitend),self._limitcount=x,self.refresh()}),$('input[type="checkbox"]',"#check-all").on("click",function(e){var el=e.target,s=$(el).is(":checked");$('input[type="checkbox"]',"#browser-list").prop("checked",!!s),s?self._selectItems($("li","#browser-list").not(".folder-up"),!0):self._deselectItems()}),this._setupListSort(),$("#block-search-icon").toggle(this.options.search),$("#show-details").toggle(this._treeLoaded()),$("#show-search").on("click",function(){$("#searchbox").toggleClass("uk-hidden").attr("aria-hidden",function(){return $(this).hasClass("uk-hidden")}),$(this).toggleClass("uk-active"),$(this).hasClass("uk-active")&&$("#search").trigger("focus")}),$("#search + .uk-icon").on("click",function(){$("#search").trigger("focus")}),$("body").on("click",function(e){$("#searchbox").hasClass("uk-hidden")||$(e.target).is("#searchbox, #search, #show-search, #show-search .uk-icon-search, #search + .uk-icon")||($("#show-search").removeClass("uk-active"),$("#searchbox").addClass("uk-hidden").attr("aria-hidden",!0))}),$("#search").listfilter({list:"#item-list",selector:"li",clear:"#search + .uk-icon"}).on("listfilter:find",function(ev,s){var el=this;if(s){var prefix="";"."===s.charAt(0)&&(s=s.substr(1),prefix="."),self._setLoader(),$("#browser-list").one("load.filter",function(){$(el).trigger("listfilter:found",[null,$("li.file","#item-list").get()])}),self._reset(),self._searchQuery=prefix+s,self._getList("",self._searchQuery)}else self._searchQuery="",self.refresh();return!0}).on("listfilter:clear",function(ev){self._searchQuery="",self.refresh()}),$("#refresh").on("click",function(e){self.refresh(e)}).on("button:refresh",function(e,state){state?($(".uk-icon",this).addClass("uk-icon-spinner"),$(this).prop("disabled",!0)):($(".uk-icon",this).removeClass("uk-icon-spinner"),$(this).prop("disabled",!1))});var showDetails=this._getState("details",0,function(val){return val=parseInt(val),0===val||1===val});parseInt(showDetails)||!this._treeLoaded()?($("#show-details").removeClass("uk-active"),$("main").addClass("uk-tree-hidden")):($("#show-details").addClass("uk-active"),$("main").removeClass("uk-tree-hidden")),$("#show-details:visible").on("click",function(e){$(this).toggleClass("uk-active"),$("main").toggleClass("uk-tree-hidden"),self._setState("details",$("main").hasClass("uk-tree-hidden")?1:0)}),this.options.expandable&&($("#browser").addClass("expandable"),$("#layout-full-toggle").on("click",function(){$("#browser").toggleClass("full-height"),self._trigger($("#browser").hasClass("full-height")?"onMaximise":"onMinimise")})),$("#browser-list").on(scrollEvents,function(){$(this).stop()}),this._setupDir(),this._trigger("onInit",this)},_updateList:function(){var self=this,top=$("#browser-list").scrollTop(),area=$("#browser-list").height()+top;$(".file.jpg, .file.jpeg, .file.png, .file.gif, .file.bmp","#item-list").not("[data-width]").each(function(){var pos=$(this).position();pos.top<area&&self._getDimensions(this)})},_getInterfaceHeight:function(){var ih=Math.max(0,Math.round($("#browser").offset().top)-5),p=$("#browser").parent("form");return $(p).next(":not(div.actionPanel)").length&&(ih=Math.round($("div.actionPanel").offset().top)-10-$("#browser").innerHeight()),ih},resize:function(ih,init){},_translate:function(s,ds){return Wf.translate(s,ds)},_setupListSort:function(){var self=this;this._sortValue=this._getState("sort","",function(val){return/[a-z-]+/.test(val)}),$("#sort-ext, #sort-name, #sort-date, #sort-size").on("click",function(){$(this).siblings(".asc, .desc").removeClass("desc").addClass("asc");var direction="";$(this).hasClass("asc")?($(this).removeClass("asc").addClass("desc"),direction="-"):($(this).removeClass("desc").addClass("asc"),direction="");var type=$(this).data("sort");self._sortValue=direction+type,self._setState("sort",self._sortValue),self.refresh()}).addClass(function(){return this.id.indexOf(self._sortValue)===-1?"asc":self._sortValue&&"-"===self._sortValue.charAt(0)?"desc":"asc"})},_validatePath:function(s){function _toUnicode(c){for(c=c.toString(16).toUpperCase();c.length<4;)c="0"+c;return"\\u"+c}if(/\.{2,}/.test(s)||/:\/\//.test(s)&&s.indexOf(Wf.getURI(!0))==-1)return!1;if(/:\/\//.test(s)&&(s=Wf.URL.toRelative(s)),/[^\w\.\-\s \/]/i.test(s))for(var i=0,ln=s.length;i<ln;i++){var ch=s[i];if(/[^\w\.\-\s \/]/i.test(ch)&&_toUnicode(ch.charCodeAt(0))<"\\u007F")return!1}return!0},_trimPath:function(path){return path=""+path,path.replace(/^\//,"").replace(/\/$/,"")},_cleanPath:function(path){return path&&(new RegExp("://").test(path)&&(path=Wf.URL.toRelative(path)),path=this._trimPath(path),/\.([a-z0-9]{2,}$)/i.test(path)&&(path=Wf.String.dirname(path),path=path.replace(new RegExp(this.options.dir),"").replace(/^[\/\\]+/,""))),path},_setupDir:function(){var self=this,dir="",src=$(this.element).val(),base=this.options.base;src&&base&&0===src.indexOf(base)&&(src=src.substr(base.length+1)),src=src.replace(/(&amp;|\?)/g,"&"),src.indexOf("&")!==-1&&(src=src.substr(0,src.indexOf("&"))),src=this._trimPath(src),this._validatePath(src)||(src=""),src||(dir=this._getState("dir","",function(val){return val&&self._validatePath(val)})),this._validatePath(dir)||(dir=""),this._setDir(Wf.String.encodeURI(dir)),src&&/:\/\//.test(src)&&(src=Wf.URL.toRelative(src)),this.setStatus({message:this._translate("loading","Loading..."),state:"load"}),this._treeLoaded()?this._createTree(src):this._getList(src)},_toggleTree:function(s){$("#browser").toggleClass("full-width",!s),$("div.layout-left","#browser").attr("aria-hidden",!s),$("#sort-size, #sort-date").attr("aria-hidden",s),$("span.size, span.date","#item-list").attr("aria-hidden",s)},_isWebSafe:function(name){var safe=Wf.String.safe(name,this.options.websafe_mode,this.options.websafe_spaces,this.options.websafe_textcase);return name.toLowerCase()===safe.toLowerCase()},_isViewable:function(name){var button=this._getButton("file","view"),viewable=this.options.viewable;return button&&button.restrict&&(viewable=button.restrict),new RegExp("\\.("+viewable.replace(/,/g,"|")+")$","i").test(name)},_buildList:function(o){var self=this,h="";$("#item-list").empty(),$("#browser").toggleClass("root",this._isRoot()),!this._isRoot(),o.folders.length&&$.each(o.folders,function(i,e){var data=[],classes=[];return!e.id||($.each(e.properties,function(k,v){""!==v&&data.push("data-"+k+'="'+v+'"')}),data.push('data-url="'+(e.url||e.id)+'"'),classes.push(self._isWebSafe(e.name)?"safe":"notsafe"),classes.push(e.writable?"writable":"notwritable"),e.classes&&classes.push(e.classes),h+='<li class="uk-grid uk-grid-collapse uk-flex folder '+classes.join(" ")+'" title="'+e.name+'"'+data.join(" ")+">",h+='  <label class="uk-width-0-10 uk-item-checkbox" aria-label="'+self._translate("select","Select")+'"><input type="checkbox" /></label>',h+='  <i class="uk-width-1-10 uk-icon uk-icon-folder folder"></i>',h+='  <a class="uk-width-1-5 uk-padding-remove uk-flex-item-auto uk-text-truncate" href="#">'+e.name+"</a>",h+='  <span class="uk-width-6-10 uk-item-date uk-hidden-mini">'+Wf.String.formatDate(e.properties.modified,self.options.date_format)+"</span>",void(h+="</li>"))}),o.files.length&&$.each(o.files,function(i,e){var data=[],classes=[];if(!e.id)return!0;$.each(e.properties,function(k,v){""!==v&&data.push("data-"+k+'="'+v+'"')}),e.url&&data.push('data-url="'+e.url+'"'),data.push('id="'+e.id+'"'),classes.push(self._isWebSafe(e.name)?"safe":"notsafe"),classes.push(e.writable?"writable":"notwritable"),e.selected&&self._addReturnedItem({name:e.id}),e.classes&&classes.push(e.classes);var ext=Wf.String.getExt(e.name),name=Wf.String.stripExt(e.name),icon=ext.toLowerCase();h+='<li class="uk-grid uk-grid-collapse uk-flex file '+ext.toLowerCase()+" "+classes.join(" ")+'" title="'+e.name+'"'+data.join(" ")+">",h+='  <label class="uk-width-0-10 uk-item-checkbox" aria-label="'+self._translate("select","Select")+'"><input type="checkbox" /></label>',h+='  <i class="uk-width-1-10 uk-icon uk-icon-file uk-icon-file-'+getMimeType(icon)+" file "+icon+'"></i>',h+='  <a class="uk-width-1-5 uk-padding-remove uk-flex-item-auto" href="#">',h+='      <span class="uk-item-text uk-text-truncate uk-display-inline-block">'+name+"</span>",h+='      <span class="uk-item-extension uk-display-inline-block">.'+ext+"</span>",h+="  </a>",h+='  <span class="uk-width-2-10 uk-item-date uk-hidden-mini">'+Wf.String.formatDate(e.properties.modified,self.options.date_format)+"</span>",h+='  <span class="uk-width-4-10 uk-item-size uk-hidden-mini">'+Wf.String.formatSize(e.properties.size)+"</span>",h+="</li>"}),$("#item-list").html(h),this._showListDetails()},_showListDetails:function(){var s=!$(".layout-icon","#show-details").hasClass("tree")&&this._treeLoaded();this._toggleTree(s)},_treeLoaded:function(){return this.options.folder_tree&&"function"==typeof $.fn.tree},_createTree:function(src){var self=this,path=src||this._dir;path=this._cleanPath(path),$("#tree-body").on("tree:init",function(e,callback){Wf.JSON.request("getTree",path,function(o){$("#tree-body").html(o),"function"==typeof callback&&callback(),path&&path!==self._trimPath(self.options.dir)&&$("#tree-body").trigger("tree:scroll",path),self._getList(src)})}).on("tree:nodeclick",function(e,evt,node){self._changeDir($(node).attr("data-id"))}).on("tree:nodeload",function(e,node){self._refreshTree(node)}).tree()},_refreshTree:function(node){node=node||$(".uk-tree-root","#tree-body"),$("#tree-body").trigger("tree:toggleloader",node),Wf.JSON.request("getTreeItem",$(node).attr("data-id"),function(o){o&&!o.error&&($("ul:first",node).remove(),$("#tree-body").trigger("tree:createnode",[o.folders,node]),$("#tree-body").trigger("tree:togglenodestate",[node,!0])),$("#tree-body").trigger("tree:toggleloader",node)},this)},_reset:function(){this._deselectItems(),this._returnedItems=[],$('input[type="checkbox"]',"#check-all").prop("checked",!1),$("li","#browser-details-nav").addClass("uk-invisible").attr("aria-hidden",!0).filter(".details-nav-text").empty(),this._limit=0},_clearPaste:function(){this._pasteaction="",this._pasteitems="",this._hideButtons($(".paste","#buttons"))},setStatus:function(o){$("#browser-message").removeClass("load error"),$("#browser-message").toggleClass(o.state),$("#refresh").trigger("button:refresh",[o.state]),$(".message","#browser-message").html(o.message)},_setMessage:function(message,classname){return!0},_setLoader:function(){this.setStatus({message:this._translate("message_load","Loading..."),state:"load"})},_resetMessage:function(){return!0},_resetStatus:function(){var self=this,dir=decodeURIComponent(this._dir),$status=$("#browser-message");this.setStatus({message:"",state:""});var $pathway=$(".uk-breadcrumb.pathway",$status);$("li",$pathway).not(":first").remove();var sw=$status.width();$("li:first",$pathway).on("click",function(){self._changeDir("/")}),dir=$.trim(this._trimPath(dir));var $count=$('<li class="count">( '+this._foldercount+" "+this._translate("folders","folders")+", "+this._filecount+" "+this._translate("files","files")+")</li>").appendTo($pathway),w=bw=$pathway.outerWidth(!0);if(dir){var x=1,parts=dir.split("/");$.each(parts,function(i,s){var path=s;i>0&&(path=parts.slice(0,i+1).join("/"));var $item=$('<li title="'+s+'" />').on("click",function(e){self._changeDir(path)}).append("<a>"+s+"</a>").insertBefore($count);w+=$item.outerWidth(!0),w>sw&&$("li",$pathway).eq(x++).addClass("uk-breadcrumb-truncate")})}},_getPreviousDir:function(){if(this._dir.length<2)return this._dir;for(var dirs=this._dir.split("/"),s="",i=0;i<dirs.length-1;i++)s=Wf.String.path(s,dirs[i]);return s},_addReturnedItem:function(items){"array"==$.type(items)?$.merge(this._returnedItems,items):this._returnedItems.push(items)},_returnFile:function(file){this._addReturnedItem({name:Wf.String.basename(file)}),this._changeDir(Wf.String.dirname(file))},_setDir:function(dir){this._dir=""+dir},getBaseDir:function(){return this.options.dir},getCurrentDir:function(){return this._dir},_isRoot:function(){var s=this._dir;return s=this._trimPath(s),""===s},_changeDir:function(dir){this._reset(),this._limitcount=0,this._setDir(dir),this._setLoader(),this._getList(dir)},_setState:function(name,state){this.options.use_state_cookies&&Wf.Cookie.set("wf_"+Wf.getName()+"_"+name,state)},_getState:function(name,def,callback){return this.options.use_state_cookies?(callback=callback||function(val){return val},Wf.Cookie.get("wf_"+Wf.getName()+"_"+name,def,callback)):def},_getList:function(src,filter){var path=src||this._dir;(src||""===this._dir)&&this._setState("dir",this._cleanPath(path)),this._hideButtons($(".button","#buttons")),this._limit=parseInt($("#browser-list-limit-select").val());var sort=this._sortValue||"",method="getItems";filter&&(method="searchItems"),Wf.JSON.request(method,[path,this._limit,this._limitcount,filter||"",sort],this._loadList,this)},refresh:function(e){this._reset(),this._setLoader(),"undefined"!=typeof e&&($("#search").val(""),this._searchQuery="",$("form").append('<input type="hidden" name="refresh" value="1" />'),this._refreshTree()),this._getList("",this._searchQuery)},load:function(item){var src="";item&&(this._addReturnedItem(item),src=item.name||item),this._setLoader(),this._getList(src)},error:function(error){this._raiseError(error)},startUpload:function(){$("#upload-queue").uploader("start")},stopUpload:function(){$("#upload-queue").uploader("stop")},setUploadStatus:function(o){$("#upload-queue").uploader("setStatus",o)},_loadList:function(o){var dir="";if($('input[name="refresh"]',"form").remove(),!o)return this.setStatus({message:"",state:""}),!1;if(this._foldercount=o.total.folders,this._filecount=o.total.files,$(".limit-right li, .limit-left li","#browser-list-limit").addClass("uk-invisible").attr("aria-hidden",!0),this._limit){this._limitend=o.total.folders+o.total.files-this._limit;var count=this._limitcount+o.folders.length+o.files.length;count<o.total.folders+o.total.files?$(".limit-right li","#browser-list-limit").removeClass("uk-invisible").attr("aria-hidden",!1):$(".limit-right li","#browser-list-limit").addClass("uk-invisible").attr("aria-hidden",!0),count-this._limit>0?$(".limit-left li","#browser-list-limit").removeClass("uk-invisible").attr("aria-hidden",!1):$(".limit-left li","#browser-list-limit").addClass("uk-invisible").attr("aria-hidden",!0)}this._searchQuery||($.each([].concat(o.folders,o.files),function(i,item){if(item.id)return dir=Wf.String.encodeURI(Wf.String.dirname(item.id)||"/",!0),!1}),dir&&this._setDir(dir)),this._isRoot()||($("#folder-list").append('<li class="folder-up" title="Up"><a href="javascript:;>...</a></li>'),this._treeLoaded()&&($("#tree-body").trigger("tree:createnode",[o.folders,this._dir]),$("#tree-body").trigger("tree:scroll",this._dir))),this._trigger("onBeforeBuildList",null,o),this._buildList(o),this._resetStatus(),this._resetMessage(),this._trigger("onAfterBuildList",null,o),this._returnedItems.length&&(this._findItem(this._returnedItems),this._returnedItems=[]),this._pasteitems&&this._showPasteButton(),$("#browser-list").trigger("load"),this._trigger("onListComplete")},_getDialogOptions:function(dialog){var options=this.options[dialog],elements="";if(options&&options.elements){if(!$.isPlainObject(options.elements))return options.elements;$.each(options.elements,function(k,v){v.options?(elements+='<div class="uk-form-row uk-placeholder uk-placeholder-small uk-flex">',elements+='<label class="uk-form-label uk-width-1-5" for="'+k+'">'+(v.label||k)+"</label>",elements+='<div class="uk-form-controls uk-width-4-5"><select id="'+k+'" name="'+k+'">',$.each(v.options,function(value,name){var selected="";v.default&&value===v.default&&(selected=" selected"),elements+='<option value="'+value+'"'+selected+">"+name+"</option>"}),elements+="</select></div>",elements+="</div>"):elements+='<div class="uk-form-row uk-placeholder uk-placeholder-small uk-flex"><label class="uk-form-label uk-width-1-5" for="'+k+'">'+v.label||k+'</label><div class="uk-form-controls uk-width-4-5"><input id="'+k+'" type="text" name="'+k+'" value="'+v.value||'" /></div></div>'})}return elements},_execute:function(name,type,evt){function callback(o,dir){if(o.folders.length&&self._treeLoaded()){$.each(items,function(i,item){"moveItem"==fn&&$("#tree-body").trigger("tree:removenode",[item])});var folders=$.map(o.folders,function(item,i){var name=item.name;return{id:name,name:Wf.String.basename(name)}});$("#tree-body").trigger("tree:createnode",[folders,dir])}self._trigger("onPaste")}var self=this,dir=this._dir;dir=this._trimPath(dir);var list=this._serializeSelectedItems(),site=Wf.getURI(!0);switch(name){case"help":Wf.help();break;case"insert":this._trigger("onFileInsert",null,$("li.selected","#item-list").get(0));break;case"view":var $item=$("li.selected.active:first","#item-list"),url=$item.data("url");url=/http(s)?:\/\//.test(url)?url:Wf.String.path(site,url),$item.data("preview")&&(url=$item.data("preview"));var name=Wf.String.basename($item.attr("title"));if(this._isViewable(name))if(/\.(jpeg|jpg|gif|png|webp|svg|apng|avi|wmv|wm|asf|asx|wmx|wvx|mov|qt|mpg|mp3|mp4|m4v|mpeg|ogg|ogv|webm|swf|flv|f4v|xml|dcr|rm|ra|ram|divx|pdf)/i.test(name)){var args={width:$item.data("width")||0,height:$item.data("height")||0};Wf.Modal.media(name,url,args)}else Wf.Modal.iframe(name,url,{onFrameLoad:function(e){function toRelative(s){return s=Wf.URL.toRelative(s),s.replace(/^administrator\//,"")}var iframe=$("div.iframe-preview iframe").get(0),h=iframe.contentWindow.document.body.innerHTML,tmpDiv=document.createElement("div");$(tmpDiv).html(h),$("img, embed",$(tmpDiv)).each(function(){var s=toRelative($(this).attr("src"));/http(s)?:\/\//.test(s)||(s=Wf.String.path(site,s)),$(this).attr("src",s)}),$("a, area",$(tmpDiv)).each(function(){var s=toRelative($(this).attr("href"));/http(s)?:\/\//.test(s)||(s=Wf.String.path(site,s)),$(this).attr("href",s)}),$("object",$(tmpDiv)).each(function(){$("param[name=movie], param[name=src]",this).each(function(){var s=toRelative($(this).attr("value"));/http(s)?:\/\//.test(s)||(s=string.path(site,s)),$(this).attr("value",s)})}),iframe.contentWindow.document.body.innerHTML=tmpDiv.innerHTML}});break;case"upload":var uploadModal=Wf.Modal.upload($.extend({elements:this._getDialogOptions("upload"),open:function(){function _checkName(file){var found=!1,msg=self._translate("file_exists_alert","A file with the same name exists in the target folder."),name=Wf.String.safe(file.name,self.options.websafe_mode,self.options.websafe_spaces,self.options.websafe_textcase);$("li","file-list").each(function(){name==$(this).attr("title")&&(found=!0)});var el=file.element,span=$("span.queue-name:first",el);return found?$(el).hasClass("exists")||($(el).addClass("exists"),$(span).attr("title",name+"::"+msg),$(span).tips()):$(el).hasClass("exists")&&($(el).removeClass("exists"),$(span).attr("title",name)),!0}$("#upload-queue").uploader($.extend({url:document.location.href,field:$('input[type="file"]:first'),websafe_mode:self.options.websafe_mode,websafe_spaces:self.options.websafe_spaces,websafe_textcase:self.options.websafe_textcase},self.options.upload)).on("uploadwidget:filerename",function(e,file){return _checkName(file)}).on("uploadwidget:filecomplete",function(e,file,item){self._addReturnedItem(item),self._trigger("onUploadFile",null,file)}).on("uploadwidget:uploadstart",function(e,file){file.data=$(":input[name]:enabled",file.element).map(function(){return{name:this.name,value:this.value}}),$(":input[name]:enabled",file.element).prop("disabled",!0)}).on("uploadwidget:uploadcomplete",function(e,errors){$("#upload-submit").disabled=!1,errors||(self._getList(),window.setTimeout(function(){$(uploadModal).trigger("modal.close")},1e3),self._trigger("onUploadComplete"))}),self._trigger("onUploadOpen")},upload:function(){var serialized=$(":input[name]:enabled","#upload-options").map(function(){return{name:this.name,value:this.value}}),fields=$.merge($("form > :input:enabled").serializeArray(),serialized);return fields.push({name:"upload-dir",value:dir}),self._trigger("onUpload",null,[fields]),$("#upload-queue").trigger("uploadwidget:upload",[fields]),!1},close:function(){$("#upload-queue").trigger("uploadwidget:close")}},self.options.upload.dialog));break;case"folder_new":var elements=this._getDialogOptions("folder_new");Wf.Modal.prompt(self._translate("folder_new","New Folder"),function(v,args){v&&(self._setLoader(),v=Wf.String.safe(v,self.options.websafe_mode,self.options.websafe_spaces,self.options.websafe_textcase),args=[dir,v].concat(args||[]),Wf.JSON.request("folderNew",args,function(o){o&&($("#tree-body").trigger("tree:createnode",[o.folders,dir]),self._trigger("onFolderNew")),self.refresh()}))},{elements:elements,label:{confirm:self._translate("create","Create")},validate:function(value){return!!value&&Wf.String.safe(value,self.options.websafe_mode,self.options.websafe_spaces,self.options.websafe_textcase)}});break;case"copy":case"cut":if("copy"===name&&(evt.metaKey||evt.ctrlKey)){var items=this.getSelectedItems(),clip=[];if($.each(items,function(){if(!$(this).hasClass("file"))return!0;var url=$(this).data("url");url.indexOf("://")===-1&&(url=Wf.String.path(site,url),url=Wf.URL.toAbsolute(url)),url&&clip.push(url)}),clip.length){var inp=document.createElement("input"),val=clip.join(",");if($(inp).css({position:"absolute",left:-9999}).attr("readonly",!0).appendTo("body").val(val).focus(),inp.select){inp.select();try{document.execCommand("copy")}catch(err){}}$(inp).remove()}return}this._pasteaction=name,this._pasteitems=list,this._showPasteButton();break;case"paste":var fn="copy"==this._pasteaction?"copyItem":"moveItem";this._setLoader();var items=this._pasteitems.split(",");$.each(items,function(i,item){var complete=i===items.length-1;Wf.JSON.request(fn,[item,dir],function(o){o?o.confirm?Wf.Modal.confirm(self._translate("paste_item_confirm","An item with the same name already exists in this folder. Do you want to replace it with the one you’re pasting?"),function(state){state&&Wf.JSON.request(fn,[item,dir,!0],function(o){o&&!o.error&&callback(o,dir)}),complete&&(self._clearPaste(),self.refresh())},{label:{confirm:self._translate("replace","Replace"),cancel:self._translate("cancel","Cancel")},header:!1}):(callback(o,dir),complete&&(self._clearPaste(),self.refresh())):complete&&(self._clearPaste(),self.refresh())},self,!0)});break;case"delete":var msg=self._translate("delete_item_alert","Delete Selected Item(s)");Wf.Modal.confirm(msg,function(state){state&&(self._setLoader(),Wf.JSON.request("deleteItem",list,function(o){o&&(o.folders.length&&(self._treeLoaded()&&$.each(o.folders,function(i,item){$("#tree-body").trigger("tree:removenode",[item])}),self._trigger("onFolderDelete",null,o.folders)),o.files.length&&self._trigger("onFileDelete",null,o.files)),self.refresh()}))},{label:{confirm:self._translate("delete","Delete"),cancel:self._translate("cancel","Cancel")},header:!1});break;case"rename":var ext,s=this.getSelectedItems(0),v=Wf.String.basename(list);$(s).hasClass("file")&&(ext=Wf.String.getExt(v),v=Wf.String.filename(v));var renameModal=Wf.Modal.prompt("Rename",function(name,args){return name=Wf.String.safe(name,self.options.websafe_mode,self.options.websafe_spaces,self.options.websafe_textcase),v===name?(Wf.Modal.alert(self._translate("rename_item_name_new","Please specify a new name for the item")),!1):void Wf.Modal.confirm(self._translate("rename_item_alert","Renaming files/folders will break existing links. Continue?"),function(state){state?(self._setLoader(),args=[list,name].concat(args||[]),Wf.JSON.request("renameItem",args,function(o){if(o){self._reset();var item=Wf.String.path(self._dir,name);o.folders.length&&(self._treeLoaded()&&$("#tree-body").trigger("tree:renamenode",[list,item]),self._trigger("onFolderRename",null,list,item)),ext&&(item=item+"."+ext),o.files.length&&self._trigger("onFileRename",null,item),item&&self._addReturnedItem({name:item})}self.refresh()}),$(renameModal).trigger("modal.close")):$(renameModal).trigger("modal.close")})},{value:v,header:!1,label:{confirm:self._translate("rename","Rename")},elements:this._getDialogOptions("rename"),close_on_submit:!1,validate:function(value){return!!value&&Wf.String.safe(value,self.options.websafe_mode,self.options.websafe_spaces,self.options.websafe_textcase)}})}},_raiseError:function(error){
var self=this,err="";switch($.type(error)){case"array":err+='<ul class="error-list">',$.each(error,function(k,v){err+="<li>"+v+"</li>"}),err+="</ul>";break;case"string":default:err=error}this._dialog.alert=Wf.Modal.alert(err,{close:function(){self.refresh()}})},_addActions:function(actions){var self=this;$.each(actions,function(i,action){self._addAction(action)})},_addAction:function(o){var self=this,name=o.name||"",fn=this._execute;o.action&&(fn=o.action);var map={folder_new:"folder-plus",upload:"cloud-upload",help:"question-circle"},cls=name.replace(/_/g,"-"),action=document.createElement("button");if($(action).addClass("action uk-button"),name){$(action).attr({id:name,title:o.title,"aria-label":o.title}).addClass(cls).append('<label id="'+name+'_label" class="uk-text uk-hidden-mini">&nbsp;'+o.title+"</label>");var icon=map[name]||name;$.each(icon.split(" "),function(i,k){$(action).prepend('<i class="uk-icon uk-icon-small uk-icon-'+cls+" uk-icon-"+k+'" />')}),icon.indexOf(" ")>=0&&($(".uk-icon",action).first().addClass("uk-icon-stack uk-text-contrast").removeClass("uk-icon-medium"),$('<span class="uk-stack uk-stack-medium" />').prependTo(action).append($(".uk-icon",action))),o.name&&$(action).on("mousedown.action",function(e){return e.preventDefault(),e.stopImmediatePropagation(),"function"==$.type(fn)?fn.call(self,name):self._trigger(fn,name)}),this._actions[name]=action}$("#browser-actions").append(action)},_getAction:function(name){return this._actions[name]},_addButtons:function(buttons){var self=this;buttons&&(buttons.folder&&$.each(buttons.folder,function(i,button){button&&self._addButton(button,"folder")}),buttons.file&&$.each(buttons.file,function(i,button){button&&self._addButton(button,"file")}))},_addButton:function(o,type){var self=this,fn=(this.options.dialog,this._execute);o.action&&(fn=o.action);var map={delete:"trash",cut:"cut",copy:"copy",paste:"paste",rename:"edit",preview:"preview",view:"preview","image-editor":"crop","text-editor":"file-xml"},button=$("button."+o.name,$("#browser-buttons"));if(!button.length){button=document.createElement("button"),$(button).attr({title:o.title,"aria-label":o.title});var name=o.name.replace(/_/g,"-");if(o.icon){var icons=o.icon.split(" ");$.each(icons,function(i,icon){$(button).append('<i class="uk-icon uk-icon-'+(map[icon]||icon)+'" />')}),icons.length>1&&$('<span class="uk-stack" />').append($(".uk-icon",button)).appendTo(button)}else $(button).prepend('<i class="uk-icon uk-icon-'+(map[name]||name)+'" />');name&&$(button).on("mousedown.button",function(evt){if(evt.preventDefault(),evt.stopPropagation(),$("li.selected","#item-list").length||self._pasteitems)return o.sticky&&$(button).toggleClass("uk-active"),"function"==$.type(fn)?fn.call(self,name,type,evt):self._trigger(fn,type)}),$("#browser-buttons").append(button),$(button).addClass("uk-button uk-button-link button "+o.name+" uk-hidden")}this._buttons[type][o.name]={name:o.name,element:button,trigger:o.trigger,multiple:o.multiple,single:"undefined"===$.type(o.single)||o.single,restrict:o.restrict||"",sticky:o.sticky}},_hideAllButtons:function(){var self=this;$(".button","#browser-buttons").each(function(){self._hideButton(this)})},_hideButtons:function(buttons){var self=this;$.each(buttons,function(i,button){self._hideButton(button)})},_hideButton:function(button){$(button).addClass("uk-hidden").attr("aria-hidden",!0)},_showButtons:function(){var self=this;this._hideAllButtons();var folder=$("li.folder.selected","#item-list"),file=$("li.file.selected","#item-list");if(file.length&&folder.length){var buttons={},filebtns=this._buttons.file,folderbtns=this._buttons.folder;$.each(filebtns,function(k,o){!o.trigger&&o.multiple&&folderbtns[k]&&(buttons[k]=o)}),$.each(folderbtns,function(k,o){!o.trigger&&o.multiple&&filebtns[k]&&(buttons[k]=o)}),$.each(buttons,function(k,o){self._showButton(o.element,o.single,!0)})}else{var type=file.length?"file":"folder";$.each(this._buttons[type],function(k,o){if(o.trigger||o.restrict||self._showButton(o.element,o.single,o.multiple),o.restrict){var re=o.restrict.split(",").join("|"),item=self.getSelectedItems(0);new RegExp("\\.("+re+")$","i").test($(item).attr("title"))&&self._showButton(o.element,o.single,o.multiple)}})}this._pasteitems&&this._showPasteButton()},_showButton:function(button,single,multiple){if(button){var show=!1,n=$("li.selected","#item-list").length;n>1?multiple&&(show=!0):single&&(show=!0),show?$(button).removeClass("uk-hidden").removeAttr("aria-hidden"):$(button).addClass("uk-hidden").attr("aria-hidden",!1)}},_getButton:function(type,name){return this._buttons[type][name]||null},_showPasteButton:function(){this._showButton($(".button.paste","#browser-buttons"),!0,!0)},_isSelectedItem:function(el){return $(el).is("li.selected")},_deselectItems:function(){this.options.dialog;$("li.selected","#item-list").removeClass("selected active").find('input[type="checkbox"]').prop("checked",!1),$("#browser-details-text, #browser-details-comment").empty(),$.each(["#browser-details-nav-left","#browser-details-nav-right","#browser-details-nav-text"],function(i,el){$(el).addClass("uk-invisible").attr("aria-hidden",!0)}),this._hideAllButtons(),$('input[type="checkbox"]',"#check-all").prop("checked",!1)},_selectItems:function(items,show){$(items).addClass("selected").find('input[type="checkbox"]').prop("checked",!0),show&&this._showSelectedItems();var $list=$("#item-list");$("input:checked",$list).length===$("li",$list).length&&$('input[type="checkbox"]',"#check-all").prop("checked",!0),this._trigger("onSelectItems",null,items)},_removeSelectedItems:function(items,show){$(items).removeClass("selected active").find('input[type="checkbox"]').prop("checked",!1),show&&this._showSelectedItems(),this._trigger("onRemoveItems",null,items)},getSelectedItems:function(key){var $items=$("li.selected","#item-list");return"number"==typeof key?$items[key]||$items:$items},setSelectedItems:function(items){this._findItem(items)},_setSelectedItems:function(e,multiple){var checkbox=!1,el=e.target,$list=$("#item-list");if("keydown"===e.type){if(el=$("li.selected:last",$list).get(0),$list=$("#browser-list"),38==e.which&&(el=el.previousSibling),40==e.which&&(el=el.nextSibling),!el)return;(el.offsetTop>$list.innerHeight()||el.offsetTop<$list.scrollTop())&&$list.scrollTop(el.offsetTop+$(el).innerHeight()-$list.height())}$(el).is('input[type="checkbox"]')&&(multiple=!0,checkbox=!0,el=$(el).parents("li").get(0)),"LI"!=el.nodeName&&(el=el.parentNode);var selected=$("li.selected",$list);if(this._isSelectedItem(el)&&1===selected.length)return e.preventDefault(),!1;var items=$("li.folder, li.file",$list),ctrl=e.ctrlKey||e.metaKey,shift=e.shiftKey;if((ctrl||shift||checkbox)&&multiple){if(multiple&&(ctrl||shift||checkbox)&&((ctrl||checkbox)&&(this._isSelectedItem(el)?this._removeSelectedItems([el],!0):this._selectItems([el],!0)),shift))if(selected.length){var si=$(selected).index(),ci=$(el,items).index(),selection=[];if(this._deselectItems(),ci>si)for(var i=ci;i>=si;i--)selection.push(items[i]);else for(var i=si;i>=ci;i--)selection.push(items[i]);this._selectItems(selection,!0)}else this._selectItems([el],!0)}else $(el).find('input[type="checkbox"]').prop("checked",!1),this._deselectItems(),this._selectItems([el],!0)},_showSelectedItems:function(){var $items=$("li.selected","#item-list"),n=$items.length;n?($items.first().addClass("active"),this._showItemDetails()):this._reset()},_findItem:function(files,type){var self=this,items=[];type=type||"file","string"==$.type(files)&&(files=[files]);var insert=!1,$list=$("#item-list"),base=self.getBaseDir();if($.each(files,function(i,file){if(file&&file.name){var name=decodeURIComponent(file.name);if($list.length){var item=[];item=$("li."+type+'[title="'+Wf.String.basename(name)+'"], li.'+type+'[data-url="'+Wf.String.path(base,name)+'"]',$list),item.length&&(file.insert&&(insert=!0,items=item,self.serializeItemData(item).then(function(data){self._trigger("onFileClick",[item,data])})),insert||$.merge(items,item))}}}),items.length){var h=$(items).first().outerHeight()+$(".folder-up").outerHeight(),top=$(items).get(0).offsetTop-h;$("#browser-list").animate({scrollTop:Math.round(top)},1500,function(){$(this).off(scrollEvents)})}this._selectItems(items,!0)},serializeItemData:function(item){var self=this;return new Promise(function(resolve,reject){var props={};if($.each(["url","preview","width","height","description"],function(i,key){props[key]=$(item).attr("data-"+key)||""}),props.title=$(item).attr("title"),props.title=Wf.String.basename(props.title),props.url)resolve(props);else{var path=Wf.String.path(self._dir,props.title);Wf.JSON.request("getFileDetails",[path],function(o){o&&!o.error&&(props=$.extend(props,o)),resolve(props)})}})},_serializeSelectedItems:function(){var self=this;return $("li.selected","#item-list").map(function(){return Wf.String.path(self._dir,$(this).attr("title"))}).get().join(",")},_showItemDetails:function(){var self=this,$items=$("li.selected","#item-list"),n=$items.length,$nav=$("#browser-details-nav");if(n>1){var index=$items.index($items.filter(".active"));index?$(".details-nav-left",$nav).removeClass("uk-invisible").attr("aria-hidden",!1):$(".details-nav-left",$nav).addClass("uk-invisible").attr("aria-hidden",!0),index+1<n?$(".details-nav-right",$nav).removeClass("uk-invisible").attr("aria-hidden",!1):$(".details-nav-right",$nav).addClass("uk-invisible").attr("aria-hidden",!0),$(".details-nav-text",$nav).removeClass("uk-invisible").html(function(){return self._translate("one_of_many","%o of %m").replace("%o",index+1).replace("%m",n)})}else $("li",$nav).addClass("uk-invisible").attr("aria-hidden",!0);this._showButtons(),this._getItemDetails()},_getDimensions:function(file){var img=new Image;if($(file).data("url")){var src=Wf.String.path(Wf.getURI(),$(file).data("url"));$(file).addClass("loading disabled").children("span.checkbox").addClass("disabled"),img.onload=function(){$(file).attr({"data-preview":src,"data-width":img.width,"data-height":img.height}),$(file).removeClass("loading disabled").children("span.checkbox").removeClass("disabled")},img.onerror=function(){$(file).removeClass("loading disabled").children("span.checkbox").removeClass("disabled")},img.src=src}},_getMediaProps:function(file){return new Promise(function(resolve,reject){if(!file.type)return reject();if("video"===file.type&&/\.(mp4|m4v|ogg|ogv|webm)$/i.test(file.preview)&&$.support.video){var props={},video=document.createElement("video");video.onloadedmetadata=function(){props={duration:parseInt(video.duration/60,10)+":"+parseInt(video.duration%60,10),width:video.videoWidth,height:video.videoHeight},video=null,resolve(props)},video.src=file.preview}else if("audio"===file.type&&/\.(mp3|oga|ogg)$/i.test(file.preview)&&$.support.audio){var props={},audio=document.createElement("audio");audio.onloadedmetadata=function(){props.duration=parseInt(audio.duration/60,10)+":"+parseInt(audio.duration%60,10),audio=null,resolve(props)},audio.src=file.preview}else if("image"===file.type){var props={},image=new Image;image.onload=function(){props.width=image.width,props.height=image.height,resolve(props)};var src=Wf.String.encodeURI(file.preview)+"?"+(new Date).getTime();(/:\/\//.test(file.preview)||file.preview.indexOf("?")!==-1)&&(src=file.preview),image.src=src}else reject()})},_getItemDetails:function(){var mime,self=this,item=$("li.selected.active","#item-list"),title=Wf.String.basename($(item).attr("title")),type=$(item).hasClass("folder")?"folder":"file";$("#browser-details-text").empty().addClass("loading");var path=Wf.String.path(this._dir,Wf.String.encodeURI(title)),name=title,ext="";$(self.element).next("span.loader").remove(),"file"==type&&(name=Wf.String.stripExt(title),ext=Wf.String.getExt(title));var info=document.createElement("div");$(info).addClass("uk-comment uk-height-1-1").append('<div class="uk-comment-header"><h5 class="uk-width-1-1 uk-margin-remove uk-text-bold uk-text-truncate" title="'+name+'">'+name+'</h5><div class="uk-comment-meta">'+ext+" "+self._translate(type,Wf.String.ucfirst(type))+'</div><div class="uk-comment-meta" id="info-properties"><div></div>'),$(info).append('<div class="uk-comment-body uk-width-1-1 uk-text-center" id="info-preview"></div>'),$("#browser-details-text").removeClass("loading").empty().append(info);var comments="";$(item).hasClass("notwritable")&&(comments+='<li class="comments '+type+' notwritable"><span class="hastip" title="'+self._translate("notwritable_desc","Unwritable")+'">'+self._translate("notwritable","Unwritable")+"</span></li>"),$(item).data("trigger")&&$.each($(item).data("trigger").split(","),function(i,v){if(""!==v){var button=self._getButton(type,v);button&&self._showButton(button.element,button.single,button.multiple)}}),$(item).data("size")&&$(".uk-comment-header",info).append('<div class="uk-comment-meta" id="info-size">'+tinyMCEPopup.getLang("dlg.size","Size")+": "+Wf.String.formatSize($(item).data("size"))+"</div>"),$(item).data("modified")&&$(".uk-comment-header",info).append('<div class="uk-comment-meta" id="info-modified">'+tinyMCEPopup.getLang("dlg.modified","Modified")+": "+Wf.String.formatDate($(item).data("modified"),self.options.date_format)+"</div>"),comments&&$("#browser-details-comment").empty().append("<ul>"+comments+"</ul>"),$("span.hastip",$("#browser-details-comment")).tips(),"folder"===type?self._trigger("onFolderDetails",null,item):self.serializeItemData(item).then(function(data){function callback(data){data.width&&data.height&&($(".uk-comment-header",info).append('<div class="uk-comment-meta" id="info-dimensions">'+self._translate("dimensions","Dimensions")+": "+data.width+" x "+data.height+"</div>"),mime&&"image"===mime&&$("#info-preview").empty().append('<img src="'+data.preview+'" alt="" />').removeClass("loading")),data.duration&&$(".uk-comment-header",info).append('<div class="uk-comment-meta" id="info-duration">'+tinyMCEPopup.getLang("dlg.duration","Duration")+": "+data.duration+"</div>"),self._trigger("onFileDetails",[item,data])}if($.each(data,function(key,value){$(item).data(key,value)}),mime=getMimeType(ext)){if("image"===mime&&data.width&&data.height)return callback(data);if("video"===mime&&data.width&&data.height&&data.duration)return callback(data);if("audio"===mime&&data.duration)return callback(data);self._getMediaProps({preview:data.preview,type:mime}).then(function(o){$.each(o,function(key,value){data[key]=value,$(item).data(data)}),callback(data)},function(){Wf.JSON.request("getDimensions",[path],function(o){o&&!o.error&&$.each(o,function(key,value){data[key]=value,$(item).data(data)}),callback(data)})})}})}},$.fn.filebrowser=function(options){$(this).addClass("filebrowser");var instance=new FileBrowser(this,options);return $(this).on("filebrowser:insert",function(e,cb){var selected=instance.getSelectedItems(),promises=[];$(selected).each(function(){promises.push(instance.serializeItemData(this))}),Promise.all(promises).then(function(props){return"function"==typeof cb?cb(selected,props):props})}),$(this).on("filebrowser:status",function(e,status){instance.setStatus(status)}),$(this).on("filebrowser:load",function(e,url){return instance.load(url)}),$(this).on("filebrowser:refresh",function(){return instance.refresh()}),$(this).on("filebrowser:sort",function(){return instance._showItemDetails()}),$.fn.filebrowser.getbasedir=function(){return instance.getBaseDir()},$.fn.filebrowser.getcurrentdir=function(){return instance.getCurrentDir()},$.fn.filebrowser.getselected=function(){return instance.getSelectedItems()},$.fn.filebrowser.status=function(status){return instance.setStatus(status)},$.fn.filebrowser.load=function(url){return instance.load(url)},this},window.FileBrowser=FileBrowser}(jQuery,Wf);var WFFileBrowser={settings:{},element:"",init:function(element,options){$.extend(!0,this.settings,options),this.element=element,$(this.element).filebrowser(this.settings)},getBaseDir:function(){return $.fn.filebrowser.getbasedir()},getCurrentDir:function(){return $.fn.filebrowser.getcurrentdir()},getSelectedItems:function(key){return $.fn.filebrowser.getselected(key)},setSelectedItems:function(items){return $.fn.filebrowser.setselected(items)},refresh:function(){return $.fn.filebrowser.refresh()},status:function(message,state){return $.fn.filebrowser.status(message,state)},load:function(items){$(this.element).trigger("filebrowser:load",items)},get:function(fn,args){return WFFileBrowser[fn](args)}};

Copyright © 2019 by b0y-101