{"version":3,"file":"primeng-dynamicdialog.mjs","sources":["../../src/dynamicdialog/dynamicdialogcontent.ts","../../src/dynamicdialog/style/dynamicdialogstyle.ts","../../src/dynamicdialog/dynamicdialog-config.ts","../../src/dynamicdialog/dynamicdialog-ref.ts","../../src/dynamicdialog/dynamicdialog.ts","../../src/dynamicdialog/dynamicdialog-injector.ts","../../src/dynamicdialog/dialogservice.ts","../../src/dynamicdialog/primeng-dynamicdialog.ts"],"sourcesContent":["import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n    selector: '[pDynamicDialogContent]',\n    standalone: true\n})\nexport class DynamicDialogContent {\n    constructor(public viewContainerRef: ViewContainerRef) {}\n}\n","import { Injectable } from '@angular/core';\nimport { DialogStyle } from 'primeng/dialog';\n\n@Injectable()\nexport class DynamicDialogStyle extends DialogStyle {\n    name = 'dialog';\n}\n\n/**\n *\n * DynamicDialog is a container to display content in an overlay window.\n *\n * [Live Demo](https://www.primeng.org/dynamicdialog)\n *\n * @module dynamicdialogstyle\n *\n */\nexport enum DynamicDialogClasses {\n    /**\n     * Class name of the mask element\n     */\n    mask = 'p-dialog-mask',\n    /**\n     * Class name of the root element\n     */\n    root = 'p-dialog',\n    /**\n     * Class name of the header element\n     */\n    header = 'p-dialog-header',\n    /**\n     * Class name of the title element\n     */\n    title = 'p-dialog-title',\n    /**\n     * Class name of the header actions element\n     */\n    headerActions = 'p-dialog-header-actions',\n    /**\n     * Class name of the maximize button element\n     */\n    pcMaximizeButton = 'p-dialog-maximize-button',\n    /**\n     * Class name of the close button element\n     */\n    pcCloseButton = 'p-dialog-close-button',\n    /**\n     * Class name of the content element\n     */\n    content = 'p-dialog-content',\n    /**\n     * Class name of the footer element\n     */\n    footer = 'p-dialog-footer'\n}\n\nexport interface DynamicDialogStyle {}\n","import { Type } from '@angular/core';\n\n/**\n * Dialogs can be created dynamically with any component as the content using a DialogService.\n * @group Components\n */\nexport class DynamicDialogConfig<DataType = any, InputValuesType extends Record<string, any> = {}> {\n    /**\n     * An object to pass to the component loaded inside the Dialog.\n     * @group Props\n     */\n    data?: DataType;\n    /**\n     * An object to pass to the component loaded inside the Dialog.\n     * @group Props\n     */\n    inputValues?: InputValuesType;\n    /**\n     * Header text of the dialog.\n     * @group Props\n     */\n    header?: string;\n    /**\n     * Identifies the element (or elements) that labels the element it is applied to.\n     * @group Props\n     */\n    ariaLabelledBy?: string;\n    /**\n     * Footer text of the dialog.\n     * @group Props\n     */\n    footer?: string;\n    /**\n     * Width of the dialog.\n     * @group Props\n     */\n    width?: string;\n    /**\n     * Height of the dialog.\n     * @group Props\n     */\n    height?: string;\n    /**\n     * Specifies if pressing escape key should hide the dialog.\n     * @group Props\n     */\n    closeOnEscape?: boolean = false;\n    /**\n     * Specifies if autofocus should happen on show.\n     * @group Props\n     */\n    focusOnShow?: boolean = true;\n    /**\n     * When enabled, can only focus on elements inside the dialog.\n     * @group Props\n     */\n    focusTrap?: boolean = true;\n    /**\n     * Base zIndex value to use in layering.\n     * @group Props\n     */\n    baseZIndex?: number;\n    /**\n     * Whether to re-enforce layering through applying zIndex.\n     * @group Props\n     */\n    autoZIndex?: boolean = false;\n    /**\n     * Specifies if clicking the modal background should hide the dialog.\n     * @group Props\n     */\n    dismissableMask?: boolean = false;\n    /**\n     * Inline style of the component.\n     * @group Props\n     */\n    rtl?: boolean = false;\n    /**\n     * Inline style of the comopnent.\n     * @group Props\n     */\n    style?: { [klass: string]: any } | null | undefined;\n    /**\n     * Inline style of the content.\n     * @group Props\n     */\n    contentStyle?: { [klass: string]: any } | null | undefined;\n    /**\n     * Style class of the component.\n     * @group Props\n     */\n    styleClass?: string;\n    /**\n     * Transition options of the animation.\n     * @group Props\n     */\n    transitionOptions?: string;\n    /**\n     * Adds a close icon to the header to hide the dialog.\n     * @group Props\n     */\n    closable?: boolean = false;\n    /**\n     * Whether to show the header or not.\n     * @group Props\n     */\n    showHeader?: boolean = false;\n    /**\n     * Defines if background should be blocked when dialog is displayed.\n     * @group Props\n     */\n    modal?: boolean = false;\n    /**\n     * Style class of the mask.\n     * @group Props\n     */\n    maskStyleClass?: string;\n    /**\n     * Enables resizing of the content.\n     * @group Props\n     */\n    resizable?: boolean = false;\n    /**\n     * Enables dragging to change the position using header.\n     * @group Props\n     */\n    draggable?: boolean = false;\n    /**\n     * Keeps dialog in the viewport.\n     * @group Props\n     */\n    keepInViewport?: boolean = false;\n    /**\n     * Minimum value for the left coordinate of dialog in dragging.\n     * @group Props\n     */\n    minX?: number;\n    /**\n     * Minimum value for the top coordinate of dialog in dragging.\n     * @group Props\n     */\n    minY?: number;\n    /**\n     * Whether the dialog can be displayed full screen.\n     * @group Props\n     */\n    maximizable?: boolean = false;\n    /**\n     * Name of the maximize icon.\n     * @group Props\n     */\n    maximizeIcon?: string;\n    /**\n     * Name of the minimize icon.\n     * @group Props\n     */\n    minimizeIcon?: string;\n    /**\n     * Position of the dialog, options are \"center\", \"top\", \"bottom\", \"left\", \"right\", \"top-left\", \"top-right\", \"bottom-left\" or \"bottom-right\".\n     * @group Props\n     */\n    position?: string;\n    /**\n     * Defines a string that labels the close button for accessibility.\n     * @group Props\n     */\n    closeAriaLabel?: string;\n    /**\n     * Target element to attach the overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n     * @group Props\n     */\n    appendTo?: any;\n    /**\n     * A boolean to determine if it can be duplicate.\n     * @group Props\n     */\n    duplicate?: boolean = false;\n    /**\n     * Object literal to define widths per screen size.\n     * @group Props\n     */\n    breakpoints?: any;\n    /**\n     * Dialog templates.\n     * @group Props\n     */\n    templates?: DynamicDialogTemplates;\n}\n\n/**\n * Defines valid templates in Dynamic Dialog.\n * @group Interface\n */\nexport interface DynamicDialogTemplates {\n    /**\n     * Template of the header.\n     */\n    header?: Type<any>;\n    /**\n     * Template of the content.\n     */\n    content?: Type<any>;\n    /**\n     * Template of the footer.\n     */\n    footer?: Type<any>;\n    /**\n     * Template of the minimize icon.\n     */\n    minimizeicon?: Type<any>;\n    /**\n     * Template of the maximize icon.\n     */\n    maximizeicon?: Type<any>;\n    /**\n     * Template of the close icon.\n     */\n    closeicon?: Type<any>;\n}\n","import { Observable, Subject } from 'rxjs';\nimport { Output, EventEmitter, Type } from '@angular/core';\n/**\n * Dynamic Dialog instance.\n * @group Components\n */\nexport class DynamicDialogRef<ComponentType = any> {\n    constructor() {}\n    /**\n     * Closes dialog.\n     * @group Method\n     */\n    close(result?: any) {\n        this._onClose.next(result);\n\n        setTimeout(() => {\n            this._onClose.complete();\n        }, 1000);\n    }\n    /**\n     * Destroys the dialog instance.\n     * @group Method\n     */\n    destroy() {\n        this._onDestroy.next(null);\n    }\n    /**\n     * Callback to invoke on drag start.\n     * @param {MouseEvent} event - Mouse event.\n     * @group Method\n     */\n    dragStart(event: MouseEvent) {\n        this._onDragStart.next(event);\n    }\n    /**\n     * Callback to invoke on drag end.\n     * @param {MouseEvent} event - Mouse event.\n     * @group Method\n     */\n    dragEnd(event: MouseEvent) {\n        this._onDragEnd.next(event);\n    }\n    /**\n     * Callback to invoke on resize start.\n     * @param {MouseEvent} event - Mouse event.\n     * @group Method\n     */\n    resizeInit(event: MouseEvent) {\n        this._onResizeInit.next(event);\n    }\n    /**\n     * Callback to invoke on resize start.\n     * @param {MouseEvent} event - Mouse event.\n     * @group Method\n     */\n    resizeEnd(event: MouseEvent) {\n        this._onResizeEnd.next(event);\n    }\n    /**\n     * Callback to invoke on dialog is maximized.\n     * @param {*} value - Size value.\n     * @group Method\n     */\n    maximize(value: any) {\n        this._onMaximize.next(value);\n    }\n\n    private readonly _onClose = new Subject<any>();\n    /**\n     * Event triggered on dialog is closed.\n     * @group Events\n     */\n    onClose: Observable<any> = this._onClose.asObservable();\n\n    private readonly _onDestroy = new Subject<any>();\n    /**\n     * Event triggered on dialog instance is destroyed.\n     * @group Events\n     */\n    onDestroy: Observable<any> = this._onDestroy.asObservable();\n\n    private readonly _onDragStart = new Subject<any>();\n    /**\n     * Event triggered on drag start.\n     * @param {MouseEvent} event - Mouse event.\n     * @group Events\n     */\n    onDragStart: Observable<any> = this._onDragStart.asObservable();\n\n    private readonly _onDragEnd = new Subject<any>();\n    /**\n     * Event triggered on drag end.\n     * @param {MouseEvent} event - Mouse event.\n     * @group Events\n     */\n    onDragEnd: Observable<any> = this._onDragEnd.asObservable();\n\n    private readonly _onResizeInit = new Subject<any>();\n    /**\n     * Event triggered on resize start.\n     * @param {MouseEvent} event - Mouse event.\n     * @group Events\n     */\n    onResizeInit: Observable<any> = this._onResizeInit.asObservable();\n\n    private readonly _onResizeEnd = new Subject<any>();\n    /**\n     * Event triggered on resize end.\n     * @param {MouseEvent} event - Mouse event.\n     * @group Events\n     */\n    onResizeEnd: Observable<any> = this._onResizeEnd.asObservable();\n\n    private readonly _onMaximize = new Subject<any>();\n    /**\n     * Event triggered on dialog is maximized.\n     * @param {*} value - Size value.\n     * @group Events\n     */\n    onMaximize: Observable<any> = this._onMaximize.asObservable();\n\n    /**\n     * Event triggered on child component load.\n     * @param {*} value - Chi.\n     * @group Events\n     */\n    readonly onChildComponentLoaded = new Subject<ComponentType>();\n}\n","import { animate, animation, AnimationEvent, style, transition, trigger, useAnimation } from '@angular/animations';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, ComponentRef, ElementRef, inject, NgModule, NgZone, OnDestroy, Optional, Renderer2, SkipSelf, Type, ViewChild, ViewEncapsulation, ViewRef } from '@angular/core';\nimport { addClass, getOuterHeight, getOuterWidth, getViewport, hasClass, removeClass, setAttribute, uuid } from '@primeuix/utils';\nimport { SharedModule, TranslationKeys } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Button } from 'primeng/button';\nimport { DomHandler } from 'primeng/dom';\nimport { FocusTrap } from 'primeng/focustrap';\nimport { TimesIcon, WindowMaximizeIcon, WindowMinimizeIcon } from 'primeng/icons';\nimport { Nullable, VoidListener } from 'primeng/ts-helpers';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { DynamicDialogConfig } from './dynamicdialog-config';\nimport { DynamicDialogRef } from './dynamicdialog-ref';\nimport { DynamicDialogContent } from './dynamicdialogcontent';\nimport { DynamicDialogStyle } from './style/dynamicdialogstyle';\n\nconst showAnimation = animation([style({ transform: '{{transform}}', opacity: 0 }), animate('{{transition}}', style({ transform: 'none', opacity: 1 }))]);\n\nconst hideAnimation = animation([animate('{{transition}}', style({ transform: '{{transform}}', opacity: 0 }))]);\n\n@Component({\n    selector: 'p-dynamicDialog, p-dynamicdialog, p-dynamic-dialog',\n    standalone: true,\n    imports: [CommonModule, SharedModule, DynamicDialogContent, WindowMaximizeIcon, WindowMinimizeIcon, TimesIcon, Button, FocusTrap],\n    template: `\n        <div\n            #mask\n            [ngStyle]=\"{\n                position: 'fixed',\n                height: '100%',\n                width: '100%',\n                left: 0,\n                top: 0,\n                display: 'flex',\n                'justify-content': position === 'left' || position === 'topleft' || position === 'bottomleft' ? 'flex-start' : position === 'right' || position === 'topright' || position === 'bottomright' ? 'flex-end' : 'center',\n                'align-items': position === 'top' || position === 'topleft' || position === 'topright' ? 'flex-start' : position === 'bottom' || position === 'bottomleft' || position === 'bottomright' ? 'flex-end' : 'center',\n                'pointer-events': ddconfig.modal ? 'auto' : 'none'\n            }\"\n            [class]=\"ddconfig.maskStyleClass\"\n            [ngClass]=\"maskClass\"\n        >\n            <div\n                *ngIf=\"visible\"\n                #container\n                [ngClass]=\"{ 'p-dialog p-component': true, 'p-dialog-maximized': maximizable && maximized }\"\n                [ngStyle]=\"{ display: 'flex', 'flex-direction': 'column', 'pointer-events': 'auto' }\"\n                [style]=\"ddconfig.style\"\n                [class]=\"ddconfig.styleClass\"\n                [@animation]=\"{\n                    value: 'visible',\n                    params: {\n                        transform: transformOptions,\n                        transition: ddconfig.transitionOptions || '150ms cubic-bezier(0, 0, 0.2, 1)'\n                    }\n                }\"\n                (@animation.start)=\"onAnimationStart($event)\"\n                (@animation.done)=\"onAnimationEnd($event)\"\n                role=\"dialog\"\n                pFocusTrap\n                [pFocusTrapDisabled]=\"ddconfig.focusTrap === false\"\n                [style.width]=\"ddconfig.width\"\n                [style.height]=\"ddconfig.height\"\n                [attr.aria-labelledby]=\"ariaLabelledBy\"\n                [attr.aria-modal]=\"true\"\n                [attr.id]=\"dialogId\"\n            >\n                <div *ngIf=\"ddconfig.resizable\" [ngClass]=\"'p-resizable-handle'\" style=\"z-index: 90;\" (mousedown)=\"initResize($event)\"></div>\n                <div #titlebar [ngClass]=\"'p-dialog-header'\" (mousedown)=\"initDrag($event)\" *ngIf=\"ddconfig.showHeader !== false\">\n                    <ng-container *ngComponentOutlet=\"headerTemplate\"></ng-container>\n                    <ng-container *ngIf=\"!headerTemplate\">\n                        <span [ngClass]=\"'p-dialog-title'\" [id]=\"ariaLabelledBy\">{{ ddconfig.header }}</span>\n                        <div [ngClass]=\"'p-dialog-header-actions'\">\n                            <p-button *ngIf=\"ddconfig.maximizable\" [styleClass]=\"'p-dialog-maximize-button'\" (onClick)=\"maximize()\" (keydown.enter)=\"maximize()\" rounded text [tabindex]=\"maximizable ? '0' : '-1'\">\n                                <ng-container *ngIf=\"!maximizeIcon\">\n                                    <WindowMaximizeIcon *ngIf=\"!maximized && !maximizeIconTemplate\" />\n                                    <WindowMinimizeIcon *ngIf=\"maximized && !minimizeIconTemplate\" />\n                                </ng-container>\n                                <ng-container *ngIf=\"!maximized\">\n                                    <ng-template *ngTemplateOutlet=\"maximizeIconTemplate\"></ng-template>\n                                </ng-container>\n                                <ng-container *ngIf=\"maximized\">\n                                    <ng-template *ngTemplateOutlet=\"minimizeIconTemplate\"></ng-template>\n                                </ng-container>\n                            </p-button>\n                            <p-button *ngIf=\"closable\" [styleClass]=\"'p-dialog-close-button'\" [ariaLabel]=\"closeAriaLabel\" (onClick)=\"hide()\" (keydown.enter)=\"hide()\" rounded text severity=\"secondary\">\n                                <ng-container *ngIf=\"!closeIconTemplate\">\n                                    <TimesIcon />\n                                </ng-container>\n                                <span *ngIf=\"closeIconTemplate\">\n                                    <ng-template *ngTemplateOutlet=\"closeIconTemplate\"></ng-template>\n                                </span>\n                            </p-button>\n                        </div>\n                    </ng-container>\n                </div>\n                <div #content [ngClass]=\"'p-dialog-content'\" [ngStyle]=\"ddconfig.contentStyle\">\n                    <ng-template pDynamicDialogContent *ngIf=\"!contentTemplate\"></ng-template>\n                    <ng-container *ngComponentOutlet=\"contentTemplate\"></ng-container>\n                </div>\n                <div #footer [ngClass]=\"'p-dialog-footer'\" *ngIf=\"ddconfig.footer || footerTemplate\">\n                    <ng-container *ngIf=\"!footerTemplate\">\n                        {{ ddconfig.footer }}\n                    </ng-container>\n                    <ng-container *ngComponentOutlet=\"footerTemplate\"></ng-container>\n                </div>\n            </div>\n        </div>\n    `,\n    animations: [trigger('animation', [transition('void => visible', [useAnimation(showAnimation)]), transition('visible => void', [useAnimation(hideAnimation)])])],\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n    providers: [DynamicDialogStyle]\n})\nexport class DynamicDialogComponent extends BaseComponent implements AfterViewInit, OnDestroy {\n    visible: boolean = true;\n\n    componentRef: Nullable<ComponentRef<any>>;\n\n    mask: Nullable<HTMLDivElement>;\n\n    resizing: boolean | undefined;\n\n    dragging: boolean | undefined;\n\n    maximized: boolean | undefined;\n\n    _style: any = {};\n\n    originalStyle: any;\n\n    lastPageX: number | undefined;\n\n    lastPageY: number | undefined;\n\n    ariaLabelledBy: string | undefined;\n\n    id: string = uuid('pn_id_');\n\n    styleElement: any;\n\n    @ViewChild(DynamicDialogContent) insertionPoint: Nullable<DynamicDialogContent>;\n\n    @ViewChild('mask') maskViewChild: Nullable<ElementRef>;\n\n    @ViewChild('content') contentViewChild: Nullable<ElementRef>;\n\n    @ViewChild('footer') footerViewChild: Nullable<ElementRef>;\n\n    @ViewChild('titlebar') headerViewChild: Nullable<ElementRef>;\n\n    childComponentType: Nullable<Type<any>>;\n\n    inputValues: Record<string, any>;\n\n    container: Nullable<HTMLDivElement>;\n\n    wrapper: Nullable<HTMLElement>;\n\n    documentKeydownListener: VoidListener;\n\n    documentEscapeListener: VoidListener;\n\n    maskClickListener: VoidListener;\n\n    transformOptions: string = 'scale(0.7)';\n\n    documentResizeListener: VoidListener;\n\n    documentResizeEndListener: VoidListener;\n\n    documentDragListener: VoidListener;\n\n    documentDragEndListener: VoidListener;\n\n    _componentStyle = inject(DynamicDialogStyle);\n\n    get minX(): number {\n        return this.ddconfig.minX ? this.ddconfig.minX : 0;\n    }\n\n    get minY(): number {\n        return this.ddconfig.minY ? this.ddconfig.minY : 0;\n    }\n\n    get keepInViewport(): boolean {\n        return this.ddconfig.keepInViewport!;\n    }\n\n    get maximizable(): boolean {\n        return this.ddconfig.maximizable!;\n    }\n\n    get maximizeIcon(): string {\n        return this.ddconfig.maximizeIcon!;\n    }\n\n    get minimizeIcon(): string {\n        return this.ddconfig.minimizeIcon!;\n    }\n\n    get closable() {\n        return this.ddconfig.closable!;\n    }\n\n    get style(): any {\n        return this._style;\n    }\n\n    get position(): string {\n        return this.ddconfig.position!;\n    }\n\n    get closeAriaLabel(): string {\n        return this.config.getTranslation(TranslationKeys.ARIA)['close'];\n    }\n\n    set style(value: any) {\n        if (value) {\n            this._style = { ...value };\n            this.originalStyle = value;\n        }\n    }\n\n    get parent() {\n        const domElements = Array.from(this.document.getElementsByClassName('p-dialog'));\n        if (domElements.length > 1) {\n            return domElements.pop();\n        }\n    }\n\n    get parentContent() {\n        const domElements = Array.from(this.document.getElementsByClassName('p-dialog'));\n        if (domElements.length > 0) {\n            const contentElements = domElements[domElements.length - 1].querySelector('.p-dialog-content');\n            if (contentElements) return Array.isArray(contentElements) ? contentElements[0] : contentElements;\n        }\n    }\n\n    get header() {\n        return this.ddconfig.header;\n    }\n\n    get data() {\n        return this.ddconfig.data;\n    }\n\n    get breakpoints() {\n        return this.ddconfig.breakpoints;\n    }\n\n    get footerTemplate() {\n        return this.ddconfig?.templates?.footer;\n    }\n\n    get headerTemplate() {\n        return this.ddconfig?.templates?.header;\n    }\n\n    get contentTemplate() {\n        return this.ddconfig?.templates?.content;\n    }\n\n    get minimizeIconTemplate(): any {\n        return this.ddconfig?.templates?.minimizeicon;\n    }\n\n    get maximizeIconTemplate(): any {\n        return this.ddconfig?.templates?.maximizeicon;\n    }\n\n    get closeIconTemplate() {\n        return this.ddconfig?.templates?.closeicon;\n    }\n\n    get maskClass() {\n        const positions = ['left', 'right', 'top', 'topleft', 'topright', 'bottom', 'bottomleft', 'bottomright'];\n        const pos = positions.find((item) => item === this.position);\n\n        return {\n            'p-dialog-mask': true,\n            'p-overlay-mask p-overlay-mask-enter': this.ddconfig.modal || this.ddconfig.dismissableMask,\n            [`p-dialog-${pos}`]: pos\n        };\n    }\n\n    get dialogId() {\n        return this.attrSelector;\n    }\n\n    private zIndexForLayering?: number;\n\n    constructor(\n        public renderer: Renderer2,\n        public ddconfig: DynamicDialogConfig,\n        private dialogRef: DynamicDialogRef,\n        public zone: NgZone,\n        @SkipSelf() @Optional() private parentDialog: DynamicDialogComponent\n    ) {\n        super();\n    }\n\n    ngOnInit() {\n        super.ngOnInit();\n        if (this.breakpoints) {\n            this.createStyle();\n        }\n    }\n\n    createStyle() {\n        if (isPlatformBrowser(this.platformId)) {\n            if (!this.styleElement) {\n                this.styleElement = this.renderer.createElement('style');\n                this.styleElement.type = 'text/css';\n                this.renderer.appendChild(this.document.head, this.styleElement);\n                let innerHTML = '';\n                for (let breakpoint in this.breakpoints) {\n                    innerHTML += `\n                        @media screen and (max-width: ${breakpoint}) {\n                            .p-dialog[id=${this.dialogId}]:not(.p-dialog-maximized) {\n                                width: ${this.breakpoints[breakpoint]} !important;\n                            }\n                        }\n                    `;\n                }\n\n                this.renderer.setProperty(this.styleElement, 'innerHTML', innerHTML);\n                setAttribute(this.styleElement, 'nonce', this.config?.csp()?.nonce);\n            }\n        }\n    }\n    destroyStyle() {\n        if (this.styleElement) {\n            this.renderer.removeChild(this.document.head, this.styleElement);\n            this.styleElement = null;\n        }\n    }\n\n    ngAfterViewInit() {\n        super.ngAfterViewInit();\n        this.loadChildComponent(this.childComponentType!);\n        this.ariaLabelledBy = this.getAriaLabelledBy();\n        this.cd.detectChanges();\n    }\n\n    getAriaLabelledBy() {\n        return this.header !== null ? uuid('pn_id_') + '_header' : null;\n    }\n\n    loadChildComponent(componentType: Type<any>) {\n        let viewContainerRef = this.insertionPoint?.viewContainerRef;\n        viewContainerRef?.clear();\n\n        this.componentRef = viewContainerRef?.createComponent(componentType);\n\n        if (this.inputValues) {\n            Object.entries(this.inputValues).forEach(([key, value]) => {\n                this.componentRef.setInput(key, value);\n            });\n        }\n\n        this.dialogRef.onChildComponentLoaded.next(this.componentRef!.instance);\n    }\n\n    moveOnTop() {\n        if (this.ddconfig.autoZIndex !== false) {\n            ZIndexUtils.set('modal', this.container, (this.ddconfig.baseZIndex || 0) + this.config.zIndex.modal);\n            (this.wrapper as HTMLElement).style.zIndex = String(parseInt((this.container as HTMLDivElement).style.zIndex, 10) - 1);\n        } else {\n            this.zIndexForLayering = ZIndexUtils.generateZIndex('modal', (this.ddconfig.baseZIndex || 0) + this.config.zIndex.modal);\n        }\n    }\n\n    onAnimationStart(event: AnimationEvent) {\n        switch (event.toState) {\n            case 'visible':\n                this.container = event.element;\n                this.wrapper = (this.container as HTMLDivElement).parentElement;\n                this.moveOnTop();\n                if (this.parent) {\n                    this.unbindGlobalListeners();\n                }\n                this.bindGlobalListeners();\n                this.container?.setAttribute(this.id, '');\n\n                if (this.ddconfig.modal !== false) {\n                    this.enableModality();\n                }\n\n                if (this.ddconfig.focusOnShow !== false) {\n                    this.focus();\n                }\n                break;\n\n            case 'void':\n                if (this.wrapper && this.ddconfig.modal !== false) {\n                    addClass(this.wrapper, 'p-overlay-mask-leave');\n                }\n                break;\n        }\n    }\n\n    onAnimationEnd(event: AnimationEvent) {\n        if (event.toState === 'void') {\n            if (this.parentContent) {\n                this.focus(this.parentContent);\n            }\n            this.onContainerDestroy();\n            this.dialogRef.destroy();\n        }\n    }\n\n    onContainerDestroy() {\n        this.unbindGlobalListeners();\n\n        if (this.container && this.ddconfig.autoZIndex !== false) {\n            ZIndexUtils.clear(this.container);\n        }\n        if (this.zIndexForLayering) {\n            ZIndexUtils.revertZIndex(this.zIndexForLayering);\n        }\n\n        if (this.ddconfig.modal !== false) {\n            this.disableModality();\n        }\n        this.container = null;\n    }\n\n    close() {\n        this.visible = false;\n        this.cd.markForCheck();\n    }\n\n    hide() {\n        if (this.dialogRef) {\n            this.dialogRef.close();\n        }\n    }\n\n    enableModality() {\n        if (this.ddconfig.dismissableMask) {\n            this.maskClickListener = this.renderer.listen(this.wrapper, 'mousedown', (event: any) => {\n                if (this.wrapper && this.wrapper.isSameNode(event.target)) {\n                    this.hide();\n                }\n            });\n        }\n\n        if (this.ddconfig.modal !== false) {\n            addClass(this.document.body, 'p-overflow-hidden');\n        }\n    }\n\n    disableModality() {\n        if (this.wrapper) {\n            if (this.ddconfig.dismissableMask) {\n                this.unbindMaskClickListener();\n            }\n\n            if (this.ddconfig.modal !== false) {\n                removeClass(this.document.body, 'p-overflow-hidden');\n            }\n\n            if (!(this.cd as ViewRef).destroyed) {\n                this.cd.detectChanges();\n            }\n        }\n    }\n\n    focus(focusParentElement = this.contentViewChild.nativeElement) {\n        let focusable = DomHandler.getFocusableElement(focusParentElement, '[autofocus]');\n        if (focusable) {\n            this.zone.runOutsideAngular(() => {\n                setTimeout(() => focusable.focus(), 5);\n            });\n            return;\n        }\n        const focusableElement = DomHandler.getFocusableElement(focusParentElement);\n        if (focusableElement) {\n            this.zone.runOutsideAngular(() => {\n                setTimeout(() => focusableElement.focus(), 5);\n            });\n        } else if (this.footerViewChild) {\n            // If the content section is empty try to focus on footer\n            this.focus(this.footerViewChild.nativeElement);\n        } else if (!focusableElement && this.headerViewChild) {\n            this.focus(this.headerViewChild.nativeElement);\n        }\n    }\n\n    maximize() {\n        this.maximized = !this.maximized;\n\n        if (this.maximized) {\n            addClass(this.document.body, 'p-overflow-hidden');\n        } else {\n            removeClass(this.document.body, 'p-overflow-hidden');\n        }\n\n        this.dialogRef.maximize({ maximized: this.maximized });\n    }\n\n    initResize(event: MouseEvent) {\n        if (this.ddconfig.resizable) {\n            if (!this.documentResizeListener) {\n                this.bindDocumentResizeListeners();\n            }\n\n            this.resizing = true;\n            this.lastPageX = event.pageX;\n            this.lastPageY = event.pageY;\n            addClass(this.document.body, 'p-unselectable-text');\n            this.dialogRef.resizeInit(event);\n        }\n    }\n\n    onResize(event: MouseEvent) {\n        if (this.resizing) {\n            let deltaX = event.pageX - (this.lastPageX as number);\n            let deltaY = event.pageY - (this.lastPageY as number);\n            let containerWidth = getOuterWidth(this.container);\n            let containerHeight = getOuterHeight(this.container);\n            let contentHeight = getOuterHeight((<ElementRef>this.contentViewChild).nativeElement);\n            let newWidth = containerWidth + deltaX;\n            let newHeight = containerHeight + deltaY;\n            let minWidth = (this.container as HTMLDivElement).style.minWidth;\n            let minHeight = (this.container as HTMLDivElement).style.minHeight;\n            let offset = (this.container as HTMLDivElement).getBoundingClientRect();\n            let viewport = getViewport();\n            let hasBeenDragged = !parseInt((this.container as HTMLDivElement).style.top) || !parseInt((this.container as HTMLDivElement).style.left);\n\n            if (hasBeenDragged) {\n                newWidth += deltaX;\n                newHeight += deltaY;\n            }\n\n            if ((!minWidth || newWidth > parseInt(minWidth)) && offset.left + newWidth < viewport.width) {\n                this._style.width = newWidth + 'px';\n                (this.container as HTMLDivElement).style.width = this._style.width;\n            }\n\n            if ((!minHeight || newHeight > parseInt(minHeight)) && offset.top + newHeight < viewport.height) {\n                (<ElementRef>this.contentViewChild).nativeElement.style.height = contentHeight + newHeight - containerHeight + 'px';\n\n                if (this._style.height) {\n                    this._style.height = newHeight + 'px';\n                    (this.container as HTMLDivElement).style.height = this._style.height;\n                }\n            }\n\n            this.lastPageX = event.pageX;\n            this.lastPageY = event.pageY;\n        }\n    }\n\n    resizeEnd(event: MouseEvent) {\n        if (this.resizing) {\n            this.resizing = false;\n            removeClass(this.document.body, 'p-unselectable-text');\n            this.dialogRef.resizeEnd(event);\n        }\n    }\n\n    initDrag(event: MouseEvent) {\n        if (hasClass(event.target as any, 'p-dialog-header-icon') || hasClass((<HTMLElement>event.target).parentElement, 'p-dialog-header-icon')) {\n            return;\n        }\n\n        if (this.ddconfig.draggable) {\n            this.dragging = true;\n            this.lastPageX = event.pageX;\n            this.lastPageY = event.pageY;\n\n            (this.container as HTMLDivElement).style.margin = '0';\n            addClass(this.document.body, 'p-unselectable-text');\n            this.dialogRef.dragStart(event);\n        }\n    }\n\n    onDrag(event: MouseEvent) {\n        if (this.dragging) {\n            let containerWidth = getOuterWidth(this.container);\n            let containerHeight = getOuterHeight(this.container);\n            let deltaX = event.pageX - (this.lastPageX as number);\n            let deltaY = event.pageY - (this.lastPageY as number);\n            let offset = (this.container as HTMLDivElement).getBoundingClientRect();\n            let leftPos = offset.left + deltaX;\n            let topPos = offset.top + deltaY;\n            let viewport = getViewport();\n\n            (this.container as HTMLDivElement).style.position = 'fixed';\n\n            if (this.keepInViewport) {\n                if (leftPos >= this.minX && leftPos + containerWidth < viewport.width) {\n                    this._style.left = leftPos + 'px';\n                    this.lastPageX = event.pageX;\n                    (this.container as HTMLDivElement).style.left = leftPos + 'px';\n                }\n\n                if (topPos >= this.minY && topPos + containerHeight < viewport.height) {\n                    this._style.top = topPos + 'px';\n                    this.lastPageY = event.pageY;\n                    (this.container as HTMLDivElement).style.top = topPos + 'px';\n                }\n            } else {\n                this.lastPageX = event.pageX;\n                (this.container as HTMLDivElement).style.left = leftPos + 'px';\n                this.lastPageY = event.pageY;\n                (this.container as HTMLDivElement).style.top = topPos + 'px';\n            }\n        }\n    }\n\n    endDrag(event: MouseEvent) {\n        if (this.dragging) {\n            this.dragging = false;\n            removeClass(this.document.body, 'p-unselectable-text');\n            this.dialogRef.dragEnd(event);\n            this.cd.detectChanges();\n        }\n    }\n\n    resetPosition() {\n        (this.container as HTMLDivElement).style.position = '';\n        (this.container as HTMLDivElement).style.left = '';\n        (this.container as HTMLDivElement).style.top = '';\n        (this.container as HTMLDivElement).style.margin = '';\n    }\n\n    bindDocumentDragListener() {\n        if (isPlatformBrowser(this.platformId)) {\n            this.zone.runOutsideAngular(() => {\n                this.documentDragListener = this.renderer.listen(this.document, 'mousemove', this.onDrag.bind(this));\n            });\n        }\n    }\n\n    bindDocumentDragEndListener() {\n        if (isPlatformBrowser(this.platformId)) {\n            this.zone.runOutsideAngular(() => {\n                this.documentDragEndListener = this.renderer.listen(this.document, 'mouseup', this.endDrag.bind(this));\n            });\n        }\n    }\n\n    unbindDocumentDragEndListener() {\n        if (this.documentDragEndListener) {\n            this.documentDragEndListener();\n            this.documentDragListener = null;\n        }\n    }\n\n    unbindDocumentDragListener() {\n        if (this.documentDragListener) {\n            this.documentDragListener();\n            this.documentDragListener = null;\n        }\n    }\n\n    bindDocumentResizeListeners() {\n        if (isPlatformBrowser(this.platformId)) {\n            this.zone.runOutsideAngular(() => {\n                this.documentResizeListener = this.renderer.listen(this.document, 'mousemove', this.onResize.bind(this));\n                this.documentResizeEndListener = this.renderer.listen(this.document, 'mouseup', this.resizeEnd.bind(this));\n            });\n        }\n    }\n\n    unbindDocumentResizeListeners() {\n        if (this.documentResizeListener && this.documentResizeEndListener) {\n            this.documentResizeListener();\n            this.documentResizeEndListener();\n            this.documentResizeListener = null;\n            this.documentResizeEndListener = null;\n        }\n    }\n\n    bindGlobalListeners() {\n        if (this.ddconfig.closeOnEscape !== false) {\n            this.bindDocumentEscapeListener();\n        }\n\n        if (this.ddconfig.resizable) {\n            this.bindDocumentResizeListeners();\n        }\n\n        if (this.ddconfig.draggable) {\n            this.bindDocumentDragListener();\n            this.bindDocumentDragEndListener();\n        }\n    }\n\n    unbindGlobalListeners() {\n        this.unbindDocumentEscapeListener();\n        this.unbindDocumentResizeListeners();\n        this.unbindDocumentDragListener();\n        this.unbindDocumentDragEndListener();\n    }\n\n    bindDocumentEscapeListener() {\n        const documentTarget: any = this.maskViewChild ? this.maskViewChild.nativeElement.ownerDocument : 'document';\n\n        this.documentEscapeListener = this.renderer.listen(documentTarget, 'keydown', (event) => {\n            if (event.which == 27) {\n                const currentZIndex = ZIndexUtils.getCurrent();\n                if (parseInt((this.container as HTMLDivElement).style.zIndex) == currentZIndex || this.zIndexForLayering == currentZIndex) {\n                    this.hide();\n                }\n            }\n        });\n    }\n\n    unbindDocumentEscapeListener() {\n        if (this.documentEscapeListener) {\n            this.documentEscapeListener();\n            this.documentEscapeListener = null;\n        }\n    }\n\n    unbindMaskClickListener() {\n        if (this.maskClickListener) {\n            this.maskClickListener();\n            this.maskClickListener = null;\n        }\n    }\n\n    ngOnDestroy() {\n        this.onContainerDestroy();\n\n        if (this.componentRef) {\n            this.componentRef.destroy();\n        }\n        this.destroyStyle();\n        super.ngOnDestroy();\n    }\n}\n\n@NgModule({\n    imports: [DynamicDialogComponent, SharedModule],\n    exports: [DynamicDialogComponent, SharedModule]\n})\nexport class DynamicDialogModule {}\n","import { InjectOptions, Injector, ProviderToken, InjectFlags } from '@angular/core';\n\nexport class DynamicDialogInjector implements Injector {\n    constructor(\n        private _parentInjector: Injector,\n        private _additionalTokens: WeakMap<any, any>\n    ) {}\n\n    get<T>(token: ProviderToken<T>, notFoundValue?: T, options?: InjectOptions | InjectFlags): T {\n        const value = this._additionalTokens.get(token);\n\n        if (value) return value;\n\n        return this._parentInjector.get<any>(token, notFoundValue);\n    }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { ApplicationRef, ComponentRef, EmbeddedViewRef, Inject, Injectable, Injector, Type, createComponent } from '@angular/core';\nimport { appendChild } from '@primeuix/utils';\nimport { DynamicDialogComponent } from './dynamicdialog';\nimport { DynamicDialogConfig } from './dynamicdialog-config';\nimport { DynamicDialogInjector } from './dynamicdialog-injector';\nimport { DynamicDialogRef } from './dynamicdialog-ref';\n\n/**\n * Dynamic Dialog component methods.\n * @group Service\n */\n@Injectable()\nexport class DialogService {\n    dialogComponentRefMap: Map<DynamicDialogRef<any>, ComponentRef<DynamicDialogComponent>> = new Map();\n\n    constructor(\n        private appRef: ApplicationRef,\n        private injector: Injector,\n        @Inject(DOCUMENT) private document: Document\n    ) {}\n    /**\n     * Displays the dialog using the dynamic dialog object options.\n     * @param {*} componentType - Dynamic component for content template.\n     * @param {DynamicDialogConfig} config - DynamicDialog object.\n     * @returns {DynamicDialogRef} DynamicDialog instance.\n     * @group Method\n     */\n    public open<T, DataType = any, InputValuesType extends Record<string, any> = {}>(componentType: Type<T>, config: DynamicDialogConfig<DataType, InputValuesType>): DynamicDialogRef<T> {\n        if (!this.duplicationPermission(componentType, config)) {\n            return null;\n        }\n\n        const dialogRef = this.appendDialogComponentToBody<T>(config, componentType);\n\n        this.dialogComponentRefMap.get(dialogRef).instance.childComponentType = componentType;\n        this.dialogComponentRefMap.get(dialogRef).instance.inputValues = config.inputValues;\n\n        return dialogRef;\n    }\n    /**\n     * Returns the dynamic dialog component instance.\n     * @param {ref} DynamicDialogRef - DynamicDialog instance.\n     * @group Method\n     */\n    public getInstance(ref: DynamicDialogRef<any>) {\n        return this.dialogComponentRefMap.get(ref).instance;\n    }\n\n    private appendDialogComponentToBody<T>(config: DynamicDialogConfig, componentType: Type<T>): DynamicDialogRef<T> {\n        const map = new WeakMap();\n        map.set(DynamicDialogConfig, config);\n\n        const dialogRef = new DynamicDialogRef<T>();\n        map.set(DynamicDialogRef, dialogRef);\n\n        const sub = dialogRef.onClose.subscribe(() => {\n            this.dialogComponentRefMap.get(dialogRef).instance.close();\n        });\n\n        const destroySub = dialogRef.onDestroy.subscribe(() => {\n            this.removeDialogComponentFromBody(dialogRef);\n            destroySub.unsubscribe();\n            sub.unsubscribe();\n        });\n\n        const componentRef = createComponent(DynamicDialogComponent, {\n            environmentInjector: this.appRef.injector,\n            elementInjector: new DynamicDialogInjector(this.injector, map)\n        });\n\n        this.appRef.attachView(componentRef.hostView);\n\n        const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n        if (!config.appendTo || config.appendTo === 'body') {\n            this.document.body.appendChild(domElem);\n        } else {\n            appendChild(config.appendTo, domElem);\n        }\n\n        this.dialogComponentRefMap.set(dialogRef, componentRef);\n\n        return dialogRef;\n    }\n\n    private removeDialogComponentFromBody(dialogRef: DynamicDialogRef<any>) {\n        if (!dialogRef || !this.dialogComponentRefMap.has(dialogRef)) {\n            return;\n        }\n\n        const dialogComponentRef = this.dialogComponentRefMap.get(dialogRef);\n        this.appRef.detachView(dialogComponentRef.hostView);\n        dialogComponentRef.destroy();\n        dialogComponentRef.changeDetectorRef.detectChanges();\n        this.dialogComponentRefMap.delete(dialogRef);\n    }\n\n    private duplicationPermission(componentType: Type<any>, config: DynamicDialogConfig): boolean {\n        if (config.duplicate) {\n            return true;\n        }\n        let permission = true;\n        for (const [key, value] of this.dialogComponentRefMap) {\n            if (value.instance.childComponentType === componentType) {\n                permission = false;\n                break;\n            }\n        }\n        return permission;\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.DynamicDialogConfig","i2.DynamicDialogRef"],"mappings":"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"}