{"version":3,"file":"chunk-bq11nmr1.js","sources":["packages/vanilla/lib/features/message-panel/src/message-panel-registry.service.ts","packages/vanilla/lib/features/message-panel/src/message-panel.html","packages/vanilla/lib/features/message-panel/src/message-panel.component.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\n\nimport { IMessagePanelComponent, MessagePanelRegistryEvent } from './message-panel.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MessagePanelRegistry {\n get onChange(): Observable {\n return this.onChangeSubject.asObservable();\n }\n\n private onChangeSubject = new Subject();\n private components = [] as IMessagePanelComponent[];\n\n add(component: IMessagePanelComponent) {\n this.components.push(component);\n this.onChangeSubject.next({ component });\n }\n\n remove(component: IMessagePanelComponent) {\n const index = this.components.indexOf(component);\n this.components.splice(index, 1);\n\n const componentsInScope = this.components.filter((c: IMessagePanelComponent) => c.currentScope === component.currentScope);\n const lastMessagePanelComponent = componentsInScope[componentsInScope.length - 1] || null;\n\n this.onChangeSubject.next({\n component: lastMessagePanelComponent,\n });\n }\n}\n","@if (messages.length && isLatest) {\n
\n @for (message of messages; track trackByHtml($index, message)) {\n \n
\n
\n }\n \n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EffectRef, ElementRef, Input, OnDestroy, OnInit, ViewEncapsulation, effect } from '@angular/core';\n\nimport {\n DynamicHtmlDirective,\n Message,\n MessageQueueService,\n WebWorkerService,\n WindowOffsetModifierService,\n WorkerType,\n trackByProp,\n} from '@frontend/vanilla/core';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { MessagePanelRegistry } from './message-panel-registry.service';\nimport { IMessagePanelComponent, MessagePanelRegistryEvent } from './message-panel.models';\n\n/**\n * @whatItDoes Displays messages that have been added by {@link MessageQueueService}.\n *\n * @howToUse\n *\n * Place this component on a page where you want to display messages.\n *\n * ```\n * \n * ```\n *\n * @stable\n */\n@Component({\n standalone: true,\n imports: [CommonModule, DynamicHtmlDirective],\n selector: 'vn-message-panel',\n templateUrl: 'message-panel.html',\n styleUrls: ['../../../../../themepark/themes/whitelabel/components/message-panel/styles.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class MessagePanelComponent implements IMessagePanelComponent, OnInit, OnDestroy {\n @Input() scope: string;\n\n messages: Message[] = [];\n isLatest: boolean;\n readonly trackByHtml = trackByProp('html');\n\n private unsubscribe = new Subject();\n private messagesEffectRef: EffectRef;\n\n constructor(\n private service: MessageQueueService,\n private elementRef: ElementRef,\n private windowOffsetModifierService: WindowOffsetModifierService,\n private registry: MessagePanelRegistry,\n private webWorkerService: WebWorkerService,\n ) {\n this.messagesEffectRef = effect(() => {\n this.messages = this.service.messages().filter((message: Message) => (message.scope || '') === this.currentScope);\n\n if (this.messages.length) {\n const offset = this.elementRef.nativeElement.getBoundingClientRect().top;\n this.windowOffsetModifierService.scrollBy(offset);\n }\n });\n }\n\n get currentScope(): string {\n return this.scope || '';\n }\n\n ngOnInit() {\n this.registry.onChange\n .pipe(\n takeUntil(this.unsubscribe),\n filter((c: MessagePanelRegistryEvent) => c.component?.currentScope === this.currentScope),\n )\n .subscribe((c: MessagePanelRegistryEvent) => {\n const workerType = WorkerType.MessagePanelTimeout + this.currentScope;\n\n this.webWorkerService.createWorker(workerType, { timeout: 0 }, () => {\n this.isLatest = c.component === this;\n this.webWorkerService.removeWorker(workerType);\n });\n });\n\n this.registry.add(this);\n }\n\n ngOnDestroy() {\n this.unsubscribe.next();\n this.unsubscribe.complete();\n this.messagesEffectRef.destroy();\n this.registry.remove(this);\n this.webWorkerService.removeWorker(WorkerType.MessagePanelTimeout + this.currentScope);\n }\n}\n"],"names":["MessagePanelRegistry","constructor","onChangeSubject","Subject","components","onChange","asObservable","add","component","push","next","remove","index","indexOf","splice","componentsInScope","filter","c","currentScope","lastMessagePanelComponent","length","u","factory","ɵfac","providedIn","_MessagePanelRegistry","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵclassProp","message_r1","type","ɵɵproperty","ɵɵadvance","html","ɵɵrepeaterCreate","MessagePanelComponent_Conditional_0_For_2_Template","ɵɵcomponentInstance","trackByHtml","_","ɵɵrepeater","ctx_r1","messages","MessagePanelComponent","service","elementRef","windowOffsetModifierService","registry","webWorkerService","trackByProp","unsubscribe","messagesEffectRef","effect","message","scope","offset","nativeElement","getBoundingClientRect","top","scrollBy","ngOnInit","pipe","takeUntil","_a","subscribe","workerType","WorkerType","MessagePanelTimeout","createWorker","timeout","isLatest","removeWorker","ngOnDestroy","complete","destroy","ɵɵdirectiveInject","MessageQueueService","ElementRef","WindowOffsetModifierService","WebWorkerService","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","MessagePanelComponent_Conditional_0_Template","ɵɵconditional","CommonModule","NgClass","DynamicHtmlDirective","styles","encapsulation","_MessagePanelComponent"],"mappings":"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"}