{"version":3,"file":"kendo.filemanager.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendofilemanager","js","this","$","undefined$1","kendo","window","extend","deferred","Deferred","Class","Command","init","options","filemanager","CreateFolderCommand","fn","call","exec","that","commandStack","_commandStack","dataSource","_viewDataSource","removeProxy","_remove","bind","_item","_createNewModel","push","item","toJSON","fail","add","pushDestroy","RenameCommand","target","viewItem","_view","widgetComponent","dataItem","edit","_renameTreeViewItem","uid","data","treeView","getByUid","realItem","get","id","_prompt","type","defaultInput","name","done","newName","set","DeleteCommand","itemsToRemove","items","getSelected","is","length","_confirm","removeItems","_itemsToRemove","Array","isArray","_removeItem","itemToRemove","splice","then","remove","CopyCommand","targetDataSource","children","i","fileManagerNewItem","MoveCommand","promises","cloning","promise","_delete","whenAll","always","SortCommand","sortOptions","defaultSortOption","dir","field","sort","folderSortOption","SearchCommand","filter","operator","value","ChangeViewCommand","view","resize","OpenDialogCommand","dialog","open","console","warn","format","TogglePaneCommand","pane","resizable","getResizable","toggle","wrapper","find","handle","_resizeDraggable","CommandStack","_stack","_keys","guid","next","key","keys","resolve","command","reject","empty","ui","FileManagerCommand","commands","jQuery","Observable","encode","htmlEncode","SELECT","CHANGE","OPEN","KEYDOWN","KEYDOWNACTION","NS","fileManagerDraggables","fileManagerDragOrigin","Component","widget","element","Error","_bindEvents","_binding","_bound","ev","trigger","preventDefault","_setDSOptions","dataSourceOptions","_initDragAndDrop","dropFilter","draggable","kendoDraggable","hint","_hint","cursorOffset","top","left","holdToDrag","ignore","hold","_hold","userEvents","minHold","droptarget","kendoDropTargetArea","drop","_onDrop","dragenter","dropTarget","addClass","dragleave","removeClass","currentTarget","selectable","clear","select","cancel","selectedItems","icon","messages","isDirectory","targetId","itemIds","refresh","setDataSource","destroy","ViewComponent","ViewComponents","registerViewComponent","componentName","component","getViewComponent","ListView","explicitOptions","defaultOptions","ariaLabel","kendoKeydown","_kendoKeydown","listView","isLocalBinding","layout","flex","direction","wrap","support","mobileOS","template","extension","getFileGroup","iconClass","size","editTemplate","navigatable","_select","on","_dblClick","_mousedown","_keydown","_keydownAction","sender","isDirty","_modelFromElement","editable","dirty","_closeEditable","dataItems","entries","keyCode","ESC","node","closest","which","ENTER","preventKendoKeydown","_handleEnterKey","current","_triggerOpen","entry","addFolder","selected","off","TreeView","dataTextField","_refreshDataSource","action","parentNode","treeEl","activeDescendant","attr","map","hasChildren","findByUid","_progress","each","index","append","_shouldFocus","focus","existingItem","_nextVisible","removeAttr","_navigate","_expand","entryId","path","noop","selectedItem","reload","read","Grid","_setupColumns","grid","mode","confirmation","sortable","columns","title","nameField","dateCreatedField","sizeField","getFileSizeMessage","table","_toggleFocusable","saveRow","F2","setTimeout","_editContainer","_tryCancel","cancelChanges","val","state","addBack","toggleClass","container","model","_destroyEditable","_displayRow","addRow","editRow","Node","HierarchicalDataSource","DataSource","schemas","fields","defaultValue","hasDirectories","created","createdUtc","modified","modifiedUtc","FileEntry","getter","isFunction","isDirectoryObject","_initChildren","transport","parameterMap","FileManagerDataSource","_childrenOptions","parent","e","collection","_updateChildrenField","isNew","_defaultId","fileEntry","serverFiltering","_hierarchicalFilter","schema","modelBase","LocalTransport","_attachBubbleHandlers","insert","result","_cleanDestroyed","_hasDirectories","_destroyed","create","_dataSource","observableFileManagerData","array","fetch","_data","ContextMenu","ACTION","FileManagerContextMenu","_overrideTemplates","_initDefaultItems","_extendItems","_onSelect","_onOpen","templates","sprite","spriteCssClass","defaultItems","rename","text","delete","events","concat","isPlainObject","Object","_extendItem","isEmptyObject","args","DataBoundWidget","outerHeight","NAVIGATE","ERROR","CLOSE","DATABINDING","DATABOUND","DROP","EXECUTE","COMMAND","TREE_TYPE","DOT","fileManagerStyles","fileManagerTemplateStyles","FileManager","_outerHeight","header","navigation","contentContainer","content","preview","toolbar","treeview","breadcrumb","list","upload","uploadDialog","splitBar","splitBarHorizontal","splitBarHover","splitBarIcon","splitBarNavigation","splitBarPreview","filePreview","fileInfo","fileName","fileMeta","metaLabel","metaValue","deepExtend","_wrapper","_renderHeader","_renderContentContainer","_initContextMenu","_renderNavigation","_renderContent","_renderPreview","_initUploadDialog","_resizable","_attachKeyDown","notify","height","initialView","contextMenu","uploadUrl","views","dialogs","width","moveConfirm","closable","deleteConfirm","renamePrompt","previewPane","metaFields","noFileTemplate","styles","noFileSelected","singleFileTemplate","selection","Date","toString","multipleFilesTemplate","createFolder","sortDirection","sortDirectionAsc","sortDirectionDesc","sortField","typeField","dateModifiedField","gridView","search","details","detailsChecked","detailsUnchecked","listLabel","gridLabel","treeLabel","okText","close","defaultTools","rules","remote","buttons","showText","togglable","group","menuButtons","changeView","spacer","componentOptions","overflow","checked","unchecked","commandOn","placeholder","F10","first","typeSortOrder","nameSortOrder","autoSync","_errorHandler","unbind","_changeHandler","_error","_change","xhr","status","statusText","_resizeHandler","onResize","_initToolbar","_tabIndex","menuOptions","executeCommand","_cacheFocus","_initTreeView","_initBreadcrumb","_initView","_isToolEnabled","_initUpload","hide","previewContainer","_setPreviewPaneContent","previewTemplate","previewPaneMessages","previewPaneOptions","html","toolbarElement","toolbarOptions","tools","_processTools","parentMessages","ToolBar","_toolbarClick","forEach","t","hidden","b","toolName","found","treeViewElement","_load","_drop","indexOf","DELETE","confirm","kendoConfirm","_restoreFocus","prompt","kendoPrompt","activeElement","document","popup","visible","hasClass","_focusElement","_viewType","viewWrapper","breadcrumbElement","breadcrumbOptions","change","_breadcrumbChange","Breadcrumb","substring","shift","uploadInstance","dialogMessages","dialogElement","dialogOptions","modal","actions","primary","_clearUploadFilesList","_shouldInitUpload","Dialog","_toggleUploadDropZone","shouldInit","async","saveUrl","uploadElement","uploadOptions","autoUpload","dropZone","Upload","_sendUploadPathParameter","_success","clearAllFiles","zone","setOptions","source","_createResizableSplitBar","cssClass","hover","_initResizableNavigation","contentWrapperWidth","navigationWrapperWidth","contentWrapper","navigationWrapper","insertAfter","end","kendoResizable","start","delta","x","initialDelta","isRtl","getKendoResizable","_initResizablePreview","previewWrapperWidth","previewWrapper","insertBefore","_open","_cancel","el","join","commandName","commandOptions","navigate","load","sync","res","response","_navigateToParent","loaded","parentNodePath","_buildBreadcrumbPath","reverse","_adjustDimensions","gridSelector","listViewSelector","totalHeight","toolbarHeight","breadcrumbHeight","_resize","getSize","dimensions","_path","replace","isRoot","_sort","unbindResize","plugin"],"sources":["kendo.filemanager.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.core.js'), require('kendo.listview.js'), require('kendo.treeview.js'), require('kendo.icons.js'), require('kendo.data.js'), require('kendo.menu.js'), require('kendo.toolbar.js'), require('kendo.breadcrumb.js'), require('kendo.upload.js'), require('kendo.dialog.js'), require('kendo.resizable.js'), require('kendo.switch.js'), require('kendo.textbox.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.core', 'kendo.listview', 'kendo.treeview', 'kendo.icons', 'kendo.data', 'kendo.menu', 'kendo.toolbar', 'kendo.breadcrumb', 'kendo.upload', 'kendo.dialog', 'kendo.resizable', 'kendo.switch', 'kendo.textbox'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendofilemanager = global.kendofilemanager || {}, global.kendofilemanager.js = factory()));\n})(this, (function () {\n (function($, undefined$1) {\n var kendo = window.kendo,\n extend = $.extend,\n deferred = $.Deferred,\n Class = kendo.Class;\n\n var Command = Class.extend({\n init: function(options) {\n this.options = options;\n this.filemanager = options.filemanager;\n }\n });\n\n var CreateFolderCommand = Command.extend({\n init: function(options) {\n Command.fn.init.call(this, options);\n },\n exec: function() {\n var that = this,\n filemanager = that.filemanager,\n commandStack = filemanager._commandStack,\n dataSource = filemanager._viewDataSource || filemanager.dataSource,\n removeProxy = that._remove.bind(that);\n\n that._item = dataSource._createNewModel();\n\n commandStack.push({ item: that._item.toJSON() }).fail(removeProxy);\n dataSource.add(that._item);\n },\n _remove: function() {\n var that = this,\n filemanager = that.filemanager,\n dataSource = filemanager._viewDataSource || filemanager.dataSource;\n\n dataSource.pushDestroy(that._item);\n }\n });\n\n var RenameCommand = Command.extend({\n init: function(options) {\n Command.fn.init.call(this, options);\n },\n exec: function() {\n var that = this,\n target = that.options.target,\n filemanager = that.filemanager,\n commandStack = filemanager._commandStack,\n viewItem = filemanager._view.widgetComponent.dataItem(target);\n\n if (target && viewItem) {\n commandStack.push({ target: target, item: viewItem });\n that.filemanager._view.edit(target);\n } else {\n that._renameTreeViewItem(target);\n }\n },\n _renameTreeViewItem: function(target) {\n var that = this,\n filemanager = that.filemanager,\n commandStack = filemanager._commandStack,\n uid = target.data(\"uid\"),\n item = that.filemanager.treeView.widgetComponent.dataSource.getByUid(uid),\n realItem = that.filemanager.dataSource.get(item.id);\n\n that.filemanager._prompt({\n type: \"rename\",\n defaultInput: realItem.name,\n target: target\n }).done(function(newName) {\n commandStack.push({ target: target, item: realItem });\n realItem.set(\"name\", newName);\n });\n }\n });\n\n var DeleteCommand = Command.extend({\n init: function(options) {\n Command.fn.init.call(this, options);\n },\n exec: function() {\n var that = this,\n target = that.options.target,\n filemanager = that.filemanager,\n items = filemanager.getSelected(),\n viewItem = that.filemanager._view.widgetComponent.dataItem(target),\n itemsToRemove;\n\n if (target && target.is(\".k-selected\") && items && items.length) {\n itemsToRemove = items;\n } else if (target && viewItem) {\n itemsToRemove = viewItem;\n } else if (target) {\n var uid = target.data(\"uid\");\n var item = that.filemanager.treeView.widgetComponent.dataSource.getByUid(uid);\n var realItem = that.filemanager.dataSource.get(item.id);\n\n itemsToRemove = realItem;\n }\n\n filemanager._confirm({\n type: \"delete\",\n target: target\n })\n .done(function() {\n that.removeItems(itemsToRemove);\n });\n },\n removeItems: function(items) {\n var that = this;\n\n that._itemsToRemove = Array.isArray(items) ? items : [items];\n\n that._removeItem();\n },\n _removeItem: function() {\n var that = this,\n filemanager = that.filemanager,\n commandStack = filemanager._commandStack,\n dataSource = filemanager.dataSource,\n itemToRemove = !!that._itemsToRemove.length && that._itemsToRemove.splice(0,1)[0];\n\n if (itemToRemove) {\n commandStack.push({ item: itemToRemove })\n .then(that._removeItem.bind(that), that._removeItem.bind(that));\n\n dataSource.remove(itemToRemove);\n }\n }\n });\n\n var CopyCommand = Command.extend({\n init: function(options) {\n Command.fn.init.call(this, options);\n },\n exec: function() {\n var that = this,\n filemanager = that.filemanager,\n dataSource = filemanager.dataSource,\n commandStack = filemanager._commandStack,\n items = that.options.items,\n target = dataSource.get(that.options.target),\n targetDataSource = target.children;\n\n for (var i = 0; i < items.length; i++) {\n var item = dataSource.get(items[i]).toJSON();\n item.fileManagerNewItem = true;\n commandStack.push({ item: item, target: target });\n targetDataSource.add(item);\n }\n }\n });\n\n var MoveCommand = Command.extend({\n init: function(options) {\n var that = this;\n Command.fn.init.call(that, options);\n that._itemsToRemove = [];\n },\n exec: function() {\n var that = this,\n filemanager = that.filemanager,\n commandStack = filemanager._commandStack,\n dataSource = filemanager.dataSource,\n items = that.options.items,\n target = dataSource.get(that.options.target),\n targetDataSource = target.children,\n promises = [];\n\n for (var i = 0; i < items.length; i++) {\n var item = dataSource.get(items[i]);\n var cloning = item.toJSON();\n cloning.fileManagerNewItem = true;\n\n var promise = commandStack.push({ item: item, target: target })\n .then(that._delete.bind(that));\n\n promises.push(promise);\n targetDataSource.add(cloning);\n }\n\n kendo.whenAll(promises).always(that._removeItem.bind(that));\n },\n _delete: function(data) {\n var that = this;\n that._itemsToRemove.push(data.item);\n },\n _removeItem: function() {\n var that = this,\n filemanager = that.filemanager,\n commandStack = filemanager._commandStack,\n dataSource = filemanager.dataSource,\n itemToRemove = !!that._itemsToRemove.length && that._itemsToRemove.splice(0,1)[0];\n\n if (itemToRemove) {\n commandStack.push({ item: itemToRemove })\n .then(that._removeItem.bind(that), that._removeItem.bind(that));\n\n dataSource.remove(itemToRemove);\n }\n }\n });\n\n var SortCommand = Command.extend({\n init: function(options) {\n Command.fn.init.call(this, options);\n },\n exec: function() {\n var that = this,\n options = that.options,\n filemanager = that.filemanager,\n sortOptions = filemanager.defaultSortOption;\n\n extend(sortOptions, {\n dir: options.dir,\n field: options.field\n });\n\n filemanager._view.widgetComponent.dataSource.sort([ filemanager.folderSortOption, sortOptions ]);\n }\n });\n\n var SearchCommand = Command.extend({\n init: function(options) {\n Command.fn.init.call(this, options);\n },\n exec: function() {\n var that = this,\n options = that.options,\n filemanager = that.filemanager,\n filter = {\n field: options.field,\n operator: options.operator,\n value: options.value || \"\"\n };\n\n filemanager._view.widgetComponent.dataSource.filter(filter);\n }\n });\n\n var ChangeViewCommand = Command.extend({\n init: function(options) {\n Command.fn.init.call(this, options);\n },\n exec: function() {\n var that = this,\n options = that.options,\n filemanager = that.filemanager;\n\n filemanager.view(options.value);\n filemanager.resize(true);\n }\n });\n\n var OpenDialogCommand = Command.extend({\n init: function(options) {\n Command.fn.init.call(this, options);\n },\n exec: function() {\n var that = this,\n filemanager = that.filemanager,\n dialog = filemanager[that.options.type];\n\n if (dialog) {\n dialog.open();\n } else {\n window.console.warn(kendo.format(\"The {0} dialog is not available!\", that.options.type));\n }\n }\n });\n\n var TogglePaneCommand = Command.extend({\n init: function(options) {\n Command.fn.init.call(this, options);\n },\n exec: function() {\n var that = this,\n filemanager = that.filemanager,\n pane = filemanager[that.options.type],\n resizable = that.getResizable();\n\n if (pane) {\n pane.toggle();\n\n if (resizable) {\n filemanager.wrapper\n .find(resizable.options.handle)\n .toggle();\n }\n }\n },\n getResizable: function() {\n var that = this,\n filemanager = that.filemanager,\n type = that.options.type;\n\n if (!filemanager._resizeDraggable) {\n return;\n }\n\n return filemanager._resizeDraggable[type];\n }\n });\n\n var CommandStack = Class.extend({\n init: function() {\n var that = this;\n\n that._stack = {};\n that._keys = [];\n },\n push: function(data) {\n var that = this,\n guid = kendo.guid();\n\n that._keys.push(guid);\n that._stack[guid] = {\n guid: guid,\n data: data,\n deferred: deferred()\n };\n\n return that._stack[guid].deferred;\n },\n next: function() {\n var that = this,\n key = that.keys().splice(0,1),\n nextCommand = that._stack[key];\n\n return nextCommand;\n },\n resolve: function(command) {\n var that = this;\n delete that._stack[command.guid];\n command.deferred.resolve(command.data);\n },\n reject: function(command) {\n var that = this;\n delete that._stack[command.guid];\n command.deferred.reject(command.data);\n },\n keys: function() {\n return this._keys;\n },\n empty: function() {\n return this.keys().length === 0;\n }\n });\n\n extend(kendo.ui, {\n filemanager: {\n FileManagerCommand: Command,\n CommandStack: CommandStack,\n commands: {\n CreateFolderCommand: CreateFolderCommand,\n RenameCommand: RenameCommand,\n DeleteCommand: DeleteCommand,\n MoveCommand: MoveCommand,\n CopyCommand: CopyCommand,\n SortCommand: SortCommand,\n SearchCommand: SearchCommand,\n ChangeViewCommand: ChangeViewCommand,\n OpenDialogCommand: OpenDialogCommand,\n TogglePaneCommand: TogglePaneCommand\n }\n }\n });\n\n })(window.kendo.jQuery);\n\n (function($, undefined$1) {\n\n var kendo = window.kendo,\n ui = kendo.ui,\n Observable = kendo.Observable,\n extend = $.extend,\n encode = kendo.htmlEncode,\n keys = kendo.keys,\n\n NAVIGATE = \"navigate\",\n SELECT = \"select\",\n EXPAND = \"expand\",\n CHANGE = \"change\",\n OPEN = \"open\",\n LOAD = \"load\",\n KEYDOWN = \"keydown\",\n KEYDOWNACTION = \"keydownAction\",\n\n NS = \".kendoFileManagerViewComponent\",\n\n fileManagerDraggables = [],\n fileManagerDragOrigin = null;\n\n var registerViewComponent = function(componentName, component) {\n ui.filemanager.ViewComponents[componentName] = component;\n };\n\n var getViewComponent = function(componentName) {\n return ui.filemanager.ViewComponents[componentName] || null;\n };\n\n var Component = Observable.extend({\n init: function(widget, element, options) {\n var that = this;\n\n that.element = element;\n that.options = options;\n\n if (widget) {\n that.widgetComponent = new widget(element, options);\n } else {\n throw new Error(\"The widget for the ViewComponent is not available! Please add the corresponding scripts!\");\n }\n\n Observable.fn.init.call(that);\n },\n\n _bindEvents: function() {\n this.widgetComponent.bind(\"dataBinding\", this._binding.bind(this));\n this.widgetComponent.bind(\"dataBound\", this._bound.bind(this));\n },\n\n _binding: function(ev) {\n if (this.trigger(\"dataBinding\", ev)) {\n ev.preventDefault();\n }\n },\n\n _bound: function() {\n this.trigger(\"dataBound\");\n },\n\n _setDSOptions: function(options, dataSourceOptions) {\n if (!options.dataSource && dataSourceOptions) {\n options.dataSource = dataSourceOptions;\n }\n },\n\n _initDragAndDrop: function(element, filter) {\n var that = this;\n\n filter = filter || that.options.dropFilter;\n element = element || that.element;\n\n that.draggable = element.kendoDraggable({\n filter: filter,\n hint: that._hint.bind(that),\n cursorOffset: { top: -10, left: -50 },\n holdToDrag: true,\n ignore: \"input, .k-focusable\",\n hold: that._hold.bind(that)\n }).data(\"kendoDraggable\");\n\n that.draggable.userEvents.minHold = 150;\n\n that.droptarget = element.kendoDropTargetArea({\n filter: filter,\n drop: that._onDrop.bind(that),\n dragenter: function(ev) {\n ev.dropTarget.addClass(\"k-filemanager-drop-target\");\n },\n dragleave: function(ev) {\n ev.dropTarget.removeClass(\"k-filemanager-drop-target\");\n }\n }).data(\"kendoDraggable\");\n },\n\n _hold: function(ev) {\n var that = this,\n target = ev.currentTarget;\n\n if (!target.is(\".k-selected\")) {\n if (that.widgetComponent.selectable) {\n that.widgetComponent.selectable.clear();\n }\n that.widgetComponent.select(target);\n }\n\n if (that.widgetComponent.selectable) {\n that.widgetComponent.selectable.userEvents.cancel();\n }\n },\n\n _hint: function(target) {\n var that = this,\n item = that.widgetComponent.dataItem(target),\n selectedItems = that.widgetComponent.select();\n\n fileManagerDragOrigin = that.widgetComponent;\n fileManagerDraggables = selectedItems;\n\n if (selectedItems.length > 1) {\n return `
${kendo.ui.icon(\"file\")} ${selectedItems.length} ${that.options.messages.items}
`;\n }\n\n return `
${kendo.ui.icon((item.isDirectory ? \"folder\" : \"file\"))} ${item.name}
`;\n },\n\n _onDrop: function(ev) {\n var that = this,\n target = that.widgetComponent.dataItem(ev.dropTarget),\n targetId = target.id,\n itemIds = [];\n\n if (!target.isDirectory) {\n return;\n }\n\n for (var i = 0; i < fileManagerDraggables.length; i++) {\n var id = fileManagerDragOrigin.dataItem(fileManagerDraggables[i]).id;\n itemIds.push(id);\n }\n\n this.trigger(\"drop\",{ target: targetId, items: itemIds });\n },\n\n getSelected: function() {\n throw new Error(\"Not Implemented!\");\n },\n\n refresh: function(dataSource) {\n this.widgetComponent.setDataSource(dataSource);\n },\n\n destroy: function() {\n kendo.destroy(this.element);\n }\n });\n\n extend(kendo.ui.filemanager, {\n ViewComponent: Component,\n ViewComponents: {},\n registerViewComponent: registerViewComponent,\n getViewComponent: getViewComponent\n }\n );\n\n var ListView = Component.extend({\n init: function(element, options, explicitOptions) {\n var that = this,\n dataSourceOptions = explicitOptions.dataSource,\n messages = explicitOptions.messages;\n\n options = extend({}, that.defaultOptions, options, {\n messages: messages,\n ariaLabel: explicitOptions.ariaLabel\n });\n\n that._setDSOptions(options, dataSourceOptions);\n options.kendoKeydown = options.kendoKeydown || that._kendoKeydown.bind(that);\n\n Component.fn.init.call(this, ui.ListView, element, options);\n\n that.listView = that.widgetComponent;\n that._bindEvents();\n\n if (explicitOptions.draggable !== false && !dataSourceOptions.isLocalBinding) {\n that._initDragAndDrop();\n }\n },\n\n defaultOptions: {\n layout: \"flex\",\n flex: {\n direction: \"row\",\n wrap: \"wrap\"\n },\n selectable: kendo.support.mobileOS ? \"row\" : \"multiple\",\n template: ({ name, extension, isDirectory }) =>\n `
` +\n `
${kendo.ui.icon({ icon: (!isDirectory ? kendo.getFileGroup(extension, true) : 'folder'), iconClass: \"k-file-icon\", size: \"xxxlarge\" })}
` +\n `
${encode(name)}${encode(extension)}
` +\n \"
\",\n editTemplate: ({ extension, isDirectory }) =>\n \"
\" +\n `
${kendo.ui.icon({ icon: (!isDirectory ? kendo.getFileGroup(extension, true) : 'folder'), iconClass: \"k-file-icon\", size: \"xxxlarge\" })}
` +\n \"
\" +\n \"
\",\n dropFilter: \".k-listview-item\",\n navigatable: true\n },\n\n _bindEvents: function() {\n var that = this,\n listView = that.listView;\n\n listView.bind(CHANGE, that._select.bind(that));\n listView.element.on(\"dblclick\" + NS, that._dblClick.bind(that));\n listView.element.on(\"mousedown\" + NS, \".k-listview-item:not(.k-edit-item)\", that._mousedown.bind(that));\n listView.element.on(KEYDOWN + NS, \".k-edit-item\", that._keydown.bind(that));\n listView.element.on(KEYDOWN + NS, that._keydownAction.bind(that));\n\n listView.bind(\"edit\", function(ev) {\n var sender = ev.sender;\n var input = ev.item.find(\"input\");\n\n input.on(\"blur\", function() {\n var isDirty = sender._modelFromElement(sender.editable.element).dirty;\n sender._closeEditable();\n if (!isDirty) {\n that.trigger(\"cancel\");\n }\n });\n });\n\n listView.bind(\"cancel\", function() {\n that.trigger(\"cancel\");\n });\n\n Component.fn._bindEvents.call(this);\n },\n\n _select: function() {\n var that = this,\n dataItems = that.getSelected();\n\n that.trigger(SELECT, { entries: dataItems });\n },\n\n _keydown: function(ev) {\n var that = this;\n if (ev.keyCode === kendo.keys.ESC) {\n that.listView._closeEditable();\n that.trigger(\"cancel\");\n }\n },\n\n _keydownAction: function(ev) {\n var that = this,\n target = $(ev.target).find(\".k-focus\");\n\n if (target.length && !target.is(\".k-edit-item\")) {\n that.trigger(KEYDOWNACTION, { target: target, keyCode: ev.keyCode });\n }\n },\n\n _mousedown: function(ev) {\n var that = this,\n node = $(ev.target).closest(\".k-listview-item\");\n\n if (ev.which === 3 && !node.is(\".k-selected\")) {\n that.listView.selectable.clear();\n that.listView.select(node);\n }\n },\n\n _kendoKeydown: function(ev) {\n var that = this;\n\n if (ev.keyCode === keys.ENTER && !ev.preventKendoKeydown) {\n that._handleEnterKey(ev);\n }\n },\n\n _handleEnterKey: function(ev) {\n var that = this,\n target = $(ev.target),\n node = that.listView.current();\n\n if (that.widgetComponent.editable && target.is(\"input\")) {\n // Force blur to update item and close editable (cross browser)\n target.trigger(\"blur\");\n } else if (!that.widgetComponent.editable) {\n that._triggerOpen(node);\n }\n\n ev.preventKendoKeydown = true;\n },\n\n _dblClick: function(ev) {\n var that = this,\n node = $(ev.target).closest(\".k-listview-item\");\n\n that._triggerOpen(node);\n },\n\n _triggerOpen: function(node) {\n var that = this;\n\n if (node.is(\".k-edit-item\")) {\n return;\n }\n\n var item = that.listView.dataItem(node);\n\n if (item) {\n that.trigger(OPEN, { entry: item });\n }\n },\n\n addFolder: function() {\n this.listView.add();\n },\n\n edit: function(target) {\n var that = this,\n selected = that.listView.select();\n\n that.listView.edit(target || selected);\n },\n\n getSelected: function() {\n var that = this,\n items = that.listView.select(),\n dataItems = [];\n\n for (var i = 0; i < items.length; i++) {\n var item = that.listView.dataItem(items[i]);\n\n if (item) {\n dataItems.push(item);\n }\n }\n\n return dataItems;\n },\n\n destroy: function() {\n this.listView.element.off(NS);\n Component.fn.destroy.call(this);\n }\n });\n\n ui.filemanager.registerViewComponent(\"list\", ListView);\n\n var TreeView = Component.extend({\n init: function(element, options, explicitOptions) {\n var that = this,\n messages = explicitOptions.messages;\n\n options = extend({}, that.defaultOptions, options, {\n messages: messages\n });\n\n Component.fn.init.call(this, ui.TreeView, element, options);\n\n that.treeView = that.widgetComponent;\n that._bindEvents();\n\n if (explicitOptions.draggable !== false && !explicitOptions.isLocalBinding) {\n that._initDragAndDrop();\n }\n },\n\n defaultOptions: {\n dataTextField: \"name\",\n dropFilter: \".k-item\"\n },\n\n _refreshDataSource: function(ev) {\n var that = this,\n treeView = that.treeView,\n action = ev.action,\n node = ev.node,\n parentNode = null,\n treeEl = treeView.element,\n activeDescendant = treeEl.attr(\"aria-activedescendant\"),\n items = ev.items.filter(function(item) {\n return item.isDirectory;\n }).map(function(item) {\n return extend({}, item.toJSON(), {\n id: item.id || kendo.guid(),\n hasChildren: item.hasChildren,\n items: []\n });\n });\n\n if (node) {\n parentNode = treeView.findByUid(treeView.dataSource.get(node.id).uid);\n treeView._progress(parentNode, false);\n }\n\n if (!items.length) {\n return;\n }\n\n if (action == \"itemloaded\" || (parentNode && action === \"sync\")) {\n parentNode.find(\".k-item\").each(function(index, item) {\n treeView.remove(item);\n });\n treeView.append(items, parentNode);\n\n if (that._shouldFocus) {\n treeView.current(parentNode);\n treeView.focus();\n }\n } else if (action == \"remove\") {\n this._remove(items[0].id);\n } else if (action == \"itemchange\") {\n var existingItem = treeView.dataSource.get(items[0].id);\n\n if (existingItem) {\n existingItem.set(ev.field, items[0][ev.field]);\n } else {\n treeView.append(items[0], parentNode);\n }\n } else if (!treeView.dataSource.data().length) {\n treeView.append(items);\n } else if (action === \"sync\" || (action === undefined$1 && !parentNode)) {\n treeView.items().each(function(index, item) {\n treeView.remove(item);\n });\n treeView.append(items);\n\n if (that._shouldFocus) {\n treeView.current(treeView._nextVisible($()));\n treeView.focus();\n }\n }\n\n if (!!activeDescendant && treeEl.find(\"#\" + activeDescendant).length === 0) {\n treeEl.removeAttr(\"aria-activedescendant\");\n }\n },\n\n _remove: function(id) {\n var that = this,\n treeView = that.treeView,\n dataSource = treeView.dataSource,\n item = dataSource.get(id),\n node;\n\n if (item) {\n node = treeView.findByUid(item.uid);\n treeView.remove(node);\n }\n },\n\n _bindEvents: function() {\n var that = this;\n\n that.treeView.bind(SELECT, that._navigate.bind(that));\n that.treeView.bind(EXPAND, that._expand.bind(that));\n that.treeView.element.on(KEYDOWN, that._keydownAction.bind(that));\n },\n\n _keydownAction: function(ev) {\n var that = this,\n target = $(ev.target).find(\".k-focus\").closest(\".k-item\");\n\n that.trigger(KEYDOWNACTION, { target: target, keyCode: ev.keyCode });\n },\n\n _expand: function(ev) {\n var that = this,\n treeView = that.treeView,\n entry = treeView.dataItem(ev.node);\n\n ev.preventDefault();\n that.trigger(LOAD, { entryId: entry.id });\n },\n\n _navigate: function(ev) {\n var that = this,\n node = ev.node,\n entry = that.treeView.dataItem(node),\n path = entry.id;\n\n ev.preventDefault();\n\n that.trigger(NAVIGATE, { path: path, entry: entry.toJSON() });\n },\n\n _hold: $.noop,\n\n getSelected: function() {\n var that = this,\n selectedItem = that.treeView.element.find(\".k-selected\").closest(\".k-item\"),\n item = that.treeView.dataItem(selectedItem);\n\n return item;\n },\n\n refresh: function(id) {\n var that = this,\n treeView = that.treeView,\n entry = treeView.dataSource.get(id),\n node = entry && treeView.findByUid(entry.uid);\n\n if (entry && node) {\n treeView.element.find(\".k-selected\").removeClass(\"k-selected\");\n node.find(\"> div .k-treeview-leaf\").removeClass(\"k-hover\").addClass(\"k-selected\");\n }\n },\n\n reload: function() {\n this.treeView.dataSource.read();\n }\n });\n\n ui.filemanager.registerViewComponent(\"tree\", TreeView);\n\n if (kendo.ui.Grid) {\n var Grid = Component.extend({\n init: function(element, options, explicitOptions) {\n var that = this,\n dataSourceOptions = explicitOptions.dataSource,\n messages = explicitOptions.messages;\n\n options = extend({}, that.defaultOptions, options, {\n messages: messages\n });\n\n that._setDSOptions(options, dataSourceOptions);\n that._setupColumns(options, messages);\n options.kendoKeydown = options.kendoKeydown || that._kendoKeydown.bind(that);\n\n Component.fn.init.call(this, ui.Grid, element, options);\n\n that.grid = that.widgetComponent;\n that._bindEvents();\n\n if (explicitOptions.draggable !== false && !dataSourceOptions.isLocalBinding) {\n that._initDragAndDrop();\n }\n\n if (explicitOptions.ariaLabel) {\n that.element.find(\"[role=grid]\").attr(\"aria-label\", explicitOptions.ariaLabel);\n }\n },\n\n defaultOptions: {\n selectable: kendo.support.mobileOS ? \"row\" : \"multiple\",\n editable: {\n mode: \"inline\",\n confirmation: false\n },\n sortable: true,\n dropFilter: \"tr:not(.k-grid-edit-row)\",\n navigatable: true\n },\n\n _setupColumns: function(options, messages) {\n if (!options.columns) {\n options.columns = [\n { field: \"name\", title: messages.nameField || \"Name\", template: function(item) {\n var icon = !item.isDirectory ? kendo.getFileGroup(item.extension, true) : \"folder\";\n\n var template = \"
\" +\n kendo.ui.icon(icon) +\n \"
\" +\n \"
\" + kendo.htmlEncode(item.name + item.extension) + \"
\";\n\n return template;\n } },\n { field: \"created\", title: messages.dateCreatedField , format: \"{0:G}\" },\n { field: \"size\", title: messages.sizeField, template: function(item) {\n if (item.size > 0) {\n return kendo.getFileSizeMessage(item.size);\n } else {\n return \"\";\n }\n } }\n ];\n }\n },\n\n _bindEvents: function() {\n var that = this,\n grid = that.grid;\n\n grid.bind(CHANGE, that._select.bind(that));\n grid.table.on(\"dblclick\" + NS, that._dblClick.bind(that));\n grid.table.on(\"mousedown\" + NS, \"tr:not(.k-grid-edit-row)\", that._mousedown.bind(that));\n grid.table.on(KEYDOWN + NS, \".k-grid-edit-row\", that._keydown.bind(that));\n grid.table.on(KEYDOWN + NS, that._keydownAction.bind(that));\n\n grid.bind(\"edit\", function() {\n that._toggleFocusable(true);\n });\n\n grid.bind(\"cancel\", function() {\n that.trigger(\"cancel\");\n });\n\n grid.saveRow = $.noop;\n\n Component.fn._bindEvents.call(this);\n },\n\n _kendoKeydown: function(ev) {\n var that = this,\n current = that.grid.current(),\n node = current ? current.closest(\"tr[data-uid]\") : null;\n\n if (node && ev.keyCode === keys.ENTER && !ev.preventKendoKeydown) {\n that._triggerOpen(node);\n ev.preventKendoKeydown = true;\n }\n\n if (ev.keyCode === keys.F2) {\n ev.preventKendoKeydown = true;\n }\n },\n\n _keydownAction: function(ev) {\n var that = this,\n target = $(ev.target).find(\".k-focus\").closest(\"tr\");\n\n if (target.length && !target.is(\".k-grid-edit-row\")) {\n that.trigger(KEYDOWNACTION, { target: target, keyCode: ev.keyCode });\n }\n },\n\n _keydown: function(ev) {\n var that = this,\n grid = that.grid;\n\n if (!$(ev.target).closest(\".k-grid-edit-row\").length) {\n return;\n }\n\n if (ev.keyCode === kendo.keys.ENTER) {\n setTimeout(function() {\n var editorContainer = that.grid._editContainer || $();\n\n // force blur event for inputs\n editorContainer.find(\"input\").trigger(\"blur\");\n\n that._closeEditable();\n });\n\n that._tryCancel();\n }\n\n if (ev.keyCode === kendo.keys.ESC) {\n grid.cancelChanges();\n that.trigger(\"cancel\");\n }\n },\n\n _mousedown: function(ev) {\n var that = this,\n node = $(ev.target).closest(\"tr[data-uid]\");\n\n if (ev.which === 1 && that.grid.editable) {\n setTimeout(function() {\n that._closeEditable();\n });\n\n that._tryCancel();\n }\n\n if (ev.which === 3 && !node.is(\".k-selected\")) {\n that.grid.selectable.clear();\n that.grid.select(node);\n }\n },\n\n _tryCancel: function() {\n var that = this,\n grid = that.grid,\n container;\n\n if (grid.editable) {\n container = grid._editContainer;\n if (!container.find(\"input\").val()) {\n grid.cancelChanges();\n }\n }\n\n setTimeout(function() {\n that._toggleFocusable(false);\n });\n\n },\n\n _toggleFocusable: function(state) {\n var that = this,\n grid = that.grid;\n\n grid.table.find(\"tr,td\").children().addBack().toggleClass(\"k-focusable\", state);\n },\n\n _closeEditable: function() {\n var that = this,\n container;\n\n if (that.grid.editable && !that.grid.editable.options.model.dirty) {\n container = that.grid._editContainer;\n that.grid._destroyEditable();\n that.grid._displayRow(container);\n that.trigger(\"cancel\");\n }\n },\n\n _select: function() {\n var that = this,\n dataItems = that.getSelected();\n\n that.trigger(SELECT, { entries: dataItems });\n },\n\n _dblClick: function(ev) {\n var that = this,\n node = $(ev.target).closest(\"tr[data-uid]\");\n\n that._triggerOpen(node);\n },\n\n _triggerOpen: function(node) {\n var that = this;\n\n if (node.is(\".k-grid-edit-row\")) {\n return;\n }\n\n var item = that.grid.dataItem(node);\n\n if (item) {\n that.trigger(OPEN, { entry: item });\n }\n },\n\n getSelected: function() {\n var that = this,\n items = that.grid.select(),\n dataItems = [];\n\n for (var i = 0; i < items.length; i++) {\n dataItems.push(that.grid.dataItem(items[i]));\n }\n\n return dataItems;\n },\n\n addFolder: function() {\n this.grid.addRow();\n },\n\n edit: function(target) {\n var that = this,\n selected = that.grid.select();\n\n that.grid.editRow(target || selected);\n },\n\n destroy: function() {\n this.grid.table.off(NS);\n this.grid.element.off(NS);\n Component.fn.destroy.call(this);\n }\n });\n\n ui.filemanager.registerViewComponent(\"grid\", Grid);\n }\n\n })(window.kendo.jQuery);\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n extend = $.extend,\n data = kendo.data,\n Node = data.Node,\n HierarchicalDataSource = data.HierarchicalDataSource,\n DataSource = data.DataSource;\n\n extend(true, kendo.data, {\n schemas: {\n \"filemanager\": {\n data: function(data) {\n return data.items || data || [];\n },\n model: {\n id: \"path\",\n hasChildren: \"hasDirectories\",\n fields: {\n name: { editable: true, type: \"string\", defaultValue: \"New Folder\" },\n size: { editable: false, type: \"number\" },\n path: { editable: false, type: \"string\" },\n extension: { editable: false, type: \"string\" },\n isDirectory: { editable: false, defaultValue: true, type: \"boolean\" },\n hasDirectories: { editable: false, defaultValue: false, type: \"boolean\" },\n created: { type: \"date\", editable: false },\n createdUtc: { type: \"date\", editable: false },\n modified: { type: \"date\", editable: false },\n modifiedUtc: { type: \"date\", editable: false }\n }\n }\n }\n }\n });\n\n var FileEntry = Node.define({\n init: function(value) {\n var that = this,\n isDirectory = this.isDirectory;\n\n Node.fn.init.call(this, value);\n\n if (typeof isDirectory === \"string\") {\n isDirectory = kendo.getter(isDirectory);\n }\n\n if (kendo.isFunction(isDirectory)) {\n var isDirectoryObject = isDirectory.call(that, that);\n\n if (isDirectoryObject && isDirectoryObject.length === 0) {\n that.isDirectory = false;\n } else {\n that.isDirectory = !!isDirectoryObject;\n }\n }\n\n if (that.isDirectory) {\n that._initChildren();\n }\n },\n _initChildren: function() {\n var that = this;\n var children, transport, parameterMap;\n\n if (!(that.children instanceof kendo.data.FileManagerDataSource)) {\n children = that.children = new kendo.data.FileManagerDataSource(that._childrenOptions);\n\n transport = children.transport;\n parameterMap = transport.parameterMap;\n\n transport.parameterMap = function(data, type) {\n if (type === \"read\" || type === \"create\") {\n data.target = that.id;\n }\n\n if (parameterMap) {\n data = parameterMap.call(that, data, type);\n }\n\n return data;\n };\n\n children.parent = function() {\n return that;\n };\n\n children.bind(\"change\", function(e) {\n e.node = e.node || that;\n that.trigger(\"change\", e);\n });\n\n children.bind(\"error\", function(e) {\n var collection = that.parent();\n\n if (collection) {\n e.node = e.node || that;\n collection.trigger(\"error\", e);\n }\n });\n\n that._updateChildrenField();\n }\n },\n isNew: function() {\n if (this.fileManagerNewItem) {\n delete this.fileManagerNewItem;\n return true;\n }\n\n return this.id === this._defaultId;\n }\n });\n\n\n var FileManagerDataSource = HierarchicalDataSource.extend({\n init: function(options) {\n var fileEntry = FileEntry.define({\n children: options\n });\n\n if (options.filter && !options.serverFiltering) {\n this._hierarchicalFilter = options.filter;\n options.filter = null;\n }\n\n DataSource.fn.init.call(this, $.extend(true, {}, { schema: { modelBase: fileEntry, model: fileEntry } }, options));\n\n this.isLocalBinding = this.transport instanceof kendo.data.LocalTransport;\n\n this._attachBubbleHandlers();\n },\n insert: function(index, model) {\n var parentNode = this.parent();\n\n if (parentNode && parentNode._initChildren) {\n if (model && model.isDirectory) {\n parentNode.hasDirectories = true;\n }\n parentNode.hasChildren = true;\n parentNode._initChildren();\n }\n\n return DataSource.fn.insert.call(this, index, model);\n },\n remove: function(node) {\n var that = this,\n parentNode = node.parentNode(),\n dataSource = that,\n result;\n\n if (parentNode && parentNode._initChildren) {\n dataSource = parentNode.children;\n }\n\n that._cleanDestroyed(node);\n\n result = DataSource.fn.remove.call(dataSource, node);\n\n if (parentNode && (dataSource.data() && !dataSource.data().length)) {\n parentNode.hasChildren = false;\n } else if (parentNode && !this._hasDirectories(parentNode)) {\n parentNode.hasDirectories = false;\n }\n\n return result;\n },\n _cleanDestroyed: function(node) {\n var that = this,\n dataSource = that;\n\n if (node.parentNode && node.parentNode()) {\n node = node.parentNode();\n dataSource = node.children;\n dataSource._destroyed = [];\n that._cleanDestroyed(node);\n } else {\n dataSource._destroyed = [];\n }\n },\n _hasDirectories: function(node) {\n var result;\n\n if (!node.children.data()) {\n return false;\n }\n\n result = node.children.data().filter(function(item) {\n return item.isDirectory;\n });\n\n return !!result.length;\n }\n });\n\n FileManagerDataSource.create = function(options) {\n options = options && options.push ? { data: options } : options;\n\n var dataSource = options || {},\n data = dataSource.data;\n\n if (data && data._dataSource) {\n return data._dataSource;\n }\n\n dataSource.data = data;\n\n return dataSource instanceof FileManagerDataSource ? dataSource : new FileManagerDataSource(dataSource);\n };\n\n kendo.observableFileManagerData = function(array) {\n var dataSource = FileManagerDataSource.create({\n data: array,\n schema: kendo.data.schemas.filemanager\n });\n\n dataSource.fetch();\n\n dataSource._data._dataSource = dataSource;\n\n return dataSource._data;\n };\n\n extend(kendo.data, {\n FileManagerDataSource: FileManagerDataSource,\n FileEntry: FileEntry\n });\n\n })(window.kendo.jQuery);\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n extend = $.extend,\n template = kendo.template,\n ContextMenu = kendo.ui.ContextMenu,\n\n ACTION = \"action\";\n\n var FileManagerContextMenu = ContextMenu.extend({\n init: function(element, options) {\n var that = this;\n\n ContextMenu.fn.init.call(that, element, options);\n\n that._overrideTemplates();\n that._initDefaultItems();\n that._extendItems();\n\n that.bind(\"select\", that._onSelect.bind(that));\n that.bind(\"open\", that._onOpen.bind(that));\n },\n\n _overrideTemplates: function() {\n this.templates.sprite = template(({ spriteCssClass, icon }) => {\n // Needed for backwards compatibility in order to not introduce a breaking change.\n if (spriteCssClass) {\n return ``;\n }\n\n if (icon) {\n return kendo.ui.icon(icon);\n }\n\n return \"\";\n });\n },\n\n _initDefaultItems: function() {\n var that = this,\n messages = that.options.messages;\n\n if (that.options.isLocalBinding) {\n that.defaultItems = {};\n } else {\n that.defaultItems = {\n \"rename\": { text: messages.rename, icon: \"pencil\", command: \"RenameCommand\" },\n \"delete\": { text: messages.delete, icon: \"trash\", command: \"DeleteCommand\" }\n };\n }\n },\n\n events: ContextMenu.fn.events.concat([\n ACTION\n ]),\n\n _extendItems: function() {\n var that = this,\n items = that.options.items,\n item, isBuiltInTool;\n\n if (items && items.length) {\n for (var i = 0; i < items.length; i++) {\n item = items[i];\n isBuiltInTool = $.isPlainObject(item) && Object.keys(item).length === 1 && item.name;\n\n if (isBuiltInTool) {\n item = item.name;\n }\n\n if ($.isPlainObject(item) ) {\n that._extendItem(item);\n that.append(item);\n } else if (that.defaultItems[item]) {\n item = that.defaultItems[item];\n that._extendItem(item);\n that.append(item);\n }\n }\n } else {\n for (var key in that.defaultItems) {\n item = that.defaultItems[key];\n that._extendItem(item);\n that.append(item);\n }\n }\n },\n\n _extendItem: function(item) {\n var that = this,\n messages = that.options.messages;\n\n extend(item, {\n text: messages[item.text],\n spriteCssClass: item.spriteCssClass || \"\",\n attr: {\n \"data-command\": item.command\n }\n });\n },\n\n _onSelect: function(ev) {\n var command = $(ev.item).data(\"command\");\n var target = $(ev.target);\n\n if (!command) {\n return;\n }\n\n this.action({\n command: command,\n options: { target: target }\n });\n },\n\n _onOpen: function(ev) {\n var menu = ev.sender,\n items = menu.options.items;\n\n if (!items && $.isEmptyObject(this.defaultItems)) {\n ev.preventDefault();\n }\n },\n\n action: function(args) {\n this.trigger(ACTION, args);\n }\n });\n\n extend(kendo.ui.filemanager, {\n ContextMenu: FileManagerContextMenu\n });\n\n })(window.kendo.jQuery);\n\n var __meta__ = {\n id: \"filemanager\",\n name: \"FileManager\",\n category: \"web\",\n description: \"The FileManager widget displays offers file management functionality.\",\n depends: [ \"core\", \"data\", \"listview\", \"toolbar\", \"breadcrumb\", \"menu\", \"treeview\", \"upload\", \"dialog\", \"switch\", \"resizable\", \"selectable\", \"editable\", \"textbox\", \"icons\" ],\n features: [{\n id: \"filemanager-grid-view\",\n name: \"GridView\",\n description: \"Support for GridView\",\n depends: [ \"grid\" ]\n }]\n };\n\n (function($, undefined$1) {\n var ui = kendo.ui,\n extend = $.extend,\n encode = kendo.htmlEncode,\n isPlainObject = $.isPlainObject,\n isArray = Array.isArray,\n DataBoundWidget = ui.DataBoundWidget,\n template = kendo.template,\n outerHeight = kendo._outerHeight,\n ns = \".kendoFileManager\",\n\n NAVIGATE = \"navigate\",\n SELECT = \"select\",\n OPEN = \"open\",\n ERROR = \"error\",\n CHANGE = \"change\",\n UPLOAD = \"upload\",\n SUCCESS = \"success\",\n CLICK = \"click\",\n TOGGLE = \"toggle\",\n CLOSE = \"close\",\n HIDE = \"hide\",\n LOAD = \"load\",\n DATABINDING = \"dataBinding\",\n DATABOUND = \"dataBound\",\n DROP = \"drop\",\n EXECUTE = \"execute\",\n COMMAND = \"command\",\n KEYDOWNACTION = \"keydownAction\",\n CANCEL = \"cancel\",\n\n TREE_TYPE = \"tree\",\n DOT = \".\";\n\n var fileManagerStyles = {\n wrapper: \"k-widget k-filemanager\",\n header: \"k-filemanager-header\",\n navigation: \"k-filemanager-navigation\",\n contentContainer: \"k-filemanager-content-container\",\n content: \"k-filemanager-content\",\n preview: \"k-filemanager-preview\",\n toolbar: \"k-filemanager-toolbar\",\n treeview: \"k-filemanager-treeview\",\n breadcrumb: \"k-filemanager-breadcrumb\",\n view: \"k-filemanager-view\",\n grid: \"k-filemanager-grid\",\n list: \"k-filemanager-listview\",\n upload: \"k-filemanager-upload\",\n uploadDialog: \"k-filemanager-upload-dialog\",\n splitBar: \"k-splitbar\",\n splitBarHorizontal: \"k-splitbar-horizontal k-splitbar-draggable-horizontal\",\n splitBarHover: \"k-splitbar-horizontal-hover\",\n splitBarIcon: \"k-icon k-resize-handle\",\n splitBarNavigation: \"k-filemanager-splitbar-navigation\",\n splitBarPreview: \"k-filemanager-splitbar-preview\",\n resizable: \"k-filemanager-resizable\"\n };\n\n var fileManagerTemplateStyles = {\n filePreview: \"k-file-preview\",\n fileInfo: \"k-file-info\",\n fileName: \"k-file-name\",\n fileMeta: \"k-file-meta\",\n metaLabel: \"k-file-meta-label\",\n metaValue: \"k-file-meta-value\",\n extension: \"k-file-type\",\n size: \"k-file-size\",\n created: \"k-file-created\",\n modified: \"k-file-modified\"\n };\n\n var viewTypes = {\n grid: \"grid\",\n list: \"list\"\n };\n\n var NO_FILE_PREVIEW_TEMPLATE = ({ styles, messages }) =>\n `
` +\n `
` +\n '' +\n '
' +\n `${encode(messages.noFileSelected)}` +\n '
';\n\n var SINGLE_FILES_PREVIEW_TEMPLATE = ({ styles, selection, metaFields, messages }) => {\n let result = '';\n result +=\n `
` +\n `
` +\n kendo.ui.icon({ icon: (!selection[0].isDirectory ? encode(kendo.getFileGroup(selection[0].extension, true)) : \"folder\"), iconClass: \"k-file-icon\", size: \"xxxlarge\" }) +\n '
' +\n `${encode(selection[0].name)}`;\n if (metaFields) {\n result += `
`;\n for (var i = 0; i < metaFields.length; i += 1) {\n var field = metaFields[i];\n result +=\n `
${encode(messages[field])}:
` +\n `
`;\n if (field == \"size\") {\n result += ` ${encode(kendo.getFileSizeMessage(selection[0][field]))}`;\n } else if (selection[0][field] instanceof Date) {\n result += ` ${encode(kendo.toString(selection[0][field], \"G\"))}`;\n } else if (field == \"extension\") {\n result += ` ${encode( !selection[0].isDirectory ? kendo.getFileGroup(selection[0].extension) : \"folder\")}`;\n } else {\n result += ` ${encode(selection[0][field])}`;\n }\n\n result += '
' +\n '
';\n }\n\n result += '
';\n }\n\n result += '
';\n return result;\n };\n\n var MULTIPLE_FILES_PREVIEW_TEMPLATE = ({ styles, selection, messages }) =>\n `
` +\n `
` +\n kendo.ui.icon({ icon: \"file\", iconClass: \"k-file-icon\", size: \"xxxlarge\" }) +\n '
' +\n `` +\n `${encode(selection.length)} ` +\n `${encode(messages.items)}` +\n '' +\n '
';\n\n var FileManager = DataBoundWidget.extend({\n init: function(element, options) {\n var that = this;\n\n DataBoundWidget.fn.init.call(that, element, options);\n\n that.options = kendo.deepExtend({}, that.options, options);\n\n that.defaultSortOption = { field: \"name\", dir: \"asc\" };\n that.folderSortOption = { field: \"isDirectory\", dir: \"desc\" };\n\n that._commandStack = new ui.filemanager.CommandStack();\n\n that._dataSource();\n\n that._wrapper();\n\n that._renderHeader();\n\n that._renderContentContainer();\n\n that._initContextMenu();\n\n that._renderNavigation();\n\n that._renderContent();\n\n that._renderPreview();\n\n that._initUploadDialog();\n\n that._resizable();\n\n that._attachKeyDown();\n\n that.resize();\n\n kendo.notify(that, kendo.ui);\n },\n\n options: {\n name: \"FileManager\",\n height: 500,\n resizable: true,\n initialView: viewTypes.list,\n toolbar: {\n resizable: true\n },\n contextMenu: {},\n upload: {},\n uploadUrl: \"\",\n views: {},\n breadcrumb: {},\n draggable: true,\n dialogs: {\n upload: {\n width: 530\n },\n moveConfirm: {\n width: 350,\n closable: true\n },\n deleteConfirm: {\n width: 360,\n closable: true\n },\n renamePrompt: {\n width: 350,\n closable: true\n }\n },\n previewPane: {\n metaFields: [\"extension\", \"size\", \"created\", \"modified\"],\n noFileTemplate: NO_FILE_PREVIEW_TEMPLATE,\n singleFileTemplate: SINGLE_FILES_PREVIEW_TEMPLATE,\n multipleFilesTemplate: MULTIPLE_FILES_PREVIEW_TEMPLATE\n },\n messages: {\n toolbar: {\n createFolder: \"New Folder\",\n upload: \"Upload\",\n sortDirection: \"Sort Direction\",\n sortDirectionAsc: \"Sort Direction Ascending\",\n sortDirectionDesc: \"Sort Direction Descending\",\n sortField: \"Sort By\",\n nameField: \"Name\",\n sizeField: \"File Size\",\n typeField: \"Type\",\n dateModifiedField: \"Date Modified\",\n dateCreatedField: \"Date Created\",\n listView: \"List View\",\n gridView: \"Grid View\",\n search: \"Search\",\n details: \"View Details\",\n detailsChecked: \"On\",\n detailsUnchecked: \"Off\",\n \"delete\": \"Delete\",\n rename: \"Rename\"\n },\n views: {\n nameField: \"Name\",\n sizeField: \"File Size\",\n typeField: \"Type\",\n dateModifiedField: \"Date Modified\",\n dateCreatedField: \"Date Created\",\n items: \"items\",\n listLabel: \"FileManager ListView\",\n gridLabel: \"FileManager Grid\",\n treeLabel: \"FileManager TreeView\"\n },\n dialogs: {\n upload: {\n title: \"Upload Files\",\n clear: \"Clear List\",\n done: \"Done\"\n },\n moveConfirm: {\n title: \"Confirm\",\n content: \"

Do you want to move or copy?

\",\n okText: \"Copy\",\n cancel: \"Move\",\n close: \"close\"\n },\n deleteConfirm: {\n title: \"Confirm\",\n content: \"

Are you sure you want to delete the selected file(s)?
You cannot undo this action.

\",\n okText: \"Delete\",\n cancel: \"Cancel\",\n close: \"close\"\n },\n renamePrompt: {\n title: \"Prompt\",\n content: \"

Enter new name for the file.

\",\n okText: \"Rename\",\n cancel: \"Cancel\",\n close: \"close\"\n }\n },\n previewPane: {\n noFileSelected: \"No File Selected\",\n extension: \"Type\",\n size: \"Size\",\n created: \"Date Created\",\n createdUtc: \"Date Created UTC\",\n modified: \"Date Modified\",\n modifiedUtc: \"Date Modified UTC\",\n items: \"items\"\n }\n }\n },\n\n events: [\n NAVIGATE,\n SELECT,\n OPEN,\n DATABINDING,\n DATABOUND,\n ERROR,\n DROP,\n EXECUTE,\n COMMAND\n ],\n\n defaultTools: {\n createFolder: { type: \"button\", name: \"createFolder\", command: \"CreateFolderCommand\", rules: { remote: true } },\n upload: { type: \"button\", name: \"upload\", command: \"OpenDialogCommand\", options: \"{ \\\"type\\\": \\\"uploadDialog\\\" }\", rules: { remote: true } },\n sortDirection: {\n type: \"buttonGroup\",\n buttons: [\n { name: \"sortDirectionAsc\", showText: \"overflow\", icon: \"sort-asc-small\", togglable: true, group: \"sortDirection\", command: \"SortCommand\", options: \"{ \\\"dir\\\": \\\"asc\\\" }\", selected: true },\n { name: \"sortDirectionDesc\", showText: \"overflow\", icon: \"sort-desc-small\", togglable: true, group: \"sortDirection\", command: \"SortCommand\", options: \"{ \\\"dir\\\": \\\"desc\\\" }\" }\n ]\n },\n sortField: {\n type: \"splitButton\",\n name: \"sortField\",\n command: \"SortCommand\",\n menuButtons: [\n { name: \"nameField\", options: \"{\\\"field\\\": \\\"name\\\"}\", command: \"SortCommand\" },\n { name: \"typeField\", options: \"{\\\"field\\\": \\\"extension\\\"}\", command: \"SortCommand\" },\n { name: \"sizeField\", options: \"{\\\"field\\\": \\\"size\\\"}\", command: \"SortCommand\" },\n { name: \"dateCreatedField\", options: \"{\\\"field\\\": \\\"createdUtc\\\"}\", command: \"SortCommand\" },\n { name: \"dateModifiedField\", options: \"{\\\"field\\\": \\\"modifiedUtc\\\"}\", command: \"SortCommand\" }\n ]\n },\n changeView: {\n type: \"buttonGroup\",\n buttons: [\n { name: \"gridView\", showText: \"overflow\", icon: \"grid-layout\", togglable: true, group: \"changeView\", command: \"ChangeViewCommand\", options: \"grid\" },\n { name: \"listView\", showText: \"overflow\", icon: \"grid\", togglable: true, group: \"changeView\", command: \"ChangeViewCommand\", options: \"list\" }\n ]\n },\n spacer: { type: \"spacer\" },\n details: {\n type: \"component\",\n name: \"details\",\n items: [{\n template: function(data) {\n return \"\";\n },\n overflow: \"never\",\n componentOptions: {\n messages: {\n text: \"details\"\n }\n }\n },\n {\n name: \"details\",\n command: \"TogglePaneCommand\",\n options: \"{ \\\"type\\\": \\\"preview\\\" }\",\n overflow: \"never\",\n element: \"\",\n component: \"Switch\",\n componentOptions: {\n messages: {\n checked: \"detailsChecked\",\n unchecked: \"detailsUnchecked\"\n },\n commandOn: \"change\"\n }\n }]\n },\n search: {\n type: \"component\",\n name: \"search\",\n command: \"SearchCommand\",\n options: \"{ \\\"field\\\": \\\"name\\\", \\\"operator\\\": \\\"startswith\\\" }\",\n overflow: \"never\",\n component: \"TextBox\",\n componentOptions: {\n placeholder: \"search\",\n icon: \"search\",\n commandOn: \"input\"\n }\n }\n },\n\n _attachKeyDown: function() {\n var that = this;\n\n that.wrapper.on(\"keydown\" + ns, (e) => {\n if (e.keyCode === kendo.keys.F10) {\n e.preventDefault();\n that.toolbar.element.find(\"[tabindex=0]\").first().trigger(\"focus\");\n }\n });\n },\n\n _dataSource: function() {\n var that = this,\n options = that.options,\n dataSourceOptions = options.dataSource || {},\n typeSortOrder = that.folderSortOption,\n nameSortOrder = that.defaultSortOption,\n dataSource;\n\n if (!(dataSourceOptions instanceof kendo.data.FileManagerDataSource)) {\n if (isArray(dataSourceOptions)) {\n dataSource = {\n data: dataSourceOptions,\n autoSync: false,\n sort: [typeSortOrder, nameSortOrder]\n };\n } else {\n dataSource = extend(true, dataSourceOptions, {\n autoSync: false,\n sort: [typeSortOrder, nameSortOrder]\n });\n }\n\n if (dataSourceOptions && isPlainObject(dataSourceOptions.schema)) {\n dataSource.schema = dataSourceOptions.schema;\n } else if (isPlainObject(kendo.data.schemas.filemanager)) {\n dataSource.schema = kendo.data.schemas.filemanager;\n }\n } else {\n dataSource = dataSourceOptions;\n }\n\n if (that.dataSource && that._errorHandler) {\n that.dataSource.unbind(ERROR, that._errorHandler);\n that.dataSource.unbind(CHANGE, that._changeHandler);\n } else {\n that._errorHandler = that._error.bind(that);\n that._changeHandler = that._change.bind(that);\n }\n\n that.dataSource = kendo.data.FileManagerDataSource.create(dataSource)\n .bind(ERROR, that._errorHandler)\n .bind(CHANGE, that._changeHandler);\n },\n\n _error: function(ev) {\n if (!this.trigger(ERROR, ev)) {\n window.console.warn('Error! The requested URL returned ' + ev.xhr.status + ' - ' + ev.xhr.statusText);\n }\n },\n\n _wrapper: function() {\n var that = this,\n options = that.options,\n width = options.width,\n height = options.height;\n\n that.wrapper = that.element\n .addClass(fileManagerStyles.wrapper);\n\n if (width) {\n that.wrapper.width(width);\n }\n\n if (height) {\n that.wrapper.height(height);\n }\n\n that._resizeHandler = kendo.onResize(function() {\n that.resize(true);\n });\n },\n\n _renderHeader: function() {\n var that = this,\n options = that.options;\n\n if (options.toolbar) {\n that.header = $(\"
\").addClass(fileManagerStyles.header);\n }\n\n that.wrapper.append(that.header);\n\n if (options.toolbar) {\n that._initToolbar();\n that.toolbar._tabIndex();\n }\n },\n\n _renderContentContainer: function() {\n var that = this,\n container = $(\"
\").addClass(fileManagerStyles.contentContainer);\n\n that.contentContainer = container;\n\n that.wrapper.append(that.contentContainer);\n },\n\n _initContextMenu: function() {\n var that = this,\n options = that.options,\n menuOptions = extend({}, options.contextMenu, {\n filemanager: that,\n messages: options.messages.toolbar,\n target: that.contentContainer,\n filter: \"[data-uid]\",\n action: that.executeCommand.bind(that),\n isLocalBinding: that.dataSource.isLocalBinding\n });\n\n if (options.contextMenu === false) {\n return;\n }\n\n that.contextMenu = new ui.filemanager.ContextMenu(\"
    \", menuOptions);\n\n that.contextMenu.bind(OPEN, that._cacheFocus.bind(that));\n },\n\n _renderNavigation: function() {\n var that = this;\n\n that.navigation = $(\"
    \").addClass(fileManagerStyles.navigation);\n that.navigation.append(that._initTreeView().element);\n\n that.contentContainer.append(that.navigation);\n },\n\n _renderContent: function() {\n var that = this,\n options = that.options,\n toolbar = that.toolbar;\n\n that.content = $(\"
    \").addClass(fileManagerStyles.content);\n\n if (options.breadcrumb) {\n that.content.append(that._initBreadcrumb().element);\n }\n\n that.content.append(that._initView());\n\n if (!toolbar || !that._isToolEnabled(that.defaultTools.upload.name)) {\n that.content.append(that._initUpload().wrapper.hide());\n }\n\n that.contentContainer.append(that.content);\n },\n\n _renderPreview: function() {\n var that = this,\n enablePreview = that.options.previewPane;\n\n if (!enablePreview) {\n return;\n }\n\n that.preview = $(\"
    \").addClass(fileManagerStyles.preview);\n that.previewContainer = $(\"
    \").addClass(fileManagerStyles.previewContainer);\n that.preview.append(that.previewContainer);\n\n that._setPreviewPaneContent();\n\n that.contentContainer.append(that.preview.hide());\n },\n\n _setPreviewPaneContent: function() {\n var that = this,\n options = that.options,\n previewPaneMessages = options.messages.previewPane,\n previewPaneOptions = options.previewPane,\n selection = that.getSelected(),\n previewTemplate;\n\n if (!selection) {\n previewTemplate = template(previewPaneOptions.noFileTemplate)({\n styles: fileManagerTemplateStyles,\n messages: previewPaneMessages\n });\n\n that.previewContainer.html(previewTemplate);\n return;\n }\n\n previewTemplate = selection.length === 1 ?\n previewPaneOptions.singleFileTemplate :\n previewPaneOptions.multipleFilesTemplate;\n\n previewTemplate = template(previewTemplate)({\n styles: fileManagerTemplateStyles,\n messages: previewPaneMessages,\n selection: selection,\n metaFields: previewPaneOptions.metaFields\n });\n\n that.previewContainer.html(previewTemplate);\n },\n\n _initToolbar: function() {\n var that = this,\n options = that.options,\n toolbarElement = $(\"
    \").addClass(fileManagerStyles.toolbar),\n toolbarOptions = extend({}, options.toolbar),\n tools = toolbarOptions.items ? toolbarOptions.items : Object.keys(that.defaultTools);\n\n tools = that._processTools(tools);\n toolbarOptions.tools = tools;\n toolbarOptions.defaultTools = that.defaultTools;\n toolbarOptions.parentMessages = that.options.messages.toolbar;\n\n that.header.append(toolbarElement);\n that.toolbar = new kendo.ui.ToolBar(toolbarElement, toolbarOptions);\n that.options.toolbar = that.toolbar.options;\n\n that.toolbar.bind(TOGGLE, that._toolbarClick.bind(that));\n that.toolbar.bind(CLOSE, that._toolbarClick.bind(that));\n that.toolbar.bind(CLICK, that._toolbarClick.bind(that));\n that.toolbar.bind(CHANGE, that._toolbarClick.bind(that));\n\n return that.toolbar;\n },\n\n _processTools: function(tools) {\n var that = this;\n\n tools.forEach(t => {\n var rules = t.rules || (that.defaultTools[t] ? that.defaultTools[t].rules : null);\n\n if (rules && rules.remote && that.dataSource.isLocalBinding) {\n if (t.rules) {\n t.hidden = true;\n } else {\n that.defaultTools[t].hidden = true;\n }\n }\n\n if (t.name === \"changeView\") {\n that.defaultTools[t.name].buttons.forEach((b, i) => {\n if (b.options === that.options.initialView) {\n that.defaultTools[t.name].buttons[i].selected = true;\n }\n });\n } else if (t.buttons && t.buttons[0].group === \"changeView\") {\n t.buttons.forEach((b, i) => {\n if (b.options === that.options.initialView) {\n t.buttons[i].selected = true;\n }\n });\n }\n });\n\n return tools;\n },\n\n _toolbarClick: function(ev) {\n var command = $(ev.target).data(\"command\"),\n options = $(ev.target).data(\"options\");\n\n if (!!$(ev.target).val()) {\n options = extend({}, options, { value: $(ev.target).val() });\n }\n\n if (!command) {\n return;\n }\n\n this.executeCommand({\n command: command,\n options: options\n });\n },\n\n _isToolEnabled: function(toolName) {\n var that = this,\n options = that.options.toolbar,\n items = options.items || that.defaultTools,\n found = false;\n\n for (var i = 0; i < items.length; i++) {\n if (items[i].name == toolName) {\n found = true;\n break;\n }\n }\n\n return items[toolName] || found;\n },\n\n _initTreeView: function() {\n var that = this,\n treeViewElement = $(\"
    \").addClass(fileManagerStyles.treeview),\n options = that.options.views[TREE_TYPE],\n explicitOptions = extend(true, {}, {\n dataSource: that.options.dataSource,\n messages: that.options.messages.views,\n draggable: that.options.draggable,\n isLocalBinding: that.dataSource.isLocalBinding\n });\n\n that.treeView = new ui.filemanager.ViewComponents[TREE_TYPE](treeViewElement, options, explicitOptions);\n\n that.treeView.bind(NAVIGATE, that._navigate.bind(that))\n .bind(LOAD, that._load.bind(that))\n .bind(DROP, that._drop.bind(that))\n .bind(KEYDOWNACTION, that._keydownAction.bind(that));\n\n return that.treeView;\n },\n\n _drop: function(ev) {\n var that = this;\n\n if (!that.trigger(DROP, ev) && ev.items.indexOf(ev.target) < 0) {\n that._confirm({\n type: \"move\",\n target: ev.target\n }).done(function() {\n that.executeCommand({ command: \"CopyCommand\", options: ev });\n }).fail(function() {\n that.executeCommand({ command: \"MoveCommand\", options: ev });\n });\n }\n },\n\n _keydownAction: function(ev) {\n var that = this,\n keyCode = ev.keyCode,\n keys = kendo.keys;\n\n if (keyCode === keys.DELETE) {\n that.executeCommand({ command: \"DeleteCommand\", options: { target: ev.target } });\n }\n\n if (keyCode === keys.F2) {\n that.executeCommand({ command: \"RenameCommand\", options: { target: ev.target } });\n }\n },\n\n _confirm: function(options) {\n var that = this,\n messages = that.options.messages.dialogs[options.type + \"Confirm\"];\n\n var confirm = $(\"
    \").kendoConfirm(extend({}, {\n title: messages.title,\n content: messages.content,\n messages: messages\n }, that.options.dialogs[options.type + \"Confirm\"])).data(\"kendoConfirm\");\n\n confirm.bind(OPEN, that._cacheFocus.bind(that));\n confirm.bind(HIDE, that._restoreFocus.bind(that, options.target));\n\n confirm.open();\n\n confirm.wrapper.removeClass(\"k-confirm\");\n\n return confirm.result;\n },\n\n _prompt: function(options) {\n var that = this,\n messages = this.options.messages.dialogs[options.type + \"Prompt\"];\n\n var prompt = $(\"
    \").kendoPrompt(extend({}, {\n title: messages.title,\n content: messages.content,\n messages: messages,\n value: options.defaultInput\n },this.options.dialogs[options.type + \"Prompt\"])).data(\"kendoPrompt\");\n\n prompt.bind(OPEN, that._cacheFocus.bind(that));\n prompt.bind(CLOSE, that._restoreFocus.bind(that, options.target));\n\n prompt.open();\n\n prompt.wrapper.removeClass(\"k-prompt\");\n\n return prompt.result;\n },\n\n _cacheFocus: function() {\n var that = this,\n activeElement = $(document.activeElement),\n view = that.view(),\n treeView = that.treeView.widgetComponent;\n\n if (that.contextMenu && that.contextMenu.popup.visible()) {\n return;\n }\n\n that.treeView._shouldFocus = false;\n\n if ((treeView.current() && treeView.current().find(\".k-focus\").length) ||\n activeElement.hasClass(fileManagerStyles.treeview)) {\n that.treeView._shouldFocus = true;\n view._focusElement = activeElement;\n return;\n }\n\n view._focusElement = activeElement.hasClass(fileManagerStyles[that._viewType]) ?\n activeElement :\n null;\n },\n\n _restoreFocus: function(target) {\n var that = this,\n view = that.view();\n\n if (!target) {\n return;\n }\n\n if (view._focusElement) {\n view._focusElement.trigger(\"focus\");\n } else if (target.closest && target.closest(\":kendoFocusable\").length) {\n target.closest(\":kendoFocusable\").trigger(\"focus\");\n }\n },\n\n _initView: function() {\n var that = this,\n viewWrapper = $(\"
    \").addClass(fileManagerStyles.view),\n initialView = that.options.initialView;\n\n that.viewWrapper = viewWrapper;\n that.viewWrapper.append(that.view(initialView));\n\n return viewWrapper;\n },\n\n _initBreadcrumb: function() {\n var that = this,\n options = that.options,\n breadcrumbElement = $(\"