UNPKG

@duoduo-oba/ng-devui

Version:

DevUI components based on Angular

134 lines 12.3 kB
/** * @fileoverview added by tsickle * Generated from: file-uploader.class.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { UploadStatus } from './file-uploader.types'; export class FileUploader { /** * @param {?} file * @param {?} uploadOptions */ constructor(file, uploadOptions) { this.file = file; this.uploadOptions = uploadOptions; this.percentage = 0; this.file = file; this.uploadOptions = uploadOptions; this.status = UploadStatus.preLoad; } /** * @return {?} */ send() { return new Promise((/** * @param {?} resolve * @param {?} reject * @return {?} */ (resolve, reject) => { const { uri, method, headers, authToken, authTokenHeader, additionalParameter, fileFieldName, withCredentials } = this.uploadOptions; /** @type {?} */ const authTokenHeader_ = authTokenHeader || 'Authorization'; /** @type {?} */ const fileFieldName_ = fileFieldName || 'file'; this.xhr = new XMLHttpRequest(); this.xhr.open(method || 'POST', uri); if (withCredentials) { this.xhr.withCredentials = withCredentials; } if (authToken) { this.xhr.setRequestHeader(authTokenHeader_, authToken); } if (headers) { Object.keys(headers).forEach((/** * @param {?} key * @return {?} */ (key) => { this.xhr.setRequestHeader(key, headers[key]); })); } this.xhr.upload.onprogress = (/** * @param {?} e * @return {?} */ e => { this.percentage = Math.round(e.loaded * 100 / e.total); }); /** @type {?} */ const formData = new FormData(); formData.append(fileFieldName_, this.file); if (additionalParameter) { Object.keys(additionalParameter).forEach((/** * @param {?} key * @return {?} */ (key) => { formData.append(key, additionalParameter[key]); })); } this.xhr.send(formData); this.status = UploadStatus.uploading; this.xhr.onabort = (/** * @return {?} */ () => { this.status = UploadStatus.preLoad; this.xhr = null; }); this.xhr.onerror = (/** * @return {?} */ () => { this.response = this.xhr.response; this.status = UploadStatus.failed; reject(new Error('Upload failed in some reason.')); }); this.xhr.onload = (/** * @return {?} */ () => { if (this.xhr.readyState === 4 && this.xhr.status >= 200 && this.xhr.status < 300) { this.response = this.xhr.response; this.status = UploadStatus.uploaded; resolve({ file: this.file, response: this.xhr.response }); } else { this.response = this.xhr.response; this.status = UploadStatus.failed; reject({ file: this.file, response: this.xhr.response }); } }); })); } /** * @return {?} */ cancel() { if (this.xhr) { this.xhr.abort(); } } } if (false) { /** * @type {?} * @private */ FileUploader.prototype.xhr; /** @type {?} */ FileUploader.prototype.status; /** @type {?} */ FileUploader.prototype.response; /** @type {?} */ FileUploader.prototype.percentage; /** @type {?} */ FileUploader.prototype.file; /** * @type {?} * @private */ FileUploader.prototype.uploadOptions; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWRldnVpL3VwbG9hZC8iLCJzb3VyY2VzIjpbImZpbGUtdXBsb2FkZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBRUwsWUFBWSxFQUNiLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsTUFBTSxPQUFPLFlBQVk7Ozs7O0lBTXZCLFlBQW1CLElBQVUsRUFDbkIsYUFBNkI7UUFEcEIsU0FBSSxHQUFKLElBQUksQ0FBTTtRQUNuQixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFIaEMsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUlwQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7SUFDckMsQ0FBQzs7OztJQUVNLElBQUk7UUFDVCxPQUFPLElBQUksT0FBTzs7Ozs7UUFBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtrQkFDL0IsRUFDSixHQUFHLEVBQ0gsTUFBTSxFQUNOLE9BQU8sRUFDUCxTQUFTLEVBQ1QsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixhQUFhLEVBQ2IsZUFBZSxFQUNoQixHQUFHLElBQUksQ0FBQyxhQUFhOztrQkFDaEIsZ0JBQWdCLEdBQUcsZUFBZSxJQUFJLGVBQWU7O2tCQUNyRCxjQUFjLEdBQUcsYUFBYSxJQUFJLE1BQU07WUFFOUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFFckMsSUFBSSxlQUFlLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQzthQUM1QztZ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RUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7aUJBQzFEO1lBQ0gsQ0FBQyxDQUFBLENBQUM7UUFDSixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFTSxNQUFNO1FBQ1gsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUM7Q0FDRjs7Ozs7O0lBekZDLDJCQUE0Qjs7SUFDNUIsOEJBQTRCOztJQUM1QixnQ0FBcUI7O0lBQ3JCLGtDQUFzQjs7SUFFViw0QkFBaUI7Ozs7O0lBQzNCLHFDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgSVVwbG9hZE9wdGlvbnMsXHJcbiAgVXBsb2FkU3RhdHVzXHJcbn0gZnJvbSAnLi9maWxlLXVwbG9hZGVyLnR5cGVzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkZXIge1xyXG4gIHByaXZhdGUgeGhyOiBYTUxIdHRwUmVxdWVzdDtcclxuICBwdWJsaWMgc3RhdHVzOiBVcGxvYWRTdGF0dXM7XHJcbiAgcHVibGljIHJlc3BvbnNlOiBhbnk7XHJcbiAgcHVibGljIHBlcmNlbnRhZ2UgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZmlsZTogRmlsZSxcclxuICAgIHByaXZhdGUgdXBsb2FkT3B0aW9uczogSVVwbG9hZE9wdGlvbnMpIHtcclxuICAgIHRoaXMuZmlsZSA9IGZpbGU7XHJcbiAgICB0aGlzLnVwbG9hZE9wdGlvbnMgPSB1cGxvYWRPcHRpb25zO1xyXG4gICAgdGhpcy5zdGF0dXMgPSBVcGxvYWRTdGF0dXMucHJlTG9hZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZW5kKCk6IFByb21pc2U8eyBmaWxlOiBGaWxlLCByZXNwb25zZTogYW55IH0+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIGNvbnN0IHtcclxuICAgICAgICB1cmksXHJcbiAgICAgICAgbWV0aG9kLFxyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgICAgYXV0aFRva2VuLFxyXG4gICAgICAgIGF1dGhUb2tlbkhlYWRlcixcclxuICAgICAgICBhZGRpdGlvbmFsUGFyYW1ldGVyLFxyXG4gICAgICAgIGZpbGVGaWVsZE5hbWUsXHJcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzXHJcbiAgICAgIH0gPSB0aGlzLnVwbG9hZE9wdGlvbnM7XHJcbiAgICAgIGNvbnN0IGF1dGhUb2tlbkhlYWRlcl8gPSBhdXRoVG9rZW5IZWFkZXIgfHwgJ0F1dGhvcml6YXRpb24nO1xyXG4gICAgICBjb25zdCBmaWxlRmllbGROYW1lXyA9IGZpbGVGaWVsZE5hbWUgfHwgJ2ZpbGUnO1xyXG5cclxuICAgICAgdGhpcy54aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcclxuICAgICAgdGhpcy54aHIub3BlbihtZXRob2QgfHwgJ1BPU1QnLCB1cmkpO1xyXG5cclxuICAgICAgaWYgKHdpdGhDcmVkZW50aWFscykge1xyXG4gICAgICAgIHRoaXMueGhyLndpdGhDcmVkZW50aWFscyA9IHdpdGhDcmVkZW50aWFscztcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGF1dGhUb2tlbikge1xyXG4gICAgICAgIHRoaXMueGhyLnNldFJlcXVlc3RIZWFkZXIoYXV0aFRva2VuSGVhZGVyXywgYXV0aFRva2VuKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGhlYWRlcnMpIHtcclxuICAgICAgICBPYmplY3Qua2V5cyhoZWFkZXJzKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICAgIHRoaXMueGhyLnNldFJlcXVlc3RIZWFkZXIoa2V5LCBoZWFkZXJzW2tleV0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnhoci51cGxvYWQub25wcm9ncmVzcyA9IGUgPT4ge1xyXG4gICAgICAgIHRoaXMucGVyY2VudGFnZSA9IE1hdGgucm91bmQoZS5sb2FkZWQgKiAxMDAgLyBlLnRvdGFsKTtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAgIGZvcm1EYXRhLmFwcGVuZChmaWxlRmllbGROYW1lXywgdGhpcy5maWxlKTtcclxuICAgICAgaWYgKGFkZGl0aW9uYWxQYXJhbWV0ZXIpIHtcclxuICAgICAgICBPYmplY3Qua2V5cyhhZGRpdGlvbmFsUGFyYW1ldGVyKS5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGtleSwgYWRkaXRpb25hbFBhcmFtZXRlcltrZXldKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy54aHIuc2VuZChmb3JtRGF0YSk7XHJcbiAgICAgIHRoaXMuc3RhdHVzID0gVXBsb2FkU3RhdHVzLnVwbG9hZGluZztcclxuXHJcbiAgICAgIHRoaXMueGhyLm9uYWJvcnQgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBVcGxvYWRTdGF0dXMucHJlTG9hZDtcclxuICAgICAgICB0aGlzLnhociA9IG51bGw7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLnhoci5vbmVycm9yID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucmVzcG9uc2UgPSB0aGlzLnhoci5yZXNwb25zZTtcclxuICAgICAgICB0aGlzLnN0YXR1cyA9IFVwbG9hZFN0YXR1cy5mYWlsZWQ7XHJcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignVXBsb2FkIGZhaWxlZCBpbiBzb21lIHJlYXNvbi4nKSk7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLnhoci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMueGhyLnJlYWR5U3RhdGUgPT09IDQgJiYgdGhpcy54aHIuc3RhdHVzID49IDIwMCAmJiB0aGlzLnhoci5zdGF0dXMgPCAzMDApIHtcclxuICAgICAgICAgIHRoaXMucmVzcG9uc2UgPSB0aGlzLnhoci5yZXNwb25zZTtcclxuICAgICAgICAgIHRoaXMuc3RhdHVzID0gVXBsb2FkU3RhdHVzLnVwbG9hZGVkO1xyXG4gICAgICAgICAgcmVzb2x2ZSh7IGZpbGU6IHRoaXMuZmlsZSwgcmVzcG9uc2U6IHRoaXMueGhyLnJlc3BvbnNlIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnJlc3BvbnNlID0gdGhpcy54aHIucmVzcG9uc2U7XHJcbiAgICAgICAgICB0aGlzLnN0YXR1cyA9IFVwbG9hZFN0YXR1cy5mYWlsZWQ7XHJcbiAgICAgICAgICByZWplY3QoeyBmaWxlOiB0aGlzLmZpbGUsIHJlc3BvbnNlOiB0aGlzLnhoci5yZXNwb25zZSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYW5jZWwoKSB7XHJcbiAgICBpZiAodGhpcy54aHIpIHtcclxuICAgICAgdGhpcy54aHIuYWJvcnQoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19