UNPKG

17.4 kBSource Map (JSON)View Raw
1{"version":3,"sources":["ng://primeng/toast/toast.ts"],"names":["ToastItem","zone","this","onClose","EventEmitter","prototype","ngAfterViewInit","initTimeout","_this","message","sticky","runOutsideAngular","timeout","setTimeout","emit","index","life","clearTimeout","onMouseEnter","onMouseLeave","onCloseIconClick","event","preventDefault","ngOnDestroy","NgZone","__decorate","Input","Output","ViewChild","Component","selector","template","animations","trigger","state","style","transform","opacity","transition","animate","height","Toast","messageService","cd","autoZIndex","baseZIndex","position","preventOpenDuplicates","preventDuplicates","showTransformOptions","hideTransformOptions","showTransitionOptions","hideTransitionOptions","ngOnInit","messageSubscription","messageObserver","subscribe","messages","Array","filteredMessages","filter","m","canAdd","add","modal","length","enableModality","clearSubscription","clearObserver","key","disableModality","__spread","messagesArchieve","allow","containsMessage","collection","find","summary","detail","severity","ngAfterContentInit","templates","forEach","item","getType","onMessageClose","splice","detectChanges","mask","document","createElement","zIndex","String","parseInt","containerViewChild","nativeElement","display","DomHandler","addMultipleClasses","body","appendChild","removeChild","onAnimationStart","fromState","zindex","unsubscribe","MessageService","ChangeDetectorRef","ContentChildren","PrimeTemplate","query","animateChild","changeDetection","ChangeDetectionStrategy","Default","ToastModule","NgModule","imports","CommonModule","exports","SharedModule","declarations"],"mappings":"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","sourcesContent":["import {NgModule,Component,Input,Output,OnInit,AfterViewInit,AfterContentInit,OnDestroy,ElementRef,ViewChild,EventEmitter,ContentChildren,QueryList,TemplateRef,ChangeDetectionStrategy, NgZone, ChangeDetectorRef} 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 {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=\"ui-toast-message ui-shadow\" [@messageState]=\"{value: 'visible', params: {showTransformParams: showTransformOptions, hideTransformParams: hideTransformOptions, showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\"\n [ngClass]=\"{'ui-toast-message-info': message.severity == 'info','ui-toast-message-warn': message.severity == 'warn',\n 'ui-toast-message-error': message.severity == 'error','ui-toast-message-success': message.severity == 'success'}\"\n (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\">\n <div class=\"ui-toast-message-content\">\n <a tabindex=\"0\" class=\"ui-toast-close-icon pi pi-times\" (click)=\"onCloseIconClick($event)\" (keydown.enter)=\"onCloseIconClick($event)\" *ngIf=\"message.closable !== false\"></a>\n <ng-container *ngIf=\"!template\">\n <span class=\"ui-toast-icon pi\"\n [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=\"ui-toast-message-text-content\">\n <div class=\"ui-toast-summary\">{{message.summary}}</div>\n <div class=\"ui-toast-detail\">{{message.detail}}</div>\n </div>\n </ng-container>\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})\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]=\"{'ui-toast ui-widget': true, \n 'ui-toast-top-right': position === 'top-right',\n 'ui-toast-top-left': position === 'top-left',\n 'ui-toast-bottom-right': position === 'bottom-right',\n 'ui-toast-bottom-left': position === 'bottom-left',\n 'ui-toast-top-center': position === 'top-center',\n 'ui-toast-bottom-center': position === 'bottom-center',\n 'ui-toast-center': position === 'center'}\" \n [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.Default\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() modal: boolean;\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 mask: HTMLDivElement;\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 if (this.modal && this.messages && this.messages.length) {\n this.enableModality();\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 if (this.modal) {\n this.disableModality();\n }\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\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 if (this.messages.length === 0) {\n this.disableModality();\n }\n\n this.onClose.emit({\n message: event.message\n });\n\n this.cd.detectChanges();\n }\n\n enableModality() {\n if (!this.mask) {\n this.mask = document.createElement('div');\n this.mask.style.zIndex = String(parseInt(this.containerViewChild.nativeElement.style.zIndex) - 1);\n this.mask.style.display = 'block';\n let maskStyleClass = 'ui-widget-overlay ui-dialog-mask';\n DomHandler.addMultipleClasses(this.mask, maskStyleClass);\n document.body.appendChild(this.mask);\n }\n }\n \n disableModality() {\n if (this.mask) {\n document.body.removeChild(this.mask);\n this.mask = null;\n }\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 this.disableModality();\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [Toast,SharedModule],\n declarations: [Toast,ToastItem]\n})\nexport class ToastModule { }\n"]}
\No newline at end of file