UNPKG

15.6 kBSource Map (JSON)View Raw
1{"version":3,"file":"primeng-toast.js","sources":["../../src/app/components/toast/toast.ts","../../src/app/components/toast/primeng-toast.ts"],"sourcesContent":["import {NgModule,Component,Input,Output,OnInit,AfterViewInit,AfterContentInit,OnDestroy,ElementRef,ViewChild,EventEmitter,ContentChildren,QueryList,TemplateRef,ChangeDetectionStrategy, NgZone, ChangeDetectorRef, ViewEncapsulation} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {Message} from 'primeng/api';\nimport {DomHandler} from 'primeng/dom';\nimport {PrimeTemplate,SharedModule} from 'primeng/api';\nimport {MessageService} from 'primeng/api';\nimport {RippleModule} from 'primeng/ripple';\nimport {Subscription} from 'rxjs';\nimport {trigger,state,style,transition,animate,query,animateChild,AnimationEvent} from '@angular/animations';\n\n@Component({\n selector: 'p-toastItem',\n template: `\n <div #container [attr.id]=\"message.id\" class=\"p-toast-message\" [ngClass]=\"'p-toast-message-' + message.severity\" [@messageState]=\"{value: 'visible', params: {showTransformParams: showTransformOptions, hideTransformParams: hideTransformOptions, showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\"\n (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\n <div class=\"p-toast-message-content\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\">\n <ng-container *ngIf=\"!template\">\n <span class=\"p-toast-message-icon pi\" [ngClass]=\"{'pi-info-circle': message.severity == 'info', 'pi-exclamation-triangle': message.severity == 'warn',\n 'pi-times-circle': message.severity == 'error', 'pi-check' :message.severity == 'success'}\"></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 <button type=\"button\" class=\"p-toast-icon-close p-link\" (click)=\"onCloseIconClick($event)\" (keydown.enter)=\"onCloseIconClick($event)\" *ngIf=\"message.closable !== false\" pRipple>\n <span class=\"p-toast-icon-close-icon pi pi-times\"></span>\n </button>\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: message}\"></ng-container>\n </div>\n </div>\n `,\n animations: [\n trigger('messageState', [\n state('visible', style({\n transform: 'translateY(0)',\n opacity: 1\n })),\n transition('void => *', [\n style({transform: '{{showTransformParams}}', opacity: 0}),\n animate('{{showTransitionParams}}')\n ]),\n transition('* => void', [\n animate(('{{hideTransitionParams}}'), style({\n height: 0,\n opacity: 0,\n transform: '{{hideTransformParams}}'\n }))\n ])\n ])\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ToastItem implements AfterViewInit, OnDestroy {\n\n @Input() message: Message;\n\n @Input() index: number;\n\n @Input() template: TemplateRef<any>;\n\n @Input() showTransformOptions: string;\n\n @Input() hideTransformOptions: string;\n\n @Input() showTransitionOptions: string;\n\n @Input() hideTransitionOptions: string;\n\n @Output() onClose: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('container') containerViewChild: ElementRef;\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: this.index,\n 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) {\n this.clearTimeout();\n \n this.onClose.emit({\n index: this.index,\n message: this.message\n });\n\n event.preventDefault();\n }\n\n ngOnDestroy() {\n this.clearTimeout();\n }\n}\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 *ngFor=\"let msg of messages; let i=index\" [message]=\"msg\" [index]=\"i\" (onClose)=\"onMessageClose($event)\"\n [template]=\"template\" @toastAnimation (@toastAnimation.start)=\"onAnimationStart($event)\" \n [showTransformOptions]=\"showTransformOptions\" [hideTransformOptions]=\"hideTransformOptions\" \n [showTransitionOptions]=\"showTransitionOptions\" [hideTransitionOptions]=\"hideTransitionOptions\"></p-toastItem>\n </div>\n `,\n animations: [\n trigger('toastAnimation', [\n transition(':enter, :leave', [\n query('@*', animateChild())\n ])\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./toast.css']\n})\nexport class Toast implements OnInit,AfterContentInit,OnDestroy {\n\n @Input() key: string;\n\n @Input() autoZIndex: boolean = true;\n \n @Input() baseZIndex: number = 0;\n\n @Input() style: any;\n \n @Input() styleClass: string;\n\n @Input() position: string = 'top-right';\n\n @Input() preventOpenDuplicates: boolean = false;\n\n @Input() preventDuplicates: boolean = false;\n \n @Input() showTransformOptions: string = 'translateY(100%)';\n\n @Input() hideTransformOptions: string = 'translateY(-100%)';\n\n @Input() showTransitionOptions: string = '300ms ease-out';\n\n @Input() hideTransitionOptions: string = '250ms ease-in';\n\n @Output() onClose: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('container') containerViewChild: ElementRef;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n messageSubscription: Subscription;\n\n clearSubscription: Subscription;\n\n messages: Message[];\n\n messagesArchieve: Message[];\n\n template: TemplateRef<any>;\n \n constructor(public messageService: MessageService, private cd: ChangeDetectorRef) {}\n\n ngOnInit() {\n this.messageSubscription = this.messageService.messageObserver.subscribe(messages => {\n if (messages) {\n if (messages instanceof Array) {\n const filteredMessages = messages.filter(m => this.canAdd(m));\n this.add(filteredMessages);\n }\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 }\n else {\n this.messages = null;\n }\n\n this.cd.markForCheck();\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 collection.find(m => {\n return ((m.summary === message.summary) && (m.detail == message.detail) && (m.severity === message.severity));\n }) != null;\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) {\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' && this.autoZIndex) {\n this.containerViewChild.nativeElement.style.zIndex = String(this.baseZIndex + (++DomHandler.zindex));\n }\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: [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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"}
\No newline at end of file