UNPKG

angular2-toaster-2

Version:

An Angular Toaster Notification library based on AngularJS-Toaster

1 lines 50.7 kB
{"version":3,"file":"angular2-toaster-2.mjs","sources":["../../../src/angular2-toaster/src/lib/bodyOutputType.ts","../../../src/angular2-toaster/src/lib/trust-html.pipe.ts","../../../src/angular2-toaster/src/lib/toast.component.ts","../../../src/angular2-toaster/src/lib/transitions.ts","../../../src/angular2-toaster/src/lib/toaster-config.ts","../../../src/angular2-toaster/src/lib/toaster.service.ts","../../../src/angular2-toaster/src/lib/toaster-container.component.ts","../../../src/angular2-toaster/src/lib/toaster.module.ts","../../../src/angular2-toaster/src/public-api.ts","../../../src/angular2-toaster/src/angular2-toaster-2.ts"],"sourcesContent":["export enum BodyOutputType {\r\n Default, TrustedHtml, Component\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'trustHtml',\r\n pure: true\r\n})\r\nexport class TrustHtmlPipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n\r\n transform(content: any): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(content);\r\n }\r\n}\r\n","import {\r\n Component, \r\n Input, \r\n Output, \r\n ViewChild, \r\n ViewContainerRef, \r\n EventEmitter,\r\n ComponentFactoryResolver, \r\n ChangeDetectorRef, \r\n OnInit, \r\n AfterViewInit, \r\n OnDestroy,\r\n HostListener,\r\n NgZone, \r\n ElementRef,\r\n Renderer2\r\n} from '@angular/core';\r\nimport { Toast } from './toast';\r\nimport { BodyOutputType } from './bodyOutputType';\r\nimport { ToasterConfig } from './toaster-config';\r\n\r\n@Component({\r\n selector: '[toastComp]',\r\n template: `\r\n <div class=\"toast-content\">\r\n <div [ngClass]=\"titleClass\">{{toast.title}}</div>\r\n <div [ngClass]=\"messageClass\" [ngSwitch]=\"toast.bodyOutputType\">\r\n <div *ngSwitchCase=\"bodyOutputType.Component\" #componentBody></div>\r\n <div *ngSwitchCase=\"bodyOutputType.TrustedHtml\" [innerHTML]=\"(toast.body ?? '') | trustHtml\"></div>\r\n <div *ngSwitchCase=\"bodyOutputType.Default\">{{toast.body ?? ''}}</div>\r\n </div>\r\n </div>\r\n <button class=\"toast-close-button\" *ngIf=\"toast.showCloseButton\" (click)=\"click($event, toast)\"\r\n [innerHTML]=\"(toast.closeHtml ?? '') | trustHtml\">\r\n </button>\r\n <div *ngIf=\"toast.progressBar\">\r\n <div class=\"toast-progress-bar\" [style.width]=\"progressBarWidth + '%'\"></div>\r\n </div>`\r\n})\r\nexport class ToastComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @Input() toasterconfig: ToasterConfig;\r\n @Input() toast: Toast;\r\n @Input() titleClass: string;\r\n @Input() messageClass: string;\r\n @ViewChild('componentBody', { read: ViewContainerRef, static: false }) componentBody: ViewContainerRef;\r\n\r\n public progressBarWidth: number = -1;\r\n public bodyOutputType = BodyOutputType;\r\n\r\n @Output()\r\n public clickEvent = new EventEmitter();\r\n @Output()\r\n public removeToastEvent = new EventEmitter<Toast>();\r\n\r\n private timeoutId?: number = null;\r\n private timeout: number = 0;\r\n private progressBarIntervalId?: number = null;\r\n private removeToastTick: number;\r\n\r\n private removeMouseOverListener: () => void;\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private ngZone: NgZone,\r\n private element: ElementRef,\r\n private renderer2: Renderer2\r\n ) {}\r\n\r\n ngOnInit() {\r\n if (this.toast.progressBar) {\r\n this.toast.progressBarDirection = this.toast.progressBarDirection || 'decreasing';\r\n }\r\n\r\n let timeout = (typeof this.toast.timeout === 'number')\r\n ? this.toast.timeout : this.toasterconfig.timeout;\r\n\r\n if (typeof timeout === 'object') { \r\n timeout = timeout[this.toast.type]; \r\n };\r\n\r\n this.timeout = timeout;\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.toast.bodyOutputType === this.bodyOutputType.Component) {\r\n const component = this.componentFactoryResolver.resolveComponentFactory(this.toast.body);\r\n const componentInstance: any = this.componentBody.createComponent(component, undefined, this.componentBody.injector);\r\n componentInstance.instance.toast = this.toast;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n if (this.toasterconfig.mouseoverTimerStop) {\r\n // only apply a mouseenter event when necessary to avoid\r\n // unnecessary event and change detection cycles.\r\n this.removeMouseOverListener = this.renderer2.listen(\r\n this.element.nativeElement, \r\n 'mouseenter', \r\n () => this.stopTimer()\r\n );\r\n }\r\n\r\n this.configureTimer();\r\n }\r\n\r\n click(event: MouseEvent, toast: Toast) {\r\n event.stopPropagation();\r\n this.clickEvent.emit({ value : { toast: toast, isCloseButton: true } });\r\n }\r\n\r\n stopTimer() {\r\n this.progressBarWidth = 0;\r\n this.clearTimers();\r\n }\r\n\r\n @HostListener('mouseleave') \r\n restartTimer() {\r\n if (this.toasterconfig.mouseoverTimerStop) {\r\n if (!this.timeoutId) {\r\n this.configureTimer();\r\n }\r\n } else if (this.timeout && !this.timeoutId) {\r\n this.removeToast();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.removeMouseOverListener) {\r\n this.removeMouseOverListener();\r\n }\r\n this.clearTimers();\r\n }\r\n\r\n private configureTimer() {\r\n if (!this.timeout || this.timeout < 1) {\r\n return;\r\n }\r\n\r\n if (this.toast.progressBar) {\r\n this.removeToastTick = new Date().getTime() + this.timeout;\r\n this.progressBarWidth = -1;\r\n } \r\n \r\n this.ngZone.runOutsideAngular(() => {\r\n this.timeoutId = window.setTimeout(() => {\r\n this.ngZone.run(() => {\r\n this.changeDetectorRef.markForCheck();\r\n this.removeToast();\r\n });\r\n }, this.timeout);\r\n\r\n if (this.toast.progressBar) {\r\n this.progressBarIntervalId = window.setInterval(() => {\r\n this.ngZone.run(() => {\r\n this.updateProgressBar();\r\n });\r\n }, 10);\r\n }\r\n });\r\n }\r\n\r\n private updateProgressBar() {\r\n if (this.progressBarWidth === 0 || this.progressBarWidth === 100) {\r\n return;\r\n }\r\n\r\n this.progressBarWidth = ((this.removeToastTick - new Date().getTime()) / this.timeout) * 100;\r\n \r\n if (this.toast.progressBarDirection === 'increasing') {\r\n this.progressBarWidth = 100 - this.progressBarWidth;\r\n }\r\n if (this.progressBarWidth < 0) {\r\n this.progressBarWidth = 0;\r\n }\r\n if (this.progressBarWidth > 100) {\r\n this.progressBarWidth = 100;\r\n }\r\n }\r\n\r\n private clearTimers() {\r\n if (this.timeoutId) {\r\n window.clearTimeout(this.timeoutId)\r\n }\r\n\r\n if (this.progressBarIntervalId) {\r\n window.clearInterval(this.progressBarIntervalId);\r\n }\r\n\r\n this.timeoutId = null;\r\n this.progressBarIntervalId = null;\r\n }\r\n\r\n private removeToast() {\r\n this.removeToastEvent.emit(this.toast);\r\n }\r\n}\r\n","import { \r\n trigger, state, style, animate, transition, group \r\n} from '@angular/animations';\r\n\r\nexport const Transitions = [\r\n trigger('toastState', [\r\n state('flyRight, flyLeft, slideDown, slideDown, slideUp, slideUp, fade', \r\n style({ opacity: 1, transform: 'translate(0,0)' })),\r\n transition('void => flyRight', [\r\n style({\r\n opacity: 0,\r\n transform: 'translateX(100%)',\r\n height: 0\r\n }),\r\n animate('0.15s ease-in', style({\r\n opacity: 1,\r\n height: '*'\r\n })),\r\n animate('0.25s 15ms ease-in')\r\n ]),\r\n transition('flyRight => void', [\r\n animate('0.25s ease-out', style({\r\n opacity: 0,\r\n transform: 'translateX(100%)'\r\n })),\r\n animate('0.15s ease-out', style({\r\n height: 0\r\n }))\r\n ]),\r\n transition('void => flyLeft', [\r\n style({\r\n opacity: 0, \r\n transform: 'translateX(-100%)',\r\n height: 0\r\n }),\r\n animate('0.15s ease-in', style({\r\n opacity: 1,\r\n height: '*'\r\n })),\r\n animate('0.25s 15ms ease-in')\r\n ]),\r\n transition('flyLeft => void', [\r\n animate('0.25s 10ms ease-out', style({\r\n opacity: 0, \r\n transform: 'translateX(-100%)'\r\n })),\r\n animate('0.15s ease-out', style({\r\n height: 0\r\n }))\r\n ]),\r\n transition('void => slideDown', [\r\n style({\r\n opacity: 0, \r\n transform: 'translateY(-500%)',\r\n height: 0\r\n }),\r\n group([\r\n animate('0.2s ease-in', style({\r\n height: '*'\r\n })),\r\n animate('0.4s ease-in', style({\r\n transform: 'translate(0,0)'\r\n })), \r\n animate('0.3s 0.1s ease-in', style({\r\n opacity: 1\r\n }))\r\n ])\r\n ]),\r\n transition('slideDown => void', group([\r\n animate('0.3s ease-out', style({\r\n opacity: 0\r\n })),\r\n animate('0.4s ease-out', style({\r\n transform: 'translateY(-500%)'\r\n })), \r\n animate('0.2s 0.2s ease-out', style({\r\n height: 0\r\n }))\r\n ])),\r\n transition('void => slideUp', [\r\n style({\r\n opacity: 0, \r\n transform: 'translateY(1000%)',\r\n height: 0\r\n }),\r\n group([\r\n animate('0.2s ease-in', style({\r\n height: '*'\r\n })),\r\n animate('0.5s ease-in', style({\r\n transform: 'translate(0,0)'\r\n })), \r\n animate('0.3s 0.1s ease-in', style({\r\n opacity: 1\r\n }))\r\n ])\r\n ]),\r\n transition('slideUp => void', group([\r\n animate('0.3s ease-out', style({\r\n opacity: 0\r\n })),\r\n animate('0.5s ease-out', style({\r\n transform: 'translateY(1000%)'\r\n })), \r\n animate('0.3s 0.15s ease-out', style({\r\n height: 0\r\n }))\r\n ])),\r\n transition('void => fade', [\r\n style({\r\n opacity: 0,\r\n height: 0\r\n }),\r\n animate('0.20s ease-in', style({\r\n height: '*'\r\n })),\r\n animate('0.15s ease-in', style({\r\n opacity: 1\r\n }))\r\n \r\n ]),\r\n transition('fade => void', [\r\n group([\r\n animate('0.0s ease-out', style({\r\n // reposition the background to prevent\r\n // a ghost image during transition\r\n 'background-position': '-99999px'\r\n })),\r\n animate('0.15s ease-out', style({\r\n opacity: 0,\r\n 'background-image': ''\r\n })),\r\n animate('0.3s 20ms ease-out', style({\r\n height: 0\r\n }))\r\n ])\r\n ])\r\n ]),\r\n]","import { Injectable } from '@angular/core';\r\nimport { BodyOutputType } from './bodyOutputType';\r\nimport { ToastType } from './toast';\r\n\r\nexport const DefaultTypeClasses : { [key in ToastType]? : string } = {\r\n error: 'toast-error',\r\n info: 'toast-info',\r\n wait: 'toast-wait',\r\n success: 'toast-success',\r\n warning: 'toast-warning'\r\n};\r\n\r\nexport const DefaultIconClasses : { [key in ToastType]? : string } = {\r\n error: 'icon-error',\r\n info: 'icon-info',\r\n wait: 'icon-wait',\r\n success: 'icon-success',\r\n warning: 'icon-warning'\r\n};\r\n\r\nexport interface IToasterConfig {\r\n limit?: number|null;\r\n tapToDismiss?: boolean;\r\n showCloseButton?: boolean|{ [key in ToastType]?: boolean};\r\n closeHtml?: string;\r\n newestOnTop?: boolean;\r\n timeout?: number|{ [key in ToastType]?: number };\r\n typeClasses?: { [key in ToastType]?: string };\r\n iconClasses?: { [key in ToastType]?: string };\r\n bodyOutputType?: BodyOutputType;\r\n bodyTemplate?: string;\r\n defaultToastType?: ToastType;\r\n // Options (see CSS):\r\n // 'toast-top-full-width', 'toast-bottom-full-width', 'toast-center',\r\n // 'toast-top-left', 'toast-top-center', 'toast-top-right',\r\n // 'toast-bottom-left', 'toast-bottom-center', 'toast-bottom-right',\r\n positionClass?: string;\r\n titleClass?: string;\r\n messageClass?: string;\r\n animation?: string;\r\n preventDuplicates?: boolean;\r\n mouseoverTimerStop?: boolean;\r\n toastContainerId?: number|null;\r\n}\r\n\r\n@Injectable()\r\nexport class ToasterConfig implements IToasterConfig {\r\n limit?: number|null;\r\n tapToDismiss: boolean;\r\n showCloseButton: boolean|{ [key in ToastType]?: boolean };\r\n closeHtml: string;\r\n newestOnTop: boolean;\r\n timeout: number|{ [key in ToastType]?: number };\r\n typeClasses: { [key in ToastType]?: string };\r\n iconClasses: { [key in ToastType]?: string };\r\n bodyOutputType: BodyOutputType;\r\n bodyTemplate: string;\r\n defaultToastType: ToastType;\r\n // Options (see CSS):\r\n // 'toast-top-full-width', 'toast-bottom-full-width', 'toast-center',\r\n // 'toast-top-left', 'toast-top-center', 'toast-top-right',\r\n // 'toast-bottom-left', 'toast-bottom-center', 'toast-bottom-right',\r\n positionClass: string;\r\n titleClass: string;\r\n messageClass: string;\r\n animation: string;\r\n preventDuplicates: boolean;\r\n mouseoverTimerStop: boolean;\r\n toastContainerId?: number|null;\r\n\r\n constructor(configOverrides?: IToasterConfig) {\r\n configOverrides = configOverrides || {};\r\n this.limit = configOverrides.limit || null;\r\n this.tapToDismiss = configOverrides.tapToDismiss != null ? configOverrides.tapToDismiss : true;\r\n this.showCloseButton = configOverrides.showCloseButton != null ? configOverrides.showCloseButton : false;\r\n this.closeHtml = configOverrides.closeHtml || '<span>&times;</span>';\r\n this.newestOnTop = configOverrides.newestOnTop != null ? configOverrides.newestOnTop : true;\r\n this.timeout = configOverrides.timeout != null ? configOverrides.timeout : 5000;\r\n this.typeClasses = configOverrides.typeClasses || DefaultTypeClasses;\r\n this.iconClasses = configOverrides.iconClasses || DefaultIconClasses;\r\n this.bodyOutputType = configOverrides.bodyOutputType || BodyOutputType.Default;\r\n this.bodyTemplate = configOverrides.bodyTemplate || 'toasterBodyTmpl.html';\r\n this.defaultToastType = configOverrides.defaultToastType || 'info';\r\n this.positionClass = configOverrides.positionClass || 'toast-top-right';\r\n this.titleClass = configOverrides.titleClass || 'toast-title';\r\n this.messageClass = configOverrides.messageClass || 'toast-message';\r\n this.animation = configOverrides.animation || '';\r\n this.preventDuplicates = configOverrides.preventDuplicates != null ? configOverrides.preventDuplicates : false;\r\n this.mouseoverTimerStop = configOverrides.mouseoverTimerStop != null ? configOverrides.mouseoverTimerStop : false;\r\n this.toastContainerId = configOverrides.toastContainerId != null ? configOverrides.toastContainerId : null;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Toast, ToastType } from './toast';\r\nimport { IClearWrapper } from './clearWrapper';\r\nimport { Observable, Subject, Observer } from 'rxjs';\r\nimport { share } from 'rxjs/operators'\r\n\r\n// http://stackoverflow.com/questions/26501688/a-typescript-guid-class\r\nclass Guid {\r\n static newGuid() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r\n const r = Math.random() * 16 | 0, v = c === 'x' ? r : ( r & 0x3 | 0x8 );\r\n return v.toString(16);\r\n });\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ToasterService {\r\n addToast: Observable<Toast>;\r\n private _addToast: Observer<Toast>;\r\n\r\n clearToasts: Observable<IClearWrapper>;\r\n private _clearToasts: Observer<IClearWrapper>;\r\n\r\n removeToast: Observable<IClearWrapper>;\r\n /** @internal */\r\n _removeToastSubject: Subject<IClearWrapper>;\r\n\r\n /**\r\n * Creates an instance of ToasterService.\r\n */\r\n constructor() {\r\n this.addToast = new Observable<Toast>((observer: any) => this._addToast = observer).pipe(share());\r\n this.clearToasts = new Observable<IClearWrapper>((observer: any) => this._clearToasts = observer).pipe(share());\r\n this._removeToastSubject = new Subject<IClearWrapper>()\r\n this.removeToast = this._removeToastSubject.pipe(share());\r\n }\r\n\r\n /**\r\n * Synchronously create and show a new toast instance.\r\n *\r\n * @param {(string | Toast)} type The type of the toast, or a Toast object.\r\n * @param {string=} title The toast title.\r\n * @param {string=} body The toast body.\r\n * @returns {Toast}\r\n * The newly created Toast instance with a randomly generated GUID Id.\r\n */\r\n pop(type: ToastType | Toast, title?: string, body?: string): Toast {\r\n const toast = typeof type === 'string' ? { type: type, title: title, body: body } : type;\r\n\r\n if (!toast.toastId) {\r\n toast.toastId = Guid.newGuid();\r\n }\r\n\r\n if (!this._addToast) {\r\n throw new Error('No Toaster Containers have been initialized to receive toasts.');\r\n }\r\n\r\n this._addToast.next(toast);\r\n return toast;\r\n }\r\n\r\n /**\r\n * Asynchronously create and show a new toast instance.\r\n *\r\n * @param {(string | Toast)} type The type of the toast, or a Toast object.\r\n * @param {string=} title The toast title.\r\n * @param {string=} body The toast body.\r\n * @returns {Observable<Toast>}\r\n * A hot Observable that can be subscribed to in order to receive the Toast instance\r\n * with a randomly generated GUID Id.\r\n */\r\n popAsync(type: ToastType | Toast, title?: string, body?: string): Observable<Toast> {\r\n setTimeout(() => {\r\n this.pop(type, title, body);\r\n }, 0);\r\n\r\n return this.addToast;\r\n }\r\n\r\n /**\r\n * Clears a toast by toastId and/or toastContainerId.\r\n *\r\n * @param {string} toastId The toastId to clear.\r\n * @param {number=} toastContainerId\r\n * The toastContainerId of the container to remove toasts from.\r\n */\r\n clear(toastId?: string, toastContainerId?: number) {\r\n const clearWrapper: IClearWrapper = {\r\n toastId: toastId, toastContainerId: toastContainerId\r\n };\r\n\r\n this._clearToasts.next(clearWrapper)\r\n }\r\n}\r\n","import { \r\n Component,\r\n Input, \r\n OnInit,\r\n OnDestroy \r\n} from '@angular/core';\r\nimport { Transitions } from './transitions';\r\nimport { ToasterConfig } from './toaster-config';\r\nimport { ToasterService} from './toaster.service';\r\nimport { IClearWrapper } from './clearWrapper';\r\nimport { Toast } from './toast';\r\n\r\n@Component({\r\n selector: 'toaster-container',\r\n template: `\r\n <div class=\"toast-container\" [ngClass]=\"[toasterconfig.positionClass]\">\r\n <div toastComp *ngFor=\"let toast of toasts\" class=\"toast\" [toast]=\"toast\"\r\n [toasterconfig]=\"toasterconfig\"\r\n [@toastState]=\"toasterconfig.animation\"\r\n [titleClass]=\"toasterconfig.titleClass\"\r\n [messageClass]=\"toasterconfig.messageClass\"\r\n [ngClass]=\"[\r\n toasterconfig.iconClasses[toast.type],\r\n toasterconfig.typeClasses[toast.type]\r\n ]\"\r\n (click)=\"click(toast)\" (clickEvent)=\"childClick($event)\"\r\n (removeToastEvent)=\"removeToast($event)\"\r\n >\r\n </div>\r\n </div>\r\n `,\r\n animations: Transitions\r\n})\r\nexport class ToasterContainerComponent implements OnInit, OnDestroy {\r\n private addToastSubscriber: any;\r\n private clearToastsSubscriber: any;\r\n private toasterService: ToasterService;\r\n\r\n @Input() toasterconfig: ToasterConfig;\r\n\r\n public toasts: Toast[] = [];\r\n\r\n constructor(toasterService: ToasterService) {\r\n this.toasterService = toasterService;\r\n }\r\n\r\n ngOnInit() {\r\n this.registerSubscribers();\r\n if (this.isNullOrUndefined(this.toasterconfig)) {\r\n this.toasterconfig = new ToasterConfig();\r\n }\r\n }\r\n\r\n // event handlers\r\n click(toast: Toast, isCloseButton?: boolean) {\r\n if (toast.onClickCallback) {\r\n toast.onClickCallback(toast);\r\n }\r\n\r\n const tapToDismiss = !this.isNullOrUndefined(toast.tapToDismiss) \r\n ? toast.tapToDismiss\r\n : this.toasterconfig.tapToDismiss;\r\n\r\n if (tapToDismiss || (toast.showCloseButton && isCloseButton)) {\r\n this.removeToast(toast);\r\n }\r\n }\r\n\r\n childClick($event: any) {\r\n this.click($event.value.toast, $event.value.isCloseButton);\r\n }\r\n\r\n removeToast(toast: Toast) {\r\n const index = this.toasts.indexOf(toast);\r\n if (index < 0) { return };\r\n\r\n const toastId = this.toastIdOrDefault(toast);\r\n\r\n this.toasts.splice(index, 1);\r\n\r\n if (toast.onHideCallback) { toast.onHideCallback(toast); }\r\n this.toasterService._removeToastSubject.next({ toastId: toastId, toastContainerId: toast.toastContainerId });\r\n }\r\n\r\n // private functions\r\n private registerSubscribers() {\r\n this.addToastSubscriber = this.toasterService.addToast.subscribe((toast: Toast) => {\r\n this.addToast(toast);\r\n });\r\n\r\n this.clearToastsSubscriber = this.toasterService.clearToasts.subscribe((clearWrapper: IClearWrapper) => {\r\n this.clearToasts(clearWrapper);\r\n });\r\n }\r\n\r\n private addToast(toast: Toast) {\r\n if (toast.toastContainerId && this.toasterconfig.toastContainerId\r\n && toast.toastContainerId !== this.toasterconfig.toastContainerId) { return };\r\n\r\n if (!toast.type \r\n || !this.toasterconfig.typeClasses[toast.type]\r\n || !this.toasterconfig.iconClasses[toast.type]) {\r\n toast.type = this.toasterconfig.defaultToastType;\r\n }\r\n\r\n if (this.toasterconfig.preventDuplicates && this.toasts.length > 0) {\r\n if (toast.toastId && this.toasts.some(t => t.toastId === toast.toastId)) {\r\n return;\r\n } else if (this.toasts.some(t => t.body === toast.body)) {\r\n return;\r\n }\r\n }\r\n\r\n if (this.isNullOrUndefined(toast.showCloseButton)) {\r\n if (typeof this.toasterconfig.showCloseButton === 'object') {\r\n toast.showCloseButton = this.toasterconfig.showCloseButton[toast.type];\r\n } else if (typeof this.toasterconfig.showCloseButton === 'boolean') {\r\n toast.showCloseButton = <boolean>this.toasterconfig.showCloseButton;\r\n }\r\n }\r\n\r\n if (toast.showCloseButton) {\r\n toast.closeHtml = toast.closeHtml || this.toasterconfig.closeHtml;\r\n }\r\n\r\n toast.bodyOutputType = toast.bodyOutputType || this.toasterconfig.bodyOutputType;\r\n\r\n if (this.toasterconfig.newestOnTop) {\r\n this.toasts.unshift(toast);\r\n if (this.isLimitExceeded()) {\r\n this.toasts.pop();\r\n }\r\n } else {\r\n this.toasts.push(toast);\r\n if (this.isLimitExceeded()) {\r\n this.toasts.shift();\r\n }\r\n }\r\n\r\n if (toast.onShowCallback) {\r\n toast.onShowCallback(toast);\r\n }\r\n }\r\n\r\n private isLimitExceeded() {\r\n return this.toasterconfig.limit && this.toasts.length > this.toasterconfig.limit;\r\n }\r\n\r\n private removeAllToasts() {\r\n for (let i = this.toasts.length - 1; i >= 0; i--) {\r\n this.removeToast(this.toasts[i]);\r\n }\r\n }\r\n\r\n private clearToasts(clearWrapper: IClearWrapper) {\r\n const toastId = clearWrapper.toastId ;\r\n const toastContainerId = clearWrapper.toastContainerId;\r\n\r\n if (this.isNullOrUndefined(toastContainerId) || (toastContainerId === this.toasterconfig.toastContainerId)) {\r\n this.clearToastsAction(toastId);\r\n }\r\n }\r\n\r\n private clearToastsAction(toastId?: string) {\r\n if (toastId) {\r\n this.removeToast(this.toasts.filter(t => t.toastId === toastId)[0]);\r\n } else {\r\n this.removeAllToasts();\r\n }\r\n }\r\n\r\n private toastIdOrDefault(toast: Toast) {\r\n return toast.toastId || '';\r\n }\r\n\r\n private isNullOrUndefined(value: any): boolean {\r\n return value === null || typeof value === 'undefined';\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.addToastSubscriber) { this.addToastSubscriber.unsubscribe(); }\r\n if (this.clearToastsSubscriber) { this.clearToastsSubscriber.unsubscribe(); }\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ToastComponent } from './toast.component';\r\nimport { ToasterContainerComponent } from './toaster-container.component';\r\nimport { ToasterService } from './toaster.service';\r\nimport { TrustHtmlPipe } from './trust-html.pipe';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [\r\n ToastComponent,\r\n ToasterContainerComponent,\r\n TrustHtmlPipe\r\n ],\r\n exports: [\r\n ToasterContainerComponent,\r\n ToastComponent\r\n ]\r\n})\r\nexport class ToasterModule {\r\n static forRoot(): ModuleWithProviders<ToasterModule> {\r\n return {\r\n ngModule: ToasterModule,\r\n providers: [ToasterService, ToasterContainerComponent]\r\n }\r\n }\r\n\r\n static forChild(): ModuleWithProviders<ToasterModule> {\r\n return {\r\n ngModule: ToasterModule,\r\n providers: [ToasterContainerComponent]\r\n }\r\n }\r\n }\r\n","/*\r\n * Public API Surface of angular2-toaster\r\n */\r\n\r\nexport * from './lib/toast.component';\r\nexport * from './lib/toaster-container.component';\r\nexport * from './lib/toaster.service';\r\nexport * from './lib/clearWrapper';\r\nexport * from './lib/toaster-config';\r\nexport * from './lib/toast';\r\nexport * from './lib/bodyOutputType';\r\nexport * from './lib/toaster.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.TrustHtmlPipe","i1.ToasterService","i2","i3.ToastComponent"],"mappings":";;;;;;;;;IAAY,eAEX;AAFD,CAAA,UAAY,cAAc,EAAA;AACtB,IAAA,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AAAE,IAAA,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AAAE,IAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACnC,CAAC,EAFW,cAAc,KAAd,cAAc,GAEzB,EAAA,CAAA,CAAA;;MCKY,aAAa,CAAA;AACF,IAAA,SAAA,CAAA;AAApB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAC1C;AAED,IAAA,SAAS,CAAC,OAAY,EAAA;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;KAC1D;uGANQ,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;qGAAb,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,IAAI,EAAE,IAAI;AACb,iBAAA,CAAA;;;MCiCY,cAAc,CAAA;AAuBb,IAAA,wBAAA,CAAA;AACA,IAAA,iBAAA,CAAA;AACA,IAAA,MAAA,CAAA;AACA,IAAA,OAAA,CAAA;AACA,IAAA,SAAA,CAAA;AA1BD,IAAA,aAAa,CAAgB;AAC7B,IAAA,KAAK,CAAQ;AACb,IAAA,UAAU,CAAS;AACnB,IAAA,YAAY,CAAS;AACyC,IAAA,aAAa,CAAmB;IAEhG,gBAAgB,GAAW,CAAC,CAAC,CAAC;IAC9B,cAAc,GAAG,cAAc,CAAC;AAGhC,IAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;AAEhC,IAAA,gBAAgB,GAAG,IAAI,YAAY,EAAS,CAAC;IAE5C,SAAS,GAAY,IAAI,CAAC;IAC1B,OAAO,GAAW,CAAC,CAAC;IACpB,qBAAqB,GAAY,IAAI,CAAC;AACtC,IAAA,eAAe,CAAS;AAExB,IAAA,uBAAuB,CAAa;IAE5C,WACU,CAAA,wBAAkD,EAClD,iBAAoC,EACpC,MAAc,EACd,OAAmB,EACnB,SAAoB,EAAA;QAJpB,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;QAClD,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QACnB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;KAC1B;IAEJ,QAAQ,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,IAAI,YAAY,CAAC;AACrF,SAAA;QAED,IAAI,OAAO,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ;AACjD,cAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AAEtD,QAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACtC,SAAA;QAAA,CAAC;AAEF,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KAC1B;IAED,eAAe,GAAA;QACX,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE;AAC7D,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACzF,YAAA,MAAM,iBAAiB,GAAQ,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACrH,iBAAiB,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAC9C,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;AAC1C,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE;;;YAGvC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAChD,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,YAAY,EACZ,MAAM,IAAI,CAAC,SAAS,EAAE,CACzB,CAAC;AACL,SAAA;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;IAED,KAAK,CAAC,KAAiB,EAAE,KAAY,EAAA;QACjC,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;KAC3E;IAED,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;KACtB;IAGD,YAAY,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE;AACvC,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACjB,IAAI,CAAC,cAAc,EAAE,CAAC;AACzB,aAAA;AACJ,SAAA;aAAM,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACxC,IAAI,CAAC,WAAW,EAAE,CAAC;AACtB,SAAA;KACJ;IAED,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAClC,SAAA;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;KACtB;IAEO,cAAc,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;YACnC,OAAO;AACV,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;AAC3D,YAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;AAC9B,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;YAC/B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;AACpC,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACjB,oBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;oBACtC,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,iBAAC,CAAC,CAAC;AACP,aAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAEjB,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBACxB,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,WAAW,CAAC,MAAK;AACjD,oBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;wBACjB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,qBAAC,CAAC,CAAC;iBACN,EAAE,EAAE,CAAC,CAAC;AACV,aAAA;AACL,SAAC,CAAC,CAAC;KACN;IAEO,iBAAiB,GAAA;QACrB,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,KAAK,GAAG,EAAE;YAChE,OAAO;AACR,SAAA;QAED,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC;AAE7F,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,oBAAoB,KAAK,YAAY,EAAE;YACpD,IAAI,CAAC,gBAAgB,GAAG,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACrD,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE;AAC7B,YAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC3B,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,gBAAgB,GAAG,GAAG,EAAE;AAC/B,YAAA,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;AAC7B,SAAA;KACJ;IAEO,WAAW,GAAA;QACf,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACtC,SAAA;QAED,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC5B,YAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACpD,SAAA;AAED,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;KACrC;IAEO,WAAW,GAAA;QACf,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1C;uGA3JQ,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2FAAd,cAAc,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAKa,gBAAgB,EArB1C,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcC,cAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAEF,cAAc,EAAA,UAAA,EAAA,CAAA;kBAlB1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;AAcC,cAAA,CAAA;AACd,iBAAA,CAAA;qNAEY,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACiE,aAAa,EAAA,CAAA;sBAAnF,SAAS;uBAAC,eAAe,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAM9D,UAAU,EAAA,CAAA;sBADhB,MAAM;gBAGA,gBAAgB,EAAA,CAAA;sBADtB,MAAM;gBAiEP,YAAY,EAAA,CAAA;sBADX,YAAY;uBAAC,YAAY,CAAA;;;AC/GvB,MAAM,WAAW,GAAG;IACvB,OAAO,CAAC,YAAY,EAAE;AAClB,QAAA,KAAK,CAAC,iEAAiE,EACnE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACvD,UAAU,CAAC,kBAAkB,EAAE;AAC3B,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,SAAS,EAAE,kBAAkB;AAC7B,gBAAA,MAAM,EAAE,CAAC;aACZ,CAAC;AACF,YAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;AAC3B,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,MAAM,EAAE,GAAG;AACd,aAAA,CAAC,CAAC;YACH,OAAO,CAAC,oBAAoB,CAAC;SAChC,CAAC;QACF,UAAU,CAAC,kBAAkB,EAAE;AAC3B,YAAA,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC;AAC5B,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,SAAS,EAAE,kBAAkB;AAChC,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC;AAC5B,gBAAA,MAAM,EAAE,CAAC;AACZ,aAAA,CAAC,CAAC;SACN,CAAC;QACF,UAAU,CAAC,iBAAiB,EAAE;AAC1B,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,SAAS,EAAE,mBAAmB;AAC9B,gBAAA,MAAM,EAAE,CAAC;aACZ,CAAC;AACF,YAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;AAC3B,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,MAAM,EAAE,GAAG;AACd,aAAA,CAAC,CAAC;YACH,OAAO,CAAC,oBAAoB,CAAC;SAChC,CAAC;QACF,UAAU,CAAC,iBAAiB,EAAE;AAC1B,YAAA,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC;AACjC,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,SAAS,EAAE,mBAAmB;AACjC,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC;AAC5B,gBAAA,MAAM,EAAE,CAAC;AACZ,aAAA,CAAC,CAAC;SACN,CAAC;QACF,UAAU,CAAC,mBAAmB,EAAE;AAC5B,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,SAAS,EAAE,mBAAmB;AAC9B,gBAAA,MAAM,EAAE,CAAC;aACZ,CAAC;AACF,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC;AAC1B,oBAAA,MAAM,EAAE,GAAG;AACd,iBAAA,CAAC,CAAC;AACH,gBAAA,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC;AAC1B,oBAAA,SAAS,EAAE,gBAAgB;AAC9B,iBAAA,CAAC,CAAC;AACH,gBAAA,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC;AAC/B,oBAAA,OAAO,EAAE,CAAC;AACb,iBAAA,CAAC,CAAC;aACN,CAAC;SACL,CAAC;AACF,QAAA,UAAU,CAAC,mBAAmB,EAAE,KAAK,CAAC;AAClC,YAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;AAC3B,gBAAA,OAAO,EAAE,CAAC;AACb,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;AAC3B,gBAAA,SAAS,EAAE,mBAAmB;AACjC,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,CAAC,oBAAoB,EAAE,KAAK,CAAC;AAChC,gBAAA,MAAM,EAAE,CAAC;AACZ,aAAA,CAAC,CAAC;AACN,SAAA,CAAC,CAAC;QACH,UAAU,CAAC,iBAAiB,EAAE;AAC1B,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,SAAS,EAAE,mBAAmB;AAC9B,gBAAA,MAAM,EAAE,CAAC;aACZ,CAAC;AACF,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC;AAC1B,oBAAA,MAAM,EAAE,GAAG;AACd,iBAAA,CAAC,CAAC;AACH,gBAAA,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC;AAC1B,oBAAA,SAAS,EAAE,gBAAgB;AAC9B,iBAAA,CAAC,CAAC;AACH,gBAAA,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC;AAC/B,oBAAA,OAAO,EAAE,CAAC;AACb,iBAAA,CAAC,CAAC;aACN,CAAC;SACL,CAAC;AACF,QAAA,UAAU,CAAC,iBAAiB,EAAE,KAAK,CAAC;AAChC,YAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;AAC3B,gBAAA,OAAO,EAAE,CAAC;AACb,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;AAC3B,gBAAA,SAAS,EAAE,mBAAmB;AACjC,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC;AACjC,gBAAA,MAAM,EAAE,CAAC;AACZ,aAAA,CAAC,CAAC;AACN,SAAA,CAAC,CAAC;QACH,UAAU,CAAC,cAAc,EAAE;AACvB,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,MAAM,EAAE,CAAC;aACZ,CAAC;AACF,YAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;AAC3B,gBAAA,MAAM,EAAE,GAAG;AACd,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;AAC3B,gBAAA,OAAO,EAAE,CAAC;AACb,aAAA,CAAC,CAAC;SAEN,CAAC;QACF,UAAU,CAAC,cAAc,EAAE;AACvB,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;;;AAG3B,oBAAA,qBAAqB,EAAE,UAAU;AACpC,iBAAA,CAAC,CAAC;AACH,gBAAA,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC;AAC5B,oBAAA,OAAO,EAAE,CAAC;AACV,oBAAA,kBAAkB,EAAE,EAAE;AACzB,iBAAA,CAAC,CAAC;AACH,gBAAA,OAAO,CAAC,oBAAoB,EAAE,KAAK,CAAC;AAChC,oBAAA,MAAM,EAAE,CAAC;AACZ,iBAAA,CAAC,CAAC;aACN,CAAC;SACL,CAAC;KACL,CAAC;CACL;;ACtIY,MAAA,kBAAkB,GAAsC;AACjE,IAAA,KAAK,EAAE,aAAa;AACpB,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,OAAO,EAAE,eAAe;AACxB,IAAA,OAAO,EAAE,eAAe;EAC1B;AAEW,MAAA,kBAAkB,GAAsC;AACjE,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,OAAO,EAAE,cAAc;AACvB,IAAA,OAAO,EAAE,cAAc;EACzB;MA4BW,aAAa,CAAA;AACtB,IAAA,KAAK,CAAe;AACpB,IAAA,YAAY,CAAU;AACtB,IAAA,eAAe,CAA2C;AAC1D,IAAA,SAAS,CAAS;AAClB,IAAA,WAAW,CAAU;AACrB,IAAA,OAAO,CAAyC;AAChD,IAAA,WAAW,CAAkC;AAC7C,IAAA,WAAW,CAAkC;AAC7C,IAAA,cAAc,CAAiB;AAC/B,IAAA,YAAY,CAAS;AACrB,IAAA,gBAAgB,CAAY;;;;;AAK5B,IAAA,aAAa,CAAS;AACtB,IAAA,UAAU,CAAS;AACnB,IAAA,YAAY,CAAS;AACrB,IAAA,SAAS,CAAS;AAClB,IAAA,iBAAiB,CAAU;AAC3B,IAAA,kBAAkB,CAAU;AAC5B,IAAA,gBAAgB,CAAe;AAE/B,IAAA,WAAA,CAAY,eAAgC,EAAA;AACxC,QAAA,eAAe,GAAG,eAAe,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,IAAI,IAAI,CAAC;AAC3C,QAAA,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,IAAI,IAAI,GAAG,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC;AAC/F,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,eAAe,IAAI,IAAI,GAAG,eAAe,CAAC,eAAe,GAAG,KAAK,CAAC;QACzG,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,IAAI,sBAAsB,CAAC;AACrE,QAAA,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,WAAW,IAAI,IAAI,GAAG,eAAe,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5F,QAAA,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,IAAI,IAAI,GAAG,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;QAChF,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,WAAW,IAAI,kBAAkB,CAAC;QACrE,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,WAAW,IAAI,kBAAkB,CAAC;QACrE,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,cAAc,IAAI,cAAc,CAAC,OAAO,CAAC;QAC/E,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,IAAI,sBAAsB,CAAC;QAC3E,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,IAAI,MAAM,CAAC;QACnE,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,aAAa,IAAI,iBAAiB,CAAC;QACxE,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,IAAI,aAAa,CAAC;QAC9D,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,IAAI,eAAe,CAAC;QACpE,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,IAAI,EAAE,CAAC;AACjD,QAAA,IAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC,iBAAiB,IAAI,IAAI,GAAG,eAAe,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/G,QAAA,IAAI,CAAC,kBAAkB,GAAG,eAAe,CAAC,kBAAkB,IAAI,IAAI,GAAG,eAAe,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAClH,QAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,IAAI,IAAI,GAAG,eAAe,CAAC,gBAAgB,GAAG,IAAI,CAAC;KAC9G;uGA5CQ,aAAa,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;2GAAb,aAAa,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;;;ACvCX;AACA,MAAM,IAAI,CAAA;AACN,IAAA,OAAO,OAAO,GAAA;AACV,QAAA,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAS,CAAC,EAAA;AACrE,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,IAAK,CAAC,GAAG,GAAG,GAAG,GAAG,CAAE,CAAC;AACxE,YAAA,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC1B,SAAC,CAAC,CAAC;KACN;AACJ,CAAA;MAGY,cAAc,CAAA;AACvB,IAAA,QAAQ,CAAoB;AACpB,IAAA,SAAS,CAAkB;AAEnC,IAAA,WAAW,CAA4B;AAC/B,IAAA,YAAY,CAA0B;AAE9C,IAAA,WAAW,CAA4B;;AAEvC,IAAA,mBAAmB,CAAyB;AAE5C;;AAEG;AACH,IAAA,WAAA,GAAA;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,UAAU,CAAQ,CAAC,QAAa,KAAK,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAClG,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAgB,CAAC,QAAa,KAAK,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AAChH,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,OAAO,EAAiB,CAAA;AACvD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;KAC7D;AAED;;;;;;;;AAQG;AACH,IAAA,GAAG,CAAC,IAAuB,EAAE,KAAc,EAAE,IAAa,EAAA;QACtD,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AAEzF,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AAChB,YAAA,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;AAClC,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,YAAA,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;AACrF,SAAA;AAED,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,QAAA,OAAO,KAAK,CAAC;KAChB;AAED;;;;;;;;;AASG;AACH,IAAA,QAAQ,CAAC,IAAuB,EAAE,KAAc,EAAE,IAAa,EAAA;QAC3D,UAAU,CAAC,MAAK;YACZ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SAC/B,EAAE,CAAC,CAAC,CAAC;QAEN,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;AAED;;;;;;AAMG;IACH,KAAK,CAAC,OAAgB,EAAE,gBAAyB,EAAA;AAC7C,QAAA,MAAM,YAAY,GAAkB;AAChC,YAAA,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB;SACvD,CAAC;AAEF,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;KACvC;uGA5EQ,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cADD,MAAM,EAAA,CAAA,CAAA;;2FACnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCiBrB,yBAAyB,CAAA;AAC1B,IAAA,kBAAkB,CAAM;AACxB,IAAA,qBAAqB,CAAM;AAC3B,IAAA,cAAc,CAAiB;AAE9B,IAAA,aAAa,CAAgB;IAE/B,MAAM,GAAY,EAAE,CAAC;AAE5B,IAAA,WAAA,CAAY,cAA8B,EAAA;AACtC,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;KACxC;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;AAC5C,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAC5C,SAAA;KACJ;;IAGD,KAAK,CAAC,KAAY,EAAE,aAAuB,EAAA;QACvC,IAAI,KAAK,CAAC,eAAe,EAAE;AACvB,YAAA,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,SAAA;QAED,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC;cAC1D,KAAK,CAAC,YAAY;AACpB,cAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;QAEtC,IAAI,YAAY,KAAK,KAAK,CAAC,eAAe,IAAI,aAAa,CAAC,EAAE;AAC1D,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC3B,SAAA;KACJ;AAED,IAAA,UAAU,CAAC,MAAW,EAAA;AAClB,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KAC9D;AAED,IAAA,WAAW,CAAC,KAAY,EAAA;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,KAAK,GAAG,CAAC,EAAE;YAAE,OAAM;AAAE,SAAA;QAAA,CAAC;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAE7C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAE7B,IAAI,KAAK,CAAC,cAAc,EAAE;AAAE,YAAA,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAAE,SAAA;AAC1D,QAAA,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;KAChH;;IAGO,mBAAmB,GAAA;AACvB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAY,KAAI;AAC9E,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzB,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,YAA2B,KAAI;AACnG,YAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AACnC,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,QAAQ,CAAC,KAAY,EAAA;QACzB,IAAI,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB;eAC1D,KAAK,CAAC,gBAAgB,KAAK,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE;YAAE,OAAM;AAAE,SAAA;QAAA,CAAC;QAElF,IAAI,CAAC,KAAK,CAAC,IAAI;eACR,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;eAC3C,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAChD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;AACpD,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAChE,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,EAAE;gBACrE,OAAO;AACV,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE;gBACrD,OAAO;AACV,aAAA;AACJ,SAAA;QAED,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;YAC/C,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,KAAK,QAAQ,EAAE;AACxD,gBAAA,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1E,aAAA;iBAAM,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,KAAK,SAAS,EAAE;gBAChE,KAAK,CAAC,eAAe,GAAY,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;AACvE,aAAA;AACJ,SAAA;QAED,IAAI,KAAK,CAAC,eAAe,EAAE;AACvB,YAAA,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;AACrE,SAAA;AAED,QAAA,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;AAEjF,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;AAChC,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC3B,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AACxB,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AACrB,aAAA;AACJ,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AACxB,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AACvB,aAAA;AACJ,SAAA;QAED,IAAI,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAA;KACJ;IAEO,eAAe,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;KACpF;IAEO,eAAe,GAAA;AACnB,QAAA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,SAAA;KACJ;AAEO,IAAA,WAAW,CAAC,YAA2B,EAAA;AAC3C,QAAA,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAE;AACtC,QAAA,MAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAC;AAEvD,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,gBAAgB,KAAK,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE;AACxG,YAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACnC,SAAA;KACJ;AAEO,IAAA,iBAAiB,CAAC,OAAgB,EAAA;AACtC,QAAA,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,eAAe,EAAE,CAAC;AAC1B,SAAA;KACJ;AAEO,IAAA,gBAAgB,CAAC,KAAY,EAAA;AACjC,QAAA,OAAO,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;KAC9B;AAEO,IAAA,iBAAiB,CAAC,KAAU,EAAA;QAChC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,CAAC;KACzD;IAED,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;AAAE,SAAA;QACvE,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAAE,YAAA,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;AAAE,SAAA;KAChF;uGArJQ,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAnBxB,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;AAgBL,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EACO,WAAW,EAAA,CAAA,CAAA;;2FAEd,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBArBrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;AAgBL,QAAA,CAAA;AACL,oBAAA,UAAU,EAAE,WAAW;AAC1B,iBAAA,CAAA;kGAMY,aAAa,EAAA,CAAA;sBAArB,KAAK;;;MCnBG,aAAa,CAAA;AACtB,IAAA,OAAO,OAAO,GAAA;QACV,OAAO;AACH,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,SAAS,EAAE,CAAC,cAAc,EAAE,yBAAyB,CAAC;SACzD,CAAA;KACJ;AAED,IAAA,OAAO,QAAQ,GAAA;QACX,OAAO;AACH,YAAA,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,CAAC,yBAAyB,CAAC;SACzC,CAAA;KACJ;uGAbQ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,Q