@obliczeniowo/elementary
Version:
Library made in Angular version 20
1 lines • 22.1 kB
Source Map (JSON)
{"version":3,"file":"obliczeniowo-elementary-dialogs.mjs","sources":["../../../../projects/components/dialogs/class/dialog-overlay-ref.ts","../../../../projects/components/dialogs/components/dialog/dialog.component.ts","../../../../projects/components/dialogs/components/dialog/dialog.component.html","../../../../projects/components/dialogs/components/dialog-header/dialog-header.component.ts","../../../../projects/components/dialogs/components/dialog-header/dialog-header.component.html","../../../../projects/components/dialogs/services/dialog.service.ts","../../../../projects/components/dialogs/components/dialog-wrapper/dialog-wrapper.component.ts","../../../../projects/components/dialogs/components/dialog-wrapper/dialog-wrapper.component.html","../../../../projects/components/dialogs/components/message-dialog/message-dialog.component.ts","../../../../projects/components/dialogs/components/message-dialog/message-dialog.component.html","../../../../projects/components/dialogs/dialogs.module.ts","../../../../projects/components/dialogs/obliczeniowo-elementary-dialogs.ts"],"sourcesContent":["import { OverlayRef } from '@angular/cdk/overlay';\nimport { TemplateRef, Type } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { DialogComponent } from '../components/dialog/dialog.component';\nimport { OverlayCloseEvent } from '../interfaces/dialog-close-event';\n\nexport class DialogOverlayRef<R = any, T = any> {\n afterClosed = new Subject<OverlayCloseEvent<R | undefined>>();\n\n constructor(\n public overlay: OverlayRef,\n public content: string | TemplateRef<any> | Type<any>,\n public data: T | undefined // pass data to modal\n ) {\n overlay.backdropClick().subscribe(() => this._close('backdropClick', undefined));\n }\n\n close(data?: R | undefined): void {\n this._close('close', data);\n }\n\n private _close(type: 'backdropClick' | 'close', data: R | undefined): void {\n const overlayContainer = this.overlay.hostElement?.parentElement;\n if (overlayContainer) {\n DialogComponent.onClose(overlayContainer);\n }\n\n this.overlay.dispose();\n this.afterClosed.next({\n type,\n data\n });\n\n this.afterClosed.complete();\n }\n}\n","import { OverlayContainer } from '@angular/cdk/overlay';\nimport {\n Component,\n ComponentRef,\n EventEmitter,\n OnInit,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { DialogOverlayRef } from '../../class/dialog-overlay-ref';\n\n@Component({\n selector: 'obl-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n standalone: false\n})\nexport class DialogComponent implements OnInit {\n private static dialogsCount: number = 0;\n\n private static onOpen() {\n DialogComponent.dialogsCount++;\n }\n\n static onClose(overlayContainer: HTMLElement) {\n if (DialogComponent.dialogsCount) {\n DialogComponent.dialogsCount--;\n }\n if (!DialogComponent.dialogsCount) {\n overlayContainer.classList.remove('modal');\n }\n }\n\n @Output() closed = new EventEmitter();\n\n afterClosed = new Subject<any>();\n\n contentType!: 'template' | 'string' | 'component';\n content!: string | TemplateRef<any> | Type<any>;\n context: any;\n\n @ViewChild('viewContainerRef', { read: ViewContainerRef })\n viewContainerRef!: ViewContainerRef;\n\n protected component: any;\n\n constructor(\n private readonly ref: DialogOverlayRef,\n private readonly overlayContainer: OverlayContainer\n ) {\n DialogComponent.onOpen();\n }\n\n close(): void {\n this._close('close', undefined);\n this.closed.emit()\n }\n\n ngOnInit(): void {\n this.content = this.ref.content;\n\n if (typeof this.content === 'string') {\n this.contentType = 'string';\n } else if (this.content instanceof TemplateRef) {\n this.contentType = 'template';\n this.context = {\n close: this.close.bind(this.ref)\n };\n } else {\n this.contentType = 'component';\n this.createComponent(this.content);\n }\n\n this.overlayContainer.getContainerElement().classList.add('modal');\n }\n\n ngOnDestroy(): void {\n this._close('close');\n this.ref?.close();\n }\n\n get template(): TemplateRef<any> {\n return this.content as unknown as TemplateRef<any>;\n }\n\n private createComponent(component: Type<any>): ComponentRef<any> {\n this.component = this.viewContainerRef.createComponent<any>(\n component,\n {\n injector: this.viewContainerRef.injector\n }\n );\n return this.component;\n }\n\n private _close(type: 'backdropClick' | 'close', data?: any): void {\n DialogComponent.onClose(this.overlayContainer.getContainerElement());\n this.closed.emit();\n\n this.ref.overlay.dispose();\n this.afterClosed.next({\n type,\n data\n });\n\n this.afterClosed.complete();\n }\n}\n","<div class=\"dialog modal-content\">\n <ng-container #viewContainerRef></ng-container>\n\n @if (contentType === 'template') {\n <ng-container\n [ngTemplateOutlet]=\"template\"\n ></ng-container>\n } @else if(contentType === 'string') {\n {{ content }}\n }\n</div>\n","import { Component, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'obl-dialog-header',\n templateUrl: './dialog-header.component.html',\n styleUrls: ['./dialog-header.component.scss'],\n standalone: false\n})\nexport class DialogHeaderComponent {\n @Output() closeAction: EventEmitter<void> = new EventEmitter<void>();\n}\n","<h2>\n <ng-content select=\"title\"></ng-content>\n</h2>\n<button oblButton (click)=\"closeAction.emit()\">\n <obl-icon name=\"cancel\"></obl-icon>\n</button>\n","import { GlobalPositionStrategy, Overlay, OverlayConfig } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Injectable, Injector, TemplateRef, Type } from '@angular/core';\nimport { DialogOverlayRef } from '../class/dialog-overlay-ref';\nimport { DialogComponent } from '../components/dialog/dialog.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogService {\n constructor(private readonly overlay: Overlay, private readonly injector: Injector) { }\n\n open<R = any, T = any>(\n content: string | TemplateRef<any> | Type<any>,\n options?: {\n data?: T,\n config?: OverlayConfig\n }\n ): DialogOverlayRef<R> {\n const configs = new OverlayConfig({\n ...{\n hasBackdrop: true,\n panelClass: ['modal', 'is-active'],\n backdropClass: 'modal-background',\n width: '500px',\n maxHeight: '100vh',\n maxWidth: '100vw',\n positionStrategy: new GlobalPositionStrategy(),\n },\n ...options?.config\n });\n\n const overlayRef = this.overlay.create(configs);\n\n const dialogOverlayRef = new DialogOverlayRef<R, T>(overlayRef, content, options?.data);\n\n const injector = this.createInjector(dialogOverlayRef, this.injector);\n overlayRef.attach(new ComponentPortal(DialogComponent, null, injector));\n\n return dialogOverlayRef;\n }\n\n createInjector(ref: DialogOverlayRef, inj: Injector): Injector {\n return Injector.create({\n providers: [\n {\n provide: Overlay,\n useValue: this.overlay\n },\n {\n provide: DialogOverlayRef,\n useValue: ref\n }\n ],\n parent: inj\n });\n }\n}\n","import { Component, OnInit, TemplateRef, ViewChild, Output, EventEmitter, input } from '@angular/core';\n\nimport { DialogOverlayRef } from './../../class/dialog-overlay-ref';\nimport { DialogService } from './../../services/dialog.service';\nimport { OverlayConfigExt } from '../../interfaces/config-ext';\n\n/**\n * A simple dialog wrapper to use with ng-content to make a job done\n *\n * @example\n *\n * <obl-dialog-wrapper header=\"I want to play a game\" #dialogWrapper>\n * <div style=\"padding: 10px\">Life or die make your choice</div>\n * <div style=\"display: flex; justify-content: flex-end; padding: 10px; background-color: aliceblue;\">\n * <button oblButton (click)=\"dialogWrapper.close()\">Life</button>\n * <button oblButton (click)=\"dialogWrapper.close()\">Die</button>\n * </div>\n * </obl-dialog-wrapper>\n *\n * <button (click)=\"dialogWrapper.open()\" oblButton>Open dialog things</button>\n */\n@Component({\n selector: 'obl-dialog-wrapper',\n templateUrl: './dialog-wrapper.component.html',\n styleUrls: ['./dialog-wrapper.component.scss'],\n standalone: false\n})\nexport class DialogWrapperComponent implements OnInit {\n header = input.required<string>();\n\n @Output() closed = new EventEmitter();\n\n @Output() cancel = new EventEmitter();\n\n @ViewChild('dialog') template!: TemplateRef<any>;\n\n data: any;\n\n protected opened = false;\n protected dialogRef: DialogOverlayRef<any, any> | undefined;\n\n constructor(private readonly dialog: DialogService) { }\n\n ngOnInit(): void {\n }\n\n ngOnDestroy(): void {\n this.dialogRef?.close();\n }\n\n open(config?: OverlayConfigExt): void {\n this.dialogRef = this.dialog.open(this.template, {\n config: {\n ...{\n width: '400px'\n },\n ...config\n }\n });\n this.opened = true;\n this.data = config?.data;\n }\n\n close(): void {\n this.dialogRef?.close();\n this.closed.emit();\n }\n}\n","<ng-template #dialog>\n <div class=\"content\">\n <obl-dialog-header (closeAction)=\"close(); cancel.emit()\">\n <ng-container ngProjectAs=\"title\">\n {{ header() }}\n </ng-container>\n </obl-dialog-header>\n <ng-content></ng-content>\n </div>\n</ng-template>\n","import { OverlayConfigExt } from '../../interfaces/config-ext';\nimport { DialogWrapperComponent } from './../dialog-wrapper/dialog-wrapper.component';\nimport { Component, input, ViewChild } from '@angular/core';\n\n/**\n * Just message dialog that you can use by HTML:\n *\n * @example\n *\n * <obl-message-dialog header=\"I want to play a game\" #message>\n * <ng-container message>\n * Live or die make your choice\n * </ng-container>\n * <ng-container buttons>\n * <button oblButton (click)=\"message.close()\">Live</button>\n * <button oblButton (click)=\"message.close()\">Die</button>\n * </ng-container>\n * </obl-message-dialog>\n *\n * <button (click)=\"message.open({ width: '600px' })\" oblButton>Open dialog things</button>\n */\n@Component({\n selector: 'obl-message-dialog',\n templateUrl: './message-dialog.component.html',\n styleUrls: ['./message-dialog.component.scss'],\n standalone: false\n})\nexport class MessageDialogComponent {\n header = input.required<string>();\n\n @ViewChild(DialogWrapperComponent) protected dialog!: DialogWrapperComponent;\n\n data: any;\n\n open(config?: OverlayConfigExt | undefined): void {\n this.dialog.open(config);\n this.data = config?.data;\n }\n\n close(): void {\n this.dialog.close();\n }\n}\n","<obl-dialog-wrapper [header]=\"header()\" #dialogWrapper>\n <div class=\"obl-dialog-message\" style=\"padding: 20px 10px 10px 10px;\">\n <ng-content select=\"[message]\"></ng-content>\n </div>\n <div class=\"obl-dialog-buttons\">\n <ng-content select=\"[buttons]\"></ng-content>\n </div>\n</obl-dialog-wrapper>","import { IconsModule } from '@obliczeniowo/elementary/icons';\nimport { ButtonsModule } from '@obliczeniowo/elementary/buttons';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogComponent } from './components/dialog/dialog.component';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { DialogHeaderComponent } from './components/dialog-header/dialog-header.component';\nimport { DialogWrapperComponent } from './components/dialog-wrapper/dialog-wrapper.component';\nimport { MessageDialogComponent } from './components/message-dialog/message-dialog.component';\n\n@NgModule({\n declarations: [\n DialogComponent,\n DialogHeaderComponent,\n DialogWrapperComponent,\n MessageDialogComponent,\n ],\n imports: [\n CommonModule,\n OverlayModule,\n ButtonsModule,\n IconsModule\n ],\n exports: [\n DialogComponent,\n DialogHeaderComponent,\n DialogWrapperComponent,\n MessageDialogComponent,\n ],\n})\nexport class DialogsModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DialogOverlayRef","i2","i1","i1.DialogService","i2.DialogHeaderComponent","i1.DialogWrapperComponent"],"mappings":";;;;;;;;;;;;;MAMa,gBAAgB,CAAA;AAIlB,IAAA,OAAA;AACA,IAAA,OAAA;AACA,IAAA,IAAA;AALT,IAAA,WAAW,GAAG,IAAI,OAAO,EAAoC;AAE7D,IAAA,WAAA,CACS,OAAmB,EACnB,OAA8C,EAC9C,IAAmB;;QAFnB,IAAO,CAAA,OAAA,GAAP,OAAO;QACP,IAAO,CAAA,OAAA,GAAP,OAAO;QACP,IAAI,CAAA,IAAA,GAAJ,IAAI;AAEX,QAAA,OAAO,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;;AAGlF,IAAA,KAAK,CAAC,IAAoB,EAAA;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;;IAGpB,MAAM,CAAC,IAA+B,EAAE,IAAmB,EAAA;QACjE,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa;QAChE,IAAI,gBAAgB,EAAE;AACpB,YAAA,eAAe,CAAC,OAAO,CAAC,gBAAgB,CAAC;;AAG3C,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,IAAI;YACJ;AACD,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;;AAE9B;;MCbY,eAAe,CAAA;AA8BP,IAAA,GAAA;AACA,IAAA,gBAAA;AA9BX,IAAA,OAAO,YAAY,GAAW,CAAC;AAE/B,IAAA,OAAO,MAAM,GAAA;QACnB,eAAe,CAAC,YAAY,EAAE;;IAGhC,OAAO,OAAO,CAAC,gBAA6B,EAAA;AAC1C,QAAA,IAAI,eAAe,CAAC,YAAY,EAAE;YAChC,eAAe,CAAC,YAAY,EAAE;;AAEhC,QAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;AACjC,YAAA,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;;;AAIpC,IAAA,MAAM,GAAG,IAAI,YAAY,EAAE;AAErC,IAAA,WAAW,GAAG,IAAI,OAAO,EAAO;AAEhC,IAAA,WAAW;AACX,IAAA,OAAO;AACP,IAAA,OAAO;AAGP,IAAA,gBAAgB;AAEN,IAAA,SAAS;IAEnB,WACmB,CAAA,GAAqB,EACrB,gBAAkC,EAAA;QADlC,IAAG,CAAA,GAAA,GAAH,GAAG;QACH,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB;QAEjC,eAAe,CAAC,MAAM,EAAE;;IAG1B,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC;AAC/B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;;IAGpB,QAAQ,GAAA;QACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO;AAE/B,QAAA,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;AACpC,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ;;AACtB,aAAA,IAAI,IAAI,CAAC,OAAO,YAAY,WAAW,EAAE;AAC9C,YAAA,IAAI,CAAC,WAAW,GAAG,UAAU;YAC7B,IAAI,CAAC,OAAO,GAAG;gBACb,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aAChC;;aACI;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;AAC9B,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;;AAGpC,QAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;;IAGpE,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AACpB,QAAA,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE;;AAGnB,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,OAAsC;;AAG5C,IAAA,eAAe,CAAC,SAAoB,EAAA;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CACpD,SAAS,EACT;AACE,YAAA,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC;AACjC,SAAA,CACF;QACD,OAAO,IAAI,CAAC,SAAS;;IAGf,MAAM,CAAC,IAA+B,EAAE,IAAU,EAAA;QACxD,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC;AACpE,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAElB,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,IAAI;YACJ;AACD,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;;uGAxFlB,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAf,eAAe,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,YAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAwBa,gBAAgB,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9CzD,6RAWA,EAAA,MAAA,EAAA,CAAA,ypDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDWa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,cAGV,KAAK,EAAA,QAAA,EAAA,6RAAA,EAAA,MAAA,EAAA,CAAA,ypDAAA,CAAA,EAAA;iHAkBT,MAAM,EAAA,CAAA;sBAAf;gBASD,gBAAgB,EAAA,CAAA;sBADf,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,kBAAkB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;;;MEtC9C,qBAAqB,CAAA;AACtB,IAAA,WAAW,GAAuB,IAAI,YAAY,EAAQ;uGADzD,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,uHCRlC,wKAMA,EAAA,MAAA,EAAA,CAAA,sYAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDEa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,cAGjB,KAAK,EAAA,QAAA,EAAA,wKAAA,EAAA,MAAA,EAAA,CAAA,sYAAA,CAAA,EAAA;8BAGT,WAAW,EAAA,CAAA;sBAApB;;;MEAU,aAAa,CAAA;AACK,IAAA,OAAA;AAAmC,IAAA,QAAA;IAAhE,WAA6B,CAAA,OAAgB,EAAmB,QAAkB,EAAA;QAArD,IAAO,CAAA,OAAA,GAAP,OAAO;QAA4B,IAAQ,CAAA,QAAA,GAAR,QAAQ;;IAExE,IAAI,CACF,OAA8C,EAC9C,OAGC,EAAA;AAED,QAAA,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC;YAChC,GAAG;AACD,gBAAA,WAAW,EAAE,IAAI;AACjB,gBAAA,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC;AAClC,gBAAA,aAAa,EAAE,kBAAkB;AACjC,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,SAAS,EAAE,OAAO;AAClB,gBAAA,QAAQ,EAAE,OAAO;gBACjB,gBAAgB,EAAE,IAAI,sBAAsB,EAAE;AAC/C,aAAA;YACD,GAAG,OAAO,EAAE;AACb,SAAA,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;AAE/C,QAAA,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAO,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;AAEvF,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC;AACrE,QAAA,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,eAAe,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAEvE,QAAA,OAAO,gBAAgB;;IAGzB,cAAc,CAAC,GAAqB,EAAE,GAAa,EAAA;QACjD,OAAO,QAAQ,CAAC,MAAM,CAAC;AACrB,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,OAAO;oBAChB,QAAQ,EAAE,IAAI,CAAC;AAChB,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,gBAAgB;AACzB,oBAAA,QAAQ,EAAE;AACX;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACT,SAAA,CAAC;;uGA9CO,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAb,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA;;2FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACFD;;;;;;;;;;;;;;AAcG;MAOU,sBAAsB,CAAA;AAcJ,IAAA,MAAA;AAb7B,IAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAU;AAEvB,IAAA,MAAM,GAAG,IAAI,YAAY,EAAE;AAE3B,IAAA,MAAM,GAAG,IAAI,YAAY,EAAE;AAEhB,IAAA,QAAQ;AAE7B,IAAA,IAAI;IAEM,MAAM,GAAG,KAAK;AACd,IAAA,SAAS;AAEnB,IAAA,WAAA,CAA6B,MAAqB,EAAA;QAArB,IAAM,CAAA,MAAA,GAAN,MAAM;;IAEnC,QAAQ,GAAA;;IAGR,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE;;AAGzB,IAAA,IAAI,CAAC,MAAyB,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC/C,YAAA,MAAM,EAAE;gBACN,GAAG;AACD,oBAAA,KAAK,EAAE;AACR,iBAAA;AACD,gBAAA,GAAG;AACJ;AACF,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,EAAE,IAAI;;IAG1B,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;;uGAtCT,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,0WC3BnC,oSAUA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDiBa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,cAGlB,KAAK,EAAA,QAAA,EAAA,oSAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;+EAKT,MAAM,EAAA,CAAA;sBAAf;gBAES,MAAM,EAAA,CAAA;sBAAf;gBAEoB,QAAQ,EAAA,CAAA;sBAA5B,SAAS;uBAAC,QAAQ;;;AE9BrB;;;;;;;;;;;;;;;;AAgBG;MAOU,sBAAsB,CAAA;AACjC,IAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAU;AAEY,IAAA,MAAM;AAEnD,IAAA,IAAI;AAEJ,IAAA,IAAI,CAAC,MAAqC,EAAA;AACxC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,EAAE,IAAI;;IAG1B,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;;uGAbV,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAtB,sBAAsB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGtB,sBAAsB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9BnC,kVAOqB,EAAA,MAAA,EAAA,CAAA,+IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDoBR,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,cAGlB,KAAK,EAAA,QAAA,EAAA,kVAAA,EAAA,MAAA,EAAA,CAAA,+IAAA,CAAA,EAAA;8BAK0B,MAAM,EAAA,CAAA;sBAAlD,SAAS;uBAAC,sBAAsB;;;MEAtB,aAAa,CAAA;uGAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,iBAlBtB,eAAe;YACf,qBAAqB;YACrB,sBAAsB;AACtB,YAAA,sBAAsB,aAGtB,YAAY;YACZ,aAAa;YACb,aAAa;AACb,YAAA,WAAW,aAGX,eAAe;YACf,qBAAqB;YACrB,sBAAsB;YACtB,sBAAsB,CAAA,EAAA,CAAA;AAGb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAZtB,YAAY;YACZ,aAAa;YACb,aAAa;YACb,WAAW,CAAA,EAAA,CAAA;;2FASF,aAAa,EAAA,UAAA,EAAA,CAAA;kBApBzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,eAAe;wBACf,qBAAqB;wBACrB,sBAAsB;wBACtB,sBAAsB;AACvB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,aAAa;wBACb;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,eAAe;wBACf,qBAAqB;wBACrB,sBAAsB;wBACtB,sBAAsB;AACvB,qBAAA;AACF,iBAAA;;;AC7BD;;AAEG;;;;"}