UNPKG

ngx-progressbar

Version:

<p align="center"> <img height="200px" width="200px" style="text-align: center;" src="https://gitcdn.xyz/repo/MurhafSousli/ngx-progressbar/master/projects/ngx-progressbar-demo/src/assets/logo.svg"> <h1 align="center">Angular Progressbar</h1> </p>

72 lines 9.95 kB
import { Injectable, Optional, Inject } from '@angular/core'; import { finalize } from 'rxjs/operators'; import { NG_PROGRESS_HTTP_CONFIG } from './ng-progress-http.interface'; import * as i0 from "@angular/core"; import * as i1 from "ngx-progressbar"; export class NgProgressInterceptor { constructor(ngProgress, config) { this.ngProgress = ngProgress; this._inProgressCount = 0; this._config = { id: 'root', silentApis: [], matcher: undefined }; this._config = config ? { ...this._config, ...config } : this._config; } intercept(req, next) { // Ignore by request headers if (req.headers.has('ignoreProgressBar')) { return next.handle(req.clone({ headers: req.headers.delete('ignoreProgressBar') })); } // Ignore silent api requests if (this.checkUrl(req)) { return next.handle(req); } this._inProgressCount++; this._progressRef = this.ngProgress.ref(this._config.id); if (!this._progressRef.isStarted) { this._progressRef.start(); } return next.handle(req).pipe(finalize(() => { this._inProgressCount--; if (this._inProgressCount === 0) { this._progressRef.complete(); } })); } /** * Check if request is silent. * @param req request */ checkUrl(req) { const url = req.url.toLowerCase(); if (this._config.matcher && this._config.silentApis?.length) { return checkForMatcher(url, this._config.matcher) && checkForSilentApis(url, this._config.silentApis); } if (this._config.silentApis?.length) { return checkForSilentApis(url, this._config.silentApis); } if (this._config.matcher) { return checkForMatcher(url, this._config.matcher); } return false; } } NgProgressInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgProgressInterceptor, deps: [{ token: i1.NgProgress }, { token: NG_PROGRESS_HTTP_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); NgProgressInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgProgressInterceptor }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NgProgressInterceptor, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: i1.NgProgress }, { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NG_PROGRESS_HTTP_CONFIG] }] }]; } }); function checkForSilentApis(url, silentApis) { return !!silentApis.find((u) => url.includes(u.toLowerCase())); } function checkForMatcher(url, matcher) { return !!url.match(matcher); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctcHJvZ3Jlc3MuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcHJvZ3Jlc3NiYXIvaHR0cC9zcmMvbmctcHJvZ3Jlc3MuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxPQUFPLEVBQTRDLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQUdqSCxNQUFNLE9BQU8scUJBQXFCO0lBVWhDLFlBQXNCLFVBQXNCLEVBQStDLE1BQTZCO1FBQWxHLGVBQVUsR0FBVixVQUFVLENBQVk7UUFScEMscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBRVosWUFBTyxHQUF1QjtZQUM3QyxFQUFFLEVBQUUsTUFBTTtZQUNWLFVBQVUsRUFBRSxFQUFFO1lBQ2QsT0FBTyxFQUFFLFNBQVM7U0FDbkIsQ0FBQztRQUdBLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUVoRCw0QkFBNEI7UUFDNUIsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckY7UUFFRCw2QkFBNkI7UUFDN0IsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtRQUVELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUMzQjtRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzFCLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxDQUFDLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDOUI7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNLLFFBQVEsQ0FBQyxHQUFxQjtRQUNwQyxNQUFNLEdBQUcsR0FBVyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFO1lBQzNELE9BQU8sZUFBZSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3ZHO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUU7WUFDbkMsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN6RDtRQUNELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDeEIsT0FBTyxlQUFlLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDbkQ7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7O2tIQTVEVSxxQkFBcUIsNENBVWtDLHVCQUF1QjtzSEFWOUUscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVU7OzBCQVdzQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHVCQUF1Qjs7QUFxRDNGLFNBQVMsa0JBQWtCLENBQUMsR0FBVyxFQUFFLFVBQW9CO0lBQzNELE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN6RSxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsR0FBVyxFQUFFLE9BQWU7SUFDbkQsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwSW50ZXJjZXB0b3IsIEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBOZ1Byb2dyZXNzLCBOZ1Byb2dyZXNzUmVmIH0gZnJvbSAnbmd4LXByb2dyZXNzYmFyJztcclxuaW1wb3J0IHsgTmdQcm9ncmVzc0h0dHBDb25maWcsIFByb2dyZXNzSHR0cENvbmZpZywgTkdfUFJPR1JFU1NfSFRUUF9DT05GSUcgfSBmcm9tICcuL25nLXByb2dyZXNzLWh0dHAuaW50ZXJmYWNlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE5nUHJvZ3Jlc3NJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcblxyXG4gIHByaXZhdGUgX2luUHJvZ3Jlc3NDb3VudCA9IDA7XHJcbiAgcHJpdmF0ZSBfcHJvZ3Jlc3NSZWYhOiBOZ1Byb2dyZXNzUmVmO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbmZpZzogUHJvZ3Jlc3NIdHRwQ29uZmlnID0ge1xyXG4gICAgaWQ6ICdyb290JyxcclxuICAgIHNpbGVudEFwaXM6IFtdLFxyXG4gICAgbWF0Y2hlcjogdW5kZWZpbmVkXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG5nUHJvZ3Jlc3M6IE5nUHJvZ3Jlc3MsIEBPcHRpb25hbCgpIEBJbmplY3QoTkdfUFJPR1JFU1NfSFRUUF9DT05GSUcpIGNvbmZpZz86IE5nUHJvZ3Jlc3NIdHRwQ29uZmlnKSB7XHJcbiAgICB0aGlzLl9jb25maWcgPSBjb25maWcgPyB7IC4uLnRoaXMuX2NvbmZpZywgLi4uY29uZmlnIH0gOiB0aGlzLl9jb25maWc7XHJcbiAgfVxyXG5cclxuICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuXHJcbiAgICAvLyBJZ25vcmUgYnkgcmVxdWVzdCBoZWFkZXJzXHJcbiAgICBpZiAocmVxLmhlYWRlcnMuaGFzKCdpZ25vcmVQcm9ncmVzc0JhcicpKSB7XHJcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEuY2xvbmUoeyBoZWFkZXJzOiByZXEuaGVhZGVycy5kZWxldGUoJ2lnbm9yZVByb2dyZXNzQmFyJykgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElnbm9yZSBzaWxlbnQgYXBpIHJlcXVlc3RzXHJcbiAgICBpZiAodGhpcy5jaGVja1VybChyZXEpKSB7XHJcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2luUHJvZ3Jlc3NDb3VudCsrO1xyXG5cclxuICAgIHRoaXMuX3Byb2dyZXNzUmVmID0gdGhpcy5uZ1Byb2dyZXNzLnJlZih0aGlzLl9jb25maWcuaWQpO1xyXG4gICAgaWYgKCF0aGlzLl9wcm9ncmVzc1JlZi5pc1N0YXJ0ZWQpIHtcclxuICAgICAgdGhpcy5fcHJvZ3Jlc3NSZWYuc3RhcnQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKS5waXBlKFxyXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5faW5Qcm9ncmVzc0NvdW50LS07XHJcbiAgICAgICAgaWYgKHRoaXMuX2luUHJvZ3Jlc3NDb3VudCA9PT0gMCkge1xyXG4gICAgICAgICAgdGhpcy5fcHJvZ3Jlc3NSZWYuY29tcGxldGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgcmVxdWVzdCBpcyBzaWxlbnQuXHJcbiAgICogQHBhcmFtIHJlcSByZXF1ZXN0XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjaGVja1VybChyZXE6IEh0dHBSZXF1ZXN0PGFueT4pOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHVybDogc3RyaW5nID0gcmVxLnVybC50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgIGlmICh0aGlzLl9jb25maWcubWF0Y2hlciAmJiB0aGlzLl9jb25maWcuc2lsZW50QXBpcz8ubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBjaGVja0Zvck1hdGNoZXIodXJsLCB0aGlzLl9jb25maWcubWF0Y2hlcikgJiYgY2hlY2tGb3JTaWxlbnRBcGlzKHVybCwgdGhpcy5fY29uZmlnLnNpbGVudEFwaXMpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX2NvbmZpZy5zaWxlbnRBcGlzPy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIGNoZWNrRm9yU2lsZW50QXBpcyh1cmwsIHRoaXMuX2NvbmZpZy5zaWxlbnRBcGlzKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9jb25maWcubWF0Y2hlcikge1xyXG4gICAgICByZXR1cm4gY2hlY2tGb3JNYXRjaGVyKHVybCwgdGhpcy5fY29uZmlnLm1hdGNoZXIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gY2hlY2tGb3JTaWxlbnRBcGlzKHVybDogc3RyaW5nLCBzaWxlbnRBcGlzOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAhIXNpbGVudEFwaXMuZmluZCgodTogc3RyaW5nKSA9PiB1cmwuaW5jbHVkZXModS50b0xvd2VyQ2FzZSgpKSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNoZWNrRm9yTWF0Y2hlcih1cmw6IHN0cmluZywgbWF0Y2hlcjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuICEhdXJsLm1hdGNoKG1hdGNoZXIpO1xyXG59XHJcbiJdfQ==