{"version":3,"file":"primeng-dialog.mjs","sources":["../../src/app/components/dialog/dialog.ts","../../src/app/components/dialog/primeng-dialog.ts"],"sourcesContent":["import { AnimationEvent, animate, animation, style, transition, trigger, useAnimation } from '@angular/animations';\nimport { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n    AfterContentInit,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ContentChild,\n    ContentChildren,\n    ElementRef,\n    EventEmitter,\n    Inject,\n    Input,\n    NgModule,\n    NgZone,\n    OnDestroy,\n    OnInit,\n    Output,\n    PLATFORM_ID,\n    QueryList,\n    Renderer2,\n    SimpleChanges,\n    TemplateRef,\n    ViewChild,\n    ViewEncapsulation,\n    ViewRef\n} from '@angular/core';\nimport { Footer, Header, PrimeNGConfig, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { DomHandler } from 'primeng/dom';\nimport { FocusTrapModule } from 'primeng/focustrap';\nimport { TimesIcon } from 'primeng/icons/times';\nimport { WindowMaximizeIcon } from 'primeng/icons/windowmaximize';\nimport { WindowMinimizeIcon } from 'primeng/icons/windowminimize';\nimport { RippleModule } from 'primeng/ripple';\nimport { Nullable, VoidListener } from 'primeng/ts-helpers';\nimport { UniqueComponentId, ZIndexUtils } from 'primeng/utils';\n\nconst showAnimation = animation([style({ transform: '{{transform}}', opacity: 0 }), animate('{{transition}}')]);\n\nconst hideAnimation = animation([animate('{{transition}}', style({ transform: '{{transform}}', opacity: 0 }))]);\n/**\n * Dialog is a container to display content in an overlay window.\n * @group Components\n */\n@Component({\n    selector: 'p-dialog',\n    template: `\n        <div\n            *ngIf=\"maskVisible\"\n            [class]=\"maskStyleClass\"\n            [style]=\"maskStyle\"\n            [ngClass]=\"{\n                'p-dialog-mask': true,\n                'p-component-overlay p-component-overlay-enter': this.modal,\n                'p-dialog-mask-scrollblocker': this.modal || this.blockScroll,\n                'p-dialog-left': position === 'left',\n                'p-dialog-right': position === 'right',\n                'p-dialog-top': position === 'top',\n                'p-dialog-top-left': position === 'topleft' || position === 'top-left',\n                'p-dialog-top-right': position === 'topright' || position === 'top-right',\n                'p-dialog-bottom': position === 'bottom',\n                'p-dialog-bottom-left': position === 'bottomleft' || position === 'bottom-left',\n                'p-dialog-bottom-right': position === 'bottomright' || position === 'bottom-right'\n            }\"\n        >\n            <div\n                #container\n                [ngClass]=\"{ 'p-dialog p-component': true, 'p-dialog-rtl': rtl, 'p-dialog-draggable': draggable, 'p-dialog-resizable': resizable, 'p-dialog-maximized': maximized }\"\n                [ngStyle]=\"style\"\n                [class]=\"styleClass\"\n                *ngIf=\"visible\"\n                pFocusTrap\n                [pFocusTrapDisabled]=\"focusTrap === false\"\n                [@animation]=\"{ value: 'visible', params: { transform: transformOptions, transition: transitionOptions } }\"\n                (@animation.start)=\"onAnimationStart($event)\"\n                (@animation.done)=\"onAnimationEnd($event)\"\n                role=\"dialog\"\n                [attr.aria-labelledby]=\"ariaLabelledBy\"\n                [attr.aria-modal]=\"true\"\n            >\n                <ng-container *ngIf=\"headlessTemplate; else notHeadless\">\n                    <ng-container *ngTemplateOutlet=\"headlessTemplate\"></ng-container>\n                </ng-container>\n\n                <ng-template #notHeadless>\n                    <div *ngIf=\"resizable\" class=\"p-resizable-handle\" style=\"z-index: 90;\" (mousedown)=\"initResize($event)\"></div>\n                    <div #titlebar class=\"p-dialog-header\" (mousedown)=\"initDrag($event)\" *ngIf=\"showHeader\">\n                        <span [id]=\"getAriaLabelledBy()\" class=\"p-dialog-title\" *ngIf=\"!headerFacet && !headerTemplate\">{{ header }}</span>\n                        <span [id]=\"getAriaLabelledBy()\" class=\"p-dialog-title\" *ngIf=\"headerFacet\">\n                            <ng-content select=\"p-header\"></ng-content>\n                        </span>\n                        <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n                        <div class=\"p-dialog-header-icons\">\n                            <button *ngIf=\"maximizable\" role=\"button\" type=\"button\" [ngClass]=\"{ 'p-dialog-header-icon p-dialog-header-maximize p-link': true }\" (click)=\"maximize()\" (keydown.enter)=\"maximize()\" tabindex=\"-1\" pRipple>\n                                <span *ngIf=\"maximizeIcon && !maximizeIconTemplate && !minimizeIconTemplate\" class=\"p-dialog-header-maximize-icon\" [ngClass]=\"maximized ? minimizeIcon : maximizeIcon\"></span>\n                                <ng-container *ngIf=\"!maximizeIcon\">\n                                    <WindowMaximizeIcon *ngIf=\"!maximized && !maximizeIconTemplate\" [styleClass]=\"'p-dialog-header-maximize-icon'\" />\n                                    <WindowMinimizeIcon *ngIf=\"maximized && !minimizeIconTemplate\" [styleClass]=\"'p-dialog-header-maximize-icon'\" />\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                            </button>\n                            <button\n                                *ngIf=\"closable\"\n                                type=\"button\"\n                                [ngClass]=\"{ 'p-dialog-header-icon p-dialog-header-close p-link': true }\"\n                                [attr.aria-label]=\"closeAriaLabel\"\n                                (click)=\"close($event)\"\n                                (keydown.enter)=\"close($event)\"\n                                [attr.tabindex]=\"closeTabindex\"\n                                pRipple\n                            >\n                                <ng-container *ngIf=\"!closeIconTemplate\">\n                                    <span *ngIf=\"closeIcon\" class=\"p-dialog-header-close-icon\" [ngClass]=\"closeIcon\"></span>\n                                    <TimesIcon *ngIf=\"!closeIcon\" [styleClass]=\"'p-dialog-header-close-icon'\" />\n                                </ng-container>\n                                <span *ngIf=\"closeIconTemplate\">\n                                    <ng-template *ngTemplateOutlet=\"closeIconTemplate\"></ng-template>\n                                </span>\n                            </button>\n                        </div>\n                    </div>\n                    <div #content [ngClass]=\"'p-dialog-content'\" [ngStyle]=\"contentStyle\" [class]=\"contentStyleClass\">\n                        <ng-content></ng-content>\n                        <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n                    </div>\n                    <div #footer class=\"p-dialog-footer\" *ngIf=\"footerFacet || footerTemplate\">\n                        <ng-content select=\"p-footer\"></ng-content>\n                        <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n                    </div>\n                </ng-template>\n            </div>\n        </div>\n    `,\n    animations: [trigger('animation', [transition('void => visible', [useAnimation(showAnimation)]), transition('visible => void', [useAnimation(hideAnimation)])])],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    styleUrls: ['../dialog/dialog.css'],\n    host: {\n        class: 'p-element'\n    }\n})\nexport class Dialog implements AfterContentInit, OnInit, OnDestroy {\n    /**\n     * Title text of the dialog.\n     * @group Props\n     */\n    @Input() header: string | undefined;\n    /**\n     * Enables dragging to change the position using header.\n     * @group Props\n     */\n    @Input() draggable: boolean = true;\n    /**\n     * Enables resizing of the content.\n     * @group Props\n     */\n    @Input() resizable: boolean = true;\n    /**\n     * Defines the left offset of dialog.\n     * @group Props\n     * @deprecated positionLeft property is deprecated.\n     */\n    @Input() get positionLeft(): number {\n        return 0;\n    }\n    set positionLeft(_positionLeft: number) {\n        console.log('positionLeft property is deprecated.');\n    }\n    /**\n     * Defines the top offset of dialog.\n     * @group Props\n     * @deprecated positionTop property is deprecated.\n     */\n    @Input() get positionTop(): number {\n        return 0;\n    }\n    set positionTop(_positionTop: number) {\n        console.log('positionTop property is deprecated.');\n    }\n    /**\n     * Style of the content section.\n     * @group Props\n     */\n    @Input() contentStyle: any;\n    /**\n     * Style class of the content.\n     * @group Props\n     */\n    @Input() contentStyleClass: string | undefined;\n    /**\n     * Defines if background should be blocked when dialog is displayed.\n     * @group Props\n     */\n    @Input() modal: boolean = false;\n    /**\n     * Specifies if pressing escape key should hide the dialog.\n     * @group Props\n     */\n    @Input() closeOnEscape: boolean = true;\n    /**\n     * Specifies if clicking the modal background should hide the dialog.\n     * @group Props\n     */\n    @Input() dismissableMask: boolean = false;\n    /**\n     * When enabled dialog is displayed in RTL direction.\n     * @group Props\n     */\n    @Input() rtl: boolean = false;\n    /**\n     * Adds a close icon to the header to hide the dialog.\n     * @group Props\n     */\n    @Input() closable: boolean = true;\n    /**\n     * Defines if the component is responsive.\n     * @group Props\n     * @deprecated Responsive property is deprecated.\n     */\n    @Input() get responsive(): boolean {\n        return false;\n    }\n    set responsive(_responsive: boolean) {\n        console.log('Responsive property is deprecated.');\n    }\n    /**\n     * Target element to attach the dialog, 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    @Input() appendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any;\n    /**\n     * Object literal to define widths per screen size.\n     * @group Props\n     */\n    @Input() breakpoints: any;\n    /**\n     * Style class of the component.\n     * @group Props\n     */\n    @Input() styleClass: string | undefined;\n    /**\n     * Style class of the mask.\n     * @group Props\n     */\n    @Input() maskStyleClass: string | undefined;\n    /**\n     * Style of the mask.\n     * @group Props\n     */\n    @Input() maskStyle: string | undefined;\n    /**\n     * Whether to show the header or not.\n     * @group Props\n     */\n    @Input() showHeader: boolean = true;\n    /**\n     * Defines the breakpoint of the component responsive.\n     * @group Props\n     * @deprecated Breakpoint property is not utilized and deprecated. Use breakpoints or CSS media queries instead.\n     */\n    @Input() get breakpoint(): number {\n        return 649;\n    }\n    set breakpoint(_breakpoint: number) {\n        console.log('Breakpoint property is not utilized and deprecated, use breakpoints or CSS media queries instead.');\n    }\n    /**\n     * Whether background scroll should be blocked when dialog is visible.\n     * @group Props\n     */\n    @Input() blockScroll: boolean = false;\n    /**\n     * Whether to automatically manage layering.\n     * @group Props\n     */\n    @Input() autoZIndex: boolean = true;\n    /**\n     * Base zIndex value to use in layering.\n     * @group Props\n     */\n    @Input() baseZIndex: number = 0;\n    /**\n     * Minimum value for the left coordinate of dialog in dragging.\n     * @group Props\n     */\n    @Input() minX: number = 0;\n    /**\n     * Minimum value for the top coordinate of dialog in dragging.\n     * @group Props\n     */\n    @Input() minY: number = 0;\n    /**\n     * When enabled, first button receives focus on show.\n     * @group Props\n     */\n    @Input() focusOnShow: boolean = true;\n    /**\n     * Whether the dialog can be displayed full screen.\n     * @group Props\n     */\n    @Input() maximizable: boolean = false;\n    /**\n     * Keeps dialog in the viewport.\n     * @group Props\n     */\n    @Input() keepInViewport: boolean = true;\n    /**\n     * When enabled, can only focus on elements inside the dialog.\n     * @group Props\n     */\n    @Input() focusTrap: boolean = true;\n    /**\n     * Transition options of the animation.\n     * @group Props\n     */\n    @Input() transitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n    /**\n     * Name of the close icon.\n     * @group Props\n     */\n    @Input() closeIcon: string | undefined;\n    /**\n     * Defines a string that labels the close button for accessibility.\n     * @group Props\n     */\n    @Input() closeAriaLabel: string | undefined;\n    /**\n     * Index of the close button in tabbing order.\n     * @group Props\n     */\n    @Input() closeTabindex: string = '-1';\n    /**\n     * Name of the minimize icon.\n     * @group Props\n     */\n    @Input() minimizeIcon: string | undefined;\n    /**\n     * Name of the maximize icon.\n     * @group Props\n     */\n    @Input() maximizeIcon: string | undefined;\n    /**\n     * Specifies the visibility of the dialog.\n     * @group Props\n     */\n    @Input() get visible(): boolean {\n        return this._visible;\n    }\n    set visible(value: boolean) {\n        this._visible = value;\n\n        if (this._visible && !this.maskVisible) {\n            this.maskVisible = true;\n        }\n    }\n    /**\n     * Inline style of the component.\n     * @group Props\n     */\n    @Input() get style(): any {\n        return this._style;\n    }\n    set style(value: any) {\n        if (value) {\n            this._style = { ...value };\n            this.originalStyle = value;\n        }\n    }\n    /**\n     * Position of the dialog.\n     * @group Props\n     */\n    @Input() get position(): 'center' | 'top' | 'bottom' | 'left' | 'right' | 'topleft' | 'topright' | 'bottomleft' | 'bottomright' {\n        return this._position;\n    }\n    set position(value: 'center' | 'top' | 'bottom' | 'left' | 'right' | 'topleft' | 'topright' | 'bottomleft' | 'bottomright') {\n        this._position = value;\n\n        switch (value) {\n            case 'topleft':\n            case 'bottomleft':\n            case 'left':\n                this.transformOptions = 'translate3d(-100%, 0px, 0px)';\n                break;\n            case 'topright':\n            case 'bottomright':\n            case 'right':\n                this.transformOptions = 'translate3d(100%, 0px, 0px)';\n                break;\n            case 'bottom':\n                this.transformOptions = 'translate3d(0px, 100%, 0px)';\n                break;\n            case 'top':\n                this.transformOptions = 'translate3d(0px, -100%, 0px)';\n                break;\n            default:\n                this.transformOptions = 'scale(0.7)';\n                break;\n        }\n    }\n    /**\n     * Callback to invoke when dialog is shown.\n     * @group Emits\n     */\n    @Output() onShow: EventEmitter<any> = new EventEmitter<any>();\n    /**\n     * Callback to invoke when dialog is hidden.\n     * @group Emits\n     */\n    @Output() onHide: EventEmitter<any> = new EventEmitter<any>();\n    /**\n     * This EventEmitter is used to notify changes in the visibility state of a component.\n     * @param {boolean} value - New value.\n     * @group Emits\n     */\n    @Output() visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n    /**\n     * Callback to invoke when dialog resizing is initiated.\n     * @param {MouseEvent} event - Mouse event.\n     * @group Emits\n     */\n    @Output() onResizeInit: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n    /**\n     * Callback to invoke when dialog resizing is completed.\n     * @param {MouseEvent} event - Mouse event.\n     * @group Emits\n     */\n    @Output() onResizeEnd: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n    /**\n     * Callback to invoke when dialog dragging is completed.\n     * @param {DragEvent} event - Drag event.\n     * @group Emits\n     */\n    @Output() onDragEnd: EventEmitter<DragEvent> = new EventEmitter<DragEvent>();\n    /**\n     * Callback to invoke when dialog maximized or unmaximized.\n     * @group Emits\n     */\n    @Output() onMaximize: EventEmitter<any> = new EventEmitter<any>();\n\n    @ContentChild(Header) headerFacet: QueryList<Header> | undefined;\n\n    @ContentChild(Footer) footerFacet: QueryList<Footer> | undefined;\n\n    @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n    @ViewChild('titlebar') headerViewChild: Nullable<ElementRef>;\n\n    @ViewChild('content') contentViewChild: Nullable<ElementRef>;\n\n    @ViewChild('footer') footerViewChild: Nullable<ElementRef>;\n\n    headerTemplate: Nullable<TemplateRef<any>>;\n\n    contentTemplate: Nullable<TemplateRef<any>>;\n\n    footerTemplate: Nullable<TemplateRef<any>>;\n\n    maximizeIconTemplate: Nullable<TemplateRef<any>>;\n\n    closeIconTemplate: Nullable<TemplateRef<any>>;\n\n    minimizeIconTemplate: Nullable<TemplateRef<any>>;\n\n    headlessTemplate: Nullable<TemplateRef<any>>;\n\n    _visible: boolean = false;\n\n    maskVisible: boolean | undefined;\n\n    container: Nullable<HTMLDivElement>;\n\n    wrapper: Nullable<HTMLElement>;\n\n    dragging: boolean | undefined;\n\n    ariaLabelledBy: string | undefined;\n\n    documentDragListener: VoidListener;\n\n    documentDragEndListener: VoidListener;\n\n    resizing: boolean | undefined;\n\n    documentResizeListener: VoidListener;\n\n    documentResizeEndListener: VoidListener;\n\n    documentEscapeListener: VoidListener;\n\n    maskClickListener: VoidListener;\n\n    lastPageX: number | undefined;\n\n    lastPageY: number | undefined;\n\n    preventVisibleChangePropagation: boolean | undefined;\n\n    maximized: boolean | undefined;\n\n    preMaximizeContentHeight: number | undefined;\n\n    preMaximizeContainerWidth: number | undefined;\n\n    preMaximizeContainerHeight: number | undefined;\n\n    preMaximizePageX: number | undefined;\n\n    preMaximizePageY: number | undefined;\n\n    id: string = UniqueComponentId();\n\n    _style: any = {};\n\n    _position: 'center' | 'top' | 'bottom' | 'left' | 'right' | 'topleft' | 'topright' | 'bottomleft' | 'bottomright' = 'center';\n\n    originalStyle: any;\n\n    transformOptions: any = 'scale(0.7)';\n\n    styleElement: any;\n\n    private window: Window;\n\n    constructor(@Inject(DOCUMENT) private document: Document, @Inject(PLATFORM_ID) private platformId: any, public el: ElementRef, public renderer: Renderer2, public zone: NgZone, private cd: ChangeDetectorRef, public config: PrimeNGConfig) {\n        this.window = this.document.defaultView as Window;\n    }\n\n    ngAfterContentInit() {\n        this.templates?.forEach((item) => {\n            switch (item.getType()) {\n                case 'header':\n                    this.headerTemplate = item.template;\n                    break;\n\n                case 'content':\n                    this.contentTemplate = item.template;\n                    break;\n\n                case 'footer':\n                    this.footerTemplate = item.template;\n                    break;\n\n                case 'closeicon':\n                    this.closeIconTemplate = item.template;\n                    break;\n\n                case 'maximizeicon':\n                    this.maximizeIconTemplate = item.template;\n                    break;\n\n                case 'minimizeicon':\n                    this.minimizeIconTemplate = item.template;\n                    break;\n\n                case 'headless':\n                    this.headlessTemplate = item.template;\n                    break;\n\n                default:\n                    this.contentTemplate = item.template;\n                    break;\n            }\n        });\n    }\n\n    ngOnInit() {\n        if (this.breakpoints) {\n            this.createStyle();\n        }\n    }\n\n    getAriaLabelledBy() {\n        return this.header !== null ? UniqueComponentId() + '_header' : null;\n    }\n\n    focus() {\n        let focusable = DomHandler.findSingle(this.container, '[autofocus]');\n        if (focusable) {\n            this.zone.runOutsideAngular(() => {\n                setTimeout(() => focusable.focus(), 5);\n            });\n        }\n    }\n\n    close(event: Event) {\n        this.visibleChange.emit(false);\n        event.preventDefault();\n    }\n\n    enableModality() {\n        if (this.closable && this.dismissableMask) {\n            this.maskClickListener = this.renderer.listen(this.wrapper, 'mousedown', (event: any) => {\n                if (this.wrapper && this.wrapper.isSameNode(event.target)) {\n                    this.close(event);\n                }\n            });\n        }\n\n        if (this.modal) {\n            DomHandler.blockBodyScroll();\n        }\n    }\n\n    disableModality() {\n        if (this.wrapper) {\n            if (this.dismissableMask) {\n                this.unbindMaskClickListener();\n            }\n\n            if (this.modal) {\n                DomHandler.unblockBodyScroll();\n            }\n\n            if (!(this.cd as ViewRef).destroyed) {\n                this.cd.detectChanges();\n            }\n        }\n    }\n\n    maximize() {\n        this.maximized = !this.maximized;\n\n        if (!this.modal && !this.blockScroll) {\n            if (this.maximized) {\n                DomHandler.blockBodyScroll();\n            } else {\n                DomHandler.unblockBodyScroll();\n            }\n        }\n\n        this.onMaximize.emit({ maximized: this.maximized });\n    }\n\n    unbindMaskClickListener() {\n        if (this.maskClickListener) {\n            this.maskClickListener();\n            this.maskClickListener = null;\n        }\n    }\n\n    moveOnTop() {\n        if (this.autoZIndex) {\n            ZIndexUtils.set('modal', this.container, this.baseZIndex + this.config.zIndex.modal);\n            (this.wrapper as HTMLElement).style.zIndex = String(parseInt((this.container as HTMLDivElement).style.zIndex, 10) - 1);\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[${this.id}]:not(.p-dialog-maximized) {\n                                width: ${this.breakpoints[breakpoint]} !important;\n                            }\n                        }\n                    `;\n                }\n\n                this.renderer.setProperty(this.styleElement, 'innerHTML', innerHTML);\n            }\n        }\n    }\n\n    initDrag(event: MouseEvent) {\n        if (DomHandler.hasClass(event.target, 'p-dialog-header-icon') || DomHandler.hasClass((<HTMLElement>event.target).parentElement, 'p-dialog-header-icon')) {\n            return;\n        }\n\n        if (this.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            DomHandler.addClass(this.document.body, 'p-unselectable-text');\n        }\n    }\n\n    onKeydown(event: KeyboardEvent) {\n        if (this.focusTrap) {\n            if (event.which === 9) {\n                event.preventDefault();\n\n                let focusableElements = DomHandler.getFocusableElements(this.container as HTMLDivElement);\n\n                if (focusableElements && focusableElements.length > 0) {\n                    if (!focusableElements[0].ownerDocument.activeElement) {\n                        focusableElements[0].focus();\n                    } else {\n                        let focusedIndex = focusableElements.indexOf(focusableElements[0].ownerDocument.activeElement);\n\n                        if (event.shiftKey) {\n                            if (focusedIndex == -1 || focusedIndex === 0) focusableElements[focusableElements.length - 1].focus();\n                            else focusableElements[focusedIndex - 1].focus();\n                        } else {\n                            if (focusedIndex == -1 || focusedIndex === focusableElements.length - 1) focusableElements[0].focus();\n                            else focusableElements[focusedIndex + 1].focus();\n                        }\n                    }\n                }\n            }\n        }\n    }\n\n    onDrag(event: MouseEvent) {\n        if (this.dragging) {\n            const containerWidth = DomHandler.getOuterWidth(this.container);\n            const containerHeight = DomHandler.getOuterHeight(this.container);\n            const deltaX = event.pageX - (this.lastPageX as number);\n            const deltaY = event.pageY - (this.lastPageY as number);\n            const offset = this.container.getBoundingClientRect();\n\n            const containerComputedStyle = getComputedStyle(this.container);\n\n            const leftMargin = parseFloat(containerComputedStyle.marginLeft);\n            const topMargin = parseFloat(containerComputedStyle.marginTop);\n\n            const leftPos = offset.left + deltaX - leftMargin;\n            const topPos = offset.top + deltaY - topMargin;\n            const viewport = DomHandler.getViewport();\n\n            this.container.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.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.style.top = `${topPos}px`;\n                }\n            } else {\n                this.lastPageX = event.pageX;\n                this.container.style.left = `${leftPos}px`;\n                this.lastPageY = event.pageY;\n                this.container.style.top = `${topPos}px`;\n            }\n        }\n    }\n\n    endDrag(event: DragEvent) {\n        if (this.dragging) {\n            this.dragging = false;\n            DomHandler.removeClass(this.document.body, 'p-unselectable-text');\n            this.cd.detectChanges();\n            this.onDragEnd.emit(event);\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    //backward compatibility\n    center() {\n        this.resetPosition();\n    }\n\n    initResize(event: MouseEvent) {\n        if (this.resizable) {\n            this.resizing = true;\n            this.lastPageX = event.pageX;\n            this.lastPageY = event.pageY;\n            DomHandler.addClass(this.document.body, 'p-unselectable-text');\n            this.onResizeInit.emit(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 = DomHandler.getOuterWidth(this.container);\n            let containerHeight = DomHandler.getOuterHeight(this.container);\n            let contentHeight = DomHandler.getOuterHeight(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 = DomHandler.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            DomHandler.removeClass(this.document.body, 'p-unselectable-text');\n            this.onResizeEnd.emit(event);\n        }\n    }\n\n    bindGlobalListeners() {\n        if (this.draggable) {\n            this.bindDocumentDragListener();\n            this.bindDocumentDragEndListener();\n        }\n\n        if (this.resizable) {\n            this.bindDocumentResizeListeners();\n        }\n\n        if (this.closeOnEscape && this.closable) {\n            this.bindDocumentEscapeListener();\n        }\n    }\n\n    unbindGlobalListeners() {\n        this.unbindDocumentDragListener();\n        this.unbindDocumentDragEndListener();\n        this.unbindDocumentResizeListeners();\n        this.unbindDocumentEscapeListener();\n    }\n\n    bindDocumentDragListener() {\n        if (!this.documentDragListener) {\n            this.zone.runOutsideAngular(() => {\n                this.documentDragListener = this.renderer.listen(this.window, 'mousemove', this.onDrag.bind(this));\n            });\n        }\n    }\n\n    unbindDocumentDragListener() {\n        if (this.documentDragListener) {\n            this.documentDragListener();\n            this.documentDragListener = null;\n        }\n    }\n\n    bindDocumentDragEndListener() {\n        if (!this.documentDragEndListener) {\n            this.zone.runOutsideAngular(() => {\n                this.documentDragEndListener = this.renderer.listen(this.window, 'mouseup', this.endDrag.bind(this));\n            });\n        }\n    }\n\n    unbindDocumentDragEndListener() {\n        if (this.documentDragEndListener) {\n            this.documentDragEndListener();\n            this.documentDragEndListener = null;\n        }\n    }\n\n    bindDocumentResizeListeners() {\n        if (!this.documentResizeListener && !this.documentResizeEndListener) {\n            this.zone.runOutsideAngular(() => {\n                this.documentResizeListener = this.renderer.listen(this.window, 'mousemove', this.onResize.bind(this));\n                this.documentResizeEndListener = this.renderer.listen(this.window, '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    bindDocumentEscapeListener() {\n        const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : 'document';\n\n        this.documentEscapeListener = this.renderer.listen(documentTarget, 'keydown', (event) => {\n            if (event.which == 27) {\n                this.close(event);\n            }\n        });\n    }\n\n    unbindDocumentEscapeListener() {\n        if (this.documentEscapeListener) {\n            this.documentEscapeListener();\n            this.documentEscapeListener = null;\n        }\n    }\n\n    appendContainer() {\n        if (this.appendTo) {\n            if (this.appendTo === 'body') this.renderer.appendChild(this.document.body, this.wrapper);\n            else DomHandler.appendChild(this.wrapper, this.appendTo);\n        }\n    }\n\n    restoreAppend() {\n        if (this.container && this.appendTo) {\n            this.renderer.appendChild(this.el.nativeElement, this.wrapper);\n        }\n    }\n\n    onAnimationStart(event: AnimationEvent) {\n        switch (event.toState) {\n            case 'visible':\n                this.container = event.element;\n                this.wrapper = this.container?.parentElement;\n                this.appendContainer();\n                this.moveOnTop();\n                this.bindGlobalListeners();\n                this.container?.setAttribute(this.id, '');\n\n                if (this.modal) {\n                    this.enableModality();\n                }\n\n                if (!this.modal && this.blockScroll) {\n                    DomHandler.addClass(this.document.body, 'p-overflow-hidden');\n                }\n\n                if (this.focusOnShow) {\n                    this.focus();\n                }\n                break;\n\n            case 'void':\n                if (this.wrapper && this.modal) {\n                    DomHandler.addClass(this.wrapper, 'p-component-overlay-leave');\n                }\n                break;\n        }\n    }\n\n    onAnimationEnd(event: AnimationEvent) {\n        switch (event.toState) {\n            case 'void':\n                this.onContainerDestroy();\n                this.onHide.emit({});\n                this.cd.markForCheck();\n                break;\n            case 'visible':\n                this.onShow.emit({});\n                break;\n        }\n    }\n\n    onContainerDestroy() {\n        this.unbindGlobalListeners();\n        this.dragging = false;\n\n        this.maskVisible = false;\n\n        if (this.maximized) {\n            DomHandler.removeClass(this.document.body, 'p-overflow-hidden');\n            this.document.body.style.removeProperty('--scrollbar-width');\n            this.maximized = false;\n        }\n\n        if (this.modal) {\n            this.disableModality();\n        }\n\n        if (this.blockScroll) {\n            DomHandler.removeClass(this.document.body, 'p-overflow-hidden');\n        }\n\n        if (this.container && this.autoZIndex) {\n            ZIndexUtils.clear(this.container);\n        }\n\n        this.container = null;\n        this.wrapper = null;\n\n        this._style = this.originalStyle ? { ...this.originalStyle } : {};\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    ngOnDestroy() {\n        if (this.container) {\n            this.restoreAppend();\n            this.onContainerDestroy();\n        }\n\n        this.destroyStyle();\n    }\n}\n\n@NgModule({\n    imports: [CommonModule, FocusTrapModule, RippleModule, TimesIcon, WindowMaximizeIcon, WindowMinimizeIcon],\n    exports: [Dialog, SharedModule],\n    declarations: [Dialog]\n})\nexport class DialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}