{"version":3,"file":"kendo.filebrowser.min.js","names":["factory","define","amd","$","undefined$1","kendo","window","Widget","ui","isPlainObject","extend","placeholderSupported","support","placeholder","isFunction","trimSlashesRegExp","CHANGE","APPLY","ERROR","CLICK","NS","SEARCHBOXNS","NAMEFIELD","SIZEFIELD","TYPEFIELD","DEFAULTSORTORDER","field","dir","EMPTYTILE","template","concatPaths","path","name","match","sizeFormatter","value","suffix","Math","round","data","schemas","filebrowser","items","model","id","fields","size","type","transports","RemoteTransport","init","options","fn","call","this","_call","read","create","destroy","update","FileBrowser","element","that","addClass","on","_deleteClick","bind","_addClick","_directoryKeyDown","_directoryBlur","_dataSource","refresh","messages","uploadFile","orderBy","orderByName","orderBySize","directoryNotFound","emptyFolder","deleteFile","invalidFileType","overwriteFile","dropFilesHere","search","transport","fileTypes","events","dataSource","unbind","_errorHandler","add","list","toolbar","off","selected","_selectedItem","fileUrl","get","replace","format","encodeURIComponent","listView","select","length","getByUid","attr","_toolbar","arrangeBy","text","showUpload","uploadUrl","showCreate","showDelete","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","dataBound","append","_listViewChange","li","hasClass","folder","breadcrumbs","trigger","typeSortOrder","nameSortOrder","schema","DataSource","_navigation","navigation","first","kendoBreadcrumb","editable","gap","statusText","hasChanges","cancelChanges","html","_path","SearchBox","_wrapper","_keydown","_updateValue","wrapper","_click","_focus","_blur","val","_toggleLabel","toggle","hide","parents","style","insertBefore","plugin","jQuery"],"sources":["kendo.filebrowser.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.listview', 'kendo.dropdownlist', 'kendo.upload', 'kendo.breadcrumb'], factory) :\n factory();\n})((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\" ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n Widget = kendo.ui.Widget,\n isPlainObject = $.isPlainObject,\n extend = $.extend,\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}
'),\n TOOLBARTMPL = '
' +\n\n '# if (showCreate) { #' +\n '' +\n '# } #' +\n\n '# if (showUpload) { # ' +\n '
' +\n '
' +\n '' +\n '#=messages.uploadFile#' +\n '' +\n '
' +\n '
' +\n '# } #' +\n\n '# if (showDelete) { #' +\n '' +\n '# } #' +\n '
' +\n '' +\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-close)\", that._deleteClick.bind(that))\n .on(CLICK + NS, \".k-filebrowser-toolbar button:not(.k-disabled):has(.k-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 = 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(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(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-close\").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 }\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-close\").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(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 html = '
';\n html += '#if(' + TYPEFIELD + ' == \"d\") { #';\n html += '
';\n html += \"#}else{#\";\n html += '
';\n html += \"#}#\";\n html += '#if(' + TYPEFIELD + ' == \"d\") { #';\n html += '';\n html += \"#}#\";\n html += '
';\n\n return kendo.template(html).bind({ sizeFormatter: sizeFormatter });\n },\n\n _itemTmpl: function() {\n var html = '
';\n html += '#if(' + TYPEFIELD + ' == \"d\") { #';\n html += '
';\n html += \"#}else{#\";\n html += '
';\n html += \"#}#\";\n html += '${' + NAMEFIELD + '}';\n html += '#if(' + TYPEFIELD + ' == \"f\") { # ${this.sizeFormatter(' + SIZEFIELD + ')} #}#';\n html += '
';\n\n return kendo.template(html).bind({ sizeFormatter: sizeFormatter });\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 $('').insertBefore(element);\n }\n $('').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\n}));\n"]}