@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 6.08 kB
JavaScript
module.exports=function(i){var n={};function a(e){if(n[e])return n[e].exports;var t=n[e]={exports:{},id:e,loaded:!1};return i[e].call(t.exports,t,t.exports,a),t.loaded=!0,t.exports}return a.m=i,a.c=n,a.p="",a(0)}({0:function(e,t,i){e.exports=i(1319)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1319:function(e,t,i){var n;i(3),i=[i(1320)],void 0===(t="function"==typeof(n=function(){var e={id:"imagebrowser",name:"ImageBrowser",category:"web",description:"",hidden:true,depends:["filebrowser"]},l=window.kendo.jQuery,p=void 0,c=window.kendo,n=c.ui.FileBrowser,r=l.isPlainObject,d=l.extend,f=c.isFunction,s=/(^\/|\/$)/g,h="error",u=".kendoImageBrowser",m="name",v="size",a="type",g={field:a,dir:"asc"},i=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>');function o(e){return e.offsetTop-l(e).height()}function w(e,t){if(e===p||!e.match(/\/$/))e=(e||"")+"/";return e+t}function _(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}d(true,c.data,{schemas:{imagebrowser:{data:function(e){return e.items||e||[]},model:{id:"name",fields:{name:"name",size:"size",type:"type"}}}}}),d(true,c.data,{transports:{imagebrowser: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(f(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 t=n.extend({init:function(e,t){var i=this;t=t||{};n.fn.init.call(i,e,t);i.element.addClass("k-imagebrowser")},options:{name:"ImageBrowser",fileTypes:"*.png,*.gif,*.jpg,*.jpeg"},value:function(){var e=this,t=e._selectedItem(),i,n=e.options.transport.imageUrl;if(t&&t.get(a)==="f"){i=w(e.path(),t.get(m)).replace(s,"");if(n)i=f(n)?n(i):c.format(n,encodeURIComponent(i));return i}},_fileUpload:function(e){var i=this,t=i.options,n=t.fileTypes,a=new RegExp(("("+n.split(",").join(")|(")+")").replace(/\*\./g,".*."),"i"),s=e.files[0].name,o=e.files[0].size,r=m,l=v,d;if(a.test(s)){e.data={path:i.path()};d=i._createFile(s,o);if(!d)e.preventDefault();else{d._uploading=true;i.upload.one("error",function(){d=p});i.upload.one("success",function(e){if(d){delete d._uploading;var t=i._insertFileToList(d);t.set(r,e.response[i._getFieldName(r)]);t.set(l,e.response[i._getFieldName(l)]);i._tiles=i.listView.items().filter("["+c.attr("type")+"=f]");i._scroll()}})}}else{e.preventDefault();i._showMessage(c.format(t.messages.invalidFileType,s,n))}},_content:function(){var t=this;t.list=l('<div class="k-filemanager-listview" />').appendTo(t.element).on("dblclick"+u,".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]");t._scroll()}else this.content.append(i({text:t.options.messages.emptyFolder}))},change:t._listViewChange.bind(t)});t.listView.content.on("scroll"+u,t._scroll.bind(t))},_dataSource:function(){var e=this,t=e.options,i=t.transport,n=d({},g),a={field:m,dir:"asc"},s,o={type:i.type||"imagebrowser",sort:[n,a]};if(r(i)){i.path=e.path.bind(e);o.transport=i}if(r(t.schema))o.schema=t.schema;else if(i.type&&r(c.data.schemas[i.type]))s=c.data.schemas[i.type];if(e.dataSource&&e._errorHandler)e.dataSource.unbind(h,e._errorHandler);else e._errorHandler=e._error.bind(e);e.dataSource=c.data.DataSource.create(o).bind(h,e._errorHandler)},_loadImage:function(e){var t=this,i=l(e),n=t.dataSource.getByUid(i.attr(c.attr("uid"))),a=n.get(m),s=t.options.transport.thumbnailUrl,o=l("<img />",{alt:a}),r="?";if(n._uploading)return;o.hide().on("load"+u,function(){l(this).prev().remove().end().addClass("k-image k-file-image").fadeIn()});i.find(".k-i-loading").after(o);if(f(s))s=s(t.path(),encodeURIComponent(a));else{if(s.indexOf("?")>=0)r="&";s=s+r+"path="+encodeURIComponent(t.path()+a);if(n._override){s+="&_="+(new Date).getTime();delete n._override}}o.attr("src",s);e.loaded=true},_scroll:function(){var a=this;if(a.options.transport&&a.options.transport.thumbnailUrl){clearTimeout(a._timeout);a._timeout=setTimeout(function(){var e=c._outerHeight(a.listView.content),i=a.listView.content.scrollTop(),n=i+e;a._tiles.each(function(){var e=o(this),t=e+this.offsetHeight;if(e>=i&&e<n||t>=i&&t<n)a._loadImage(this);if(e>n)return false});a._tiles=a._tiles.filter(function(){return!this.loaded})},250)}},_itemTmpl:function(){var e=this,t='<div class="k-listview-item" '+c.attr("uid")+'="#=uid#" ';t+=c.attr("type")+'="${'+a+'}">';t+="#if("+a+' == "d") { #';t+='<div class="k-file-preview"><span class="k-file-icon k-icon k-i-folder"></span></div>';t+="#}else{#";if(e.options.transport&&e.options.transport.thumbnailUrl)t+='<div class="k-file-preview"><span class="k-file-icon k-icon k-i-loading"></span></div>';else t+='<div class="k-file-preview"><span class="k-file-icon k-icon k-i-file"></span></div>';t+="#}#";t+='<span class="k-file-name">${'+m+"}</span>";t+="#if("+a+' == "f") { # <span class="k-file-size">${this.sizeFormatter('+v+")}</span> #}#";t+="</div>";return c.template(t).bind({sizeFormatter:_})}});return c.ui.plugin(t),window.kendo})?n.apply(t,i):n)||(e.exports=t)},1320:function(e,t){e.exports=require("./kendo.filebrowser")}});