UNPKG

ngx-load

Version:

A simple angular library for adding loaders.

38 lines 4.71 kB
import { Inject, Injectable } from '@angular/core'; import { ComponentPortal } from "@angular/cdk/portal"; import { tap } from "rxjs"; import { CONFIGURATION_TOKEN } from "../core/loader.configuration"; import * as i0 from "@angular/core"; import * as i1 from "@angular/cdk/overlay"; export class LoaderService { constructor(overlay, configuration) { this.overlay = overlay; this.configuration = configuration; this.overlayRef = this.overlay.create({ positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(), hasBackdrop: true }); } attachLoader() { return tap({ subscribe: () => this.showLoader(), next: () => this.hideLoader(), error: () => this.hideLoader() }); } showLoader() { this.overlayRef.attach(new ComponentPortal(this.configuration.loaderComponent)); } hideLoader() { this.overlayRef.detach(); } } LoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LoaderService, deps: [{ token: i1.Overlay }, { token: CONFIGURATION_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable }); LoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LoaderService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LoaderService, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: undefined, decorators: [{ type: Inject, args: [CONFIGURATION_TOKEN] }] }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sb2FkL3NyYy9saWIvb3ZlcmxheS9sb2FkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsbUJBQW1CLEVBQXVCLE1BQU0sOEJBQThCLENBQUM7OztBQUd4RixNQUFNLE9BQU8sYUFBYTtJQU94QixZQUFvQixPQUFnQixFQUNhLGFBQWtDO1FBRC9ELFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDYSxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFObkYsZUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQy9CLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxRixXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUE7SUFLRixDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sR0FBRyxDQUFJO1lBQ1YsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbEMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDN0IsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7U0FDL0IsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFBO0lBQ2pGLENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDMUIsQ0FBQzs7MEdBM0JVLGFBQWEseUNBUUosbUJBQW1COzhHQVI1QixhQUFhOzJGQUFiLGFBQWE7a0JBRHpCLFVBQVU7OzBCQVNJLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGFwIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IENPTkZJR1VSQVRJT05fVE9LRU4sIExvYWRlckNvbmZpZ3VyYXRpb24gfSBmcm9tIFwiLi4vY29yZS9sb2FkZXIuY29uZmlndXJhdGlvblwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTG9hZGVyU2VydmljZSB7XG5cbiAgb3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmNlbnRlckhvcml6b250YWxseSgpLmNlbnRlclZlcnRpY2FsbHkoKSxcbiAgICBoYXNCYWNrZHJvcDogdHJ1ZVxuICB9KVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgICAgICAgQEluamVjdChDT05GSUdVUkFUSU9OX1RPS0VOKSBwcml2YXRlIGNvbmZpZ3VyYXRpb246IExvYWRlckNvbmZpZ3VyYXRpb25cbiAgKSB7XG4gIH1cblxuICBhdHRhY2hMb2FkZXI8VD4oKTogKHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4gT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRhcDxUPih7XG4gICAgICAgIHN1YnNjcmliZTogKCkgPT4gdGhpcy5zaG93TG9hZGVyKCksXG4gICAgICAgIG5leHQ6ICgpID0+IHRoaXMuaGlkZUxvYWRlcigpLFxuICAgICAgICBlcnJvcjogKCkgPT4gdGhpcy5oaWRlTG9hZGVyKClcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93TG9hZGVyKCkge1xuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IENvbXBvbmVudFBvcnRhbCh0aGlzLmNvbmZpZ3VyYXRpb24ubG9hZGVyQ29tcG9uZW50KSlcbiAgfVxuXG4gIHByaXZhdGUgaGlkZUxvYWRlcigpIHtcbiAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKClcbiAgfVxufVxuIl19