{"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","ref","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","toLowerCase","index","view","i","insert","lastDirectoryIdx","typeField","nameField","_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","_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(function (ref) {\n var text = ref.text;\n\n return (\"
\" + (kendo.htmlEncode(text)) + \"
\");\n }),\n UPLOADTEMPLATE = function (ref) {\n var messages = ref.messages;\n\n return '
' +\n '
' +\n kendo.ui.icon({ icon: \"plus\", iconClass: \"k-button-icon\" }) +\n \"\" + (kendo.htmlEncode(messages.uploadFile)) + \"\" +\n '
' +\n '' +\n '
';\n },\n TOOLBARTMPL = function (ref) {\n var showCreate = ref.showCreate;\n var showUpload = ref.showUpload;\n var showDelete = ref.showDelete;\n var messages = ref.messages;\n\n return '
' +\n \"\" + (showCreate ? '' : '') +\n \"\" + (showUpload ? UPLOADTEMPLATE({ messages: messages }) : '') +\n \"\" + (showDelete ? '' : '') +\n '
' +\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 var result = function (data) { return \"
\" +\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 var result = function (data) { return \"
\" +\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"]}