{"version":3,"sources":["kendo.filebrowser.js"],"names":["f","define","$","undefined","bindDragEventWrappers","element","onDragEnter","onDragLeave","hideInterval","lastDrag","on","NS","Date","setInterval","sinceLastDrag","clearInterval","concatPaths","path","name","match","sizeFormatter","value","suffix","Math","round","fieldName","fields","descriptor","isPlainObject","from","field","FileBrowser","SearchBox","kendo","window","Widget","ui","proxy","extend","placeholderSupported","support","placeholder","isFunction","trimSlashesRegExp","CHANGE","APPLY","ERROR","CLICK","SEARCHBOXNS","NAMEFIELD","SIZEFIELD","TYPEFIELD","DEFAULTSORTORDER","dir","EMPTYTILE","template","TOOLBARTMPL","data","schemas","filebrowser","items","model","id","size","type","transports","RemoteTransport","init","options","fn","call","this","_call","read","create","destroy","update","that","addClass","_deleteClick","_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","document","documentElement","_dropEnter","_dropLeave","_scrollHandler","_positionDropzone","_removeDropzone","offset","css","width","clientWidth","height","clientHeight","lineHeight","removeClass","top","left","item","message","_showMessage","remove","createDirectory","_getFieldName","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","dataBound","append","_listViewChange","folder","li","hasClass","breadcrumbs","trigger","schema","typeSortOrder","nameSortOrder","DataSource","bind","_navigation","navigation","kendoBreadcrumb","editable","gap","statusText","hasChanges","cancelChanges","html","_path","_wrapper","_keydown","_updateValue","wrapper","_click","_focus","_blur","val","_toggleLabel","toggle","hide","parents","style","insertBefore","plugin","jQuery","amd","a1","a2","a3"],"mappings":"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","file":"kendo.filebrowser.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('kendo.filebrowser', [\n 'kendo.listview',\n 'kendo.dropdownlist',\n 'kendo.upload',\n 'kendo.breadcrumb'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'filebrowser',\n name: 'FileBrowser',\n category: 'web',\n description: '',\n hidden: true,\n depends: [\n 'selectable',\n 'listview',\n 'dropdownlist',\n 'upload',\n 'breadcrumb'\n ]\n };\n (function ($, undefined) {\n var kendo = window.kendo, Widget = kendo.ui.Widget, isPlainObject = $.isPlainObject, proxy = $.proxy, extend = $.extend, placeholderSupported = kendo.support.placeholder, isFunction = kendo.isFunction, trimSlashesRegExp = /(^\\/|\\/$)/g, CHANGE = 'change', APPLY = 'apply', ERROR = 'error', CLICK = 'click', NS = '.kendoFileBrowser', SEARCHBOXNS = '.kendoSearchBox', NAMEFIELD = 'name', SIZEFIELD = 'size', TYPEFIELD = 'type', DEFAULTSORTORDER = {\n field: TYPEFIELD,\n dir: 'asc'\n }, EMPTYTILE = kendo.template('
${text}
'), TOOLBARTMPL = '
' + '# if (showCreate) { #' + '' + '# } #' + '# if (showUpload) { # ' + '
' + '#=messages.uploadFile#
' + '# } #' + '# if (showDelete) { #' + '' + '# } #' + '
' + '' + '
' + '' + '' + '
';\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 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 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 },\n options: {\n read: { type: 'POST' },\n update: { type: 'POST' },\n create: { type: 'POST' },\n destroy: { type: 'POST' }\n }\n })\n }\n });\n function bindDragEventWrappers(element, onDragEnter, onDragLeave) {\n var hideInterval, lastDrag;\n element.on('dragenter' + NS, function () {\n onDragEnter();\n lastDrag = new Date();\n if (!hideInterval) {\n hideInterval = setInterval(function () {\n var sinceLastDrag = new Date() - lastDrag;\n if (sinceLastDrag > 100) {\n onDragLeave();\n clearInterval(hideInterval);\n hideInterval = null;\n }\n }, 100);\n }\n }).on('dragover' + NS, function () {\n lastDrag = new Date();\n });\n }\n function concatPaths(path, name) {\n if (path === undefined || !path.match(/\\/$/)) {\n path = (path || '') + '/';\n }\n return path + name;\n }\n function sizeFormatter(value) {\n if (!value) {\n return '';\n }\n var suffix = ' bytes';\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 return Math.round(value * 100) / 100 + suffix;\n }\n function fieldName(fields, name) {\n var descriptor = fields[name];\n if (isPlainObject(descriptor)) {\n return descriptor.from || descriptor.field || name;\n }\n return descriptor;\n }\n var FileBrowser = Widget.extend({\n init: function (element, options) {\n var that = this;\n options = options || {};\n Widget.fn.init.call(that, element, options);\n that.element.addClass('k-filebrowser');\n that.element.on(CLICK + NS, '.k-filebrowser-toolbar button:not(.k-state-disabled):has(.k-i-close)', proxy(that._deleteClick, that)).on(CLICK + NS, '.k-filebrowser-toolbar button:not(.k-state-disabled):has(.k-i-folder-add)', proxy(that._addClick, that)).on('keydown' + NS, '.k-listview-item.k-state-selected input', proxy(that._directoryKeyDown, that)).on('blur' + NS, '.k-listview-item.k-state-selected input', proxy(that._directoryBlur, that));\n that._dataSource();\n that.refresh();\n that.path(that.options.path);\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 events: [\n ERROR,\n CHANGE,\n APPLY\n ],\n destroy: function () {\n var that = this;\n Widget.fn.destroy.call(that);\n that.dataSource.unbind(ERROR, that._errorHandler);\n that.element.add(that.list).add(that.toolbar).off(NS);\n kendo.destroy(that.element);\n },\n value: function () {\n var that = this, selected = that._selectedItem(), path, fileUrl = that.options.transport.fileUrl;\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 _selectedItem: function () {\n var listView = this.listView, selected = listView.select();\n if (selected.length) {\n return this.dataSource.getByUid(selected.attr(kendo.attr('uid')));\n }\n },\n _toolbar: function () {\n var that = this, template = kendo.template(TOOLBARTMPL), messages = that.options.messages, arrangeBy = [\n {\n text: messages.orderByName,\n value: 'name'\n },\n {\n text: messages.orderBySize,\n 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 })).appendTo(that.element).find('.k-upload input').kendoUpload({\n multiple: false,\n localization: { dropFilesHere: messages.dropFilesHere },\n async: {\n saveUrl: that.options.transport.uploadUrl,\n autoUpload: true\n },\n upload: proxy(that._fileUpload, that),\n error: function (e) {\n that._error({\n xhr: e.XMLHttpRequest,\n status: 'error'\n });\n }\n }).end();\n that.upload = that.toolbar.find('.k-upload input').data('kendoUpload');\n that.arrangeBy = that.toolbar.find('.k-tiles-arrange select').kendoDropDownList({\n dataSource: arrangeBy,\n dataTextField: 'text',\n dataValueField: 'value',\n change: function () {\n that.orderBy(this.value());\n }\n }).data('kendoDropDownList');\n that.searchBox = that.toolbar.find('input[data-role=\\'searchbox\\']').kendoSearchBox({\n label: that.options.messages.search,\n change: function () {\n that.search(this.value());\n }\n }).data('kendoSearchBox');\n that._attachDropzoneEvents();\n },\n _attachDropzoneEvents: function () {\n var that = this;\n if (that.options.transport.uploadUrl) {\n bindDragEventWrappers($(document.documentElement), $.proxy(that._dropEnter, that), $.proxy(that._dropLeave, that));\n that._scrollHandler = proxy(that._positionDropzone, that);\n }\n },\n _dropEnter: function () {\n this._positionDropzone();\n $(document).on('scroll' + NS, this._scrollHandler);\n },\n _dropLeave: function () {\n this._removeDropzone();\n $(document).off('scroll' + NS, this._scrollHandler);\n },\n _positionDropzone: function () {\n var that = this, element = that.element, offset = element.offset();\n that.toolbar.find('.k-dropzone').addClass('k-filebrowser-dropzone').offset(offset).css({\n width: element[0].clientWidth,\n height: element[0].clientHeight,\n lineHeight: element[0].clientHeight + 'px'\n });\n },\n _removeDropzone: function () {\n this.toolbar.find('.k-dropzone').removeClass('k-filebrowser-dropzone').css({\n width: '',\n height: '',\n lineHeight: '',\n top: '',\n left: ''\n });\n },\n _deleteClick: function () {\n var that = this, item = that.listView.select(), message = kendo.format(that.options.messages.deleteFile, item.find('.k-file-name').text());\n if (item.length && that._showMessage(message, 'confirm')) {\n that.listView.remove(item);\n }\n },\n _addClick: function () {\n this.createDirectory();\n },\n _getFieldName: function (name) {\n return fieldName(this.dataSource.reader.model.fields, name);\n },\n _fileUpload: function (e) {\n var that = this, options = that.options, fileTypes = options.fileTypes, filterRegExp = new RegExp(('(' + fileTypes.split(',').join(')|(') + ')').replace(/\\*\\./g, '.*.'), 'i'), fileName = e.files[0].name, fileSize = e.files[0].size, fileNameField = NAMEFIELD, sizeField = SIZEFIELD, file;\n if (filterRegExp.test(fileName)) {\n e.data = { path: that.path() };\n file = that._createFile(fileName, fileSize);\n if (!file) {\n e.preventDefault();\n } else {\n that.upload.one('success', function (e) {\n var model = that._insertFileToList(file);\n if (model._override) {\n model.set(fileNameField, e.response[that._getFieldName(fileNameField)]);\n model.set(sizeField, e.response[that._getFieldName(sizeField)]);\n that.listView.dataSource.pushUpdate(model);\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 _findFile: function (name) {\n var data = this.dataSource.data(), idx, result, typeField = TYPEFIELD, nameField = NAMEFIELD, length;\n name = name.toLowerCase();\n for (idx = 0, length = data.length; idx < length; idx++) {\n if (data[idx].get(typeField) === 'f' && data[idx].get(nameField).toLowerCase() === name) {\n result = data[idx];\n break;\n }\n }\n return result;\n },\n _createFile: function (fileName, fileSize) {\n var that = this, model = {}, typeField = TYPEFIELD, file = that._findFile(fileName);\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 model[typeField] = 'f';\n model[NAMEFIELD] = fileName;\n model[SIZEFIELD] = fileSize;\n return model;\n },\n _insertFileToList: function (model) {\n var index;\n if (model._override) {\n return model;\n }\n var dataSource = this.dataSource;\n var view = dataSource.view();\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 return dataSource.insert(++index, model);\n },\n createDirectory: function () {\n var that = this, idx, length, lastDirectoryIdx = 0, typeField = TYPEFIELD, nameField = NAMEFIELD, view = that.dataSource.data(), name = that._nameDirectory(), model = new that.dataSource.reader.model();\n for (idx = 0, length = view.length; idx < length; idx++) {\n if (view[idx].get(typeField) === 'd') {\n lastDirectoryIdx = idx;\n }\n }\n model.set(typeField, 'd');\n model.set(nameField, name);\n that.listView.one('dataBound', function () {\n var selected = that.listView.items().filter('[' + kendo.attr('uid') + '=' + model.uid + ']');\n if (selected.length) {\n this.edit(selected);\n }\n this.element.scrollTop(selected.attr('offsetTop') - this.element[0].offsetHeight);\n setTimeout(function () {\n that.listView.element.find('.k-edit-item input').select();\n });\n }).one('save', function (e) {\n var value = e.model.get(nameField);\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 that.dataSource.insert(++lastDirectoryIdx, model);\n },\n _directoryKeyDown: function (e) {\n if (e.keyCode == 13) {\n e.currentTarget.blur();\n }\n },\n _directoryBlur: function () {\n this.listView.save();\n },\n _nameExists: function (name, uid) {\n var data = this.dataSource.data(), typeField = TYPEFIELD, nameField = NAMEFIELD, idx, length;\n for (idx = 0, length = data.length; idx < length; idx++) {\n if (data[idx].get(typeField) === 'd' && data[idx].get(nameField).toLowerCase() === name.toLowerCase() && data[idx].uid !== uid) {\n return true;\n }\n }\n return false;\n },\n _nameDirectory: function () {\n var name = 'New folder', data = this.dataSource.data(), directoryNames = [], typeField = TYPEFIELD, nameField = NAMEFIELD, candidate, idx, length;\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 if ($.inArray(name, directoryNames) > -1) {\n idx = 2;\n do {\n candidate = name + ' (' + idx + ')';\n idx++;\n } while ($.inArray(candidate, directoryNames) > -1);\n name = candidate;\n }\n return name;\n },\n orderBy: function (field) {\n this.dataSource.sort([\n {\n field: TYPEFIELD,\n dir: 'asc'\n },\n {\n field: field,\n 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 _content: function () {\n var that = this;\n that.list = $('
').appendTo(that.element).on('dblclick' + NS, '.k-listview-item', proxy(that._dblClick, that));\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-state-disabled');\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: proxy(that._listViewChange, that)\n });\n },\n _dblClick: function (e) {\n var that = this, li = $(e.currentTarget);\n if (li.hasClass('k-edit-item')) {\n that._directoryBlur();\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 _listViewChange: function () {\n var selected = this._selectedItem();\n if (selected) {\n this.toolbar.find('.k-i-close').parent().removeClass('k-state-disabled');\n this.trigger(CHANGE, { selected: selected });\n }\n },\n _dataSource: function () {\n var that = this, options = that.options, transport = options.transport, typeSortOrder = extend({}, DEFAULTSORTORDER), nameSortOrder = {\n field: NAMEFIELD,\n dir: 'asc'\n }, schema, dataSource = {\n type: transport.type || 'filebrowser',\n sort: [\n typeSortOrder,\n nameSortOrder\n ]\n };\n if (isPlainObject(transport)) {\n transport.path = proxy(that.path, that);\n dataSource.transport = transport;\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 if (that.dataSource && that._errorHandler) {\n that.dataSource.unbind(ERROR, that._errorHandler);\n } else {\n that._errorHandler = proxy(that._error, that);\n }\n that.dataSource = kendo.data.DataSource.create(dataSource).bind(ERROR, that._errorHandler);\n },\n _navigation: function () {\n var that = this, navigation = $('
').appendTo(this.element);\n that.breadcrumbs = navigation.find('nav:first').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 _error: function (e) {\n var that = this, status;\n if (!that.trigger(ERROR, e)) {\n status = e.xhr.status;\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 var dataSource = that.dataSource;\n if (dataSource.hasChanges()) {\n dataSource.cancelChanges();\n }\n }\n },\n _showMessage: function (message, type) {\n return window[type || 'alert'](message);\n },\n refresh: function () {\n var that = this;\n that._navigation();\n that._toolbar();\n that._content();\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 return proxy(kendo.template(html), { sizeFormatter: sizeFormatter });\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 return proxy(kendo.template(html), { sizeFormatter: sizeFormatter });\n },\n path: function (value) {\n var that = this, path = that._path || '';\n if (value !== undefined) {\n that._path = value.replace(trimSlashesRegExp, '') + '/';\n that.dataSource.read({ path: that._path });\n return;\n }\n if (path) {\n path = path.replace(trimSlashesRegExp, '');\n }\n return path === '/' || path === '' ? '' : path + '/';\n }\n });\n var SearchBox = Widget.extend({\n init: function (element, options) {\n var that = this;\n options = options || {};\n Widget.fn.init.call(that, element, options);\n if (placeholderSupported) {\n that.element.attr('placeholder', that.options.label);\n }\n that._wrapper();\n that.element.on('keydown' + SEARCHBOXNS, proxy(that._keydown, that)).on('change' + SEARCHBOXNS, proxy(that._updateValue, that));\n that.wrapper.on(CLICK + SEARCHBOXNS, 'a', proxy(that._click, that));\n if (!placeholderSupported) {\n that.element.on('focus' + SEARCHBOXNS, proxy(that._focus, that)).on('blur' + SEARCHBOXNS, proxy(that._blur, that));\n }\n },\n options: {\n name: 'SearchBox',\n label: 'Search',\n value: ''\n },\n events: [CHANGE],\n destroy: function () {\n var that = this;\n that.wrapper.add(that.element).add(that.label).off(SEARCHBOXNS);\n Widget.fn.destroy.call(that);\n },\n _keydown: function (e) {\n if (e.keyCode === 13) {\n this._updateValue();\n }\n },\n _click: function (e) {\n e.preventDefault();\n this._updateValue();\n },\n _updateValue: function () {\n var that = this, value = that.element.val();\n if (value !== that.value()) {\n that.value(value);\n that.trigger(CHANGE);\n }\n },\n _blur: function () {\n this._updateValue();\n this._toggleLabel();\n },\n _toggleLabel: function () {\n if (!placeholderSupported) {\n this.label.toggle(!this.element.val());\n }\n },\n _focus: function () {\n this.label.hide();\n },\n _wrapper: function () {\n var element = this.element, wrapper = element.parents('.k-search-wrap');\n element[0].style.width = '';\n element.addClass('k-input');\n if (!wrapper.length) {\n wrapper = element.wrap($('
')).parent();\n if (!placeholderSupported) {\n $('').insertBefore(element);\n }\n $('').appendTo(wrapper);\n }\n this.wrapper = wrapper;\n this.label = wrapper.find('>label');\n },\n value: function (value) {\n var that = this;\n if (value !== undefined) {\n that.options.value = value;\n that.element.val(value);\n that._toggleLabel();\n return;\n }\n return that.options.value;\n }\n });\n kendo.ui.plugin(FileBrowser);\n kendo.ui.plugin(SearchBox);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"]}