UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

1 lines 15.4 kB
module.exports=function(i){var a={};function n(e){if(a[e])return a[e].exports;var t=a[e]={exports:{},id:e,loaded:!1};return i[e].call(t.exports,t,t.exports,n),t.loaded=!0,t.exports}return n.m=i,n.c=a,n.p="",n(0)}({0:function(e,t,i){e.exports=i(1263)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1065:function(e,t){e.exports=require("./kendo.dropdownlist")},1263:function(e,t,i){var a;i(3),i=[i(1264),i(1065),i(1265),i(1266)],void 0===(t="function"==typeof(a=function(){var e={id:"filebrowser",name:"FileBrowser",category:"web",description:"",hidden:true,depends:["selectable","listview","dropdownlist","upload","breadcrumb"]},l=window.kendo.jQuery,f=void 0,c=window.kendo,a=c.ui.Widget,s=l.isPlainObject,h=l.extend,n=c.support.placeholder,k=c.isFunction,m=/(^\/|\/$)/g,i="change",v="apply",d="error",b="click",o=".kendoFileBrowser",r=".kendoSearchBox",u="name",w="size",p="type",g={field:p,dir:"asc"},_=c.template('<div class="k-listview-item k-listview-item-empty"><span class="k-file-preview"><span class="k-file-icon k-icon k-i-none"></span></span><span class="k-file-name">${text}</span></div>'),y='<div class="k-widget k-filebrowser-toolbar k-toolbar k-floatwrap">'+"# if (showCreate) { #"+'<button type="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-icon-button"><span class="k-i-button-icon k-icon k-i-folder-add"></span></button>'+"# } #"+"# if (showUpload) { # "+'<div class="k-widget k-upload">'+'<div class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-upload-button">'+'<span class="k-button-icon k-icon k-i-plus"></span>'+'<span class="k-button-text">#=messages.uploadFile#</span>'+'<input type="file" name="file" />'+"</div>"+"</div>"+"# } #"+"# if (showDelete) { #"+'<button type="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-icon-button k-disabled"><span class="k-button-icon k-icon k-i-close"></span></button>'+"# } #"+'<div class="k-tiles-arrange">'+"<label>#=messages.orderBy#: <select></select></label>"+"</div>"+'<span class="k-toolbar-spacer"></span>'+'<input data-role="searchbox" />'+"</div>";function t(e,t,i){var a,n;e.on("dragenter"+o,function(){t();n=new Date;if(!a)a=setInterval(function(){var e=new Date-n;if(e>100){i();clearInterval(a);a=null}},100)}).on("dragover"+o,function(){n=new Date})}function x(e,t){if(e===f||!e.match(/\/$/))e=(e||"")+"/";return e+t}function S(e){if(!e)return"";var t=" bytes";if(e>=1073741824){t=" GB";e/=1073741824}else if(e>=1048576){t=" MB";e/=1048576}else if(e>=1024){t=" KB";e/=1024}return Math.round(e*100)/100+t}function F(e,t){var i=e[t];if(s(i))return i.from||i.field||t;return i}h(true,c.data,{schemas:{filebrowser:{data:function(e){return e.items||e||[]},model:{id:"name",fields:{name:"name",size:"size",type:"type"}}}}}),h(true,c.data,{transports:{filebrowser:c.data.RemoteTransport.extend({init:function(e){c.data.RemoteTransport.fn.init.call(this,l.extend(true,{},this.options,e))},_call:function(e,t){t.data=l.extend({},t.data,{path:this.options.path()});if(k(this.options[e]))this.options[e].call(this,t);else c.data.RemoteTransport.fn[e].call(this,t)},read:function(e){this._call("read",e)},create:function(e){this._call("create",e)},destroy:function(e){this._call("destroy",e)},update:function(){},options:{read:{type:"POST"},update:{type:"POST"},create:{type:"POST"},destroy:{type:"POST"}}})}});var B=a.extend({init:function(e,t){var i=this;t=t||{};a.fn.init.call(i,e,t);i.element.addClass("k-filebrowser");i.element.on(b+o,".k-filebrowser-toolbar button:not(.k-disabled):has(.k-i-close)",i._deleteClick.bind(i)).on(b+o,".k-filebrowser-toolbar button:not(.k-disabled):has(.k-i-folder-add)",i._addClick.bind(i)).on("keydown"+o,".k-listview-item.k-state-selected input",i._directoryKeyDown.bind(i)).on("blur"+o,".k-listview-item.k-state-selected input",i._directoryBlur.bind(i));i._dataSource();i.refresh();i.path(i.options.path)},options:{name:"FileBrowser",messages:{uploadFile:"Upload",orderBy:"Arrange by",orderByName:"Name",orderBySize:"Size",directoryNotFound:"A directory with this name was not found.",emptyFolder:"Empty Folder",deleteFile:'Are you sure you want to delete "{0}"?',invalidFileType:'The selected file "{0}" is not valid. Supported file types are {1}.',overwriteFile:'A file with name "{0}" already exists in the current directory. Do you want to overwrite it?',dropFilesHere:"drop file here to upload",search:"Search"},transport:{},path:"/",fileTypes:"*.*"},events:[d,i,v],destroy:function(){var e=this;a.fn.destroy.call(e);e.dataSource.unbind(d,e._errorHandler);e.element.add(e.list).add(e.toolbar).off(o);c.destroy(e.element)},value:function(){var e=this,t=e._selectedItem(),i,a=e.options.transport.fileUrl;if(t&&t.get(p)==="f"){i=x(e.path(),t.get(u)).replace(m,"");if(a)i=k(a)?a(i):c.format(a,encodeURIComponent(i));return i}},_selectedItem:function(){var e=this.listView,t=e.select();if(t.length)return this.dataSource.getByUid(t.attr(c.attr("uid")))},_toolbar:function(){var t=this,e=c.template(y),i=t.options.messages,a=[{text:i.orderByName,value:"name"},{text:i.orderBySize,value:"size"}];t.toolbar=l(e({messages:i,showUpload:t.options.transport.uploadUrl,showCreate:t.options.transport.create,showDelete:t.options.transport.destroy})).appendTo(t.element).find(".k-upload input").kendoUpload({multiple:false,localization:{dropFilesHere:i.dropFilesHere},async:{saveUrl:t.options.transport.uploadUrl,autoUpload:true},upload:t._fileUpload.bind(t),error:function(e){t._error({xhr:e.XMLHttpRequest,status:"error"})}}).end();t.upload=t.toolbar.find(".k-upload input").data("kendoUpload");t.arrangeBy=t.toolbar.find(".k-tiles-arrange select").kendoDropDownList({dataSource:a,dataTextField:"text",dataValueField:"value",change:function(){t.orderBy(this.value())}}).data("kendoDropDownList");t.searchBox=t.toolbar.find("input[data-role='searchbox']").kendoSearchBox({label:t.options.messages.search,change:function(){t.search(this.value())}}).data("kendoSearchBox");t._attachDropzoneEvents()},_attachDropzoneEvents:function(){var e=this;if(e.options.transport.uploadUrl){t(l(document.documentElement),e._dropEnter.bind(e),e._dropLeave.bind(e));e._scrollHandler=e._positionDropzone.bind(e)}},_dropEnter:function(){this._positionDropzone();l(document).on("scroll"+o,this._scrollHandler)},_dropLeave:function(){this._removeDropzone();l(document).off("scroll"+o,this._scrollHandler)},_positionDropzone:function(){var e=this,t=e.element,i=t.offset();e.toolbar.find(".k-dropzone").addClass("k-filebrowser-dropzone").offset(i).css({width:t[0].clientWidth,height:t[0].clientHeight,lineHeight:t[0].clientHeight+"px"})},_removeDropzone:function(){this.toolbar.find(".k-dropzone").removeClass("k-filebrowser-dropzone").css({width:"",height:"",lineHeight:"",top:"",left:""})},_deleteClick:function(){var e=this,t=e.listView.select(),i=c.format(e.options.messages.deleteFile,t.find(".k-file-name").text());if(t.length&&e._showMessage(i,"confirm"))e.listView.remove(t)},_addClick:function(){this.createDirectory()},_getFieldName:function(e){return F(this.dataSource.reader.model.fields,e)},_fileUpload:function(e){var i=this,t=i.options,a=t.fileTypes,n=new RegExp(("("+a.split(",").join(")|(")+")").replace(/\*\./g,".*."),"i"),o=e.files[0].name,r=e.files[0].size,s=u,l=w,d;if(n.test(o)){e.data={path:i.path()};d=i._createFile(o,r);if(!d)e.preventDefault();else i.upload.one("success",function(e){var t=i._insertFileToList(d);if(t._override){t.set(s,e.response[i._getFieldName(s)]);t.set(l,e.response[i._getFieldName(l)]);i.listView.dataSource.pushUpdate(t)}i._tiles=i.listView.items().filter("["+c.attr("type")+"=f]")})}else{e.preventDefault();i._showMessage(c.format(t.messages.invalidFileType,o,a))}},_findFile:function(e){var t=this.dataSource.data(),i,a,n=p,o=u,r;e=e.toLowerCase();for(i=0,r=t.length;i<r;i++)if(t[i].get(n)==="f"&&t[i].get(o).toLowerCase()===e){a=t[i];break}return a},_createFile:function(e,t){var i=this,a={},n=p,o=i._findFile(e);if(o)if(!i._showMessage(c.format(i.options.messages.overwriteFile,e),"confirm"))return null;else{o._override=true;return o}a[n]="f";a[u]=e;a[w]=t;return a},_insertFileToList:function(e){var t;if(e._override)return e;var i=this.dataSource;var a=i.view();for(var n=0,o=a.length;n<o;n++)if(a[n].get(p)==="f"){t=n;break}return i.insert(++t,e)},createDirectory:function(){var i=this,e,t,a=0,n=p,o=u,r=i.dataSource.data(),s=i._nameDirectory(),l=new i.dataSource.reader.model;for(e=0,t=r.length;e<t;e++)if(r[e].get(n)==="d")a=e;l.set(n,"d");l.set(o,s);i.listView.one("dataBound",function(){var e=i.listView.items().filter("["+c.attr("uid")+"="+l.uid+"]");if(e.length)this.edit(e);this.element.scrollTop(e.attr("offsetTop")-this.element[0].offsetHeight);setTimeout(function(){i.listView.element.find(".k-edit-item input").select()})}).one("save",function(e){var t=e.model.get(o);if(!t)e.model.set(o,s);else e.model.set(o,i._nameExists(t,l.uid)?i._nameDirectory():t)});i.dataSource.insert(++a,l)},_directoryKeyDown:function(e){if(e.keyCode==13)e.currentTarget.blur()},_directoryBlur:function(){this.listView.save()},_nameExists:function(e,t){var i=this.dataSource.data(),a=p,n=u,o,r;for(o=0,r=i.length;o<r;o++)if(i[o].get(a)==="d"&&i[o].get(n).toLowerCase()===e.toLowerCase()&&i[o].uid!==t)return true;return false},_nameDirectory:function(){var e="New folder",t=this.dataSource.data(),i=[],a=p,n=u,o,r,s;for(r=0,s=t.length;r<s;r++)if(t[r].get(a)==="d"&&t[r].get(n).toLowerCase().indexOf(e.toLowerCase())>-1)i.push(t[r].get(n));if(l.inArray(e,i)>-1){r=2;do{o=e+" ("+r+")";r++}while(l.inArray(o,i)>-1);e=o}return e},orderBy:function(e){this.dataSource.sort([{field:p,dir:"asc"},{field:e,dir:"asc"}])},search:function(e){this.dataSource.filter({field:u,operator:"contains",value:e})},_content:function(){var t=this;t.list=l('<div class="k-filemanager-listview" />').appendTo(t.element).on("dblclick"+o,".k-listview-item",t._dblClick.bind(t));t.listView=new c.ui.ListView(t.list,{layout:"flex",flex:{direction:"row",wrap:"wrap"},dataSource:t.dataSource,template:t._itemTmpl(),editTemplate:t._editTmpl(),selectable:true,autoBind:false,dataBinding:function(e){t.toolbar.find(".k-i-close").parent().addClass("k-disabled");if(e.action==="remove"||e.action==="sync"){e.preventDefault();c.ui.progress(t.listView.content,false)}},dataBound:function(){if(t.dataSource.view().length)t._tiles=this.items().filter("["+c.attr("type")+"=f]");else this.content.append(_({text:t.options.messages.emptyFolder}))},change:t._listViewChange.bind(t)})},_dblClick:function(e){var t=this,i=l(e.currentTarget);if(i.hasClass("k-edit-item"))t._directoryBlur();if(i.filter("["+c.attr("type")+"=d]").length){var a=t.dataSource.getByUid(i.attr(c.attr("uid")));if(a){t.path(x(t.path(),a.get(u)));t.breadcrumbs.value("/"+t.path())}}else if(i.filter("["+c.attr("type")+"=f]").length)t.trigger(v)},_listViewChange:function(){var e=this._selectedItem();if(e){this.toolbar.find(".k-i-close").parent().removeClass("k-disabled");this.trigger(i,{selected:e})}},_dataSource:function(){var e=this,t=e.options,i=t.transport,a=h({},g),n={field:u,dir:"asc"},o,r={type:i.type||"filebrowser",sort:[a,n]};if(s(i)){i.path=e.path.bind(e);r.transport=i}if(s(t.schema))r.schema=t.schema;else if(i.type&&s(c.data.schemas[i.type]))o=c.data.schemas[i.type];if(e.dataSource&&e._errorHandler)e.dataSource.unbind(d,e._errorHandler);else e._errorHandler=e._error.bind(e);e.dataSource=c.data.DataSource.create(r).bind(d,e._errorHandler)},_navigation:function(){var e=this,t=l('<div class="k-floatwrap"><nav></nav></div>').appendTo(this.element);e.breadcrumbs=t.find("nav").first().kendoBreadcrumb({editable:true,gap:50,value:e.options.path||"/",change:function(){e.path(this.value())}}).data("kendoBreadcrumb")},_error:function(e){var t=this,i;if(!t.trigger(d,e)){i=e.xhr.status;if(e.status=="error"){if(i=="404")t._showMessage(t.options.messages.directoryNotFound);else if(i!="0")t._showMessage("Error! The requested URL returned "+i+" - "+e.xhr.statusText)}else if(i=="timeout")t._showMessage("Error! Server timeout.");var a=t.dataSource;if(a.hasChanges())a.cancelChanges()}},_showMessage:function(e,t){return window[t||"alert"](e)},refresh:function(){var e=this;e._navigation();e._toolbar();e._content()},_editTmpl:function(){var e='<div class="k-listview-item k-state-selected" '+c.attr("uid")+'="#=uid#" ';e+=c.attr("type")+'="${'+p+'}">';e+="#if("+p+' == "d") { #';e+='<div class="k-file-preview"><span class="k-file-icon k-icon k-i-folder"></span></div>';e+="#}else{#";e+='<div class="k-file-preview"><span class="k-file-icon k-icon k-i-loading"></span></div>';e+="#}#";e+="#if("+p+' == "d") { #';e+='<span class="k-file-name"><span class="k-textbox k-input k-input-md k-rounded-md k-input-solid"><input class="k-input-inner" '+c.attr("bind")+'="value:'+u+'"/></span></span>';e+="#}#";e+="</div>";return c.template(e).bind({sizeFormatter:S})},_itemTmpl:function(){var e='<div class="k-listview-item" '+c.attr("uid")+'="#=uid#" ';e+=c.attr("type")+'="${'+p+'}">';e+="#if("+p+' == "d") { #';e+='<div class="k-file-preview"><span class="k-file-icon k-icon k-i-folder"></span></div>';e+="#}else{#";e+='<div class="k-file-preview"><span class="k-file-icon k-icon k-i-file"></span></div>';e+="#}#";e+='<span class="k-file-name">${'+u+"}</span>";e+="#if("+p+' == "f") { # <span class="k-file-size">${this.sizeFormatter('+w+")}</span> #}#";e+="</div>";return c.template(e).bind({sizeFormatter:S})},path:function(e){var t=this,i=t._path||"";if(e!==f){t._path=e.replace(m,"")+"/";t.dataSource.read({path:t._path});return}if(i)i=i.replace(m,"");return i==="/"||i===""?"":i+"/"}}),T=a.extend({init:function(e,t){var i=this;t=t||{};a.fn.init.call(i,e,t);if(n)i.element.attr("placeholder",i.options.label);i._wrapper();i.element.on("keydown"+r,i._keydown.bind(i)).on("change"+r,i._updateValue.bind(i));i.wrapper.on(b+r,"a",i._click.bind(i));if(!n)i.element.on("focus"+r,i._focus.bind(i)).on("blur"+r,i._blur.bind(i))},options:{name:"SearchBox",label:"Search",value:""},events:[i],destroy:function(){var e=this;e.wrapper.add(e.element).add(e.label).off(r);a.fn.destroy.call(e)},_keydown:function(e){if(e.keyCode===13)this._updateValue()},_click:function(e){e.preventDefault();this._updateValue()},_updateValue:function(){var e=this,t=e.element.val();if(t!==e.value()){e.value(t);e.trigger(i)}},_blur:function(){this._updateValue();this._toggleLabel()},_toggleLabel:function(){if(!n)this.label.toggle(!this.element.val())},_focus:function(){this.label.hide()},_wrapper:function(){var e=this.element,t=e.parents(".k-search-wrap");e[0].style.width="";e.addClass("k-input-inner");if(!t.length){t=e.wrap(l('<div class="k-widget k-search-wrap"><span class="k-textbox k-input k-input-md k-rounded-md k-input-solid"></span></div>')).parents(".k-search-wrap");if(!n)l('<label style="display:block">'+this.options.label+"</label>").insertBefore(e);l('<span class="k-input-suffix"><a href="#" class="k-icon k-i-zoom k-search"/></span>').appendTo(t.find(".k-textbox"))}this.wrapper=t;this.label=t.find(">label")},value:function(e){var t=this;if(e!==f){t.options.value=e;t.element.val(e);t._toggleLabel();return}return t.options.value}});return c.ui.plugin(B),c.ui.plugin(T),window.kendo})?a.apply(t,i):a)||(e.exports=t)},1264:function(e,t){e.exports=require("./kendo.listview")},1265:function(e,t){e.exports=require("./kendo.upload")},1266:function(e,t){e.exports=require("./kendo.breadcrumb")}});