{"version":3,"file":"primeng-confirmdialog.mjs","sources":["../../src/confirmdialog/style/confirmdialogstyle.ts","../../src/confirmdialog/confirmdialog.ts","../../src/confirmdialog/primeng-confirmdialog.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-confirmdialog .p-dialog-content {\n    display: flex;\n    align-items: center;\n    gap:  ${dt('confirmdialog.content.gap')};\n}\n\n.p-confirmdialog .p-confirmdialog-icon {\n    color: ${dt('confirmdialog.icon.color')};\n    font-size: ${dt('confirmdialog.icon.size')};\n    width: ${dt('confirmdialog.icon.size')};\n    height: ${dt('confirmdialog.icon.size')};\n}\n`;\n\nconst classes = {\n    root: 'p-confirmdialog',\n    icon: 'p-confirmdialog-icon',\n    message: 'p-confirmdialog-message',\n    pcRejectButton: 'p-confirmdialog-reject-button',\n    pcAcceptButton: 'p-confirmdialog-accept-button'\n};\n\n@Injectable()\nexport class ConfirmDialogStyle extends BaseStyle {\n    name = 'confirmdialog';\n\n    theme = theme;\n\n    classes = classes;\n}\n\n/**\n *\n * ConfirmDialog uses a Dialog UI with confirmDialog method or <ConfirmDialog> tag.\n *\n * [Live Demo](https://www.primeng.org/confirmdialog)\n *\n * @module confirmdialogstyle\n *\n */\nexport enum ConfirmDialogClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-confirmdialog',\n    /**\n     * Class name of the icon element\n     */\n    icon = 'p-confirmdialog-icon',\n    /**\n     * Class name of the message element\n     */\n    message = 'p-confirmdialog-message',\n    /**\n     * Class name of the reject button element\n     */\n    pcRejectButton = 'p-confirmdialog-reject-button',\n    /**\n     * Class name of the accept button element\n     */\n    pcAcceptButton = 'p-confirmdialog-accept-button'\n}\n\nexport interface ConfirmDialogStyle extends BaseStyle {}\n","import { animate, animation, style, transition, trigger, useAnimation } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport {\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    ContentChild,\n    ContentChildren,\n    ElementRef,\n    EventEmitter,\n    inject,\n    Input,\n    NgModule,\n    NgZone,\n    numberAttribute,\n    OnDestroy,\n    OnInit,\n    Output,\n    QueryList,\n    TemplateRef,\n    ViewEncapsulation\n} from '@angular/core';\nimport { findSingle, setAttribute, uuid } from '@primeuix/utils';\nimport { Confirmation, ConfirmationService, ConfirmEventType, Footer, PrimeTemplate, SharedModule, TranslationKeys } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Button } from 'primeng/button';\nimport { Dialog } from 'primeng/dialog';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { Subscription } from 'rxjs';\nimport { ConfirmDialogStyle } from './style/confirmdialogstyle';\n\nconst showAnimation = animation([style({ transform: '{{transform}}', opacity: 0 }), animate('{{transition}}', style({ transform: 'none', opacity: 1 }))]);\n\nconst hideAnimation = animation([animate('{{transition}}', style({ transform: '{{transform}}', opacity: 0 }))]);\n/**\n * ConfirmDialog uses a Dialog UI that is integrated with the Confirmation API.\n * @group Components\n */\n@Component({\n    selector: 'p-confirmDialog, p-confirmdialog, p-confirm-dialog',\n    standalone: true,\n    imports: [CommonModule, Button, Dialog, SharedModule],\n    template: `\n        <p-dialog\n            #dialog\n            [(visible)]=\"visible\"\n            role=\"alertdialog\"\n            [closable]=\"option('closable')\"\n            [styleClass]=\"containerClass\"\n            [modal]=\"true\"\n            [header]=\"option('header')\"\n            [closeOnEscape]=\"option('closeOnEscape')\"\n            [blockScroll]=\"option('blockScroll')\"\n            [appendTo]=\"option('appendTo')\"\n            [position]=\"position\"\n            [style]=\"style\"\n        >\n            @if (headlessTemplate || _headlessTemplate) {\n                <ng-template #headless>\n                    <ng-container\n                        *ngTemplateOutlet=\"\n                            headlessTemplate || _headlessTemplate;\n                            context: {\n                                $implicit: confirmation,\n                                onAccept: onAccept.bind(this),\n                                onReject: onReject.bind(this)\n                            }\n                        \"\n                    ></ng-container>\n                </ng-template>\n            } @else {\n                @if (headerTemplate || _headerTemplate) {\n                    <div [ngClass]=\"cx('header')\">\n                        <ng-container *ngTemplateOutlet=\"headerTemplate || _headerTemplate\"></ng-container>\n                    </div>\n                }\n\n                <ng-template #content>\n                    @if (iconTemplate || _iconTemplate) {\n                        <ng-template *ngTemplateOutlet=\"iconTemplate || _iconTemplate\"></ng-template>\n                    } @else if (!iconTemplate && !_iconTemplate && !_messageTemplate && !messageTemplate) {\n                        <i [ngClass]=\"cx('icon')\" [class]=\"option('icon')\" *ngIf=\"option('icon')\"></i>\n                    }\n                    @if (messageTemplate || _messageTemplate) {\n                        <ng-template *ngTemplateOutlet=\"messageTemplate || _messageTemplate; context: { $implicit: confirmation }\"></ng-template>\n                    } @else {\n                        <span [ngClass]=\"cx('message')\" [innerHTML]=\"option('message')\"> </span>\n                    }\n                </ng-template>\n            }\n            <ng-template #footer>\n                @if (footerTemplate || _footerTemplate) {\n                    <ng-content select=\"p-footer\"></ng-content>\n                    <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate\"></ng-container>\n                }\n                @if (!footerTemplate && !_footerTemplate) {\n                    <p-button\n                        *ngIf=\"option('rejectVisible')\"\n                        [label]=\"rejectButtonLabel\"\n                        (onClick)=\"onReject()\"\n                        [styleClass]=\"getButtonStyleClass('pcRejectButton', 'rejectButtonStyleClass')\"\n                        [ariaLabel]=\"option('rejectButtonProps', 'ariaLabel')\"\n                        [buttonProps]=\"getRejectButtonProps()\"\n                    >\n                        @if (rejectIcon && !rejectIconTemplate && !_rejectIconTemplate) {\n                            <i *ngIf=\"option('rejectIcon')\" [class]=\"option('rejectIcon')\"></i>\n                        }\n                        <ng-template *ngTemplateOutlet=\"rejectIconTemplate || _rejectIconTemplate\"></ng-template>\n                    </p-button>\n                    <p-button\n                        [label]=\"acceptButtonLabel\"\n                        (onClick)=\"onAccept()\"\n                        [styleClass]=\"getButtonStyleClass('pcAcceptButton', 'acceptButtonStyleClass')\"\n                        *ngIf=\"option('acceptVisible')\"\n                        [ariaLabel]=\"option('acceptButtonProps', 'ariaLabel')\"\n                        [buttonProps]=\"getAcceptButtonProps()\"\n                    >\n                        @if (acceptIcon && !_acceptIconTemplate && !acceptIconTemplate) {\n                            <i *ngIf=\"option('acceptIcon')\" [class]=\"option('acceptIcon')\"></i>\n                        }\n                        <ng-template *ngTemplateOutlet=\"acceptIconTemplate || _acceptIconTemplate\"></ng-template>\n                    </p-button>\n                }\n            </ng-template>\n        </p-dialog>\n    `,\n    animations: [trigger('animation', [transition('void => visible', [useAnimation(showAnimation)]), transition('visible => void', [useAnimation(hideAnimation)])])],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    providers: [ConfirmDialogStyle]\n})\nexport class ConfirmDialog extends BaseComponent implements OnInit, OnDestroy {\n    /**\n     * Title text of the dialog.\n     * @group Props\n     */\n    @Input() header: string | undefined;\n    /**\n     * Icon to display next to message.\n     * @group Props\n     */\n    @Input() icon: string | undefined;\n    /**\n     * Message of the confirmation.\n     * @group Props\n     */\n    @Input() message: string | undefined;\n    /**\n     * Inline style of the element.\n     * @group Props\n     */\n    @Input() get style(): { [klass: string]: any } | null | undefined {\n        return this._style;\n    }\n    set style(value: { [klass: string]: any } | null | undefined) {\n        this._style = value;\n        this.cd.markForCheck();\n    }\n    /**\n     * Class of the element.\n     * @group Props\n     */\n    @Input() styleClass: string | undefined;\n    /**\n     * Specify the CSS class(es) for styling the mask element\n     * @group Props\n     */\n    @Input() maskStyleClass: string | undefined;\n    /**\n     * Icon of the accept button.\n     * @group Props\n     */\n    @Input() acceptIcon: string | undefined;\n    /**\n     * Label of the accept button.\n     * @group Props\n     */\n    @Input() acceptLabel: 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     * Defines a string that labels the accept button for accessibility.\n     * @group Props\n     */\n    @Input() acceptAriaLabel: string | undefined;\n    /**\n     * Visibility of the accept button.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) acceptVisible: boolean = true;\n    /**\n     * Icon of the reject button.\n     * @group Props\n     */\n    @Input() rejectIcon: string | undefined;\n    /**\n     * Label of the reject button.\n     * @group Props\n     */\n    @Input() rejectLabel: string | undefined;\n    /**\n     * Defines a string that labels the reject button for accessibility.\n     * @group Props\n     */\n    @Input() rejectAriaLabel: string | undefined;\n    /**\n     * Visibility of the reject button.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) rejectVisible: boolean = true;\n    /**\n     * Style class of the accept button.\n     * @group Props\n     */\n    @Input() acceptButtonStyleClass: string | undefined;\n    /**\n     * Style class of the reject button.\n     * @group Props\n     */\n    @Input() rejectButtonStyleClass: string | undefined;\n    /**\n     * Specifies if pressing escape key should hide the dialog.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) closeOnEscape: boolean = true;\n    /**\n     * Specifies if clicking the modal background should hide the dialog.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) dismissableMask: boolean | undefined;\n    /**\n     * Determines whether scrolling behavior should be blocked within the component.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) blockScroll: boolean = true;\n    /**\n     * When enabled dialog is displayed in RTL direction.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) rtl: boolean = false;\n    /**\n     * Adds a close icon to the header to hide the dialog.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) closable: boolean = true;\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 = 'body';\n    /**\n     * Optional key to match the key of confirm object, necessary to use when component tree has multiple confirm dialogs.\n     * @group Props\n     */\n    @Input() key: string | undefined;\n    /**\n     * Whether to automatically manage layering.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) autoZIndex: boolean = true;\n    /**\n     * Base zIndex value to use in layering.\n     * @group Props\n     */\n    @Input({ transform: numberAttribute }) baseZIndex: number = 0;\n    /**\n     * Transition options of the animation.\n     * @group Props\n     */\n    @Input() transitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n    /**\n     * When enabled, can only focus on elements inside the confirm dialog.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) focusTrap: boolean = true;\n    /**\n     * Element to receive the focus when the dialog gets visible.\n     * @group Props\n     */\n    @Input() defaultFocus: 'accept' | 'reject' | 'close' | 'none' = 'accept';\n    /**\n     * Object literal to define widths per screen size.\n     * @group Props\n     */\n    @Input() breakpoints: any;\n    /**\n     * Current visible state as a boolean.\n     * @group Props\n     */\n    @Input() get visible(): any {\n        return this._visible;\n    }\n\n    set visible(value: any) {\n        this._visible = value;\n\n        if (this._visible && !this.maskVisible) {\n            this.maskVisible = true;\n        }\n\n        this.cd.markForCheck();\n    }\n    /**\n     *  Allows getting the position of the component.\n     * @group Props\n     */\n    @Input() get position(): string {\n        return this._position;\n    }\n    set position(value: string) {\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 hidden.\n     * @param {ConfirmEventType} enum - Custom confirm event.\n     * @group Emits\n     */\n    @Output() onHide: EventEmitter<ConfirmEventType> = new EventEmitter<ConfirmEventType>();\n\n    @ContentChild(Footer) footer: Nullable<TemplateRef<any>>;\n\n    _componentStyle = inject(ConfirmDialogStyle);\n\n    @ContentChild('header', { descendants: false }) headerTemplate: Nullable<TemplateRef<any>>;\n\n    @ContentChild('footer', { descendants: false }) footerTemplate: Nullable<TemplateRef<any>>;\n\n    @ContentChild('rejecticon', { descendants: false }) rejectIconTemplate: Nullable<TemplateRef<any>>;\n\n    @ContentChild('accepticon', { descendants: false }) acceptIconTemplate: Nullable<TemplateRef<any>>;\n\n    @ContentChild('message', { descendants: false }) messageTemplate: Nullable<TemplateRef<any>>;\n\n    @ContentChild('icon', { descendants: false }) iconTemplate: Nullable<TemplateRef<any>>;\n\n    @ContentChild('headless', { descendants: false }) headlessTemplate: Nullable<TemplateRef<any>>;\n\n    @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n    _headerTemplate: TemplateRef<any> | undefined;\n\n    _footerTemplate: TemplateRef<any> | undefined;\n\n    _rejectIconTemplate: TemplateRef<any> | undefined;\n\n    _acceptIconTemplate: TemplateRef<any> | undefined;\n\n    _messageTemplate: TemplateRef<any> | undefined;\n\n    _iconTemplate: TemplateRef<any> | undefined;\n\n    _headlessTemplate: TemplateRef<any> | undefined;\n\n    confirmation: Nullable<Confirmation>;\n\n    _visible: boolean | undefined;\n\n    _style: { [klass: string]: any } | null | undefined;\n\n    maskVisible: boolean | undefined;\n\n    dialog: Nullable<Dialog>;\n\n    wrapper: Nullable<HTMLElement>;\n\n    contentContainer: Nullable<HTMLDivElement>;\n\n    subscription: Subscription;\n\n    preWidth: number | undefined;\n\n    _position: string = 'center';\n\n    transformOptions: any = 'scale(0.7)';\n\n    styleElement: any;\n\n    id = uuid('pn_id_');\n\n    ariaLabelledBy: string = this.getAriaLabelledBy();\n\n    translationSubscription: Subscription | undefined;\n\n    get containerClass(): string {\n        return this.cx('root') + ' ' + this.styleClass || ' ';\n    }\n\n    constructor(\n        private confirmationService: ConfirmationService,\n        public zone: NgZone\n    ) {\n        super();\n        this.subscription = this.confirmationService.requireConfirmation$.subscribe((confirmation) => {\n            if (!confirmation) {\n                this.hide();\n                return;\n            }\n            if (confirmation.key === this.key) {\n                this.confirmation = confirmation;\n\n                const keys = Object.keys(confirmation);\n\n                keys.forEach((key) => {\n                    this[key] = confirmation[key];\n                });\n\n                if (this.confirmation.accept) {\n                    this.confirmation.acceptEvent = new EventEmitter();\n                    this.confirmation.acceptEvent.subscribe(this.confirmation.accept);\n                }\n\n                if (this.confirmation.reject) {\n                    this.confirmation.rejectEvent = new EventEmitter();\n                    this.confirmation.rejectEvent.subscribe(this.confirmation.reject);\n                }\n\n                this.visible = true;\n            }\n        });\n    }\n\n    ngOnInit() {\n        super.ngOnInit();\n        if (this.breakpoints) {\n            this.createStyle();\n        }\n\n        this.translationSubscription = this.config.translationObserver.subscribe(() => {\n            if (this.visible) {\n                this.cd.markForCheck();\n            }\n        });\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 'footer':\n                    this._footerTemplate = item.template;\n                    break;\n\n                case 'message':\n                    this._messageTemplate = item.template;\n                    break;\n\n                case 'icon':\n                    this._iconTemplate = item.template;\n                    break;\n\n                case 'rejecticon':\n                    this._rejectIconTemplate = item.template;\n                    break;\n\n                case 'accepticon':\n                    this._acceptIconTemplate = item.template;\n                    break;\n\n                case 'headless':\n                    this._headlessTemplate = item.template;\n                    break;\n            }\n        });\n    }\n\n    getAriaLabelledBy() {\n        return this.header !== null ? uuid('pn_id_') + '_header' : null;\n    }\n\n    option(name: string, k?: string) {\n        const source: { [key: string]: any } = this || this;\n        if (source.hasOwnProperty(name)) {\n            if (k) {\n                return source[k];\n            }\n            return source[name];\n        }\n\n        return undefined;\n    }\n\n    getButtonStyleClass(cx: string, opt: string): string {\n        const cxClass = this.cx(cx);\n        const optionClass = this.option(opt);\n\n        return [cxClass, optionClass].filter(Boolean).join(' ');\n    }\n\n    getElementToFocus() {\n        switch (this.option('defaultFocus')) {\n            case 'accept':\n                return findSingle(this.dialog.el.nativeElement, '.p-confirm-dialog-accept');\n\n            case 'reject':\n                return findSingle(this.dialog.el.nativeElement, '.p-confirm-dialog-reject');\n\n            case 'close':\n                return findSingle(this.dialog.el.nativeElement, '.p-dialog-header-close');\n\n            case 'none':\n                return null;\n\n            //backward compatibility\n            default:\n                return findSingle(this.dialog.el.nativeElement, '.p-confirm-dialog-accept');\n        }\n    }\n\n    createStyle() {\n        if (!this.styleElement) {\n            this.styleElement = this.document.createElement('style');\n            this.styleElement.type = 'text/css';\n            this.document.head.appendChild(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}] {\n                            width: ${this.breakpoints[breakpoint]} !important;\n                        }\n                    }\n                `;\n            }\n\n            this.styleElement.innerHTML = innerHTML;\n            setAttribute(this.styleElement, 'nonce', this.config?.csp()?.nonce);\n        }\n    }\n\n    close(event: Event) {\n        if (this.confirmation?.rejectEvent) {\n            this.confirmation.rejectEvent.emit(ConfirmEventType.CANCEL);\n        }\n\n        this.hide(ConfirmEventType.CANCEL);\n        event.preventDefault();\n    }\n\n    hide(type?: ConfirmEventType) {\n        this.onHide.emit(type);\n        this.visible = false;\n        this.confirmation = null;\n    }\n\n    destroyStyle() {\n        if (this.styleElement) {\n            this.document.head.removeChild(this.styleElement);\n            this.styleElement = null;\n        }\n    }\n\n    ngOnDestroy() {\n        this.subscription.unsubscribe();\n\n        if (this.translationSubscription) {\n            this.translationSubscription.unsubscribe();\n        }\n\n        this.destroyStyle();\n        super.ngOnDestroy();\n    }\n\n    onAccept() {\n        if (this.confirmation && this.confirmation.acceptEvent) {\n            this.confirmation.acceptEvent.emit();\n        }\n        this.hide(ConfirmEventType.ACCEPT);\n    }\n\n    onReject() {\n        if (this.confirmation && this.confirmation.rejectEvent) {\n            this.confirmation.rejectEvent.emit(ConfirmEventType.REJECT);\n        }\n\n        this.hide(ConfirmEventType.REJECT);\n    }\n\n    get acceptButtonLabel(): string {\n        return this.option('acceptLabel') || this.config.getTranslation(TranslationKeys.ACCEPT);\n    }\n\n    get rejectButtonLabel(): string {\n        return this.option('rejectLabel') || this.config.getTranslation(TranslationKeys.REJECT);\n    }\n\n    getAcceptButtonProps() {\n        return this.option('acceptButtonProps');\n    }\n\n    getRejectButtonProps() {\n        return this.option('rejectButtonProps');\n    }\n}\n\n@NgModule({\n    imports: [ConfirmDialog, SharedModule],\n    exports: [ConfirmDialog, SharedModule]\n})\nexport class ConfirmDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}