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