UNPKG

ng-block-ui

Version:
47 lines 6.8 kB
import { Injectable } from '@angular/core'; import { finalize } from 'rxjs/operators'; import { BLOCKUI_DEFAULT } from 'ng-block-ui'; import * as i0 from "@angular/core"; import * as i1 from "ng-block-ui"; import * as i2 from "./block-ui-http-settings.service"; export class BlockUIInterceptor { constructor(blockUIService, blockUIHttpSettings) { this.blockUIService = blockUIService; this.blockUIHttpSettings = blockUIHttpSettings; this.activeHttpRequests = 0; } intercept(request, next) { let active = false; if (this.shouldBlock(request)) { this.blockUIService.start(BLOCKUI_DEFAULT); } return next.handle(request) .pipe(finalize(() => { if (this.shouldBlock(request)) { const { blockAllRequestsInProgress } = this.blockUIHttpSettings.settings; const method = blockAllRequestsInProgress ? 'stop' : 'reset'; this.blockUIService[method](BLOCKUI_DEFAULT); } })); } shouldBlock(request) { const { method, urlWithParams } = request; const { settings } = this.blockUIHttpSettings; const requestFilters = settings.requestFilters || []; return !requestFilters.some((f) => { if (f && f.method && f.url) { return f.method.toUpperCase() === method && f.url.test(urlWithParams); } else if (typeof f === 'function') { return f(request); } return f.test(urlWithParams); }); } } BlockUIInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BlockUIInterceptor, deps: [{ token: i1.BlockUIService }, { token: i2.BlockUIHttpSettings }], target: i0.ɵɵFactoryTarget.Injectable }); BlockUIInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BlockUIInterceptor }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BlockUIInterceptor, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: i1.BlockUIService }, { type: i2.BlockUIHttpSettings }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stdWktaHR0cC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2h0dHAvYmxvY2stdWktaHR0cC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUTNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQWtCLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7OztBQUk5RCxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCLFlBQ1UsY0FBOEIsRUFDOUIsbUJBQXdDO1FBRHhDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBRWhELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUF5QixFQUFFLElBQWlCO1FBQ3BELElBQUksTUFBTSxHQUFZLEtBQUssQ0FBQztRQUU1QixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDNUM7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2FBQ3hCLElBQUksQ0FDSCxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUM3QixNQUFNLEVBQUUsMEJBQTBCLEVBQUUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDO2dCQUN6RSxNQUFNLE1BQU0sR0FBVywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQ3JFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDOUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUF5QjtRQUNuQyxNQUFNLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUMxQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQzlDLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO1FBRXJELE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFO2dCQUMxQixPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ3ZFO2lCQUFNLElBQUksT0FBTyxDQUFDLEtBQUssVUFBVSxFQUFFO2dCQUNsQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNuQjtZQUVELE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OytHQTNDVSxrQkFBa0I7bUhBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSHR0cFJlcXVlc3QsXG4gIEh0dHBIYW5kbGVyLFxuICBIdHRwRXZlbnQsXG4gIEh0dHBJbnRlcmNlcHRvclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJsb2NrVUlTZXJ2aWNlLCBCTE9DS1VJX0RFRkFVTFQgfSBmcm9tICduZy1ibG9jay11aSc7XG5pbXBvcnQgeyBCbG9ja1VJSHR0cFNldHRpbmdzIH0gZnJvbSAnLi9ibG9jay11aS1odHRwLXNldHRpbmdzLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQmxvY2tVSUludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgcHJpdmF0ZSBhY3RpdmVIdHRwUmVxdWVzdHM6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJsb2NrVUlTZXJ2aWNlOiBCbG9ja1VJU2VydmljZSxcbiAgICBwcml2YXRlIGJsb2NrVUlIdHRwU2V0dGluZ3M6IEJsb2NrVUlIdHRwU2V0dGluZ3NcbiAgKSB7XG4gICAgdGhpcy5hY3RpdmVIdHRwUmVxdWVzdHMgPSAwO1xuICB9XG5cbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIGxldCBhY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLnNob3VsZEJsb2NrKHJlcXVlc3QpKSB7XG4gICAgICB0aGlzLmJsb2NrVUlTZXJ2aWNlLnN0YXJ0KEJMT0NLVUlfREVGQVVMVCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpXG4gICAgICAucGlwZShcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnNob3VsZEJsb2NrKHJlcXVlc3QpKSB7XG4gICAgICAgICAgICBjb25zdCB7IGJsb2NrQWxsUmVxdWVzdHNJblByb2dyZXNzIH0gPSB0aGlzLmJsb2NrVUlIdHRwU2V0dGluZ3Muc2V0dGluZ3M7XG4gICAgICAgICAgICBjb25zdCBtZXRob2Q6IHN0cmluZyA9IGJsb2NrQWxsUmVxdWVzdHNJblByb2dyZXNzID8gJ3N0b3AnIDogJ3Jlc2V0JztcbiAgICAgICAgICAgIHRoaXMuYmxvY2tVSVNlcnZpY2VbbWV0aG9kXShCTE9DS1VJX0RFRkFVTFQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBzaG91bGRCbG9jayhyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KTogYm9vbGVhbiB7XG4gICAgY29uc3QgeyBtZXRob2QsIHVybFdpdGhQYXJhbXMgfSA9IHJlcXVlc3Q7XG4gICAgY29uc3QgeyBzZXR0aW5ncyB9ID0gdGhpcy5ibG9ja1VJSHR0cFNldHRpbmdzO1xuICAgIGNvbnN0IHJlcXVlc3RGaWx0ZXJzID0gc2V0dGluZ3MucmVxdWVzdEZpbHRlcnMgfHwgW107XG5cbiAgICByZXR1cm4gIXJlcXVlc3RGaWx0ZXJzLnNvbWUoKGY6IGFueSkgPT4ge1xuICAgICAgaWYgKGYgJiYgZi5tZXRob2QgJiYgZi51cmwpIHtcbiAgICAgICAgcmV0dXJuIGYubWV0aG9kLnRvVXBwZXJDYXNlKCkgPT09IG1ldGhvZCAmJiBmLnVybC50ZXN0KHVybFdpdGhQYXJhbXMpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gZihyZXF1ZXN0KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGYudGVzdCh1cmxXaXRoUGFyYW1zKTtcbiAgICB9KTtcbiAgfVxufVxuIl19