UNPKG

@preeco-privacy/ngx-modal-dialog

Version:
41 lines 4.31 kB
import { Injectable } from '@angular/core'; export class ModalDialogInstanceService { constructor() { /** * Used to make sure there is exactly one instance of Modal Dialog */ this.componentRefs = []; } /** * Closes existing modal dialog */ closeAnyExistingModalDialog() { while (this.componentRefs.length) { this.componentRefs[this.componentRefs.length - 1].destroy(); } } /** * Save component ref for future comparison * @param componentRef */ saveExistingModalDialog(componentRef) { // remove overlay from top element this.setOverlayForTopDialog(false); // add new component this.componentRefs = [...this.componentRefs, componentRef]; componentRef.instance.showOverlay = true; componentRef.onDestroy(() => { this.componentRefs.pop(); this.setOverlayForTopDialog(true); }); } setOverlayForTopDialog(value) { if (this.componentRefs.length) { this.componentRefs[this.componentRefs.length - 1].instance.showOverlay = value; } } } ModalDialogInstanceService.decorators = [ { type: Injectable } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZGlhbG9nLWluc3RhbmNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kYWwtZGlhbG9nLWluc3RhbmNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJekQsTUFBTSxPQUFPLDBCQUEwQjtJQUR2QztRQUVFOztXQUVHO1FBQ0ssa0JBQWEsR0FBeUMsRUFBRSxDQUFDO0lBaUNuRSxDQUFDO0lBL0JDOztPQUVHO0lBQ0gsMkJBQTJCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM3RDtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCx1QkFBdUIsQ0FBQyxZQUFnRDtRQUN0RSxrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzNELFlBQVksQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUV6QyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxLQUFjO1FBQ25DLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztTQUNoRjtJQUNILENBQUM7OztZQXJDRixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb2RhbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwtZGlhbG9nLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNb2RhbERpYWxvZ0luc3RhbmNlU2VydmljZSB7XG4gIC8qKlxuICAgKiBVc2VkIHRvIG1ha2Ugc3VyZSB0aGVyZSBpcyBleGFjdGx5IG9uZSBpbnN0YW5jZSBvZiBNb2RhbCBEaWFsb2dcbiAgICovXG4gIHByaXZhdGUgY29tcG9uZW50UmVmczogQ29tcG9uZW50UmVmPE1vZGFsRGlhbG9nQ29tcG9uZW50PltdID0gW107XG5cbiAgLyoqXG4gICAqIENsb3NlcyBleGlzdGluZyBtb2RhbCBkaWFsb2dcbiAgICovXG4gIGNsb3NlQW55RXhpc3RpbmdNb2RhbERpYWxvZygpIHtcbiAgICB3aGlsZSAodGhpcy5jb21wb25lbnRSZWZzLmxlbmd0aCkge1xuICAgICAgdGhpcy5jb21wb25lbnRSZWZzW3RoaXMuY29tcG9uZW50UmVmcy5sZW5ndGggLSAxXS5kZXN0cm95KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNhdmUgY29tcG9uZW50IHJlZiBmb3IgZnV0dXJlIGNvbXBhcmlzb25cbiAgICogQHBhcmFtIGNvbXBvbmVudFJlZlxuICAgKi9cbiAgc2F2ZUV4aXN0aW5nTW9kYWxEaWFsb2coY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8TW9kYWxEaWFsb2dDb21wb25lbnQ+KSB7XG4gICAgLy8gcmVtb3ZlIG92ZXJsYXkgZnJvbSB0b3AgZWxlbWVudFxuICAgIHRoaXMuc2V0T3ZlcmxheUZvclRvcERpYWxvZyhmYWxzZSk7XG4gICAgLy8gYWRkIG5ldyBjb21wb25lbnRcbiAgICB0aGlzLmNvbXBvbmVudFJlZnMgPSBbLi4udGhpcy5jb21wb25lbnRSZWZzLCBjb21wb25lbnRSZWZdO1xuICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zaG93T3ZlcmxheSA9IHRydWU7XG5cbiAgICBjb21wb25lbnRSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmcy5wb3AoKTtcbiAgICAgIHRoaXMuc2V0T3ZlcmxheUZvclRvcERpYWxvZyh0cnVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldE92ZXJsYXlGb3JUb3BEaWFsb2codmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWZzLmxlbmd0aCkge1xuICAgICAgdGhpcy5jb21wb25lbnRSZWZzW3RoaXMuY29tcG9uZW50UmVmcy5sZW5ndGggLSAxXS5pbnN0YW5jZS5zaG93T3ZlcmxheSA9IHZhbHVlO1xuICAgIH1cbiAgfVxufVxuIl19