{"version":3,"file":"kendo.filebrowser.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendofilebrowser","js","this","$","undefined$1","kendo","window","Widget","ui","isPlainObject","extend","encode","htmlEncode","placeholderSupported","support","placeholder","isFunction","trimSlashesRegExp","CHANGE","APPLY","ERROR","CLICK","NS","SEARCHBOXNS","NAMEFIELD","SIZEFIELD","TYPEFIELD","DEFAULTSORTORDER","field","dir","EMPTYTILE","template","text","TOOLBARTMPL","showCreate","showUpload","showDelete","messages","icon","iconClass","uploadFile","UPLOADTEMPLATE","orderBy","concatPaths","path","name","match","data","schemas","filebrowser","items","model","id","fields","size","type","transports","RemoteTransport","init","options","fn","call","_call","read","create","destroy","update","FileBrowser","element","that","addClass","on","_deleteClick","bind","_addClick","_directoryKeyDown","_directoryBlur","_dataSource","refresh","orderByName","orderBySize","directoryNotFound","emptyFolder","deleteFile","invalidFileType","overwriteFile","dropFilesHere","search","transport","fileTypes","events","dataSource","unbind","_errorHandler","add","list","toolbar","off","value","selected","_selectedItem","fileUrl","get","replace","format","encodeURIComponent","listView","select","length","getByUid","attr","_toolbar","arrangeBy","uploadUrl","appendTo","find","kendoUpload","multiple","localization","async","saveUrl","autoUpload","upload","_fileUpload","error","e","_error","xhr","XMLHttpRequest","status","end","kendoDropDownList","dataTextField","dataValueField","change","searchBox","kendoSearchBox","label","_attachDropzoneEvents","onDragEnter","onDragLeave","hideInterval","lastDrag","document","documentElement","_dropEnter","_dropLeave","Date","setInterval","clearInterval","_scrollHandler","_positionDropzone","_removeDropzone","offset","css","width","clientWidth","height","clientHeight","lineHeight","removeClass","top","left","item","message","_showMessage","remove","createDirectory","_getFieldName","descriptor","from","fieldName","reader","file","filterRegExp","RegExp","split","join","fileName","files","fileSize","fileNameField","sizeField","test","_createFile","one","_insertFileToList","_override","set","response","pushUpdate","_tiles","filter","preventDefault","_findFile","idx","result","typeField","nameField","toLowerCase","index","view","i","insert","lastDirectoryIdx","_nameDirectory","uid","edit","scrollTop","offsetHeight","setTimeout","_nameExists","keyCode","currentTarget","blur","save","candidate","directoryNames","indexOf","push","inArray","sort","operator","_content","_dblClick","ListView","layout","flex","direction","wrap","_itemTmpl","editTemplate","_editTmpl","selectable","autoBind","dataBinding","parent","action","progress","content","wrapper","dataBound","append","_listViewChange","li","hasClass","folder","breadcrumbs","trigger","typeSortOrder","nameSortOrder","schema","DataSource","_navigation","navigation","first","kendoBreadcrumb","editable","gap","statusText","hasChanges","cancelChanges","suffix","Math","round","sizeFormatter","_path","SearchBox","_wrapper","_keydown","_updateValue","_click","_focus","_blur","val","_toggleLabel","toggle","hide","parents","style","insertBefore","plugin","jQuery"],"sources":["kendo.filebrowser.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.listview.js'), require('kendo.dropdownlist.js'), require('kendo.upload.js'), require('kendo.breadcrumb.js'), require('kendo.icons.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.listview', 'kendo.dropdownlist', 'kendo.upload', 'kendo.breadcrumb', 'kendo.icons'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendofilebrowser = global.kendofilebrowser || {}, global.kendofilebrowser.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"filebrowser\",\n name: \"FileBrowser\",\n category: \"web\",\n description: \"\",\n hidden: true,\n depends: [ \"selectable\", \"listview\", \"dropdownlist\", \"upload\", \"breadcrumb\", \"icons\" ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n Widget = kendo.ui.Widget,\n isPlainObject = $.isPlainObject,\n extend = $.extend,\n encode = kendo.htmlEncode,\n placeholderSupported = kendo.support.placeholder,\n isFunction = kendo.isFunction,\n trimSlashesRegExp = /(^\\/|\\/$)/g,\n CHANGE = \"change\",\n APPLY = \"apply\",\n ERROR = \"error\",\n CLICK = \"click\",\n NS = \".kendoFileBrowser\",\n SEARCHBOXNS = \".kendoSearchBox\",\n NAMEFIELD = \"name\",\n SIZEFIELD = \"size\",\n TYPEFIELD = \"type\",\n DEFAULTSORTORDER = { field: TYPEFIELD, dir: \"asc\" },\n EMPTYTILE = kendo.template(({ text }) => `
${kendo.htmlEncode(text)}
`),\n UPLOADTEMPLATE = ({ messages }) =>\n '
' +\n '
' +\n kendo.ui.icon({ icon: \"plus\", iconClass: \"k-button-icon\" }) +\n `${kendo.htmlEncode(messages.uploadFile)}` +\n '
' +\n '' +\n '
',\n TOOLBARTMPL = ({ showCreate, showUpload, showDelete, messages }) =>\n '
' +\n `${showCreate ? '' : ''}` +\n `${showUpload ? UPLOADTEMPLATE({ messages }) : ''}` +\n `${showDelete ? '' : ''}` +\n '
' +\n `` +\n '
' +\n '' +\n '' +\n '
';\n\n extend(true, kendo.data, {\n schemas: {\n \"filebrowser\": {\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 \"filebrowser\": 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 bindDragEventWrappers(element, onDragEnter, onDragLeave) {\n var hideInterval, lastDrag;\n\n element\n .on(\"dragenter\" + NS, function() {\n onDragEnter();\n lastDrag = new Date();\n\n if (!hideInterval) {\n hideInterval = setInterval(function() {\n var sinceLastDrag = new Date() - lastDrag;\n if (sinceLastDrag > 100) {\n onDragLeave();\n\n clearInterval(hideInterval);\n hideInterval = null;\n }\n }, 100);\n }\n })\n .on(\"dragover\" + NS, function() {\n lastDrag = new Date();\n });\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 function fieldName(fields, name) {\n var descriptor = fields[name];\n\n if (isPlainObject(descriptor)) {\n return descriptor.from || descriptor.field || name;\n }\n return descriptor;\n }\n\n var FileBrowser = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n options = options || {};\n\n Widget.fn.init.call(that, element, options);\n\n that.element.addClass(\"k-filebrowser\");\n\n that.element\n .on(CLICK + NS, \".k-filebrowser-toolbar button:not(.k-disabled):has(.k-i-x,.k-svg-i-x)\", that._deleteClick.bind(that))\n .on(CLICK + NS, \".k-filebrowser-toolbar button:not(.k-disabled):has(.k-i-folder-add,.k-svg-i-folder-add)\", that._addClick.bind(that))\n .on(\"keydown\" + NS, \".k-listview-item.k-selected input\", that._directoryKeyDown.bind(that))\n .on(\"blur\" + NS, \".k-listview-item.k-selected input\", that._directoryBlur.bind(that));\n\n that._dataSource();\n\n that.refresh();\n\n that.path(that.options.path);\n },\n\n options: {\n name: \"FileBrowser\",\n messages: {\n uploadFile: \"Upload\",\n orderBy: \"Arrange by\",\n orderByName: \"Name\",\n orderBySize: \"Size\",\n directoryNotFound: \"A directory with this name was not found.\",\n emptyFolder: \"Empty Folder\",\n deleteFile: 'Are you sure you want to delete \"{0}\"?',\n invalidFileType: \"The selected file \\\"{0}\\\" is not valid. Supported file types are {1}.\",\n overwriteFile: \"A file with name \\\"{0}\\\" already exists in the current directory. Do you want to overwrite it?\",\n dropFilesHere: \"drop file here to upload\",\n search: \"Search\"\n },\n transport: {},\n path: \"/\",\n fileTypes: \"*.*\"\n },\n\n events: [ERROR, CHANGE, APPLY],\n\n destroy: function() {\n var that = this;\n\n Widget.fn.destroy.call(that);\n\n that.dataSource\n .unbind(ERROR, that._errorHandler);\n\n that.element\n .add(that.list)\n .add(that.toolbar)\n .off(NS);\n\n kendo.destroy(that.element);\n },\n\n value: function() {\n var that = this,\n selected = that._selectedItem(),\n path,\n fileUrl = that.options.transport.fileUrl;\n\n if (selected && selected.get(TYPEFIELD) === \"f\") {\n path = concatPaths(that.path(), selected.get(NAMEFIELD)).replace(trimSlashesRegExp, \"\");\n if (fileUrl) {\n path = isFunction(fileUrl) ? fileUrl(path) : kendo.format(fileUrl, encodeURIComponent(path));\n }\n return path;\n }\n },\n\n _selectedItem: function() {\n var listView = this.listView,\n selected = listView.select();\n\n if (selected.length) {\n return this.dataSource.getByUid(selected.attr(kendo.attr(\"uid\")));\n }\n },\n\n _toolbar: function() {\n var that = this,\n template = kendo.template(TOOLBARTMPL),\n messages = that.options.messages,\n arrangeBy = [\n { text: messages.orderByName, value: \"name\" },\n { text: messages.orderBySize, value: \"size\" }\n ];\n\n that.toolbar = $(template({\n messages: messages,\n showUpload: that.options.transport.uploadUrl,\n showCreate: that.options.transport.create,\n showDelete: that.options.transport.destroy\n }))\n .appendTo(that.element)\n .find(\".k-upload input\")\n .kendoUpload({\n multiple: false,\n localization: {\n dropFilesHere: messages.dropFilesHere\n },\n async: {\n saveUrl: that.options.transport.uploadUrl,\n autoUpload: true\n },\n upload: that._fileUpload.bind(that),\n error: function(e) {\n that._error({ xhr: e.XMLHttpRequest, status: \"error\" });\n }\n }).end();\n\n that.upload = that.toolbar\n .find(\".k-upload input\")\n .data(\"kendoUpload\");\n\n that.arrangeBy = that.toolbar.find(\".k-tiles-arrange select\")\n .kendoDropDownList({\n dataSource: arrangeBy,\n dataTextField: \"text\",\n dataValueField: \"value\",\n change: function() {\n that.orderBy(this.value());\n }\n })\n .data(\"kendoDropDownList\");\n\n that.searchBox = that.toolbar.find(\"input[data-role='searchbox']\")\n .kendoSearchBox({\n label: that.options.messages.search,\n change: function() {\n that.search(this.value());\n }\n }).data(\"kendoSearchBox\");\n\n that._attachDropzoneEvents();\n },\n\n _attachDropzoneEvents: function() {\n var that = this;\n\n if (that.options.transport.uploadUrl) {\n bindDragEventWrappers($(document.documentElement),\n that._dropEnter.bind(that),\n that._dropLeave.bind(that)\n );\n that._scrollHandler = that._positionDropzone.bind(that);\n }\n },\n\n _dropEnter: function() {\n this._positionDropzone();\n $(document).on(\"scroll\" + NS, this._scrollHandler);\n },\n\n _dropLeave: function() {\n this._removeDropzone();\n $(document).off(\"scroll\" + NS, this._scrollHandler);\n },\n\n _positionDropzone: function() {\n var that = this,\n element = that.element,\n offset = element.offset();\n\n that.toolbar.find(\".k-dropzone\")\n .addClass(\"k-filebrowser-dropzone\")\n .offset(offset)\n .css({\n width: element[0].clientWidth,\n height: element[0].clientHeight,\n lineHeight: element[0].clientHeight + \"px\"\n });\n },\n\n _removeDropzone: function() {\n this.toolbar.find(\".k-dropzone\")\n .removeClass(\"k-filebrowser-dropzone\")\n .css({ width: \"\", height: \"\", lineHeight: \"\", top: \"\", left: \"\" });\n },\n\n _deleteClick: function() {\n var that = this,\n item = that.listView.select(),\n message = encode(kendo.format(that.options.messages.deleteFile, item.find(\".k-file-name\").text()));\n\n if (item.length && that._showMessage(message, \"confirm\")) {\n that.listView.remove(item);\n }\n },\n\n _addClick: function() {\n this.createDirectory();\n },\n\n _getFieldName: function(name) {\n return fieldName(this.dataSource.reader.model.fields, name);\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 that.upload.one(\"success\", function(e) {\n var model = that._insertFileToList(file);\n\n if (model._override) {\n model.set(fileNameField, e.response[that._getFieldName(fileNameField)]);\n model.set(sizeField, e.response[that._getFieldName(sizeField)]);\n\n that.listView.dataSource.pushUpdate(model);\n }\n\n that._tiles = that.listView.items().filter(\"[\" + kendo.attr(\"type\") + \"=f]\");\n });\n }\n } else {\n e.preventDefault();\n that._showMessage(encode(kendo.format(options.messages.invalidFileType, fileName, fileTypes)));\n }\n },\n\n _findFile: function(name) {\n var data = this.dataSource.data(),\n idx,\n result,\n typeField = TYPEFIELD,\n nameField = NAMEFIELD,\n length;\n\n name = name.toLowerCase();\n\n for (idx = 0, length = data.length; idx < length; idx++) {\n if (data[idx].get(typeField) === \"f\" &&\n data[idx].get(nameField).toLowerCase() === name) {\n\n result = data[idx];\n break;\n }\n }\n return result;\n },\n\n _createFile: function(fileName, fileSize) {\n var that = this,\n model = {},\n typeField = TYPEFIELD,\n file = that._findFile(fileName);\n\n if (file) {\n if (!that._showMessage(encode(kendo.format(that.options.messages.overwriteFile, fileName)), \"confirm\")) {\n return null;\n } else {\n file._override = true;\n return file;\n }\n }\n\n model[typeField] = \"f\";\n model[NAMEFIELD] = fileName;\n model[SIZEFIELD] = fileSize;\n\n return model;\n },\n\n _insertFileToList: function(model) {\n var index;\n if (model._override) {\n return model;\n }\n\n var dataSource = this.dataSource;\n var view = dataSource.view();\n\n for (var i = 0, length = view.length; i < length; i++) {\n if (view[i].get(TYPEFIELD) === \"f\") {\n index = i;\n break;\n }\n }\n\n return dataSource.insert(++index, model);\n },\n\n createDirectory: function() {\n var that = this,\n idx,\n length,\n lastDirectoryIdx = 0,\n typeField = TYPEFIELD,\n nameField = NAMEFIELD,\n view = that.dataSource.data(),\n name = that._nameDirectory(),\n model = new that.dataSource.reader.model();\n\n for (idx = 0, length = view.length; idx < length; idx++) {\n if (view[idx].get(typeField) === \"d\") {\n lastDirectoryIdx = idx;\n }\n }\n\n model.set(typeField, \"d\");\n model.set(nameField, name);\n\n that.listView.one(\"dataBound\", function() {\n var selected = that.listView.items()\n .filter(\"[\" + kendo.attr(\"uid\") + \"=\" + model.uid + \"]\");\n\n if (selected.length) {\n this.edit(selected);\n }\n\n this.element.scrollTop(selected.attr(\"offsetTop\") - this.element[0].offsetHeight);\n\n setTimeout(function() {\n that.listView.element.find('.k-edit-item input').select();\n });\n })\n .one(\"save\", function(e) {\n var value = e.model.get(nameField);\n\n if (!value) {\n e.model.set(nameField, name);\n } else {\n e.model.set(nameField, that._nameExists(value, model.uid) ? that._nameDirectory() : value);\n }\n });\n\n that.dataSource.insert(++lastDirectoryIdx, model);\n },\n\n _directoryKeyDown: function(e) {\n if (e.keyCode == 13) {\n e.currentTarget.blur();\n }\n },\n\n _directoryBlur: function() {\n this.listView.save();\n },\n\n _nameExists: function(name, uid) {\n var data = this.dataSource.data(),\n typeField = TYPEFIELD,\n nameField = NAMEFIELD,\n idx,\n length;\n\n for (idx = 0, length = data.length; idx < length; idx++) {\n if (data[idx].get(typeField) === \"d\" &&\n data[idx].get(nameField).toLowerCase() === name.toLowerCase() &&\n data[idx].uid !== uid) {\n return true;\n }\n }\n return false;\n },\n\n _nameDirectory: function() {\n var name = \"New folder\",\n data = this.dataSource.data(),\n directoryNames = [],\n typeField = TYPEFIELD,\n nameField = NAMEFIELD,\n candidate,\n idx,\n length;\n\n for (idx = 0, length = data.length; idx < length; idx++) {\n if (data[idx].get(typeField) === \"d\" && data[idx].get(nameField).toLowerCase().indexOf(name.toLowerCase()) > -1) {\n directoryNames.push(data[idx].get(nameField));\n }\n }\n\n if ($.inArray(name, directoryNames) > -1) {\n idx = 2;\n\n do {\n candidate = name + \" (\" + idx + \")\";\n idx++;\n } while ($.inArray(candidate, directoryNames) > -1);\n\n name = candidate;\n }\n\n return name;\n },\n\n orderBy: function(field) {\n this.dataSource.sort([\n { field: TYPEFIELD, dir: \"asc\" },\n { field: field, dir: \"asc\" }\n ]);\n },\n\n search: function(name) {\n this.dataSource.filter({\n field: NAMEFIELD,\n operator: \"contains\",\n value: name\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 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 } else {\n this.content.append(EMPTYTILE({ text: that.options.messages.emptyFolder }));\n }\n },\n change: that._listViewChange.bind(that)\n });\n },\n\n _dblClick: function(e) {\n var that = this,\n li = $(e.currentTarget);\n\n if (li.hasClass(\"k-edit-item\")) {\n that._directoryBlur();\n }\n\n if (li.filter(\"[\" + kendo.attr(\"type\") + \"=d]\").length) {\n var folder = that.dataSource.getByUid(li.attr(kendo.attr(\"uid\")));\n if (folder) {\n that.path(concatPaths(that.path(), folder.get(NAMEFIELD)));\n that.breadcrumbs.value(\"/\" + that.path());\n }\n } else if (li.filter(\"[\" + kendo.attr(\"type\") + \"=f]\").length) {\n that.trigger(APPLY);\n }\n },\n\n _listViewChange: function() {\n var selected = this._selectedItem();\n\n if (selected) {\n this.toolbar.find(\".k-i-x,.k-svg-i-x\").parent().removeClass(\"k-disabled\");\n this.trigger(CHANGE, { selected: selected });\n }\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 || \"filebrowser\",\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 _navigation: function() {\n var that = this,\n navigation = $('
')\n .appendTo(this.element);\n\n that.breadcrumbs = navigation.find(\"nav\").first()\n .kendoBreadcrumb({\n editable: true,\n gap: 50,\n value: that.options.path || \"/\",\n change: function() {\n that.path(this.value());\n }\n }).data(\"kendoBreadcrumb\");\n },\n\n _error: function(e) {\n var that = this,\n status;\n\n if (!that.trigger(ERROR, e)) {\n status = e.xhr.status;\n\n if (e.status == 'error') {\n if (status == '404') {\n that._showMessage(kendo.htmlEncode(that.options.messages.directoryNotFound));\n } else if (status != '0') {\n that._showMessage('Error! The requested URL returned ' + status + ' - ' + e.xhr.statusText);\n }\n } else if (status == 'timeout') {\n that._showMessage('Error! Server timeout.');\n }\n\n var dataSource = that.dataSource;\n if (dataSource.hasChanges()) {\n dataSource.cancelChanges();\n }\n }\n },\n\n _showMessage: function(message, type) {\n return window[type || \"alert\"](message);\n },\n\n refresh: function() {\n var that = this;\n that._navigation();\n that._toolbar();\n that._content();\n },\n\n _editTmpl: function() {\n const result = (data) => `
` +\n `${data[TYPEFIELD] === 'd' ?\n '
' + kendo.ui.icon({ icon: \"folder\", iconClass: \"k-file-icon\", size: \"xxxlarge\" }) + '
' :\n '
'}` +\n `${data[TYPEFIELD] === 'd' ?\n `\n \n \n \n ` : ''}` +\n `
`;\n\n return kendo.template(result);\n },\n\n _itemTmpl: function() {\n const result = (data) =>\n `
` +\n `${data[TYPEFIELD] === 'd' ?\n '
' + kendo.ui.icon({ icon: \"folder\", iconClass: \"k-file-icon\", size: \"xxxlarge\" }) + '
' :\n '
' + kendo.ui.icon({ icon: \"file\", iconClass: \"k-file-icon\", size: \"xxxlarge\" }) + '
'}` +\n `${data[NAMEFIELD]}` +\n `${data[TYPEFIELD] === 'f' ? `${sizeFormatter(data[SIZEFIELD])}` : '' }` +\n `
`;\n\n return kendo.template(result);\n },\n\n path: function(value) {\n var that = this,\n path = that._path || \"\";\n\n if (value !== undefined$1) {\n that._path = value.replace(trimSlashesRegExp, \"\") + \"/\";\n that.dataSource.read({ path: that._path });\n return;\n }\n\n if (path) {\n path = path.replace(trimSlashesRegExp, \"\");\n }\n\n return path === \"/\" || path === \"\" ? \"\" : (path + \"/\");\n }\n });\n\n var SearchBox = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n options = options || {};\n\n Widget.fn.init.call(that, element, options);\n\n if (placeholderSupported) {\n that.element.attr(\"placeholder\", that.options.label);\n }\n\n that._wrapper();\n\n that.element\n .on(\"keydown\" + SEARCHBOXNS, that._keydown.bind(that))\n .on(\"change\" + SEARCHBOXNS, that._updateValue.bind(that));\n\n that.wrapper\n .on(CLICK + SEARCHBOXNS, \"a\", that._click.bind(that));\n\n if (!placeholderSupported) {\n that.element.on(\"focus\" + SEARCHBOXNS, that._focus.bind(that))\n .on(\"blur\" + SEARCHBOXNS, that._blur.bind(that));\n }\n },\n\n options: {\n name: \"SearchBox\",\n label: \"Search\",\n value: \"\"\n },\n\n events: [ CHANGE ],\n\n destroy: function() {\n var that = this;\n\n that.wrapper\n .add(that.element)\n .add(that.label)\n .off(SEARCHBOXNS);\n\n Widget.fn.destroy.call(that);\n },\n\n _keydown: function(e) {\n if (e.keyCode === 13) {\n this._updateValue();\n }\n },\n\n _click: function(e) {\n e.preventDefault();\n this._updateValue();\n },\n\n _updateValue: function() {\n var that = this,\n value = that.element.val();\n\n if (value !== that.value()) {\n that.value(value);\n\n that.trigger(CHANGE);\n }\n },\n\n _blur: function() {\n this._updateValue();\n this._toggleLabel();\n },\n\n _toggleLabel: function() {\n if (!placeholderSupported) {\n this.label.toggle(!this.element.val());\n }\n },\n\n _focus: function() {\n this.label.hide();\n },\n\n _wrapper: function() {\n var element = this.element,\n wrapper = element.parents(\".k-search-wrap\");\n\n element[0].style.width = \"\";\n element.addClass(\"k-input-inner\");\n\n if (!wrapper.length) {\n wrapper = element.wrap($('
')).parents(\".k-search-wrap\");\n if (!placeholderSupported) {\n $('').css(\"display\", \"block\").insertBefore(element);\n }\n $('' + kendo.ui.icon($(''), { icon: \"search\", iconClass: \"k-search\" }) + '').appendTo(wrapper.find(\".k-textbox\"));\n }\n\n this.wrapper = wrapper;\n this.label = wrapper.find(\">label\");\n },\n\n value: function(value) {\n var that = this;\n\n if (value !== undefined$1) {\n that.options.value = value;\n that.element.val(value);\n that._toggleLabel();\n return;\n }\n return that.options.value;\n }\n });\n\n kendo.ui.plugin(FileBrowser);\n kendo.ui.plugin(SearchBox);\n\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}