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.92 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("kendo.filebrowser.js"),require("kendo.icons.js")):"function"==typeof define&&define.amd?define(["exports","kendo.filebrowser.min","kendo.icons.min"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Imagebrowser={}))}(this,(function(e){!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((({text:e})=>`<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">${i.htmlEncode(e)}</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.htmlEncode(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),i.ui.progress(t.listView.wrapper,!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((t=>{const n=e.options.transport&&e.options.transport.thumbnailUrl;return`<div class="k-listview-item" ${i.attr("uid")}="${t.uid}" ${i.attr("type")}="${t[f]}">`+("d"===t[f]?`<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[c]}</span>`+("f"===t[f]?`<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[p])}</span>`:"")+"</div>"}))}});i.ui.plugin(h)}(window.kendo.jQuery);var t=kendo;e.__meta__={id:"imagebrowser",name:"ImageBrowser",category:"web",description:"",hidden:!0,depends:["filebrowser","icons"]},e.default=t,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=kendo.imagebrowser.min.js.map