@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
3 lines (2 loc) • 43 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("kendo.core.js"),require("kendo.progressbar.js"),require("kendo.icons.js"),require("kendo.html.button.js")):"function"==typeof define&&define.amd?define(["exports","kendo.core.min","kendo.progressbar","kendo.icons","kendo.html.button"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Upload={}))}(this,(function(e){!function(e){var t=window.kendo,a=t.ui.Widget,n=t.antiForgeryTokens,o=t.logToConsole,i=/\.([^\.]+)$/,r=".kendoUpload",s="select",l="upload",d="success",p="error",u="complete",c="cancel",f="clear",h="pause",m="resume",k="progress",v="remove",g="validationErrors",_="invalidMaxFileSize",y="invalidMinFileSize",F="invalidFileExtension",w="k-hover",b="k-focus",C="k-progressbar",E="."+C,S="tabindex",U="upload",z="exclamation-circle",x="check",A=a.extend({init:function(e,n){var o=this;o.progressbars=[],a.fn.init.call(o,e,n),o.name=e.name,o.multiple=o.options.multiple,o.directory=o.options.directory,o.localization=o.options.localization;var i=o.element;o.wrapper=i.closest(".k-upload"),0===o.wrapper.length&&(o.wrapper=o._wrapInput(i)),o._activeInput(i),o.element.addClass("k-hidden"),o.toggle(o.options.enabled);var s=o._ns=r+"-"+t.guid();i.closest("form").on("submit"+s,o._onParentFormSubmit.bind(o)).on("reset"+s,o._onParentFormReset.bind(o)),o._initUploadModule(),o._toggleDropZone(),o.wrapper.on("keydown",".k-upload-button",o._onUploadButtonKeydown.bind(o)).on("click",".k-upload-action",o._onFileAction.bind(o)).on("click",".k-clear-selected",o._onClearSelected.bind(o)).on("click",".k-upload-button",(function(e){e.preventDefault(),o.element.click()})).on("click",".k-upload-selected",o._onUploadSelected.bind(o)).on("keydown",o._onKeyDown.bind(o)).on("focusout",o._focusout.bind(o)),o.element.val()&&o._onInputChange({target:o.element})},events:[s,l,d,p,u,c,f,k,v,h,m],options:{name:"Upload",enabled:!0,multiple:!0,directory:!1,showFileList:!0,template:"",files:[],async:{autoRetryAfter:0,bufferChunkSize:1e7,maxAutoRetries:1,removeVerb:"POST",autoUpload:!0,withCredentials:!0,accept:"*/*; q=0.5, application/json",useArrayBuffer:!1},localization:{select:"Select files...",cancel:"Cancel",retry:"Retry",remove:"Remove",pause:"Pause",resume:"Resume",clearSelectedFiles:"Clear",uploadSelectedFiles:"Upload",dropFilesHere:"Drop files here to upload",invalidFiles:"Invalid file(s). Please check file upload requirements.",statusUploading:"uploading",statusUploaded:"uploaded",statusWarning:"warning",statusFailed:"failed",headerStatusUploading:"Uploading...",headerStatusPaused:"Paused",headerStatusUploaded:"Done",uploadSuccess:"File(s) uploaded successfully.",uploadFail:"File(s) failed to upload.",invalidMaxFileSize:"File size too large.",invalidMinFileSize:"File size too small.",invalidFileExtension:"File type not allowed."},validation:{allowedExtensions:[],maxFileSize:0,minFileSize:0},dropZone:""},_initUploadModule:function(){var e=this,t=e.options;if(t.async.saveUrl){e._module=e._supportsFormData()?new P(e):new R(e),e._async=!0;var a=t.files;a.length>0&&e._renderInitialFiles(a)}else e._module=new D(e)},setOptions:function(t){var n=this,o=n.element;e(n.options.dropZone).off(n._ns),a.fn.setOptions.call(n,t),n.multiple=n.options.multiple,n.directory=n.options.directory,o.attr("multiple",!!n._supportsMultiple()&&n.multiple),n.directory&&(o.attr("webkitdirectory",n.directory),o.attr("directory",n.directory)),n.toggle(n.options.enabled),n._initUploadModule(),n._toggleDropZone()},enable:function(e){e=void 0===e||e,this.toggle(e)},disable:function(){this.toggle(!1)},toggle:function(e){e=void 0===e?e:!e,this.wrapper.toggleClass("k-disabled",e),this.element.prop("disabled",e)},focus:function(){this.wrapper.find(".k-upload-button").trigger("focus")},destroy:function(){var t=this,n=e(t.options.dropZone);e(document).add(e(".k-dropzone",t.wrapper)).add(t.wrapper.closest("form")).off(t._ns),n.length>0&&n.off(t._ns),e(t.element).off(r),t.progressbars&&t.progressbars.forEach((e=>{e.destroy()})),a.fn.destroy.call(t)},pause:function(a){this._module.onPause({target:e(a,this.wrapper)});var n=a.find(".k-i-pause-sm,.k-svg-i-pause-sm"),o=t.htmlEncode(this.localization.resume);t.ui.icon(n,{icon:"play-sm"}),n.attr("title",o),e(n).parent().attr("aria-label",o)},resume:function(a){this._module.onResume({target:e(a,this.wrapper)});var n=a.find(".k-i-play-sm,.k-svg-i-play-sm"),o=t.htmlEncode(this.localization.pause);t.ui.icon(n,{icon:"pause-sm"}),n.attr("title",o),e(n).parent().attr("aria-label",o)},upload:function(){this._module.onSaveSelected()},getFiles:function(){for(var t,a=[],n=this.wrapper.find(".k-file"),o=0;o<n.length;o++)if(t=e(n[o]).data("fileNames"))for(var i=0;i<t.length;i++)a.push(t[i]);return a},clearAllFiles:function(){var e=this;e.wrapper.find(".k-file").each((function(t,a){e._removeFileByDomElement(a,!1)}))},removeAllFiles:function(){var e=this;e.wrapper.find(".k-file").each((function(t,a){e._removeFileByDomElement(a,!0)}))},removeFileByUid:function(e){this._removeFileByUid(e,!0)},clearFileByUid:function(e){this._removeFileByUid(e,!1)},_removeFileByUid:function(a,n){var o;"string"==typeof a&&(o=e(".k-file["+t.attr("uid")+'="'+a+'"]',this.wrapper)).length>0&&this._removeFileByDomElement(o,n)},clearFile:function(e){this._removeFile(e,!1)},removeFile:function(e){this._removeFile(e,!0)},_removeFile:function(t,a){var n,o=this,i=o.wrapper.find(".k-file");"function"==typeof t&&i.each((function(i,r){n=e(r).data("fileNames"),t(n)&&o._removeFileByDomElement(r,a)}))},_removeFileByDomElement:function(t,a){var n=this,o={target:e(t,n.wrapper)};n.options.async.saveUrl?(e(t).hasClass("k-file-progress")?n._module.onCancel(o):n._module.onRemove(o,{},a),0===e(".k-file",n.wrapper).length?n._hideHeaderUploadstatus():n._updateHeaderUploadStatus()):n._module.onRemove(o,{},a)},_addInput:function(t){if(t[0].nodeType){var a=this,n=t.clone().val("");n.insertAfter(a.element).data("kendo"+a.options.prefix+a.options.name,a),e(a.element).attr(S,"-1").removeAttr("id").off(r),a._activeInput(n),a.wrapper.find(".k-upload-button").trigger("focus")}},_activeInput:function(e){var t=this,a=t.wrapper;t.element=e,t.directory&&(e.attr("webkitdirectory",t.directory),e.attr("directory",t.directory)),e.attr("multiple",!!t._supportsMultiple()&&t.multiple).attr("autocomplete","off").on("click"+r,(function(e){a.hasClass("k-disabled")&&e.preventDefault()})).on("change"+r,t._onInputChange.bind(t))},_adjustFocusState:function(e,t){e.removeClass(b),e.attr(S,-1),t.addClass(b),t.attr(S,0)},_arrowKeyNavigation:function(e,a,n){var o,i=this,r=t.keys;a===r.DOWN?(e.preventDefault(),e.stopPropagation(),o=i.wrapper.find(".k-upload-files .k-file").first(),n.length>0&&(n.hasClass("k-upload-action")&&(n.removeClass(b),n=n.closest(".k-file")),o=n.next()),i._adjustFocusState(n,o),o&&0!==o.length||(o=i.wrapper.find(".k-clear-selected"))):a===r.UP?(e.preventDefault(),e.stopPropagation(),o=i.wrapper.find(".k-upload-files .k-file:last"),n.length>0&&(n.hasClass("k-upload-action")&&(n.removeClass(b),n=n.closest(".k-file")),o=n.prev()),i._adjustFocusState(n,o)):a===r.RIGHT?(n.hasClass("k-upload-action")?(o=n.next(".k-upload-action"))&&0!==o.length||(o=n.parent().find(".k-upload-action:first")):n.length>0&&(o=n.find(".k-upload-action:first")),o&&o.length>0&&(n.removeClass(b),o.addClass(b))):a===r.LEFT&&(n.hasClass("k-upload-action")?(o=n.prev(".k-upload-action"))&&0!==o.length||(o=n.parent().find(".k-upload-action:last")):n.length>0&&(o=n.find(".k-upload-action:last")),o&&o.length>0&&(n.removeClass(b),o.addClass(b))),o&&0!==o.length||a!==r.UP&&a!==r.DOWN||(o=i.wrapper.find(".k-upload-button")),o&&o.length>0&&(i._preventFocusRemove=!0,o.trigger("focus"))},_asyncCommandKeyNavigation:function(a,n,o){var i=this,r=t.keys,s=e(n,i.wrapper);if(i._retryClicked=!1,a===r.ESC&&n.find(".k-i-cancel,.k-svg-i-cancel").length>0)i.trigger(c,o),i._module.onCancel({target:s}),i._checkAllComplete(),i._updateHeaderUploadStatus(),i._preventFocusRemove=!0,i.wrapper.find(".k-upload-button").trigger("focus");else if(a===r.SPACEBAR)n.find(".k-i-pause-sm,.k-svg-i-pause-sm").length>0?(i.trigger(h,o),i.pause(n),i._updateHeaderUploadStatus()):n.find(".k-i-play-sm,.k-svg-i-play-sm").length>0&&(i.trigger(m,o),i.resume(n));else if(a===r.ENTER&&!n.is(".k-file-progress, .k-file-success, .k-file-invalid")){if(i.options.async.chunkSize&&!i.options.async.concurrent&&e(".k-file-progress",i.wrapper).length>0)return;e(".k-i-exclamation-circle,.k-svg-i-exclamation-circle",n).remove(),e(E,n).finish().show(),i._module.metaData[s.data("uid")]||i._module.prepareChunk(s),i._module.onRetry({target:s}),i._retryClicked=!0}},_commandKeyNavigation:function(a,n){var o=this,i=t.keys,r=n.data("fileNames"),s=o._filesContainValidationErrors(r),l={files:r,headers:{}};a===i.DELETE?o.trigger(v,l)||(o._module.onRemove({target:e(n,o.wrapper)},l,!s),o._preventFocusRemove=!0,o.wrapper.find(".k-upload-button").trigger("focus")):a===i.TAB?(n.removeClass(b),n.attr(S,-1)):o.options.async.saveUrl&&o._asyncCommandKeyNavigation(a,n,l)},_focusout:function(){var e=this.wrapper.find(".k-upload-files .k-file."+b);this._preventFocusRemove?this._preventFocusRemove=!1:(e.removeClass(b),e.attr(S,-1))},_onKeyDown:function(e){var a=this,n=a.wrapper.find(".k-upload-files .k-file."+b+",.k-upload-action."+b),o=t.keys,i=[o.DELETE,o.ESC,o.ENTER,o.SPACEBAR,o.TAB],r=e.keyCode;r===o.DOWN||r===o.UP||r===o.LEFT||r===o.RIGHT?a._arrowKeyNavigation(e,r,n):n.length>0&&n.hasClass("k-file")&&i.indexOf(r)>-1&&!a.wrapper.hasClass("k-disabled")&&(r===o.SPACEBAR&&(e.preventDefault(),e.stopPropagation()),a._commandKeyNavigation(r,n))},_onInputChange:function(t){var a=this,n=e(t.target),o=H(a._inputFiles(n),a._isAsyncNonBatch());q(o,a.options.validation),a.trigger(s,{files:o})?(a._addInput(n),n.remove()):a._module.onSelect({target:n},o),a.focus()},_onUploadButtonKeydown:function(e){var a=e.keyCode,n=t.keys;a!==n.ENTER&&a!==n.SPACEBAR||this.wrapper.find(".k-upload-button-wrap input").last().trigger("click")},_readDirectory:function(t){var a=new e.Deferred,n=t.createReader(),o=[],i=function(){n.readEntries((function(e){e.length?(o=o.concat(e),i()):a.resolve(o)}),a.reject)};return i(),a.promise()},_readFile:function(e){var t=this,a=e.fullPath;e.file((function(e){e.relativePath=a.slice(1),t.droppedFolderFiles.push(e),t.droppedFolderCounter--,0===t.droppedFolderCounter&&setTimeout((function(){0===t.droppedFolderCounter&&t.droppedFolderFiles.length&&(t._proceedDroppedItems(t.droppedFolderFiles),t.droppedFolderFiles=[])}),0)}),(function(){o("File error.")}))},_traverseFileTree:function(e,t){var a=this;t||a.droppedFolderCounter--,this._readDirectory(e).then((function(e){a.droppedFolderCounter+=e.length;for(var t=0;t<e.length;t++)e[t].isFile?a._readFile(e[t]):e[t].isDirectory&&a._traverseFileTree(e[t])}))},_onDrop:function(e){var t,a=e.originalEvent.dataTransfer,n=this,o=a.files;if(V(e),n.options.directoryDrop&&a.items){t=a.items.length,n.droppedFolderCounter=0,n.droppedFolderFiles=[];for(var i=0;i<t;i++)if(a.items[i].webkitGetAsEntry){var r=a.items[i].webkitGetAsEntry();r.isDirectory?n._traverseFileTree(r,!0):r.isFile&&n.droppedFolderFiles.push(a.files[i])}else n._proceedDroppedItems(o)}else n._proceedDroppedItems(o)},_proceedDroppedItems:function(t){var a=this,n=H(B(t),a._isAsyncNonBatch());t.length>0&&!a.wrapper.hasClass("k-disabled")&&(!a.multiple&&n.length>1&&n.splice(1,n.length-1),q(n,a.options.validation),a.trigger(s,{files:n})||a._module.onSelect({target:e(".k-dropzone",a.wrapper)},n))},_filesContainValidationErrors:function(t){var a=!1;return e(t).each((function(e,t){if(t[g]&&t[g].length>0)return a=!0,!1})),a},_isAsyncNonBatch:function(){return this._async&&!this.options.async.batch||!1},_renderInitialFiles:function(e){var t=this,a=0;for(e=H(e,!0),a=0;a<e.length;a++){var n=e[a],o=t._enqueueFile(n.name,{fileNames:[n]});o.addClass("k-file-success").data("files",[e[a]]),t._supportsRemove()&&t._fileAction(o,v)}},_prepareTemplateData:function(e,t){var a=t.fileNames,n={},o=0,i=0;for(i=0;i<a.length;i++)o+=a[i].size;return n.name=e,n.size=o,n.files=t.fileNames,n},_createProgressbarWapper:function(){return"<div class='"+C+" k-hidden'></div>"},_createFileIconWrapper:function(e){return"<span class='k-file-icon-wrapper'>"+t.ui.icon({icon:e,iconClass:"k-file-icon",size:"xxlarge"})+"<span class='k-file-state'></span></span>"},_progressbarInit:function(e){let t=e.kendoProgressBar({animation:!1,showStatus:!1}).data("kendoProgressBar");this.progressbars.push(t)},_prepareDefaultSingleFileEntryTemplate:function(a){var n=a.fileNames[0],o=O(a.fileNames),i=t.getFileGroup(n.extension,!0),r=n[g],s=r&&r.length>0,l=s?" k-file-invalid k-file-error":"",d=s?"<span class='k-file-validation-message' aria-live='polite'>"+t.htmlEncode(this.localization[r[0]])+"</span>":"<span class='k-file-size'>"+o+"</span>";let p=t.htmlEncode(n.name,!0);var u="";return u+="<li class='k-file"+l+"'><div class='k-file-single'>"+this._createProgressbarWapper()+this._createFileIconWrapper(i)+"<span class='k-file-info'><span class='k-file-name' title='"+p+"'>"+p+"</span>"+d+"</span>",e(u+="<span class='k-upload-actions'></span></div>")},_prepareDefaultMultipleFileEntriesTemplate:function(a){var n,o,i=a.fileNames,r=this._filesContainValidationErrors(i),s=O(i),l="";for(l+="<li class='k-file"+(r?" k-file-invalid k-file-error":"")+"'><div class='k-file-multiple'>"+this._createProgressbarWapper()+this._createFileIconWrapper("copy"),i.sort((function(e,t){return e[g]?-1:t[g]?1:0})),l+="<span class='k-multiple-files-wrapper'>",n=0;n<i.length;n++){var d=O([o=i[n]]);let e=t.htmlEncode(o.name,!0);l+="<span class='k-file-info'>",o[g]&&o[g].length>0?l+="<span class='k-file-name k-file-name-invalid' title='"+e+"'>"+e+"</span>":l+="<span class='k-file-name' title='"+e+"'>"+e+"</span>",l+="<span class='k-file-size'>"+d+"</span></span>"}return l+=r?"<span class='k-file-validation-message' aria-live='polite'>"+t.htmlEncode(this.localization.invalidFiles)+"</span>":"<span class='k-file-summary'>Total: "+i.length+" files, "+s+"</span>",e(l+="</span><span class='k-upload-actions'></span></div>")},_enqueueFile:function(a,n){var o,i,r,s,l,d,p=this,u=n.fileNames[0].uid,c=e(".k-upload-files",p.wrapper),f=p.options.template,h=f?".k-progress":E;return 0===c.length&&(c=e("<ul class='k-upload-files'></ul>").appendTo(p.wrapper),p.options.showFileList||c.hide(),p.wrapper.removeClass("k-upload-empty")),o=e(".k-file",c),f?(r=p._prepareTemplateData(a,n),f=t.template(f),(i=e("<li class='k-file'>"+f(r)+"</li>")).find(".k-upload-action").addClass("k-button k-icon-button k-button-md k-rounded-md k-button-flat k-button-flat-base")):i=1===n.fileNames.length?p._prepareDefaultSingleFileEntryTemplate(n):p._prepareDefaultMultipleFileEntriesTemplate(n),(d=(l=e(h,i[0])).length>0)&&p._progressbarInit(l),i.attr(t.attr("uid"),u).appendTo(c).data(n),!p._async&&d&&l.data("kendoProgressBar").value(100),!p.multiple&&o.length>0&&(s={files:o.data("fileNames"),headers:{}},p.trigger(v,s)||p._module.onRemove({target:e(o,p.wrapper)},s)),i},_removeFileEntry:function(t){var a,n=this,o=t.closest(".k-upload-files");t.remove(),a=e(".k-file",o),e(".k-file-success, .k-file-error",o).length===a.length&&this._hideActionButtons(),0===a.length?(o.remove(),n.wrapper.addClass("k-upload-empty"),n._hideHeaderUploadstatus()):n._updateHeaderUploadStatus()},_fileAction:function(a,n,o){var i,r={remove:"x",cancel:"cancel",retry:"arrow-rotate-cw-small",pause:"pause-sm"};let s=t.htmlEncode(this.localization[n]);if(r.hasOwnProperty(n))if(o||this._clearFileAction(a),this.options.template)if((i=a.find(".k-upload-action").first()).find(".k-icon,.k-svg-icon").length){if(i.next(".k-upload-action").length){let a=t.ui.icon(e(`<span title="${s}" aria-label="${s}"></span>`),{icon:r[n],iconClass:"k-button-icon"+("retry"==n?" k-i-retry":"")});i.next(".k-upload-action").addClass("k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-icon-button").append(a).show()}}else{let a=t.ui.icon(e(`<span title="${s}" aria-label="${s}"></span>`),{icon:r[n],iconClass:"k-button-icon"+("retry"==n?" k-i-retry":"")});i.addClass("k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-icon-button").append(a).show()}else o||a.find(".k-upload-action").remove(),a.find(".k-upload-actions").append(this._renderAction(r[n],s,"retry"==n?"k-i-retry":""))},_fileState:function(a,n){var o=this.localization,i={uploading:{text:o.statusUploading},uploaded:{text:o.statusUploaded},failed:{text:o.statusFailed}}[n];i&&e("span.k-file-state",a).text(t.htmlEncode(i.text))},_renderAction:function(a,n,o){return""!==a?e("<button type='button' class='k-button k-icon-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-upload-action' aria-hidden='true' aria-label='"+n+"' tabindex='-1'>"+t.ui.icon(e(`<span title="${n}"></span>`),{icon:a,iconClass:"k-button-icon"+(o?` ${o}`:"")})+"</button>").on("focus",(function(){e(this).addClass(b)})).on("blur",(function(){e(this).removeClass(b)})):e("<button type='button' class='k-button k-button-md k-rounded-md k-button-solid k-button-solid-base'><span class=\"k-button-text\">"+n+"</span></button>")},_clearFileAction:function(t){e(".k-upload-action",t).empty().hide()},_onFileAction:function(t){var a=this;if(!a.wrapper.hasClass("k-disabled")){var n=e(t.target).closest(".k-upload-action"),o=n.find(".k-icon,.k-svg-icon"),i=n.closest(".k-file"),r=i.data("fileNames"),s=a._filesContainValidationErrors(r),l={files:r,headers:{}};a._retryClicked=!1,o.is(".k-i-x,.k-svg-i-x")?a.trigger(v,l)||(a._module.onRemove({target:e(i,a.wrapper)},l,!s),a.wrapper.find(".k-upload-button").trigger("focus")):o.is(".k-i-cancel,.k-svg-i-cancel")?(a.trigger(c,l),a._module.onCancel({target:e(i,a.wrapper)}),a._checkAllComplete(),a._updateHeaderUploadStatus(),a.wrapper.find(".k-upload-button").trigger("focus")):o.is(".k-i-pause-sm,.k-svg-i-pause-sm")?(a.trigger(h,l),a.pause(i),a._updateHeaderUploadStatus()):o.is(".k-i-play-sm,.k-svg-i-play-sm")?(a.trigger(m,l),a.resume(i)):o.hasClass("k-i-retry")&&(e(".k-i-exclamation-circle",i).remove(),e(E,i).finish().show(),a._module.onRetry({target:e(i,a.wrapper)}),a._retryClicked=!0),i.addClass(b)}return!1},_onUploadSelected:function(){return this.wrapper.hasClass("k-disabled")||this._module.onSaveSelected(),!1},_onClearSelected:function(){var e=this;return e.wrapper.hasClass("k-disabled")||e.trigger(f,{})||e.clearAllFiles(),!1},_onFileProgress:function(t,a){var n=e(E,t.target).data("kendoProgressBar");a>100&&(a=100),e(E,t.target).removeClass("k-hidden"),this.options.template||(0===e(".k-upload-pct",t.target).length&&e(".k-upload-actions",t.target).prepend("<span class='k-upload-pct'></span>"),100!==a?e(".k-upload-pct",t.target).text(a+"%"):e(".k-upload-pct",t.target).remove()),n&&n.value(a),this.trigger(k,{files:G(t).data("fileNames"),percentComplete:a})},_onUploadSuccess:function(e,a,n){var o=this,i=G(e),r=i.data("fileNames"),s=i.find(".k-file-summary"),l=i.find(".k-file-size");o.trigger(d,{files:i.data("fileNames"),response:a,operation:"upload",XMLHttpRequest:n})?o._setUploadErrorState(i):(o._fileState(i,"uploaded"),i.removeClass("k-file-progress").addClass("k-file-success"),s.length>0?s.addClass("k-hidden").after('<span class="k-file-validation-message" aria-live="polite">'+r.length+" "+t.htmlEncode(o.localization.uploadSuccess)+"</span>"):l.length>0&&l.addClass("k-hidden").after('<span class="k-file-validation-message" aria-live="polite">'+t.htmlEncode(o.localization.uploadSuccess)+"</span>"),o._updateHeaderUploadStatus(),o._supportsRemove()?o._fileAction(i,v):o._clearFileAction(i)),o._hideUploadProgress(i),o._checkAllComplete()},_onUploadError:function(e,t){var a=this,n=a._module,i=G(e),r=i.data("uid");a._setUploadErrorState(i),a.trigger(p,{operation:"upload",files:i.data("fileNames"),XMLHttpRequest:t}),o("Server response: "+t.responseText),a.options.async.chunkSize?n._decreasePosition&&n._decreasePosition(r):a._hideUploadProgress(i),a._checkAllComplete(),this.options.async.autoRetryAfter&&this._autoRetryAfter(i)},_autoRetryAfter:function(e){var t=this,a=this._module.retries;a&&(a[e.data("uid")]||(a[e.data("uid")]=1),a[e.data("uid")]<=this.options.async.maxAutoRetries&&(a[e.data("uid")]++,setTimeout((function(){t._module.performUpload(e)}),this.options.async.autoRetryAfter)))},_setUploadErrorState:function(a){var n,o=this,i=a.data("fileNames"),r=a.find(".k-file-summary"),s=a.find(".k-file-size");o._fileState(a,"failed"),a.removeClass("k-file-progress").addClass("k-file-error"),r.length>0?r.addClass("k-hidden").after('<span class="k-file-validation-message" aria-live="polite">'+i.length+" "+t.htmlEncode(o.localization.uploadFail)+"</span>"):s.length>0&&s.addClass("k-hidden").after('<span class="k-file-validation-message" aria-live="polite">'+t.htmlEncode(o.localization.uploadFail)+"</span>"),o._updateUploadProgress(a),(n=e(".k-upload-pct",a)).length>0&&n.remove(),this._updateHeaderUploadStatus(),this._fileAction(a,"retry"),this._fileAction(a,v,!0),o._retryClicked&&a.trigger("focus")},_updateUploadProgress:function(t){var a=this,n=e(E,t),o=n.length>0;if(!a.options.async.chunkSize&&o)n.data("kendoProgressBar").value(100);else{var i=t.data("uid");if(a._module.metaData){var r=a._module.metaData[i];if(r){var s=r.totalChunks?Math.round(r.chunkIndex/r.totalChunks*100):100;a._onFileProgress({target:e(t,a.wrapper)},s)}}}},_hideUploadProgress:function(t){e(E,t).delay(1e3).fadeOut(2e3,(function(){e(this).data("kendoProgressBar")&&e(this).data("kendoProgressBar").value(0)}))},_showActionButtons:function(){var a=this,n=e(".k-actions",a.wrapper),o=e(".k-upload-selected",a.wrapper),i=e(".k-clear-selected",a.wrapper);0===o.length&&(o=e(t.html.renderButton(`<button class='k-upload-selected'>${t.htmlEncode(this.localization.uploadSelectedFiles)}</button>`,{icon:"upload",themeColor:"primary"})),i=e(t.html.renderButton(`<button class='k-clear-selected'>${t.htmlEncode(this.localization.clearSelectedFiles)}</button>`,{icon:"x"}))),n.length||(n=e("<div />").addClass("k-actions").append(o,i)),this.wrapper.append(n)},_hideActionButtons:function(){e(".k-actions",this.wrapper).remove()},_showHeaderUploadStatus:function(a){var n=this,o=n.localization,i=e(".k-dropzone",n.wrapper),r=e(".k-upload-status",n.wrapper);0!==r.length&&r.remove(),e(".k-dropzone-hint",n.wrapper).addClass("k-hidden"),r='<span class="k-upload-status"><span class="k-icon"></span></span>',a?(r=e(r).append(t.htmlEncode(o.headerStatusUploading)),t.ui.icon(r.find(".k-icon,.k-svg-icon"),{icon:U})):(r=e(r).append(t.htmlEncode(o.headerStatusUploaded)),t.ui.icon(r.find(".k-icon,.k-svg-icon"),{icon:z})),i.length>0?i.append(r):e(".k-upload-button",n.wrapper).after(r)},_updateHeaderUploadStatus:function(){var a,n=this,o=e(".k-upload-status",this.wrapper),i=e(".k-file",n.wrapper).not(".k-file-success, .k-file-error"),r=e(".k-file-error",n.wrapper),s=e(".k-file",n.wrapper).find(".k-i-play-sm,.k-svg-i-play-sm");!s.length||s.length!==i.length&&n.options.async.concurrent?(0===i.length||r.length>0)&&(o=e(".k-upload-status",n.wrapper),(a=e(".k-icon,.k-svg-icon",o).removeClass()).length&&(t.ui.icon(a,{icon:0!==r.length?z:x}),o.html(a).append(t.htmlEncode(n.localization.headerStatusUploaded)))):(a=e(".k-icon,.k-svg-icon",o).removeClass()).length&&(t.ui.icon(a,{icon:"pause-sm"}),o.html(a).append(t.htmlEncode(n.localization.headerStatusPaused)))},_hideHeaderUploadstatus:function(){var t=this.options.dropZone;e(".k-upload-status",this.wrapper).remove(),""===t&&e(".k-dropzone-hint",this.wrapper).removeClass("k-hidden")},_onParentFormSubmit:function(){var t=this.element;if(void 0!==this._module.onAbort&&this._module.onAbort(),!t.value){var a=e(t);a.attr("disabled","disabled"),window.setTimeout((function(){a.prop("disabled",!1)}),0)}},_onParentFormReset:function(){e(".k-upload-files",this.wrapper).remove()},_supportsFormData:function(){return"undefined"!=typeof FormData},_supportsMultiple:function(){var e=this._userAgent().indexOf("Windows")>-1;return!(t.support.browser.opera||t.support.browser.safari&&e)},_supportsDrop:function(){var e=this._userAgent().toLowerCase();return!(!/chrome/.test(e)&&/safari/.test(e)&&/windows/.test(e))&&this._supportsFormData()&&this.options.async.saveUrl},_userAgent:function(){return navigator.userAgent},_setupDropZone:function(){var a=this,n=a._ns,o=e(".k-dropzone",a.wrapper).on("dragenter"+n,V).on("dragover"+n,(function(e){e.originalEvent&&(e.originalEvent.dataTransfer.dropEffect="copy"),e.preventDefault()})).on("drop"+n,a._onDrop.bind(a));o.find(".k-dropzone-hint").length||o.append(e("<span class='k-dropzone-hint'>"+t.htmlEncode(a.localization.dropFilesHere)+"</span>")),$(o,n,(function(){o.closest(".k-upload").hasClass("k-disabled")||o.addClass(w)}),(function(){o.removeClass(w)})),a._bindDocumentDragEventWrappers(o)},_setupCustomDropZone:function(){var a=this,n=e(a.options.dropZone);a.wrapper.find(".k-dropzone-hint").length?e(".k-dropzone-hint",a.wrapper).addClass("k-hidden"):e(".k-dropzone",a.wrapper).append(e("<span class='k-dropzone-hint k-hidden'>"+t.htmlEncode(a.localization.dropFilesHere)+"</span>"));var o=a._ns;n.on("dragenter"+o,V).on("dragover"+o,(function(e){e.originalEvent&&(e.originalEvent.dataTransfer.dropEffect="copy"),e.preventDefault()})).on("drop"+o,a._onDrop.bind(a)),$(n,o,(function(t){a.wrapper.hasClass("k-disabled")||(n.removeClass(w),n.addClass(w),e(t.target).addClass(w))}),(function(){n.removeClass(w)})),a._bindDocumentDragEventWrappers(n)},_bindDocumentDragEventWrappers:function(t){var a=this,n=a._ns;$(e(document),n,(function(){a.wrapper.hasClass("k-disabled")||(t.addClass("k-dropzone-active"),t.closest(".k-upload").removeClass("k-upload-empty"),t.find(".k-dropzone-hint").removeClass("k-hidden"))}),(function(){t.removeClass("k-dropzone-active"),t.find(".k-dropzone-hint").addClass("k-hidden"),0===e("li.k-file",t.closest(".k-upload")).length&&t.closest(".k-upload").addClass("k-upload-empty")}))},_toggleDropZone:function(){var t=this,a=t.options.dropZone;t._supportsDrop()&&(e(a).off(t._ns),e(".k-dropzone",t.wrapper).off(t._ns),""!==a?t._setupCustomDropZone():t._setupDropZone())},_supportsRemove:function(){return!!this.options.async.removeUrl},_submitRemove:function(t,a,o,i){var r=this.options.async.removeField||"fileNames",s=e.extend(a.data,n());s[r]=t,jQuery.ajax({type:this.options.async.removeVerb,dataType:"json",dataFilter:K,url:this.options.async.removeUrl,traditional:!0,data:s,headers:a.headers,success:o,error:i,xhrFields:{withCredentials:this.options.async.withCredentials}})},_wrapInput:function(a){var n=this.options,o=!!a.attr("id")&&e("[for='"+a.attr("id")+"']").length>0,i=t.htmlEncode(this.localization.select),r=e("<div class='k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-upload-button' tabindex='0' role='button'><span class='k-button-text'></span></div>");return r.find(".k-button-text").text(i),a.wrap("<div class='k-upload' role='application'><div class='k-dropzone k-upload-dropzone'><div class='k-upload-button-wrap'></div></div></div>"),r.prependTo(a.parent()),n.async.saveUrl?a.closest(".k-upload").addClass("k-upload-async"):a.closest(".k-upload").addClass("k-upload-sync"),a.closest(".k-upload").addClass("k-upload-empty"),o||a.attr("aria-label")||a.attr("aria-label",i),a.attr({tabindex:-1,"aria-hidden":!0}),a.closest(".k-upload")},_checkAllComplete:function(){0===e(".k-file.k-file-progress",this.wrapper).length&&this.trigger(u)},_inputFiles:function(e){return I(e)}}),D=function(e){this.name="syncUploadModule",this.element=e.wrapper,this.upload=e,this.element.closest("form").attr("enctype","multipart/form-data").attr("encoding","multipart/form-data")};D.prototype={onSelect:function(t,a){var n=this.upload,o=e(t.target),i=n._filesContainValidationErrors(a);n._addInput(o);var r={fileNames:a};i?o.remove():r.relatedInput=o;var s=n._enqueueFile(T(o),r);i&&n._hideUploadProgress(s),n._fileAction(s,v)},onRemove:function(e){var t=G(e),a=t.data("relatedInput");a&&a.remove(),this.upload._removeFileEntry(t)}};var R=function(e){this.name="iframeUploadModule",this.element=e.wrapper,this.upload=e,this.iframes=[]};A._frameId=0,R.prototype={onSelect:function(t,a){var n=this.upload,o=e(t.target),i=n._filesContainValidationErrors(a),r=this.prepareUpload(o,a,i);n.options.async.autoUpload?i?(n._fileAction(r,v),n._showHeaderUploadStatus(!1)):this.performUpload(r):(n._fileAction(r,v),i?n._updateHeaderUploadStatus():n._showActionButtons()),i&&n._hideUploadProgress(r)},prepareUpload:function(t,a,n){var o,i,r,s,l=this.upload,d=e(l.element),p=l.options.async.saveField||t.attr("name");return l._addInput(t),t.attr("name",p),n?(t.remove(),i={fileNames:a}):(r=this.createFrame(l.name+"_"+A._frameId++),this.registerFrame(r),s=this.createForm(l.options.async.saveUrl,r.attr("name")).append(d),i={frame:r,relatedInput:d,fileNames:a}),o=l._enqueueFile(T(t),i),r&&r.data({form:s,file:o}),o},performUpload:function(t){var a={files:t.data("fileNames")},o=t.data("frame"),i=this.upload,r=t.find(".k-file-validation-message"),s=t.find(".k-file-summary"),d=t.find(".k-file-size");if(i.trigger(l,a))i._removeFileEntry(o.data("file")),this.cleanupFrame(o),this.unregisterFrame(o);else{i._hideActionButtons(),i._showHeaderUploadStatus(!0),o.appendTo(document.body);var p=o.data("form").attr("action",i.options.async.saveUrl).appendTo(document.body);for(var u in a.data=e.extend({},a.data,n()),a.data){var f=p.find("input[name='"+u+"']");0===f.length&&(f=e("<input>",{type:"hidden",name:u}).prependTo(p)),f.val(a.data[u])}i._fileAction(t,c),i._fileState(t,"uploading"),e(t).removeClass("k-file-error").addClass("k-file-progress"),r.length>0&&r.remove(),s.length>0?s.removeClass("k-hidden"):d.length>0&&d.removeClass("k-hidden"),o.one("load",this.onIframeLoad.bind(this)),p[0].submit()}},onSaveSelected:function(){var t=this,a=t.upload;e(".k-file",this.element).each((function(){var n=e(this),o=X(n),i=a._filesContainValidationErrors(n.data("fileNames"));o||i||t.performUpload(n)}))},onIframeLoad:function(t){var a,n=e(t.target);try{a=n.contents().text()}catch(e){a="Error trying to get server response: "+e}this.processResponse(n,a)},processResponse:function(t,a){var n=t.data("file"),o=this,i={responseText:a};Z(a,(function(a){e.extend(i,{statusText:"OK",status:"200"}),o.upload._onFileProgress({target:e(n,o.upload.wrapper)},100),o.upload._onUploadSuccess({target:e(n,o.upload.wrapper)},a,i),o.cleanupFrame(t),o.unregisterFrame(t)}),(function(){e.extend(i,{statusText:"error",status:"500"}),o.upload._onUploadError({target:e(n,o.upload.wrapper)},i)}))},onCancel:function(t){var a=e(t.target).data("frame");this.stopFrameSubmit(a),this.cleanupFrame(a),this.unregisterFrame(a),this.upload._removeFileEntry(a.data("file"))},onRetry:function(e){var t=G(e);this.performUpload(t)},onRemove:function(e,t,a){var n=this,o=n.upload,i=G(e),r=i.data("frame");r?(n.unregisterFrame(r),o._removeFileEntry(i),n.cleanupFrame(r)):i.hasClass("k-file-success")?W(i,o,t,a):o._removeFileEntry(i)},onAbort:function(){var t=this.element,a=this;e.each(this.iframes,(function(){e("input",this.data("form")).appendTo(t),a.stopFrameSubmit(this[0]),this.data("form").remove(),this.remove()})),this.iframes=[]},createFrame:function(t){return e("<iframe name='"+t+"' id='"+t+"' />").hide()},createForm:function(t,a){return e("<form enctype='multipart/form-data' method='POST' action='"+t+"' target='"+a+"'/>")},stopFrameSubmit:function(e){void 0!==e.stop?e.stop():e.document&&e.document.execCommand("Stop")},registerFrame:function(e){this.iframes.push(e)},unregisterFrame:function(t){this.iframes=e.grep(this.iframes,(function(e){return e.attr("name")!=t.attr("name")}))},cleanupFrame:function(e){var t=e.data("form");e.data("file").data("frame",null),setTimeout((function(){t.remove(),e.remove()}),1)}};var P=function(e){this.name="formDataUploadModule",this.element=e.wrapper,this.upload=e,this.position={},this.metaData={},this.cancelled={},this.resume={},this.paused={},this.retries={}};function T(t){return e.map(I(t),(function(e){return e.name})).join(", ")}function I(e){var t,a,n=e[0];return n.files?B(n.files):[{name:(t=n.value,a=t.lastIndexOf("\\"),-1!=a?t.substr(a+1):t),extension:N(n.value),size:null}]}function B(a){return e.map(a,(function(e){return n=(a=e).name||a.fileName,{name:t.htmlEncode(n),extension:N(n),size:"number"==typeof a.size?a.size:a.fileSize,rawFile:a};var a,n}))}function N(e){var t=e.match(i);return t?t[0]:""}function H(a,n){var o=t.guid();return e.map(a,(function(e){return e.uid=n?t.guid():o,e}))}function q(t,a){for(var n=function(t){var a=e.map(t,(function(e){return("."===e.substring(0,1)?e:"."+e).toLowerCase()}));return a}(a.allowedExtensions),o=a.maxFileSize,i=a.minFileSize,r=0;r<t.length;r++)M(t[r],n),L(t[r],i,o)}function M(t,a){a.length>0&&a.indexOf(t.extension.toLowerCase())<0&&(t.validationErrors=t.validationErrors||[],-1===e.inArray(F,t.validationErrors)&&t.validationErrors.push(F))}function L(t,a,n){0!==a&&t.size<a&&(t.validationErrors=t.validationErrors||[],-1===e.inArray(y,t.validationErrors)&&t.validationErrors.push(y)),0!==n&&t.size>n&&(t.validationErrors=t.validationErrors||[],-1===e.inArray(_,t.validationErrors)&&t.validationErrors.push(_))}function O(e){var t=0;if("number"!=typeof e[0].size)return"";for(var a=0;a<e.length;a++)e[a].size&&(t+=e[a].size);return(t/=1024)<1024?t.toFixed(2)+" KB":(t/1024).toFixed(2)+" MB"}function j(t){return!t.multiple&&e(".k-file",t.wrapper).length>1}function W(t,a,n,i){if(a._supportsRemove()){var r=t.data("fileNames"),s=e.map(r,(function(e){return e.name}));!1!==i?a._submitRemove(s,n,(function(e,n,o){a.trigger(d,{operation:"remove",files:r,response:e,XMLHttpRequest:o})||a._removeFileEntry(t)}),(function(e){j(a)&&a._removeFileEntry(t),a.trigger(p,{operation:"remove",files:r,XMLHttpRequest:e}),o("Server response: "+e.responseText)})):a._removeFileEntry(t)}else!j(a)&&i||a._removeFileEntry(t)}function Z(e,t,a){var n=!1,o="";try{o=JSON.parse(K(e)),n=!0}catch(e){a()}n&&t(o)}function K(e){return void 0!==e&&""!==e||(e="{}"),e}function V(e){e.originalEvent&&(e.originalEvent.dataTransfer.dropEffect="copy"),e.stopPropagation(),e.preventDefault()}function $(e,t,a,n){var o,i;e.on("dragenter"+t,(function(e){a(e),i=new Date,o||(o=setInterval((function(){new Date-i>100&&(n(),clearInterval(o),o=null)}),100))})).on("dragover"+t,(function(){i=new Date}))}function X(e){return e.is(".k-file-progress, .k-file-success, .k-file-error:not(.k-file-invalid)")}function G(t){return e(t.target).closest(".k-file")}P.prototype={onSelect:function(t,a){var n,o,i=this.upload,r=this,s=e(t.target),l=this.prepareUpload(s,a);e.each(l,(function(t){n=i._filesContainValidationErrors(e(this.data("fileNames"))),i.options.async.autoUpload?n?(i._fileAction(this,v),i._showHeaderUploadStatus(!1)):i.options.async.chunkSize?(r.prepareChunk(this),o=this.prev(),(i.options.async.concurrent||0===t&&!o.length||0===t&&o.hasClass("k-file-success"))&&r.performUpload(this)):r.performUpload(this):(i._fileAction(this,v),n?i._updateHeaderUploadStatus():(i._showActionButtons(),this.addClass("k-toupload"))),n&&i._hideUploadProgress(this)}))},prepareUpload:function(t,a){var n=this.enqueueFiles(a);return t.is("input")&&(e.each(n,(function(){e(this).data("relatedInput",t)})),t.data("relatedFileEntries",n),this.upload._addInput(t)),n},enqueueFiles:function(t){var a,n,o,i,r=this.upload,s=t.length,l=[];if(!0===r.options.async.batch)a=e.map(t,(function(e){return e.name})).join(", "),(r.directory||r.options.directoryDrop)&&e(t).each((function(){(this.rawFile.webkitRelativePath||this.rawFile.relativePath)&&(this.name=this.rawFile.webkitRelativePath||this.rawFile.relativePath)})),(i=r._enqueueFile(a,{fileNames:t})).data("files",t),l.push(i);else for(n=0;n<s;n++)a=(o=t[n]).name,(r.directory||r.options.directoryDrop)&&(o.rawFile.webkitRelativePath||o.rawFile.relativePath)&&(o.name=o.rawFile.webkitRelativePath||o.rawFile.relativePath),(i=r._enqueueFile(a,{fileNames:[o]})).data("files",[o]),l.push(i);return l},performUpload:function(t){var a,o=this.upload,i=this.createFormData(),r=this.createXHR(),s={files:t.data("fileNames"),XMLHttpRequest:r},d=t.find(".k-file-validation-message"),p=t.find(".k-file-summary"),u=t.find(".k-file-size");if(o.trigger(l,s))this.removeFileEntry(t);else{if(0===t.find(".k-i-cancel,.k-svg-i-cancel").length&&(o.options.async.chunkSize&&o._fileAction(t,h),o._fileAction(t,c,o.options.async.chunkSize)),o.wrapper.find(".k-toupload").length||o._hideActionButtons(),o._showHeaderUploadStatus(!0),s.formData)i=s.formData;else{for(var f in s.data=e.extend({},s.data,n()),s.data)i.append(f,s.data[f]);(a=t.data("files"))&&this.populateFormData(i,a)}o._fileState(t,"uploading"),e(t).removeClass("k-file-error").addClass("k-file-progress"),d.length>0&&d.remove(),p.length>0?p.removeClass("k-hidden"):u.length>0&&u.removeClass("k-hidden"),o.options.async.useArrayBuffer&&window.FileReader?this._readFile(o.options.async.saveUrl,i,t,r):this.postFormData(o.options.async.saveUrl,i,t,r)}},_readFile:function(t,a,n,o){var i=this,r=i.upload,s=n.data("files")[0],l=new FileReader;l.onload=function(l){try{i.fileArrayBuffer?i.fileArrayBuffer=i._appendBuffer(i.fileArrayBuffer,l.target.result):i.fileArrayBuffer=l.target.result}catch(t){return void r._onUploadError({target:e(n,r.wrapper)},o)}i.position[s.uid]>s.size?(i.postFormData(r.options.async.saveUrl,i.fileArrayBuffer,n,o),i.fileArrayBuffer=null):i._readFile(t,a,n,o)},l.onerror=function(){r._onUploadError({target:e(n,r.wrapper)},o)},l.readAsArrayBuffer(i._getCurrentChunk(s.rawFile,s.uid))},_appendBuffer:function(e,t){var a=new Uint8Array(e.byteLength+t.byteLength);return a.set(new Uint8Array(e),0),a.set(new Uint8Array(t),e.byteLength),a.buffer},onSaveSelected:function(){var t=this,a=t.upload;e(".k-toupload",this.element).filter((function(){var t=e(this),n=X(t),o=a._filesContainValidationErrors(t.data("fileNames"));return!n&&!o})).each((function(n){var o=e(this),i=o.prev();o.removeClass("k-toupload"),a.options.async.chunkSize?(t.prepareChunk(o),(a.options.async.concurrent||0===n&&!i.length||0===n&&i.hasClass("k-file-success")||i.hasClass("k-file-error:not(k-file-invalid)"))&&t.performUpload(o)):t.performUpload(o)}))},onCancel:function(e){var t=G(e);this.upload.options.async.chunkSize&&(this.cancelled[t.data("uid")]=!0),this.stopUploadRequest(t),this.removeFileEntry(t)},onPause:function(e){var t=G(e).data("uid"),a=this.upload.options.async;a.chunkSize&&(this.retries[t]=a.maxAutoRetries+1,this.paused[t]=!0,this.resume[t]=!1)},onResume:function(e){var t=G(e),a=t.data("uid");this.upload.options.async.chunkSize&&(delete this.paused[a],this.resume[a]=!0,this.retries[t.data("uid")]=1,this._increaseChunkIndex(a),this.performUpload(t))},onRetry:function(e){var t=G(e),a=this.upload.options.async;a.chunkSize&&(this.retries[t.data("uid")]=a.maxAutoRetries+1,delete this.paused[t.data("uid")]),this.performUpload(t)},onRemove:function(e,t,a){var n=this.upload,o=G(e),i=this.upload.options.async;i.chunkSize&&(this.retries[o.data("uid")]=i.maxAutoRetries+1),o.hasClass("k-file-success")?W(o,n,t,a):this.removeFileEntry(o)},createXHR:function(){return new XMLHttpRequest},postFormData:function(e,t,a,n){var o=this;a.data("request",n),n.addEventListener("load",(function(e){o.onRequestSuccess.call(o,e,a)}),!1),n.addEventListener(p,(function(e){o.onRequestError.call(o,e,a)}),!1),n.upload.addEventListener("progress",(function(e){o.onRequestProgress.call(o,e,a)}),!1),n.open("POST",e,!0),n.withCredentials=this.upload.options.async.withCredentials;var i=this.upload.options.async.accept;i&&n.setRequestHeader("Accept",i),n.send(t)},createFormData:function(){return new FormData},populateFormData:function(e,t){var a,n,o,i=t.length,r=this.upload;if(r.options.async.chunkSize){o=t[0].uid,a=this._getCurrentChunk(t[0].rawFile,o),e.append(r.options.async.saveField||r.name,a);var s=JSON.stringify(this.metaData[o]);e.append("metadata",s)}else for(n=0;n<i;n++)e.append(r.options.async.saveField||r.name,t[n].rawFile);return e},onRequestSuccess:function(t,a){var n=t.target,o=this;function i(){o.upload._onUploadError({target:e(a,o.upload.wrapper)},n)}n.status>=200&&n.status<=299?Z(n.responseText,(function(t){var i=o.upload.options.async.batch,r=o.upload.options.async.chunkSize,s=o.upload.options.async.concurrent,l=t.fileUid;o.paused[l]||o.cancelled[l]||(delete o.retries[l],!r||i||t.uploaded?!r||i||s||!a.next().length||a.next().hasClass("k-toupload")?(o.upload._onFileProgress({target:e(a,o.upload.wrapper)},100),o.upload._onUploadSuccess({target:e(a,o.upload.wrapper)},t,n),o.cleanupFileEntry(a)):(o.upload._onFileProgress({target:e(a,o.upload.wrapper)},100),o._resetChunkIndex(l),o.upload._onUploadSuccess({target:e(a,o.upload.wrapper)},t,n),o.performUpload(a.next())):(o._increaseChunkIndex(l),o.performUpload(a)))}),i):i()},onRequestError:function(t,a){var n=t.target;this.upload._onUploadError({target:e(a,this.upload.wrapper)},n)},cleanupFileEntry:function(t){var a=t.data("relatedInput"),n=!0;a&&(e.each(a.data("relatedFileEntries")||[],(function(){this.parent().length>0&&this[0]!=t[0]&&(n=n&&this.hasClass("k-file-success"))})),n&&a.remove())},removeFileEntry:function(e){var t=this.upload.options.async.chunkSize,a=this.upload.options.async.concurrent,n=this.upload.wrapper.find(".k-upload-selected").length>0;this.cleanupFileEntry(e),!t||a||n||e.next().length&&this.performUpload(e.next()),this.upload._removeFileEntry(e)},onRequestProgress:function(t,a){var n,o=Math.round(100*t.loaded/t.total),i=a.data("uid");this.upload.options.async.chunkSize&&(o=(n=this.metaData[i])&&n.totalChunks?Math.round(n.chunkIndex/n.totalChunks*100):100),this.upload._onFileProgress({target:e(a,this.upload.wrapper)},o)},stopUploadRequest:function(e){e.data("request")&&e.data("request").abort()},prepareChunk:function(e){var t=e.data("files")[0],a=t.rawFile,n=t.uid,o=this.upload.options.async.chunkSize;this.position[n]=0,this.metaData[n]={chunkIndex:0,contentType:a.type,fileName:a.name,relativePath:t.name,totalFileSize:a.size,totalChunks:Math.ceil(a.size/o),uploadUid:n}},_decreaseChunkIndex:function(e){this.metaData[e].chunkIndex--},_increaseChunkIndex:function(e){this.metaData[e].chunkIndex++},_resetChunkIndex:function(e){this.metaData[e].chunkIndex=0},_decreasePosition:function(e){this.position[e]-=this.upload.options.async.chunkSize},_getCurrentChunk:function(e,t){var a,n=this.position[t],o=this.upload.options.async,i=o.chunkSize||o.bufferChunkSize;return this.position[t]||(this.position[t]=0),this.position[t]+=i,(a=this._getChunker(e))?e[a](n,this.position[t]):e},_getChunker:function(e){return e.slice?"slice":e.mozSlice?"mozSlice":e.webkitSlice?"webkitSlice":null}},t.ui.plugin(A)}(window.kendo.jQuery);var t=kendo;e.__meta__={id:"upload",name:"Upload",category:"web",description:"The Upload widget uses progressive enhancement to deliver the best possible uploading experience to users.",depends:["core","progressbar","icons","html.button"]},e.default=t,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=kendo.upload.min.js.map