{"version":3,"file":"primeng-toast.mjs","sources":["../../src/app/components/toast/toast.ts","../../src/app/components/toast/primeng-toast.ts"],"sourcesContent":["import { AnimationEvent, animate, animateChild, query, state, style, transition, trigger } from '@angular/animations';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport {\n    AfterContentInit,\n    AfterViewInit,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ContentChildren,\n    ElementRef,\n    EventEmitter,\n    Inject,\n    Input,\n    NgModule,\n    NgZone,\n    OnDestroy,\n    OnInit,\n    Output,\n    QueryList,\n    Renderer2,\n    TemplateRef,\n    ViewChild,\n    ViewEncapsulation\n} from '@angular/core';\nimport { Message, MessageService, PrimeNGConfig, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { CheckIcon } from 'primeng/icons/check';\nimport { ExclamationTriangleIcon } from 'primeng/icons/exclamationtriangle';\nimport { InfoCircleIcon } from 'primeng/icons/infocircle';\nimport { TimesIcon } from 'primeng/icons/times';\nimport { TimesCircleIcon } from 'primeng/icons/timescircle';\nimport { RippleModule } from 'primeng/ripple';\nimport { ObjectUtils, UniqueComponentId, ZIndexUtils } from 'primeng/utils';\nimport { Subscription } from 'rxjs';\nimport { ToastCloseEvent, ToastItemCloseEvent } from './toast.interface';\n\n@Component({\n    selector: 'p-toastItem',\n    template: `\n        <div\n            #container\n            [attr.id]=\"message?.id\"\n            [class]=\"message?.styleClass\"\n            [ngClass]=\"['p-toast-message-' + message?.severity, 'p-toast-message']\"\n            [@messageState]=\"{ value: 'visible', params: { showTransformParams: showTransformOptions, hideTransformParams: hideTransformOptions, showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions } }\"\n            (mouseenter)=\"onMouseEnter()\"\n            (mouseleave)=\"onMouseLeave()\"\n        >\n            <div class=\"p-toast-message-content\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" [ngClass]=\"message?.contentStyleClass\">\n                <ng-container *ngIf=\"!template\">\n                    <span *ngIf=\"message.icon\" [class]=\"'p-toast-message-icon pi ' + message.icon\"></span>\n                    <span class=\"p-toast-message-icon\" *ngIf=\"!message.icon\">\n                        <ng-container>\n                            <CheckIcon *ngIf=\"message.severity === 'success'\" />\n                            <InfoCircleIcon *ngIf=\"message.severity === 'info'\" />\n                            <TimesCircleIcon *ngIf=\"message.severity === 'error'\" />\n                            <ExclamationTriangleIcon *ngIf=\"message.severity === 'warn'\" />\n                        </ng-container>\n                    </span>\n                    <div class=\"p-toast-message-text\">\n                        <div class=\"p-toast-summary\">{{ message.summary }}</div>\n                        <div class=\"p-toast-detail\">{{ message.detail }}</div>\n                    </div>\n                </ng-container>\n                <ng-container *ngTemplateOutlet=\"template; context: { $implicit: message }\"></ng-container>\n                <button type=\"button\" class=\"p-toast-icon-close p-link\" (click)=\"onCloseIconClick($event)\" (keydown.enter)=\"onCloseIconClick($event)\" *ngIf=\"message?.closable !== false\" pRipple>\n                    <span *ngIf=\"message.closeIcon\" [class]=\"'p-toast-message-icon pi ' + message.closeIcon\"></span>\n                    <TimesIcon *ngIf=\"!message.closeIcon\" [styleClass]=\"'p-toast-icon-close-icon'\" />\n                </button>\n            </div>\n        </div>\n    `,\n    animations: [\n        trigger('messageState', [\n            state(\n                'visible',\n                style({\n                    transform: 'translateY(0)',\n                    opacity: 1\n                })\n            ),\n            transition('void => *', [style({ transform: '{{showTransformParams}}', opacity: 0 }), animate('{{showTransitionParams}}')]),\n            transition('* => void', [\n                animate(\n                    '{{hideTransitionParams}}',\n                    style({\n                        height: 0,\n                        opacity: 0,\n                        transform: '{{hideTransformParams}}'\n                    })\n                )\n            ])\n        ])\n    ],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        class: 'p-element'\n    }\n})\nexport class ToastItem implements AfterViewInit, OnDestroy {\n    @Input() message: Message | null | undefined;\n\n    @Input() index: number | null | undefined;\n\n    @Input() template: TemplateRef<any> | 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    @Output() onClose: EventEmitter<ToastItemCloseEvent> = new EventEmitter();\n\n    @ViewChild('container') containerViewChild: ElementRef | undefined;\n\n    timeout: any;\n\n    constructor(private zone: NgZone) {}\n\n    ngAfterViewInit() {\n        this.initTimeout();\n    }\n\n    initTimeout() {\n        if (!this.message?.sticky) {\n            this.zone.runOutsideAngular(() => {\n                this.timeout = setTimeout(() => {\n                    this.onClose.emit({\n                        index: <number>this.index,\n                        message: <Message>this.message\n                    });\n                }, this.message?.life || 3000);\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        this.initTimeout();\n    }\n\n    onCloseIconClick(event: Event) {\n        this.clearTimeout();\n\n        this.onClose.emit({\n            index: <number>this.index,\n            message: <Message>this.message\n        });\n\n        event.preventDefault();\n    }\n\n    ngOnDestroy() {\n        this.clearTimeout();\n    }\n}\n/**\n * Toast is used to display messages in an overlay.\n * @group Components\n */\n@Component({\n    selector: 'p-toast',\n    template: `\n        <div #container [ngClass]=\"'p-toast p-component p-toast-' + position\" [ngStyle]=\"style\" [class]=\"styleClass\">\n            <p-toastItem\n                *ngFor=\"let msg of messages; let i = index\"\n                [message]=\"msg\"\n                [index]=\"i\"\n                (onClose)=\"onMessageClose($event)\"\n                [template]=\"template\"\n                @toastAnimation\n                (@toastAnimation.start)=\"onAnimationStart($event)\"\n                (@toastAnimation.done)=\"onAnimationEnd($event)\"\n                [showTransformOptions]=\"showTransformOptions\"\n                [hideTransformOptions]=\"hideTransformOptions\"\n                [showTransitionOptions]=\"showTransitionOptions\"\n                [hideTransitionOptions]=\"hideTransitionOptions\"\n            ></p-toastItem>\n        </div>\n    `,\n    animations: [trigger('toastAnimation', [transition(':enter, :leave', [query('@*', animateChild())])])],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    styleUrls: ['./toast.css'],\n    host: {\n        class: 'p-element'\n    }\n})\nexport class Toast implements OnInit, AfterContentInit, OnDestroy {\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() autoZIndex: boolean = true;\n    /**\n     * Base zIndex value to use in layering.\n     * @group Props\n     */\n    @Input() baseZIndex: number = 0;\n    /**\n     * Inline style of the component.\n     * @group Props\n     */\n    @Input() style: { [klass: string]: any } | null | undefined;\n    /**\n     * Inline class of the component.\n     * @group Props\n     */\n    @Input() styleClass: string | undefined;\n    /**\n     * Position of the toast in viewport.\n     * @group Props\n     */\n    @Input() position: 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right' | 'center' = 'top-right';\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() preventOpenDuplicates: boolean = false;\n    /**\n     * Displays only once a message with the same content.\n     * @group Props\n     */\n    @Input() preventDuplicates: boolean = false;\n    /**\n     * Transform options of the show animation.\n     * @group Props\n     */\n    @Input() showTransformOptions: string = 'translateY(100%)';\n    /**\n     * Transform options of the hide animation.\n     * @group Props\n     */\n    @Input() hideTransformOptions: string = 'translateY(-100%)';\n    /**\n     * Transition options of the show animation.\n     * @group Props\n     */\n    @Input() showTransitionOptions: string = '300ms ease-out';\n    /**\n     * Transition options of the hide animation.\n     * @group Props\n     */\n    @Input() hideTransitionOptions: string = '250ms ease-in';\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    @ViewChild('container') containerViewChild: ElementRef | undefined;\n\n    @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n    messageSubscription: Subscription | undefined;\n\n    clearSubscription: Subscription | undefined;\n\n    messages: Message[] | null | undefined;\n\n    messagesArchieve: Message[] | undefined;\n\n    template: TemplateRef<any> | undefined;\n\n    constructor(@Inject(DOCUMENT) private document: Document, private renderer: Renderer2, public messageService: MessageService, private cd: ChangeDetectorRef, public config: PrimeNGConfig) {}\n\n    styleElement: any;\n\n    id: string = UniqueComponentId();\n\n    ngOnInit() {\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.messages = null;\n                }\n            } else {\n                this.messages = null;\n            }\n\n            this.cd.markForCheck();\n        });\n    }\n\n    ngAfterViewInit() {\n        if (this.breakpoints) {\n            this.createStyle();\n        }\n    }\n\n    add(messages: Message[]): 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: Message): 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: Message[], message: Message): 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    ngAfterContentInit() {\n        this.templates?.forEach((item) => {\n            switch (item.getType()) {\n                case 'message':\n                    this.template = item.template;\n                    break;\n\n                default:\n                    this.template = item.template;\n                    break;\n            }\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\n        this.cd.detectChanges();\n    }\n\n    onAnimationStart(event: AnimationEvent) {\n        if (event.fromState === 'void') {\n            this.renderer.setAttribute(this.containerViewChild?.nativeElement, this.id, '');\n            if (this.autoZIndex && this.containerViewChild?.nativeElement.style.zIndex === '') {\n                ZIndexUtils.set('modal', this.containerViewChild?.nativeElement, this.baseZIndex || this.config.zIndex.modal);\n            }\n        }\n    }\n\n    onAnimationEnd(event: AnimationEvent) {\n        if (event.toState === 'void') {\n            if (this.autoZIndex && ObjectUtils.isEmpty(this.messages)) {\n                ZIndexUtils.clear(this.containerViewChild?.nativeElement);\n            }\n        }\n    }\n\n    createStyle() {\n        if (!this.styleElement) {\n            this.styleElement = this.renderer.createElement('style');\n            this.styleElement.type = 'text/css';\n            this.renderer.appendChild(this.document.head, this.styleElement);\n            let innerHTML = '';\n            for (let breakpoint in this.breakpoints) {\n                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        }\n    }\n\n    destroyStyle() {\n        if (this.styleElement) {\n            this.renderer.removeChild(this.document.head, this.styleElement);\n            this.styleElement = null;\n        }\n    }\n\n    ngOnDestroy() {\n        if (this.messageSubscription) {\n            this.messageSubscription.unsubscribe();\n        }\n\n        if (this.containerViewChild && this.autoZIndex) {\n            ZIndexUtils.clear(this.containerViewChild.nativeElement);\n        }\n\n        if (this.clearSubscription) {\n            this.clearSubscription.unsubscribe();\n        }\n\n        this.destroyStyle();\n    }\n}\n\n@NgModule({\n    imports: [CommonModule, RippleModule, CheckIcon, InfoCircleIcon, TimesCircleIcon, ExclamationTriangleIcon, TimesIcon],\n    exports: [Toast, SharedModule],\n    declarations: [Toast, ToastItem]\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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"}