UNPKG

cocori-ng

Version:

Cocori-ng is an Angular full of great components & utilites based on Material

59 lines 6.91 kB
import { Injectable } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; import { finalize } from 'rxjs/operators'; import * as i0 from "@angular/core"; export class LoadingService { constructor() { this.subject = new BehaviorSubject(false); } startLoading() { this.subject.next(true); } stopLoading() { this.subject.next(false); } } LoadingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); LoadingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LoadingService, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LoadingService, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }], ctorParameters: function () { return []; } }); export class LoadingInterceptorService { constructor(loadingScreenService) { this.loadingScreenService = loadingScreenService; this.activeRequests = 0; } intercept(request, next) { if (this.activeRequests === 0) { this.loadingScreenService.startLoading(); } this.activeRequests++; clearTimeout(this.timer); this.timer = setTimeout(() => { this.forceFinalize(); }, 5000); return next.handle(request).pipe(finalize(() => { this.activeRequests--; if (this.activeRequests === 0) { this.loadingScreenService.stopLoading(); clearTimeout(this.timer); } })); } forceFinalize() { this.activeRequests = 0; this.loadingScreenService.stopLoading(); } } LoadingInterceptorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LoadingInterceptorService, deps: [{ token: LoadingService }], target: i0.ɵɵFactoryTarget.Injectable }); LoadingInterceptorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LoadingInterceptorService, providedIn: "root" }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LoadingInterceptorService, decorators: [{ type: Injectable, args: [{ providedIn: "root", }] }], ctorParameters: function () { return [{ type: LoadingService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1pbnRlcmNlcHRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29jb3JpLW5nL3NyYy9mZWF0dXJlLWNvcmUvc2VydmljZS9pbnRlcmNlcHRvcnMvbG9hZGluZy1pbnRlcmNlcHRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBSzFDLE1BQU0sT0FBTyxjQUFjO0lBR3pCO1FBRkEsWUFBTyxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUV4RCxDQUFDO0lBRWpCLFlBQVk7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7OzJHQVhVLGNBQWM7K0dBQWQsY0FBYyxjQUZiLE1BQU07MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7O0FBa0JELE1BQU0sT0FBTyx5QkFBeUI7SUFJcEMsWUFBb0Isb0JBQW9DO1FBQXBDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBZ0I7UUFIeEQsbUJBQWMsR0FBVyxDQUFDLENBQUM7SUFHaUMsQ0FBQztJQUU3RCxTQUFTLENBQ1AsT0FBeUIsRUFDekIsSUFBaUI7UUFFakIsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLENBQUMsRUFBRTtZQUM3QixJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDMUM7UUFFRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFdEIsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6QixJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVULE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzlCLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFFdEIsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLENBQUMsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUV4QyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzFCO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFDLENBQUM7O3NIQXRDVSx5QkFBeUIsa0JBSU0sY0FBYzswSEFKN0MseUJBQXlCLGNBRnhCLE1BQU07MkZBRVAseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjswREFLMkMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2FkaW5nU2VydmljZSB7XHJcbiAgc3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIHN0YXJ0TG9hZGluZygpIHtcclxuICAgIHRoaXMuc3ViamVjdC5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgc3RvcExvYWRpbmcoKSB7XHJcbiAgICB0aGlzLnN1YmplY3QubmV4dChmYWxzZSk7XHJcbiAgfVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2FkaW5nSW50ZXJjZXB0b3JTZXJ2aWNlIHtcclxuICBhY3RpdmVSZXF1ZXN0czogbnVtYmVyID0gMDtcclxuICB0aW1lcjogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvYWRpbmdTY3JlZW5TZXJ2aWNlOiBMb2FkaW5nU2VydmljZSkgeyB9XHJcblxyXG4gIGludGVyY2VwdChcclxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sXHJcbiAgICBuZXh0OiBIdHRwSGFuZGxlclxyXG4gICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVJlcXVlc3RzID09PSAwKSB7XHJcbiAgICAgIHRoaXMubG9hZGluZ1NjcmVlblNlcnZpY2Uuc3RhcnRMb2FkaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hY3RpdmVSZXF1ZXN0cysrO1xyXG5cclxuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcclxuXHJcbiAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZm9yY2VGaW5hbGl6ZSgpO1xyXG4gICAgfSwgNTAwMCk7XHJcblxyXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpLnBpcGUoXHJcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICB0aGlzLmFjdGl2ZVJlcXVlc3RzLS07XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZVJlcXVlc3RzID09PSAwKSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmdTY3JlZW5TZXJ2aWNlLnN0b3BMb2FkaW5nKCk7XHJcblxyXG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBmb3JjZUZpbmFsaXplKCkge1xyXG4gICAgdGhpcy5hY3RpdmVSZXF1ZXN0cyA9IDA7XHJcbiAgICB0aGlzLmxvYWRpbmdTY3JlZW5TZXJ2aWNlLnN0b3BMb2FkaW5nKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==