{"version":3,"file":"primeng-blockui.mjs","sources":["../../src/app/components/blockui/blockui.ts","../../src/app/components/blockui/primeng-blockui.ts"],"sourcesContent":["import {NgModule,Component,Input,AfterViewInit,OnDestroy,ElementRef,ViewChild,ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, ContentChildren, QueryList, TemplateRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {PrimeNGConfig, PrimeTemplate} from 'primeng/api';\nimport {ZIndexUtils} from 'primeng/utils';\nimport { DomHandler } from 'primeng/dom';\n\n@Component({\n    selector: 'p-blockUI',\n    template: `\n        <div #mask [class]=\"styleClass\" [ngClass]=\"{'p-blockui-document':!target, 'p-blockui p-component-overlay p-component-overlay-enter': true}\" [ngStyle]=\"{display: blocked ? 'flex' : 'none'}\">\n            <ng-content></ng-content>\n            <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n        </div>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    styleUrls: ['./blockui.css'],\n    host: {\n        'class': 'p-element'\n    }\n})\nexport class BlockUI implements AfterViewInit,OnDestroy {\n\n    @Input() target: any;\n\n    @Input() autoZIndex: boolean = true;\n\n    @Input() baseZIndex: number = 0;\n\n    @Input() styleClass: string;\n\n    @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n    @ViewChild('mask') mask: ElementRef;\n\n    _blocked: boolean;\n\n    animationEndListener: any;\n\n    contentTemplate: TemplateRef<any>;\n\n    constructor(public el: ElementRef, public cd: ChangeDetectorRef, public config: PrimeNGConfig) {}\n\n    @Input() get blocked(): boolean {\n        return this._blocked;\n    }\n\n    set blocked(val: boolean) {\n        if (this.mask && this.mask.nativeElement) {\n            if (val)\n                this.block();\n            else\n                this.unblock();\n        }\n        else {\n            this._blocked = val;\n        }\n    }\n\n    ngAfterViewInit() {\n        if (this.target && !this.target.getBlockableElement) {\n            throw 'Target of BlockUI must implement BlockableUI interface';\n        }\n    }\n\n    ngAfterContentInit() {\n        this.templates.forEach((item) => {\n            switch(item.getType()) {\n                case 'content':\n                    this.contentTemplate = item.template;\n                break;\n\n                default:\n                    this.contentTemplate = item.template;\n                break;\n            }\n        });\n    }\n\n    block() {\n        this._blocked = true;\n\n        if (this.target) {\n            this.target.getBlockableElement().appendChild(this.mask.nativeElement);\n            this.target.getBlockableElement().style.position = 'relative';\n        }\n        else {\n            document.body.appendChild(this.mask.nativeElement);\n        }\n\n        if (this.autoZIndex) {\n            ZIndexUtils.set('modal', this.mask.nativeElement, this.baseZIndex + this.config.zIndex.modal);\n        }\n    }\n\n    unblock() {\n        this.animationEndListener = this.destroyModal.bind(this);\n        this.mask.nativeElement.addEventListener('animationend', this.animationEndListener);\n        DomHandler.addClass(this.mask.nativeElement, 'p-component-overlay-leave')\n    }\n\n    destroyModal() {\n        this._blocked = false;\n        DomHandler.removeClass(this.mask.nativeElement, 'p-component-overlay-leave');\n        ZIndexUtils.clear(this.mask.nativeElement);\n        this.el.nativeElement.appendChild(this.mask.nativeElement);\n        this.unbindAnimationEndListener();\n        this.cd.markForCheck();\n    }\n\n    unbindAnimationEndListener() {\n        if (this.animationEndListener && this.mask) {\n            this.mask.nativeElement.removeEventListener('animationend', this.animationEndListener);\n            this.animationEndListener = null;\n        }\n    }\n\n    ngOnDestroy() {\n        this.unblock();\n        this.destroyModal();\n    }\n}\n\n@NgModule({\n    imports: [CommonModule],\n    exports: [BlockUI],\n    declarations: [BlockUI]\n})\nexport class BlockUIModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}