UNPKG

@glr/ngx-file-uploader

Version:
3 lines (2 loc) 27.8 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs/Rx"),require("rxjs/Observable"),require("@angular/common")):"function"==typeof define&&define.amd?define(["exports","@angular/core","rxjs/Rx","rxjs/Observable","@angular/common"],t):t((e.ng=e.ng||{},e.ng.ngxfileuploader=e.ng.ngxfileuploader||{},e.ng.ngxfileuploader.ngxfileuploader=e.ng.ngxfileuploader.ngxfileuploader||{}),e.ng.core,e.Rx,e.Rx,e.ng.common)}(this,function(e,t,o,r,n){"use strict";var i=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])};return function(t,o){function r(){this.constructor=t}e(t,o),t.prototype=null===o?Object.create(o):(r.prototype=o.prototype,new r)}}(),s=function(){function e(){}return e.uniqueID=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})},e.isElement=function(e){return!(!e||!(e.nodeName||e.prop&&e.attr&&e.find))},e.isString=function(e){return!("string"!=typeof e)},e.extendValue=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var o=e[0],r=1;r<e.length;r++)void 0!==e[r]&&(o=e[r]);return o},e.asObservable=function(e){return new r.Observable(function(t){return e.subscribe(t)})},e}();s._uniqueNumber=1,s.nextUID=function(){return(s._uniqueNumber++).toString()};var l={};l.beforeAddingFile=0,l.afterAddingFile=1,l.errorAddingFile=2,l.prepareUploadFile=3,l.progressUploadFile=4,l.successUploadFile=5,l.completeUploadFile=6,l.failedUploadFile=7,l.cancelUploadFile=8,l.prepareUploadAll=9,l.progressUploadAll=10,l.completeUploadAll=11,l[l.beforeAddingFile]="beforeAddingFile",l[l.afterAddingFile]="afterAddingFile",l[l.errorAddingFile]="errorAddingFile",l[l.prepareUploadFile]="prepareUploadFile",l[l.progressUploadFile]="progressUploadFile",l[l.successUploadFile]="successUploadFile",l[l.completeUploadFile]="completeUploadFile",l[l.failedUploadFile]="failedUploadFile",l[l.cancelUploadFile]="cancelUploadFile",l[l.prepareUploadAll]="prepareUploadAll",l[l.progressUploadAll]="progressUploadAll",l[l.completeUploadAll]="completeUploadAll";var a=function(){function e(e,t,o){void 0===o&&(o=0),this._type=null,this._callback=null,this._priority=null,this._type=e,this._callback=t,this._priority=+o}return Object.defineProperty(e.prototype,"type",{get:function(){return this._type},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"priority",{get:function(){return this._priority},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"callback",{get:function(){return this._callback},enumerable:!0,configurable:!0}),e}(),p={url:"",alias:"file",headers:{},filters:[],formData:[],autoUpload:!1,method:"POST",removeBySuccess:!1,queueLimit:-1,enableCors:!1,withCredentials:!1,uniqueFiles:!1},u=function(){function e(e,t){this.type=e,this._queue$=new o.BehaviorSubject([]);var r=document.createElement("div");if(this._isHTML5=!!(File&&FormData&&FileReader),this._isDragAndDrop="draggable"in r||"ondragstart"in r&&"ondrop"in r,this._id=s.uniqueID(),this._hooks=[],!this._isHTML5)throw new Error("Your browser doesn't support HTML5. Our FileUploader can't work here.");this.options=Object.assign({},p,t)}return Object.defineProperty(e.prototype,"id",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"queue$",{get:function(){return s.asObservable(this._queue$)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"queueObs",{get:function(){return this._queue$.getValue()},enumerable:!0,configurable:!0}),e.prototype.bindOptions=function(e){this.options=Object.assign({},this.options,e)},e.prototype.isHTML5=function(){return this._isHTML5},e.prototype.isDragAndDrop=function(){return this._isDragAndDrop},e.prototype.hook=function(e){this.hookExists(e)===-1&&(this._hooks.push(e),this._hooks.sort(function(e,t){return e.type&&t.type?e.type!==t.type?e.type<t.type?-1:e.type>t.type?1:0:e.priority&&t.priority?e.priority>t.priority?-1:e.priority<t.priority?1:0:0:0}))},e.prototype.removeHook=function(e){var t=this.hookExists(e);return t>=0&&(this._hooks.splice(t,1),!0)},e.prototype.addFilesToQueue=function(e,t){var o,r=[],n=!1;if(s.isElement(e))for(var i=0,l=e.files;i<l.length;i++){var a=l[i];try{o=new h(a,t,this)}catch(e){throw Error("Couldn't create a new FileManager object.")}n=this.addFile(o),n&&r.push(o)}else{if(!(e instanceof Object))throw new Error("Couldn't initialise FileUploader file/files are not defined. ["+e+"]");if(void 0!==e[0]&&e[0]instanceof h)for(var p=0,u=e;p<u.length;p++){var c=u[p];n=this.addFile(c),n&&r.push(c)}else{if(!(e instanceof h))throw new Error("Couldn't put file/files to the queue. ["+e+"]");(n=this.addFile(e))&&r.push(e)}}return this._onAddFileAll(),r},e.prototype.addFile=function(e){try{this.validate(e)}catch(t){return console.log(t.message),this._onAddFileError(e),!1}var t=this._queue$.getValue();return this.options.uniqueFiles?this.notInQueue(e)===-1?(this._runHook(l.beforeAddingFile,e),t.push(e),this._queue$.next(t),this._onAddFile(e),this._runHook(l.afterAddingFile,e),this.options.autoUpload&&e.upload(),!0):(this._onAddFileError(e),!1):(this._runHook(l.beforeAddingFile,e),t.push(e),this._queue$.next(t),this._onAddFile(e),this._runHook(l.afterAddingFile,e),this.options.autoUpload&&e.upload(),!0)},e.prototype.removeFile=function(e){var t=this.notInQueue(e),o=this._queue$.getValue();return t>=0&&(o.splice(t,1),this._queue$.next(o),!0)},e.prototype.notInQueue=function(e){var t=this._queue$.getValue();for(var o in t)if(t.hasOwnProperty(o)){var r=t[o];if(r.id===e.id||r.name+r.type+r.size===e.name+e.type+e.size)return+o}return-1},e.prototype.addFilter=function(e){this.filterExists(e)!==-1&&this.options.filters.push(e)},e.prototype.validate=function(e){for(var t=0,o=this.options.filters;t<o.length;t++){var r=o[t];if(!r.validate(e))throw new Error("File ["+e.name+"] doesn't fit with filter ["+r.name+"]")}return!0},e.prototype._setProtocol=function(e){this._protocol=e},e.prototype._getProtocol=function(){return this._protocol},e.prototype._isSuccessCode=function(e){return e>=200&&e<300||304===e},e.prototype.upload=function(){this._onBeforeUploadAll();for(var e=0,t=this.queueObs;e<t.length;e++){var o=t[e];this.uploadItem(o)}},e.prototype.cancel=function(){for(var e=0,t=this.queueObs;e<t.length;e++){var o=t[e];this.cancelUploadItem(o)}},e.prototype.remove=function(){for(var e=0,t=this.queueObs;e<t.length;e++){var o=t[e];this.removeFile(o)}},e.prototype.uploadItem=function(e){this.notInQueue(e)===-1&&this.addFile(e),this._onBeforeUpload(e),this._getProtocol().run(e)},e.prototype.cancelUploadItem=function(e){this.notInQueue(e)!==-1&&(e.isUploading&&this._getProtocol().cancel(e),e.isUploading&&e._cancel())},e.prototype.onAddFileAll=function(e){},e.prototype.onAddFile=function(e){},e.prototype.onAddFileError=function(e){},e.prototype.onBeforeUploadAll=function(e){},e.prototype.onBeforeUpload=function(e){},e.prototype.onProgress=function(e,t){},e.prototype.onProgressFile=function(e,t){},e.prototype.onProgressFileSpeed=function(e,t){},e.prototype.onSuccess=function(e,t,o,r){},e.prototype.onError=function(e,t,o,r){},e.prototype.onComplete=function(e,t,o,r){},e.prototype.onCompleteAll=function(e){},e.prototype._onAddFileAll=function(){this.onAddFileAll(this)},e.prototype._onAddFile=function(e){this.onAddFile(e)},e.prototype._onAddFileError=function(e){this._runHook(l.errorAddingFile,e),this.onAddFileError(e)},e.prototype._onBeforeUploadAll=function(){this._runHook(l.prepareUploadAll,this),this.onBeforeUploadAll(this)},e.prototype._onBeforeUpload=function(e){this._runHook(l.prepareUploadFile,e),e._onBeforeUpload(),this.onBeforeUpload(e)},e.prototype._onProgressFileSpeed=function(e,t){this._runHook(l.prepareUploadFile,e,t),e._onProgressFileSpeed(t),this.onProgressFileSpeed(e,t)},e.prototype._onProgressFile=function(e,t){e._onProgress(t),this.onProgressFile(e,t),this._onProgress()},e.prototype._onProgress=function(){var e=this._queue$.getValue();if(e.length>0){for(var t=0,o=0,r=e;o<r.length;o++){var n=r[o];n.success||n.error?t+=100:n.isUploading&&(t+=n.progress)}return t=Math.floor(t/e.length),this._runHook(l.progressUploadAll,t),this.onProgress(this,t),void(t>=100&&this._onCompleteAll())}this.onProgress(this,100),this._onCompleteAll()},e.prototype._onSuccessFile=function(e,t,o,r){this._runHook(l.successUploadFile,e,t,o,r),e._onSuccess(t,o,r),this.onSuccess(e,t,o,r)},e.prototype._onErrorFile=function(e,t,o,r){this._runHook(l.failedUploadFile,e,t,o,r),this.onError(e,t,o,r)},e.prototype._onCompleteFile=function(e,t,o,r){this._runHook(l.completeUploadFile,e,t,o,r),this._onProgress(),this.onComplete(e,t,o,r)},e.prototype._onCompleteAll=function(){this._runHook(l.completeUploadAll,this),this.onCompleteAll(this)},e.prototype._headersGetter=function(e){return function(t){return t?e[t.toLowerCase()]||null:e}},e.prototype._parseHeaders=function(e){var t,o,r,n={};if(!e)return n;for(var i=e.split("\n"),s=0,l=i;s<l.length;s++){var a=l[s];r=a.indexOf(":"),t=a.slice(0,r).trim().toLowerCase(),o=a.slice(r+1).trim(),t&&(n[t]=n[t]?n[t]+", "+o:o)}return n},e.prototype._transformResponse=function(e,t){return{},e},e.prototype._runHook=function(e){for(var t=[],o=1;o<arguments.length;o++)t[o-1]=arguments[o];for(var r in this._hooks)if(this._hooks.hasOwnProperty(r)){var n=this._hooks[r];if(n.type===e)switch(e){case l.beforeAddingFile:case l.prepareUploadAll:case l.prepareUploadFile:case l.afterAddingFile:case l.errorAddingFile:case l.completeUploadAll:case l.progressUploadAll:n.callback(t[0]);break;case l.progressUploadFile:n.callback(t[0],t[1]);break;case l.cancelUploadFile:case l.successUploadFile:case l.failedUploadFile:case l.completeUploadFile:n.callback(t[0],t[1],t[2],t[3]);break;default:throw new Error("hookType unknown or not defined")}}},e.prototype.hookExists=function(e){for(var t in this._hooks)if(this._hooks.hasOwnProperty(t)){var o=this._hooks[t];if(o.type===e.type&&""+o.callback==""+e.callback)return+t}return-1},e.prototype.filterExists=function(e){var t=this.options.filters;for(var o in t)if(t.hasOwnProperty(o)){var r=t[o];if(r.name===e.name)return+o}return-1},e}(),c={},d={total:0,loaded:0,percent:0,speed:0,speedToText:"0 bytes"},f=function(){function e(e){var t=this,o=s.isElement(e),r=o?e.value:e,n=!!s.isString(r);!function(e,o){e?t._createFromFakePath(o):t._createFromObject(o)}(n,r)}return e.prototype._createFromFakePath=function(e){this.lastModifiedDate=null,this.size=null,this.type="like/"+e.slice(e.lastIndexOf(".")+1).toLowerCase(),this.name=e.slice(e.lastIndexOf("/")+e.lastIndexOf("\\")+2)},e.prototype._createFromObject=function(e){this.lastModifiedDate=new Date(e.lastModifiedDate.getTime()),this.size=e.size,this.type=e.type,this.name=e.name},e}(),h=function(){function e(e,t,r){this._progress$=new o.BehaviorSubject(0),this._speed$=new o.BehaviorSubject(d),this.options=Object.assign({},c,t),this._speedDefault={},this._id=s.uniqueID(),this._isUploading=!1,this._isUploaded=!1,this._isSuccess=!1,this._isCancel=!1,this._isError=!1;var n=s.isElement(e),i=new f(n?e.files[0]:e);this._file=i,this._fileElement=n?e.files[0]:e,this._fileActive=!1,void 0!==r&&this.bindUploader(r)}return Object.defineProperty(e.prototype,"protocol",{set:function(e){this._protocol=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"id",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"progressPercent$",{get:function(){return s.asObservable(this._progress$)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"progress$",{get:function(){return s.asObservable(this._speed$)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"progress",{get:function(){return this._progress$.getValue()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"element",{get:function(){return this._fileElement},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"object",{get:function(){return this._file},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"name",{get:function(){return this._file.name},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"type",{get:function(){return this._file.type},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"date",{get:function(){return this._file.lastModifiedDate},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"size",{get:function(){return this._file.size},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inQueue",{get:function(){return this._fileActive},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"success",{get:function(){return this._isSuccess},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"error",{get:function(){return this._isError},enumerable:!0,configurable:!0}),e.prototype.bindUploader=function(e){this._uploader instanceof u&&this._uploader.removeFile(this),this._uploader=e;var t=this._uploader.addFile(this);this._setFileActive(t)},e.prototype.bindOptions=function(e){this.options=Object.assign({},this.options,e)},e.prototype.getUploader=function(){if(this._uploader instanceof u)return this._uploader;throw new Error("Not uploader for this file defined.")},e.prototype.upload=function(){var e;try{e=this.getUploader()}catch(e){throw new Error("Couldn`t upload because uploader was not defined. ERR_MSG: "+e.message)}this._isUploading=!0;try{e.uploadItem(this)}catch(e){}},e.prototype.cancel=function(){if(this._isUploading){this.getUploader().cancelUploadItem(this)}},e.prototype._cancel=function(){this._isUploading&&(this._isCancel=!0,this._isUploaded=!1,this._isUploading=!1)},e.prototype.remove=function(){var e;try{e=this.getUploader()}catch(e){throw new Error("Couldn`t remove because uploader was not defined. ERR_MSG: "+e.message)}this._isUploading&&this.cancel(),e.removeFile(this),this._setFileActive(!1)},e.prototype.isUploaded=function(){return this._isUploaded},e.prototype.isUploading=function(){return this._isUploading},e.prototype.canUpload=function(){return!(this._isUploaded||this._isUploading||this._isSuccess||this._isError)},e.prototype.handleImageLoad=function(){this._imageLoad=!0},e.prototype.onBeforeUpload=function(){},e.prototype.onProgressSpeed=function(e){e=e},e.prototype.onProgress=function(e){e=e},e.prototype.onSuccess=function(e,t,o){e=e,t=t,o=o},e.prototype.onError=function(e,t,o){e=e,t=t,o=o},e.prototype._onBeforeUpload=function(){this._isUploading=!0,this._isUploaded=!1,this._isSuccess=!1,this._isCancel=!1,this._isError=!1,this._progress$.next(0),this.onBeforeUpload()},e.prototype._onProgressFileSpeed=function(e){this._speed$.next(e),this.onProgressSpeed(e)},e.prototype._onProgress=function(e){this._progress$.next(e),this.onProgress(e)},e.prototype._onSuccess=function(e,t,o){this._uploader.options.removeBySuccess&&this.remove(),this._isUploading=!1,this._isUploaded=!0,this._isSuccess=!0,this._isError=!1,this.onSuccess(e,t,o)},e.prototype._onError=function(e,t,o){this._isUploading=!1,this._isUploaded=!1,this._isSuccess=!1,this._isError=!0,this.onError(e,t,o)},e.prototype._setFileActive=function(e){this._fileActive=e},e}(),g=function(){function e(e,o){this.element=e,this.renderer=o,this.fileHoverStart=new t.EventEmitter,this.fileHoverEnd=new t.EventEmitter,this.fileAccepted=new t.EventEmitter,this.fileRejected=new t.EventEmitter,this._InputFile=null}return e.prototype.ngOnInit=function(){this._files=[],this.renderer.setElementClass(this.element.nativeElement,"drop-area",!0)},e.prototype.ngOnDestroy=function(){if(this._files.length>0)for(var e=0,t=this._files;e<t.length;e++){var o=t[e];o instanceof h&&(o.isUploaded()||(o.cancel(),this.uploader.removeFile(o)))}},e.prototype.onDragOver=function(e){if(null===this._InputFile){if(this._InputFile=this.getDataTransferObject(e),null===this._InputFile)return;this.renderer.setElementClass(this.element.nativeElement,"drop-enter",!0);this.renderer.setElementAttribute(this.element.nativeElement,"dropValueText","Drop now"),this.fileHoverStart.emit()}this.preventAndStopEventPropagation(e)},e.prototype.onDragLeave=function(e){if(null!==this._InputFile){if(this.renderer.setElementClass(this.element.nativeElement,"drop-enter",!1),this.renderer.setElementAttribute(this.element.nativeElement,"dropValueText",""),this._InputFile=null,e.currentTarget===this.element[0])return;this.fileHoverEnd.emit()}this.preventAndStopEventPropagation(e)},e.prototype.onDrop=function(e){if(null!==this._InputFile){if(this.renderer.setElementClass(this.element.nativeElement,"drop-enter",!1),this.renderer.setElementAttribute(this.element.nativeElement,"dropValueText",""),this.fileHoverEnd.emit(),this._InputFile=this.getDataTransferObject(e),0===this._InputFile.files.length)return void(this._InputFile=null);var t=this._InputFile.files;if(!this.hasFiles(this._InputFile.types))return;this.readFile(t),this.fileAccepted.emit(this._files),this._InputFile=null}this.preventAndStopEventPropagation(e)},e.prototype.preventAndStopEventPropagation=function(e){e.preventDefault(),e.stopPropagation()},e.prototype.readFile=function(e){for(var t,o=0;o<e.length;o++){var r=e[o];try{t=new h(r,this.fileOptions,this.uploader)}catch(e){throw e.status,this.fileRejected.emit(e),new Error("Something goes wrong e: "+e.message)}t.inQueue&&this._files.push(t)}},e.prototype.getDataTransferObject=function(e){return e.dataTransfer?e.dataTransfer:e.originalEvent.dataTransfer},e.prototype.hasFiles=function(e){return!!e&&(e.indexOf?e.indexOf("Files")!==-1:!!e.contains&&e.contains("Files"))},e}();g.decorators=[{type:t.Directive,args:[{selector:"[ng2File2Drop]"}]}],g.ctorParameters=function(){return[{type:t.ElementRef},{type:t.Renderer}]},g.propDecorators={fileHoverStart:[{type:t.Output}],fileHoverEnd:[{type:t.Output}],fileAccepted:[{type:t.Output}],fileRejected:[{type:t.Output}],fileOptions:[{type:t.Input}],uploader:[{type:t.Input}],onDragOver:[{type:t.HostListener,args:["dragover",["$event"]]}],onDragLeave:[{type:t.HostListener,args:["dragleave",["$event"]]}],onDrop:[{type:t.HostListener,args:["drop",["$event"]]}]};var _=function(){function e(){this.role="input",this.type="file",this.fileHoverStart=new t.EventEmitter,this.fileHoverEnd=new t.EventEmitter,this.fileAccepted=new t.EventEmitter,this.fileRejected=new t.EventEmitter,this._InputFile=null}return e.prototype.ngOnInit=function(){this._files=[]},e.prototype.ngOnDestroy=function(){if(this._files.length>0)for(var e=0,t=this._files;e<t.length;e++){var o=t[e];o instanceof h&&(o.isUploaded()||(o.cancel(),this.uploader.removeFile(o)))}},e.prototype.onChange=function(e){if(this._InputFile=this.getEventTarget(e),0===this._InputFile.files.length)return void(this._InputFile=null);var t=this._InputFile.files;console.log("onChange",t),this.readFile(t),this.fileAccepted.emit(this._files),this._InputFile=null,this.preventAndStopEventPropagation(e)},e.prototype.preventAndStopEventPropagation=function(e){e.preventDefault(),e.stopPropagation()},e.prototype.readFile=function(e){for(var t,o=0;o<e.length;o++){var r=e[o];try{t=new h(r,this.fileOptions,this.uploader)}catch(e){throw e.status,this.fileRejected.emit(e),new Error("Something goes wrong e: "+e.message)}t.inQueue&&this._files.push(t)}},e.prototype.getEventTarget=function(e){return e.target},e}();_.decorators=[{type:t.Directive,args:[{selector:"[ng2File2Select]"}]}],_.ctorParameters=function(){return[]},_.propDecorators={role:[{type:t.HostBinding,args:["attr.role"]}],type:[{type:t.HostBinding,args:["attr.type"]}],fileHoverStart:[{type:t.Output}],fileHoverEnd:[{type:t.Output}],fileAccepted:[{type:t.Output}],fileRejected:[{type:t.Output}],fileOptions:[{type:t.Input}],uploader:[{type:t.Input}],onChange:[{type:t.HostListener,args:["change",["$event"]]}]};var y=window.FileReader,v=function(){function e(e){this.el=e}return e.prototype.ngOnChanges=function(){var e=new y,t=this.el;if(t.nativeElement.src="data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' viewBox%3D'0 0 200 150'%2F%3E",e.onloadend=function(){t.nativeElement.src=e.result},this.image)return e.readAsDataURL(this.image.element)},e}();v.decorators=[{type:t.Directive,args:[{selector:"img[imgPreview]"}]}],v.ctorParameters=function(){return[{type:t.ElementRef}]},v.propDecorators={image:[{type:t.Input}]};var m=function(){function e(){this.units=["bytes","KB","MB","GB","TB","PB"]}return e.prototype.transform=function(e,t){if(void 0===e&&(e=0),void 0===t&&(t=2),!isFinite(e))return"?";for(var o=0;e>=1024;)e/=1024,o++;return e.toFixed(+t)+" "+this.units[o]},e}();m.decorators=[{type:t.Pipe,args:[{name:"fileSize"}]}],m.ctorParameters=function(){return[]};var b=function(){function e(e,t){this.el=e,this.renderer=t}return e.prototype.ngOnChanges=function(){if(this.el.nativeElement.value=this.progress.percent,this.progress.speed>0){var e=new m;this.renderer.setElementAttribute(this.el.nativeElement,"speedText",e.transform(this.progress.loaded))}else this.renderer.setElementAttribute(this.el.nativeElement,"speedText","")},e}();b.decorators=[{type:t.Directive,args:[{selector:"progress[progressBar]"}]}],b.ctorParameters=function(){return[{type:t.ElementRef},{type:t.Renderer}]},b.propDecorators={progress:[{type:t.Input}]};var F=window.FormData,E=function(){function e(){this._id=s.uniqueID(),this._progress=new t.EventEmitter,this._load=new t.EventEmitter,this._error=new t.EventEmitter,this._abort=new t.EventEmitter,this._connections=[]}return Object.defineProperty(e.prototype,"connection",{set:function(e){var t=e._file,o=e._connection;this.isConnected(t)||this._connections.push({id:t.id,connection:o})},enumerable:!0,configurable:!0}),e.prototype._onLoad=function(e,t,o,r){var n=e.getUploader(),i=this._isSuccessCode(o);!function(e,t,o,r,i){e?n._onSuccessFile(t,o,r,i):n._onErrorFile(t,o,r,i)}(i,e,t,o,r),n._onCompleteFile(e,t,o,r)},e.prototype._onError=function(e,t,o,r){var n=e.getUploader();n._onErrorFile(e,t,o,r),n._onCompleteFile(e,t,o,r)},e.prototype._onAbort=function(e,t,o,r){var n=e.getUploader();n._onErrorFile(e,t,o,r),n._onCompleteFile(e,t,o,r)},e.prototype._isSuccessCode=function(e){return e>=200&&e<300||304===e},e.prototype.isConnected=function(e){for(var t=0,o=this._connections;t<o.length;t++){var r=o[t];if(r.id===e.id)return r}return!1},e.prototype.removeConnection=function(e){var t=null;for(var o in this._connections)this._connections.hasOwnProperty(o)&&(t=this._connections[o],e.id===t.id&&this._connections.splice(+o,1))},e.prototype.run=function(e){},e.prototype.cancel=function(e){},e}(),U=function(e){function t(){return e.call(this)||this}return i(t,e),t.prototype.run=function(e){var t,o,r=this,n=e.getUploader(),i=s.extendValue(n.options.formData,e.options.formData),l=s.extendValue(n.options.withCredentials,e.options.withCredentials),a=s.extendValue(n.options.method,e.options.method),p=s.extendValue(n.options.url,e.options.url),u=s.extendValue(n.options.alias,e.options.alias),c=s.extendValue(n.options.headers,e.options.headers),d=(new Date).getTime(),f=0,h=0,g=null,_=new m;if(t=new XMLHttpRequest,this.connection={_file:e,_connection:t},o=new F,void 0!==i)for(var y=0,v=i;y<v.length;y++){var b=v[y];for(var E in b)if(b.hasOwnProperty(E)){var U=b[E];o.append(E,U)}}if(o.append(u,e.element,e.name),"number"!=typeof e.size)throw new TypeError("We need the file size.");t.upload.addEventListener("progress",function(t){if(t.lengthComputable){var o=(new Date).getTime()-d;f=t.loaded-f,h=f/o*1e3,h=parseInt(h,10),g=_.transform(h);var n={total:t.total,loaded:t.loaded,percent:Math.round(t.loaded/t.total*100),speed:h,speedToText:g};r._progress.emit({_file:e,_data:n})}}),t.addEventListener("load",function(){var o=n._parseHeaders(t.getAllResponseHeaders()),i=n._transformResponse(t.response,o);console.log("File upload done");var s=t.status;r._load.emit({_file:e,response:i,status:s,headers:o})}),t.addEventListener("error",function(){var o=n._parseHeaders(t.getAllResponseHeaders()),i=n._transformResponse(t.response,o);console.log("File upload error");var s=t.status;r._error.emit({_file:e,response:i,status:s,headers:o})}),t.addEventListener("abort",function(){var o=n._parseHeaders(t.getAllResponseHeaders()),i=n._transformResponse(t.response,o);console.log("File upload abort");var s=t.status;r._abort.emit({_file:e,response:i,status:s,headers:o})}),t.open(a,p,!0),t.withCredentials=l;for(var w in c)if(c.hasOwnProperty(w)){var U=c[w];t.setRequestHeader(w,U)}t.send(o)},t.prototype.cancel=function(e){var t=this.isConnected(e);t&&(t.connection.abort(),this.removeConnection(e))},t}(E),w=function(e){function t(t,o){var r=e.call(this,"FileUploader",t)||this;if(r._subs=[],void 0===o){r._setProtocol(new U);var n=r._getProtocol()._progress.subscribe(function(e){var t=e._file,o=e._data;t instanceof h&&(r._onProgressFile(t,o.percent),r._onProgressFileSpeed(t,o))},function(e){throw new Error(e)});r._subs.push(n);var i=r._getProtocol()._load.subscribe(function(e){var t=e._file,o=e.response,n=e.status,i=e.headers;if(t instanceof h){var s=t.getUploader(),l=r._isSuccessCode(n);!function(e,t,o,r,n){e?s._onSuccessFile(t,o,r,n):s._onErrorFile(t,o,r,n)}(l,t,o,n,i),s._onCompleteFile(t,o,n,i)}},function(e){throw new Error(e)});r._subs.push(i);var s=r._getProtocol()._error.subscribe(function(e){var t=e._file,o=e.response,r=e.status,n=e.headers;if(t instanceof h){var i=t.getUploader();i._onErrorFile(t,o,r,n),i._onCompleteFile(t,o,r,n)}},function(e){throw new Error(e)});r._subs.push(s);var l=r._getProtocol()._abort.subscribe(function(e){var t=e._file,o=e.response,r=e.status,n=e.headers;if(t instanceof h){var i=t.getUploader();i._onErrorFile(t,o,r,n),i._onCompleteFile(t,o,r,n)}},function(e){throw new Error(e)});r._subs.push(l)}return r}return i(t,e),t.prototype.destroy=function(){for(var e=0,t=this._subs;e<t.length;e++){t[e].unsubscribe()}this._subs=[]},t}(u),x={};x.regex=0,x.callback=1,x[x.regex]="regex",x[x.callback]="callback";var A=function(){function e(e,t,o){if(void 0===o&&(o="name"),this._name="",this._regex=null,this._regCheck=null,this._callback=null,this._type=null,this._name=e,t instanceof RegExp)return this._type=x.regex,this._regex=t,void(this._regCheck=o);if(t instanceof Function)return this._type=x.callback,void(this._callback=t);throw new Error("FilterData is not defined.")}return Object.defineProperty(e.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"type",{get:function(){return this._type},enumerable:!0,configurable:!0}),e.prototype.validate=function(e){var t=!1;switch(this._type){case x.regex:switch(this._regCheck){case"name":e.object.name.match(this._regex)&&(t=!0);break;case"type":e.object.type.match(this._regex)&&(t=!0);break;case"size":e.object.size.match(this._regex)&&(t=!0);break;case"date":var o=new n.DatePipe("en-US").transform(e.object.lastModifiedDate,"yyyy-MM-dd hh:mm:ss");o&&o.match(this._regex)&&(t=!0);break;default:throw new Error("RegExp can only check on `name | type | size | date`.")}break;case x.callback:t=this._callback(e);break;default:throw new Error("Filter type is not defined.")}return t},e}(),P=function(){function e(){}return e}();P.decorators=[{type:t.NgModule,args:[{declarations:[_,g,v,b,m],exports:[_,g,v,b,m],providers:[]}]}],P.ctorParameters=function(){return[]},e.FileDropDirective=g,e.FileSelectDirective=_,e.ImagePreviewDirective=v,e.ProgressBarDirective=b,e.FileObject=f,e.FileManager=h,e.FileUploader=w,e.Protocol=E,e.ProtocolXHR=U,e.Transfer=u,e.UploaderHook=a,e.filterType=x,e.FileFilter=A,e.Utils=s,e.FileSizePipe=m,e.FileUploaderModule=P,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=ngxfileuploader.umd.min.js.map