vue-transmit
Advanced tools
Comparing version 9.0.0-alpha.7 to 9.0.0-alpha.8
@@ -5,2 +5,12 @@ # Change Log | ||
<a name="9.0.0-alpha.8"></a> | ||
# [9.0.0-alpha.8](https://github.com/alexsasharegan/vue-transmit/compare/v9.0.0-alpha.7...v9.0.0-alpha.8) (2018-02-22) | ||
### Features | ||
* **esm:** adds default export for esm build only ([4826819](https://github.com/alexsasharegan/vue-transmit/commit/4826819)) | ||
<a name="9.0.0-alpha.7"></a> | ||
@@ -7,0 +17,0 @@ # [9.0.0-alpha.7](https://github.com/alexsasharegan/vue-transmit/compare/v9.0.0-alpha.6...v9.0.0-alpha.7) (2018-02-17) |
@@ -6,1 +6,2 @@ import { PluginObject } from "vue"; | ||
export { VueTransmitPlugin, VueTransmit, XHRUploadAdapter }; | ||
export default VueTransmitPlugin; |
@@ -1285,3 +1285,4 @@ import Vue from 'vue'; | ||
export default VueTransmitPlugin; | ||
export { VueTransmitPlugin, VueTransmit, XHRUploadAdapter }; | ||
//# sourceMappingURL=vue-transmit.esm.js.map |
@@ -1,2 +0,2 @@ | ||
import Vue from"vue";var UploadStatuses,ErrType,VTransmitEvents,idCounter=0;function uniqueId(e){return e+ ++idCounter}function round(e,t){void 0===t&&(t=2);var i=Math.pow(10,t);return Math.round(e*i)/i}function fromBytesToKbit(e){return e/125}function fromBytesToMbit(e){return e/125e3}function toKbps(e,t){return fromBytesToKbit(e)/t}function toMbps(e,t){return fromBytesToMbit(e)/t}function objFactory(){return{}}function noop(){}function scaleH(e,t){return t/e}function scaleW(e,t){return t*e}function expectNever(e,t){throw new Error(t)}function resizeImg(e,t){var i,s,r=e.width/e.height,a=t.width/t.height,n={sx:0,sy:0,sWidth:e.width,sHeight:e.height,dx:0,dy:0,dWidth:t.width,dHeight:t.height};return a>r?(i=e.width,s=scaleH(a,e.width)):(i=scaleW(a,e.height),s=e.height),i<e.width&&(n.sx=(e.width-i)/2,n.sWidth=i),s<e.height&&(n.sy=(e.height-s)/2,n.sHeight=s),n}function webkitIsFile(e){return e.isFile}function webkitIsDir(e){return e.isDirectory}!function(e){e.None="",e.Added="added",e.Queued="queued",e.Accepted="queued",e.Uploading="uploading",e.Canceled="canceled",e.Error="error",e.Timeout="timeout",e.Success="success"}(UploadStatuses||(UploadStatuses={})),function(e){e[e.Any=0]="Any",e[e.Timeout=1]="Timeout"}(ErrType||(ErrType={})),function(e){e.Initialize="initialize",e.AddedFile="added-file",e.AddedFiles="added-files",e.RemovedFile="removed-file",e.AcceptedFile="accepted-file",e.RejectedFile="rejected-file",e.AcceptComplete="accept-complete",e.Thumbnail="thumbnail",e.Processing="processing",e.ProcessingMultiple="processing-multiple",e.Canceled="canceled",e.CanceledMultiple="canceled-multiple",e.Sending="sending",e.SendingMultiple="sending-multiple",e.Timeout="timeout",e.TimeoutMultiple="timeout-multiple",e.UploadProgress="upload-progress",e.TotalUploadProgress="total-upload-progress",e.Success="success",e.SuccessMultiple="success-multiple",e.QueueComplete="queue-complete",e.Complete="complete",e.CompleteMultiple="complete-multiple",e.Error="error",e.ErrorMultiple="error-multiple",e.MaxFilesReached="max-files-reached",e.MaxFilesExceeded="max-files-exceeded",e.Reset="reset",e.DragOver="drag-over",e.DragEnter="drag-enter",e.DragLeave="drag-leave",e.DragEnd="drag-end",e.Drop="drop",e.Paste="paste"}(VTransmitEvents||(VTransmitEvents={}));var VTransmitFile=function(){function e(t){this._dataUrl="",this.id=e.idFactory(),this.status=UploadStatuses.None,this.accepted=!1,this.processing=!1,this.width=0,this.height=0,this.errorMessage="",this.adapterData={},this.upload={bytesSent:0,progress:0,total:0,speed:{kbps:0,mbps:0},start:0,end:0,time:0},this.nativeFile=t,this.lastModified=t.lastModified,this.lastModifiedDate=t.lastModifiedDate,this.name=t.name,this.size=t.size,this.type=t.type,this.webkitRelativePath=t.webkitRelativePath,this.upload.total=t.size}return e.prototype.handleProgress=function(e){this.startProgress();var t=e.total||this.upload.total;this.upload.progress=Math.min(100,100*e.loaded/t),this.upload.bytesSent=e.loaded,this.upload.total=t,this.upload.time=(Date.now()-this.upload.start)/1e3,this.upload.speed.kbps=round(toKbps(this.upload.bytesSent,this.upload.time)),this.upload.speed.mbps=round(toMbps(this.upload.bytesSent,this.upload.time)),100===this.upload.progress&&this.endProgress()},e.prototype.startProgress=function(){return this.upload.start||(this.upload.start=Date.now()),this},e.prototype.endProgress=function(){return this.upload.end||(this.upload.end=Date.now(),this.upload.time=(Date.now()-this.upload.start)/1e3),this},Object.defineProperty(e.prototype,"dataUrl",{get:function(){return this._dataUrl||""},set:function(e){Object.defineProperty(this,"_dataUrl",{value:e,enumerable:!1,configurable:!0,writable:!0})},enumerable:!0,configurable:!0}),e.idFactory=function(){return uniqueId("vt_")},e}(),VTransmitUploadContext=function(){function e(e){this.vtransmit=e,this.Statuses=UploadStatuses,this.props=e.$props}return e.prototype.emit=function(e){for(var t,i=[],s=1;s<arguments.length;s++)i[s-1]=arguments[s];(t=this.vtransmit).$emit.apply(t,[e].concat(i))},Object.defineProperty(e.prototype,"acceptedFiles",{get:function(){return this.vtransmit.acceptedFiles},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rejectedFiles",{get:function(){return this.vtransmit.rejectedFiles},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"addedFiles",{get:function(){return this.vtransmit.addedFiles},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"queuedFiles",{get:function(){return this.vtransmit.queuedFiles},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"uploadingFiles",{get:function(){return this.vtransmit.uploadingFiles},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"activeFiles",{get:function(){return this.vtransmit.activeFiles},enumerable:!0,configurable:!0}),e}(),group_id=0,XHRUploadAdapter=function(){function e(e,t){this.uploadGroups=Object.create(null);var i=t.url,s=t.method,r=void 0===s?"post":s,a=t.withCredentials,n=void 0!==a&&a,o=t.timeout,l=void 0===o?0:o,u=t.paramName,d=void 0===u?"file":u,p=t.params,c=void 0===p?Object.create(null):p,h=t.headers,m=void 0===h?{Accept:"application/json","Cache-Control":"no-cache","X-Requested-With":"XMLHttpRequest"}:h,f=t.responseType,g=void 0===f?"json":f,v=t.responseParseFunc,F=t.errUploadError,y=void 0===F?function(e){return"Error during upload: "+e.statusText+" ["+e.status+"]"}:F,T=t.errUploadTimeout,b=void 0===T?function(e){return"Error during upload: the server timed out."}:T,E=t.renameFile,S=void 0===E?function(e){return e}:E;this.context=e,this.url=i,this.method=r,this.withCredentials=n,this.timeout=l,this.paramName=d,this.params=c,this.headers=m,this.responseType=g,this.responseParseFunc=v,this.errUploadError=y,this.errUploadTimeout=b,this.renameFile=S}return e.prototype.uploadFiles=function(e){var t=this;return new Promise(function(i){if(!t.url)return i({ok:!1,err:{type:ErrType.Any,message:"Missing upload URL.",data:t.url}});var s=new XMLHttpRequest,r=t.handleUploadProgress(e),a=group_id++;t.uploadGroups[a]={id:a,xhr:s,files:e};for(var n=0,o=e;n<o.length;n++){(m=o[n]).adapterData.groupID=a,m.startProgress()}s.open(t.method,t.url,!0),s.timeout=t.timeout,s.withCredentials=Boolean(t.withCredentials),s.responseType=t.responseType,s.addEventListener("error",function(){t.rmGroup(a),i({ok:!1,err:{type:ErrType.Any,message:t.errUploadError(s),data:s}})}),s.upload.addEventListener("progress",r),s.addEventListener("timeout",function(){t.rmGroup(a),i({ok:!1,err:{type:ErrType.Timeout,message:t.errUploadTimeout(s),data:s}})}),s.addEventListener("load",function(n){if(e[0].status!==UploadStatuses.Canceled&&s.readyState===XMLHttpRequest.DONE){var o;if(t.rmGroup(a),t.responseParseFunc)o=t.responseParseFunc(s);else if(o=s.response,!s.responseType){var l=s.getResponseHeader("content-type");if(l&&l.indexOf("application/json")>-1)try{o=JSON.parse(s.responseText)}catch(e){return i({ok:!1,err:{message:"Invalid JSON response from server.",type:ErrType.Any,data:e}})}}return r(),s.status<200||s.status>=300?i({ok:!1,err:{type:ErrType.Any,message:t.errUploadError(s),data:s}}):i({ok:!0,data:o})}});var l=Object.assign(Object.create(null),t.headers);for(var u in l)l[u]&&s.setRequestHeader(u,l[u]);var d=new FormData;for(var p in t.params)d.append(p,t.params[p]);for(var c=0,h=e;c<h.length;c++){var m=h[c];t.context.emit(VTransmitEvents.Sending,m,s,d)}t.context.props.uploadMultiple&&t.context.emit(VTransmitEvents.SendingMultiple,e,s,d);for(var f=0;f<e.length;f++)d.append(t.getParamName(f),e[f].nativeFile,t.renameFile(e[f].name));s.send(d)})},e.prototype.handleUploadProgress=function(e){var t=this.context.vtransmit;return function(i){if(!i){for(var s=!0,r=0,a=e;r<a.length;r++){100===(l=a[r]).upload.progress&&l.upload.bytesSent===l.upload.total||(s=!1),l.upload.progress=100,l.upload.bytesSent=l.upload.total,l.endProgress()}if(s)return}for(var n=0,o=e;n<o.length;n++){var l=o[n];i&&l.handleProgress(i),t.$emit(VTransmitEvents.UploadProgress,l,l.upload.progress,l.upload.bytesSent)}}},e.prototype.getParamName=function(e){var t="";return this.context.props.uploadMultiple&&(t="["+e+"]"),this.paramName+t},e.prototype.cancelUpload=function(e){var t=this.uploadGroups[e.adapterData.groupID];return t?(t.xhr.abort(),this.rmGroup(e.adapterData.groupID),t.files.slice()):[]},e.prototype.rmGroup=function(e){delete this.uploadGroups[e]},e}(),VueTransmit=Vue.extend({render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i(e.tag,{tag:"component"},[i("div",e._g(e._b({staticClass:"v-transmit__upload-area",class:[e.isDraggingClass,e.uploadAreaClasses],attrs:{draggable:"true"},on:{click:e.handleClickUploaderAction,dragstart:e.handleDragStart,dragend:e.handleDragEnd,dragenter:function(t){t.preventDefault(),t.stopPropagation(),e.handleDragEnter(t)},dragover:function(t){t.preventDefault(),t.stopPropagation(),e.handleDragOver(t)},dragleave:e.handleDragLeave,drop:function(t){t.preventDefault(),t.stopPropagation(),e.handleDrop(t)}}},"div",e.uploadAreaAttrs,!1),e.uploadAreaListeners),[e._t("default")],2),e._v(" "),e._t("files",null,null,e.fileSlotBindings),e._v(" "),i("form",{ref:"uploadForm",style:e.formStyles},[i("input",{ref:"hiddenFileInput",class:[e.maxFilesReachedClass],attrs:{type:"file",multiple:e.multiple,accept:e.filesToAccept,capture:e.capture},on:{change:e.onFileInputChange}})])],2)},staticRenderFns:[],name:"VueTransmit",props:{tag:{type:String,default:"div"},uploadAreaClasses:{type:[Array,Object,String],default:null},uploadAreaAttrs:{type:Object,default:objFactory},uploadAreaListeners:{type:Object,default:objFactory},dragClass:{type:String,default:null},maxConcurrentUploads:{type:Number,default:2},uploadMultiple:{type:Boolean,default:!1},maxFileSize:{type:Number,default:256},fileSizeBaseInBinary:{type:Boolean,default:!1},createImageThumbnails:{type:Boolean,default:!0},maxThumbnailFileSize:{type:Number,default:10},thumbnailWidth:{type:Number,default:120},thumbnailHeight:{type:Number,default:120},maxFiles:{type:Number,default:null},clickable:{type:Boolean,default:!0},ignoreHiddenFiles:{type:Boolean,default:!0},acceptedFileTypes:{type:Array,default:function(){return[]}},autoProcessQueue:{type:Boolean,default:!0},autoQueue:{type:Boolean,default:!0},capture:{type:String,default:null},errMaxFileSizeExceeded:{type:Function,default:function(e,t,i){return"The file is too big ("+round(e,1)+i+"). Max file size: "+round(t,1)+i+"."}},errInvalidFileType:{type:Function,default:function(e,t,i){return"You can't upload files of this type: "+e}},errMaxFilesExceeded:{type:Function,default:function(e){return"You can not upload any more files ("+e+" max)."}},accept:{type:Function,default:function(e,t){t()}},resize:{type:Function,default:resizeImg},adapterOptions:{type:Object,default:objFactory},uploadAdapter:{type:Function,default:XHRUploadAdapter}},mounted:function(){var e=this;this.$on(VTransmitEvents.UploadProgress,this.updateTotalUploadProgress),this.$on(VTransmitEvents.RemovedFile,this.updateTotalUploadProgress),this.$on(VTransmitEvents.Canceled,function(t){return e.$emit(VTransmitEvents.Complete,t)}),this.$on(VTransmitEvents.Complete,function(t){0===e.addedFiles.length&&0===e.uploadingFiles.length&&0===e.queuedFiles.length&&Promise.resolve().then(function(){return e.$emit(VTransmitEvents.QueueComplete,t)})}),this.$emit(VTransmitEvents.Initialize,this)},data:function(){return{dragging:!1,processingThumbnail:!1,thumbnailQueue:[],files:[],defaultHeaders:{Accept:"application/json","Cache-Control":"no-cache","X-Requested-With":"XMLHttpRequest"},formStyles:{visibility:"hidden !important",position:"absolute !important",top:"0 !important",left:"0 !important",height:"0px !important",width:"0px !important"}}},computed:{inputEl:function(){var e=this.$refs.hiddenFileInput;return e instanceof HTMLInputElement?e:null},formEl:function(){var e=this.$refs.uploadForm;return e instanceof HTMLFormElement?e:null},fileSizeBase:function(){return this.fileSizeBaseInBinary?1024:1e3},maxFileSizeBytes:function(){return this.maxFileSize*this.fileSizeBase*this.fileSizeBase},filesToAccept:function(){return this.acceptedFileTypes.join(",")},multiple:function(){return null===this.maxFiles||this.maxFiles>1},acceptedFiles:function(){return this.files.filter(function(e){return e.accepted})},rejectedFiles:function(){return this.files.filter(function(e){return!e.accepted})},addedFiles:function(){return this.getFilesWithStatus(UploadStatuses.Added)},queuedFiles:function(){return this.getFilesWithStatus(UploadStatuses.Queued)},uploadingFiles:function(){return this.getFilesWithStatus(UploadStatuses.Uploading)},activeFiles:function(){return this.getFilesWithStatus(UploadStatuses.Uploading,UploadStatuses.Queued)},maxFilesReached:function(){return null!=this.maxFiles&&this.acceptedFiles.length>=this.maxFiles},maxFilesReachedClass:function(){return this.maxFilesReached?"v-transmit__max-files--reached":null},isDraggingClass:function(){return(e={"v-transmit__upload-area--is-dragging":this.dragging})[this.dragClass]=this.dragging,e;var e},isUploading:function(){return this.uploadingFiles.length>0},fileSlotBindings:function(){return{files:this.files,acceptedFiles:this.acceptedFiles,rejectedFiles:this.rejectedFiles,addedFiles:this.addedFiles,queuedFiles:this.queuedFiles,uploadingFiles:this.uploadingFiles,activeFiles:this.activeFiles,isUploading:this.isUploading}},transport:function(){var e=this.uploadAdapter;try{return new e(new VTransmitUploadContext(this),this.adapterOptions)}catch(e){throw console.error(e),e}}},watch:{acceptedFiles:function(e){null!=this.maxFiles&&e.length>=this.maxFiles&&this.$emit(VTransmitEvents.MaxFilesReached,this.files)}},methods:{getFilesWithStatus:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return this.files.filter(function(t){return e.indexOf(t.status)>-1})},onFileInputChange:function(){var e=this.inputEl,t=this.formEl;if(null==e||null==t)throw TypeError();e.files&&(this.$emit(VTransmitEvents.AddedFiles,Array.from(e.files).map(this.addFile)),t.reset())},addFile:function(e){var t=this,i=new VTransmitFile(e);return i.status=UploadStatuses.Added,this.files.push(i),this.$emit(VTransmitEvents.AddedFile,i),this.enqueueThumbnail(i),this.acceptFile(i,function(e){if(e)return i.accepted=!1,t.errorProcessing([i],e),t.$emit(VTransmitEvents.RejectedFile,i),void t.$emit(VTransmitEvents.AcceptComplete,i);i.accepted=!0,t.$emit(VTransmitEvents.AcceptedFile,i),t.$emit(VTransmitEvents.AcceptComplete,i),t.autoQueue&&t.enqueueFile(i)}),i},acceptFile:function(e,t){if(e.size>this.maxFileSizeBytes){var i=this.fileSizeBase*this.fileSizeBase,s=e.size/i,r="MB";return this.fileSizeBaseInBinary&&(r="MiB"),t(this.errMaxFileSizeExceeded(s,this.maxFileSize,r))}return this.isValidFileType(e,this.acceptedFileTypes)?null!=this.maxFiles&&this.acceptedFiles.length>=this.maxFiles?(this.$emit(VTransmitEvents.MaxFilesExceeded,e),t(this.errMaxFilesExceeded(this.maxFiles))):void this.accept(e,t):t(this.errInvalidFileType(e.type,this.acceptedFileTypes,e))},removeFile:function(e){e.status===UploadStatuses.Uploading&&this.cancelUpload(e);var t=this.files.findIndex(function(t){return t.id===e.id});t>-1&&(this.$emit(VTransmitEvents.RemovedFile,this.files.splice(t,1)[0]),0===this.files.length&&this.$emit(VTransmitEvents.Reset))},removeAllFiles:function(e){var t;void 0===e&&(e=!1);for(var i=0,s=this.files;i<s.length;i++)((t=s[i]).status!==UploadStatuses.Uploading||e)&&this.removeFile(t)},triggerBrowseFiles:function(){this.inputEl&&this.inputEl.click()},handleClickUploaderAction:function(){this.clickable&&this.triggerBrowseFiles()},enqueueFile:function(e){if(e.status!==UploadStatuses.Added||!0!==e.accepted)throw new Error("This file can't be queued because it has already been processed or was rejected.");e.status=UploadStatuses.Queued,this.autoProcessQueue&&Promise.resolve().then(this.processQueue)},enqueueThumbnail:function(e){!this.createImageThumbnails||!e.type.match(/image.*/)||e.size>1024*this.maxThumbnailFileSize*1024||(this.thumbnailQueue.push(e),Promise.resolve().then(this.processThumbnailQueue))},processThumbnailQueue:function(){var e,t=this;this.processingThumbnail||0===this.thumbnailQueue.length||(this.processingThumbnail=!0,(e=this.thumbnailQueue.shift())&&this.createThumbnail(e,function(){t.processingThumbnail=!1,t.processThumbnailQueue()}))},createThumbnail:function(e,t){var i=this;void 0===t&&(t=noop);var s=new FileReader;s.addEventListener("load",function(){"image/svg+xml"===e.type&&(e.dataUrl=s.result,i.$emit(VTransmitEvents.Thumbnail,e,s.result),t()),i.createThumbnailFromUrl(e,s.result,t)},!1),s.readAsDataURL(e.nativeFile)},createThumbnailFromUrl:function(e,t,i){var s=this,r=document.createElement("img");r.addEventListener("load",function(){var t;e.width=r.width,e.height=r.height;var a=s.resize(e,{width:s.thumbnailWidth,height:s.thumbnailHeight}),n=document.createElement("canvas");if(t=n.getContext("2d")){n.width=a.dWidth,n.height=a.dHeight,t.drawImage(r,a.sx,a.sy,a.sWidth,a.sHeight,a.dx,a.dy,a.dWidth,a.dHeight);var o=n.toDataURL("image/png");return e.dataUrl=o,s.$emit(VTransmitEvents.Thumbnail,e,o),i?i():void 0}},!1),i&&r.addEventListener("error",i,!1),r.src=t},processQueue:function(){var e=this.uploadingFiles.length;if(!(e>=this.maxConcurrentUploads||0===this.queuedFiles.length)){if(this.uploadMultiple)return this.processFiles(this.queuedFiles.slice(0,this.maxConcurrentUploads-e));for(var t,i=e;i<this.maxConcurrentUploads;i++)(t=this.queuedFiles.shift())&&this.processFile(t)}},processFile:function(e){this.processFiles([e])},processFiles:function(e){for(var t,i=0,s=e;i<s.length;i++)(t=s[i]).processing=!0,t.status=UploadStatuses.Uploading,this.$emit(VTransmitEvents.Processing,t);return this.uploadMultiple&&this.$emit(VTransmitEvents.ProcessingMultiple,e),this.uploadFiles(e)},cancelUpload:function(e){if(e.status!==UploadStatuses.Added&&e.status!==UploadStatuses.Queued||(e.status=UploadStatuses.Canceled,this.$emit(VTransmitEvents.Canceled,e),this.uploadMultiple&&this.$emit(VTransmitEvents.CanceledMultiple,[e])),e.status===UploadStatuses.Uploading){for(var t=this.transport.cancelUpload(e),i=void 0,s=0,r=t;s<r.length;s++)(i=r[s]).status=UploadStatuses.Canceled,this.$emit(VTransmitEvents.Canceled,i);this.uploadMultiple&&this.$emit(VTransmitEvents.CanceledMultiple,t)}this.autoProcessQueue&&this.processQueue()},uploadFile:function(e){this.uploadFiles([e])},uploadFiles:function(e){var t=this;this.transport.uploadFiles(e).then(function(i){if(i.ok)return t.uploadFinished(e,i.data);switch(i.err.type){case ErrType.Any:t.errorProcessing(e,i.err.message,i.err.data);break;case ErrType.Timeout:t.handleTimeout(e,i.err.message,i.err.data);break;default:expectNever(i.err.type,"unmatched error case")}})},handleTimeout:function(e,t,i){for(var s,r=0,a=e;r<a.length;r++)(s=a[r]).status=UploadStatuses.Timeout,s.endProgress(),this.$emit(VTransmitEvents.Timeout,s,t,i);this.$emit(VTransmitEvents.TimeoutMultiple,e,t,i),this.autoProcessQueue&&this.processQueue()},updateTotalUploadProgress:function(){var e=this.activeFiles.reduce(function(e,t){return e.totalBytesSent+=t.upload.bytesSent,e.totalBytes+=t.upload.total,e},{totalBytesSent:0,totalBytes:0,totalProgress:100});this.activeFiles.length&&(e.totalProgress=100*e.totalBytesSent/e.totalBytes),this.$emit(VTransmitEvents.TotalUploadProgress,e)},uploadFinished:function(e,t){for(var i=[],s=2;s<arguments.length;s++)i[s-2]=arguments[s];for(var r=0,a=e;r<a.length;r++){var n=a[r];n.status=UploadStatuses.Success,n.endProgress(),this.$emit.apply(this,[VTransmitEvents.Success,n,t].concat(i)),this.$emit(VTransmitEvents.Complete,n)}this.uploadMultiple&&(this.$emit.apply(this,[VTransmitEvents.SuccessMultiple,e,t].concat(i)),this.$emit(VTransmitEvents.CompleteMultiple,e)),this.autoProcessQueue&&this.processQueue()},errorProcessing:function(e,t,i){for(var s=0,r=e;s<r.length;s++){var a=r[s];a.status=UploadStatuses.Error,a.endProgress(),this.$emit(VTransmitEvents.Error,a,t,i),this.$emit(VTransmitEvents.Complete,a)}if(this.uploadMultiple&&(this.$emit(VTransmitEvents.ErrorMultiple,e,t,i),this.$emit(VTransmitEvents.CompleteMultiple,e)),this.autoProcessQueue)return this.processQueue()},isValidFileType:function(e,t){if(!t.length)return!0;for(var i,s=e.type,r=s.slice(0,s.indexOf("/")),a=0,n=t;a<n.length;a++)switch(i=n[a],!0){case"."==i.charAt(0):if(-1!==e.name.toLowerCase().indexOf(i.toLowerCase(),e.name.length-i.length))return!0;break;case"/*"==i.slice(-2):if(r===i.slice(0,-2))return!0;break;default:if(s==i)return!0}return!1},handleDragStart:function(e){this.$emit("drag-start",e)},handleDragOver:function(e){var t;this.dragging=!0;try{t=e.dataTransfer.effectAllowed}catch(e){}e.dataTransfer.dropEffect="move"===t||"linkMove"===t?"move":"copy",this.$emit(VTransmitEvents.DragOver,e)},handleDragEnter:function(e){this.dragging=!0,this.$emit(VTransmitEvents.DragEnter,e)},handleDragLeave:function(e){this.dragging=!1,this.$emit(VTransmitEvents.DragLeave,e)},handleDragEnd:function(e){this.dragging=!1,this.$emit(VTransmitEvents.DragEnd,e)},handleDrop:function(e){var t,i;(this.dragging=!1,e.dataTransfer)&&(this.$emit(VTransmitEvents.Drop,e),this.$emit(VTransmitEvents.AddedFiles,t=Array.from(e.dataTransfer.files)),e.dataTransfer.items&&(i=Array.from(e.dataTransfer.items))&&i.length&&(i[0].getAsFile||i[0].webkitGetAsEntry)?this.addFilesFromItems(i):this.handleFiles(t))},paste:function(e){if(e&&e.clipboardData&&e.clipboardData.items){this.$emit(VTransmitEvents.Paste,e);var t=Array.from(e.clipboardData.items);t.length&&this.addFilesFromItems(t)}},handleFiles:function(e){return e.map(this.addFile)},addFilesFromItems:function(e){for(var t,i=0,s=e;i<s.length;i++){var r=s[i];if(r.getAsFile&&"file"==r.kind){var a=r.getAsFile();a&&this.addFile(a)}else if(r.webkitGetAsEntry){if(null==(t=r.webkitGetAsEntry()))continue;if(webkitIsFile(t)){t.file(this.addFile,console.error);continue}if(webkitIsDir(t)){this.addFilesFromDirectory(t,t.name);continue}}}},addFilesFromDirectory:function(e,t){var i=this;e.createReader().readEntries(function(e){for(var s=0,r=e;s<r.length;s++){var a=r[s];null!=a&&(webkitIsDir(a)?i.addFilesFromDirectory(a,t+"/"+a.name):webkitIsFile(a)&&a.file(function(e){i.ignoreHiddenFiles&&"."==e.name.charAt(0)||(e.fullPath=t+"/"+e.name,i.addFile(e))},console.error))}},console.error)}}}),VueTransmitPlugin={install:function(e){e.component("VueTransmit",VueTransmit)},name:"vue-transmit"};export{VueTransmitPlugin,VueTransmit,XHRUploadAdapter}; | ||
import Vue from"vue";var UploadStatuses,ErrType,VTransmitEvents,idCounter=0;function uniqueId(e){return e+ ++idCounter}function round(e,t){void 0===t&&(t=2);var i=Math.pow(10,t);return Math.round(e*i)/i}function fromBytesToKbit(e){return e/125}function fromBytesToMbit(e){return e/125e3}function toKbps(e,t){return fromBytesToKbit(e)/t}function toMbps(e,t){return fromBytesToMbit(e)/t}function objFactory(){return{}}function noop(){}function scaleH(e,t){return t/e}function scaleW(e,t){return t*e}function expectNever(e,t){throw new Error(t)}function resizeImg(e,t){var i,s,r=e.width/e.height,a=t.width/t.height,n={sx:0,sy:0,sWidth:e.width,sHeight:e.height,dx:0,dy:0,dWidth:t.width,dHeight:t.height};return a>r?(i=e.width,s=scaleH(a,e.width)):(i=scaleW(a,e.height),s=e.height),i<e.width&&(n.sx=(e.width-i)/2,n.sWidth=i),s<e.height&&(n.sy=(e.height-s)/2,n.sHeight=s),n}function webkitIsFile(e){return e.isFile}function webkitIsDir(e){return e.isDirectory}!function(e){e.None="",e.Added="added",e.Queued="queued",e.Accepted="queued",e.Uploading="uploading",e.Canceled="canceled",e.Error="error",e.Timeout="timeout",e.Success="success"}(UploadStatuses||(UploadStatuses={})),function(e){e[e.Any=0]="Any",e[e.Timeout=1]="Timeout"}(ErrType||(ErrType={})),function(e){e.Initialize="initialize",e.AddedFile="added-file",e.AddedFiles="added-files",e.RemovedFile="removed-file",e.AcceptedFile="accepted-file",e.RejectedFile="rejected-file",e.AcceptComplete="accept-complete",e.Thumbnail="thumbnail",e.Processing="processing",e.ProcessingMultiple="processing-multiple",e.Canceled="canceled",e.CanceledMultiple="canceled-multiple",e.Sending="sending",e.SendingMultiple="sending-multiple",e.Timeout="timeout",e.TimeoutMultiple="timeout-multiple",e.UploadProgress="upload-progress",e.TotalUploadProgress="total-upload-progress",e.Success="success",e.SuccessMultiple="success-multiple",e.QueueComplete="queue-complete",e.Complete="complete",e.CompleteMultiple="complete-multiple",e.Error="error",e.ErrorMultiple="error-multiple",e.MaxFilesReached="max-files-reached",e.MaxFilesExceeded="max-files-exceeded",e.Reset="reset",e.DragOver="drag-over",e.DragEnter="drag-enter",e.DragLeave="drag-leave",e.DragEnd="drag-end",e.Drop="drop",e.Paste="paste"}(VTransmitEvents||(VTransmitEvents={}));var VTransmitFile=function(){function e(t){this._dataUrl="",this.id=e.idFactory(),this.status=UploadStatuses.None,this.accepted=!1,this.processing=!1,this.width=0,this.height=0,this.errorMessage="",this.adapterData={},this.upload={bytesSent:0,progress:0,total:0,speed:{kbps:0,mbps:0},start:0,end:0,time:0},this.nativeFile=t,this.lastModified=t.lastModified,this.lastModifiedDate=t.lastModifiedDate,this.name=t.name,this.size=t.size,this.type=t.type,this.webkitRelativePath=t.webkitRelativePath,this.upload.total=t.size}return e.prototype.handleProgress=function(e){this.startProgress();var t=e.total||this.upload.total;this.upload.progress=Math.min(100,100*e.loaded/t),this.upload.bytesSent=e.loaded,this.upload.total=t,this.upload.time=(Date.now()-this.upload.start)/1e3,this.upload.speed.kbps=round(toKbps(this.upload.bytesSent,this.upload.time)),this.upload.speed.mbps=round(toMbps(this.upload.bytesSent,this.upload.time)),100===this.upload.progress&&this.endProgress()},e.prototype.startProgress=function(){return this.upload.start||(this.upload.start=Date.now()),this},e.prototype.endProgress=function(){return this.upload.end||(this.upload.end=Date.now(),this.upload.time=(Date.now()-this.upload.start)/1e3),this},Object.defineProperty(e.prototype,"dataUrl",{get:function(){return this._dataUrl||""},set:function(e){Object.defineProperty(this,"_dataUrl",{value:e,enumerable:!1,configurable:!0,writable:!0})},enumerable:!0,configurable:!0}),e.idFactory=function(){return uniqueId("vt_")},e}(),VTransmitUploadContext=function(){function e(e){this.vtransmit=e,this.Statuses=UploadStatuses,this.props=e.$props}return e.prototype.emit=function(e){for(var t,i=[],s=1;s<arguments.length;s++)i[s-1]=arguments[s];(t=this.vtransmit).$emit.apply(t,[e].concat(i))},Object.defineProperty(e.prototype,"acceptedFiles",{get:function(){return this.vtransmit.acceptedFiles},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rejectedFiles",{get:function(){return this.vtransmit.rejectedFiles},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"addedFiles",{get:function(){return this.vtransmit.addedFiles},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"queuedFiles",{get:function(){return this.vtransmit.queuedFiles},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"uploadingFiles",{get:function(){return this.vtransmit.uploadingFiles},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"activeFiles",{get:function(){return this.vtransmit.activeFiles},enumerable:!0,configurable:!0}),e}(),group_id=0,XHRUploadAdapter=function(){function e(e,t){this.uploadGroups=Object.create(null);var i=t.url,s=t.method,r=void 0===s?"post":s,a=t.withCredentials,n=void 0!==a&&a,o=t.timeout,l=void 0===o?0:o,u=t.paramName,d=void 0===u?"file":u,p=t.params,c=void 0===p?Object.create(null):p,h=t.headers,m=void 0===h?{Accept:"application/json","Cache-Control":"no-cache","X-Requested-With":"XMLHttpRequest"}:h,f=t.responseType,g=void 0===f?"json":f,v=t.responseParseFunc,F=t.errUploadError,y=void 0===F?function(e){return"Error during upload: "+e.statusText+" ["+e.status+"]"}:F,T=t.errUploadTimeout,b=void 0===T?function(e){return"Error during upload: the server timed out."}:T,E=t.renameFile,S=void 0===E?function(e){return e}:E;this.context=e,this.url=i,this.method=r,this.withCredentials=n,this.timeout=l,this.paramName=d,this.params=c,this.headers=m,this.responseType=g,this.responseParseFunc=v,this.errUploadError=y,this.errUploadTimeout=b,this.renameFile=S}return e.prototype.uploadFiles=function(e){var t=this;return new Promise(function(i){if(!t.url)return i({ok:!1,err:{type:ErrType.Any,message:"Missing upload URL.",data:t.url}});var s=new XMLHttpRequest,r=t.handleUploadProgress(e),a=group_id++;t.uploadGroups[a]={id:a,xhr:s,files:e};for(var n=0,o=e;n<o.length;n++){(m=o[n]).adapterData.groupID=a,m.startProgress()}s.open(t.method,t.url,!0),s.timeout=t.timeout,s.withCredentials=Boolean(t.withCredentials),s.responseType=t.responseType,s.addEventListener("error",function(){t.rmGroup(a),i({ok:!1,err:{type:ErrType.Any,message:t.errUploadError(s),data:s}})}),s.upload.addEventListener("progress",r),s.addEventListener("timeout",function(){t.rmGroup(a),i({ok:!1,err:{type:ErrType.Timeout,message:t.errUploadTimeout(s),data:s}})}),s.addEventListener("load",function(n){if(e[0].status!==UploadStatuses.Canceled&&s.readyState===XMLHttpRequest.DONE){var o;if(t.rmGroup(a),t.responseParseFunc)o=t.responseParseFunc(s);else if(o=s.response,!s.responseType){var l=s.getResponseHeader("content-type");if(l&&l.indexOf("application/json")>-1)try{o=JSON.parse(s.responseText)}catch(e){return i({ok:!1,err:{message:"Invalid JSON response from server.",type:ErrType.Any,data:e}})}}return r(),s.status<200||s.status>=300?i({ok:!1,err:{type:ErrType.Any,message:t.errUploadError(s),data:s}}):i({ok:!0,data:o})}});var l=Object.assign(Object.create(null),t.headers);for(var u in l)l[u]&&s.setRequestHeader(u,l[u]);var d=new FormData;for(var p in t.params)d.append(p,t.params[p]);for(var c=0,h=e;c<h.length;c++){var m=h[c];t.context.emit(VTransmitEvents.Sending,m,s,d)}t.context.props.uploadMultiple&&t.context.emit(VTransmitEvents.SendingMultiple,e,s,d);for(var f=0;f<e.length;f++)d.append(t.getParamName(f),e[f].nativeFile,t.renameFile(e[f].name));s.send(d)})},e.prototype.handleUploadProgress=function(e){var t=this.context.vtransmit;return function(i){if(!i){for(var s=!0,r=0,a=e;r<a.length;r++){100===(l=a[r]).upload.progress&&l.upload.bytesSent===l.upload.total||(s=!1),l.upload.progress=100,l.upload.bytesSent=l.upload.total,l.endProgress()}if(s)return}for(var n=0,o=e;n<o.length;n++){var l=o[n];i&&l.handleProgress(i),t.$emit(VTransmitEvents.UploadProgress,l,l.upload.progress,l.upload.bytesSent)}}},e.prototype.getParamName=function(e){var t="";return this.context.props.uploadMultiple&&(t="["+e+"]"),this.paramName+t},e.prototype.cancelUpload=function(e){var t=this.uploadGroups[e.adapterData.groupID];return t?(t.xhr.abort(),this.rmGroup(e.adapterData.groupID),t.files.slice()):[]},e.prototype.rmGroup=function(e){delete this.uploadGroups[e]},e}(),VueTransmit=Vue.extend({render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i(e.tag,{tag:"component"},[i("div",e._g(e._b({staticClass:"v-transmit__upload-area",class:[e.isDraggingClass,e.uploadAreaClasses],attrs:{draggable:"true"},on:{click:e.handleClickUploaderAction,dragstart:e.handleDragStart,dragend:e.handleDragEnd,dragenter:function(t){t.preventDefault(),t.stopPropagation(),e.handleDragEnter(t)},dragover:function(t){t.preventDefault(),t.stopPropagation(),e.handleDragOver(t)},dragleave:e.handleDragLeave,drop:function(t){t.preventDefault(),t.stopPropagation(),e.handleDrop(t)}}},"div",e.uploadAreaAttrs,!1),e.uploadAreaListeners),[e._t("default")],2),e._v(" "),e._t("files",null,null,e.fileSlotBindings),e._v(" "),i("form",{ref:"uploadForm",style:e.formStyles},[i("input",{ref:"hiddenFileInput",class:[e.maxFilesReachedClass],attrs:{type:"file",multiple:e.multiple,accept:e.filesToAccept,capture:e.capture},on:{change:e.onFileInputChange}})])],2)},staticRenderFns:[],name:"VueTransmit",props:{tag:{type:String,default:"div"},uploadAreaClasses:{type:[Array,Object,String],default:null},uploadAreaAttrs:{type:Object,default:objFactory},uploadAreaListeners:{type:Object,default:objFactory},dragClass:{type:String,default:null},maxConcurrentUploads:{type:Number,default:2},uploadMultiple:{type:Boolean,default:!1},maxFileSize:{type:Number,default:256},fileSizeBaseInBinary:{type:Boolean,default:!1},createImageThumbnails:{type:Boolean,default:!0},maxThumbnailFileSize:{type:Number,default:10},thumbnailWidth:{type:Number,default:120},thumbnailHeight:{type:Number,default:120},maxFiles:{type:Number,default:null},clickable:{type:Boolean,default:!0},ignoreHiddenFiles:{type:Boolean,default:!0},acceptedFileTypes:{type:Array,default:function(){return[]}},autoProcessQueue:{type:Boolean,default:!0},autoQueue:{type:Boolean,default:!0},capture:{type:String,default:null},errMaxFileSizeExceeded:{type:Function,default:function(e,t,i){return"The file is too big ("+round(e,1)+i+"). Max file size: "+round(t,1)+i+"."}},errInvalidFileType:{type:Function,default:function(e,t,i){return"You can't upload files of this type: "+e}},errMaxFilesExceeded:{type:Function,default:function(e){return"You can not upload any more files ("+e+" max)."}},accept:{type:Function,default:function(e,t){t()}},resize:{type:Function,default:resizeImg},adapterOptions:{type:Object,default:objFactory},uploadAdapter:{type:Function,default:XHRUploadAdapter}},mounted:function(){var e=this;this.$on(VTransmitEvents.UploadProgress,this.updateTotalUploadProgress),this.$on(VTransmitEvents.RemovedFile,this.updateTotalUploadProgress),this.$on(VTransmitEvents.Canceled,function(t){return e.$emit(VTransmitEvents.Complete,t)}),this.$on(VTransmitEvents.Complete,function(t){0===e.addedFiles.length&&0===e.uploadingFiles.length&&0===e.queuedFiles.length&&Promise.resolve().then(function(){return e.$emit(VTransmitEvents.QueueComplete,t)})}),this.$emit(VTransmitEvents.Initialize,this)},data:function(){return{dragging:!1,processingThumbnail:!1,thumbnailQueue:[],files:[],defaultHeaders:{Accept:"application/json","Cache-Control":"no-cache","X-Requested-With":"XMLHttpRequest"},formStyles:{visibility:"hidden !important",position:"absolute !important",top:"0 !important",left:"0 !important",height:"0px !important",width:"0px !important"}}},computed:{inputEl:function(){var e=this.$refs.hiddenFileInput;return e instanceof HTMLInputElement?e:null},formEl:function(){var e=this.$refs.uploadForm;return e instanceof HTMLFormElement?e:null},fileSizeBase:function(){return this.fileSizeBaseInBinary?1024:1e3},maxFileSizeBytes:function(){return this.maxFileSize*this.fileSizeBase*this.fileSizeBase},filesToAccept:function(){return this.acceptedFileTypes.join(",")},multiple:function(){return null===this.maxFiles||this.maxFiles>1},acceptedFiles:function(){return this.files.filter(function(e){return e.accepted})},rejectedFiles:function(){return this.files.filter(function(e){return!e.accepted})},addedFiles:function(){return this.getFilesWithStatus(UploadStatuses.Added)},queuedFiles:function(){return this.getFilesWithStatus(UploadStatuses.Queued)},uploadingFiles:function(){return this.getFilesWithStatus(UploadStatuses.Uploading)},activeFiles:function(){return this.getFilesWithStatus(UploadStatuses.Uploading,UploadStatuses.Queued)},maxFilesReached:function(){return null!=this.maxFiles&&this.acceptedFiles.length>=this.maxFiles},maxFilesReachedClass:function(){return this.maxFilesReached?"v-transmit__max-files--reached":null},isDraggingClass:function(){return(e={"v-transmit__upload-area--is-dragging":this.dragging})[this.dragClass]=this.dragging,e;var e},isUploading:function(){return this.uploadingFiles.length>0},fileSlotBindings:function(){return{files:this.files,acceptedFiles:this.acceptedFiles,rejectedFiles:this.rejectedFiles,addedFiles:this.addedFiles,queuedFiles:this.queuedFiles,uploadingFiles:this.uploadingFiles,activeFiles:this.activeFiles,isUploading:this.isUploading}},transport:function(){var e=this.uploadAdapter;try{return new e(new VTransmitUploadContext(this),this.adapterOptions)}catch(e){throw console.error(e),e}}},watch:{acceptedFiles:function(e){null!=this.maxFiles&&e.length>=this.maxFiles&&this.$emit(VTransmitEvents.MaxFilesReached,this.files)}},methods:{getFilesWithStatus:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return this.files.filter(function(t){return e.indexOf(t.status)>-1})},onFileInputChange:function(){var e=this.inputEl,t=this.formEl;if(null==e||null==t)throw TypeError();e.files&&(this.$emit(VTransmitEvents.AddedFiles,Array.from(e.files).map(this.addFile)),t.reset())},addFile:function(e){var t=this,i=new VTransmitFile(e);return i.status=UploadStatuses.Added,this.files.push(i),this.$emit(VTransmitEvents.AddedFile,i),this.enqueueThumbnail(i),this.acceptFile(i,function(e){if(e)return i.accepted=!1,t.errorProcessing([i],e),t.$emit(VTransmitEvents.RejectedFile,i),void t.$emit(VTransmitEvents.AcceptComplete,i);i.accepted=!0,t.$emit(VTransmitEvents.AcceptedFile,i),t.$emit(VTransmitEvents.AcceptComplete,i),t.autoQueue&&t.enqueueFile(i)}),i},acceptFile:function(e,t){if(e.size>this.maxFileSizeBytes){var i=this.fileSizeBase*this.fileSizeBase,s=e.size/i,r="MB";return this.fileSizeBaseInBinary&&(r="MiB"),t(this.errMaxFileSizeExceeded(s,this.maxFileSize,r))}return this.isValidFileType(e,this.acceptedFileTypes)?null!=this.maxFiles&&this.acceptedFiles.length>=this.maxFiles?(this.$emit(VTransmitEvents.MaxFilesExceeded,e),t(this.errMaxFilesExceeded(this.maxFiles))):void this.accept(e,t):t(this.errInvalidFileType(e.type,this.acceptedFileTypes,e))},removeFile:function(e){e.status===UploadStatuses.Uploading&&this.cancelUpload(e);var t=this.files.findIndex(function(t){return t.id===e.id});t>-1&&(this.$emit(VTransmitEvents.RemovedFile,this.files.splice(t,1)[0]),0===this.files.length&&this.$emit(VTransmitEvents.Reset))},removeAllFiles:function(e){var t;void 0===e&&(e=!1);for(var i=0,s=this.files;i<s.length;i++)((t=s[i]).status!==UploadStatuses.Uploading||e)&&this.removeFile(t)},triggerBrowseFiles:function(){this.inputEl&&this.inputEl.click()},handleClickUploaderAction:function(){this.clickable&&this.triggerBrowseFiles()},enqueueFile:function(e){if(e.status!==UploadStatuses.Added||!0!==e.accepted)throw new Error("This file can't be queued because it has already been processed or was rejected.");e.status=UploadStatuses.Queued,this.autoProcessQueue&&Promise.resolve().then(this.processQueue)},enqueueThumbnail:function(e){!this.createImageThumbnails||!e.type.match(/image.*/)||e.size>1024*this.maxThumbnailFileSize*1024||(this.thumbnailQueue.push(e),Promise.resolve().then(this.processThumbnailQueue))},processThumbnailQueue:function(){var e,t=this;this.processingThumbnail||0===this.thumbnailQueue.length||(this.processingThumbnail=!0,(e=this.thumbnailQueue.shift())&&this.createThumbnail(e,function(){t.processingThumbnail=!1,t.processThumbnailQueue()}))},createThumbnail:function(e,t){var i=this;void 0===t&&(t=noop);var s=new FileReader;s.addEventListener("load",function(){"image/svg+xml"===e.type&&(e.dataUrl=s.result,i.$emit(VTransmitEvents.Thumbnail,e,s.result),t()),i.createThumbnailFromUrl(e,s.result,t)},!1),s.readAsDataURL(e.nativeFile)},createThumbnailFromUrl:function(e,t,i){var s=this,r=document.createElement("img");r.addEventListener("load",function(){var t;e.width=r.width,e.height=r.height;var a=s.resize(e,{width:s.thumbnailWidth,height:s.thumbnailHeight}),n=document.createElement("canvas");if(t=n.getContext("2d")){n.width=a.dWidth,n.height=a.dHeight,t.drawImage(r,a.sx,a.sy,a.sWidth,a.sHeight,a.dx,a.dy,a.dWidth,a.dHeight);var o=n.toDataURL("image/png");return e.dataUrl=o,s.$emit(VTransmitEvents.Thumbnail,e,o),i?i():void 0}},!1),i&&r.addEventListener("error",i,!1),r.src=t},processQueue:function(){var e=this.uploadingFiles.length;if(!(e>=this.maxConcurrentUploads||0===this.queuedFiles.length)){if(this.uploadMultiple)return this.processFiles(this.queuedFiles.slice(0,this.maxConcurrentUploads-e));for(var t,i=e;i<this.maxConcurrentUploads;i++)(t=this.queuedFiles.shift())&&this.processFile(t)}},processFile:function(e){this.processFiles([e])},processFiles:function(e){for(var t,i=0,s=e;i<s.length;i++)(t=s[i]).processing=!0,t.status=UploadStatuses.Uploading,this.$emit(VTransmitEvents.Processing,t);return this.uploadMultiple&&this.$emit(VTransmitEvents.ProcessingMultiple,e),this.uploadFiles(e)},cancelUpload:function(e){if(e.status!==UploadStatuses.Added&&e.status!==UploadStatuses.Queued||(e.status=UploadStatuses.Canceled,this.$emit(VTransmitEvents.Canceled,e),this.uploadMultiple&&this.$emit(VTransmitEvents.CanceledMultiple,[e])),e.status===UploadStatuses.Uploading){for(var t=this.transport.cancelUpload(e),i=void 0,s=0,r=t;s<r.length;s++)(i=r[s]).status=UploadStatuses.Canceled,this.$emit(VTransmitEvents.Canceled,i);this.uploadMultiple&&this.$emit(VTransmitEvents.CanceledMultiple,t)}this.autoProcessQueue&&this.processQueue()},uploadFile:function(e){this.uploadFiles([e])},uploadFiles:function(e){var t=this;this.transport.uploadFiles(e).then(function(i){if(i.ok)return t.uploadFinished(e,i.data);switch(i.err.type){case ErrType.Any:t.errorProcessing(e,i.err.message,i.err.data);break;case ErrType.Timeout:t.handleTimeout(e,i.err.message,i.err.data);break;default:expectNever(i.err.type,"unmatched error case")}})},handleTimeout:function(e,t,i){for(var s,r=0,a=e;r<a.length;r++)(s=a[r]).status=UploadStatuses.Timeout,s.endProgress(),this.$emit(VTransmitEvents.Timeout,s,t,i);this.$emit(VTransmitEvents.TimeoutMultiple,e,t,i),this.autoProcessQueue&&this.processQueue()},updateTotalUploadProgress:function(){var e=this.activeFiles.reduce(function(e,t){return e.totalBytesSent+=t.upload.bytesSent,e.totalBytes+=t.upload.total,e},{totalBytesSent:0,totalBytes:0,totalProgress:100});this.activeFiles.length&&(e.totalProgress=100*e.totalBytesSent/e.totalBytes),this.$emit(VTransmitEvents.TotalUploadProgress,e)},uploadFinished:function(e,t){for(var i=[],s=2;s<arguments.length;s++)i[s-2]=arguments[s];for(var r=0,a=e;r<a.length;r++){var n=a[r];n.status=UploadStatuses.Success,n.endProgress(),this.$emit.apply(this,[VTransmitEvents.Success,n,t].concat(i)),this.$emit(VTransmitEvents.Complete,n)}this.uploadMultiple&&(this.$emit.apply(this,[VTransmitEvents.SuccessMultiple,e,t].concat(i)),this.$emit(VTransmitEvents.CompleteMultiple,e)),this.autoProcessQueue&&this.processQueue()},errorProcessing:function(e,t,i){for(var s=0,r=e;s<r.length;s++){var a=r[s];a.status=UploadStatuses.Error,a.endProgress(),this.$emit(VTransmitEvents.Error,a,t,i),this.$emit(VTransmitEvents.Complete,a)}if(this.uploadMultiple&&(this.$emit(VTransmitEvents.ErrorMultiple,e,t,i),this.$emit(VTransmitEvents.CompleteMultiple,e)),this.autoProcessQueue)return this.processQueue()},isValidFileType:function(e,t){if(!t.length)return!0;for(var i,s=e.type,r=s.slice(0,s.indexOf("/")),a=0,n=t;a<n.length;a++)switch(i=n[a],!0){case"."==i.charAt(0):if(-1!==e.name.toLowerCase().indexOf(i.toLowerCase(),e.name.length-i.length))return!0;break;case"/*"==i.slice(-2):if(r===i.slice(0,-2))return!0;break;default:if(s==i)return!0}return!1},handleDragStart:function(e){this.$emit("drag-start",e)},handleDragOver:function(e){var t;this.dragging=!0;try{t=e.dataTransfer.effectAllowed}catch(e){}e.dataTransfer.dropEffect="move"===t||"linkMove"===t?"move":"copy",this.$emit(VTransmitEvents.DragOver,e)},handleDragEnter:function(e){this.dragging=!0,this.$emit(VTransmitEvents.DragEnter,e)},handleDragLeave:function(e){this.dragging=!1,this.$emit(VTransmitEvents.DragLeave,e)},handleDragEnd:function(e){this.dragging=!1,this.$emit(VTransmitEvents.DragEnd,e)},handleDrop:function(e){var t,i;(this.dragging=!1,e.dataTransfer)&&(this.$emit(VTransmitEvents.Drop,e),this.$emit(VTransmitEvents.AddedFiles,t=Array.from(e.dataTransfer.files)),e.dataTransfer.items&&(i=Array.from(e.dataTransfer.items))&&i.length&&(i[0].getAsFile||i[0].webkitGetAsEntry)?this.addFilesFromItems(i):this.handleFiles(t))},paste:function(e){if(e&&e.clipboardData&&e.clipboardData.items){this.$emit(VTransmitEvents.Paste,e);var t=Array.from(e.clipboardData.items);t.length&&this.addFilesFromItems(t)}},handleFiles:function(e){return e.map(this.addFile)},addFilesFromItems:function(e){for(var t,i=0,s=e;i<s.length;i++){var r=s[i];if(r.getAsFile&&"file"==r.kind){var a=r.getAsFile();a&&this.addFile(a)}else if(r.webkitGetAsEntry){if(null==(t=r.webkitGetAsEntry()))continue;if(webkitIsFile(t)){t.file(this.addFile,console.error);continue}if(webkitIsDir(t)){this.addFilesFromDirectory(t,t.name);continue}}}},addFilesFromDirectory:function(e,t){var i=this;e.createReader().readEntries(function(e){for(var s=0,r=e;s<r.length;s++){var a=r[s];null!=a&&(webkitIsDir(a)?i.addFilesFromDirectory(a,t+"/"+a.name):webkitIsFile(a)&&a.file(function(e){i.ignoreHiddenFiles&&"."==e.name.charAt(0)||(e.fullPath=t+"/"+e.name,i.addFile(e))},console.error))}},console.error)}}}),VueTransmitPlugin={install:function(e){e.component("VueTransmit",VueTransmit)},name:"vue-transmit"};export default VueTransmitPlugin;export{VueTransmitPlugin,VueTransmit,XHRUploadAdapter}; | ||
//# sourceMappingURL=vue-transmit.esm.min.js.map |
{ | ||
"name": "vue-transmit", | ||
"version": "9.0.0-alpha.7", | ||
"version": "9.0.0-alpha.8", | ||
"description": "Vue.js drag & drop uploader based on Dropzone.js", | ||
@@ -17,2 +17,5 @@ "module": "dist/vue-transmit.esm.js", | ||
}, | ||
"files": [ | ||
"dist" | ||
], | ||
"scripts": { | ||
@@ -23,3 +26,3 @@ "clean": "scripts/clean.js", | ||
"prebuild": "npm run clean", | ||
"build": "cross-env NODE_ENV=production rollup -c ./rollup.config.js && rollup -c ./rollup.config.min.js", | ||
"build": "cross-env NODE_ENV=production rollup -c ./rollup.config.js", | ||
"prepublishOnly": "npm run build", | ||
@@ -26,0 +29,0 @@ "test:site": "php -S localhost:3030 -t ./test/", |
@@ -17,2 +17,4 @@ # Vue-Transmit | ||
Check out the CodeSandbox here: https://codesandbox.io/s/lyzqn4m659 | ||
## Features | ||
@@ -19,0 +21,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
388
0
512229
21
3062