UNPKG

@progress/kendo-ui

Version:

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

3 lines (2 loc) 5.42 kB
!function(e){"function"==typeof define&&define.amd?define(["kendo.filebrowser.min","kendo.icons.min"],e):e()}((function(){!function(e,t){var i=window.kendo,n=i.ui.FileBrowser,a=e.isPlainObject,o=e.extend,s=i.isFunction,r=/(^\/|\/$)/g,l="error",d=".kendoImageBrowser",c="name",p="size",f="type",u={field:f,dir:"asc"},m=i.template((function(e){var t=e.text;return'<div class="k-listview-item k-listview-item-empty"><span class="k-file-preview">'+i.ui.icon({icon:"none",iconClass:"k-file-icon"})+'</span><span class="k-file-name">'+t+"</span></div>"}));o(!0,i.data,{schemas:{imagebrowser:{data:function(e){return e.items||e||[]},model:{id:"name",fields:{name:"name",size:"size",type:"type"}}}}}),o(!0,i.data,{transports:{imagebrowser:i.data.RemoteTransport.extend({init:function(t){i.data.RemoteTransport.fn.init.call(this,e.extend(!0,{},this.options,t))},_call:function(t,n){n.data=e.extend({},n.data,{path:this.options.path()}),s(this.options[t])?this.options[t].call(this,n):i.data.RemoteTransport.fn[t].call(this,n)},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 h=n.extend({init:function(e,t){t=t||{},n.fn.init.call(this,e,t),this.element.addClass("k-imagebrowser")},options:{name:"ImageBrowser",fileTypes:"*.png,*.gif,*.jpg,*.jpeg"},value:function(){var e,n=this,a=n._selectedItem(),o=n.options.transport.imageUrl;if(a&&"f"===a.get(f))return e=function(e,i){return e!==t&&e.match(/\/$/)||(e=(e||"")+"/"),e+i}(n.path(),a.get(c)).replace(r,""),o&&(e=s(o)?o(e):i.format(o,encodeURIComponent(e))),e},_fileUpload:function(e){var n,a=this,o=a.options,s=o.fileTypes,r=new RegExp(("("+s.split(",").join(")|(")+")").replace(/\*\./g,".*."),"i"),l=e.files[0].name,d=e.files[0].size,f=c,u=p;r.test(l)?(e.data={path:a.path()},(n=a._createFile(l,d))?(n._uploading=!0,a.upload.one("error",(function(){n=t})),a.upload.one("success",(function(e){if(n){delete n._uploading;var t=a._insertFileToList(n);t.set(f,e.response[a._getFieldName(f)]),t.set(u,e.response[a._getFieldName(u)]),a._tiles=a.listView.items().filter("["+i.attr("type")+"=f]"),a._scroll()}}))):e.preventDefault()):(e.preventDefault(),a._showMessage(i.format(o.messages.invalidFileType,l,s)))},_content:function(){var t=this;t.list=e('<div class="k-filemanager-listview" />').appendTo(t.element).on("dblclick"+d,".k-listview-item",t._dblClick.bind(t)),t.listView=new i.ui.ListView(t.list,{layout:"flex",flex:{direction:"row",wrap:"wrap"},dataSource:t.dataSource,template:t._itemTmpl(),editTemplate:t._editTmpl(),selectable:!0,autoBind:!1,dataBinding:function(e){t.toolbar.find(".k-i-x,.k-svg-i-x").parent().addClass("k-disabled"),"remove"!==e.action&&"sync"!==e.action||(e.preventDefault(),i.ui.progress(t.listView.content,!1))},dataBound:function(){t.dataSource.view().length?(t._tiles=this.items().filter("["+i.attr("type")+"=f]"),t._scroll()):this.content.append(m({text:t.options.messages.emptyFolder}))},change:t._listViewChange.bind(t)}),t.listView.content.on("scroll"+d,t._scroll.bind(t))},_dataSource:function(){var e=this,t=e.options,n=t.transport,s=o({},u),r={field:c,dir:"asc"},d={type:n.type||"imagebrowser",sort:[s,r]};a(n)&&(n.path=e.path.bind(e),d.transport=n),a(t.schema)?d.schema=t.schema:n.type&&a(i.data.schemas[n.type])&&i.data.schemas[n.type],e.dataSource&&e._errorHandler?e.dataSource.unbind(l,e._errorHandler):e._errorHandler=e._error.bind(e),e.dataSource=i.data.DataSource.create(d).bind(l,e._errorHandler)},_loadImage:function(t){var n=this,a=e(t),o=n.dataSource.getByUid(a.attr(i.attr("uid"))),r=o.get(c),l=n.options.transport.thumbnailUrl,p=e("<img />",{alt:r}),f="?";o._uploading||(p.hide().on("load"+d,(function(){e(this).prev().remove().end().addClass("k-image k-file-image").fadeIn()})),a.find(".k-i-loading").after(p),s(l)?l=l(n.path(),encodeURIComponent(r)):(l.indexOf("?")>=0&&(f="&"),l=l+f+"path="+encodeURIComponent(n.path()+r),o._override&&(l+="&_="+(new Date).getTime(),delete o._override)),p.attr("src",l),t.loaded=!0)},_scroll:function(){var t=this;t.options.transport&&t.options.transport.thumbnailUrl&&(clearTimeout(t._timeout),t._timeout=setTimeout((function(){var n=i._outerHeight(t.listView.content),a=t.listView.content.scrollTop(),o=a+n;t._tiles.each((function(){var i,n=(i=this).offsetTop-e(i).height(),s=n+this.offsetHeight;if((n>=a&&n<o||s>=a&&s<o)&&t._loadImage(this),n>o)return!1})),t._tiles=t._tiles.filter((function(){return!this.loaded}))}),250))},_itemTmpl:function(){var e=this;return i.template((function(t){var n=e.options.transport&&e.options.transport.thumbnailUrl;return'<div class="k-listview-item" '+i.attr("uid")+'="'+t.uid+'" '+i.attr("type")+'="'+t.type+'">'+("d"===t.type?'<div class="k-file-preview">'+i.ui.icon({icon:"folder",iconClass:"k-file-icon"})+"</div>":'<div class="k-file-preview">'+(n?'<span class="k-file-icon k-icon k-i-loading"></span>':i.ui.icon({icon:"file",iconClass:"k-file-icon"}))+"</div>")+'<span class="k-file-name">'+t.name+"</span>"+("f"===t.type?'<span class="k-file-size">'+function(e){if(!e)return"";var t=" bytes";return e>=1073741824?(t=" GB",e/=1073741824):e>=1048576?(t=" MB",e/=1048576):e>=1024&&(t=" KB",e/=1024),Math.round(100*e)/100+t}(t.size)+"</span>":"")+"</div>"}))}});i.ui.plugin(h)}(window.kendo.jQuery)})); //# sourceMappingURL=kendo.imagebrowser.min.js.map