UNPKG

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 18 kB
{"version":3,"file":"primeng-message.mjs","sources":["../../src/message/style/messagestyle.ts","../../src/message/message.ts","../../src/message/primeng-message.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/message';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: ({ instance }) => ['p-message p-component p-message-' + instance.severity, 'p-message-' + instance.variant, { 'p-message-sm': instance.size === 'small', 'p-message-lg': instance.size === 'large' }],\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 MessageStyle extends BaseStyle {\n name = 'message';\n\n theme = style;\n\n classes = classes;\n}\n\n/**\n *\n * Message groups a collection of contents in tabs.\n *\n * [Live Demo](https://www.primeng.org/message/)\n *\n * @module messagestyle\n *\n */\n\nexport enum MessageClasses {\n /**\n * Class name of the root element\n */\n root = 'p-message',\n /**\n * Class name of the content element\n */\n content = 'p-message-content',\n /**\n * Class name of the icon element\n */\n icon = 'p-message-icon',\n /**\n * Class name of the text element\n */\n text = 'p-message-text',\n /**\n * Class name of the close button element\n */\n closeButton = 'p-message-close-button',\n /**\n * Class name of the close icon element\n */\n closeIcon = 'p-message-close-icon'\n}\n\nexport interface MessageStyle extends BaseStyle {}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { AfterContentInit, booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, ContentChildren, EventEmitter, inject, Input, NgModule, Output, QueryList, signal, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { TimesIcon } from 'primeng/icons';\nimport { Ripple } from 'primeng/ripple';\nimport { MessageStyle } from './style/messagestyle';\n\n/**\n * Message groups a collection of contents in tabs.\n * @group Components\n */\n@Component({\n selector: 'p-message',\n standalone: true,\n imports: [CommonModule, TimesIcon, Ripple, SharedModule],\n template: `\n @if (visible()) {\n <div\n class=\"p-message p-component\"\n [attr.aria-live]=\"'polite'\"\n [class]=\"cn(cx('root'), styleClass)\"\n [attr.role]=\"'alert'\"\n [@messageAnimation]=\"{\n value: 'visible()',\n params: {\n showTransitionParams: showTransitionOptions,\n hideTransitionParams: hideTransitionOptions\n }\n }\"\n >\n <div [class]=\"cx('content')\">\n @if (iconTemplate || _iconTemplate) {\n <ng-container *ngTemplateOutlet=\"iconTemplate || iconTemplate\"></ng-container>\n }\n @if (icon) {\n <i [class]=\"cn(cx('icon'), icon)\"></i>\n }\n\n <div *ngIf=\"!escape; else escapeOut\">\n <span *ngIf=\"!escape\" [ngClass]=\"cx('text')\" [innerHTML]=\"text\"></span>\n </div>\n\n <ng-template #escapeOut>\n <span *ngIf=\"escape && text\" [ngClass]=\"cx('text')\">{{ text }}</span>\n </ng-template>\n\n @if (containerTemplate || _containerTemplate) {\n <ng-container *ngTemplateOutlet=\"containerTemplate || containerTemplate; context: { closeCallback: close.bind(this) }\"></ng-container>\n } @else {\n <span [ngClass]=\"cx('text')\">\n <ng-content></ng-content>\n </span>\n }\n @if (closable) {\n <button pRipple type=\"button\" [class]=\"cx('closeButton')\" (click)=\"close($event)\" [attr.aria-label]=\"closeAriaLabel\">\n @if (closeIcon) {\n <i [class]=\"cn(cx('closeIcon'), closeIcon)\" [ngClass]=\"closeIcon\"></i>\n }\n @if (closeIconTemplate || _closeIconTemplate) {\n <ng-container *ngTemplateOutlet=\"closeIconTemplate || _closeIconTemplate\"></ng-container>\n }\n @if (!closeIconTemplate && !_closeIconTemplate && !closeIcon) {\n <svg data-p-icon=\"times\" [class]=\"cx('closeIcon')\" />\n }\n </button>\n }\n </div>\n </div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [MessageStyle],\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})\nexport class Message extends BaseComponent implements AfterContentInit {\n /**\n * Severity level of the message.\n * @defaultValue 'info'\n * @group Props\n */\n @Input() severity: string | 'success' | 'info' | 'warn' | 'error' | 'secondary' | 'contrast' | undefined | null = 'info';\n /**\n * Text content.\n * @deprecated since v20.0.0. Use content projection instead '<p-message>Content</p-message>'.\n * @group Props\n */\n @Input() text: string | undefined;\n /**\n * Whether displaying messages would be escaped or not.\n * @deprecated since v20.0.0. Use content projection instead '<p-message>Content</p-message>'.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) escape: 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 the message can be closed manually using the close icon.\n * @group Props\n * @defaultValue false\n */\n @Input({ transform: booleanAttribute }) closable: boolean = false;\n /**\n * Icon to display in the message.\n * @group Props\n * @defaultValue undefined\n */\n @Input() icon: string | undefined;\n /**\n * Icon to display in the message close button.\n * @group Props\n * @defaultValue undefined\n */\n @Input() closeIcon: string | undefined;\n /**\n * Delay in milliseconds to close the message automatically.\n * @defaultValue undefined\n */\n @Input() life: number | undefined;\n /**\n * Transition options of the show animation.\n * @defaultValue '300ms ease-out'\n * @group Props\n */\n @Input() showTransitionOptions: string = '300ms ease-out';\n /**\n * Transition options of the hide animation.\n * @defaultValue '200ms cubic-bezier(0.86, 0, 0.07, 1)'\n * @group Props\n */\n @Input() hideTransitionOptions: string = '200ms cubic-bezier(0.86, 0, 0.07, 1)';\n /**\n * Defines the size of the component.\n * @group Props\n */\n @Input() size: 'large' | 'small' | undefined;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n @Input() variant: 'outlined' | 'text' | 'simple' | undefined;\n /**\n * Emits when the message is closed.\n * @param {{ originalEvent: Event }} event - The event object containing the original event.\n * @group Emits\n */\n @Output() onClose: EventEmitter<{ originalEvent: Event }> = new EventEmitter<{ originalEvent: Event }>();\n\n get closeAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.close : undefined;\n }\n\n visible = signal<boolean>(true);\n\n _componentStyle = inject(MessageStyle);\n\n /**\n * Custom template of the message container.\n * @group Templates\n */\n @ContentChild('container', { descendants: false }) containerTemplate: TemplateRef<any> | undefined;\n\n /**\n * Custom template of the message icon.\n * @group Templates\n */\n @ContentChild('icon', { descendants: false }) iconTemplate: TemplateRef<any> | undefined;\n\n /**\n * Custom template of the close icon.\n * @group Templates\n */\n @ContentChild('closeicon', { descendants: false }) closeIconTemplate: TemplateRef<any> | undefined;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n _containerTemplate: TemplateRef<any> | undefined;\n\n _iconTemplate: TemplateRef<any> | undefined;\n\n _closeIconTemplate: TemplateRef<any> | undefined;\n\n ngOnInit() {\n super.ngOnInit();\n if (this.life) {\n setTimeout(() => {\n this.visible.set(false);\n }, this.life);\n }\n }\n\n ngAfterContentInit() {\n this.templates?.forEach((item) => {\n switch (item.getType()) {\n case 'container':\n this._containerTemplate = item.template;\n break;\n\n case 'icon':\n this._iconTemplate = item.template;\n break;\n\n case 'closeicon':\n this._closeIconTemplate = item.template;\n break;\n }\n });\n }\n\n /**\n * Closes the message.\n * @param {Event} event - Browser event.\n * @group Method\n */\n public close(event: Event) {\n this.visible.set(false);\n this.onClose.emit({ originalEvent: event });\n }\n}\n\n@NgModule({\n imports: [Message, SharedModule],\n exports: [Message, SharedModule]\n})\nexport class MessageModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["style"],"mappings":"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"}