{"version":3,"file":"sixbell-telco-sdk-components-dialog.mjs","sources":["../../../projects/sdk/components/dialog/dialog-actions/dialog-actions.component.ts","../../../projects/sdk/components/dialog/dialog-actions/dialog-actions.component.html","../../../projects/sdk/components/dialog/dialog-content/dialog-content.component.ts","../../../projects/sdk/components/dialog/dialog-content/dialog-content.component.html","../../../projects/sdk/components/dialog/dialog-sub-title/dialog-sub-title.component.ts","../../../projects/sdk/components/dialog/dialog-sub-title/dialog-sub-title.component.html","../../../projects/sdk/components/dialog/dialog-title/dialog-title.component.ts","../../../projects/sdk/components/dialog/dialog-title/dialog-title.component.html","../../../projects/sdk/components/dialog/src/dialog.component.ts","../../../projects/sdk/components/dialog/src/dialog.component.html","../../../projects/sdk/components/dialog/sixbell-telco-sdk-components-dialog.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { cn } from '@sixbell-telco/sdk/utils/cn';\n\nexport type ModalActionsAligmentProps = 'left' | 'right' | 'center';\n\n@Component({\n\tselector: 'st-dialog-actions',\n\timports: [CommonModule],\n\ttemplateUrl: './dialog-actions.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DialogActionsComponent {\n\t// Base table properties\n\talignment = input<ModalActionsAligmentProps>('left');\n\n\tcomponentClass = computed(() =>\n\t\tcn('modal-action font-body leading-normal text-pretty', {\n\t\t\t'justify-start': this.alignment() === 'left',\n\t\t\t'justify-end': this.alignment() === 'right',\n\t\t\t'justify-center': this.alignment() === 'center',\n\t\t}),\n\t);\n}\n","<div [class]=\"componentClass()\">\n\t<ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n\tselector: 'st-dialog-content',\n\timports: [CommonModule],\n\ttemplateUrl: './dialog-content.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DialogContentComponent {}\n","<ng-content></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { TextDirective } from '@sixbell-telco/sdk/directives/text';\n\n@Component({\n\tselector: 'st-dialog-sub-title',\n\timports: [CommonModule, TextDirective],\n\ttemplateUrl: './dialog-sub-title.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DialogSubTitleComponent {}\n","<div class=\"text-base-content/80 mb-3\">\n\t<p stText=\"6\" stTextWeight=\"normal\">\n\t\t<ng-content></ng-content>\n\t</p>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, signal } from '@angular/core';\nimport { TextDirective } from '@sixbell-telco/sdk/directives/text';\nimport { cn } from '@sixbell-telco/sdk/utils/cn';\n\n@Component({\n\tselector: 'st-dialog-title',\n\timports: [CommonModule, TextDirective],\n\ttemplateUrl: './dialog-title.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DialogTitleComponent {\n\t/** Internal signal that indicates whether a subtitle is present in the dialog */\n\tprivate readonly hasSubTitle = signal(false);\n\n\tsetHasSubTitle(value: boolean) {\n\t\tthis.hasSubTitle.set(value);\n\t}\n\n\tcomponentClass = computed(() =>\n\t\tcn({\n\t\t\t'mb-3': !this.hasSubTitle(),\n\t\t\t'mb-1': this.hasSubTitle(),\n\t\t}),\n\t);\n}\n","<div [class]=\"componentClass()\">\n\t<h2 stText=\"2\" stTextWeight=\"medium\" stTextColor=\"base\">\n\t\t<ng-content></ng-content>\n\t</h2>\n</div>\n","import { Dialog, DialogConfig, DialogRef } from '@angular/cdk/dialog';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChild,\n\tDestroyRef,\n\teffect,\n\tinject,\n\tinput,\n\tmodel,\n\toutput,\n\tsignal,\n\tTemplateRef,\n\tviewChild,\n} from '@angular/core';\nimport { cn } from '@sixbell-telco/sdk/utils/cn';\nimport { cva } from 'class-variance-authority';\nimport { Subscription } from 'rxjs';\nimport { DialogSubTitleComponent } from '../dialog-sub-title/dialog-sub-title.component';\nimport { DialogTitleComponent } from '../dialog-title/dialog-title.component';\n\n/** Dropdown X position options for CDK overlay positioning */\nexport type DialogXPosition = 'start' | 'center' | 'end';\n\n/** Dropdown Y position options for CDK overlay positioning */\nexport type DialogYPosition = 'top' | 'center' | 'bottom';\n\n/**\n * CSS class generator for dialog component variants\n * Uses carefully selected DaisyUI classes that don't conflict with CDK positioning\n * @internal\n */\nexport const dialogComponent = cva(\n\t[\n\t\t'bg-base-200',\n\t\t'rounded-box',\n\t\t'shadow-backdrop',\n\t\t'p-6',\n\t\t'text-base-content',\n\t\t'relative',\n\t\t'data-[state=closed]:animate-exit data-[state=open]:animate-enter',\n\t],\n\t{\n\t\tvariants: {\n\t\t\twidth: {\n\t\t\t\txs: ['w-64'],\n\t\t\t\tsm: ['w-80'],\n\t\t\t\tmd: ['w-96'],\n\t\t\t\tlg: ['w-[32rem]'],\n\t\t\t\txl: ['w-[36rem]'],\n\t\t\t\t'2xl': ['w-[42rem]'],\n\t\t\t\t'3xl': ['w-[48rem]'],\n\t\t\t\t'4xl': ['w-[56rem]'],\n\t\t\t\t'5xl': ['w-[64rem]'],\n\t\t\t},\n\t\t},\n\t\tcompoundVariants: [],\n\t\tdefaultVariants: {\n\t\t\twidth: 'md',\n\t\t},\n\t},\n);\n\n/** Possible width values for the dialog component */\nexport type DialogWidthProps = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | null | undefined;\n\n/** Animation states for the dialog */\ntype AnimationState = 'closed' | 'open';\n\n/** Configuration properties for the dialog component */\nexport type DialogProps = {\n\twidth?: DialogWidthProps;\n};\n\n/**\n * A customizable dialog component using Angular CDK Dialog for declarative usage\n *\n * @remarks\n * This component provides a declarative way to create dialogs with content projection.\n * Uses CDK Dialog under the hood to avoid z-index issues with native dialog elements.\n *\n * @example\n * ```html\n * <st-dialog\n *   [(opened)]=\"isDialogOpen\"\n *   width=\"lg\"\n *   alignment=\"center\"\n *   (closed)=\"handleDialogClosed()\">\n *   <st-dialog-title>Confirm Action</st-dialog-title>\n *   <st-dialog-content>\n *     Are you sure you want to proceed?\n *   </st-dialog-content>\n *   <st-dialog-actions>\n *     <st-button (click)=\"confirmAction()\">Confirm</st-button>\n *     <st-button variant=\"secondary\" (click)=\"closeDialog()\">Cancel</st-button>\n *   </st-dialog-actions>\n * </st-dialog>\n * ```\n */\n@Component({\n\tselector: 'st-dialog',\n\timports: [CommonModule],\n\ttemplateUrl: './dialog.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DialogComponent {\n\t/** @internal Content children to detect what's projected */\n\tprivate readonly titleComponent = contentChild(DialogTitleComponent);\n\tprivate readonly subTitleComponent = contentChild(DialogSubTitleComponent);\n\n\t/** @internal Signals for conditional styling */\n\thasTitle = signal(false);\n\thasSubTitle = signal(false);\n\n\tprivate readonly destroyRef = inject(DestroyRef);\n\n\tprivate readonly contentEffect = effect(() => {\n\t\tconst titleInstance = this.titleComponent();\n\t\tconst subTitleInstance = this.subTitleComponent();\n\n\t\tconst hasSub = !!subTitleInstance;\n\t\tthis.hasTitle.set(!!titleInstance);\n\t\tthis.hasSubTitle.set(hasSub);\n\n\t\ttitleInstance?.setHasSubTitle?.(hasSub);\n\t});\n\n\t/**\n\t * Specifies the maximum width of the dialog content\n\t * @defaultValue 'md'\n\t */\n\twidth = input<DialogWidthProps>('md');\n\n\t/**\n\t * Controls the horizontal positioning of the dialog (x-axis)\n\t * @defaultValue 'center'\n\t */\n\txPosition = input<DialogXPosition>('center');\n\n\t/**\n\t * Controls the vertical positioning of the dialog (y-axis)\n\t * @defaultValue 'center'\n\t */\n\tyPosition = input<DialogYPosition>('center');\n\n\t/**\n\t * Controls the visibility state of the dialog\n\t * Supports two-way binding via Angular's model\n\t */\n\topened = model<boolean>(false);\n\n\t/** Event emitted when the dialog closes */\n\tclosed = output<void>();\n\n\t/** Event emitted when clicking outside the dialog content */\n\tclickOutside = output<void>();\n\n\t/**\n\t * Stop event propagation for activation events\n\t * @defaultValue false\n\t */\n\tstopPropagation = input<boolean>(false);\n\n\t/**\n\t * Event emitted on click\n\t */\n\tclicked = output<MouseEvent>();\n\n\t/**\n\t * Event emitted on pointer down\n\t */\n\tpointerDown = output<PointerEvent>();\n\n\t/**\n\t * Event emitted on Enter keydown\n\t */\n\tkeyDownEnter = output<KeyboardEvent>();\n\n\t/**\n\t * Event emitted on Space keydown\n\t */\n\tkeyDownSpace = output<KeyboardEvent>();\n\n\t/**\n\t * Event emitted on activation (click or keyboard)\n\t */\n\ttriggered = output<void>();\n\n\t/** @internal CDK Dialog service */\n\tprivate readonly dialog = inject(Dialog);\n\n\t/** @internal CDK Overlay service for positioning */\n\tprivate readonly overlay = inject(Overlay);\n\n\t/** @internal Reference to the dialog template */\n\tdialogTemplate = viewChild<TemplateRef<unknown>>('dialogTemplate');\n\n\t/** @internal Reference to the current open dialog */\n\tprivate dialogRef: DialogRef<unknown> | null = null;\n\n\t/** @internal Subscriptions for CDK dialog observables so we can clean up on destroy */\n\tprivate subs = new Subscription();\n\n\t/** @internal Animation state signal for controlling CSS animations */\n\tprivate readonly animationState = signal<AnimationState>('closed');\n\n\t/** @internal Flag to track if we're in the process of closing */\n\tprivate isClosing = false;\n\n\t/**\n\t * Computes the data-state attribute value for CSS animations\n\t * @returns Current animation state\n\t * @internal\n\t */\n\tdataState = computed(() => this.animationState());\n\n\t/**\n\t * Computes CSS classes for dialog content based on current configuration\n\t * @returns Combined Tailwind classes string\n\t * @internal\n\t */\n\tcomponentClass = computed(() => {\n\t\treturn cn(\n\t\t\tdialogComponent({\n\t\t\t\twidth: this.width(),\n\t\t\t}),\n\t\t);\n\t});\n\n\t/** @internal Handles open/close state changes */\n\topenedEffect = effect(() => {\n\t\tif (this.opened()) {\n\t\t\tthis.openDialog();\n\t\t} else {\n\t\t\tthis.closeDialog();\n\t\t}\n\t});\n\n\t/**\n\t * Computed CDK Dialog configuration based on x/y axis signals\n\t * Uses CDK's overlay positioning system for full axis control\n\t * @internal\n\t */\n\tprivate readonly dialogConfig = computed<DialogConfig>(() => {\n\t\tconst x = this.xPosition();\n\t\tconst y = this.yPosition();\n\n\t\tconst baseConfig: DialogConfig = {\n\t\t\thasBackdrop: true,\n\t\t\tdisableClose: true, // Prevent automatic close, we handle it manually for animations\n\t\t\tautoFocus: true,\n\t\t\trestoreFocus: true,\n\t\t\tbackdropClass: ['bg-backdrop'],\n\t\t\tpanelClass: ['st-dialog-panel'],\n\t\t\t// Use noop scroll strategy to prevent body scroll changes that affect sticky navbar\n\t\t\tscrollStrategy: this.overlay.scrollStrategies.noop(),\n\t\t};\n\n\t\tlet positionStrategy = this.overlay.position().global();\n\n\t\t// X axis\n\t\tswitch (x) {\n\t\t\tcase 'start':\n\t\t\t\tpositionStrategy = positionStrategy.left('2rem');\n\t\t\t\tbreak;\n\t\t\tcase 'end':\n\t\t\t\tpositionStrategy = positionStrategy.right('2rem');\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tpositionStrategy = positionStrategy.centerHorizontally();\n\t\t\t\tbreak;\n\t\t}\n\n\t\t// Y axis\n\t\tswitch (y) {\n\t\t\tcase 'top':\n\t\t\t\tpositionStrategy = positionStrategy.top('2rem');\n\t\t\t\tbreak;\n\t\t\tcase 'bottom':\n\t\t\t\tpositionStrategy = positionStrategy.bottom('2rem');\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tpositionStrategy = positionStrategy.centerVertically();\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn {\n\t\t\t...baseConfig,\n\t\t\tpositionStrategy,\n\t\t};\n\t});\n\n\t/**\n\t * Opens the dialog using CDK Dialog\n\t * @internal\n\t */\n\tprivate openDialog() {\n\t\tif (this.dialogRef || !this.dialogTemplate()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.dialogRef = this.dialog.open(this.dialogTemplate()!, this.dialogConfig() as DialogConfig<unknown, DialogRef<unknown, unknown>>);\n\n\t\t// Set open state for animation\n\t\tthis.animationState.set('open');\n\t\tthis.isClosing = false;\n\n\t\t// Handle dialog close events\n\t\tthis.subs.add(\n\t\t\tthis.dialogRef.closed.subscribe(() => {\n\t\t\t\t// tear down current subscriptions to avoid re-entrancy or emits after destroy\n\t\t\t\tthis.subs.unsubscribe();\n\t\t\t\t// recreate the subscription container so future opens can re-subscribe\n\t\t\t\tthis.subs = new Subscription();\n\t\t\t\tthis.dialogRef = null;\n\t\t\t\tthis.animationState.set('closed');\n\t\t\t\tthis.isClosing = false;\n\t\t\t\tif (this.opened()) {\n\t\t\t\t\tthis.opened.set(false);\n\t\t\t\t\tthis.closed.emit();\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\n\t\t// Handle backdrop clicks\n\t\tthis.subs.add(\n\t\t\tthis.dialogRef.backdropClick.subscribe(() => {\n\t\t\t\tthis.clickOutside.emit();\n\t\t\t\tthis.close();\n\t\t\t}),\n\t\t);\n\n\t\t// Handle escape key\n\t\tthis.subs.add(\n\t\t\tthis.dialogRef.keydownEvents.subscribe((event: KeyboardEvent) => {\n\t\t\t\tif (event.key === 'Escape') {\n\t\t\t\t\tthis.close();\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\t}\n\n\t/**\n\t * Public method to close the dialog\n\t * Can be called directly from parent components or child components\n\t */\n\tclose() {\n\t\t// If we have an active dialogRef, close it immediately so consumers (and tests)\n\t\t// that spy on dialogRef.close() observe the call.\n\t\tif (this.dialogRef) {\n\t\t\tthis.dialogRef.close();\n\t\t\tthis.dialogRef = null;\n\t\t}\n\n\t\t// Ensure opened flag is synchronized and notify listeners that the dialog closed\n\t\tthis.opened.set(false);\n\t\tthis.closed.emit();\n\t}\n\n\t/**\n\t * Closes the dialog using CDK Dialog\n\t * @internal\n\t */\n\tprivate closeDialog() {\n\t\tif (this.dialogRef && !this.isClosing) {\n\t\t\t// Set closing flag and closed state for animation\n\t\t\tthis.isClosing = true;\n\t\t\tthis.animationState.set('closed');\n\n\t\t\t// The actual CDK close will be triggered by the animation end event\n\t\t}\n\t}\n\n\t/**\n\t * Handles animation end events to trigger the actual dialog close\n\t * @internal\n\t */\n\tonAnimationEnd(event: AnimationEvent) {\n\t\tconst target = event.target as HTMLElement;\n\n\t\t// Only handle animations on the main dialog element\n\t\tif (target.hasAttribute('data-state') && this.isClosing && this.dialogRef) {\n\t\t\t// Animation finished, now actually close the CDK dialog\n\t\t\tthis.dialogRef.close();\n\t\t}\n\t}\n\n\t/**\n\t * Clean up CDK subscriptions and ensure the overlay is closed when the component is destroyed\n\t */\n\tprivate readonly destroyEffect = this.destroyRef.onDestroy(() => {\n\t\tthis.subs.unsubscribe();\n\t\tif (this.dialogRef) {\n\t\t\tthis.dialogRef.close?.();\n\t\t\tthis.dialogRef = null;\n\t\t}\n\t});\n\n\t/**\n\t * Handles the close button click\n\t * @internal\n\t */\n\thandleCloseClick() {\n\t\tthis.close();\n\t}\n\n\t/**\n\t * @internal\n\t * Handle click activation\n\t */\n\thandleClick(event: MouseEvent) {\n\t\tif (this.stopPropagation()) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\tthis.clicked.emit(event);\n\t\tthis.triggered.emit();\n\t\tthis.close();\n\t}\n\n\t/**\n\t * @internal\n\t * Handle pointer down activation\n\t */\n\thandlePointerDown(event: PointerEvent) {\n\t\tif (this.stopPropagation()) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\tthis.pointerDown.emit(event);\n\t}\n\n\t/**\n\t * @internal\n\t * Handle Enter key activation\n\t */\n\thandleKeyDownEnter(event: Event) {\n\t\tif (this.stopPropagation()) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\tthis.keyDownEnter.emit(event as KeyboardEvent);\n\t\tthis.triggered.emit();\n\t\tthis.close();\n\t}\n\n\t/**\n\t * @internal\n\t * Handle Space key activation\n\t */\n\thandleKeyDownSpace(event: Event) {\n\t\tevent.preventDefault();\n\t\tif (this.stopPropagation()) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\tthis.keyDownSpace.emit(event as KeyboardEvent);\n\t\tthis.triggered.emit();\n\t\tthis.close();\n\t}\n}\n","<!-- Dialog template for CDK Dialog -->\n<ng-template #dialogTemplate>\n\t<!-- Dialog content with data-driven animations -->\n\t<div [class]=\"componentClass()\" [attr.data-state]=\"dataState()\" (animationend)=\"onAnimationEnd($event)\">\n\t\t<!-- Close button -->\n\t\t<div class=\"absolute top-2 right-2\">\n\t\t\t<button\n\t\t\t\tclass=\"btn btn-circle btn-ghost btn-sm\"\n\t\t\t\t(pointerdown)=\"handlePointerDown($event)\"\n\t\t\t\t(click)=\"handleClick($event)\"\n\t\t\t\t(keydown.enter)=\"handleKeyDownEnter($event)\"\n\t\t\t\t(keydown.space)=\"handleKeyDownSpace($event)\"\n\t\t\t\taria-label=\"Close dialog\"\n\t\t\t>\n\t\t\t\t✕\n\t\t\t</button>\n\t\t</div>\n\n\t\t<!-- Content projection -->\n\t\t<ng-content select=\"st-dialog-title\"></ng-content>\n\t\t<ng-content select=\"st-dialog-sub-title\"></ng-content>\n\t\t<ng-content select=\"st-dialog-content\"></ng-content>\n\n\t\t<!-- Actions section with spacing -->\n\t\t<div class=\"flex justify-end gap-2 pt-4\">\n\t\t\t<ng-content select=\"st-dialog-actions\"></ng-content>\n\t\t</div>\n\t</div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;MAYa,sBAAsB,CAAA;;AAElC,IAAA,SAAS,GAAG,KAAK,CAA4B,MAAM,CAAC;IAEpD,cAAc,GAAG,QAAQ,CAAC,MACzB,EAAE,CAAC,mDAAmD,EAAE;AACvD,QAAA,eAAe,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,MAAM;AAC5C,QAAA,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,OAAO;AAC3C,QAAA,gBAAgB,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,QAAQ;AAC/C,KAAA,CAAC,CACF;wGAVW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZnC,2EAGA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDKW,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIV,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,WACpB,CAAC,YAAY,CAAC,EAAA,eAAA,EAEN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2EAAA,EAAA;;;MEDnC,sBAAsB,CAAA;wGAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECTnC,6BACA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDIW,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIV,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,WACpB,CAAC,YAAY,CAAC,EAAA,eAAA,EAEN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA;;;MEGnC,uBAAuB,CAAA;wGAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVpC,wIAKA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDCW,YAAY,+BAAE,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,cAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIzB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;+BACC,qBAAqB,EAAA,OAAA,EACtB,CAAC,YAAY,EAAE,aAAa,CAAC,EAAA,eAAA,EAErB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,wIAAA,EAAA;;;MEGnC,oBAAoB,CAAA;;AAEf,IAAA,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;AAE5C,IAAA,cAAc,CAAC,KAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;IAC5B;AAEA,IAAA,cAAc,GAAG,QAAQ,CAAC,MACzB,EAAE,CAAC;AACF,QAAA,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;AAC3B,QAAA,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE;AAC1B,KAAA,CAAC,CACF;wGAbW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXjC,wJAKA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDEW,YAAY,+BAAE,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,cAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIzB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACC,iBAAiB,EAAA,OAAA,EAClB,CAAC,YAAY,EAAE,aAAa,CAAC,EAAA,eAAA,EAErB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,wJAAA,EAAA;;;AEqBhD;;;;AAIG;AACI,MAAM,eAAe,GAAG,GAAG,CACjC;IACC,aAAa;IACb,aAAa;IACb,iBAAiB;IACjB,KAAK;IACL,mBAAmB;IACnB,UAAU;IACV,kEAAkE;CAClE,EACD;AACC,IAAA,QAAQ,EAAE;AACT,QAAA,KAAK,EAAE;YACN,EAAE,EAAE,CAAC,MAAM,CAAC;YACZ,EAAE,EAAE,CAAC,MAAM,CAAC;YACZ,EAAE,EAAE,CAAC,MAAM,CAAC;YACZ,EAAE,EAAE,CAAC,WAAW,CAAC;YACjB,EAAE,EAAE,CAAC,WAAW,CAAC;YACjB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,KAAK,EAAE,CAAC,WAAW,CAAC;AACpB,SAAA;AACD,KAAA;AACD,IAAA,gBAAgB,EAAE,EAAE;AACpB,IAAA,eAAe,EAAE;AAChB,QAAA,KAAK,EAAE,IAAI;AACX,KAAA;AACD,CAAA;AAcF;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;MAOU,eAAe,CAAA;;AAEV,IAAA,cAAc,GAAG,YAAY,CAAC,oBAAoB,CAAC;AACnD,IAAA,iBAAiB,GAAG,YAAY,CAAC,uBAAuB,CAAC;;AAG1E,IAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;AACxB,IAAA,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;AAEV,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAE/B,IAAA,aAAa,GAAG,MAAM,CAAC,MAAK;AAC5C,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE;AAC3C,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAEjD,QAAA,MAAM,MAAM,GAAG,CAAC,CAAC,gBAAgB;QACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC;AAClC,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;AAE5B,QAAA,aAAa,EAAE,cAAc,GAAG,MAAM,CAAC;AACxC,IAAA,CAAC,CAAC;AAEF;;;AAGG;AACH,IAAA,KAAK,GAAG,KAAK,CAAmB,IAAI,CAAC;AAErC;;;AAGG;AACH,IAAA,SAAS,GAAG,KAAK,CAAkB,QAAQ,CAAC;AAE5C;;;AAGG;AACH,IAAA,SAAS,GAAG,KAAK,CAAkB,QAAQ,CAAC;AAE5C;;;AAGG;AACH,IAAA,MAAM,GAAG,KAAK,CAAU,KAAK,CAAC;;IAG9B,MAAM,GAAG,MAAM,EAAQ;;IAGvB,YAAY,GAAG,MAAM,EAAQ;AAE7B;;;AAGG;AACH,IAAA,eAAe,GAAG,KAAK,CAAU,KAAK,CAAC;AAEvC;;AAEG;IACH,OAAO,GAAG,MAAM,EAAc;AAE9B;;AAEG;IACH,WAAW,GAAG,MAAM,EAAgB;AAEpC;;AAEG;IACH,YAAY,GAAG,MAAM,EAAiB;AAEtC;;AAEG;IACH,YAAY,GAAG,MAAM,EAAiB;AAEtC;;AAEG;IACH,SAAS,GAAG,MAAM,EAAQ;;AAGT,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;;AAGvB,IAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;;AAG1C,IAAA,cAAc,GAAG,SAAS,CAAuB,gBAAgB,CAAC;;IAG1D,SAAS,GAA8B,IAAI;;AAG3C,IAAA,IAAI,GAAG,IAAI,YAAY,EAAE;;AAGhB,IAAA,cAAc,GAAG,MAAM,CAAiB,QAAQ,CAAC;;IAG1D,SAAS,GAAG,KAAK;AAEzB;;;;AAIG;IACH,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAEjD;;;;AAIG;AACH,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;QAC9B,OAAO,EAAE,CACR,eAAe,CAAC;AACf,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,SAAA,CAAC,CACF;AACF,IAAA,CAAC,CAAC;;AAGF,IAAA,YAAY,GAAG,MAAM,CAAC,MAAK;AAC1B,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YAClB,IAAI,CAAC,UAAU,EAAE;QAClB;aAAO;YACN,IAAI,CAAC,WAAW,EAAE;QACnB;AACD,IAAA,CAAC,CAAC;AAEF;;;;AAIG;AACc,IAAA,YAAY,GAAG,QAAQ,CAAe,MAAK;AAC3D,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE;AAC1B,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE;AAE1B,QAAA,MAAM,UAAU,GAAiB;AAChC,YAAA,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,IAAI;AAClB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,CAAC,aAAa,CAAC;YAC9B,UAAU,EAAE,CAAC,iBAAiB,CAAC;;YAE/B,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE;SACpD;QAED,IAAI,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;;QAGvD,QAAQ,CAAC;AACR,YAAA,KAAK,OAAO;AACX,gBAAA,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;gBAChD;AACD,YAAA,KAAK,KAAK;AACT,gBAAA,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC;gBACjD;AACD,YAAA;AACC,gBAAA,gBAAgB,GAAG,gBAAgB,CAAC,kBAAkB,EAAE;gBACxD;;;QAIF,QAAQ,CAAC;AACR,YAAA,KAAK,KAAK;AACT,gBAAA,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC/C;AACD,YAAA,KAAK,QAAQ;AACZ,gBAAA,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC;gBAClD;AACD,YAAA;AACC,gBAAA,gBAAgB,GAAG,gBAAgB,CAAC,gBAAgB,EAAE;gBACtD;;QAGF,OAAO;AACN,YAAA,GAAG,UAAU;YACb,gBAAgB;SAChB;AACF,IAAA,CAAC,CAAC;AAEF;;;AAGG;IACK,UAAU,GAAA;QACjB,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;YAC7C;QACD;AAEA,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAG,EAAE,IAAI,CAAC,YAAY,EAAwD,CAAC;;AAGpI,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;AAC/B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;;AAGtB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CACZ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,MAAK;;AAEpC,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;;AAEvB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,YAAY,EAAE;AAC9B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;AACjC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AAClB,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACtB,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACnB;QACD,CAAC,CAAC,CACF;;AAGD,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CACZ,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,MAAK;AAC3C,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;YACxB,IAAI,CAAC,KAAK,EAAE;QACb,CAAC,CAAC,CACF;;AAGD,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CACZ,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,KAAoB,KAAI;AAC/D,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;gBAC3B,IAAI,CAAC,KAAK,EAAE;YACb;QACD,CAAC,CAAC,CACF;IACF;AAEA;;;AAGG;IACH,KAAK,GAAA;;;AAGJ,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACtB;;AAGA,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACnB;AAEA;;;AAGG;IACK,WAAW,GAAA;QAClB,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;;AAEtC,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;;QAGlC;IACD;AAEA;;;AAGG;AACH,IAAA,cAAc,CAAC,KAAqB,EAAA;AACnC,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;;AAG1C,QAAA,IAAI,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;;AAE1E,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;QACvB;IACD;AAEA;;AAEG;IACc,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAK;AAC/D,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI;AACxB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACtB;AACD,IAAA,CAAC,CAAC;AAEF;;;AAGG;IACH,gBAAgB,GAAA;QACf,IAAI,CAAC,KAAK,EAAE;IACb;AAEA;;;AAGG;AACH,IAAA,WAAW,CAAC,KAAiB,EAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YAC3B,KAAK,CAAC,eAAe,EAAE;QACxB;AACA,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;QACrB,IAAI,CAAC,KAAK,EAAE;IACb;AAEA;;;AAGG;AACH,IAAA,iBAAiB,CAAC,KAAmB,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YAC3B,KAAK,CAAC,eAAe,EAAE;QACxB;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7B;AAEA;;;AAGG;AACH,IAAA,kBAAkB,CAAC,KAAY,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YAC3B,KAAK,CAAC,eAAe,EAAE;QACxB;AACA,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAsB,CAAC;AAC9C,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;QACrB,IAAI,CAAC,KAAK,EAAE;IACb;AAEA;;;AAGG;AACH,IAAA,kBAAkB,CAAC,KAAY,EAAA;QAC9B,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YAC3B,KAAK,CAAC,eAAe,EAAE;QACxB;AACA,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAsB,CAAC;AAC9C,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;QACrB,IAAI,CAAC,KAAK,EAAE;IACb;wGA9VY,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,u+BAEoB,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACjB,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/G1E,8jCA6BA,2CD2EW,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIV,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,WACZ,CAAC,YAAY,CAAC,EAAA,eAAA,EAEN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8jCAAA,EAAA;;;AE1GhD;;AAEG;;;;"}