{"version":3,"file":"kendo.upload.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendoupload","js","this","$","undefined$1","kendo","window","Widget","ui","antiForgeryTokens","logToConsole","rFileExtension","NS","SELECT","UPLOAD","SUCCESS","ERROR","COMPLETE","CANCEL","CLEAR","PAUSE","RESUME","PROGRESS","REMOVE","INVALIDMAXFILESIZE","INVALIDMINFILESIZE","INVALIDFILEEXTENSION","HOVER_STATE","FOCUS_STATE","PROGRESSBAR_SELECTOR","TABINDEX","headerStatusIconName","Upload","extend","init","element","options","that","progressbars","fn","call","name","multiple","directory","localization","activeInput","wrapper","closest","length","_wrapInput","_activeInput","toggle","enabled","ns","_ns","guid","on","_onParentFormSubmit","bind","_onParentFormReset","_initUploadModule","_toggleDropZone","_onUploadButtonKeydown","_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","forEach","progressbar","fileEntry","onPause","pauseIcon","find","htmlEncode","icon","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","addClass","removeClass","_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","last","_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","_createProgressbarWapper","_createFileIconWrapper","fileTypeIcon","iconClass","_progressbarInit","kendoProgressBar","animation","showStatus","_prepareDefaultSingleFileEntryTemplate","fileSize","getTotalFilesSizeMessage","fileGroup","getFileGroup","extension","errors","isError","invalidClass","fileDetails","_prepareDefaultMultipleFileEntriesTemplate","filesHaveValidationErrors","totalFileSize","sort","a","b","existingFileEntries","removeEventArgs","isProgressbar","fileUid","fileList","progressbarSelector","appendTo","angular","elements","value","_removeFileEntry","_hideActionButtons","fileElement","actionKey","skipClear","firstActionButton","iconsNameDictionary","actionKeyText","hasOwnProperty","_clearFileAction","firstActionIcon$1","append","firstActionIcon","_renderAction","_fileState","stateKey","currentState","uploading","text","uploaded","failed","iconName","actionText","empty","button","_onFileProgress","percentComplete","progressBar","prepend","getFileEntry","_onUploadSuccess","response","xhr","fileInfo","operation","XMLHttpRequest","_setUploadErrorState","after","_hideUploadProgress","_onUploadError","responseText","_decreasePosition","_autoRetryAfter","retries","performUpload","uploadPercentage","_updateUploadProgress","fileMetaData","totalChunks","Math","round","delay","fadeOut","_showActionButtons","actionsWrapper","uploadButton","clearButton","html","renderButton","themeColor","_showHeaderUploadStatus","isUploading","headerUploadStatus","headerUploadStatusIcon","currentlyUploading","not","currentlyFailed","currentlyPaused","onAbort","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","selectText","wrap","prependTo","tabindex","inputFiles","prototype","filesContainErrors","relatedInput","getFileName","iframes","_frameId","prepareUpload","iframe","form","saveField","createFrame","registerFrame","createForm","frame","fileValidation","cleanupFrame","unregisterFrame","body","dataInput","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","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 (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.core.js'), require('kendo.progressbar.js'), require('kendo.icons.js'), require('kendo.html.button.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.core', 'kendo.progressbar', 'kendo.icons', 'kendo.html.button'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendoupload = global.kendoupload || {}, global.kendoupload.js = factory()));\n})(this, (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\", \"progressbar\", \"icons\", \"html.button\"]\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 HOVER_STATE = \"k-hover\",\n FOCUS_STATE = \"k-focus\",\n PROGRESSBAR_CLASS = \"k-progressbar\",\n PROGRESSBAR_SELECTOR = \".\" + PROGRESSBAR_CLASS,\n PROGRESSBAR_TEMPLATE_SELECTOR = \".k-progress\",\n TABINDEX = \"tabindex\",\n WARNINGICON_SELECTOR = \".k-i-exclamation-circle,.k-svg-i-exclamation-circle\";\n\n var headerStatusIconName = {\n loading: \"upload\",\n warning: \"exclamation-circle\",\n success: \"check\"\n };\n\n var Upload = Widget.extend({\n init: function(element, options) {\n var that = this;\n that.progressbars = [];\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(\"keydown\", \".k-upload-button\", that._onUploadButtonKeydown.bind(that))\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 if (that.progressbars) {\n that.progressbars.forEach(function (progressbar) {\n progressbar.destroy();\n });\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,.k-svg-i-pause-sm\");\n var resume = kendo.htmlEncode(this.localization.resume);\n kendo.ui.icon(pauseIcon, { icon: \"play-sm\" });\n pauseIcon.attr(\"title\", resume);\n $(pauseIcon).parent().attr(\"aria-label\", resume);\n },\n resume: function(fileEntry) {\n this._module.onResume({ target: $(fileEntry, this.wrapper) });\n\n var playIcon = fileEntry.find(\".k-i-play-sm,.k-svg-i-play-sm\");\n var pause = kendo.htmlEncode(this.localization.pause);\n kendo.ui.icon(playIcon, { icon: \"pause-sm\" });\n playIcon.attr(\"title\", pause);\n $(playIcon).parent().attr(\"aria-label\", 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,.k-svg-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,.k-svg-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,.k-svg-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 $(WARNINGICON_SELECTOR, focusedItem).remove();\n $(PROGRESSBAR_SELECTOR, 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 _onUploadButtonKeydown: function(e) {\n var key = e.keyCode,\n kendoKeys = kendo.keys;\n\n if (key === kendoKeys.ENTER || key === kendoKeys.SPACEBAR) {\n this.wrapper.find(\".k-upload-button-wrap input\").last().trigger(\"click\");\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 _createProgressbarWapper: function() {\n return \"
\";\n },\n\n _createFileIconWrapper: function(fileTypeIcon) {\n return \" \";\n },\n\n _progressbarInit: function(wrapper) {\n var progressbar = wrapper.kendoProgressBar({\n animation: false,\n showStatus: false\n }).data(\"kendoProgressBar\");\n this.progressbars.push(progressbar);\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 isError = errors && errors.length > 0;\n var invalidClass = isError ? \" k-file-invalid k-file-error\" : \"\";\n var fileDetails = isError ?\n \" \" :\n \"\" + fileSize + \"\";\n var template = \"\";\n\n template += \"