{"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';\nimport type { DialogPassThrough } from 'primeng/types/dialog';\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 component.\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\", \"topleft\", \"topright\", \"bottomleft\" or \"bottomright\".\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     * Used to pass attributes to DOM elements inside the Dialog component.\n     * @group Props\n     */\n    pt?: DialogPassThrough;\n    /**\n     * Indicates whether the component should be rendered without styles.\n     * @group Props\n     */\n    unstyled?: boolean;\n}\n\n/**\n * Defines valid templates in Dynamic Dialog.\n * Templates are Angular components that will be rendered using ngComponentOutlet.\n * @group Templates\n */\nexport interface DynamicDialogTemplates {\n    /**\n     * Component to render as the header.\n     */\n    header?: Type<any>;\n    /**\n     * Component to render as the content.\n     */\n    content?: Type<any>;\n    /**\n     * Component to render as the footer.\n     */\n    footer?: Type<any>;\n    /**\n     * Component to render as the minimize icon.\n     */\n    minimizeicon?: Type<any>;\n    /**\n     * Component to render as the maximize icon.\n     */\n    maximizeicon?: Type<any>;\n    /**\n     * Component to render as the close icon.\n     */\n    closeicon?: Type<any>;\n}\n","import { Observable, Subject } from 'rxjs';\n/**\n * Dynamic Dialog instance.\n * @group Components\n */\nexport class DynamicDialogRef<ComponentType = any> {\n    constructor() {}\n\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 { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ComponentRef, inject, InjectionToken, NgModule, Type, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { uuid } from '@primeuix/utils';\nimport { SharedModule, TranslationKeys } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Dialog, DialogPassThrough } from 'primeng/dialog';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { DynamicDialogConfig } from './dynamicdialog-config';\nimport { DynamicDialogRef } from './dynamicdialog-ref';\nimport { DynamicDialogContent } from './dynamicdialogcontent';\nimport { DynamicDialogStyle } from './style/dynamicdialogstyle';\n\nconst DYNAMIC_DIALOG_INSTANCE = new InjectionToken<DynamicDialog>('DYNAMIC_DIALOG_INSTANCE');\n\n@Component({\n    selector: 'p-dynamicDialog, p-dynamicdialog, p-dynamic-dialog',\n    standalone: true,\n    imports: [CommonModule, SharedModule, DynamicDialogContent, Dialog, BindModule],\n    template: `\n        <p-dialog\n            [(visible)]=\"visible\"\n            [header]=\"ddconfig?.header\"\n            [draggable]=\"ddconfig?.draggable !== false\"\n            [resizable]=\"ddconfig?.resizable !== false\"\n            [contentStyle]=\"ddconfig?.contentStyle\"\n            [modal]=\"ddconfig?.modal !== false\"\n            [closeOnEscape]=\"ddconfig?.closeOnEscape !== false\"\n            [dismissableMask]=\"ddconfig?.dismissableMask\"\n            [rtl]=\"ddconfig?.rtl\"\n            [closable]=\"closable\"\n            [breakpoints]=\"breakpoints\"\n            [styleClass]=\"ddconfig?.styleClass\"\n            [maskStyleClass]=\"ddconfig?.maskStyleClass\"\n            [showHeader]=\"ddconfig?.showHeader !== false\"\n            [autoZIndex]=\"ddconfig?.autoZIndex !== false\"\n            [baseZIndex]=\"ddconfig?.baseZIndex || 0\"\n            [minX]=\"minX\"\n            [minY]=\"minY\"\n            [focusOnShow]=\"ddconfig?.focusOnShow !== false\"\n            [maximizable]=\"maximizable\"\n            [keepInViewport]=\"keepInViewport\"\n            [focusTrap]=\"ddconfig?.focusTrap !== false\"\n            [transitionOptions]=\"ddconfig?.transitionOptions || '150ms cubic-bezier(0, 0, 0.2, 1)'\"\n            [closeAriaLabel]=\"ddconfig?.closeAriaLabel || defaultCloseAriaLabel\"\n            [minimizeIcon]=\"minimizeIcon\"\n            [maximizeIcon]=\"maximizeIcon\"\n            [closeButtonProps]=\"{ severity: 'secondary', variant: 'text', rounded: true }\"\n            [maximizeButtonProps]=\"{ severity: 'secondary', variant: 'text', rounded: true }\"\n            [style]=\"dialogStyle\"\n            [position]=\"position\"\n            (onHide)=\"onDialogHide($event)\"\n            (onMaximize)=\"onDialogMaximize($event)\"\n            (onResizeInit)=\"onDialogResizeInit($event)\"\n            (onResizeEnd)=\"onDialogResizeEnd($event)\"\n            (onDragEnd)=\"onDialogDragEnd($event)\"\n            (visibleChange)=\"onVisibleChange($event)\"\n            [pt]=\"ddconfig.pt\"\n            appendTo=\"self\"\n            hostName=\"DynamicDialog\"\n            [unstyled]=\"isUnstyled\"\n        >\n            <ng-template #header *ngIf=\"headerTemplate\">\n                <ng-container *ngComponentOutlet=\"headerTemplate\"></ng-container>\n            </ng-template>\n            <ng-template #content *ngIf=\"contentTemplate\">\n                <ng-container *ngComponentOutlet=\"contentTemplate\"></ng-container>\n            </ng-template>\n            <ng-template #footer *ngIf=\"footerTemplate\">\n                <ng-container *ngComponentOutlet=\"footerTemplate\"></ng-container>\n            </ng-template>\n            <ng-template #closeicon *ngIf=\"closeIconTemplate\">\n                <ng-container *ngComponentOutlet=\"closeIconTemplate\"></ng-container>\n            </ng-template>\n            <ng-template #maximizeicon *ngIf=\"maximizeIconTemplate\">\n                <ng-container *ngComponentOutlet=\"maximizeIconTemplate\"></ng-container>\n            </ng-template>\n            <ng-template #minimizeicon *ngIf=\"minimizeIconTemplate\">\n                <ng-container *ngComponentOutlet=\"minimizeIconTemplate\"></ng-container>\n            </ng-template>\n\n            <ng-template pDynamicDialogContent *ngIf=\"!contentTemplate\"></ng-template>\n            <div *ngIf=\"ddconfig.footer && !footerTemplate\">{{ ddconfig.footer }}</div>\n        </p-dialog>\n    `,\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n    providers: [DynamicDialogStyle, { provide: DYNAMIC_DIALOG_INSTANCE, useExisting: DynamicDialog }, { provide: PARENT_INSTANCE, useExisting: DynamicDialog }],\n    hostDirectives: [Bind]\n})\nexport class DynamicDialog extends BaseComponent<DialogPassThrough> {\n    componentName = 'Dialog';\n\n    _componentStyle = inject(DynamicDialogStyle);\n\n    $pcDynamicDialog: DynamicDialog | undefined = inject(DYNAMIC_DIALOG_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    onAfterViewChecked(): void {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\n    visible: boolean = true;\n\n    componentRef: Nullable<ComponentRef<any>>;\n\n    id: string = uuid('pn_id_');\n\n    @ViewChild(DynamicDialogContent) insertionPoint: Nullable<DynamicDialogContent>;\n\n    @ViewChild(Dialog) dialog: Nullable<Dialog>;\n\n    childComponentType: Nullable<Type<any>>;\n\n    inputValues: Record<string, any>;\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 position(): string {\n        return this.ddconfig.position!;\n    }\n\n    get defaultCloseAriaLabel(): string {\n        return this.config.getTranslation(TranslationKeys.ARIA)['close'];\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 dialogStyle() {\n        return {\n            ...(this.ddconfig?.style || {}),\n            ...(this.ddconfig?.width && { width: this.ddconfig.width }),\n            ...(this.ddconfig?.height && { height: this.ddconfig.height })\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 dialogId() {\n        return this.$attrSelector;\n    }\n\n    get isUnstyled() {\n        return this.ddconfig.unstyled || this.$unstyled();\n    }\n\n    maximized: boolean | undefined;\n\n    dragging: boolean | undefined;\n\n    resizing: boolean | undefined;\n\n    ariaLabelledBy: string | undefined | null;\n\n    _style: any = {};\n\n    styleElement: any;\n\n    lastPageX: number | undefined;\n\n    lastPageY: number | undefined;\n\n    contentViewChild: any;\n\n    footerViewChild: any;\n\n    headerViewChild: any;\n\n    maskViewChild: any;\n\n    maskClickListener: any;\n\n    documentDragListener: any;\n\n    documentDragEndListener: any;\n\n    documentResizeListener: any;\n\n    documentResizeEndListener: any;\n\n    documentEscapeListener: any;\n\n    constructor(\n        public ddconfig: DynamicDialogConfig,\n        private dialogRef: DynamicDialogRef\n    ) {\n        super();\n    }\n\n    onVisibleChange(visible: boolean) {\n        if (!visible) {\n            this.dialogRef.close();\n        }\n    }\n\n    onAfterViewInit() {\n        this.loadChildComponent(this.childComponentType!);\n        this.ariaLabelledBy = this.getAriaLabelledBy();\n        this.cd.detectChanges();\n    }\n\n    getAriaLabelledBy() {\n        const { header, showHeader } = this.ddconfig;\n\n        if (header === null || showHeader === false) {\n            return null;\n        }\n        return uuid('pn_id_') + '_header';\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 && this.componentRef) {\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    onDialogHide(event: any) {\n        this.dialogRef.destroy();\n    }\n\n    onDialogMaximize(event: any) {\n        this.maximized = event.maximized;\n        this.dialogRef.maximize(event);\n    }\n\n    onDialogResizeInit(event: MouseEvent) {\n        this.resizing = true;\n        this.dialogRef.resizeInit(event);\n    }\n\n    onDialogResizeEnd(event: MouseEvent) {\n        this.resizing = false;\n        this.dialogRef.resizeEnd(event);\n    }\n\n    onDialogDragEnd(event: DragEvent) {\n        this.dragging = false;\n        this.dialogRef.dragEnd(event);\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    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    container: any;\n\n    wrapper: any;\n\n    unbindGlobalListeners() {\n        this.unbindDocumentEscapeListener();\n        this.unbindDocumentResizeListeners();\n        this.unbindDocumentDragListener();\n        this.unbindDocumentDragEndListener();\n    }\n\n    onAnimationStart(event: any) {\n        if (event.toState === 'visible') {\n            // If parent dialog exists, unbind its listeners first\n            if (this._parent) {\n                this.unbindGlobalListeners();\n            }\n            if (this.ddconfig.modal) {\n                this.enableModality();\n            }\n        }\n    }\n\n    onAnimationEnd(event: any) {\n        if (event.toState === 'void') {\n            this.onContainerDestroy();\n            this.dialogRef.destroy();\n        }\n    }\n\n    onContainerDestroy() {\n        this.unbindGlobalListeners();\n        if (this.ddconfig.modal) {\n            this.disableModality();\n        }\n        this.container = null;\n    }\n\n    bindDocumentDragListener() {\n        if (!this.documentDragListener) {\n            this.documentDragListener = this.renderer.listen(this.document.defaultView, 'mousemove', (event) => {\n                this.onDrag(event);\n            });\n        }\n    }\n\n    bindDocumentDragEndListener() {\n        if (!this.documentDragEndListener) {\n            this.documentDragEndListener = this.renderer.listen(this.document.defaultView, 'mouseup', (event) => {\n                this.endDrag(event);\n            });\n        }\n    }\n\n    unbindDocumentDragEndListener() {\n        if (this.documentDragEndListener) {\n            this.documentDragEndListener();\n            this.documentDragEndListener = null;\n        }\n    }\n\n    unbindDocumentDragListener() {\n        if (this.documentDragListener) {\n            this.documentDragListener();\n            this.documentDragListener = null;\n        }\n    }\n\n    initDrag(event: MouseEvent) {\n        // Don't initialize drag when clicking on header icons\n        if (event.target instanceof HTMLElement) {\n            const target = event.target;\n            if (target.closest('.p-dialog-header-icon') || target.closest('.p-dialog-header-icons')) {\n                return;\n            }\n        }\n\n        this.dragging = true;\n        this.lastPageX = event.pageX;\n        this.lastPageY = event.pageY;\n        this.dialogRef.dragStart(event);\n        this.bindDocumentDragListener();\n        this.bindDocumentDragEndListener();\n        // Handled by Dialog component\n    }\n\n    onDrag(event: MouseEvent) {\n        if (this.dragging) {\n            this.lastPageX = event.pageX;\n            this.lastPageY = event.pageY;\n\n            if (this.ddconfig.keepInViewport && this.container) {\n                this.container.style.position = 'fixed';\n            }\n        }\n    }\n\n    endDrag(event: MouseEvent) {\n        if (this.dragging) {\n            this.dragging = false;\n            this.dialogRef.dragEnd(event as any);\n            this.cd.detectChanges();\n        }\n    }\n\n    resetPosition() {\n        if (this.container) {\n            this.container.style.position = '';\n            this.container.style.left = '';\n            this.container.style.top = '';\n            this.container.style.margin = '';\n        }\n    }\n\n    bindDocumentResizeListeners() {\n        if (!this.documentResizeListener) {\n            this.documentResizeListener = this.renderer.listen(this.document.defaultView, 'mousemove', (event) => {\n                this.onResize(event);\n            });\n        }\n        if (!this.documentResizeEndListener) {\n            this.documentResizeEndListener = this.renderer.listen(this.document.defaultView, 'mouseup', (event) => {\n                this.resizeEnd(event);\n            });\n        }\n    }\n\n    unbindDocumentResizeListeners() {\n        if (this.documentResizeListener) {\n            this.documentResizeListener();\n            this.documentResizeListener = null;\n        }\n        if (this.documentResizeEndListener) {\n            this.documentResizeEndListener();\n            this.documentResizeEndListener = null;\n        }\n    }\n\n    initResize(event: MouseEvent) {\n        this.resizing = true;\n        this.lastPageX = event.pageX;\n        this.lastPageY = event.pageY;\n        this.dialogRef.resizeInit(event);\n    }\n\n    onResize(event: MouseEvent) {\n        if (this.resizing) {\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            this.dialogRef.resizeEnd(event);\n        }\n    }\n\n    maximize() {\n        this.maximized = !this.maximized;\n        this.dialogRef.maximize({ maximized: this.maximized });\n    }\n\n    enableModality() {\n        if (this.ddconfig.dismissableMask && this.wrapper) {\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\n    disableModality() {\n        this.unbindMaskClickListener();\n        this.cd.detectChanges();\n    }\n\n    unbindMaskClickListener() {\n        if (this.maskClickListener) {\n            this.maskClickListener();\n            this.maskClickListener = null;\n        }\n    }\n\n    bindDocumentEscapeListener() {\n        if (this.ddconfig.closeOnEscape) {\n            this.documentEscapeListener = this.renderer.listen(this.document, 'keydown', (event: KeyboardEvent) => {\n                if (event.key === 'Escape' && this.container) {\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    createStyle() {\n        if (!this.styleElement && this.breakpoints) {\n            this.styleElement = this.renderer.createElement('style');\n            this.styleElement.type = 'text/css';\n            this.renderer.appendChild(this.document.head, this.styleElement);\n\n            let innerHTML = '';\n            for (let breakpoint in this.breakpoints) {\n                innerHTML += `\n                    @media screen and (max-width: ${breakpoint}) {\n                        .p-dialog[${this.dialogId}] {\n                            width: ${this.breakpoints[breakpoint]} !important;\n                        }\n                    }\n                `;\n            }\n            this.renderer.setProperty(this.styleElement, 'innerHTML', innerHTML);\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    onDestroy() {\n        this.onContainerDestroy();\n        if (this.componentRef && typeof this.componentRef.destroy === 'function') {\n            this.componentRef.destroy();\n        }\n        this.destroyStyle();\n    }\n}\n\n@NgModule({\n    imports: [DynamicDialog, SharedModule],\n    exports: [DynamicDialog, SharedModule]\n})\nexport class DynamicDialogModule {}\n","import { InjectOptions, Injector, ProviderToken } 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): 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 { DynamicDialog } 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<DynamicDialog>> = 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> | null {\n        if (!this.duplicationPermission(componentType, config)) {\n            return null;\n        }\n\n        const dialogRef = this.appendDialogComponentToBody<T>(config, componentType);\n\n        const componentRefInstance = this.dialogComponentRefMap.get(dialogRef);\n        if (componentRefInstance) {\n            componentRefInstance.instance.childComponentType = componentType;\n            componentRefInstance.instance.inputValues = config.inputValues || {};\n        }\n\n        return dialogRef;\n    }\n    /**\n     * Returns the dynamic dialog component instance.\n     * @param {DynamicDialogRef} ref - 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(DynamicDialog, {\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        if (dialogComponentRef) {\n            this.appRef.detachView(dialogComponentRef.hostView);\n            dialogComponentRef.destroy();\n            dialogComponentRef.changeDetectorRef.detectChanges();\n        }\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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"}