{"version":3,"file":"eui-components-eui-dialog.mjs","sources":["../../eui-dialog/services/eui-dialog.token.ts","../../eui-dialog/models/eui-dialog.config.ts","../../eui-dialog/container/eui-dialog-container.component.ts","../../eui-dialog/container/eui-dialog-container.component.html","../../eui-dialog/models/opened-dialog.model.ts","../../eui-dialog/services/eui-dialog.service.ts","../../eui-dialog/eui-dialog.component.ts","../../eui-dialog/eui-dialog.component.html","../../eui-dialog/index.ts","../../eui-dialog/eui-components-eui-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const DIALOG_CONTAINER_CONFIG = new InjectionToken<any>('DIALOG_CONTAINER_CONFIG');\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const DIALOG_COMPONENT_CONFIG = new InjectionToken<any>('DIALOG_COMPONENT_CONFIG');\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentType, TemplatePortal } from '@angular/cdk/portal';\nimport { EuiDialogVerticalPosition } from './eui-dialog-alignment';\n\nexport class EuiDialogConfig<HC, HCC, BC, BCC, FC, FCC> implements EuiDialogInterface<HC, HCC, BC, BCC, FC, FCC> {\n    e2eAttr = 'eui-message-box';\n    acceptLabel = 'eui.OK';\n    dismissLabel = 'eui.CANCEL';\n    width = '50%';\n    height = 'auto';\n    isFullScreen = false;\n    hasCloseButton = true;\n    hasAcceptButton = true;\n    hasDismissButton = true;\n    hasMobileCustomSize = false;\n    hasClosedOnClickOutside = false;\n    hasClosedOnEscape = true;\n    isHandleCloseOnDismiss = false;\n    isHandleCloseOnClose = false;\n    isHandleCloseOnAccept = false;\n    isHandleCloseOnClickOutside = false;\n    isHandleCloseOnEscape = false;\n    hasFooter = true;\n    isMessageBox = false;\n    classList = null;\n\n    constructor(values: EuiDialogInterface<HC, HCC, BC, BCC, FC, FCC>) {\n        Object.assign(this, values);\n    }\n}\n\nexport interface EuiDialogInterface<HC, HCC, BC, BCC, FC, FCC> {\n    dialogId?: string;\n    e2eAttr?: string;\n    title?: string;\n    variant?: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger' | 'accent' | string;\n    acceptLabel?: string;\n    dismissLabel?: string;\n    width?: string;\n    height?: string;\n    isFullScreen?: boolean;\n    headerComponent?: {\n        component: ComponentType<HC>;\n        config?: HCC;\n    };\n    bodyComponent?: {\n        component: ComponentType<BC>;\n        config?: BCC;\n    };\n    footerComponent?: {\n        component: ComponentType<FC>;\n        config?: FCC;\n    };\n    header?: TemplatePortal;\n    content?: TemplatePortal | string | null;\n    footer?: TemplatePortal;\n    hasCloseButton?: boolean;\n    hasAcceptButton?: boolean;\n    hasDismissButton?: boolean;\n    hasMobileCustomSize?: boolean;\n    hasClosedOnClickOutside?: boolean;\n    hasClosedOnEscape?: boolean;\n    isHandleCloseOnDismiss?: boolean;\n    isHandleCloseOnClose?: boolean;\n    isHandleCloseOnAccept?: boolean;\n    isHandleCloseOnClickOutside?: boolean;\n    isHandleCloseOnEscape?: boolean;\n    isDraggable?: boolean;\n    hasNoBodyPadding?: boolean;\n    hasFooter?: boolean;\n    isMessageBox?: boolean;\n    verticalPosition?: EuiDialogVerticalPosition;\n    classList?: string;\n\n    overlayRef?: OverlayRef;\n\n    open?: () => void;\n    init?: (instances: EuiDialogComponentInstances<HC, BC, FC>) => void;\n    clickOutside?: (instances: EuiDialogComponentInstances<HC, BC, FC>) => void;\n    escape?: (instances: EuiDialogComponentInstances<HC, BC, FC>) => void;\n    close?: (instances: EuiDialogComponentInstances<HC, BC, FC>) => void;\n    dismiss?: (instances: EuiDialogComponentInstances<HC, BC, FC>) => void;\n    accept?: (instances: EuiDialogComponentInstances<HC, BC, FC>) => void;\n}\n\nexport class EuiDialogComponentInstances<HC, BC, FC> {\n    headerComponent: HC = null;\n    bodyComponent: BC = null;\n    footerComponent: FC = null;\n}\n","import {\n    Component,\n    ChangeDetectionStrategy,\n    ViewEncapsulation,\n    OnInit,\n    ComponentRef,\n    inject,\n    Injector,\n    StaticProvider,\n    OnDestroy,\n    HostBinding,\n    ChangeDetectorRef,\n    Input,\n    ViewChild,\n    ElementRef,\n    AfterViewInit,\n    signal,\n} from '@angular/core';\nimport {\n    CdkPortalOutletAttachedRef,\n    ComponentPortal,\n    ComponentType,\n    PortalModule,\n    TemplatePortal,\n} from '@angular/cdk/portal';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { DIALOG_CONTAINER_CONFIG } from '../services/eui-dialog.token';\nimport { EuiDialogInterface, EuiDialogComponentInstances } from '../models/eui-dialog.config';\nimport { DIALOG_COMPONENT_CONFIG } from '../services/eui-dialog.token';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { EUI_BUTTON } from '@eui/components/eui-button';\nimport { EUI_ICON } from '@eui/components/eui-icon';\nimport { EUI_ICON_BUTTON } from '@eui/components/eui-icon-button';\nimport { EUI_ICON_STATE } from '@eui/components/eui-icon-state';\nimport { AsyncPipe } from '@angular/common';\n\n/**\n * @description\n * Container component that orchestrates the rendering and lifecycle of dialog content.\n * Manages three distinct sections (header, body, footer) that can be rendered as either\n * template portals or component portals. Handles dialog actions (accept/dismiss), button\n * state management, and accessibility attributes. Typically instantiated by the dialog\n * service and should not be used directly in application code.\n */\n@Component({\n    selector: 'eui-dialog-container',\n    templateUrl: './eui-dialog-container.component.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    styleUrl: '../eui-dialog.scss',\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n        AsyncPipe,\n        TranslateModule,\n        PortalModule,\n        OverlayModule,\n        A11yModule,\n        DragDropModule,\n        CdkScrollableModule,\n        ...EUI_BUTTON,\n        ...EUI_ICON,\n        ...EUI_ICON_BUTTON,\n        ...EUI_ICON_STATE,\n    ],\n})\nexport class EuiDialogContainerComponent<HC, HCC, BC, BCC, FC, FCC> implements OnInit, OnDestroy, AfterViewInit {\n    cd = inject(ChangeDetectorRef);\n    dialogContainerConfig = inject<EuiDialogInterface<HC, HCC, BC, BCC, FC, FCC>>(DIALOG_CONTAINER_CONFIG);\n    public isHeaderTemplatePortal = false;\n    public isBodyTemplatePortal = false;\n    public isFooterTemplatePortal = false;\n\n    public isHeaderComponentPortal = false;\n    public isBodyComponentPortal = false;\n    public isFooterComponentPortal = false;\n\n    public headerComponentPortal: ComponentPortal<HC>;\n    public bodyComponentPortal: ComponentPortal<BC>;\n    public footerComponentPortal: ComponentPortal<FC>;\n\n    public componentInstances = new EuiDialogComponentInstances<HC, BC, FC>();\n    public acceptButtonDisabled$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n    public dismissButtonDisabled$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n    @ViewChild('dialogBody', { read: ElementRef }) dialogBody: ElementRef<HTMLElement>;\n\n    @HostBinding('class') string = 'eui-dialog-container';\n\n    /**\n     * Accessible label for the close button in the dialog header.\n     * Used by screen readers to announce the button's purpose.\n     * @default 'Close dialog'\n     */\n    @Input() closeButtonAriaLabel = 'Close dialog';\n\n    protected isBodyScrollable = signal(false);\n    private destroy$: Subject<boolean> = new Subject<boolean>();\n    private injector = inject(Injector);\n\n    ngOnInit(): void {\n        if (this.dialogContainerConfig.header instanceof TemplatePortal) {\n            this.isHeaderTemplatePortal = true;\n        }\n        if (this.dialogContainerConfig.content instanceof TemplatePortal) {\n            this.isBodyTemplatePortal = true;\n        }\n        if (this.dialogContainerConfig.footer instanceof TemplatePortal) {\n            this.isFooterTemplatePortal = true;\n        }\n\n        if (this.dialogContainerConfig.headerComponent?.component) {\n            this.isHeaderComponentPortal = true;\n            this.headerComponentPortal = this.createComponentPortal(\n                this.dialogContainerConfig.headerComponent.component,\n                this.dialogContainerConfig.headerComponent.config,\n            ) as ComponentPortal<HC>;\n        }\n        if (this.dialogContainerConfig.bodyComponent?.component) {\n            this.isBodyComponentPortal = true;\n            this.bodyComponentPortal = this.createComponentPortal(\n                this.dialogContainerConfig.bodyComponent.component,\n                this.dialogContainerConfig.bodyComponent.config,\n            ) as ComponentPortal<BC>;\n        }\n        if (this.dialogContainerConfig.footerComponent?.component) {\n            this.isFooterComponentPortal = true;\n            this.footerComponentPortal = this.createComponentPortal(\n                this.dialogContainerConfig.footerComponent.component,\n                this.dialogContainerConfig.footerComponent.config,\n            ) as ComponentPortal<FC>;\n        }\n\n        this.dialogContainerConfig.open();\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next(true);\n        this.destroy$.unsubscribe();\n    }\n\n    ngAfterViewInit(): void {\n        this.checkScrollability();\n    }\n\n    get getComponentInstances(): EuiDialogComponentInstances<HC, BC, FC> {\n        return this.componentInstances;\n    }\n\n    get getPortalOutlet(): TemplatePortal | null {\n        return this.dialogContainerConfig.content as TemplatePortal;\n    }\n\n    get dialogContainerConfigContent(): string {\n        return this.dialogContainerConfig.content as string;\n    }\n\n    public portalAttached(\n        attachedRef: CdkPortalOutletAttachedRef,\n        component: 'headerComponent' | 'bodyComponent' | 'footerComponent',\n    ): void {\n        const componentRef = attachedRef as ComponentRef<HC | BC | FC>;\n\n        componentRef.instance['overlayRef'] = this.dialogContainerConfig.overlayRef;\n\n        this.componentInstances = {\n            ...this.componentInstances,\n            [component]: componentRef.instance,\n        };\n\n        this.dialogContainerConfig.init(this.componentInstances);\n\n        if (this.dialogContainerConfig[component].config) {\n            Object.keys(this.dialogContainerConfig[component].config).forEach((c) => {\n                if (typeof this.dialogContainerConfig[component].config[c] === 'function') {\n                    if (componentRef.instance[c] && typeof componentRef.instance[c] !== 'function') {\n                        // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n                        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                        componentRef.instance[c].pipe(takeUntil(this.destroy$)).subscribe((args: any) => {\n                            this.dialogContainerConfig[component].config[c].apply(componentRef.instance[c], [args]);\n                        });\n                    }\n                } else {\n                    componentRef.instance[c] = this.dialogContainerConfig[component].config[c];\n                }\n            });\n        }\n    }\n\n    public closeDialog(): void {\n        this.dialogContainerConfig.close(this.componentInstances);\n    }\n\n    public onDismiss(): void {\n        this.dialogContainerConfig.dismiss(this.componentInstances);\n        if (!this.dialogContainerConfig.isHandleCloseOnDismiss) {\n            this.closeDialog();\n        }\n    }\n\n    public onAccept(): void {\n        this.dialogContainerConfig.accept(this.componentInstances);\n        if (!this.dialogContainerConfig.isHandleCloseOnAccept) {\n            this.closeDialog();\n        }\n    }\n\n    /**\n     * Based on certain conditions returns the id of the body content to the aria-describedby attr of the container\n     */\n    public getContentId(): string {\n        if(!this.isBodyTemplatePortal && !this.isBodyComponentPortal) {\n            return 'containerConfigId';\n        } else if (this.isBodyTemplatePortal && !this.isBodyComponentPortal) {\n            return 'bodyTemplatePortalId';\n        } else if(this.isBodyComponentPortal) {\n            return 'bodyComponentPortalId'\n        }\n    }\n\n    /**\n     * Disable Accept button of default eui-dialog footer.\n     */\n    public disableAcceptButton(): void {\n        this.acceptButtonDisabled$.next(true);\n    }\n\n    /**\n     * Enable Accept button of default eui-dialog footer.\n     */\n    public enableAcceptButton(): void {\n        this.acceptButtonDisabled$.next(false);\n    }\n\n    /**\n     * Disable Dismiss button of default eui-dialog footer.\n     */\n    public disableDismissButton(): void {\n        this.dismissButtonDisabled$.next(true);\n    }\n\n    /**\n     * Enable Dismiss button of default eui-dialog footer.\n     */\n    public enableDismissButton(): void {\n        this.dismissButtonDisabled$.next(false);\n    }\n\n    public onScroll(): void {\n        this.cd.detectChanges();\n    }\n\n    public scrollToBottom(): void {\n        const el = document.querySelector('.eui-dialog__body');\n        if (el) {\n            el.scrollTo({ top: el.scrollHeight, behavior: 'smooth' });\n        }\n    }\n\n    public scrollToTop(): void {\n        const el = document.querySelector('.eui-dialog__body');\n        if (el) {\n            el.scrollTo({ top: 0, behavior: 'smooth' });\n        }\n    }\n\n    private createComponentPortal(component: ComponentType<HC | BC | FC>, config: HCC | BCC | FCC): ComponentPortal<HC | BC | FC> {\n        const extendedConfig = { ...config, id: this.dialogContainerConfig.dialogId, overlayRef: this.dialogContainerConfig.overlayRef };\n        return new ComponentPortal(component, null, this.createInjector(extendedConfig));\n    }\n\n    private createInjector(data: HCC | BCC | FCC): Injector {\n        const injectorTokens: StaticProvider = [{ provide: DIALOG_COMPONENT_CONFIG, useValue: data }];\n        return Injector.create({\n            parent: this.injector,\n            providers: injectorTokens,\n        });\n    }\n\n    /**\n     * Checks if the dialog body is scrollable in order to make the scrollbar focusable or not\n     */\n    private checkScrollability(): void {\n        if (this.dialogBody?.nativeElement) {\n            const element = this.dialogBody.nativeElement;\n            this.isBodyScrollable.set(element.scrollHeight > element.clientHeight);\n        }\n    }\n}\n","<div\n    class=\"eui-dialog eui-dialog--{{ dialogContainerConfig.variant }} eui-21\"\n    [class.eui-dialog--draggable]=\"dialogContainerConfig.isDraggable\"\n    [class.eui-dialog--message-box]=\"dialogContainerConfig.isMessageBox\"\n    [class.eui-dialog--no-padding]=\"dialogContainerConfig.hasNoBodyPadding\"\n    [class.eui-dialog--custom-size]=\"dialogContainerConfig.hasMobileCustomSize\"\n    [attr.role]=\"dialogContainerConfig.isMessageBox ? 'alertdialog' : 'dialog'\"\n    aria-labelledby=\"dialogContent\"\n    [attr.aria-describedby]=\"getContentId()\"\n    [attr.aria-modal]=\"true\"\n    tabindex=\"-1\"\n    attr.data-e2e=\"{{ dialogContainerConfig.e2eAttr }}\"\n    cdkDrag\n    cdkDragRootElement=\".cdk-overlay-pane\"\n    [cdkDragDisabled]=\"!dialogContainerConfig.isDraggable\"\n    cdkTrapFocus\n    cdkTrapFocusAutoCapture>\n    <div class=\"eui-dialog__content\" role=\"document\" id=\"dialogContent\" aria-labelledby=\"headerTitle\">\n        <div class=\"eui-dialog__header\" [class.eui-dialog__header--handle-disabled]=\"!dialogContainerConfig.isDraggable\" cdkDragHandle>\n            @if (!isHeaderTemplatePortal && !isHeaderComponentPortal) {\n\n                @if (dialogContainerConfig.isMessageBox) {\n                    <eui-icon-state [euiVariant]=\"dialogContainerConfig.variant\" size=\"xl\" class=\"eui-dialog__header-icon\"/>\n                }\n                <h2 id=\"headerTitle\" class=\"eui-dialog__header-title\" role=\"heading\" aria-level=\"2\">{{ dialogContainerConfig.title | translate }}</h2>\n\n                @if (dialogContainerConfig.hasCloseButton) {\n                    <div class=\"eui-dialog__header-close-container\">\n                        <eui-icon-button icon=\"eui-close\" (buttonClick)=\"closeDialog()\" size=\"l\" euiRounded ariaLabel=\"{{closeButtonAriaLabel}}\" class=\"dialog-close-button\"/>\n                    </div>\n                }\n            }\n            @if (isHeaderTemplatePortal) {\n                <ng-template [cdkPortalOutlet]=\"dialogContainerConfig.header\"></ng-template>\n            }\n            @if (isHeaderComponentPortal) {\n                <ng-template [cdkPortalOutlet]=\"headerComponentPortal\" (attached)=\"portalAttached($event, 'headerComponent')\"></ng-template>\n            }\n        </div>\n        <div\n            #dialogBody\n            class=\"eui-dialog__body\"\n            cdkScrollable\n            [style.height]=\"dialogContainerConfig.height\"\n            [style.max-height]=\"dialogContainerConfig.height\"\n            (scroll)=\"onScroll()\"\n            [attr.tabindex]=\"isBodyScrollable() ? '0' : '-1'\">\n            @if (!isBodyTemplatePortal && !isBodyComponentPortal) {\n                <div\n                    id=\"containerConfigId\"\n                    class=\"eui-dialog__body-content not-isBodyTemplatePortal\"\n                    [innerHTML]=\"dialogContainerConfig.content ? (dialogContainerConfigContent | translate) : null\">\n                </div>\n            }\n            @if (isBodyTemplatePortal && !isBodyComponentPortal) {\n                <div id=\"bodyTemplatePortalId\" class=\"eui-dialog__body-content isBodyTemplatePortal\">\n                    <ng-template [cdkPortalOutlet]=\"getPortalOutlet\"></ng-template>\n                </div>\n            }\n            @if (isBodyComponentPortal) {\n                <div id=\"bodyComponentPortalId\" class=\"eui-dialog__body-content isBodyComponentPortal\">\n                    <ng-template [cdkPortalOutlet]=\"bodyComponentPortal\" (attached)=\"portalAttached($event, 'bodyComponent')\"></ng-template>\n                </div>\n            }\n        </div>\n        @if (dialogContainerConfig.hasFooter) {\n            <div class=\"eui-dialog__footer\">\n                @if (!isFooterTemplatePortal && !isFooterComponentPortal) {\n                    @if (isFooterTemplatePortal) {\n                        <ng-template [cdkPortalOutlet]=\"dialogContainerConfig.footer\"></ng-template>\n                    }\n                    @if (!isFooterTemplatePortal) {\n                        <div class=\"eui-dialog__footer-content\">\n                            @if (dialogContainerConfig.hasDismissButton) {\n                                <button\n                                    euiButton\n                                    type=\"button\"\n                                    [euiDisabled]=\"dismissButtonDisabled$ | async\"\n                                    class=\"eui-dialog__footer-dismiss-button\"\n                                    [class.eui-dialog__footer-dismiss-button--with-accept-button]=\"dialogContainerConfig.hasAcceptButton\"\n                                    (click)=\"onDismiss()\">\n                                    {{ dialogContainerConfig.dismissLabel | translate }}\n                                </button>\n                            }\n                            @if (dialogContainerConfig.hasAcceptButton) {\n                                <button\n                                    euiButton\n                                    [euiVariant]=\"dialogContainerConfig.isMessageBox && !(dialogContainerConfig.variant === 'secondary') ? dialogContainerConfig.variant: 'primary'\"\n                                    type=\"button\"\n                                    [euiDisabled]=\"acceptButtonDisabled$ | async\"\n                                    class=\"eui-dialog__footer-accept-button\"\n                                    (click)=\"onAccept()\">\n                                    {{ dialogContainerConfig.acceptLabel | translate }}\n                                </button>\n                            }\n                        </div>\n                    }\n                }\n\n                @if (isFooterTemplatePortal) {\n                    <ng-template [cdkPortalOutlet]=\"dialogContainerConfig.footer\"></ng-template>\n                }\n                @if (isFooterComponentPortal) {\n                    <ng-template [cdkPortalOutlet]=\"footerComponentPortal\" (attached)=\"portalAttached($event, 'footerComponent')\"></ng-template>\n                }\n\n            </div>\n        }\n    </div>\n</div>\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentRef } from '@angular/core';\n\nimport { EuiDialogContainerComponent } from '../container/eui-dialog-container.component';\n\nexport class OpenedDialog implements OpenedDialogInterface {\n    id: string = null;\n    order: number = null;\n    overlayRef: OverlayRef = null;\n    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    containerRef: ComponentRef<EuiDialogContainerComponent<any, any, any, any, any, any>> = null;\n\n    constructor(values: OpenedDialogInterface) {\n        Object.assign(this, values);\n    }\n}\n\nexport interface OpenedDialogInterface {\n    id: string;\n    order: number;\n    overlayRef: OverlayRef;\n    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    containerRef: ComponentRef<EuiDialogContainerComponent<any, any, any, any, any, any>>;\n}\n","import { GlobalPositionStrategy, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, Injector, OnDestroy, StaticProvider, inject } from '@angular/core';\nimport { Subject, BehaviorSubject, Observable } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { EuiDialogContainerComponent } from '../container/eui-dialog-container.component';\nimport { EuiDialogInterface, EuiDialogComponentInstances, EuiDialogConfig } from '../models/eui-dialog.config';\nimport { OpenedDialog } from '../models/opened-dialog.model';\nimport { DIALOG_CONTAINER_CONFIG } from './eui-dialog.token';\nimport { EuiDialogVerticalPosition } from '../models/eui-dialog-alignment';\n\n/**\n * @description\n * Service for programmatically creating and managing modal dialog windows.\n * Provides centralized dialog lifecycle management including opening, closing, and tracking multiple dialogs.\n * Built on Angular CDK Overlay for positioning, backdrop, and scroll blocking.\n * Supports custom header, body, and footer components with dependency injection for parent component providers.\n * Manages dialog stack with automatic z-index handling for multiple simultaneous dialogs.\n * Provides button state control methods for default dialog footer actions.\n * Injected at root level for application-wide dialog management.\n */\n@Injectable({ providedIn: 'root' })\nexport class EuiDialogService implements OnDestroy {\n    private overlay = inject(Overlay);\n    private injector = inject(Injector);\n    private overlayRef: OverlayRef;\n    private openedDialogs$: BehaviorSubject<OpenedDialog[]> = new BehaviorSubject<OpenedDialog[]>([]);\n    private destroy$: Subject<boolean> = new Subject<boolean>();\n\n    ngOnDestroy(): void {\n        this.destroy$.next(true);\n        this.destroy$.unsubscribe();\n        this.overlayRef?.dispose();\n        this.overlayRef = null;\n        this.openedDialogs$.next(null);\n    }\n\n    /**\n     * Open a dialog.\n     *\n     * @param config Configuration applied to the dialog.\n     * @param parentInjector The injector of the calling component, used to expose its local providers to the dynamically created component.\n     * @returns A dialog object of type `OpenedDialog`\n     */\n    public openDialog<HC, HCC, BC, BCC, FC, FCC>(config: EuiDialogInterface<HC, HCC, BC, BCC, FC, FCC> = {}, parentInjector?: Injector): OpenedDialog {\n        const positionStrategy = this.getPositionStrategy(config.verticalPosition);\n        const scrollStrategy = this.overlay.scrollStrategies.block();\n        const hasClosedOnEscape = config.hasClosedOnEscape;\n        const hasCloseButton = config.hasCloseButton;\n        const dialogConfig = new EuiDialogConfig({\n            ...config,\n            hasClosedOnEscape,\n            hasCloseButton,\n            width: config.isFullScreen ? '98vw' : config.width,\n            height: config.isFullScreen ? '97vh' : config.height,\n        });\n        const dialogId = 'eui-dialog-' + Math.floor(Math.random() * 10000);\n        const overlayRef = this.overlay.create({\n            backdropClass: ['eui-dialog__backdrop', dialogId + '__backdrop'],\n            hasBackdrop: true,\n            height: dialogConfig.height,\n            width: dialogConfig.width,\n            positionStrategy,\n            scrollStrategy,\n            disposeOnNavigation: true,\n            panelClass: [config.classList, 'eui-21'],\n        });\n\n        this.overlayRef = overlayRef;\n        let openedDialog = new OpenedDialog({\n            id: dialogId,\n            order: this.openedDialogs$.value.length + 1,\n            overlayRef,\n            containerRef: null,\n        });\n\n        const extendedConfig: EuiDialogInterface<HC, HCC, BC, BCC, FC, FCC> = {\n            ...dialogConfig,\n            dialogId,\n            overlayRef,\n            init: (instances: EuiDialogComponentInstances<HC, BC, FC>) => {\n                config.init?.(instances);\n            },\n            open: () => {\n                config.open?.();\n            },\n            clickOutside: (instances: EuiDialogComponentInstances<HC, BC, FC>) => {\n                config.clickOutside?.(instances);\n            },\n            escape: (instances: EuiDialogComponentInstances<HC, BC, FC>) => {\n                config.escape?.(instances);\n            },\n            close: (instances: EuiDialogComponentInstances<HC, BC, FC>) => {\n                if(!config.isHandleCloseOnClose) {\n                    this.closeDialog(dialogId);\n                }\n                config.close?.(instances);\n            },\n            dismiss: (instances: EuiDialogComponentInstances<HC, BC, FC>) => {\n                config.dismiss?.(instances);\n            },\n            accept: (instances: EuiDialogComponentInstances<HC, BC, FC>) => {\n                config.accept?.(instances);\n            },\n        };\n        const containerPortal = new ComponentPortal<EuiDialogContainerComponent<HC, HCC, BC, BCC, FC, FCC>>(\n            EuiDialogContainerComponent,\n            null,\n            this.createInjector(extendedConfig, parentInjector),\n        );\n        const containerRef: ComponentRef<EuiDialogContainerComponent<HC, HCC, BC, BCC, FC, FCC>> =\n            openedDialog.overlayRef.attach(containerPortal);\n        openedDialog = { ...openedDialog, containerRef };\n\n        openedDialog.overlayRef\n            .backdropClick()\n            .pipe(takeUntil(this.destroy$))\n            .subscribe(() => {\n                if (extendedConfig.hasClosedOnClickOutside) {\n                    config.clickOutside?.(containerRef.instance.componentInstances);\n                    if (!config.isHandleCloseOnClickOutside) {\n                        containerRef.instance.closeDialog();\n                    }\n                }\n            });\n\n        if (extendedConfig.hasClosedOnEscape) {\n            openedDialog.overlayRef\n                .keydownEvents()\n                .pipe(takeUntil(this.destroy$))\n                .subscribe((keyboardEvent) => {\n                    if (keyboardEvent.key?.toLowerCase() === 'escape') {\n                        config.escape?.(containerRef.instance.componentInstances);\n                        if (!config.isHandleCloseOnEscape) {\n                            containerRef.instance.closeDialog();\n                        }\n                    }\n                });\n        }\n\n        this.openedDialogs$.next([...this.openedDialogs$.value, openedDialog]);\n\n        return openedDialog;\n    }\n\n    /**\n     * Close a dialog\n     *\n     * @param dialogId The id of the dialog to close. If not provided the last opened one will be closed.\n     */\n    public closeDialog(dialogId?: string): void {\n        if (dialogId) {\n            this.openedDialogs$.value.find((o) => o.id === dialogId).overlayRef.dispose();\n            this.openedDialogs$.next(this.openedDialogs$.value.filter((o) => o.id !== dialogId));\n            this.overlayRef =\n                this.openedDialogs$.value.length > 0 ? this.openedDialogs$.value[this.openedDialogs$.value.length - 1].overlayRef : null;\n        } else {\n            this.overlayRef?.dispose();\n            this.openedDialogs$.next(this.openedDialogs$.value.filter((o, i) => i < this.openedDialogs$.value.length - 1));\n            this.overlayRef =\n                this.openedDialogs$.value.length > 0 ? this.openedDialogs$.value[this.openedDialogs$.value.length - 1].overlayRef : null;\n        }\n    }\n\n    /**\n     * Close all the dialogs.\n     */\n    public closeAllDialogs(): void {\n        this.openedDialogs$.value.forEach((dialog) => {\n            dialog.containerRef.instance.dialogContainerConfig.close?.(dialog.containerRef.instance.getComponentInstances);\n        });\n    }\n\n    /**\n     * Returns an `Observable` with all opened windows.\n     *\n     * @returns `Observable` of `OpenedDialog[]`.\n     */\n    public getOpenedDialog(): Observable<OpenedDialog[]> {\n        return this.openedDialogs$;\n    }\n\n    /**\n     * Returns an `Object` with a dialog\n     *\n     * @param dialogId id of the dialog to be returned\n     * @returns `OpenedDialog`\n     */\n    public getDialog(dialogId: string): OpenedDialog {\n        return this.openedDialogs$.value.find((o) => o.id === dialogId);\n    }\n\n    /**\n     * Disable Accept button of default eui-dialog footer.\n     */\n    public disableAcceptButton(): void {\n        this.openedDialogs$.value[this.openedDialogs$.value.length - 1].containerRef.instance.disableAcceptButton();\n    }\n\n    /**\n     * Enable Accept button of default eui-dialog footer.\n     */\n    public enableAcceptButton(): void {\n        this.openedDialogs$.value[this.openedDialogs$.value.length - 1].containerRef.instance.enableAcceptButton();\n    }\n\n    /**\n     * Disable Dismiss button of default eui-dialog footer.\n     */\n    public disableDismissButton(): void {\n        this.openedDialogs$.value[this.openedDialogs$.value.length - 1].containerRef.instance.disableDismissButton();\n    }\n\n    /**\n     * Enable Dismiss button of default eui-dialog footer.\n     */\n    public enableDismissButton(): void {\n        this.openedDialogs$.value[this.openedDialogs$.value.length - 1].containerRef.instance.enableDismissButton();\n    }\n\n    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    private createInjector(data: any, parentInjector?: Injector): Injector {\n        const injectorTokens: StaticProvider = [{ provide: DIALOG_CONTAINER_CONFIG, useValue: data }];\n        return Injector.create({\n            parent: parentInjector ? parentInjector : this.injector,\n            providers: injectorTokens,\n        });\n    }\n\n    private getPositionStrategy(verticalPosition: EuiDialogVerticalPosition): GlobalPositionStrategy {\n        const positionStrategy = this.overlay.position().global().centerHorizontally().centerVertically();\n        if (verticalPosition === 'top') {\n            positionStrategy.top();\n        }\n        return positionStrategy;\n    }\n}\n","import {\n    Component,\n    ChangeDetectionStrategy,\n    ViewEncapsulation,\n    Input,\n    ViewChild,\n    TemplateRef,\n    ViewContainerRef,\n    AfterViewInit,\n    OnDestroy,\n    Output,\n    EventEmitter,\n    Directive,\n    ContentChild,\n    forwardRef,\n    QueryList,\n    ElementRef,\n    OnInit,\n    booleanAttribute,\n    SimpleChanges,\n    OnChanges,\n    inject,\n} from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\nimport { BaseStatesDirective } from '@eui/components/shared';\n\nimport { EuiDialogService } from './services/eui-dialog.service';\nimport { EuiDialogInterface } from './models/eui-dialog.config';\nimport { DIALOG_COMPONENT_CONFIG } from './services/eui-dialog.token';\nimport { OpenedDialog } from './models/opened-dialog.model';\nimport { EuiDialogVerticalPosition } from './models/eui-dialog-alignment';\n\n/**\n * @description\n * A modal dialog component that displays content in an overlay above the main application.\n * Supports customizable headers, footers, action buttons, and various interaction behaviors.\n * Can be opened programmatically via the openDialog method or controlled declaratively.\n * Integrates with EuiDialogService for centralized dialog management and supports features\n * like dragging, fullscreen mode, message box mode, and flexible positioning.\n * \n * @usageNotes\n * ### Using Dialog Service\n * ```typescript\n * // Component\n * constructor(private euiDialogService: EuiDialogService) {}\n * \n * openDialog(): void {\n *   const config = new EuiDialogConfig({\n *     title: 'Confirm Action',\n *     content: 'Are you sure you want to proceed?',\n *     accept: () => console.log('Accepted'),\n *     dismiss: () => console.log('Dismissed')\n *   });\n *   this.euiDialogService.openDialog(config);\n * }\n * \n * // Template\n * <button euiButton (click)=\"openDialog()\" aria-haspopup=\"dialog\">\n *   Open Dialog\n * </button>\n * ```\n * \n * ### Template Reference\n * ```html\n * <button euiButton (click)=\"dialog.openDialog()\" aria-haspopup=\"dialog\">\n *   Open Dialog\n * </button>\n * \n * <eui-dialog #dialog \n *   [title]=\"'Confirmation'\" \n *   [width]=\"'600px'\"\n *   (accept)=\"onAccept()\"\n *   (dismiss)=\"onDismiss()\">\n *   <p>Dialog content goes here</p>\n * </eui-dialog>\n * ```\n * \n * ### Custom Header and Footer\n * ```html\n * <eui-dialog #dialog [hasFooter]=\"false\">\n *   <eui-dialog-header>\n *     <h2>Custom Header</h2>\n *   </eui-dialog-header>\n *   \n *   <p>Main content</p>\n *   \n *   <eui-dialog-footer>\n *     <button euiButton (click)=\"dialog.closeDialog()\">Close</button>\n *   </eui-dialog-footer>\n * </eui-dialog>\n * ```\n * \n * ### Accessibility\n * - Automatically manages focus trap within dialog\n * - Escape key closes dialog by default (configurable via `hasClosedOnEscape`)\n * - Close button has proper ARIA label\n * - Dialog has `role=\"dialog\"` and `aria-modal=\"true\"`\n * - Focus returns to trigger element on close\n * - Use `aria-haspopup=\"dialog\"` on trigger buttons\n * \n * ### Notes\n * - Use `isMessageBox` for critical confirmations that require explicit user action\n * - `isDraggable` enables repositioning for multi-dialog scenarios\n * - `isFullScreen` automatically sets width to 98vw and height to 97vh\n * - `hasClosedOnClickOutside` allows backdrop click to close dialog\n * - Manual close control via `isHandleCloseOn*` properties for custom workflows\n * - `verticalPosition` controls dialog placement (top, center, bottom)\n * - Methods like `disableAcceptButton()` and `scrollToBottom()` available for dynamic control\n */\n@Component({\n    selector: 'eui-dialog',\n    templateUrl: './eui-dialog.component.html',\n    styleUrl: './eui-dialog.scss',\n    providers: [{ provide: DIALOG_COMPONENT_CONFIG, useValue: null }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    imports: [\n    ],\n    hostDirectives: [\n        {\n            directive: BaseStatesDirective,\n            inputs: [\n                'euiPrimary',\n                'euiSecondary',\n                'euiInfo',\n                'euiSuccess',\n                'euiWarning',\n                'euiDanger',\n                'euiVariant',\n            ],\n        },\n    ],\n})\nexport class EuiDialogComponent implements AfterViewInit, OnDestroy, OnInit, OnChanges {\n    /**\n     * End-to-end testing attribute identifier for the dialog element.\n     * @default 'eui-dialog'\n     */\n    @Input() e2eAttr = 'eui-dialog';\n\n    /**\n     * Title text displayed in the dialog header.\n     * When changed after dialog is opened, the title updates dynamically.\n     */\n    @Input() title: string;\n\n    /**\n     * Translation key or label text for the accept button.\n     * @default 'eui.OK'\n     */\n    @Input() acceptLabel = 'eui.OK';\n\n    /**\n     * Translation key or label text for the dismiss button.\n     * @default 'eui.CANCEL'\n     */\n    @Input() dismissLabel = 'eui.CANCEL';\n\n    /**\n     * Vertical alignment position of the dialog within the viewport.\n     * Controls whether the dialog appears at top, center, or bottom of the screen.\n     */\n    @Input() verticalPosition: EuiDialogVerticalPosition;\n\n    /**\n     * Width of the dialog. Accepts CSS units (px, %, vw, etc.).\n     * Overridden to '98vw' when isFullScreen is true.\n     * @default '50%'\n     */\n    @Input() width = '50%';\n\n    /**\n     * Height of the dialog. Accepts CSS units (px, %, vh, auto, etc.).\n     * Overridden to '97vh' when isFullScreen is true.\n     * @default 'auto'\n     */\n    @Input() height = 'auto';\n\n    /**\n     * Enables fullscreen mode, automatically setting width to 98vw and height to 97vh.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isFullScreen = false;\n\n    /**\n     * Controls visibility of the close (X) button in the dialog header.\n     * Automatically set to false when isMessageBox is true.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) hasCloseButton = true;\n\n    /**\n     * Controls visibility of the accept button in the dialog footer.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) hasAcceptButton = true;\n\n    /**\n     * Controls visibility of the dismiss button in the dialog footer.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) hasDismissButton = true;\n\n    /**\n     * Enables custom sizing behavior on mobile devices.\n     * When true, applies mobile-specific width and height adjustments.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) hasMobileCustomSize = false;\n\n    /**\n     * Enables automatic dialog closure when clicking outside the dialog boundaries.\n     * Works in conjunction with isHandleCloseOnClickOutside for manual control.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) hasClosedOnClickOutside = false;\n\n    /**\n     * Enables automatic dialog closure when pressing the Escape key.\n     * Automatically set to false when isMessageBox is true.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) hasClosedOnEscape = true;\n\n    /**\n     * Prevents automatic dialog closure when dismiss button is clicked.\n     * When true, developer must manually handle closure via the dismiss event.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isHandleCloseOnDismiss = false;\n\n    /**\n     * Prevents automatic dialog closure when close (X) button is clicked.\n     * When true, developer must manually handle closure via the dialogClose event.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isHandleCloseOnClose = false;\n\n    /**\n     * Prevents automatic dialog closure when accept button is clicked.\n     * When true, developer must manually handle closure via the accept event.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isHandleCloseOnAccept = false;\n\n    /**\n     * Prevents automatic dialog closure when clicking outside the dialog.\n     * When true, developer must manually handle closure via the clickOutside event.\n     * Requires hasClosedOnClickOutside to be true to have effect.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isHandleCloseOnClickOutside = false;\n\n    /**\n     * Prevents automatic dialog closure when pressing Escape key.\n     * When true, developer must manually handle closure via the escape event.\n     * Requires hasClosedOnEscape to be true to have effect.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isHandleCloseOnEscape = false;\n\n    /**\n     * Enables message box mode, which disables Escape key closure and hides the close button.\n     * Intended for dialogs requiring explicit user action via accept or dismiss buttons.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isMessageBox = false;\n\n    /**\n     * Enables drag-and-drop functionality, allowing users to reposition the dialog.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) isDraggable = false;\n\n    /**\n     * Removes default padding from the dialog body content area.\n     * Useful for custom layouts or full-width content.\n     * @default false\n     */\n    @Input({ transform: booleanAttribute }) hasNoBodyPadding = false;\n\n    /**\n     * Controls visibility of the entire footer section containing action buttons.\n     * @default true\n     */\n    @Input({ transform: booleanAttribute }) hasFooter = true;\n\n    /**\n     * Additional CSS class names to apply to the dialog container.\n     * Allows custom styling without modifying component styles.\n     * @default null\n     */\n    @Input() classList: string = null;\n\n    /**\n     * Emitted when user clicks outside the dialog boundaries.\n     * Fires regardless of hasClosedOnClickOutside setting.\n     */\n    @Output() clickOutside = new EventEmitter();\n\n    /**\n     * Emitted when user presses the Escape key while dialog has focus.\n     * Fires regardless of hasClosedOnEscape setting.\n     */\n    @Output() escape = new EventEmitter();\n\n    /**\n     * Emitted immediately after the dialog opens and becomes visible.\n     */\n    @Output() dialogOpen = new EventEmitter();\n\n    /**\n     * Emitted when the close (X) button is clicked.\n     * Dialog closes automatically unless isHandleCloseOnClose is true.\n     */\n    @Output() dialogClose = new EventEmitter();\n\n    /**\n     * Emitted when the dismiss button is clicked.\n     * Dialog closes automatically unless isHandleCloseOnDismiss is true.\n     */\n    @Output() dismiss = new EventEmitter();\n\n    /**\n     * Emitted when the accept button is clicked.\n     * Dialog closes automatically unless isHandleCloseOnAccept is true.\n     */\n    @Output() accept = new EventEmitter();\n\n    public content: string | TemplatePortal;\n    public isOpen$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n    @ViewChild('templateRefHeader') templateRefHeader: TemplateRef<EuiDialogHeaderDirective>;\n    @ViewChild('templateRefContent') templateRefContent: TemplateRef<ElementRef>;\n    @ViewChild('templateRefFooter') templateRefFooter: TemplateRef<EuiDialogFooterDirective>;\n\n    @ContentChild(forwardRef(() => EuiDialogHeaderDirective)) euiDialogHeaderDirective: QueryList<EuiDialogHeaderDirective>;\n    @ContentChild(forwardRef(() => EuiDialogFooterDirective)) euiDialogFooterDirective: QueryList<EuiDialogFooterDirective>;\n\n    baseStatesDirective = inject(BaseStatesDirective);\n    private dialog: OpenedDialog;\n    private templatePortalHeader: TemplatePortal<EuiDialogHeaderDirective>;\n    private templatePortalContent: TemplatePortal<ElementRef>;\n    private templatePortalFooter: TemplatePortal<EuiDialogFooterDirective>;\n    private destroy$: Subject<boolean> = new Subject<boolean>();\n    private viewContainerRef = inject(ViewContainerRef);\n    private euiDialogService = inject(EuiDialogService);\n\n    ngOnChanges(changes: SimpleChanges): void {\n        if (changes.title && this.dialog && this.euiDialogService.getDialog(this.dialog.id)) {\n            const newTitle = changes.title.currentValue;\n\n            // Update the dialog service with the new title\n            this.euiDialogService.getDialog(this.dialog.id).containerRef.instance.dialogContainerConfig.title = newTitle;\n\n            // Trigger change detection to reflect the updated title\n            this.euiDialogService.getDialog(this.dialog.id).containerRef.instance.cd.markForCheck();\n        }\n    }\n\n    ngOnInit(): void {\n        if (this.isFullScreen) {\n            this.width = '98vw';\n            this.height = '97vh';\n        }\n\n        if (this.isMessageBox) {\n            this.hasClosedOnEscape = false;\n            this.hasCloseButton = false;\n        }\n    }\n\n    ngAfterViewInit(): void {\n        if (this.euiDialogHeaderDirective) {\n            this.templatePortalHeader = new TemplatePortal(this.templateRefHeader, this.viewContainerRef);\n        }\n\n        this.templatePortalContent = new TemplatePortal(this.templateRefContent, this.viewContainerRef);\n\n        if (this.euiDialogFooterDirective) {\n            this.templatePortalFooter = new TemplatePortal(this.templateRefFooter, this.viewContainerRef);\n        }\n    }\n\n    ngOnDestroy(): void {\n        this.destroy$.next(true);\n        this.destroy$.unsubscribe();\n    }\n\n    /**\n     * Whether the eui-dialog is open.\n     *\n     * @usageNotes\n     * ```html\n     * <eui-dialog #dialog>\n     *      \\@if (dialog.isOpen) {\n     *          <my-component></my-component>\n     *      }\n     * </eui-dialog>\n     * ```\n     * @returns A boolean with value `true` when open, otherwise `false`.\n     */\n    get isOpen(): boolean {\n        return this.isOpen$.value;\n    }\n\n    /**\n     * Open a dialog.\n     *\n     * @returns A dialog object of type `OpenedDialog`\n     */\n    public openDialog<HC, HCC, BC, BCC, FC, FCC>(): OpenedDialog {\n        const config: EuiDialogInterface<HC, HCC, BC, BCC, FC, FCC> = {\n            e2eAttr: this.e2eAttr,\n            title: this.title,\n            width: this.width,\n            height: this.height,\n            isFullScreen: this.isFullScreen,\n            variant: this.baseStatesDirective.euiVariant,\n            acceptLabel: this.acceptLabel,\n            dismissLabel: this.dismissLabel,\n            hasCloseButton: this.hasCloseButton,\n            hasAcceptButton: this.hasAcceptButton,\n            hasDismissButton: this.hasDismissButton,\n            hasMobileCustomSize: this.hasMobileCustomSize,\n            hasClosedOnClickOutside: this.hasClosedOnClickOutside,\n            hasClosedOnEscape: this.hasClosedOnEscape,\n            isHandleCloseOnDismiss: this.isHandleCloseOnDismiss,\n            isHandleCloseOnClose: this.isHandleCloseOnClose,\n            isHandleCloseOnAccept: this.isHandleCloseOnAccept,\n            isHandleCloseOnClickOutside: this.isHandleCloseOnClickOutside,\n            isHandleCloseOnEscape: this.isHandleCloseOnEscape,\n            isDraggable: this.isDraggable,\n            hasNoBodyPadding: this.hasNoBodyPadding,\n            hasFooter: this.hasFooter,\n            verticalPosition: this.verticalPosition,\n            header: this.templatePortalHeader,\n            content: this.templatePortalContent,\n            footer: this.templatePortalFooter,\n            classList: this.classList,\n            clickOutside: () => {\n                if (this.hasClosedOnClickOutside && !this.isHandleCloseOnClickOutside) {\n                    this.isOpen$.next(false);\n                }\n                this.clickOutside.emit();\n            },\n            escape: () => {\n                if (this.hasClosedOnEscape && !this.isHandleCloseOnEscape) {\n                    this.isOpen$.next(false);\n                }\n                this.escape.emit();\n            },\n            open: () => {\n                this.dialogOpen.emit();\n            },\n            close: () => {\n                if (!this.isHandleCloseOnClose) {\n                    this.isOpen$.next(false);\n                }\n                this.dialogClose.emit();\n            },\n            dismiss: () => {\n                if (!this.isHandleCloseOnDismiss) {\n                    this.isOpen$.next(false);\n                }\n                this.dismiss.emit();\n            },\n            accept: () => {\n                if (!this.isHandleCloseOnAccept) {\n                    this.isOpen$.next(false);\n                }\n                this.accept.emit();\n            },\n        };\n\n        this.isOpen$.next(true);\n        this.dialog = this.euiDialogService.openDialog(config);\n\n        return this.dialog;\n    }\n\n    /**\n     * Close a Dialog\n     */\n    public closeDialog(): void {\n        this.isOpen$.next(false);\n        this.euiDialogService.closeDialog();\n    }\n\n    /**\n     * Disable Accept button of default eui-dialog footer.\n     */\n    public disableAcceptButton(): void {\n        this.euiDialogService.getDialog(this.dialog.id).containerRef.instance.disableAcceptButton();\n    }\n\n    /**\n     * Enable Accept button of default eui-dialog footer.\n     */\n    public enableAcceptButton(): void {\n        this.euiDialogService.getDialog(this.dialog.id).containerRef.instance.enableAcceptButton();\n    }\n\n    /**\n     * Disable Dismiss button of default eui-dialog footer.\n     */\n    public disableDismissButton(): void {\n        this.euiDialogService.getDialog(this.dialog.id).containerRef.instance.disableDismissButton();\n    }\n\n    /**\n     * Enable Dismiss button of default eui-dialog footer.\n     */\n    public enableDismissButton(): void {\n        this.euiDialogService.getDialog(this.dialog.id).containerRef.instance.enableDismissButton();\n    }\n\n    /**\n     * Scroll to the bottom of the content\n     */\n    public scrollToBottom(): void {\n        this.euiDialogService.getDialog(this.dialog.id).containerRef.instance.scrollToBottom();\n    }\n\n    /**\n     * Scroll to the top of the content\n     */\n    public scrollToTop(): void {\n        this.euiDialogService.getDialog(this.dialog.id).containerRef.instance.scrollToTop();\n    }\n}\n\n/* eslint-disable */\n@Directive({ selector: 'eui-dialog-header', })\nexport class EuiDialogHeaderDirective {}\n\n@Directive({ selector: 'eui-dialog-footer', })\nexport class EuiDialogFooterDirective {}\n/* eslint-enable */\n","<ng-template #templateRefHeader>\n    <ng-content select=\"eui-dialog-header\" />\n</ng-template>\n<ng-template #templateRefContent>\n    <ng-content />\n</ng-template>\n<ng-template #templateRefFooter>\n    <ng-content select=\"eui-dialog-footer\" />\n</ng-template>\n","import { EuiDialogContainerComponent } from './container/eui-dialog-container.component';\nimport { EuiDialogComponent, EuiDialogFooterDirective, EuiDialogHeaderDirective } from './eui-dialog.component';\n\nexport * from './eui-dialog.component';\nexport * from './services/eui-dialog.service';\nexport * from './services/eui-dialog.token';\nexport * from './models/eui-dialog.config';\nexport * from './container/eui-dialog-container.component';\n\nexport const EUI_DIALOG = [\n    EuiDialogComponent,\n    EuiDialogHeaderDirective,\n    EuiDialogFooterDirective,\n    EuiDialogContainerComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}