import * as i0 from '@angular/core'; import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ContentChildren, ViewChild, NgModule } from '@angular/core'; import * as i2 from '@angular/common'; import { CommonModule } from '@angular/common'; import * as i1 from 'primeng/api'; import { PrimeTemplate } from 'primeng/api'; import { ZIndexUtils } from 'primeng/utils'; import { DomHandler } from 'primeng/dom'; class BlockUI { constructor(el, cd, config) { this.el = el; this.cd = cd; this.config = config; this.autoZIndex = true; this.baseZIndex = 0; } get blocked() { return this._blocked; } set blocked(val) { if (this.mask && this.mask.nativeElement) { if (val) this.block(); else this.unblock(); } else { this._blocked = val; } } ngAfterViewInit() { if (this.target && !this.target.getBlockableElement) { throw 'Target of BlockUI must implement BlockableUI interface'; } } ngAfterContentInit() { this.templates.forEach((item) => { switch (item.getType()) { case 'content': this.contentTemplate = item.template; break; default: this.contentTemplate = item.template; break; } }); } block() { this._blocked = true; if (this.target) { this.target.getBlockableElement().appendChild(this.mask.nativeElement); this.target.getBlockableElement().style.position = 'relative'; } else { document.body.appendChild(this.mask.nativeElement); } if (this.autoZIndex) { ZIndexUtils.set('modal', this.mask.nativeElement, this.baseZIndex + this.config.zIndex.modal); } } unblock() { this.animationEndListener = this.destroyModal.bind(this); this.mask.nativeElement.addEventListener('animationend', this.animationEndListener); DomHandler.addClass(this.mask.nativeElement, 'p-component-overlay-leave'); } destroyModal() { this._blocked = false; DomHandler.removeClass(this.mask.nativeElement, 'p-component-overlay-leave'); ZIndexUtils.clear(this.mask.nativeElement); this.el.nativeElement.appendChild(this.mask.nativeElement); this.unbindAnimationEndListener(); this.cd.markForCheck(); } unbindAnimationEndListener() { if (this.animationEndListener && this.mask) { this.mask.nativeElement.removeEventListener('animationend', this.animationEndListener); this.animationEndListener = null; } } ngOnDestroy() { this.unblock(); this.destroyModal(); } } BlockUI.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: BlockUI, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component }); BlockUI.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: BlockUI, selector: "p-blockUI", inputs: { target: "target", autoZIndex: "autoZIndex", baseZIndex: "baseZIndex", styleClass: "styleClass", blocked: "blocked" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "mask", first: true, predicate: ["mask"], descendants: true }], ngImport: i0, template: `