{"version":3,"file":"kendo.imagebrowser.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendoimagebrowser","js","this","$","undefined$1","kendo","window","FileBrowser","ui","isPlainObject","extend","isFunction","trimSlashesRegExp","ERROR","NS","NAMEFIELD","SIZEFIELD","TYPEFIELD","DEFAULTSORTORDER","field","dir","EMPTYTILE","template","text","icon","iconClass","htmlEncode","data","schemas","imagebrowser","items","model","id","fields","name","size","type","transports","RemoteTransport","init","options","fn","call","_call","path","read","create","destroy","update","ImageBrowser","element","addClass","fileTypes","value","that","selected","_selectedItem","imageUrl","transport","get","match","concatPaths","replace","format","encodeURIComponent","_fileUpload","e","file","filterRegExp","RegExp","split","join","fileName","files","fileSize","fileNameField","sizeField","test","_createFile","_uploading","upload","one","_insertFileToList","set","response","_getFieldName","_tiles","listView","filter","attr","_scroll","preventDefault","_showMessage","messages","invalidFileType","_content","list","appendTo","on","_dblClick","bind","ListView","layout","flex","direction","wrap","dataSource","_itemTmpl","editTemplate","_editTmpl","selectable","autoBind","dataBinding","toolbar","find","parent","action","progress","content","wrapper","dataBound","view","length","append","emptyFolder","change","_listViewChange","_dataSource","typeSortOrder","nameSortOrder","sort","schema","_errorHandler","unbind","_error","DataSource","_loadImage","li","dataItem","getByUid","thumbnailUrl","img","alt","urlJoin","hide","prev","remove","end","fadeIn","after","indexOf","_override","Date","getTime","loaded","clearTimeout","_timeout","setTimeout","height","_outerHeight","viewTop","scrollTop","viewBottom","each","top","offsetTop","bottom","offsetHeight","showLoading","uid","suffix","Math","round","sizeFormatter","plugin","jQuery"],"sources":["kendo.imagebrowser.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.filebrowser.js'), require('kendo.icons.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.filebrowser', 'kendo.icons'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendoimagebrowser = global.kendoimagebrowser || {}, global.kendoimagebrowser.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"imagebrowser\",\n name: \"ImageBrowser\",\n category: \"web\",\n description: \"\",\n hidden: true,\n depends: [ \"filebrowser\", \"icons\" ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n FileBrowser = kendo.ui.FileBrowser,\n isPlainObject = $.isPlainObject,\n extend = $.extend,\n isFunction = kendo.isFunction,\n trimSlashesRegExp = /(^\\/|\\/$)/g,\n ERROR = \"error\",\n NS = \".kendoImageBrowser\",\n NAMEFIELD = \"name\",\n SIZEFIELD = \"size\",\n TYPEFIELD = \"type\",\n DEFAULTSORTORDER = { field: TYPEFIELD, dir: \"asc\" },\n EMPTYTILE = kendo.template(({ text }) => `
${kendo.ui.icon({ icon: \"none\", iconClass: \"k-file-icon\" })}${kendo.htmlEncode(text)}
`);\n\n extend(true, kendo.data, {\n schemas: {\n \"imagebrowser\": {\n data: function(data) {\n return data.items || data || [];\n },\n model: {\n id: \"name\",\n fields: {\n name: \"name\",\n size: \"size\",\n type: \"type\"\n }\n }\n }\n }\n });\n\n extend(true, kendo.data, {\n transports: {\n \"imagebrowser\": kendo.data.RemoteTransport.extend({\n init: function(options) {\n kendo.data.RemoteTransport.fn.init.call(this, $.extend(true, {}, this.options, options));\n },\n _call: function(type, options) {\n options.data = $.extend({}, options.data, { path: this.options.path() });\n\n if (isFunction(this.options[type])) {\n this.options[type].call(this, options);\n } else {\n kendo.data.RemoteTransport.fn[type].call(this, options);\n }\n },\n read: function(options) {\n this._call(\"read\", options);\n },\n create: function(options) {\n this._call(\"create\", options);\n },\n destroy: function(options) {\n this._call(\"destroy\", options);\n },\n update: function() {\n //updates are handled by the upload\n },\n options: {\n read: {\n type: \"POST\"\n },\n update: {\n type: \"POST\"\n },\n create: {\n type: \"POST\"\n },\n destroy: {\n type: \"POST\"\n }\n }\n })\n }\n });\n\n function offsetTop(element) {\n return element.offsetTop - $(element).height();\n }\n\n function concatPaths(path, name) {\n if (path === undefined$1 || !path.match(/\\/$/)) {\n path = (path || \"\") + \"/\";\n }\n return path + name;\n }\n\n function sizeFormatter(value) {\n if (!value) {\n return \"\";\n }\n\n var suffix = \" bytes\";\n\n if (value >= 1073741824) {\n suffix = \" GB\";\n value /= 1073741824;\n } else if (value >= 1048576) {\n suffix = \" MB\";\n value /= 1048576;\n } else if (value >= 1024) {\n suffix = \" KB\";\n value /= 1024;\n }\n\n return Math.round(value * 100) / 100 + suffix;\n }\n\n var ImageBrowser = FileBrowser.extend({\n init: function(element, options) {\n var that = this;\n\n options = options || {};\n\n FileBrowser.fn.init.call(that, element, options);\n\n that.element.addClass(\"k-imagebrowser\");\n },\n\n options: {\n name: \"ImageBrowser\",\n fileTypes: \"*.png,*.gif,*.jpg,*.jpeg\"\n },\n\n value: function() {\n var that = this,\n selected = that._selectedItem(),\n path,\n imageUrl = that.options.transport.imageUrl;\n\n if (selected && selected.get(TYPEFIELD) === \"f\") {\n path = concatPaths(that.path(), selected.get(NAMEFIELD)).replace(trimSlashesRegExp, \"\");\n if (imageUrl) {\n path = isFunction(imageUrl) ? imageUrl(path) : kendo.format(imageUrl, encodeURIComponent(path));\n }\n return path;\n }\n },\n\n _fileUpload: function(e) {\n var that = this,\n options = that.options,\n fileTypes = options.fileTypes,\n filterRegExp = new RegExp((\"(\" + fileTypes.split(\",\").join(\")|(\") + \")\").replace(/\\*\\./g , \".*.\"), \"i\"),\n fileName = e.files[0].name,\n fileSize = e.files[0].size,\n fileNameField = NAMEFIELD,\n sizeField = SIZEFIELD,\n file;\n\n if (filterRegExp.test(fileName)) {\n e.data = { path: that.path() };\n\n file = that._createFile(fileName, fileSize);\n\n if (!file) {\n e.preventDefault();\n } else {\n file._uploading = true;\n\n that.upload.one(\"error\", function() {\n file = undefined$1;\n });\n\n that.upload.one(\"success\", function(e) {\n if (file) {\n delete file._uploading;\n\n var model = that._insertFileToList(file);\n\n model.set(fileNameField, e.response[that._getFieldName(fileNameField)]);\n model.set(sizeField, e.response[that._getFieldName(sizeField)]);\n\n that._tiles = that.listView.items().filter(\"[\" + kendo.attr(\"type\") + \"=f]\");\n that._scroll();\n }\n });\n }\n } else {\n e.preventDefault();\n that._showMessage(kendo.htmlEncode(kendo.format(options.messages.invalidFileType, fileName, fileTypes)));\n }\n },\n\n _content: function() {\n var that = this;\n\n that.list = $('
')\n .appendTo(that.element)\n .on(\"dblclick\" + NS, \".k-listview-item\", that._dblClick.bind(that));\n\n that.listView = new kendo.ui.ListView(that.list, {\n layout: \"flex\",\n flex: {\n direction: \"row\",\n wrap: \"wrap\"\n },\n dataSource: that.dataSource,\n template: that._itemTmpl(),\n editTemplate: that._editTmpl(),\n selectable: true,\n autoBind: false,\n dataBinding: function(e) {\n\n that.toolbar.find(\".k-i-x,.k-svg-i-x\").parent().addClass(\"k-disabled\");\n\n if (e.action === \"remove\" || e.action === \"sync\") {\n e.preventDefault();\n kendo.ui.progress(that.listView.content, false);\n /* If there are no files left the loader is displayed over the wrapper instead of the content. */\n kendo.ui.progress(that.listView.wrapper, false);\n }\n },\n dataBound: function() {\n if (that.dataSource.view().length) {\n that._tiles = this.items().filter(\"[\" + kendo.attr(\"type\") + \"=f]\");\n that._scroll();\n } else {\n this.content.append(EMPTYTILE({ text: that.options.messages.emptyFolder }));\n }\n },\n change: that._listViewChange.bind(that)\n });\n\n that.listView.content.on(\"scroll\" + NS, that._scroll.bind(that));\n },\n\n _dataSource: function() {\n var that = this,\n options = that.options,\n transport = options.transport,\n typeSortOrder = extend({}, DEFAULTSORTORDER),\n nameSortOrder = { field: NAMEFIELD, dir: \"asc\" },\n schema,\n dataSource = {\n type: transport.type || \"imagebrowser\",\n sort: [typeSortOrder, nameSortOrder]\n };\n\n if (isPlainObject(transport)) {\n transport.path = that.path.bind(that);\n dataSource.transport = transport;\n }\n\n if (isPlainObject(options.schema)) {\n dataSource.schema = options.schema;\n } else if (transport.type && isPlainObject(kendo.data.schemas[transport.type])) {\n schema = kendo.data.schemas[transport.type];\n }\n\n if (that.dataSource && that._errorHandler) {\n that.dataSource.unbind(ERROR, that._errorHandler);\n } else {\n that._errorHandler = that._error.bind(that);\n }\n\n that.dataSource = kendo.data.DataSource.create(dataSource)\n .bind(ERROR, that._errorHandler);\n },\n\n _loadImage: function(li) {\n var that = this,\n element = $(li),\n dataItem = that.dataSource.getByUid(element.attr(kendo.attr(\"uid\"))),\n name = dataItem.get(NAMEFIELD),\n thumbnailUrl = that.options.transport.thumbnailUrl,\n img = $(\"\", { alt: name }),\n urlJoin = \"?\";\n\n if (dataItem._uploading) {\n return;\n }\n\n img.hide()\n .on(\"load\" + NS, function() {\n $(this).prev().remove().end().addClass(\"k-image k-file-image\").fadeIn();\n });\n\n element.find(\".k-i-loading\").after(img);\n\n if (isFunction(thumbnailUrl)) {\n thumbnailUrl = thumbnailUrl(that.path(), encodeURIComponent(name));\n } else {\n if (thumbnailUrl.indexOf(\"?\") >= 0) {\n urlJoin = \"&\";\n }\n\n thumbnailUrl = thumbnailUrl + urlJoin + \"path=\" + encodeURIComponent(that.path() + name);\n if (dataItem._override) {\n thumbnailUrl += \"&_=\" + new Date().getTime();\n delete dataItem._override;\n }\n }\n\n // IE8 will trigger the load event immediately when the src is assigned\n // if the image is loaded from the cache\n img.attr(\"src\", thumbnailUrl);\n\n li.loaded = true;\n },\n\n _scroll: function() {\n var that = this;\n if (that.options.transport && that.options.transport.thumbnailUrl) {\n clearTimeout(that._timeout);\n\n that._timeout = setTimeout(function() {\n\n var height = kendo._outerHeight(that.listView.content),\n viewTop = that.listView.content.scrollTop(),\n viewBottom = viewTop + height;\n\n that._tiles.each(function() {\n var top = offsetTop(this),\n bottom = top + this.offsetHeight;\n\n if ((top >= viewTop && top < viewBottom) || (bottom >= viewTop && bottom < viewBottom)) {\n that._loadImage(this);\n }\n\n if (top > viewBottom) {\n return false;\n }\n });\n\n that._tiles = that._tiles.filter(function() {\n return !this.loaded;\n });\n\n }, 250);\n }\n },\n\n _itemTmpl: function() {\n var that = this;\n\n const result = (data) => {\n const showLoading = that.options.transport && that.options.transport.thumbnailUrl;\n\n return `
` +\n `${data[TYPEFIELD] === 'd' ?\n `
${kendo.ui.icon({ icon: \"folder\", iconClass: \"k-file-icon\" })}
` :\n `
${showLoading ? '' : kendo.ui.icon({ icon: \"file\", iconClass: \"k-file-icon\" }) }
`}` +\n `${data[NAMEFIELD]}` +\n `${data[TYPEFIELD] === 'f' ? `${sizeFormatter(data[SIZEFIELD])}` : '' }` +\n `
`;\n };\n\n return kendo.template(result);\n }\n });\n\n kendo.ui.plugin(ImageBrowser);\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}