ngx-load
Version:
A simple angular library for adding loaders.
38 lines • 4.71 kB
JavaScript
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