{"version":3,"file":"primeng-blockui.mjs","sources":["../../src/blockui/style/blockuistyle.ts","../../src/blockui/blockui.ts","../../src/blockui/primeng-blockui.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-blockui {\n    position: relative;\n}\n\n.p-blockui-mask {\n    border-radius: ${dt('blockui.border.radius')};\n}\n\n.p-blockui-mask.p-overlay-mask {\n    position: absolute;\n}\n\n.p-blockui-mask-document.p-overlay-mask {\n    position: fixed;\n}\n`;\n\nconst classes = {\n    root: 'p-blockui'\n};\n\n@Injectable()\nexport class BlockUiStyle extends BaseStyle {\n    name = 'blockui';\n\n    theme = theme;\n\n    classes = classes;\n}\n\n/**\n *\n * BlockUI represents people using icons, labels and images.\n *\n * [Live Demo](https://www.primeng.org/blockui)\n *\n * @module blockuistyle\n *\n */\nexport enum BlockUIClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-blockui'\n}\n\nexport interface BlockUIStyle extends BaseStyle {}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n    AfterContentInit,\n    AfterViewInit,\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    ContentChild,\n    ContentChildren,\n    ElementRef,\n    inject,\n    Input,\n    NgModule,\n    numberAttribute,\n    OnDestroy,\n    QueryList,\n    TemplateRef,\n    ViewChild,\n    ViewEncapsulation\n} from '@angular/core';\nimport { addClass, blockBodyScroll, removeClass, unblockBodyScroll } from '@primeuix/utils';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { BlockUiStyle } from './style/blockuistyle';\n\n/**\n * BlockUI can either block other components or the whole page.\n * @group Components\n */\n@Component({\n    selector: 'p-blockUI, p-blockui, p-block-ui',\n    standalone: true,\n    imports: [CommonModule, SharedModule],\n    template: `\n        <div\n            #mask\n            [class]=\"styleClass\"\n            [attr.aria-busy]=\"blocked\"\n            [ngClass]=\"{ 'p-blockui-mask-document': !target, 'p-blockui p-blockui-mask p-overlay-mask': true }\"\n            [ngStyle]=\"{ display: 'none' }\"\n            [attr.data-pc-name]=\"'blockui'\"\n            [attr.data-pc-section]=\"'root'\"\n        >\n            <ng-content></ng-content>\n            <ng-container *ngTemplateOutlet=\"contentTemplate || _contentTemplate\"></ng-container>\n        </div>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    providers: [BlockUiStyle]\n})\nexport class BlockUI extends BaseComponent implements AfterViewInit, AfterContentInit, OnDestroy {\n    /**\n     * Name of the local ng-template variable referring to another component.\n     * @group Props\n     */\n    @Input() target: any;\n    /**\n     * Whether to automatically manage layering.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) autoZIndex: boolean = true;\n    /**\n     * Base zIndex value to use in layering.\n     * @group Props\n     */\n    @Input({ transform: numberAttribute }) baseZIndex: number = 0;\n    /**\n     * Class of the element.\n     * @group Props\n     */\n    @Input() styleClass: string | undefined;\n    /**\n     * Current blocked state as a boolean.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) get blocked(): boolean {\n        return this._blocked;\n    }\n    set blocked(val: boolean) {\n        if (this.mask && this.mask.nativeElement) {\n            if (val) this.block();\n            else this.unblock();\n        } else {\n            this._blocked = val;\n        }\n    }\n    /**\n     * template of the content\n     * @group Templates\n     */\n    @ContentChild('content', { descendants: false }) contentTemplate: TemplateRef<any> | undefined;\n\n    @ViewChild('mask') mask: ElementRef | undefined;\n\n    _blocked: boolean = false;\n\n    animationEndListener: VoidFunction | null | undefined;\n\n    _componentStyle = inject(BlockUiStyle);\n\n    constructor() {\n        super();\n    }\n\n    ngAfterViewInit() {\n        super.ngAfterViewInit();\n        if (this._blocked) this.block();\n\n        if (this.target && !this.target.getBlockableElement) {\n            throw 'Target of BlockUI must implement BlockableUI interface';\n        }\n    }\n\n    _contentTemplate: TemplateRef<any> | undefined;\n\n    @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n    ngAfterContentInit() {\n        (this.templates as QueryList<PrimeTemplate>).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        if (isPlatformBrowser(this.platformId)) {\n            this._blocked = true;\n            (this.mask as ElementRef).nativeElement.style.display = 'flex';\n\n            if (this.target) {\n                this.target.getBlockableElement().appendChild((this.mask as ElementRef).nativeElement);\n                this.target.getBlockableElement().style.position = 'relative';\n            } else {\n                this.renderer.appendChild(this.document.body, (this.mask as ElementRef).nativeElement);\n                blockBodyScroll();\n            }\n\n            if (this.autoZIndex) {\n                ZIndexUtils.set('modal', (this.mask as ElementRef).nativeElement, this.baseZIndex + this.config.zIndex.modal);\n            }\n        }\n    }\n\n    unblock() {\n        if (isPlatformBrowser(this.platformId) && this.mask && !this.animationEndListener) {\n            // this.animationEndListener = this.renderer.listen(this.mask.nativeElement, 'animationend', this.destroyModal.bind(this));\n            // TODO Add animation\n            this.destroyModal();\n            // addClass(this.mask.nativeElement, 'p-overlay-mask-leave');\n        }\n    }\n\n    destroyModal() {\n        this._blocked = false;\n        if (this.mask && isPlatformBrowser(this.platformId)) {\n            ZIndexUtils.clear(this.mask.nativeElement);\n            // removeClass(this.mask.nativeElement, 'p-overlay-mask-leave');\n            this.renderer.removeChild(this.el.nativeElement, this.mask.nativeElement);\n            unblockBodyScroll();\n        }\n        this.unbindAnimationEndListener();\n        this.cd.markForCheck();\n    }\n\n    unbindAnimationEndListener() {\n        if (this.animationEndListener && this.mask) {\n            this.animationEndListener();\n            this.animationEndListener = null;\n        }\n    }\n\n    ngOnDestroy() {\n        this.unblock();\n        this.destroyModal();\n        super.ngOnDestroy();\n    }\n}\n\n@NgModule({\n    imports: [BlockUI, SharedModule],\n    exports: [BlockUI, SharedModule]\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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"}