{"version":3,"file":"primeng-toast.mjs","sources":["../../src/toast/style/toaststyle.ts","../../src/toast/toast.ts","../../src/toast/primeng-toast.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/toast';\nimport { BaseStyle } from 'primeng/base';\n\n// Position\nconst inlineStyles = {\n    root: ({ instance }) => {\n        const { _position } = instance;\n\n        return {\n            position: 'fixed',\n            top: _position === 'top-right' || _position === 'top-left' || _position === 'top-center' ? '20px' : _position === 'center' ? '50%' : null,\n            right: (_position === 'top-right' || _position === 'bottom-right') && '20px',\n            bottom: (_position === 'bottom-left' || _position === 'bottom-right' || _position === 'bottom-center') && '20px',\n            left: _position === 'top-left' || _position === 'bottom-left' ? '20px' : _position === 'center' || _position === 'top-center' || _position === 'bottom-center' ? '50%' : null\n        };\n    }\n};\n\nconst classes = {\n    root: ({ instance }) => ['p-toast p-component', `p-toast-${instance._position}`],\n\n    message: ({ instance }) => ({\n        'p-toast-message': true,\n        'p-toast-message-info': instance.message.severity === 'info' || instance.message.severity === undefined,\n        'p-toast-message-warn': instance.message.severity === 'warn',\n        'p-toast-message-error': instance.message.severity === 'error',\n        'p-toast-message-success': instance.message.severity === 'success',\n        'p-toast-message-secondary': instance.message.severity === 'secondary',\n        'p-toast-message-contrast': instance.message.severity === 'contrast'\n    }),\n    messageContent: 'p-toast-message-content',\n    messageIcon: ({ instance }) => ({\n        'p-toast-message-icon': true,\n        [`pi ${instance.message.icon}`]: !!instance.message.icon\n    }),\n    messageText: 'p-toast-message-text',\n    summary: 'p-toast-summary',\n    detail: 'p-toast-detail',\n    closeButton: 'p-toast-close-button',\n    closeIcon: ({ instance }) => ({\n        'p-toast-close-icon': true,\n        [`pi ${instance.message.closeIcon}`]: !!instance.message.closeIcon\n    })\n};\n\n@Injectable()\nexport class ToastStyle extends BaseStyle {\n    name = 'toast';\n\n    style = style;\n\n    classes = classes;\n\n    inlineStyles = inlineStyles;\n}\n\n/**\n *\n * Toast is used to display messages in an overlay.\n *\n * [Live Demo](https://www.primeng.org/toast/)\n *\n * @module toaststyle\n *\n */\nexport enum ToastClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-toast',\n    /**\n     * Class name of the message element\n     */\n    message = 'p-toast-message',\n    /**\n     * Class name of the message content element\n     */\n    messageContent = 'p-toast-message-content',\n    /**\n     * Class name of the message icon element\n     */\n    messageIcon = 'p-toast-message-icon',\n    /**\n     * Class name of the message text element\n     */\n    messageText = 'p-toast-message-text',\n    /**\n     * Class name of the summary element\n     */\n    summary = 'p-toast-summary',\n    /**\n     * Class name of the detail element\n     */\n    detail = 'p-toast-detail',\n    /**\n     * Class name of the close button element\n     */\n    closeButton = 'p-toast-close-button',\n    /**\n     * Class name of the close icon element\n     */\n    closeIcon = 'p-toast-close-icon'\n}\n\nexport interface ToastStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport {\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    ContentChild,\n    ContentChildren,\n    effect,\n    EventEmitter,\n    inject,\n    InjectionToken,\n    input,\n    Input,\n    NgModule,\n    NgZone,\n    numberAttribute,\n    output,\n    Output,\n    QueryList,\n    signal,\n    TemplateRef,\n    ViewEncapsulation\n} from '@angular/core';\nimport { MotionEvent, MotionOptions } from '@primeuix/motion';\nimport { isEmpty, setAttribute, uuid } from '@primeuix/utils';\nimport { MessageService, PrimeTemplate, SharedModule, ToastMessageOptions } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { CheckIcon, ExclamationTriangleIcon, InfoCircleIcon, TimesCircleIcon, TimesIcon } from 'primeng/icons';\nimport { MotionModule } from 'primeng/motion';\nimport { ToastCloseEvent, ToastHeadlessTemplateContext, ToastItemCloseEvent, ToastMessageTemplateContext, ToastPassThrough, ToastPositionType } from 'primeng/types/toast';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { Subscription } from 'rxjs';\nimport { ToastStyle } from './style/toaststyle';\n\nconst TOAST_INSTANCE = new InjectionToken<Toast>('TOAST_INSTANCE');\n\n@Component({\n    selector: 'p-toastItem',\n    standalone: true,\n    imports: [CommonModule, CheckIcon, ExclamationTriangleIcon, InfoCircleIcon, TimesIcon, TimesCircleIcon, SharedModule, Bind, MotionModule],\n    template: `\n        <div\n            #container\n            [pMotion]=\"visible()\"\n            [pMotionAppear]=\"true\"\n            [pMotionName]=\"'p-toast-message'\"\n            [pMotionOptions]=\"motionOptions()\"\n            (pMotionOnBeforeEnter)=\"onBeforeEnter($event)\"\n            (pMotionOnAfterLeave)=\"onAfterLeave($event)\"\n            [attr.id]=\"message?.id\"\n            [pBind]=\"ptm('message')\"\n            [class]=\"cn(cx('message'), message?.styleClass)\"\n            (mouseenter)=\"onMouseEnter()\"\n            (mouseleave)=\"onMouseLeave()\"\n            role=\"alert\"\n            aria-live=\"assertive\"\n            aria-atomic=\"true\"\n            [attr.data-p]=\"dataP\"\n        >\n            @if (headlessTemplate) {\n                <ng-container *ngTemplateOutlet=\"headlessTemplate; context: { $implicit: message, closeFn: onCloseIconClick }\"></ng-container>\n            } @else {\n                <div [pBind]=\"ptm('messageContent')\" [class]=\"cn(cx('messageContent'), message?.contentStyleClass)\">\n                    <ng-container *ngIf=\"!template\">\n                        @if (message.icon) {\n                            <span [pBind]=\"ptm('messageIcon')\" [class]=\"cn(cx('messageIcon'), message?.icon)\"></span>\n                        } @else {\n                            @switch (message.severity) {\n                                @case ('success') {\n                                    <svg [pBind]=\"ptm('messageIcon')\" data-p-icon=\"check\" [class]=\"cx('messageIcon')\" [attr.aria-hidden]=\"true\" />\n                                }\n                                @case ('info') {\n                                    <svg [pBind]=\"ptm('messageIcon')\" data-p-icon=\"info-circle\" [class]=\"cx('messageIcon')\" [attr.aria-hidden]=\"true\" />\n                                }\n                                @case ('error') {\n                                    <svg [pBind]=\"ptm('messageIcon')\" data-p-icon=\"times-circle\" [class]=\"cx('messageIcon')\" [attr.aria-hidden]=\"true\" />\n                                }\n                                @case ('warn') {\n                                    <svg [pBind]=\"ptm('messageIcon')\" data-p-icon=\"exclamation-triangle\" [class]=\"cx('messageIcon')\" [attr.aria-hidden]=\"true\" />\n                                }\n                                @default {\n                                    <svg [pBind]=\"ptm('messageIcon')\" data-p-icon=\"info-circle\" [class]=\"cx('messageIcon')\" [attr.aria-hidden]=\"true\" />\n                                }\n                            }\n                        }\n                        <div [pBind]=\"ptm('messageText')\" [ngClass]=\"cx('messageText')\" [attr.data-p]=\"dataP\">\n                            <div [pBind]=\"ptm('summary')\" [ngClass]=\"cx('summary')\" [attr.data-p]=\"dataP\">\n                                {{ message.summary }}\n                            </div>\n                            <div [pBind]=\"ptm('detail')\" [ngClass]=\"cx('detail')\" [attr.data-p]=\"dataP\">{{ message.detail }}</div>\n                        </div>\n                    </ng-container>\n                    <ng-container *ngTemplateOutlet=\"template; context: { $implicit: message }\"></ng-container>\n                    @if (message?.closable !== false) {\n                        <div>\n                            <button\n                                [pBind]=\"ptm('closeButton')\"\n                                type=\"button\"\n                                [attr.class]=\"cx('closeButton')\"\n                                (click)=\"onCloseIconClick($event)\"\n                                (keydown.enter)=\"onCloseIconClick($event)\"\n                                [attr.aria-label]=\"closeAriaLabel\"\n                                autofocus\n                                [attr.data-p]=\"dataP\"\n                            >\n                                @if (message.closeIcon) {\n                                    <span [pBind]=\"ptm('closeIcon')\" *ngIf=\"message.closeIcon\" [class]=\"cn(cx('closeIcon'), message?.closeIcon)\"></span>\n                                } @else {\n                                    <svg [pBind]=\"ptm('closeIcon')\" data-p-icon=\"times\" [class]=\"cx('closeIcon')\" [attr.aria-hidden]=\"true\" />\n                                }\n                            </button>\n                        </div>\n                    }\n                </div>\n            }\n        </div>\n    `,\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [ToastStyle]\n})\nexport class ToastItem extends BaseComponent<ToastPassThrough> {\n    @Input() message: ToastMessageOptions | null | undefined;\n\n    @Input({ transform: numberAttribute }) index: number | null | undefined;\n\n    @Input({ transform: numberAttribute }) life: number;\n\n    @Input() template: TemplateRef<ToastMessageTemplateContext> | undefined;\n\n    @Input() headlessTemplate: TemplateRef<ToastHeadlessTemplateContext> | undefined;\n\n    @Input() showTransformOptions: string | undefined;\n\n    @Input() hideTransformOptions: string | undefined;\n\n    @Input() showTransitionOptions: string | undefined;\n\n    @Input() hideTransitionOptions: string | undefined;\n\n    motionOptions = input<MotionOptions>();\n\n    clearAll = input<any>(null);\n\n    onAnimationStart = output<HTMLElement>();\n\n    onAnimationEnd = output<HTMLElement>();\n\n    onBeforeEnter(event: MotionEvent) {\n        this.onAnimationStart.emit(event.element as HTMLElement);\n    }\n\n    onAfterLeave(event: MotionEvent) {\n        if (!this.visible() && !this.isDestroyed) {\n            this.onClose.emit({\n                index: <number>this.index,\n                message: <ToastMessageOptions>this.message\n            });\n\n            if (!this.isDestroyed) {\n                this.onAnimationEnd.emit(event.element as HTMLElement);\n            }\n        }\n    }\n\n    @Output() onClose: EventEmitter<ToastItemCloseEvent> = new EventEmitter();\n\n    _componentStyle = inject(ToastStyle);\n\n    timeout: any;\n\n    visible = signal<boolean | undefined>(undefined);\n\n    private isDestroyed = false;\n\n    private isClosing = false;\n\n    constructor(private zone: NgZone) {\n        super();\n\n        effect(() => {\n            if (this.clearAll()) {\n                this.visible.set(false);\n            }\n        });\n    }\n\n    onAfterViewInit() {\n        this.message?.sticky && this.visible.set(true);\n        this.initTimeout();\n    }\n\n    initTimeout() {\n        if (!this.message?.sticky) {\n            this.clearTimeout();\n            this.zone.runOutsideAngular(() => {\n                this.visible.set(true);\n                this.timeout = setTimeout(\n                    () => {\n                        this.visible.set(false);\n                    },\n                    this.message?.life || this.life || 3000\n                );\n            });\n        }\n    }\n\n    clearTimeout() {\n        if (this.timeout) {\n            clearTimeout(this.timeout);\n            this.timeout = null;\n        }\n    }\n\n    onMouseEnter() {\n        this.clearTimeout();\n    }\n\n    onMouseLeave() {\n        if (!this.isClosing) {\n            this.initTimeout();\n        }\n    }\n\n    onCloseIconClick = (event: Event) => {\n        this.isClosing = true;\n        this.clearTimeout();\n        this.visible.set(false);\n        event.preventDefault();\n    };\n\n    get closeAriaLabel() {\n        return this.config.translation.aria ? this.config.translation.aria.close : undefined;\n    }\n\n    onDestroy() {\n        this.isDestroyed = true;\n        this.clearTimeout();\n        this.visible.set(false);\n    }\n\n    get dataP() {\n        return this.cn({\n            [this.message?.severity as string]: this.message?.severity\n        });\n    }\n}\n\n/**\n * Toast is used to display messages in an overlay.\n * @group Components\n */\n@Component({\n    selector: 'p-toast',\n    standalone: true,\n    imports: [CommonModule, ToastItem, SharedModule],\n    template: `\n        <p-toastItem\n            *ngFor=\"let msg of messages; let i = index\"\n            [message]=\"msg\"\n            [index]=\"i\"\n            [life]=\"life\"\n            [clearAll]=\"clearAllTrigger()\"\n            (onClose)=\"onMessageClose($event)\"\n            (onAnimationEnd)=\"onAnimationEnd()\"\n            (onAnimationStart)=\"onAnimationStart()\"\n            [template]=\"template || _template\"\n            [headlessTemplate]=\"headlessTemplate || _headlessTemplate\"\n            [pt]=\"pt\"\n            [unstyled]=\"unstyled()\"\n            [motionOptions]=\"computedMotionOptions()\"\n        ></p-toastItem>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    providers: [ToastStyle, { provide: TOAST_INSTANCE, useExisting: Toast }, { provide: PARENT_INSTANCE, useExisting: Toast }],\n    host: {\n        '[class]': \"cn(cx('root'), styleClass)\",\n        '[style]': \"sx('root')\",\n        '[attr.data-p]': 'dataP'\n    },\n    hostDirectives: [Bind]\n})\nexport class Toast extends BaseComponent<ToastPassThrough> {\n    componentName = 'Toast';\n\n    $pcToast: Toast | undefined = inject(TOAST_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    onAfterViewChecked(): void {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n    /**\n     * Key of the message in case message is targeted to a specific toast component.\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     * The default time to display messages for in milliseconds.\n     * @group Props\n     */\n    @Input({ transform: numberAttribute }) life: number = 3000;\n    /**\n     * Inline class of the component.\n     * @deprecated since v20.0.0, use `class` instead.\n     * @group Props\n     */\n    @Input() styleClass: string | undefined;\n    /**\n     * Position of the toast in viewport.\n     * @group Props\n     */\n    @Input() get position(): ToastPositionType {\n        return this._position;\n    }\n\n    set position(value: ToastPositionType) {\n        this._position = value;\n        this.cd.markForCheck();\n    }\n\n    /**\n     * It does not add the new message if there is already a toast displayed with the same content\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) preventOpenDuplicates: boolean = false;\n    /**\n     * Displays only once a message with the same content.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) preventDuplicates: boolean = false;\n    /**\n     * Transform options of the show animation.\n     * @group Props\n     * @deprecated since v21.0.0. Use `motionOptions` instead.\n     */\n    @Input() showTransformOptions: string = 'translateY(100%)';\n    /**\n     * Transform options of the hide animation.\n     * @group Props\n     * @deprecated since v21.0.0. Use `motionOptions` instead.\n     */\n    @Input() hideTransformOptions: string = 'translateY(-100%)';\n    /**\n     * Transition options of the show animation.\n     * @group Props\n     * @deprecated since v21.0.0. Use `motionOptions` instead.\n     */\n    @Input() showTransitionOptions: string = '300ms ease-out';\n    /**\n     * Transition options of the hide animation.\n     * @group Props\n     * @deprecated since v21.0.0. Use `motionOptions` instead.\n     */\n    @Input() hideTransitionOptions: string = '250ms ease-in';\n    /**\n     * The motion options.\n     * @group Props\n     */\n    motionOptions = input<MotionOptions | undefined>(undefined);\n\n    computedMotionOptions = computed<MotionOptions>(() => {\n        return {\n            ...this.ptm('motion'),\n            ...this.motionOptions()\n        };\n    });\n    /**\n     * Object literal to define styles per screen size.\n     * @group Props\n     */\n    @Input() breakpoints: { [key: string]: any } | undefined;\n    /**\n     * Callback to invoke when a message is closed.\n     * @param {ToastCloseEvent} event - custom close event.\n     * @group Emits\n     */\n    @Output() onClose: EventEmitter<ToastCloseEvent> = new EventEmitter<ToastCloseEvent>();\n    /**\n     * Custom message template.\n     * @param {ToastMessageTemplateContext} context - message context.\n     * @see {@link ToastMessageTemplateContext}\n     * @group Templates\n     */\n    @ContentChild('message') template: TemplateRef<ToastMessageTemplateContext> | undefined;\n    /**\n     * Custom headless template.\n     * @param {ToastHeadlessTemplateContext} context - headless context.\n     * @see {@link ToastHeadlessTemplateContext}\n     * @group Templates\n     */\n    @ContentChild('headless') headlessTemplate: TemplateRef<ToastHeadlessTemplateContext> | undefined;\n\n    messageSubscription: Subscription | undefined;\n\n    clearSubscription: Subscription | undefined;\n\n    messages: ToastMessageOptions[] | null | undefined;\n\n    messagesArchieve: ToastMessageOptions[] | undefined;\n\n    _position: ToastPositionType = 'top-right';\n\n    messageService: MessageService = inject(MessageService);\n\n    _componentStyle = inject(ToastStyle);\n\n    styleElement: any;\n\n    id: string = uuid('pn_id_');\n\n    @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n    clearAllTrigger = signal<{} | null>(null);\n\n    constructor() {\n        super();\n    }\n\n    onInit() {\n        this.messageSubscription = this.messageService.messageObserver.subscribe((messages) => {\n            if (messages) {\n                if (Array.isArray(messages)) {\n                    const filteredMessages = messages.filter((m) => this.canAdd(m));\n                    this.add(filteredMessages);\n                } else if (this.canAdd(messages)) {\n                    this.add([messages]);\n                }\n            }\n        });\n\n        this.clearSubscription = this.messageService.clearObserver.subscribe((key) => {\n            if (key) {\n                if (this.key === key) {\n                    this.clearAll();\n                }\n            } else {\n                this.clearAll();\n            }\n\n            this.cd.markForCheck();\n        });\n    }\n\n    clearAll() {\n        // trigger signal to clear all messages\n        this.clearAllTrigger.set({});\n    }\n\n    _template: TemplateRef<ToastMessageTemplateContext> | undefined;\n\n    _headlessTemplate: TemplateRef<ToastHeadlessTemplateContext> | undefined;\n\n    onAfterContentInit() {\n        this.templates?.forEach((item) => {\n            switch (item.getType()) {\n                case 'message':\n                    this._template = item.template;\n                    break;\n                case 'headless':\n                    this._headlessTemplate = item.template;\n                    break;\n\n                default:\n                    this._template = item.template;\n                    break;\n            }\n        });\n    }\n\n    onAfterViewInit() {\n        if (this.breakpoints) {\n            this.createStyle();\n        }\n    }\n\n    add(messages: ToastMessageOptions[]): void {\n        this.messages = this.messages ? [...this.messages, ...messages] : [...messages];\n\n        if (this.preventDuplicates) {\n            this.messagesArchieve = this.messagesArchieve ? [...this.messagesArchieve, ...messages] : [...messages];\n        }\n\n        this.cd.markForCheck();\n    }\n\n    canAdd(message: ToastMessageOptions): boolean {\n        let allow = this.key === message.key;\n\n        if (allow && this.preventOpenDuplicates) {\n            allow = !this.containsMessage(this.messages!, message);\n        }\n\n        if (allow && this.preventDuplicates) {\n            allow = !this.containsMessage(this.messagesArchieve!, message);\n        }\n\n        return allow;\n    }\n\n    containsMessage(collection: ToastMessageOptions[], message: ToastMessageOptions): boolean {\n        if (!collection) {\n            return false;\n        }\n\n        return (\n            collection.find((m) => {\n                return m.summary === message.summary && m.detail == message.detail && m.severity === message.severity;\n            }) != null\n        );\n    }\n\n    onMessageClose(event: ToastItemCloseEvent) {\n        this.messages?.splice(event.index, 1);\n\n        this.onClose.emit({\n            message: event.message\n        });\n        this.onAnimationEnd();\n        this.cd.detectChanges();\n    }\n\n    onAnimationStart() {\n        this.renderer.setAttribute(this.el?.nativeElement, this.id, '');\n        if (this.autoZIndex && this.el?.nativeElement.style.zIndex === '') {\n            ZIndexUtils.set('modal', this.el?.nativeElement, this.baseZIndex || this.config.zIndex.modal);\n        }\n    }\n\n    onAnimationEnd() {\n        if (this.autoZIndex && isEmpty(this.messages)) {\n            ZIndexUtils.clear(this.el?.nativeElement);\n        }\n    }\n\n    createStyle() {\n        if (!this.styleElement) {\n            this.styleElement = this.renderer.createElement('style');\n            this.styleElement.type = 'text/css';\n            setAttribute(this.styleElement, 'nonce', this.config?.csp()?.nonce);\n            this.renderer.appendChild(this.document.head, this.styleElement);\n            let innerHTML = '';\n            for (let breakpoint in this.breakpoints) {\n                let breakpointStyle = '';\n                for (let styleProp in this.breakpoints[breakpoint]) {\n                    breakpointStyle += styleProp + ':' + this.breakpoints[breakpoint][styleProp] + ' !important;';\n                }\n                innerHTML += `\n                    @media screen and (max-width: ${breakpoint}) {\n                        .p-toast[${this.id}] {\n                           ${breakpointStyle}\n                        }\n                    }\n                `;\n            }\n\n            this.renderer.setProperty(this.styleElement, 'innerHTML', innerHTML);\n            setAttribute(this.styleElement, 'nonce', this.config?.csp()?.nonce);\n        }\n    }\n\n    destroyStyle() {\n        if (this.styleElement) {\n            this.renderer.removeChild(this.document.head, this.styleElement);\n            this.styleElement = null;\n        }\n    }\n\n    onDestroy() {\n        if (this.messageSubscription) {\n            this.messageSubscription.unsubscribe();\n        }\n\n        if (this.el && this.autoZIndex) {\n            ZIndexUtils.clear(this.el.nativeElement);\n        }\n\n        if (this.clearSubscription) {\n            this.clearSubscription.unsubscribe();\n        }\n\n        this.destroyStyle();\n    }\n\n    get dataP() {\n        return this.cn({\n            [this.position]: this.position\n        });\n    }\n}\n\n@NgModule({\n    imports: [Toast, SharedModule],\n    exports: [Toast, SharedModule]\n})\nexport class ToastModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}