UNPKG

ais-uploader

Version:

Simple uploader library for Angular 2+

152 lines 11.2 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Injectable } from '@angular/core'; import { HttpClient, HttpEventType } from '@angular/common/http'; import { BehaviorSubject } from 'rxjs'; import { last, map } from 'rxjs/operators'; var AisUploaderService = /** @class */ (function () { function AisUploaderService(http) { this.http = http; this._uploadingProgress$ = new BehaviorSubject(0); } Object.defineProperty(AisUploaderService.prototype, "uploadingProgress", { get: /** * @return {?} */ function () { return this._uploadingProgress$.asObservable(); }, enumerable: true, configurable: true }); /** * @param {?} file * @param {?} config * @return {?} */ AisUploaderService.prototype.upload = /** * @param {?} file * @param {?} config * @return {?} */ function (file, config) { var _this = this; if (!file) return null; this._uploadingProgress$.next(0); /** @type {?} */ var formData = new FormData(); formData.append('file', file); return this.http.post("" + config.apiUrl, formData, { headers: config.headers, responseType: config.responseType, reportProgress: true, observe: 'events', }).pipe(map(function (event) { return _this.getEventMessage(event); }), last()); }; /** * @param {?} files * @param {?} config * @return {?} */ AisUploaderService.prototype.uploadMultiple = /** * @param {?} files * @param {?} config * @return {?} */ function (files, config) { var _this = this; var e_1, _a; if (!files || !files.length) return null; /** @type {?} */ var formData = new FormData(); try { for (var files_1 = tslib_1.__values(files), files_1_1 = files_1.next(); !files_1_1.done; files_1_1 = files_1.next()) { var file = files_1_1.value; formData.append('file', file); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (files_1_1 && !files_1_1.done && (_a = files_1.return)) _a.call(files_1); } finally { if (e_1) throw e_1.error; } } return this.http.post("" + config.apiUrl, formData, { headers: config.headers, responseType: config.responseType, reportProgress: true, observe: 'events', }).pipe(map(function (event) { return _this.getEventMessage(event); }), last()); }; /** * @param {?} event * @return {?} */ AisUploaderService.prototype.getEventMessage = /** * @param {?} event * @return {?} */ function (event) { if (event.type) { switch (event.type) { case HttpEventType.UploadProgress: /** @type {?} */ var percentDone = Math.round(100 * event.loaded / event.total); this.showProgress(percentDone); return; case HttpEventType.Response: this.resetProgress(); return event.body; default: return 0; } } }; /** * @param {?} persentage * @return {?} */ AisUploaderService.prototype.showProgress = /** * @param {?} persentage * @return {?} */ function (persentage) { this._uploadingProgress$.next(persentage); }; /** * @return {?} */ AisUploaderService.prototype.resetProgress = /** * @return {?} */ function () { }; AisUploaderService.decorators = [ { type: Injectable } ]; /** @nocollapse */ AisUploaderService.ctorParameters = function () { return [ { type: HttpClient } ]; }; return AisUploaderService; }()); export { AisUploaderService }; if (false) { /** * @type {?} * @private */ AisUploaderService.prototype._uploadingProgress$; /** * @type {?} * @private */ AisUploaderService.prototype.http; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWlzLXVwbG9hZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9haXMtdXBsb2FkZXIvIiwic291cmNlcyI6WyJsaWIvYWlzLXVwbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNDO0lBUUksNEJBQ1ksSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQVBwQix3QkFBbUIsR0FBNEIsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFTdEYsQ0FBQztJQVBELHNCQUFJLGlEQUFpQjs7OztRQUFyQjtZQUNJLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ25ELENBQUM7OztPQUFBOzs7Ozs7SUFPRCxtQ0FBTTs7Ozs7SUFBTixVQUFPLElBQVUsRUFBRSxNQUFzQjtRQUF6QyxpQkFjQztRQWJHLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzs7WUFDM0IsUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFO1FBQy9CLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBRyxNQUFNLENBQUMsTUFBUSxFQUFFLFFBQVEsRUFBRTtZQUNoRCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87WUFDdkIsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZO1lBQ2pDLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLE9BQU8sRUFBRSxRQUFRO1NBQ3BCLENBQUMsQ0FBQyxJQUFJLENBQ0gsR0FBRyxDQUFDLFVBQUEsS0FBSyxJQUFJLE9BQUEsS0FBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBM0IsQ0FBMkIsQ0FBQyxFQUN6QyxJQUFJLEVBQUUsQ0FDVCxDQUFDO0lBQ04sQ0FBQzs7Ozs7O0lBRUQsMkNBQWM7Ozs7O0lBQWQsVUFBZSxLQUFhLEVBQUUsTUFBc0I7UUFBcEQsaUJBZUM7O1FBZEcsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7O1lBQ25DLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRTs7WUFDL0IsS0FBbUIsSUFBQSxVQUFBLGlCQUFBLEtBQUssQ0FBQSw0QkFBQSwrQ0FBRTtnQkFBckIsSUFBTSxJQUFJLGtCQUFBO2dCQUNYLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ2pDOzs7Ozs7Ozs7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUcsTUFBTSxDQUFDLE1BQVEsRUFBRSxRQUFRLEVBQUU7WUFDaEQsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3ZCLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWTtZQUNqQyxjQUFjLEVBQUUsSUFBSTtZQUNwQixPQUFPLEVBQUUsUUFBUTtTQUNwQixDQUFDLENBQUMsSUFBSSxDQUNILEdBQUcsQ0FBQyxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQTNCLENBQTJCLENBQUMsRUFDekMsSUFBSSxFQUFFLENBQ1QsQ0FBQztJQUNOLENBQUM7Ozs7O0lBRUQsNENBQWU7Ozs7SUFBZixVQUFnQixLQUFVO1FBQ3RCLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtZQUNaLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDaEIsS0FBSyxhQUFhLENBQUMsY0FBYzs7d0JBQ3ZCLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7b0JBQ2hFLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQy9CLE9BQU87Z0JBQ1gsS0FBSyxhQUFhLENBQUMsUUFBUTtvQkFDdkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUNyQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ3RCO29CQUNJLE9BQU8sQ0FBQyxDQUFDO2FBQ2hCO1NBQ0o7SUFDTCxDQUFDOzs7OztJQUVELHlDQUFZOzs7O0lBQVosVUFBYSxVQUFrQjtRQUMzQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7Ozs7SUFFRCwwQ0FBYTs7O0lBQWI7SUFFQSxDQUFDOztnQkFwRUosVUFBVTs7OztnQkFMRixVQUFVOztJQTBFbkIseUJBQUM7Q0FBQSxBQXJFRCxJQXFFQztTQXBFWSxrQkFBa0I7Ozs7OztJQUMzQixpREFBc0Y7Ozs7O0lBT2xGLGtDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGxhc3QsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVXBsb2FkZXJDb25maWcgfSBmcm9tICcuL21vZGVscy91cGxvYWRlci1jb25maWcnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQWlzVXBsb2FkZXJTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgX3VwbG9hZGluZ1Byb2dyZXNzJDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XHJcblxyXG4gICAgZ2V0IHVwbG9hZGluZ1Byb2dyZXNzKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VwbG9hZGluZ1Byb2dyZXNzJC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICB1cGxvYWQoZmlsZTogRmlsZSwgY29uZmlnOiBVcGxvYWRlckNvbmZpZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgaWYgKCFmaWxlKSByZXR1cm4gbnVsbDtcclxuICAgICAgICB0aGlzLl91cGxvYWRpbmdQcm9ncmVzcyQubmV4dCgwKTtcclxuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHtjb25maWcuYXBpVXJsfWAsIGZvcm1EYXRhLCB7XHJcbiAgICAgICAgICAgIGhlYWRlcnM6IGNvbmZpZy5oZWFkZXJzLFxyXG4gICAgICAgICAgICByZXNwb25zZVR5cGU6IGNvbmZpZy5yZXNwb25zZVR5cGUsXHJcbiAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG4gICAgICAgICAgICBvYnNlcnZlOiAnZXZlbnRzJyxcclxuICAgICAgICB9KS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoZXZlbnQgPT4gdGhpcy5nZXRFdmVudE1lc3NhZ2UoZXZlbnQpKSxcclxuICAgICAgICAgICAgbGFzdCgpLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBsb2FkTXVsdGlwbGUoZmlsZXM6IEZpbGVbXSwgY29uZmlnOiBVcGxvYWRlckNvbmZpZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgaWYgKCFmaWxlcyB8fCAhZmlsZXMubGVuZ3RoKSByZXR1cm4gbnVsbDtcclxuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xyXG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke2NvbmZpZy5hcGlVcmx9YCwgZm9ybURhdGEsIHtcclxuICAgICAgICAgICAgaGVhZGVyczogY29uZmlnLmhlYWRlcnMsXHJcbiAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogY29uZmlnLnJlc3BvbnNlVHlwZSxcclxuICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgICAgICAgIG9ic2VydmU6ICdldmVudHMnLFxyXG4gICAgICAgIH0pLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChldmVudCA9PiB0aGlzLmdldEV2ZW50TWVzc2FnZShldmVudCkpLFxyXG4gICAgICAgICAgICBsYXN0KCksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRFdmVudE1lc3NhZ2UoZXZlbnQ6IGFueSk6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUpIHtcclxuICAgICAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3M6XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGVyY2VudERvbmUgPSBNYXRoLnJvdW5kKDEwMCAqIGV2ZW50LmxvYWRlZCAvIGV2ZW50LnRvdGFsKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dQcm9ncmVzcyhwZXJjZW50RG9uZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlOlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRQcm9ncmVzcygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBldmVudC5ib2R5O1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzaG93UHJvZ3Jlc3MocGVyc2VudGFnZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdXBsb2FkaW5nUHJvZ3Jlc3MkLm5leHQocGVyc2VudGFnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVzZXRQcm9ncmVzcygpOiB2b2lkIHtcclxuXHJcbiAgICB9XHJcbn1cclxuIl19