{"version":3,"file":"kendo.upload.min.js","names":["factory","define","amd","$","undefined$1","kendo","window","Widget","ui","antiForgeryTokens","logToConsole","rFileExtension","NS","SELECT","UPLOAD","SUCCESS","ERROR","COMPLETE","CANCEL","CLEAR","PAUSE","RESUME","PROGRESS","REMOVE","INVALIDMAXFILESIZE","INVALIDMINFILESIZE","INVALIDFILEEXTENSION","FOCUS_STATE","TABINDEX","headerStatusIcon","Upload","extend","init","element","options","that","this","fn","call","name","multiple","directory","localization","activeInput","wrapper","closest","length","_wrapInput","_activeInput","toggle","enabled","ns","_ns","guid","on","_onParentFormSubmit","bind","_onParentFormReset","_initUploadModule","_toggleDropZone","_onFileAction","_onClearSelected","_onUploadSelected","_onKeyDown","_focusout","val","_onInputChange","target","events","showFileList","template","files","async","autoRetryAfter","bufferChunkSize","maxAutoRetries","removeVerb","autoUpload","withCredentials","accept","useArrayBuffer","select","cancel","retry","remove","pause","resume","clearSelectedFiles","uploadSelectedFiles","dropFilesHere","invalidFiles","statusUploading","statusUploaded","statusWarning","statusFailed","headerStatusUploading","headerStatusPaused","headerStatusUploaded","uploadSuccess","uploadFail","invalidMaxFileSize","invalidMinFileSize","invalidFileExtension","validation","allowedExtensions","maxFileSize","minFileSize","dropZone","saveUrl","_module","_supportsFormData","formDataUploadModule","iframeUploadModule","_async","initialFiles","_renderInitialFiles","syncUploadModule","setOptions","off","attr","_supportsMultiple","enable","disable","toggleClass","prop","focus","trigger","destroy","customDropZone","document","add","fileEntry","onPause","pauseIcon","find","removeClass","addClass","parent","onResume","playIcon","upload","onSaveSelected","getFiles","filesData","allFiles","listItems","i","data","j","push","clearAllFiles","each","index","file","_removeFileByDomElement","removeAllFiles","removeFileByUid","uid","_removeFileByUid","clearFileByUid","shouldSendRemoveRequest","clearFile","callback","_removeFile","removeFile","fileData","hasClass","onCancel","onRemove","_hideHeaderUploadstatus","_updateHeaderUploadStatus","_addInput","sourceInput","nodeType","input","clone","insertAfter","prefix","hide","removeAttr","e","preventDefault","_adjustFocusState","focusedItem","toFocus","_arrowKeyNavigation","key","kendoKeys","keys","DOWN","stopPropagation","first","next","UP","prev","RIGHT","LEFT","_preventFocusRemove","_asyncCommandKeyNavigation","eventArgs","_retryClicked","ESC","_checkAllComplete","SPACEBAR","ENTER","is","chunkSize","concurrent","finish","show","metaData","prepareChunk","onRetry","_commandKeyNavigation","hasValidationErrors","_filesContainValidationErrors","headers","DELETE","TAB","commandKeys","keyCode","indexOf","assignGuidToFiles","_inputFiles","_isAsyncNonBatch","validateFiles","onSelect","_readDirectory","item","deferred","Deferred","dirReader","createReader","allFolderFiles","readEntries","entries","concat","resolve","reject","promise","_readFile","fullpath","fullPath","relativePath","slice","droppedFolderFiles","droppedFolderCounter","setTimeout","_proceedDroppedItems","_traverseFileTree","skipCounter","then","items","isFile","isDirectory","_onDrop","dt","originalEvent","dataTransfer","droppedFiles","stopEvent","directoryDrop","webkitGetAsEntry","entry","getAllFileInfo","splice","hasErrors","batch","idx","currentFile","_enqueueFile","fileNames","_supportsRemove","_fileAction","_prepareTemplateData","templateData","totalSize","size","_prepareDefaultSingleFileEntryTemplate","fileSize","getTotalFilesSizeMessage","fileGroup","getFileGroup","extension","errors","_prepareDefaultMultipleFileEntriesTemplate","filesHaveValidationErrors","totalFileSize","sort","a","b","existingFileEntries","removeEventArgs","fileUid","fileList","appendTo","angular","elements","width","_removeFileEntry","allCompletedFiles","allInvalidFiles","_hideActionButtons","fileElement","actionKey","skipClear","firstActionButton","classDictionary","iconsClassDictionary","hasOwnProperty","_clearFileAction","append","_renderAction","_fileState","stateKey","currentState","uploading","text","uploaded","failed","actionClass","actionText","iconClass","empty","button","icon","_onFileProgress","percentComplete","prepend","getFileEntry","_onUploadSuccess","response","xhr","fileInfo","operation","XMLHttpRequest","_setUploadErrorState","after","_hideUploadProgress","_onUploadError","module","responseText","_decreasePosition","_autoRetryAfter","retries","performUpload","uploadPercentage","_updateUploadProgress","fileMetaData","totalChunks","Math","round","delay","fadeOut","css","_showActionButtons","actionsWrapper","uploadButton","clearButton","_showHeaderUploadStatus","isUploading","headerUploadStatus","failedUploads","headerUploadStatusIcon","currentlyUploading","not","currentlyInvalid","currentlyFailed","currentlyPaused","html","onAbort","value","windows","_userAgent","support","browser","opera","safari","_supportsDrop","userAgent","toLowerCase","test","navigator","_setupDropZone","dropEffect","bindDragEventWrappers","_bindDocumentDragEventWrappers","_setupCustomDropZone","removeUrl","_submitRemove","onSuccess","onError","removeField","params","jQuery","ajax","type","dataType","dataFilter","normalizeJSON","url","traditional","success","error","xhrFields","hasLabel","wrap","inputFiles","prototype","filesContainErrors","relatedInput","getFileName","iframes","_frameId","prepareUpload","iframe","form","saveField","createFrame","registerFrame","createForm","frame","fileValidation","cleanupFrame","unregisterFrame","body","dataInput","prependTo","one","onIframeLoad","submit","started","isFileUploadStarted","contents","ex","processResponse","fakeXHR","tryParseJSON","jsonResult","statusText","status","stopFrameSubmit","removeUploadedFile","id","action","stop","execCommand","grep","position","cancelled","paused","map","join","$input","slashIndex","lastIndexOf","substr","getFileExtension","rawFiles","fileName","rawFile","htmlEncode","matches","match","unique","validationInfo","extensions","ext","substring","validateFileExtension","validateFileSize","validationErrors","inArray","toFixed","shouldRemoveFileEntry","textStatus","json","JSON","parse","namespace","onDragEnter","onDragLeave","hideInterval","lastDrag","Date","setInterval","clearInterval","sourceElement","fileEntries","enqueueFiles","filesLength","webkitRelativePath","formData","createFormData","createXHR","removeFileEntry","populateFormData","FileReader","postFormData","reader","onload","fileArrayBuffer","_appendBuffer","result","err","onerror","readAsArrayBuffer","_getCurrentChunk","buffer1","buffer2","tmp","Uint8Array","byteLength","set","buffer","filter","prevEntry","stopUploadRequest","_increaseChunkIndex","addEventListener","onRequestSuccess","onRequestError","onRequestProgress","open","setRequestHeader","send","FormData","chunk","serializedMetaData","stringify","raiseError","cleanupFileEntry","_resetChunkIndex","uploadComplete","isUploadButtonVisible","loaded","total","abort","chunkIndex","contentType","ceil","uploadUid","_decreaseChunkIndex","methodToInvoke","oldPosition","_getChunker","mozSlice","webkitSlice","plugin"],"sources":["kendo.upload.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.core'], factory) :\n factory();\n})((function () {\n var __meta__ = {\n id: \"upload\",\n name: \"Upload\",\n category: \"web\",\n description: \"The Upload widget uses progressive enhancement to deliver the best possible uploading experience to users.\",\n depends: [ \"core\" ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n Widget = kendo.ui.Widget,\n antiForgeryTokens = kendo.antiForgeryTokens,\n logToConsole = kendo.logToConsole,\n rFileExtension = /\\.([^\\.]+)$/,\n NS = \".kendoUpload\",\n SELECT = \"select\",\n UPLOAD = \"upload\",\n SUCCESS = \"success\",\n ERROR = \"error\",\n COMPLETE = \"complete\",\n CANCEL = \"cancel\",\n CLEAR = \"clear\",\n PAUSE = \"pause\",\n RESUME = \"resume\",\n PROGRESS = \"progress\",\n REMOVE = \"remove\",\n VALIDATIONERRORS = \"validationErrors\",\n INVALIDMAXFILESIZE = \"invalidMaxFileSize\",\n INVALIDMINFILESIZE = \"invalidMinFileSize\",\n INVALIDFILEEXTENSION = \"invalidFileExtension\",\n PROGRESSHIDEDELAY = 1000,\n PROGRESSHIDEDURATION = 2000,\n FOCUS_STATE = \"k-focus\",\n TABINDEX = \"tabindex\";\n\n var headerStatusIcon = {\n loading: \"k-i-upload\",\n warning: \"k-i-warning\",\n success: \"k-i-check\"\n };\n\n var Upload = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n Widget.fn.init.call(that, element, options);\n\n that.name = element.name;\n that.multiple = that.options.multiple;\n that.directory = that.options.directory;\n that.localization = that.options.localization;\n\n var activeInput = that.element;\n that.wrapper = activeInput.closest(\".k-upload\");\n if (that.wrapper.length === 0) {\n that.wrapper = that._wrapInput(activeInput);\n }\n\n that._activeInput(activeInput);\n that.toggle(that.options.enabled);\n\n var ns = that._ns = NS + \"-\" + kendo.guid();\n activeInput.closest(\"form\")\n .on(\"submit\" + ns, that._onParentFormSubmit.bind(that))\n .on(\"reset\" + ns, that._onParentFormReset.bind(that));\n\n that._initUploadModule();\n\n that._toggleDropZone();\n\n that.wrapper\n .on(\"click\", \".k-upload-action\", that._onFileAction.bind(that))\n .on(\"click\", \".k-clear-selected\", that._onClearSelected.bind(that))\n .on(\"click\", \".k-upload-selected\", that._onUploadSelected.bind(that))\n .on(\"keydown\", that._onKeyDown.bind(that))\n .on(\"focusout\", that._focusout.bind(that));\n\n if (that.element.val()) {\n that._onInputChange({ target: that.element });\n }\n },\n\n events: [\n SELECT,\n UPLOAD,\n SUCCESS,\n ERROR,\n COMPLETE,\n CANCEL,\n CLEAR,\n PROGRESS,\n REMOVE,\n PAUSE,\n RESUME\n ],\n\n options: {\n name: \"Upload\",\n enabled: true,\n multiple: true,\n directory: false,\n showFileList: true,\n template: \"\",\n files: [],\n async: {\n autoRetryAfter: 0,\n bufferChunkSize: 10000000,\n maxAutoRetries: 1,\n removeVerb: \"POST\",\n autoUpload: true,\n withCredentials: true,\n accept: \"*/*; q=0.5, application/json\",\n useArrayBuffer: false\n },\n localization: {\n \"select\": \"Select files...\",\n \"cancel\": \"Cancel\",\n \"retry\": \"Retry\",\n \"remove\": \"Remove\",\n \"pause\": \"Pause\",\n \"resume\": \"Resume\",\n \"clearSelectedFiles\": \"Clear\",\n \"uploadSelectedFiles\": \"Upload\",\n \"dropFilesHere\": \"Drop files here to upload\",\n \"invalidFiles\": \"Invalid file(s). Please check file upload requirements.\",\n \"statusUploading\": \"uploading\",\n \"statusUploaded\": \"uploaded\",\n \"statusWarning\": \"warning\",\n \"statusFailed\": \"failed\",\n \"headerStatusUploading\": \"Uploading...\",\n \"headerStatusPaused\": \"Paused\",\n \"headerStatusUploaded\": \"Done\",\n \"uploadSuccess\": \"File(s) uploaded successfully.\",\n \"uploadFail\": \"File(s) failed to upload.\",\n \"invalidMaxFileSize\": \"File size too large.\",\n \"invalidMinFileSize\": \"File size too small.\",\n \"invalidFileExtension\": \"File type not allowed.\"\n },\n validation: {\n allowedExtensions: [],\n maxFileSize: 0,\n minFileSize: 0\n },\n dropZone: \"\"\n },\n\n _initUploadModule: function() {\n var that = this,\n options = that.options;\n\n if (options.async.saveUrl) {\n that._module = that._supportsFormData() ?\n new formDataUploadModule(that) :\n new iframeUploadModule(that);\n that._async = true;\n\n var initialFiles = options.files;\n if (initialFiles.length > 0) {\n that._renderInitialFiles(initialFiles);\n }\n\n } else {\n that._module = new syncUploadModule(that);\n }\n },\n\n setOptions: function(options) {\n var that = this,\n activeInput = that.element;\n\n $(that.options.dropZone).off(that._ns);\n\n Widget.fn.setOptions.call(that, options);\n\n that.multiple = that.options.multiple;\n that.directory = that.options.directory;\n\n activeInput.attr(\"multiple\", that._supportsMultiple() ? that.multiple : false);\n if (that.directory) {\n activeInput.attr(\"webkitdirectory\", that.directory);\n activeInput.attr(\"directory\", that.directory);\n }\n that.toggle(that.options.enabled);\n\n that._initUploadModule();\n\n that._toggleDropZone();\n },\n\n enable: function(enable) {\n enable = typeof (enable) === \"undefined\" ? true : enable;\n this.toggle(enable);\n },\n\n disable: function() {\n this.toggle(false);\n },\n\n toggle: function(enable) {\n enable = typeof (enable) === \"undefined\" ? enable : !enable;\n this.wrapper.toggleClass(\"k-disabled\", enable);\n this.element.prop(\"disabled\", enable);\n },\n\n focus: function() {\n this.element.trigger(\"focus\");\n },\n\n destroy: function() {\n var that = this;\n var customDropZone = $(that.options.dropZone);\n\n $(document)\n .add($(\".k-dropzone\", that.wrapper))\n .add(that.wrapper.closest(\"form\"))\n .off(that._ns);\n\n if (customDropZone.length > 0) {\n customDropZone.off(that._ns);\n }\n\n $(that.element).off(NS);\n\n Widget.fn.destroy.call(that);\n },\n pause: function(fileEntry) {\n this._module.onPause({ target: $(fileEntry, this.wrapper) });\n\n var pauseIcon = fileEntry.find(\".k-i-pause-sm\");\n pauseIcon.removeClass(\"k-i-pause-sm\").addClass(\"k-i-play-sm\").attr(\"title\", this.localization.resume);\n $(pauseIcon).parent().attr(\"aria-label\", this.localization.resume);\n },\n resume: function(fileEntry) {\n this._module.onResume({ target: $(fileEntry, this.wrapper) });\n\n var playIcon = fileEntry.find(\".k-i-play-sm\");\n playIcon.removeClass(\"k-i-play-sm\").addClass(\"k-i-pause-sm\").attr(\"title\", this.localization.pause);\n $(playIcon).parent().attr(\"aria-label\", this.localization.pause);\n },\n upload: function() {\n var that = this;\n\n that._module.onSaveSelected();\n },\n\n getFiles: function() {\n var that = this;\n var filesData;\n var allFiles = [];\n var listItems = that.wrapper.find(\".k-file\");\n\n for (var i = 0; i < listItems.length; i++) {\n filesData = $(listItems[i]).data(\"fileNames\");\n\n if (filesData) {\n for (var j = 0; j < filesData.length; j++) {\n allFiles.push(filesData[j]);\n }\n }\n }\n\n return allFiles;\n },\n\n clearAllFiles: function() {\n var that = this;\n var files = that.wrapper.find(\".k-file\");\n\n files.each(function(index, file) {\n that._removeFileByDomElement(file, false);\n });\n },\n\n removeAllFiles: function() {\n var that = this;\n var files = that.wrapper.find(\".k-file\");\n\n files.each(function(index, file) {\n that._removeFileByDomElement(file, true);\n });\n },\n\n removeFileByUid: function(uid) {\n this._removeFileByUid(uid, true);\n },\n\n clearFileByUid: function(uid) {\n this._removeFileByUid(uid, false);\n },\n\n _removeFileByUid: function(uid, shouldSendRemoveRequest) {\n var that = this;\n var fileEntry;\n\n if (typeof uid !== 'string') { return; }\n\n fileEntry = $('.k-file[' + kendo.attr('uid') + '=\"' + uid + '\"]', that.wrapper);\n\n if (fileEntry.length > 0) {\n that._removeFileByDomElement(fileEntry, shouldSendRemoveRequest);\n }\n },\n\n clearFile: function(callback) {\n this._removeFile(callback, false);\n },\n\n removeFile: function(callback) {\n this._removeFile(callback, true);\n },\n\n _removeFile: function(callback, shouldSendRemoveRequest) {\n var that = this;\n var files = that.wrapper.find(\".k-file\");\n var fileData;\n\n if (typeof callback === \"function\") {\n files.each(function(index, file) {\n fileData = $(file).data(\"fileNames\");\n\n if (callback(fileData)) {\n that._removeFileByDomElement(file, shouldSendRemoveRequest);\n }\n });\n }\n },\n\n _removeFileByDomElement: function(fileEntry, shouldSendRemoveRequest) {\n var that = this;\n var fileData = {\n target: $(fileEntry, that.wrapper)\n };\n var allFiles;\n\n if (that.options.async.saveUrl) {\n if ($(fileEntry).hasClass(\"k-file-progress\")) {\n that._module.onCancel(fileData);\n } else {\n that._module.onRemove(fileData, {}, shouldSendRemoveRequest);\n }\n\n allFiles = $(\".k-file\", that.wrapper);\n\n if (allFiles.length === 0) {\n that._hideHeaderUploadstatus();\n } else {\n that._updateHeaderUploadStatus();\n }\n } else {\n that._module.onRemove(fileData, {}, shouldSendRemoveRequest);\n }\n },\n\n _addInput: function(sourceInput) {\n //check if source input is a DOM element. Required for some unit tests\n if (!sourceInput[0].nodeType) {\n return;\n }\n\n var that = this,\n input = sourceInput.clone().val(\"\");\n\n input\n .insertAfter(that.element)\n .data(\"kendo\" + that.options.prefix + that.options.name, that);\n\n $(that.element)\n .hide()\n .attr(TABINDEX, \"-1\")\n .removeAttr(\"id\")\n .off(NS);\n\n that._activeInput(input);\n that.element.trigger(\"focus\");\n },\n\n _activeInput: function(input) {\n var that = this,\n wrapper = that.wrapper;\n\n that.element = input;\n\n if (that.directory) {\n input.attr(\"webkitdirectory\", that.directory);\n input.attr(\"directory\", that.directory);\n }\n\n input\n .attr(\"multiple\", that._supportsMultiple() ? that.multiple : false)\n .attr(\"autocomplete\", \"off\")\n .on(\"click\" + NS, function(e) {\n if (wrapper.hasClass(\"k-disabled\")) {\n e.preventDefault();\n }\n })\n .on(\"focus\" + NS, function() {\n $(this).parent().addClass(FOCUS_STATE);\n })\n .on(\"blur\" + NS, function() {\n $(this).parent().removeClass(FOCUS_STATE);\n })\n .on(\"change\" + NS, that._onInputChange.bind(that));\n },\n\n _adjustFocusState: function(focusedItem, toFocus) {\n focusedItem.removeClass(FOCUS_STATE);\n focusedItem.attr(TABINDEX, -1);\n toFocus.addClass(FOCUS_STATE);\n toFocus.attr(TABINDEX, 0);\n },\n\n _arrowKeyNavigation: function(e, key, focusedItem) {\n var that = this,\n kendoKeys = kendo.keys,\n toFocus;\n\n if (key === kendoKeys.DOWN) {\n e.preventDefault();\n e.stopPropagation();\n\n toFocus = that.wrapper.find(\".k-upload-files .k-file\").first();\n\n if (focusedItem.length > 0) {\n if (focusedItem.hasClass(\"k-upload-action\")) {\n focusedItem.removeClass(FOCUS_STATE);\n focusedItem = focusedItem.closest(\".k-file\");\n }\n\n toFocus = focusedItem.next();\n }\n\n that._adjustFocusState(focusedItem, toFocus);\n\n if (!toFocus || toFocus.length === 0) {\n toFocus = that.wrapper.find(\".k-clear-selected\");\n }\n } else if (key === kendoKeys.UP) {\n e.preventDefault();\n e.stopPropagation();\n\n toFocus = that.wrapper.find(\".k-upload-files .k-file:last\");\n\n if (focusedItem.length > 0) {\n if (focusedItem.hasClass(\"k-upload-action\")) {\n focusedItem.removeClass(FOCUS_STATE);\n focusedItem = focusedItem.closest(\".k-file\");\n }\n\n toFocus = focusedItem.prev();\n }\n\n that._adjustFocusState(focusedItem, toFocus);\n } else if (key === kendoKeys.RIGHT) {\n if (focusedItem.hasClass(\"k-upload-action\")) {\n toFocus = focusedItem.next(\".k-upload-action\");\n\n if (!toFocus || toFocus.length === 0) {\n toFocus = focusedItem.parent().find(\".k-upload-action:first\");\n }\n } else if (focusedItem.length > 0) {\n toFocus = focusedItem.find(\".k-upload-action:first\");\n }\n\n if (toFocus && toFocus.length > 0) {\n focusedItem.removeClass(FOCUS_STATE);\n toFocus.addClass(FOCUS_STATE);\n }\n } else if (key === kendoKeys.LEFT) {\n if (focusedItem.hasClass(\"k-upload-action\")) {\n toFocus = focusedItem.prev(\".k-upload-action\");\n\n if (!toFocus || toFocus.length === 0) {\n toFocus = focusedItem.parent().find(\".k-upload-action:last\");\n }\n } else if (focusedItem.length > 0) {\n toFocus = focusedItem.find(\".k-upload-action:last\");\n }\n\n if (toFocus && toFocus.length > 0) {\n focusedItem.removeClass(FOCUS_STATE);\n toFocus.addClass(FOCUS_STATE);\n }\n }\n\n if ((!toFocus || toFocus.length === 0) && (key === kendoKeys.UP || key === kendoKeys.DOWN)) {\n toFocus = that.element;\n }\n\n if (toFocus && toFocus.length > 0) {\n that._preventFocusRemove = true;\n toFocus.trigger(\"focus\");\n }\n },\n\n _asyncCommandKeyNavigation: function(key, focusedItem, eventArgs) {\n var that = this,\n kendoKeys = kendo.keys,\n fileEntry = $(focusedItem, that.wrapper);\n\n that._retryClicked = false;\n\n if (key === kendoKeys.ESC && focusedItem.find(\".k-i-cancel\").length > 0) {\n that.trigger(CANCEL, eventArgs);\n that._module.onCancel({ target: fileEntry });\n that._checkAllComplete();\n that._updateHeaderUploadStatus();\n that._preventFocusRemove = true;\n that.element.trigger(\"focus\");\n } else if (key === kendoKeys.SPACEBAR) {\n if (focusedItem.find(\".k-i-pause-sm\").length > 0) {\n that.trigger(PAUSE, eventArgs);\n that.pause(focusedItem);\n that._updateHeaderUploadStatus();\n } else if (focusedItem.find(\".k-i-play-sm\").length > 0) {\n that.trigger(RESUME, eventArgs);\n that.resume(focusedItem);\n }\n } else if (key === kendoKeys.ENTER && !focusedItem.is(\".k-file-progress, .k-file-success, .k-file-invalid\")) {\n if (that.options.async.chunkSize && !that.options.async.concurrent && $('.k-file-progress', that.wrapper).length > 0) {\n return;\n }\n\n $(\".k-i-warning\", focusedItem).remove();\n $(\".k-progressbar\", focusedItem).finish().show();\n\n if (!that._module.metaData[fileEntry.data(\"uid\")]) {\n that._module.prepareChunk(fileEntry);\n }\n\n that._module.onRetry({ target: fileEntry });\n that._retryClicked = true;\n }\n },\n\n _commandKeyNavigation: function(key, focusedItem) {\n var that = this,\n kendoKeys = kendo.keys,\n files = focusedItem.data(\"fileNames\"),\n hasValidationErrors = that._filesContainValidationErrors(files),\n eventArgs = {\n files: files,\n headers: {}\n };\n\n if (key === kendoKeys.DELETE) {\n if (!that.trigger(REMOVE, eventArgs)) {\n that._module.onRemove({ target: $(focusedItem, that.wrapper) }, eventArgs, !hasValidationErrors);\n that._preventFocusRemove = true;\n that.element.trigger(\"focus\");\n }\n } else if (key === kendoKeys.TAB) {\n focusedItem.removeClass(FOCUS_STATE);\n focusedItem.attr(TABINDEX, -1);\n } else if (!!that.options.async.saveUrl) {\n that._asyncCommandKeyNavigation(key, focusedItem, eventArgs);\n }\n },\n\n _focusout: function() {\n var focusedItem = this.wrapper.find(\".k-upload-files .k-file.\" + FOCUS_STATE);\n\n if (!this._preventFocusRemove) {\n focusedItem.removeClass(FOCUS_STATE);\n focusedItem.attr(TABINDEX, -1);\n } else {\n this._preventFocusRemove = false;\n }\n },\n\n _onKeyDown: function(e) {\n var that = this,\n focusedItem = that.wrapper.find(\".k-upload-files .k-file.\" + FOCUS_STATE + \",\" + \".k-upload-action.\" + FOCUS_STATE),\n kendoKeys = kendo.keys,\n commandKeys = [kendoKeys.DELETE, kendoKeys.ESC, kendoKeys.ENTER, kendoKeys.SPACEBAR, kendoKeys.TAB],\n key = e.keyCode;\n\n if (key === kendoKeys.DOWN || key === kendoKeys.UP || key === kendoKeys.LEFT || key === kendoKeys.RIGHT) {\n that._arrowKeyNavigation(e, key, focusedItem);\n } else if (focusedItem.length > 0 && focusedItem.hasClass(\"k-file\") && commandKeys.indexOf(key) > -1 && !that.wrapper.hasClass(\"k-disabled\")) {\n if (key === kendoKeys.SPACEBAR) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n that._commandKeyNavigation(key, focusedItem);\n }\n },\n\n _onInputChange: function(e) {\n var that = this;\n var input = $(e.target);\n var files = assignGuidToFiles(that._inputFiles(input), that._isAsyncNonBatch());\n\n validateFiles(files, that.options.validation);\n\n var prevented = that.trigger(SELECT, { files: files });\n if (prevented) {\n that._addInput(input);\n input.remove();\n } else {\n that._module.onSelect({ target: input }, files);\n }\n },\n\n _readDirectory: function(item) {\n var deferred = new $.Deferred();\n var dirReader = item.createReader();\n var allFolderFiles = [];\n\n var readEntries = function() {\n dirReader.readEntries(function(entries) {\n if (!entries.length) {\n deferred.resolve(allFolderFiles);\n } else {\n allFolderFiles = allFolderFiles.concat(entries);\n readEntries();\n }\n }, deferred.reject);\n };\n\n readEntries();\n\n return deferred.promise();\n },\n\n _readFile: function(item) {\n var that = this;\n var fullpath = item.fullPath;\n\n item.file(function(file) {\n file.relativePath = fullpath.slice(1);\n that.droppedFolderFiles.push(file);\n that.droppedFolderCounter --;\n if (that.droppedFolderCounter === 0) {\n setTimeout(function() {\n if (that.droppedFolderCounter === 0) {\n if (that.droppedFolderFiles.length) {\n that._proceedDroppedItems(that.droppedFolderFiles);\n that.droppedFolderFiles = [];\n }\n }\n },0);\n }\n }, function() {\n logToConsole(\"File error.\");\n });\n },\n\n _traverseFileTree: function(item, skipCounter) {\n var that = this;\n if (!skipCounter) {\n that.droppedFolderCounter--;\n }\n\n this._readDirectory(item).then(function(items) {\n that.droppedFolderCounter += items.length;\n for (var i = 0; i < items.length; i++) {\n if (items[i].isFile) {\n that._readFile(items[i]);\n } else if (items[i].isDirectory) {\n that._traverseFileTree(items[i]);\n }\n }\n });\n },\n\n _onDrop: function(e) {\n var dt = e.originalEvent.dataTransfer;\n var that = this;\n var droppedFiles = dt.files;\n var length;\n\n stopEvent(e);\n if (that.options.directoryDrop && dt.items) {\n length = dt.items.length;\n that.droppedFolderCounter = 0;\n that.droppedFolderFiles = [];\n\n for (var i = 0; i < length; i++) {\n if (dt.items[i].webkitGetAsEntry) {\n var entry = dt.items[i].webkitGetAsEntry();\n\n if (entry.isDirectory) {\n that._traverseFileTree(entry, true);\n } else if (entry.isFile) {\n that.droppedFolderFiles.push(dt.files[i]);\n }\n } else {\n that._proceedDroppedItems(droppedFiles);\n }\n }\n } else {\n that._proceedDroppedItems(droppedFiles);\n }\n },\n\n _proceedDroppedItems: function(droppedFiles) {\n var that = this;\n var files = assignGuidToFiles(getAllFileInfo(droppedFiles), that._isAsyncNonBatch());\n\n if (droppedFiles.length > 0 && !that.wrapper.hasClass(\"k-disabled\")) {\n if (!that.multiple && files.length > 1) {\n files.splice(1, files.length - 1);\n }\n\n validateFiles(files, that.options.validation);\n\n var prevented = that.trigger(SELECT, { files: files });\n if (!prevented) {\n that._module.onSelect({ target: $(\".k-dropzone\", that.wrapper) }, files);\n }\n }\n },\n\n _filesContainValidationErrors: function(files) {\n var hasErrors = false;\n\n $(files).each(function(index, file) {\n if (file[VALIDATIONERRORS] && file[VALIDATIONERRORS].length > 0) {\n hasErrors = true;\n return false;\n }\n });\n\n return hasErrors;\n },\n\n _isAsyncNonBatch: function() {\n return (this._async && !this.options.async.batch) || false;\n },\n\n _renderInitialFiles: function(files) {\n var that = this;\n var idx = 0;\n files = assignGuidToFiles(files, true);\n\n for (idx = 0; idx < files.length; idx++) {\n var currentFile = files[idx];\n\n var fileEntry = that._enqueueFile(currentFile.name, { fileNames: [ currentFile ] });\n fileEntry.addClass(\"k-file-success\").data(\"files\", [ files[idx] ]);\n\n if (that._supportsRemove()) {\n that._fileAction(fileEntry, REMOVE);\n }\n }\n },\n\n _prepareTemplateData: function(name, data) {\n var filesData = data.fileNames,\n templateData = {},\n totalSize = 0,\n idx = 0;\n\n for (idx = 0; idx < filesData.length; idx++) {\n totalSize += filesData[idx].size;\n }\n\n templateData.name = name;\n templateData.size = totalSize;\n templateData.files = data.fileNames;\n\n return templateData;\n },\n\n _prepareDefaultSingleFileEntryTemplate: function(data) {\n var that = this;\n var file = data.fileNames[0];\n var fileSize = getTotalFilesSizeMessage(data.fileNames);\n var fileGroup = kendo.getFileGroup(file.extension, true);\n var errors = file[VALIDATIONERRORS];\n var template = \"\";\n\n if (errors && errors.length > 0) {\n template += \"