UNPKG

ngx-modal-dialog

Version:
36 lines 4.65 kB
import { ComponentFactoryResolver, Inject, Injectable } from '@angular/core'; import { ModalDialogComponent } from './modal-dialog.component'; import { ModalDialogInstanceService } from './modal-dialog-instance.service'; export class ModalDialogService { /** * CTOR * @param componentFactoryResolver * @param modalDialogInstanceService */ constructor(componentFactoryResolver, modalDialogInstanceService) { this.componentFactoryResolver = componentFactoryResolver; this.modalDialogInstanceService = modalDialogInstanceService; } /** * Open dialog in given target element with given options * @param {ViewContainerRef} target * @param {IModalDialogOptions} options? */ openDialog(target, options = {}) { if (!options.placeOnTop) { this.modalDialogInstanceService.closeAnyExistingModalDialog(); } const factory = this.componentFactoryResolver.resolveComponentFactory(ModalDialogComponent); const componentRef = target.createComponent(factory); componentRef.instance.dialogInit(componentRef, options); this.modalDialogInstanceService.saveExistingModalDialog(componentRef); } } ModalDialogService.decorators = [ { type: Injectable } ]; ModalDialogService.ctorParameters = () => [ { type: ComponentFactoryResolver, decorators: [{ type: Inject, args: [ComponentFactoryResolver,] }] }, { type: ModalDialogInstanceService, decorators: [{ type: Inject, args: [ModalDialogInstanceService,] }] } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kYWwtZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFvQixNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzdFLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0I7Ozs7T0FJRztJQUNILFlBQXNELHdCQUFrRCxFQUNoRCwwQkFBc0Q7UUFEeEQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNoRCwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO0lBQzlHLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLE1BQXdCLEVBQUUsVUFBNkMsRUFBRTtRQUNsRixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRTtZQUN2QixJQUFJLENBQUMsMEJBQTBCLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztTQUMvRDtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzVGLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQywwQkFBMEIsQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4RSxDQUFDOzs7WUExQkYsVUFBVTs7O1lBTEYsd0JBQXdCLHVCQVlsQixNQUFNLFNBQUMsd0JBQXdCO1lBVHJDLDBCQUEwQix1QkFVcEIsTUFBTSxTQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgVmlld0NvbnRhaW5lclJlZiwgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb2RhbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJTW9kYWxEaWFsb2dPcHRpb25zIH0gZnJvbSAnLi9tb2RhbC1kaWFsb2cuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1vZGFsRGlhbG9nSW5zdGFuY2VTZXJ2aWNlIH0gZnJvbSAnLi9tb2RhbC1kaWFsb2ctaW5zdGFuY2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNb2RhbERpYWxvZ1NlcnZpY2Uge1xuICAvKipcbiAgICogQ1RPUlxuICAgKiBAcGFyYW0gY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXG4gICAqIEBwYXJhbSBtb2RhbERpYWxvZ0luc3RhbmNlU2VydmljZVxuICAgKi9cbiAgY29uc3RydWN0b3IoQEluamVjdChDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgICAgICAgIEBJbmplY3QoTW9kYWxEaWFsb2dJbnN0YW5jZVNlcnZpY2UpIHByaXZhdGUgbW9kYWxEaWFsb2dJbnN0YW5jZVNlcnZpY2U6IE1vZGFsRGlhbG9nSW5zdGFuY2VTZXJ2aWNlKSB7XG4gIH1cblxuICAvKipcbiAgICogT3BlbiBkaWFsb2cgaW4gZ2l2ZW4gdGFyZ2V0IGVsZW1lbnQgd2l0aCBnaXZlbiBvcHRpb25zXG4gICAqIEBwYXJhbSAge1ZpZXdDb250YWluZXJSZWZ9IHRhcmdldFxuICAgKiBAcGFyYW0gIHtJTW9kYWxEaWFsb2dPcHRpb25zfSBvcHRpb25zP1xuICAgKi9cbiAgb3BlbkRpYWxvZyh0YXJnZXQ6IFZpZXdDb250YWluZXJSZWYsIG9wdGlvbnM6IFBhcnRpYWw8SU1vZGFsRGlhbG9nT3B0aW9uczxhbnk+PiA9IHt9KSB7XG4gICAgaWYgKCFvcHRpb25zLnBsYWNlT25Ub3ApIHtcbiAgICAgIHRoaXMubW9kYWxEaWFsb2dJbnN0YW5jZVNlcnZpY2UuY2xvc2VBbnlFeGlzdGluZ01vZGFsRGlhbG9nKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KE1vZGFsRGlhbG9nQ29tcG9uZW50KTtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0YXJnZXQuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5kaWFsb2dJbml0KGNvbXBvbmVudFJlZiwgb3B0aW9ucyk7XG5cbiAgICB0aGlzLm1vZGFsRGlhbG9nSW5zdGFuY2VTZXJ2aWNlLnNhdmVFeGlzdGluZ01vZGFsRGlhbG9nKGNvbXBvbmVudFJlZik7XG4gIH1cbn1cbiJdfQ==