primeng
Version:
PrimeNG is an open source UI library for Angular featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeB
1 lines • 32.4 kB
Source Map (JSON)
{"version":3,"file":"primeng-messages.mjs","sources":["../../src/messages/style/messagesstyle.ts","../../src/messages/messages.ts","../../src/messages/primeng-messages.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-messages {\n display: flex;\n flex-direction: column;\n position: relative;\n gap: ${dt('message.content.gap')};\n}\n\n.p-message {\n border-radius: ${dt('message.border.radius')};\n outline-width: ${dt('message.border.width')};\n outline-style: solid;\n}\n\n.p-message-content {\n display: flex;\n align-items: center;\n padding: ${dt('message.content.padding')};\n height: 100%;\n}\n\n.p-message .p-message-content:has(:nth-child(1)) {\n gap: ${dt('message.content.gap')};\n}\n\n.p-message-icon {\n flex-shrink: 0;\n}\n\n.p-message-close-button {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n margin: 0 0 0 auto;\n overflow: hidden;\n position: relative;\n width: ${dt('message.close.button.width')};\n height: ${dt('message.close.button.height')};\n border-radius: ${dt('message.close.button.border.radius')};\n background: transparent;\n transition: background ${dt('message.transition.duration')}, color ${dt('message.transition.duration')}, outline-color ${dt('message.transition.duration')}, box-shadow ${dt('message.transition.duration')}, opacity 0.3s;\n outline-color: transparent;\n color: inherit;\n padding: 0;\n border: none;\n cursor: pointer;\n user-select: none;\n}\n\n.p-message-close-icon {\n font-size: ${dt('message.close.icon.size')};\n width: ${dt('message.close.icon.size')};\n height: ${dt('message.close.icon.size')};\n}\n\n.p-message-close-button:focus-visible {\n outline-width: ${dt('message.close.button.focus.ring.width')};\n outline-style: ${dt('message.close.button.focus.ring.style')};\n outline-offset: ${dt('message.close.button.focus.ring.offset')};\n}\n\n.p-message-info {\n background: ${dt('message.info.background')};\n outline-color: ${dt('message.info.border.color')};\n color: ${dt('message.info.color')};\n box-shadow: ${dt('message.info.shadow')};\n}\n\n.p-message-info .p-message-close-button:focus-visible {\n outline-color: ${dt('message.info.close.button.focus.ring.color')};\n box-shadow: ${dt('message.info.close.button.focus.ring.shadow')};\n}\n\n.p-message-info .p-message-close-button:hover {\n background: ${dt('message.info.close.button.hover.background')};\n}\n\n.p-message-success {\n background: ${dt('message.success.background')};\n outline-color: ${dt('message.success.border.color')};\n color: ${dt('message.success.color')};\n box-shadow: ${dt('message.success.shadow')};\n}\n\n.p-message-success .p-message-close-button:focus-visible {\n outline-color: ${dt('message.success.close.button.focus.ring.color')};\n box-shadow: ${dt('message.success.close.button.focus.ring.shadow')};\n}\n\n.p-message-success .p-message-close-button:hover {\n background: ${dt('message.success.close.button.hover.background')};\n}\n\n.p-message-warn {\n background: ${dt('message.warn.background')};\n outline-color: ${dt('message.warn.border.color')};\n color: ${dt('message.warn.color')};\n box-shadow: ${dt('message.warn.shadow')};\n}\n\n.p-message-warn .p-message-close-button:focus-visible {\n outline-color: ${dt('message.warn.close.button.focus.ring.color')};\n box-shadow: ${dt('message.warn.close.button.focus.ring.shadow')};\n}\n\n.p-message-warn .p-message-close-button:hover {\n background: ${dt('message.warn.close.button.hover.background')};\n}\n\n.p-message-error {\n background: ${dt('message.error.background')};\n outline-color: ${dt('message.error.border.color')};\n color: ${dt('message.error.color')};\n box-shadow: ${dt('message.error.shadow')};\n}\n\n.p-message-error .p-message-close-button:focus-visible {\n outline-color: ${dt('message.error.close.button.focus.ring.color')};\n box-shadow: ${dt('message.error.close.button.focus.ring.shadow')};\n}\n\n.p-message-error .p-message-close-button:hover {\n background: ${dt('message.error.close.button.hover.background')};\n}\n\n.p-message-secondary {\n background: ${dt('message.secondary.background')};\n outline-color: ${dt('message.secondary.border.color')};\n color: ${dt('message.secondary.color')};\n box-shadow: ${dt('message.secondary.shadow')};\n}\n\n.p-message-secondary .p-message-close-button:focus-visible {\n outline-color: ${dt('message.secondary.close.button.focus.ring.color')};\n box-shadow: ${dt('message.secondary.close.button.focus.ring.shadow')};\n}\n\n.p-message-secondary .p-message-close-button:hover {\n background: ${dt('message.secondary.close.button.hover.background')};\n}\n\n.p-message-contrast {\n background: ${dt('message.contrast.background')};\n outline-color: ${dt('message.contrast.border.color')};\n color: ${dt('message.contrast.color')};\n box-shadow: ${dt('message.contrast.shadow')};\n}\n\n.p-message-contrast .p-message-close-button:focus-visible {\n outline-color: ${dt('message.contrast.close.button.focus.ring.color')};\n box-shadow: ${dt('message.contrast.close.button.focus.ring.shadow')};\n}\n\n.p-message-contrast .p-message-close-button:hover {\n background: ${dt('message.contrast.close.button.hover.background')};\n}\n\n.p-message-text {\n font-size: ${dt('message.text.font.size')};\n font-weight: ${dt('message.text.font.weight')};\n}\n\n.p-message-icon {\n font-size: ${dt('message.icon.size')};\n width: ${dt('message.icon.size')};\n height: ${dt('message.icon.size')};\n}\n\n.p-message-enter-from {\n opacity: 0;\n}\n\n.p-message-enter-active {\n transition: opacity 0.3s;\n}\n\n.p-message.p-message-leave-from {\n max-height: 1000px;\n}\n\n.p-message.p-message-leave-to {\n max-height: 0;\n opacity: 0;\n margin: 0;\n}\n\n.p-message-leave-active {\n overflow: hidden;\n transition: max-height 0.45s cubic-bezier(0, 1, 0, 1), opacity 0.3s, margin 0.3s;\n}\n\n.p-message-leave-active .p-message-close-button {\n opacity: 0;\n}\n/* For PrimeNG */\n.p-messages .p-message.ng-animating {\n overflow: hidden;\n}\n\n.p-message-content > p-button[data-pc-section=\"closebutton\"] {\n margin-left: auto;\n}\n`;\n\nconst classes = {\n root: ({ instance }) => ({\n 'p-message': true\n }),\n container: 'p-messages p-component',\n content: 'p-message-content',\n icon: 'p-message-icon',\n text: 'p-message-text',\n closeButton: 'p-message-close-button',\n closeIcon: 'p-message-close-icon'\n};\n\n@Injectable()\nexport class MessagesStyle extends BaseStyle {\n name = 'message';\n\n theme = theme;\n\n classes = classes;\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { AfterContentInit, booleanAttribute, ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, inject, Input, NgModule, OnDestroy, Optional, Output, QueryList, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { MessageService, PrimeTemplate, SharedModule, ToastMessageOptions } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ButtonModule } from 'primeng/button';\nimport { CheckIcon, ExclamationTriangleIcon, InfoCircleIcon, TimesCircleIcon, TimesIcon } from 'primeng/icons';\nimport { Ripple } from 'primeng/ripple';\nimport { Subscription, timer } from 'rxjs';\nimport { MessagesStyle } from './style/messagesstyle';\n\n/**\n * Messages is used to display alerts inline.\n * @group Components\n * @deprecated Use Message component instead.\n */\n@Component({\n selector: 'p-messages',\n standalone: false,\n template: `\n <div [ngClass]=\"cx('container')\" role=\"alert\" [ngStyle]=\"style\" [class]=\"styleClass\" [attr.aria-atomic]=\"true\" [attr.aria-live]=\"'assertive'\" [attr.data-pc-name]=\"'message'\">\n @if (contentTemplate) {\n <div [ngClass]=\"'p-message p-message-' + severity\" role=\"alert\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </div>\n } @else {\n <div\n *ngFor=\"let msg of messages; let i = index\"\n [ngClass]=\"cx('root')\"\n [class]=\"'p-message-' + msg.severity\"\n role=\"alert\"\n [@messageAnimation]=\"{\n value: 'visible',\n params: {\n showTransitionParams: showTransitionOptions,\n hideTransitionParams: hideTransitionOptions\n }\n }\"\n >\n <div [ngClass]=\"cx('content')\" [attr.data-pc-section]=\"'wrapper'\" [attr.id]=\"msg.id || null\">\n @if (msg.icon) {\n <span [ngClass]=\"cx('icon')\" [class]=\"'pi ' + msg.icon\" [attr.data-pc-section]=\"'icon'\"> </span>\n } @else {\n <span [ngClass]=\"cx('icon')\">\n @switch (msg.severity) {\n @case ('success') {\n <CheckIcon [attr.data-pc-section]=\"'icon'\" />\n }\n @case ('error') {\n <TimesCircleIcon [attr.data-pc-section]=\"'icon'\" />\n }\n @case ('danger') {\n <TimesCircleIcon [attr.data-pc-section]=\"'icon'\" />\n }\n @case ('warn') {\n <ExclamationTriangleIcon [attr.data-pc-section]=\"'icon'\" />\n }\n @default {\n <InfoCircleIcon [attr.data-pc-section]=\"'icon'\" />\n }\n }\n </span>\n }\n @if (escape) {\n @if (msg.text) {\n <span [ngClass]=\"cx('text')\">{{ msg.text }}</span>\n }\n @if (msg.summary) {\n <span [ngClass]=\"cx('text', 'p-message-summary')\" [attr.data-pc-section]=\"'summary'\">\n {{ msg.summary }}\n </span>\n }\n @if (msg.detail) {\n <span [ngClass]=\"cx('text', 'p-message-detail')\" [attr.data-pc-section]=\"'detail'\">\n {{ msg.detail }}\n </span>\n }\n } @else {\n <span *ngIf=\"msg.summary\" class=\"p-message-summary\" [innerHTML]=\"msg.summary\" [attr.data-pc-section]=\"'summary'\"></span>\n <span *ngIf=\"msg.detail\" class=\"p-message-detail\" [innerHTML]=\"msg.detail\" [attr.data-pc-section]=\"'detail'\"></span>\n }\n <p-button *ngIf=\"closable && (msg.closable ?? true)\" rounded text severity=\"secondary\" [styleClass]=\"cx('closeButton')\" (onClick)=\"removeMessage(i)\" [ariaLabel]=\"closeAriaLabel\" [attr.data-pc-section]=\"'closebutton'\">\n <TimesIcon [ngClass]=\"cx('closeIcon')\" [attr.data-pc-section]=\"'closeicon'\" />\n </p-button>\n </div>\n </div>\n }\n </div>\n `,\n animations: [\n trigger('messageAnimation', [\n transition(':enter', [style({ opacity: 0, transform: 'translateY(-25%)' }), animate('{{showTransitionParams}}')]),\n transition(':leave', [\n animate(\n '{{hideTransitionParams}}',\n style({\n height: 0,\n marginTop: 0,\n marginBottom: 0,\n marginLeft: 0,\n marginRight: 0,\n opacity: 0\n })\n )\n ])\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [MessagesStyle]\n})\nexport class Messages extends BaseComponent implements AfterContentInit, OnDestroy {\n /**\n * An array of messages to display.\n * @group Props\n */\n @Input() set value(messages: ToastMessageOptions[]) {\n this.messages = messages;\n this.startMessageLifes(this.messages);\n }\n /**\n * Defines if message box can be closed by the click icon.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) closable: boolean = true;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Whether displaying services messages are enabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) enableService: boolean = true;\n /**\n * Id to match the key of the message to enable scoping in service based messaging.\n * @group Props\n */\n @Input() key: string | undefined;\n /**\n * Whether displaying messages would be escaped or not.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) escape: boolean = true;\n /**\n * Severity level of the message.\n * @group Props\n */\n @Input() severity: string | undefined;\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 = '200ms cubic-bezier(0.86, 0, 0.07, 1)';\n /**\n * This function is executed when the value changes.\n * @param {ToastMessageOptions[]} value - messages value.\n * @group Emits\n */\n @Output() valueChange: EventEmitter<ToastMessageOptions[]> = new EventEmitter<ToastMessageOptions[]>();\n /**\n * This function is executed when a message is closed.\n * @param {ToastMessageOptions} value - Closed message.\n * @group Emits\n */\n @Output() onClose: EventEmitter<ToastMessageOptions> = new EventEmitter<ToastMessageOptions>();\n\n messages: ToastMessageOptions[] | null | undefined;\n\n messageSubscription: Subscription | undefined;\n\n clearSubscription: Subscription | undefined;\n\n timerSubscriptions: Subscription[] = [];\n\n contentTemplate: TemplateRef<any> | undefined;\n\n _componentStyle = inject(MessagesStyle);\n\n constructor(@Optional() public messageService: MessageService) {\n super();\n console.log('Messages component is deprecated as of v18. Use Message component instead.');\n }\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\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: ToastMessageOptions | ToastMessageOptions[]) => {\n if (messages) {\n if (!Array.isArray(messages)) {\n messages = [messages];\n }\n\n const filteredMessages = messages.filter((m) => this.key === m.key);\n this.messages = this.messages ? [...this.messages, ...filteredMessages] : [...filteredMessages];\n this.startMessageLifes(filteredMessages);\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.messages = null;\n }\n } else {\n this.messages = 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.messages && this.messages.length > 0);\n }\n\n return false;\n }\n\n clear() {\n this.messages = [];\n this.valueChange.emit(this.messages);\n }\n\n removeMessage(i: number) {\n const removedMessage = this.messages[i];\n this.messages = this.messages?.filter((msg, index) => index !== i);\n removedMessage && this.onClose.emit(removedMessage);\n this.valueChange.emit(this.messages);\n }\n\n get icon(): string | null {\n const severity = this.severity || (this.hasMessages() ? this.messages![0].severity : null);\n\n if (this.hasMessages()) {\n switch (severity) {\n case 'success':\n return 'pi-check';\n\n case 'info':\n return 'pi-info-circle';\n\n case 'error':\n case 'danger':\n return 'pi-times';\n\n case 'warn':\n return 'pi-exclamation-triangle';\n\n default:\n return 'pi-info-circle';\n }\n }\n\n return null;\n }\n get closeAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.close : undefined;\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 this.timerSubscriptions?.forEach((subscription) => subscription.unsubscribe());\n super.ngOnDestroy();\n }\n\n private startMessageLifes(messages: ToastMessageOptions[]): void {\n messages?.forEach((message) => message.life && this.startMessageLife(message));\n }\n\n private startMessageLife(message: ToastMessageOptions): void {\n const timerSubsctiption = timer(message.life!).subscribe(() => {\n this.messages = this.messages?.filter((msgEl) => msgEl !== message);\n this.timerSubscriptions = this.timerSubscriptions?.filter((timerEl) => timerEl !== timerSubsctiption);\n this.valueChange.emit(this.messages);\n this.cd.markForCheck();\n });\n this.timerSubscriptions.push(timerSubsctiption);\n }\n}\n\n@NgModule({\n imports: [CommonModule, Ripple, CheckIcon, InfoCircleIcon, TimesCircleIcon, ExclamationTriangleIcon, TimesIcon, ButtonModule, SharedModule],\n exports: [Messages, SharedModule],\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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"}