UNPKG

@angular-mdl/core

Version:

Angular components, directives and styles based on material design lite https://getmdl.io.

60 lines 8.52 kB
import { ApplicationRef, ComponentFactoryResolver, EventEmitter, Injectable, } from "@angular/core"; import { MdlBackdropOverlayComponent } from "./mdl-backdrop-overlay.component"; import { filter, take } from "rxjs/operators"; import { MdlDialogOutletComponent } from "./mdl-dialog-outlet.component"; import * as i0 from "@angular/core"; export class MdlDialogOutletService { constructor(appRef, componentFactoryResolver) { this.appRef = appRef; this.componentFactoryResolver = componentFactoryResolver; this.backdropClickEmitter = new EventEmitter(); this.viewContainerRefInternal = null; let dialogOutletCompRef = null; appRef.isStable .pipe(take(1), filter(() => this.viewContainerRefInternal == null)) .subscribe(() => { try { dialogOutletCompRef = this.appRef.bootstrap(MdlDialogOutletComponent); } catch (e) { // the user did not use the dialog.outlet element outside of his root app. // console.log(e); } if (dialogOutletCompRef) { this.setViewContainerRef(dialogOutletCompRef.instance.viewContainerRef); } }); } get viewContainerRef() { return this.viewContainerRefInternal; } setDefaultViewContainerRef(vCRef) { this.setViewContainerRef(vCRef); } hideBackdrop() { this.backdropComponent?.hide(); } showBackdropWithZIndex(zIndex) { this.backdropComponent?.showWithZIndex(zIndex); } setViewContainerRef(value) { this.viewContainerRefInternal = value; if (this.viewContainerRefInternal) { const cFactory = this.componentFactoryResolver.resolveComponentFactory(MdlBackdropOverlayComponent); this.backdropComponent = this.viewContainerRefInternal.createComponent(cFactory).instance; this.backdropComponent.clickEmitter.subscribe(() => { this.backdropClickEmitter.emit(); }); } } } MdlDialogOutletService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MdlDialogOutletService, deps: [{ token: i0.ApplicationRef }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable }); MdlDialogOutletService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MdlDialogOutletService, providedIn: "root" }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MdlDialogOutletService, decorators: [{ type: Injectable, args: [{ providedIn: "root", }] }], ctorParameters: function () { return [{ type: i0.ApplicationRef }, { type: i0.ComponentFactoryResolver }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRsLWRpYWxvZy1vdXRsZXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9kaWFsb2ctb3V0bGV0L21kbC1kaWFsb2ctb3V0bGV0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCx3QkFBd0IsRUFFeEIsWUFBWSxFQUNaLFVBQVUsR0FFWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUt6RSxNQUFNLE9BQU8sc0JBQXNCO0lBTWpDLFlBQ1UsTUFBc0IsRUFDdEIsd0JBQWtEO1FBRGxELFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFQNUQseUJBQW9CLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdEQsNkJBQXdCLEdBQTRCLElBQUksQ0FBQztRQU8vRCxJQUFJLG1CQUFtQixHQUNyQixJQUFJLENBQUM7UUFDUCxNQUFNLENBQUMsUUFBUTthQUNaLElBQUksQ0FDSCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsSUFBSSxJQUFJLENBQUMsQ0FDcEQ7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSTtnQkFDRixtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO2FBQ3ZFO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsMEVBQTBFO2dCQUMxRSxrQkFBa0I7YUFDbkI7WUFDRCxJQUFJLG1CQUFtQixFQUFFO2dCQUN2QixJQUFJLENBQUMsbUJBQW1CLENBQ3RCLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FDOUMsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUM7SUFDdkMsQ0FBQztJQUVELDBCQUEwQixDQUFDLEtBQThCO1FBQ3ZELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsc0JBQXNCLENBQUMsTUFBYztRQUNuQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxLQUE4QjtRQUN4RCxJQUFJLENBQUMsd0JBQXdCLEdBQUcsS0FBSyxDQUFDO1FBRXRDLElBQUksSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQ2pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FDcEUsMkJBQTJCLENBQzVCLENBQUM7WUFDRixJQUFJLENBQUMsaUJBQWlCO2dCQUNwQixJQUFJLENBQUMsd0JBQXdCLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUNuRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2pELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7bUhBN0RVLHNCQUFzQjt1SEFBdEIsc0JBQXNCLGNBRnJCLE1BQU07MkZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIENvbXBvbmVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RhYmxlLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTWRsQmFja2Ryb3BPdmVybGF5Q29tcG9uZW50IH0gZnJvbSBcIi4vbWRsLWJhY2tkcm9wLW92ZXJsYXkuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IE1kbERpYWxvZ091dGxldENvbXBvbmVudCB9IGZyb20gXCIuL21kbC1kaWFsb2ctb3V0bGV0LmNvbXBvbmVudFwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxufSlcbmV4cG9ydCBjbGFzcyBNZGxEaWFsb2dPdXRsZXRTZXJ2aWNlIHtcbiAgYmFja2Ryb3BDbGlja0VtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIHZpZXdDb250YWluZXJSZWZJbnRlcm5hbDogVmlld0NvbnRhaW5lclJlZiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGJhY2tkcm9wQ29tcG9uZW50OiBNZGxCYWNrZHJvcE92ZXJsYXlDb21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgKSB7XG4gICAgbGV0IGRpYWxvZ091dGxldENvbXBSZWY6IENvbXBvbmVudFJlZjxNZGxEaWFsb2dPdXRsZXRDb21wb25lbnQ+IHwgbnVsbCA9XG4gICAgICBudWxsO1xuICAgIGFwcFJlZi5pc1N0YWJsZVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnZpZXdDb250YWluZXJSZWZJbnRlcm5hbCA9PSBudWxsKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZGlhbG9nT3V0bGV0Q29tcFJlZiA9IHRoaXMuYXBwUmVmLmJvb3RzdHJhcChNZGxEaWFsb2dPdXRsZXRDb21wb25lbnQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gdGhlIHVzZXIgZGlkIG5vdCB1c2UgdGhlIGRpYWxvZy5vdXRsZXQgZWxlbWVudCBvdXRzaWRlIG9mIGhpcyByb290IGFwcC5cbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyhlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGlhbG9nT3V0bGV0Q29tcFJlZikge1xuICAgICAgICAgIHRoaXMuc2V0Vmlld0NvbnRhaW5lclJlZihcbiAgICAgICAgICAgIGRpYWxvZ091dGxldENvbXBSZWYuaW5zdGFuY2Uudmlld0NvbnRhaW5lclJlZlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0IHZpZXdDb250YWluZXJSZWYoKTogVmlld0NvbnRhaW5lclJlZiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnZpZXdDb250YWluZXJSZWZJbnRlcm5hbDtcbiAgfVxuXG4gIHNldERlZmF1bHRWaWV3Q29udGFpbmVyUmVmKHZDUmVmOiBWaWV3Q29udGFpbmVyUmVmIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuc2V0Vmlld0NvbnRhaW5lclJlZih2Q1JlZik7XG4gIH1cblxuICBoaWRlQmFja2Ryb3AoKTogdm9pZCB7XG4gICAgdGhpcy5iYWNrZHJvcENvbXBvbmVudD8uaGlkZSgpO1xuICB9XG5cbiAgc2hvd0JhY2tkcm9wV2l0aFpJbmRleCh6SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuYmFja2Ryb3BDb21wb25lbnQ/LnNob3dXaXRoWkluZGV4KHpJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIHNldFZpZXdDb250YWluZXJSZWYodmFsdWU6IFZpZXdDb250YWluZXJSZWYgfCBudWxsKSB7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmSW50ZXJuYWwgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLnZpZXdDb250YWluZXJSZWZJbnRlcm5hbCkge1xuICAgICAgY29uc3QgY0ZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShcbiAgICAgICAgTWRsQmFja2Ryb3BPdmVybGF5Q29tcG9uZW50XG4gICAgICApO1xuICAgICAgdGhpcy5iYWNrZHJvcENvbXBvbmVudCA9XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZkludGVybmFsLmNyZWF0ZUNvbXBvbmVudChjRmFjdG9yeSkuaW5zdGFuY2U7XG4gICAgICB0aGlzLmJhY2tkcm9wQ29tcG9uZW50LmNsaWNrRW1pdHRlci5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmJhY2tkcm9wQ2xpY2tFbWl0dGVyLmVtaXQoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19