UNPKG

@ngx-loading-bar/http-client

Version:

Automatic page loading / progress bar for Angular

32 lines 3.98 kB
import { __decorate, __metadata } from "tslib"; import { LoadingBarService } from '@ngx-loading-bar/core'; import { Injectable } from '@angular/core'; import { finalize, tap } from 'rxjs/operators'; let LoadingBarInterceptor = class LoadingBarInterceptor { constructor(loader) { this.loader = loader; } intercept(req, next) { // https://github.com/angular/angular/issues/18155 if (req.headers.has('ignoreLoadingBar')) { return next.handle(req.clone({ headers: req.headers.delete('ignoreLoadingBar') })); } let started = false; const ref = this.loader.useRef('http'); return next.handle(req).pipe(tap(() => { if (!started) { ref.start(); started = true; } }), finalize(() => started && ref.complete())); } }; LoadingBarInterceptor.ctorParameters = () => [ { type: LoadingBarService } ]; LoadingBarInterceptor = __decorate([ Injectable(), __metadata("design:paramtypes", [LoadingBarService]) ], LoadingBarInterceptor); export { LoadingBarInterceptor }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1iYXIuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4LWxvYWRpbmctYmFyL2h0dHAtY2xpZW50LyIsInNvdXJjZXMiOlsibG9hZGluZy1iYXIuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcvQyxJQUFhLHFCQUFxQixHQUFsQyxNQUFhLHFCQUFxQjtJQUNoQyxZQUFvQixNQUF5QjtRQUF6QixXQUFNLEdBQU4sTUFBTSxDQUFtQjtJQUFHLENBQUM7SUFFakQsU0FBUyxDQUFDLEdBQXFCLEVBQUUsSUFBaUI7UUFDaEQsa0RBQWtEO1FBQ2xELElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUN2QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3BGO1FBRUQsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzFCLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNaLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWixPQUFPLEdBQUcsSUFBSSxDQUFDO2FBQ2hCO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FDMUMsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFBOztZQXBCNkIsaUJBQWlCOztBQURsQyxxQkFBcUI7SUFEakMsVUFBVSxFQUFFO3FDQUVpQixpQkFBaUI7R0FEbEMscUJBQXFCLENBcUJqQztTQXJCWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2FkaW5nQmFyU2VydmljZSB9IGZyb20gJ0BuZ3gtbG9hZGluZy1iYXIvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBJbnRlcmNlcHRvciwgSHR0cEhhbmRsZXIsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExvYWRpbmdCYXJJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9hZGVyOiBMb2FkaW5nQmFyU2VydmljZSkge31cblxuICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xODE1NVxuICAgIGlmIChyZXEuaGVhZGVycy5oYXMoJ2lnbm9yZUxvYWRpbmdCYXInKSkge1xuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcS5jbG9uZSh7IGhlYWRlcnM6IHJlcS5oZWFkZXJzLmRlbGV0ZSgnaWdub3JlTG9hZGluZ0JhcicpIH0pKTtcbiAgICB9XG5cbiAgICBsZXQgc3RhcnRlZCA9IGZhbHNlO1xuICAgIGNvbnN0IHJlZiA9IHRoaXMubG9hZGVyLnVzZVJlZignaHR0cCcpO1xuICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICBpZiAoIXN0YXJ0ZWQpIHtcbiAgICAgICAgICByZWYuc3RhcnQoKTtcbiAgICAgICAgICBzdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiBzdGFydGVkICYmIHJlZi5jb21wbGV0ZSgpKSxcbiAgICApO1xuICB9XG59XG4iXX0=