{"version":3,"file":"primeng-messages.mjs","sources":["../../src/app/components/messages/messages.ts","../../src/app/components/messages/primeng-messages.ts"],"sourcesContent":["import {NgModule,Component,OnDestroy,Input,Output,EventEmitter,AfterContentInit,Optional,ElementRef,ChangeDetectionStrategy,ContentChildren,QueryList,TemplateRef, ViewEncapsulation, ChangeDetectorRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {trigger,state,style,transition,animate} from '@angular/animations';\nimport {Message,PrimeTemplate,MessageService} from 'primeng/api';\nimport {Subscription} from 'rxjs';\nimport {RippleModule} from 'primeng/ripple';\n\n@Component({\n    selector: 'p-messages',\n    template: `\n        <div class=\"p-messages p-component\" role=\"alert\" [ngStyle]=\"style\" [class]=\"styleClass\">\n            <ng-container *ngIf=\"!contentTemplate; else staticMessage\">\n                <div *ngFor=\"let msg of value; let i=index\" [ngClass]=\"'p-message p-message-' + msg.severity\" role=\"alert\"\n                    [@messageAnimation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\">\n                    <div class=\"p-message-wrapper\">\n                       <span [class]=\"'p-message-icon pi' + (msg.icon ? ' ' + msg.icon : '')\" [ngClass]=\"{'pi-info-circle': msg.severity === 'info',\n                            'pi-check': msg.severity === 'success',\n                            'pi-exclamation-triangle': msg.severity === 'warn',\n                            'pi-times-circle': msg.severity === 'error'}\"></span>\n                        <ng-container *ngIf=\"!escape; else escapeOut\">\n                            <span *ngIf=\"msg.summary\" class=\"p-message-summary\" [innerHTML]=\"msg.summary\"></span>\n                            <span *ngIf=\"msg.detail\" class=\"p-message-detail\" [innerHTML]=\"msg.detail\"></span>\n                        </ng-container>\n                        <ng-template #escapeOut>\n                            <span *ngIf=\"msg.summary\" class=\"p-message-summary\">{{msg.summary}}</span>\n                            <span *ngIf=\"msg.detail\" class=\"p-message-detail\">{{msg.detail}}</span>\n                        </ng-template>\n                        <button class=\"p-message-close p-link\" (click)=\"removeMessage(i)\" *ngIf=\"closable\" type=\"button\" pRipple>\n                            <i class=\"p-message-close-icon pi pi-times\"></i>\n                        </button>\n                    </div>\n                </div>\n            </ng-container>\n            <ng-template #staticMessage>\n                <div [ngClass]=\"'p-message p-message-' + severity\" role=\"alert\">\n                    <div class=\"p-message-wrapper\">\n                        <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n                    </div>\n                </div>\n            </ng-template>\n            </div>\n    `,\n    animations: [\n        trigger('messageAnimation', [\n            transition(':enter', [\n                style({opacity: 0, transform: 'translateY(-25%)'}),\n                animate('{{showTransitionParams}}')\n            ]),\n            transition(':leave', [\n                animate('{{hideTransitionParams}}', style({ height: 0, marginTop: 0, marginBottom: 0, marginLeft: 0, marginRight: 0, overflow: 'hidden', opacity: 0 }))\n            ])\n        ])\n    ],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    styleUrls: ['./messages.css'],\n    host: {\n        'class': 'p-element'\n    }\n})\nexport class Messages implements AfterContentInit, OnDestroy {\n\n    @Input() value: Message[];\n\n    @Input() closable: boolean = true;\n\n    @Input() style: any;\n\n    @Input() styleClass: string;\n\n    @Input() enableService: boolean = true;\n\n    @Input() key: string;\n\n    @Input() escape: boolean = true;\n\n    @Input() severity: string;\n\n    @Input() showTransitionOptions: string = '300ms ease-out';\n\n    @Input() hideTransitionOptions: string = '200ms cubic-bezier(0.86, 0, 0.07, 1)';\n\n    @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n    @Output() valueChange: EventEmitter<Message[]> = new EventEmitter<Message[]>();\n\n    messageSubscription: Subscription;\n\n    clearSubscription: Subscription;\n\n    contentTemplate: TemplateRef<any>;\n\n    constructor(@Optional() public messageService: MessageService, public el: ElementRef, public cd: ChangeDetectorRef) {}\n\n    ngAfterContentInit() {\n        this.templates.forEach((item) => {\n            switch(item.getType()) {\n                case 'content':\n                    this.contentTemplate = item.template;\n                break;\n\n                default:\n                    this.contentTemplate = item.template;\n                break;\n            }\n        });\n\n        if (this.messageService && this.enableService && !this.contentTemplate) {\n            this.messageSubscription = this.messageService.messageObserver.subscribe((messages: any) => {\n                if (messages) {\n                    if (messages instanceof Array) {\n                        let filteredMessages = messages.filter(m => this.key === m.key);\n                        this.value = this.value ? [...this.value, ...filteredMessages] : [...filteredMessages];\n                    }\n                    else if (this.key === messages.key) {\n                        this.value = this.value ? [...this.value, ...[messages]] : [messages];\n                    }\n\n                    this.cd.markForCheck();\n                }\n            });\n\n            this.clearSubscription = this.messageService.clearObserver.subscribe(key => {\n                if (key) {\n                    if (this.key === key) {\n                        this.value = null;\n                    }\n                }\n                else {\n                    this.value = null;\n                }\n\n                this.cd.markForCheck();\n            });\n        }\n    }\n\n    hasMessages() {\n        let parentEl = this.el.nativeElement.parentElement;\n        if (parentEl && parentEl.offsetParent) {\n            return this.contentTemplate != null || this.value && this.value.length > 0;\n        }\n\n        return false;\n    }\n\n    clear() {\n        this.value = [];\n        this.valueChange.emit(this.value);\n    }\n\n    removeMessage(i: number) {\n        this.value = this.value.filter((msg, index) => index !== i);\n        this.valueChange.emit(this.value);\n    }\n\n    get icon(): string {\n        const severity = this.severity || (this.hasMessages() ? this.value[0].severity : null);\n\n        if (this.hasMessages()) {\n            switch(severity) {\n                case 'success':\n                    return 'pi-check';\n                break;\n\n                case 'info':\n                    return 'pi-info-circle';\n                break;\n\n                case 'error':\n                    return 'pi-times';\n                break;\n\n                case 'warn':\n                    return 'pi-exclamation-triangle';\n                break;\n\n                default:\n                    return 'pi-info-circle';\n                break;\n            }\n        }\n\n        return null;\n    }\n\n    ngOnDestroy() {\n        if (this.messageSubscription) {\n            this.messageSubscription.unsubscribe();\n        }\n\n        if (this.clearSubscription) {\n            this.clearSubscription.unsubscribe();\n        }\n    }\n}\n\n@NgModule({\n    imports: [CommonModule,RippleModule],\n    exports: [Messages],\n    declarations: [Messages]\n})\nexport class MessagesModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}