@educarehq/solaris-components 0.6.3 → 0.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/educarehq-solaris-components.mjs +2357 -2142
- package/fesm2022/educarehq-solaris-components.mjs.map +1 -1
- package/package.json +13 -5
- package/styles/actions/button/button.styles.scss +313 -288
- package/styles/forms/input-text/input-text.styles.scss +25 -18
- package/styles/foundations/_app-defaults.scss +38 -0
- package/styles/layouts/dialog/dialog.styles.scss +40 -35
- package/styles/solaris-app.scss +7 -0
- package/styles/solaris-components.scss +4 -4
- package/styles/visual/avatar.styles.scss +6 -6
- package/types/educarehq-solaris-components.d.ts +354 -330
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"educarehq-solaris-components.mjs","sources":["../../../projects/solaris-components/src/lib/navigations/dropdown/content/directives/dropdown-content-trigger.directive.ts","../../../projects/solaris-components/src/lib/navigations/dropdown/content/directives/dropdown-content-panel.directive.ts","../../../projects/solaris-components/src/lib/navigations/dropdown/content/service/dropdown-content-registry.service.ts","../../../projects/solaris-components/src/lib/navigations/dropdown/content/component/dropdown-content.ts","../../../projects/solaris-components/src/lib/navigations/dropdown/content/component/dropdown-content.html","../../../projects/solaris-components/src/lib/navigations/broadcrumb/component/breadcrumb.ts","../../../projects/solaris-components/src/lib/navigations/broadcrumb/component/breadcrumb.html","../../../projects/solaris-components/src/lib/navigations/stepper/item/component/stepper-item.ts","../../../projects/solaris-components/src/lib/navigations/stepper/item/component/stepper-item.html","../../../projects/solaris-components/src/lib/feedbacks/badge/component/badge.ts","../../../projects/solaris-components/src/lib/feedbacks/badge/component/badge.html","../../../projects/solaris-components/src/lib/navigations/stepper/component/stepper.ts","../../../projects/solaris-components/src/lib/navigations/stepper/component/stepper.html","../../../projects/solaris-components/src/lib/navigations/popover/directives/popover-trigger.directive.ts","../../../projects/solaris-components/src/lib/navigations/popover/directives/popover-panel.directive.ts","../../../projects/solaris-components/src/lib/navigations/popover/model/popover.type.ts","../../../projects/solaris-components/src/lib/navigations/popover/component/popover.ts","../../../projects/solaris-components/src/lib/navigations/popover/component/popover.html","../../../projects/solaris-components/src/lib/navigations/tabs/component/tabs.ts","../../../projects/solaris-components/src/lib/navigations/tabs/component/tabs.html","../../../projects/solaris-components/src/lib/navigations/tabs/tab/component/tab.ts","../../../projects/solaris-components/src/lib/navigations/tabs/tab/component/tab.html","../../../projects/solaris-components/src/lib/feedbacks/loading-overlay/loading-overlay.ts","../../../projects/solaris-components/src/lib/feedbacks/loading-overlay/loading-overlay.html","../../../projects/solaris-components/src/services/tooltip/floating-position.util.ts","../../../projects/solaris-components/src/services/tooltip/floating-overlay.service.ts","../../../projects/solaris-components/src/lib/feedbacks/rich-tooltip/component/rich-tooltip-panel.ts","../../../projects/solaris-components/src/lib/feedbacks/rich-tooltip/component/rich-tooltip-panel.html","../../../projects/solaris-components/src/lib/feedbacks/rich-tooltip/directives/rich-tooltip.directive.ts","../../../projects/solaris-components/src/lib/actions/button/directives/button.directive.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/config/notification.config.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/service/notification-intl.service.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/service/notification.service.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/components/item/notification-item.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/components/item/notification-item.html","../../../projects/solaris-components/src/lib/feedbacks/notification/components/center/notification-center.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/components/center/notification-center.html","../../../projects/solaris-components/src/lib/feedbacks/notification/components/host/notification-host.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/components/host/notification-host.html","../../../projects/solaris-components/src/lib/feedbacks/tooltip/component/tooltip-panel.ts","../../../projects/solaris-components/src/lib/feedbacks/tooltip/component/tooltip-panel.html","../../../projects/solaris-components/src/lib/feedbacks/tooltip/directives/tooltip.directive.ts","../../../projects/solaris-components/src/lib/feedbacks/loading/component/loading.ts","../../../projects/solaris-components/src/lib/feedbacks/loading/component/loading.html","../../../projects/solaris-components/src/lib/layouts/carousel/directives/carousel-overlay.directive.ts","../../../projects/solaris-components/src/lib/layouts/carousel/directives/carousel-slide.directive.ts","../../../projects/solaris-components/src/lib/layouts/carousel/component/carousel.ts","../../../projects/solaris-components/src/lib/layouts/carousel/component/carousel.html","../../../projects/solaris-components/src/lib/layouts/section/component/section.ts","../../../projects/solaris-components/src/lib/layouts/section/component/section.html","../../../projects/solaris-components/src/lib/layouts/divider/component/divider.ts","../../../projects/solaris-components/src/lib/layouts/divider/component/divider.html","../../../projects/solaris-components/src/lib/layouts/dialog/token/dialog-step-data.token.ts","../../../projects/solaris-components/src/lib/layouts/dialog/token/dialog-data.token.ts","../../../projects/solaris-components/src/lib/layouts/dialog/token/dialog-ref.ts","../../../projects/solaris-components/src/lib/layouts/dialog/components/dialog-steps-container/dialog-steps-container.ts","../../../projects/solaris-components/src/lib/layouts/dialog/components/dialog-steps-container/dialog-steps-container.html","../../../projects/solaris-components/src/lib/layouts/dialog/components/dialog-container/dialog-container.ts","../../../projects/solaris-components/src/lib/layouts/dialog/components/dialog-container/dialog-container.html","../../../projects/solaris-components/src/lib/layouts/dialog/service/dialog.service.ts","../../../projects/solaris-components/src/lib/layouts/drawer/directives/drawer-header.directive.ts","../../../projects/solaris-components/src/lib/layouts/drawer/directives/drawer-footer.directive.ts","../../../projects/solaris-components/src/lib/layouts/drawer/component/drawer.ts","../../../projects/solaris-components/src/lib/layouts/drawer/component/drawer.html","../../../projects/solaris-components/src/lib/layouts/table/directives/filter-panel-footer.directive.ts","../../../projects/solaris-components/src/lib/layouts/table/components/filters/filter/table-filters.ts","../../../projects/solaris-components/src/lib/layouts/table/components/filters/filter/table-filters.html","../../../projects/solaris-components/src/lib/layouts/table/components/filters/field/filter-field.ts","../../../projects/solaris-components/src/lib/layouts/table/components/filters/field/filter-field.html","../../../projects/solaris-components/src/lib/layouts/table/directives/filter-panel-chips.directive.ts","../../../projects/solaris-components/src/lib/layouts/table/components/filters/panel/filter-panel.ts","../../../projects/solaris-components/src/lib/layouts/table/components/filters/panel/filter-panel.html","../../../projects/solaris-components/src/lib/layouts/table/components/filters/chip/filter-chip.ts","../../../projects/solaris-components/src/lib/layouts/table/components/filters/chip/filter-chip.html","../../../projects/solaris-components/src/lib/layouts/table/components/skeleton/table-skeleton.ts","../../../projects/solaris-components/src/lib/layouts/table/components/skeleton/table-skeleton.html","../../../projects/solaris-components/src/lib/layouts/table/components/filters/bar/filter-bar.ts","../../../projects/solaris-components/src/lib/layouts/table/components/filters/bar/filter-bar.html","../../../projects/solaris-components/src/lib/layouts/table/directives/column.directive.ts","../../../projects/solaris-components/src/lib/common/service/id-generator.service.ts","../../../projects/solaris-components/src/lib/layouts/table/components/column/table-column.ts","../../../projects/solaris-components/src/lib/layouts/table/components/column/table-column.html","../../../projects/solaris-components/src/lib/common/helper/unique-id.ts","../../../projects/solaris-components/src/lib/actions/checkbox/component/checkbox.ts","../../../projects/solaris-components/src/lib/actions/checkbox/component/checkbox.html","../../../projects/solaris-components/src/lib/layouts/table/components/table/table.ts","../../../projects/solaris-components/src/lib/layouts/table/components/table/table.html","../../../projects/solaris-components/src/lib/layouts/table/components/row/table-row.ts","../../../projects/solaris-components/src/lib/layouts/table/components/row/table-row.html","../../../projects/solaris-components/src/lib/layouts/page/directives/solaris-header.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/directives/solaris-footer.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/directives/solaris-body.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/component/page.ts","../../../projects/solaris-components/src/lib/layouts/page/component/page.html","../../../projects/solaris-components/src/lib/layouts/page/header/directives/solaris-header-description.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/header/directives/solaris-header-breadcrumb.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/header/directives/solaris-header-title.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/header/title/component/page-header-title.ts","../../../projects/solaris-components/src/lib/layouts/page/header/title/component/page-header-title.html","../../../projects/solaris-components/src/lib/layouts/page/header/directives/solaris-header-actions.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/header/component/page-header.ts","../../../projects/solaris-components/src/lib/layouts/page/header/component/page-header.html","../../../projects/solaris-components/src/lib/actions/button/directives/button-group.directive.ts","../../../projects/solaris-components/src/lib/actions/radio/token/radio-group.token.ts","../../../projects/solaris-components/src/lib/actions/radio/component/radio.ts","../../../projects/solaris-components/src/lib/actions/radio/component/radio.html","../../../projects/solaris-components/src/lib/actions/radio/group/component/radio-group.ts","../../../projects/solaris-components/src/lib/actions/radio/group/component/radio-group.html","../../../projects/solaris-components/src/lib/actions/cards/cards-group/token/card-group.token.ts","../../../projects/solaris-components/src/lib/actions/cards/card/component/card.ts","../../../projects/solaris-components/src/lib/actions/cards/card/component/card.html","../../../projects/solaris-components/src/lib/actions/cards/selection-card/component/selection-card.ts","../../../projects/solaris-components/src/lib/actions/cards/selection-card/component/selection-card.html","../../../projects/solaris-components/src/lib/forms/form-field/messages/error/field-error.ts","../../../projects/solaris-components/src/lib/forms/form-field/messages/error/field-error.html","../../../projects/solaris-components/src/lib/actions/cards/cards-group/component/card-group.ts","../../../projects/solaris-components/src/lib/actions/cards/cards-group/component/card-group.html","../../../projects/solaris-components/src/lib/actions/cards/card/directives/card-slots.directive.ts","../../../projects/solaris-components/src/lib/visual/avatar/directives/avatar-overlay.directive.ts","../../../projects/solaris-components/src/lib/visual/internal/avatar-presence/component/avatar-presence.ts","../../../projects/solaris-components/src/lib/visual/internal/avatar-presence/component/avatar-presence.html","../../../projects/solaris-components/src/lib/visual/avatar/component/avatar.ts","../../../projects/solaris-components/src/lib/visual/avatar/component/avatar.html","../../../projects/solaris-components/src/lib/visual/presence-avatar/component/presence-avatar.ts","../../../projects/solaris-components/src/lib/visual/presence-avatar/component/presence-avatar.html","../../../projects/solaris-components/src/lib/visual/avatar-stack/component/avatar-stack.ts","../../../projects/solaris-components/src/lib/visual/avatar-stack/component/avatar-stack.html","../../../projects/solaris-components/src/lib/visual/avatar-dropdown/component/avatar-dropdown.ts","../../../projects/solaris-components/src/lib/visual/avatar-dropdown/component/avatar-dropdown.html","../../../projects/solaris-components/src/lib/visual/card-media/directives/card-media-overlay.directive.ts","../../../projects/solaris-components/src/lib/visual/card-media/component/card-media.ts","../../../projects/solaris-components/src/lib/visual/card-media/component/card-media.html","../../../projects/solaris-components/src/lib/forms/phone-input/helper/phone-input.sanitize.ts","../../../projects/solaris-components/src/lib/forms/phone-input/helper/phone-input.country.ts","../../../projects/solaris-components/src/lib/forms/form-field/tokens/form-field-features.ts","../../../projects/solaris-components/src/lib/forms/form-field/controller/form-field-controller.ts","../../../projects/solaris-components/src/lib/forms/input-text/tokens/input.token.ts","../../../projects/solaris-components/src/lib/forms/input-text/directives/input-text.directive.ts","../../../projects/solaris-components/src/lib/forms/phone-input/component/phone-input.ts","../../../projects/solaris-components/src/lib/forms/phone-input/component/phone-input.html","../../../projects/solaris-components/src/lib/forms/input-text/directives/input-password.directive.ts","../../../projects/solaris-components/src/lib/forms/input-text/directives/input-email.directive.ts","../../../projects/solaris-components/src/lib/forms/form-field/tokens/form-field-controller.token.ts","../../../projects/solaris-components/src/lib/forms/input-text/password-toggle/password-toggle.ts","../../../projects/solaris-components/src/lib/forms/input-text/password-toggle/password-toggle.html","../../../projects/solaris-components/src/lib/forms/form-field/directives/control-bridge.directive.ts","../../../projects/solaris-components/src/lib/forms/form-field/directives/prefix.directive.ts","../../../projects/solaris-components/src/lib/forms/form-field/directives/suffix.directive.ts","../../../projects/solaris-components/src/lib/forms/form-field/component/form-field.ts","../../../projects/solaris-components/src/lib/forms/form-field/component/form-field.html","../../../projects/solaris-components/src/lib/forms/select/component/select.ts","../../../projects/solaris-components/src/lib/forms/select/component/select.html","../../../projects/solaris-components/src/public-api.ts","../../../projects/solaris-components/src/educarehq-solaris-components.ts"],"sourcesContent":["import { Directive, ElementRef, inject, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[solaris-dropdown-content-trigger]',\r\n standalone: true\r\n})\r\nexport class SolarisDropdownContentTriggerDirective {\r\n public readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\r\n private readonly solarisRenderer: Renderer2 = inject(Renderer2);\r\n\r\n public ensureFocusable(): void {\r\n const solarisEl = this.elementRef.nativeElement;\r\n const solarisTag = solarisEl.tagName.toLowerCase();\r\n const solarisIsNaturallyFocusable =\r\n solarisTag === 'button' || solarisTag === 'a' ||\r\n solarisEl.hasAttribute('tabindex');\r\n\r\n if (!solarisIsNaturallyFocusable) {\r\n this.solarisRenderer.setAttribute(solarisEl, 'tabindex', '0');\r\n this.solarisRenderer.setAttribute(solarisEl, 'role', 'button');\r\n }\r\n\r\n this.solarisRenderer.setAttribute(solarisEl, 'aria-haspopup', 'true');\r\n }\r\n\r\n public setExpanded(isExpanded: boolean, panelId: string): void {\r\n const solarisEl = this.elementRef.nativeElement;\r\n this.solarisRenderer.setAttribute(solarisEl, 'aria-expanded', String(isExpanded));\r\n this.solarisRenderer.setAttribute(solarisEl, 'aria-controls', panelId);\r\n }\r\n}\r\n","import { Directive, inject, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'ng-template[solaris-dropdown-content-panel]',\r\n standalone: true,\r\n})\r\nexport class SolarisDropdownContentPanelDirective {\r\n public readonly templateRef: TemplateRef<unknown> = inject(TemplateRef<unknown>);\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nexport interface SolarisDropdownContentInterface {\r\n closeFromRegistry(): void;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SolarisDropdownContentRegistry {\r\n private readonly solarisInstances: Set<SolarisDropdownContentInterface> = new Set<SolarisDropdownContentInterface>();\r\n\r\n public register(instance: SolarisDropdownContentInterface): void {\r\n this.solarisInstances.add(instance);\r\n }\r\n\r\n public unregister(instance: SolarisDropdownContentInterface): void {\r\n this.solarisInstances.delete(instance);\r\n }\r\n\r\n public notifyOpen(openingInstance: SolarisDropdownContentInterface): void {\r\n for (const solarisInstance of this.solarisInstances) {\r\n if (solarisInstance !== openingInstance) {\r\n solarisInstance.closeFromRegistry();\r\n }\r\n }\r\n }\r\n}\r\n","import {\r\n AfterContentInit, Component, ContentChild, DestroyRef, ElementRef, Input,\r\n ViewContainerRef, ViewEncapsulation, inject, OnDestroy\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\n\r\nimport { SolarisDropdownContentInterface, SolarisDropdownContentRegistry } from '../service/dropdown-content-registry.service';\r\nimport { SolarisDropdownContentTriggerDirective } from '../directives/dropdown-content-trigger.directive';\r\nimport { SolarisDropdownContentPanelDirective } from '../directives/dropdown-content-panel.directive';\r\nimport { SolarisDropdownWidthMode } from '../model/dropdown-content.type';\r\nimport { fromEvent, Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'solaris-dropdown-content',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './dropdown-content.html',\r\n styleUrls: ['./dropdown-content.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class SolarisDropdownContent implements AfterContentInit, OnDestroy, SolarisDropdownContentInterface {\r\n private readonly solarisRegistry = inject(SolarisDropdownContentRegistry);\r\n private readonly solarisVcr = inject(ViewContainerRef);\r\n private readonly solarisDestroyRef = inject(DestroyRef);\r\n private readonly solarisOverlay = inject(Overlay);\r\n\r\n @ContentChild(SolarisDropdownContentTriggerDirective) trigger?: SolarisDropdownContentTriggerDirective;\r\n @ContentChild(SolarisDropdownContentPanelDirective) panel?: SolarisDropdownContentPanelDirective;\r\n\r\n @Input() container?: HTMLElement | ElementRef<HTMLElement>;\r\n @Input() widthMode: SolarisDropdownWidthMode = 'auto';\r\n @Input() maxWidth: string = '72rem';\r\n @Input() closeDelay = 120;\r\n @Input() openDelay = 60;\r\n\r\n private readonly solarisPanelId = `solaris-dropdown-panel-${Math.random().toString(16).slice(2)}`;\r\n private solarisIsHoveringTrigger = false;\r\n private solarisPortal?: TemplatePortal<unknown>;\r\n private solarisIsHoveringPanel = false;\r\n private solarisOutsideClickSub?: Subscription;\r\n private solarisIsPinned = false;\r\n private solarisOverlayRef?: OverlayRef;\r\n private solarisIsOpen = false;\r\n private solarisCloseTimer?: number;\r\n private solarisOpenTimer?: number;\r\n\r\n ngAfterContentInit(): void {\r\n if (!this.trigger) throw new Error('solaris-dropdown: missing [solaris-dropdown-trigger].');\r\n if (!this.panel) throw new Error('solaris-dropdown: missing <ng-template solaris-dropdown-content-panel>.');\r\n\r\n this.solarisRegistry.register(this);\r\n this.trigger.ensureFocusable();\r\n this.trigger.setExpanded(false, this.solarisPanelId);\r\n\r\n const solarisTriggerEl = this.trigger.elementRef.nativeElement;\r\n\r\n fromEvent(solarisTriggerEl, 'mouseenter').pipe(takeUntilDestroyed(this.solarisDestroyRef))\r\n .subscribe(() => this.solarisOnTriggerEnter());\r\n\r\n fromEvent(solarisTriggerEl, 'mouseleave').pipe(takeUntilDestroyed(this.solarisDestroyRef))\r\n .subscribe(() => this.solarisOnTriggerLeave());\r\n\r\n fromEvent<MouseEvent>(solarisTriggerEl, 'click').pipe(takeUntilDestroyed(this.solarisDestroyRef))\r\n .subscribe((solarisEvent) => {\r\n solarisEvent.preventDefault();\r\n this.solarisTogglePinned();\r\n });\r\n\r\n fromEvent<KeyboardEvent>(solarisTriggerEl, 'keydown').pipe(takeUntilDestroyed(this.solarisDestroyRef))\r\n .subscribe((solarisEvent) => {\r\n if (solarisEvent.key === 'Enter' || solarisEvent.key === ' ') {\r\n solarisEvent.preventDefault();\r\n this.solarisTogglePinned();\r\n }\r\n\r\n if (solarisEvent.key === 'Escape') {\r\n solarisEvent.preventDefault();\r\n this.close('escape');\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.solarisRegistry.unregister(this);\r\n this.solarisUnbindOutsideClick();\r\n this.solarisOverlayRef?.dispose();\r\n }\r\n\r\n public closeFromRegistry(): void {\r\n this.close('registry');\r\n }\r\n\r\n private solarisOnTriggerEnter(): void {\r\n this.solarisIsHoveringTrigger = true;\r\n if (this.solarisIsPinned) return;\r\n this.solarisScheduleOpen('hover');\r\n }\r\n\r\n private solarisOnTriggerLeave(): void {\r\n this.solarisIsHoveringTrigger = false;\r\n if (this.solarisIsPinned) return;\r\n this.solarisScheduleClose();\r\n }\r\n\r\n private solarisOnPanelEnter(): void {\r\n this.solarisIsHoveringPanel = true;\r\n if (this.solarisIsPinned) return;\r\n this.solarisClearCloseTimer();\r\n }\r\n\r\n private solarisOnPanelLeave(): void {\r\n this.solarisIsHoveringPanel = false;\r\n if (this.solarisIsPinned) return;\r\n this.solarisScheduleClose();\r\n }\r\n\r\n private solarisTogglePinned(): void {\r\n if (!this.solarisIsOpen) {\r\n this.solarisIsPinned = true;\r\n this.open('pinned');\r\n return;\r\n }\r\n\r\n if (this.solarisIsPinned) {\r\n this.close('toggle');\r\n return;\r\n }\r\n\r\n this.solarisIsPinned = true;\r\n this.solarisBindOutsideClick();\r\n }\r\n\r\n private solarisScheduleOpen(reason: 'hover' | 'pinned'): void {\r\n this.solarisClearOpenTimer();\r\n this.solarisOpenTimer = globalThis.setTimeout(() => this.open(reason), this.openDelay);\r\n }\r\n\r\n private solarisScheduleClose(): void {\r\n this.solarisClearCloseTimer();\r\n this.solarisCloseTimer = globalThis.setTimeout(() => {\r\n if (this.solarisIsPinned) return;\r\n if (this.solarisIsHoveringTrigger || this.solarisIsHoveringPanel) return;\r\n this.close('hover-leave');\r\n }, this.closeDelay);\r\n }\r\n\r\n private solarisClearOpenTimer(): void {\r\n if (this.solarisOpenTimer) globalThis.clearTimeout(this.solarisOpenTimer);\r\n this.solarisOpenTimer = undefined;\r\n }\r\n\r\n private solarisClearCloseTimer(): void {\r\n if (this.solarisCloseTimer) globalThis.clearTimeout(this.solarisCloseTimer);\r\n this.solarisCloseTimer = undefined;\r\n }\r\n\r\n public open(reason: 'hover' | 'pinned'): void {\r\n if (!this.trigger || !this.panel) return;\r\n if (reason === 'hover') this.solarisIsPinned = false;\r\n\r\n this.solarisRegistry.notifyOpen(this);\r\n\r\n const solarisTriggerEl = this.trigger.elementRef.nativeElement;\r\n const solarisOriginRect = solarisTriggerEl.getBoundingClientRect();\r\n\r\n const solarisContainerEl = this.solarisGetContainerEl();\r\n const solarisContainerRect = solarisContainerEl?.getBoundingClientRect();\r\n const solarisIsFull = this.widthMode === 'full';\r\n const solarisViewportMargin = solarisIsFull ? 0 : 8;\r\n const solarisOffsetX = this.solarisComputeOffsetX(solarisOriginRect, solarisContainerRect);\r\n\r\n const solarisPositionStrategy = this.solarisOverlay\r\n .position().flexibleConnectedTo(solarisTriggerEl)\r\n .withFlexibleDimensions(false).withPush(!solarisIsFull)\r\n .withViewportMargin(solarisViewportMargin).withDefaultOffsetX(solarisOffsetX)\r\n .withDefaultOffsetY(8).withPositions([\r\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\r\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\r\n ]);\r\n\r\n if (this.solarisOverlayRef) {\r\n this.solarisOverlayRef.updatePositionStrategy(solarisPositionStrategy);\r\n } else {\r\n this.solarisOverlayRef = this.solarisOverlay.create({\r\n positionStrategy: solarisPositionStrategy,\r\n scrollStrategy: this.solarisOverlay.scrollStrategies.reposition(),\r\n panelClass: ['solaris-dropdown-content-overlay']\r\n });\r\n\r\n this.solarisOverlayRef.detachments().pipe(takeUntilDestroyed(this.solarisDestroyRef))\r\n .subscribe(() => this.solarisResetState());\r\n }\r\n\r\n this.solarisApplyOverlaySize(solarisOriginRect, solarisContainerRect);\r\n this.solarisPortal ??= new TemplatePortal(this.panel.templateRef, this.solarisVcr);\r\n if (!this.solarisOverlayRef.hasAttached()) {\r\n this.solarisOverlayRef.attach(this.solarisPortal);\r\n this.solarisWirePanelEvents();\r\n }\r\n\r\n this.solarisIsOpen = true;\r\n this.trigger.setExpanded(true, this.solarisPanelId);\r\n\r\n if (this.solarisIsPinned) {\r\n this.solarisBindOutsideClick();\r\n } else {\r\n this.solarisUnbindOutsideClick();\r\n }\r\n\r\n this.solarisClearCloseTimer();\r\n }\r\n\r\n public close(reason: 'hover-leave' | 'toggle' | 'escape' | 'outside' | 'registry'): void {\r\n this.solarisClearOpenTimer();\r\n this.solarisClearCloseTimer();\r\n this.solarisIsPinned = false;\r\n this.solarisUnbindOutsideClick();\r\n\r\n if (this.solarisOverlayRef?.hasAttached()) {\r\n this.solarisOverlayRef.detach();\r\n }\r\n\r\n this.solarisIsOpen = false;\r\n this.trigger?.setExpanded(false, this.solarisPanelId);\r\n }\r\n\r\n private solarisResetState(): void {\r\n this.solarisIsOpen = false;\r\n this.solarisIsPinned = false;\r\n this.solarisIsHoveringPanel = false;\r\n this.solarisIsHoveringTrigger = false;\r\n this.solarisUnbindOutsideClick();\r\n this.trigger?.setExpanded(false, this.solarisPanelId);\r\n }\r\n\r\n private solarisWirePanelEvents(): void {\r\n if (!this.solarisOverlayRef) return;\r\n\r\n const solarisPanelHost = this.solarisOverlayRef.overlayElement;\r\n solarisPanelHost.id = this.solarisPanelId;\r\n\r\n fromEvent(solarisPanelHost, 'mouseenter').pipe(takeUntilDestroyed(this.solarisDestroyRef))\r\n .subscribe(() => this.solarisOnPanelEnter());\r\n\r\n fromEvent(solarisPanelHost, 'mouseleave').pipe(takeUntilDestroyed(this.solarisDestroyRef))\r\n .subscribe(() => this.solarisOnPanelLeave());\r\n\r\n fromEvent<KeyboardEvent>(solarisPanelHost, 'keydown').pipe(takeUntilDestroyed(this.solarisDestroyRef))\r\n .subscribe((solarisEvent) => {\r\n if (solarisEvent.key === 'Escape') {\r\n solarisEvent.preventDefault();\r\n this.close('escape');\r\n this.trigger?.elementRef.nativeElement.focus();\r\n }\r\n });\r\n }\r\n\r\n private solarisBindOutsideClick(): void {\r\n if (!this.solarisIsPinned) return;\r\n if (this.solarisOutsideClickSub) return;\r\n\r\n const solarisTriggerEl = this.trigger?.elementRef.nativeElement;\r\n const solarisOverlayEl = this.solarisOverlayRef?.overlayElement;\r\n\r\n if (!solarisTriggerEl || !solarisOverlayEl) return;\r\n\r\n this.solarisOutsideClickSub = fromEvent<MouseEvent>(document, 'mousedown')\r\n .pipe(\r\n filter(() => this.solarisIsPinned),\r\n filter((solarisEvent) => {\r\n const solarisTarget = solarisEvent.target as Node | null;\r\n if (!solarisTarget) return false;\r\n const solarisInsideTrigger = solarisTriggerEl.contains(solarisTarget);\r\n const solarisInsidePanel = solarisOverlayEl.contains(solarisTarget);\r\n return !solarisInsideTrigger && !solarisInsidePanel;\r\n }),\r\n takeUntilDestroyed(this.solarisDestroyRef)\r\n )\r\n .subscribe(() => this.close('outside'));\r\n }\r\n\r\n private solarisUnbindOutsideClick(): void {\r\n this.solarisOutsideClickSub?.unsubscribe();\r\n this.solarisOutsideClickSub = undefined;\r\n }\r\n\r\n private solarisGetContainerEl(): HTMLElement | undefined {\r\n const solarisContainer = this.container;\r\n if (!solarisContainer) return undefined;\r\n return solarisContainer instanceof ElementRef ? solarisContainer.nativeElement : solarisContainer;\r\n }\r\n\r\n private solarisComputeOffsetX(solarisOriginRect: DOMRect, solarisContainerRect?: DOMRect): number {\r\n if (this.widthMode === 'full') {\r\n return -solarisOriginRect.left;\r\n }\r\n\r\n if (this.widthMode === 'container' && solarisContainerRect) {\r\n return solarisContainerRect.left - solarisOriginRect.left;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n private solarisApplyOverlaySize(solarisOriginRect: DOMRect, solarisContainerRect?: DOMRect): void {\r\n if (!this.solarisOverlayRef) return;\r\n\r\n if (this.widthMode === 'match-trigger') {\r\n this.solarisOverlayRef.updateSize({ width: solarisOriginRect.width });\r\n return;\r\n }\r\n\r\n if (this.widthMode === 'full') {\r\n const solarisViewportWidth = document.documentElement.clientWidth;\r\n this.solarisOverlayRef.updateSize({\r\n width: solarisViewportWidth,\r\n maxWidth: solarisViewportWidth\r\n });\r\n return;\r\n }\r\n\r\n if (this.widthMode === 'container' && solarisContainerRect) {\r\n this.solarisOverlayRef.updateSize({\r\n width: solarisContainerRect.width,\r\n maxWidth: solarisContainerRect.width,\r\n });\r\n return;\r\n }\r\n\r\n this.solarisOverlayRef.updateSize({ maxWidth: this.maxWidth });\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\r\nimport { RouterLink } from '@angular/router';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\n\r\nimport { SolarisBreadcrumbItem } from '../model/breadcrumb.type';\r\n\r\n@Component({\r\n selector: 'solaris-breadcrumb',\r\n standalone: true,\r\n imports: [\r\n NgClass,\r\n RouterLink,\r\n CdkMenu,\r\n CdkMenuItem,\r\n CdkMenuTrigger,\r\n NgTemplateOutlet\r\n ],\r\n templateUrl: './breadcrumb.html',\r\n styleUrl: './breadcrumb.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisBreadcrumb {\r\n @Input({ alias: 'min-items' }) minItems = 2;\r\n @Input({ alias: 'max-items' }) maxItems = 4;\r\n @Input() responsive = true;\r\n @Input({ required: true }) items: SolarisBreadcrumbItem[] = [];\r\n @HostBinding('class') hostClass = 'solaris-breadcrumb-host';\r\n @Output() itemSelect = new EventEmitter<{ id: string; item: SolarisBreadcrumbItem }>();\r\n\r\n get viewModel() {\r\n const items = this.items ?? [];\r\n const total = items.length;\r\n const max = Math.max(this.minItems, this.effectiveMaxItems);\r\n\r\n if (total <= max) {\r\n return { head: items, overflow: [] as SolarisBreadcrumbItem[], tail: [] as SolarisBreadcrumbItem[] };\r\n }\r\n\r\n const keepHead = 1;\r\n const keepTail = 1;\r\n\r\n const remaining = max - keepHead - keepTail;\r\n const extraTail = Math.max(0, remaining);\r\n\r\n const head = items.slice(0, keepHead);\r\n const tail = items.slice(total - (keepTail + extraTail), total);\r\n const overflow = items.slice(keepHead, total - tail.length);\r\n\r\n return { head, overflow, tail };\r\n }\r\n get effectiveMaxItems(): number {\r\n if (!this.responsive) return this.maxItems;\r\n\r\n const isSmall = typeof globalThis.matchMedia === \"function\" &&\r\n globalThis.matchMedia(\"(max-width: 640px)\").matches;\r\n\r\n return isSmall ? Math.max(this.minItems, 3) : this.maxItems;\r\n }\r\n\r\n protected getRouterCommands(it: SolarisBreadcrumbItem): any[] | null {\r\n return it.target?.kind === 'router' ? it.target.commands : null;\r\n }\r\n\r\n protected getRouterQueryParams(it: SolarisBreadcrumbItem): Record<string, any> | null {\r\n return it.target?.kind === 'router' ? (it.target.extras?.queryParams ?? null) : null;\r\n }\r\n\r\n protected shouldRenderSeparatorAfterHead(headIndex: number): boolean {\r\n if (headIndex < this.viewModel.head.length - 1) return true;\r\n return this.viewModel.overflow.length > 0 || this.viewModel.tail.length > 0;\r\n }\r\n\r\n protected onAction(item: SolarisBreadcrumbItem) {\r\n if (item.disabled) return;\r\n const t = item.target;\r\n if (t?.kind === 'action') this.itemSelect.emit({ id: t.id, item });\r\n }\r\n}\r\n","<nav class=\"solaris-breadcrumb\" aria-label=\"Breadcrumb\">\r\n <ol class=\"solaris-breadcrumb__list\">\r\n @for (it of viewModel.head; track it.label; let i = $index) {\r\n <li class=\"solaris-breadcrumb__item\">\r\n <ng-container [ngTemplateOutlet]=\"itemTpl\" [ngTemplateOutletContext]=\"{ $implicit: it }\"/>\r\n @if (shouldRenderSeparatorAfterHead(i)) {\r\n <span class=\"solaris-breadcrumb__sep\" aria-hidden=\"true\">\r\n <i class=\"ph ph-caret-right\"></i>\r\n </span>\r\n }\r\n </li>\r\n }\r\n\r\n @if (viewModel.overflow.length > 0) {\r\n <li class=\"solaris-breadcrumb__item\">\r\n <button type=\"button\" class=\"solaris-breadcrumb__ellipsis\" aria-label=\"Mostrar mais\" [cdkMenuTriggerFor]=\"overflowMenu\">\r\n <i class=\"ph ph-dots-three\"></i>\r\n </button>\r\n\r\n <ng-template #overflowMenu>\r\n <div class=\"solaris-breadcrumb__menu\" cdkMenu>\r\n @for (it of viewModel.overflow; track it.label) {\r\n <button type=\"button\" class=\"solaris-breadcrumb__menu-item\" cdkMenuItem (click)=\"onAction(it)\"\r\n [disabled]=\"it.disabled\" [routerLink]=\"getRouterCommands(it)\"\r\n [queryParams]=\"getRouterQueryParams(it)\">\r\n @if (it.icon) {\r\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\r\n }\r\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\r\n </button>\r\n }\r\n </div>\r\n </ng-template>\r\n\r\n @if (viewModel.tail.length > 0) {\r\n <span class=\"solaris-breadcrumb__sep\" aria-hidden=\"true\">\r\n <i class=\"ph ph-caret-right\"></i>\r\n </span>\r\n }\r\n </li>\r\n }\r\n\r\n @for (it of viewModel.tail; track it.label; let i = $index) {\r\n <li class=\"solaris-breadcrumb__item\" [class.is-current]=\"i === viewModel.tail.length - 1\">\r\n <ng-container [ngTemplateOutlet]=\"itemTpl\" [ngTemplateOutletContext]=\"{ $implicit: it, current: i === viewModel.tail.length - 1 }\"/>\r\n @if (it !== viewModel.tail[viewModel.tail.length - 1]) {\r\n <span class=\"solaris-breadcrumb__sep\" aria-hidden=\"true\">\r\n <i class=\"ph ph-caret-right\"></i>\r\n </span>\r\n }\r\n </li>\r\n }\r\n </ol>\r\n\r\n <ng-template #itemTpl let-it let-current=\"current\">\r\n @if (it.target?.kind === 'router') {\r\n <a class=\"solaris-breadcrumb__link\" [class.is-disabled]=\"it.disabled\" [class.is-current]=\"current\"\r\n [routerLink]=\"it.disabled ? null : it.target!.commands\" [attr.aria-current]=\"current ? 'page' : null\"\r\n [attr.aria-label]=\"it.ariaLabel || it.label\">\r\n @if (it.icon) {\r\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\r\n }\r\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\r\n </a>\r\n }\r\n @else if (it.target?.kind === 'href') {\r\n <a class=\"solaris-breadcrumb__link\" [class.is-disabled]=\"it.disabled\" [class.is-current]=\"current\"\r\n [href]=\"it.disabled ? null : it.target!.href\" [target]=\"it.target!.target || '_self'\"\r\n [attr.aria-current]=\"current ? 'page' : null\" [attr.aria-label]=\"it.ariaLabel || it.label\">\r\n @if (it.icon) {\r\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\r\n }\r\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\r\n </a>\r\n }\r\n @else if (it.target?.kind === 'action') {\r\n <button type=\"button\" class=\"solaris-breadcrumb__link as-button\" [class.is-current]=\"current\"\r\n [disabled]=\"it.disabled\" (click)=\"onAction(it)\" [attr.aria-current]=\"current ? 'page' : null\"\r\n [attr.aria-label]=\"it.ariaLabel || it.label\">\r\n @if (it.icon) {\r\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\r\n }\r\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\r\n </button>\r\n }\r\n @else {\r\n <span class=\"solaris-breadcrumb__text\" [attr.aria-current]=\"current ? 'page' : null\">\r\n @if (it.icon) {\r\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\r\n }\r\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\r\n </span>\r\n }\r\n </ng-template>\r\n</nav>\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { BadgeColorInput, BadgeVariant } from '../../../../feedbacks/badge/model/badge.type';\r\nimport { SolarisSizePreset } from '../../../../common/model/common-configurations.type';\r\nimport { SolarisStepperPhase, SolarisStepperStatus } from '../../model/stepper.type';\r\n\r\n\r\n@Component({\r\n selector: 'solaris-stepper-item',\r\n standalone: true,\r\n templateUrl: './stepper-item.html',\r\n styleUrls: ['./stepper-item.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisStepperItem {\r\n @Input() stepId?: string;\r\n\r\n @Input() label?: string;\r\n @Input() labelKey?: string;\r\n\r\n @Input() title?: string;\r\n @Input() titleKey?: string;\r\n\r\n @Input() description?: string;\r\n @Input() descriptionKey?: string;\r\n\r\n @Input() icon?: string;\r\n @Input() optional = false;\r\n\r\n @Input() phase: SolarisStepperPhase | null = null;\r\n @Input() status: SolarisStepperStatus = 'default';\r\n\r\n @Input() badgeText?: string;\r\n @Input() badgeTextKey?: string;\r\n @Input() badgeColor?: BadgeColorInput;\r\n @Input() badgeVariant: BadgeVariant = 'subtle';\r\n @Input() badgeSize: SolarisSizePreset = 'sm';\r\n @Input() badgePill = true;\r\n\r\n public active = false;\r\n public index = 0;\r\n public headerId = '';\r\n public panelId = '';\r\n}\r\n","<section class=\"solaris-stepper-item__panel\" role=\"tabpanel\" [id]=\"panelId\"\r\n [attr.aria-labelledby]=\"headerId\" [attr.aria-hidden]=\"!active\"\r\n [attr.hidden]=\"active ? null : ''\">\r\n <ng-content></ng-content>\r\n</section>\r\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\n\r\nimport { SolarisColorPreset, SolarisSizePreset } from '../../../common/model/common-configurations.type';\r\nimport { BadgeColorInput, BadgeVariant } from '../model/badge.type';\r\n\r\n@Component({\r\n selector: 'solaris-badge',\r\n standalone: true,\r\n imports: [\r\n NgClass\r\n ],\r\n templateUrl: './badge.html',\r\n styleUrls: ['./badge.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisBadge {\r\n @Input() pill = false;\r\n @Input() customTextColor?: string;\r\n @Input() interactive = false;\r\n @Input() size: SolarisSizePreset = 'md';\r\n @Input() variant: BadgeVariant = 'subtle';\r\n @Input() color: BadgeColorInput = 'surface';\r\n @Input({ alias: 'aria-hidden' }) ariaHidden: 'true' | 'false' | null = null;\r\n @HostBinding('class') hostClass = 'solaris-badge-host';\r\n private readonly presetColors = new Set<SolarisColorPreset>([\r\n 'primary', 'success', 'warning', 'error', 'info', 'surface',\r\n ]);\r\n\r\n get colorClass(): string {\r\n return this.isCustomColor ? 'color-custom' : `color-${this.color}`;\r\n }\r\n get isCustomColor(): boolean {\r\n return !this.presetColors.has(this.color as SolarisColorPreset);\r\n }\r\n get customColorValue(): string | null {\r\n return this.isCustomColor ? String(this.color) : null;\r\n }\r\n}\r\n","<span class=\"solaris-badge\" [attr.aria-hidden]=\"ariaHidden\"\r\n [ngClass]=\"[ 'variant-' + variant, colorClass,\r\n 'size-' + size, pill ? 'is-pill' : '',\r\n interactive ? 'is-interactive' : '' ]\"\r\n [style.--solaris-badge-custom]=\"customColorValue\"\r\n [style.--solaris-badge-custom-fg]=\"customTextColor\">\r\n <ng-content></ng-content>\r\n</span>\r\n","import {\r\n AfterContentInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren,\r\n DestroyRef, ElementRef,\r\n EventEmitter, inject, Input, OnChanges, Output, QueryList, SimpleChanges, ViewChildren\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n\r\nimport { SolarisStepperAppearance, SolarisStepperChangeEvent, SolarisStepperChangeReason,\r\n SolarisStepperOrientation, SolarisStepperPhase } from '../model/stepper.type';\r\nimport { SolarisBadge } from '../../../feedbacks/badge/component/badge';\r\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\r\nimport { SolarisStepperItem } from '../item/component/stepper-item';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'solaris-stepper',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n SolarisTranslationPipe,\r\n SolarisBadge,\r\n ],\r\n templateUrl: './stepper.html',\r\n styleUrls: ['./stepper.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisStepper implements AfterContentInit, OnChanges {\r\n private readonly destroyRef = inject(DestroyRef);\r\n private static nextId = 0;\r\n\r\n @Input() orientation: SolarisStepperOrientation = 'horizontal';\r\n @Input() appearance: SolarisStepperAppearance = 'default';\r\n\r\n @Input() linear = true;\r\n @Input() interactive = true;\r\n\r\n @Input() activeIndex: number | null = null;\r\n @Input() defaultActiveIndex = 0;\r\n\r\n @Input() allowBackNavigation = true;\r\n @Input() allowFutureNavigation = false;\r\n @Input() allowSkip = false;\r\n\r\n @Input() renderPanels = true;\r\n @Input() showStateBadges = false;\r\n\r\n @Output() readonly activeIndexChange = new EventEmitter<number>();\r\n @Output('next') readonly nextChange = new EventEmitter<number>();\r\n @Output('previous') readonly previousChange = new EventEmitter<number>();\r\n @Output() readonly stepChange = new EventEmitter<SolarisStepperChangeEvent>();\r\n\r\n @ContentChildren(SolarisStepperItem)\r\n private readonly itemsQuery?: QueryList<SolarisStepperItem>;\r\n\r\n @ViewChildren('stepButton')\r\n private readonly stepButtons?: QueryList<ElementRef<HTMLButtonElement>>;\r\n\r\n public items: SolarisStepperItem[] = [];\r\n\r\n private readonly uid = SolarisStepper.nextId++;\r\n private internalActiveIndex = 0;\r\n\r\n public get currentIndex(): number {\r\n return this.normalizeIndex(\r\n this.isControlled() ? this.activeIndex ?? 0 : this.internalActiveIndex\r\n );\r\n }\r\n\r\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {}\r\n\r\n ngAfterContentInit(): void {\r\n this.internalActiveIndex = this.defaultActiveIndex;\r\n this.syncItems();\r\n\r\n this.itemsQuery?.changes\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => {\r\n this.syncItems();\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['defaultActiveIndex'] && !this.isControlled()) {\r\n this.internalActiveIndex = this.defaultActiveIndex;\r\n }\r\n\r\n if (\r\n changes['activeIndex'] ||\r\n changes['orientation'] ||\r\n changes['appearance'] ||\r\n changes['linear']\r\n ) {\r\n this.syncItems();\r\n }\r\n }\r\n\r\n public next(): void {\r\n const target = this.findAdjacentNavigableIndex(this.currentIndex, 1);\r\n if (target === null) return;\r\n\r\n this.commitIndexChange(target, 'next');\r\n this.nextChange.emit(target);\r\n }\r\n\r\n public previous(): void {\r\n const target = this.findAdjacentNavigableIndex(this.currentIndex, -1);\r\n if (target === null) return;\r\n\r\n this.commitIndexChange(target, 'previous');\r\n this.previousChange.emit(target);\r\n }\r\n\r\n public setActiveStep(index: number): void {\r\n if (!this.isProgrammaticallyNavigable(index)) return;\r\n this.commitIndexChange(index, 'programmatic');\r\n }\r\n\r\n public onStepHeaderClick(index: number): void {\r\n if (!this.canActivateByHeaderClick(index)) return;\r\n this.commitIndexChange(index, 'header');\r\n }\r\n\r\n public onStepKeydown(event: KeyboardEvent, index: number): void {\r\n const isHorizontal = this.orientation === 'horizontal';\r\n\r\n switch (event.key) {\r\n case 'ArrowRight':\r\n if (!isHorizontal) return;\r\n event.preventDefault();\r\n this.focusRelativeButton(index, 1);\r\n return;\r\n\r\n case 'ArrowLeft':\r\n if (!isHorizontal) return;\r\n event.preventDefault();\r\n this.focusRelativeButton(index, -1);\r\n return;\r\n\r\n case 'ArrowDown':\r\n if (isHorizontal) return;\r\n event.preventDefault();\r\n this.focusRelativeButton(index, 1);\r\n return;\r\n\r\n case 'ArrowUp':\r\n if (isHorizontal) return;\r\n event.preventDefault();\r\n this.focusRelativeButton(index, -1);\r\n return;\r\n\r\n case 'Home':\r\n event.preventDefault();\r\n this.focusButton(0);\r\n return;\r\n\r\n case 'End':\r\n event.preventDefault();\r\n this.focusButton(this.items.length - 1);\r\n return;\r\n\r\n default:\r\n return;\r\n }\r\n }\r\n\r\n public isCurrent(index: number): boolean {\r\n return index === this.currentIndex;\r\n }\r\n\r\n public isCompleted(index: number): boolean {\r\n return this.resolvePhase(this.items[index], index) === 'completed';\r\n }\r\n\r\n public isPending(index: number): boolean {\r\n return this.resolvePhase(this.items[index], index) === 'pending';\r\n }\r\n\r\n public resolvePhase(item: SolarisStepperItem, index: number): SolarisStepperPhase {\r\n if (item.phase) return item.phase;\r\n\r\n if (index < this.currentIndex) return 'completed';\r\n if (index === this.currentIndex) return 'current';\r\n return 'pending';\r\n }\r\n\r\n public getStepClasses(item: SolarisStepperItem, index: number): Record<string, boolean> {\r\n return {\r\n 'is-current': this.isCurrent(index),\r\n 'is-completed': this.isCompleted(index),\r\n 'is-pending': this.isPending(index),\r\n 'is-warning': item.status === 'warning',\r\n 'is-error': item.status === 'error',\r\n 'is-disabled': item.status === 'disabled',\r\n 'is-locked': item.status === 'locked',\r\n 'is-clickable': this.canActivateByHeaderClick(index),\r\n };\r\n }\r\n\r\n public getConnectorClasses(index: number): Record<string, boolean> {\r\n return {\r\n 'is-completed': index < this.currentIndex,\r\n 'is-current': index === this.currentIndex,\r\n };\r\n }\r\n\r\n public getMarkerIcon(item: SolarisStepperItem, index: number): string | null {\r\n if (this.appearance === 'compact') return null;\r\n\r\n if (item.status === 'locked') return 'ph-lock';\r\n if (item.status === 'error') return 'ph-x-circle';\r\n if (item.status === 'warning') return 'ph-warning-circle';\r\n if (this.isCompleted(index)) return 'ph-check';\r\n\r\n return item.icon ?? null;\r\n }\r\n\r\n public getMarkerText(item: SolarisStepperItem, index: number): string | null {\r\n if (this.appearance === 'compact') {\r\n return `${index + 1}.`;\r\n }\r\n\r\n return this.getMarkerIcon(item, index) ? null : String(index + 1);\r\n }\r\n\r\n public hasBadge(item: SolarisStepperItem, index: number): boolean {\r\n if (!this.showStateBadges || this.appearance === 'compact') return false;\r\n\r\n return Boolean(\r\n item.badgeText ||\r\n item.badgeTextKey ||\r\n this.getAutoBadgeTranslationKey(item, index)\r\n );\r\n }\r\n\r\n public getResolvedLabel(item: SolarisStepperItem, index: number): string | null {\r\n if (item.labelKey || item.label) return null;\r\n return `${index + 1}`;\r\n }\r\n\r\n public getResolvedBadgeColor(item: SolarisStepperItem, index: number) {\r\n if (item.badgeColor) return item.badgeColor;\r\n\r\n if (item.status === 'error') return 'error';\r\n if (item.status === 'warning') return 'warning';\r\n if (item.status === 'locked' || item.status === 'disabled') return 'surface';\r\n\r\n const phase = this.resolvePhase(item, index);\r\n if (phase === 'completed') return 'success';\r\n if (phase === 'current') return 'primary';\r\n\r\n return 'surface';\r\n }\r\n\r\n public getResolvedBadgeVariant(item: SolarisStepperItem) {\r\n return item.badgeVariant;\r\n }\r\n\r\n public getAutoBadgeTranslationKey(item: SolarisStepperItem, index: number): string {\r\n if (item.status === 'error') return 'ui.solaris.stepper.error';\r\n if (item.status === 'warning') return 'ui.solaris.stepper.warning';\r\n if (item.status === 'locked') return 'ui.solaris.stepper.locked';\r\n if (item.status === 'disabled') return 'ui.solaris.stepper.disabled';\r\n\r\n const phase = this.resolvePhase(item, index);\r\n\r\n if (phase === 'completed') return 'ui.solaris.stepper.completed';\r\n if (phase === 'current') return 'ui.solaris.stepper.inProgress';\r\n return 'ui.solaris.stepper.pending';\r\n }\r\n\r\n public getTitle(item: SolarisStepperItem): string {\r\n return item.title ?? '';\r\n }\r\n\r\n public getDescription(item: SolarisStepperItem): string {\r\n return item.description ?? '';\r\n }\r\n\r\n public getStepAriaLabel(item: SolarisStepperItem, index: number): string {\r\n const phase = this.resolvePhase(item, index);\r\n const title = item.title ?? item.titleKey ?? `${index + 1}`;\r\n\r\n if (phase === 'completed') {\r\n return `${title} completed`;\r\n }\r\n\r\n if (phase === 'current') {\r\n return `${title} current step`;\r\n }\r\n\r\n if (item.status === 'locked') {\r\n return `${title} locked`;\r\n }\r\n\r\n if (item.status === 'disabled') {\r\n return `${title} disabled`;\r\n }\r\n\r\n return title;\r\n }\r\n\r\n public trackByIndex(index: number): number {\r\n return index;\r\n }\r\n\r\n private syncItems(): void {\r\n this.items = this.itemsQuery?.toArray() ?? [];\r\n\r\n const currentIndex = this.normalizeIndex(\r\n this.isControlled() ? this.activeIndex ?? 0 : this.internalActiveIndex\r\n );\r\n\r\n this.items.forEach((item, index) => {\r\n item.index = index;\r\n item.headerId = `solaris-stepper-${this.uid}-tab-${index}`;\r\n item.panelId = `solaris-stepper-${this.uid}-panel-${index}`;\r\n item.active = index === currentIndex;\r\n });\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n private commitIndexChange(index: number, reason: SolarisStepperChangeReason): void {\r\n const normalized = this.normalizeIndex(index);\r\n if (normalized === this.currentIndex) return;\r\n\r\n const previousIndex = this.currentIndex;\r\n\r\n if (!this.isControlled()) {\r\n this.internalActiveIndex = normalized;\r\n this.syncItems();\r\n }\r\n\r\n this.activeIndexChange.emit(normalized);\r\n this.stepChange.emit({\r\n previousIndex,\r\n currentIndex: normalized,\r\n reason,\r\n });\r\n }\r\n\r\n private canActivateByHeaderClick(index: number): boolean {\r\n if (!this.interactive) return false;\r\n if (!this.isInBounds(index)) return false;\r\n\r\n const item = this.items[index];\r\n if (!item || this.isDisabledLike(item)) return false;\r\n\r\n if (index === this.currentIndex) return true;\r\n if (index < this.currentIndex) return this.allowBackNavigation;\r\n\r\n if (!this.linear) return true;\r\n\r\n if (!this.allowFutureNavigation) return false;\r\n if (!this.allowSkip) return index === this.currentIndex + 1;\r\n\r\n return true;\r\n }\r\n\r\n private isProgrammaticallyNavigable(index: number): boolean {\r\n if (!this.isInBounds(index)) return false;\r\n\r\n const item = this.items[index];\r\n if (!item) return false;\r\n\r\n return !this.isDisabledLike(item);\r\n }\r\n\r\n private findAdjacentNavigableIndex(start: number, direction: 1 | -1): number | null {\r\n let cursor = start + direction;\r\n\r\n while (this.isInBounds(cursor)) {\r\n const item = this.items[cursor];\r\n if (item && !this.isDisabledLike(item)) {\r\n return cursor;\r\n }\r\n cursor += direction;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private isDisabledLike(item: SolarisStepperItem): boolean {\r\n return item.status === 'disabled' || item.status === 'locked';\r\n }\r\n\r\n private isControlled(): boolean {\r\n return this.activeIndex !== null && this.activeIndex !== undefined;\r\n }\r\n\r\n private isInBounds(index: number): boolean {\r\n return index >= 0 && index < this.items.length;\r\n }\r\n\r\n private normalizeIndex(index: number): number {\r\n if (this.items.length === 0) return 0;\r\n return Math.min(Math.max(index, 0), this.items.length - 1);\r\n }\r\n\r\n private focusRelativeButton(index: number, direction: 1 | -1): void {\r\n let cursor = index + direction;\r\n\r\n while (cursor >= 0 && cursor < this.items.length) {\r\n if (!this.isDisabledLike(this.items[cursor])) {\r\n this.focusButton(cursor);\r\n return;\r\n }\r\n cursor += direction;\r\n }\r\n }\r\n\r\n private focusButton(index: number): void {\r\n const button = this.stepButtons?.get(index)?.nativeElement;\r\n button?.focus();\r\n }\r\n}\r\n","<div class=\"solaris-stepper\" [ngClass]=\"[\r\n 'orientation-' + orientation,\r\n 'appearance-' + appearance\r\n ]\">\r\n\r\n <div class=\"solaris-stepper__rail\" role=\"tablist\" [attr.aria-orientation]=\"orientation\">\r\n\r\n @for (item of items; track trackByIndex($index); let i = $index; let last = $last) {\r\n <div class=\"solaris-stepper__node\">\r\n <button #stepButton type=\"button\" role=\"tab\" class=\"solaris-stepper__step\"\r\n [id]=\"item.headerId\" [attr.aria-controls]=\"item.panelId\" [attr.aria-selected]=\"isCurrent(i)\"\r\n [attr.aria-current]=\"isCurrent(i) ? 'step' : null\"\r\n [attr.aria-disabled]=\"item.status === 'disabled' || item.status === 'locked'\"\r\n [attr.tabindex]=\"isCurrent(i) ? 0 : -1\" [ngClass]=\"getStepClasses(item, i)\"\r\n (click)=\"onStepHeaderClick(i)\" (keydown)=\"onStepKeydown($event, i)\">\r\n\r\n <span class=\"solaris-stepper__marker\" [ngClass]=\"getStepClasses(item, i)\">\r\n @if (getMarkerIcon(item, i)) {\r\n <i class=\"ph\" [ngClass]=\"getMarkerIcon(item, i)\" aria-hidden=\"true\"></i>\r\n }\r\n\r\n @if (getMarkerText(item, i)) {\r\n <span>{{ getMarkerText(item, i) }}</span>\r\n }\r\n </span>\r\n\r\n <span class=\"solaris-stepper__meta\">\r\n <span class=\"solaris-stepper__label\">\r\n @if (item.labelKey) {\r\n {{ item.labelKey | translate }}\r\n } @else if (item.label) {\r\n {{ item.label }}\r\n } @else {\r\n {{ 'ui.solaris.stepper.step' | translate }} {{ i + 1 }}\r\n }\r\n </span>\r\n\r\n <span class=\"solaris-stepper__title\">\r\n @if (item.titleKey) {\r\n {{ item.titleKey | translate }}\r\n } @else {\r\n {{ item.title }}\r\n }\r\n </span>\r\n\r\n @if (item.descriptionKey || item.description) {\r\n <span class=\"solaris-stepper__description\">\r\n @if (item.descriptionKey) {\r\n {{ item.descriptionKey | translate }}\r\n } @else {\r\n {{ item.description }}\r\n }\r\n </span>\r\n }\r\n\r\n @if (item.optional) {\r\n <span class=\"solaris-stepper__optional\">\r\n {{ 'ui.solaris.stepper.optional' | translate }}\r\n </span>\r\n }\r\n </span>\r\n\r\n @if (hasBadge(item, i)) {\r\n <solaris-badge class=\"solaris-stepper__badge\" [pill]=\"item.badgePill\" [size]=\"item.badgeSize\"\r\n [variant]=\"getResolvedBadgeVariant(item)\" [color]=\"getResolvedBadgeColor(item, i)\" aria-hidden=\"true\">\r\n\r\n @if (item.badgeTextKey) {\r\n {{ item.badgeTextKey | translate }}\r\n } @else if (item.badgeText) {\r\n {{ item.badgeText }}\r\n } @else {\r\n {{ getAutoBadgeTranslationKey(item, i) | translate }}\r\n }\r\n </solaris-badge>\r\n }\r\n </button>\r\n\r\n @if (!last) {\r\n <span class=\"solaris-stepper__connector\" [ngClass]=\"getConnectorClasses(i)\" aria-hidden=\"true\"></span>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (renderPanels) {\r\n <div class=\"solaris-stepper__content\">\r\n <ng-content></ng-content>\r\n </div>\r\n }\r\n</div>\r\n","import { Directive, ElementRef, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[solaris-popover-trigger]',\r\n standalone: true,\r\n})\r\nexport class SolarisPopoverTriggerDirective {\r\n readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\r\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'ng-template[solaris-popover-panel]',\r\n standalone: true,\r\n})\r\nexport class SolarisPopoverPanelDirective {\r\n readonly templateRef: TemplateRef<any> = inject(TemplateRef<any>);\r\n}\r\n","export type SolarisPopoverPlacement =\r\n | 'bottom-start' | 'bottom' | 'bottom-end'\r\n | 'top-start' | 'top' | 'top-end'\r\n | 'right-start' | 'right' | 'right-end'\r\n | 'left-start' | 'left' | 'left-end';\r\n\r\nexport interface SolarisPopoverPositionConfiguration {\r\n placement: SolarisPopoverPlacement;\r\n offset: number;\r\n viewportPadding: number;\r\n autoFlip: boolean;\r\n autoShift: boolean;\r\n matchWidth: boolean;\r\n}\r\n\r\nexport interface SolarisPopoverPositionResult {\r\n x: number;\r\n y: number;\r\n appliedPlacement: SolarisPopoverPlacement;\r\n}\r\n\r\nfunction clamp(v: number, min: number, max: number) {\r\n return Math.max(min, Math.min(max, v));\r\n}\r\n\r\nfunction initialXY(anchor: DOMRect, panel: DOMRect, placement: SolarisPopoverPlacement, offset: number) {\r\n const axMid = anchor.left + anchor.width / 2;\r\n const ayMid = anchor.top + anchor.height / 2;\r\n\r\n switch (placement) {\r\n case 'bottom-start': return { x: anchor.left, y: anchor.bottom + offset };\r\n case 'bottom': return { x: axMid - panel.width / 2, y: anchor.bottom + offset };\r\n case 'bottom-end': return { x: anchor.right - panel.width, y: anchor.bottom + offset };\r\n\r\n case 'top-start': return { x: anchor.left, y: anchor.top - panel.height - offset };\r\n case 'top': return { x: axMid - panel.width / 2, y: anchor.top - panel.height - offset };\r\n case 'top-end': return { x: anchor.right - panel.width, y: anchor.top - panel.height - offset };\r\n\r\n case 'right-start': return { x: anchor.right + offset, y: anchor.top };\r\n case 'right': return { x: anchor.right + offset, y: ayMid - panel.height / 2 };\r\n case 'right-end': return { x: anchor.right + offset, y: anchor.bottom - panel.height };\r\n\r\n case 'left-start': return { x: anchor.left - panel.width - offset, y: anchor.top };\r\n case 'left': return { x: anchor.left - panel.width - offset, y: ayMid - panel.height / 2 };\r\n case 'left-end': return { x: anchor.left - panel.width - offset, y: anchor.bottom - panel.height };\r\n }\r\n}\r\n\r\nfunction flipPlacement(p: SolarisPopoverPlacement): SolarisPopoverPlacement {\r\n if (p.startsWith('bottom')) return (p.replace('bottom', 'top') as SolarisPopoverPlacement);\r\n if (p.startsWith('top')) return (p.replace('top', 'bottom') as SolarisPopoverPlacement);\r\n if (p.startsWith('left')) return (p.replace('left', 'right') as SolarisPopoverPlacement);\r\n if (p.startsWith('right')) return (p.replace('right', 'left') as SolarisPopoverPlacement);\r\n return p;\r\n}\r\n\r\nexport function computePopoverPosition(anchorRect: DOMRect, panelRect: DOMRect,\r\n configuration: SolarisPopoverPositionConfiguration): SolarisPopoverPositionResult {\r\n const vw = window.innerWidth;\r\n const vh = window.innerHeight;\r\n\r\n let applied = configuration.placement;\r\n\r\n const fits = (x: number, y: number) => {\r\n const pad = configuration.viewportPadding;\r\n const left = x;\r\n const top = y;\r\n const right = x + panelRect.width;\r\n const bottom = y + panelRect.height;\r\n\r\n return left >= pad && top >= pad && right <= vw - pad && bottom <= vh - pad;\r\n };\r\n\r\n let pos = initialXY(anchorRect, panelRect, applied, configuration.offset);\r\n\r\n if (configuration.autoFlip && !fits(pos.x, pos.y)) {\r\n const flipped = flipPlacement(applied);\r\n const flippedPos = initialXY(anchorRect, panelRect, flipped, configuration.offset);\r\n if (fits(flippedPos.x, flippedPos.y)) {\r\n applied = flipped;\r\n pos = flippedPos;\r\n }\r\n }\r\n\r\n if (configuration.autoShift) {\r\n const pad = configuration.viewportPadding;\r\n pos.x = clamp(pos.x, pad, vw - pad - panelRect.width);\r\n pos.y = clamp(pos.y, pad, vh - pad - panelRect.height);\r\n }\r\n\r\n return { x: pos.x, y: pos.y, appliedPlacement: applied };\r\n}\r\n","import { ApplicationRef, ChangeDetectionStrategy, Component, computed, ContentChild, DestroyRef, effect, EmbeddedViewRef,\r\n EventEmitter, HostBinding, inject, Input, Output, signal, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { SolarisPopoverTriggerDirective } from '../directives/popover-trigger.directive';\r\nimport { computePopoverPosition, SolarisPopoverPlacement } from '../model/popover.type';\r\nimport { SolarisPopoverPanelDirective } from '../directives/popover-panel.directive';\r\n\r\n@Component({\r\n selector: 'solaris-popover',\r\n standalone: true,\r\n templateUrl: './popover.html',\r\n styleUrls: ['./popover.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SolarisPopover {\r\n private readonly appRef = inject(ApplicationRef);\r\n private readonly destroyRef = inject(DestroyRef);\r\n\r\n @Input() offset = 8;\r\n @Input() panelClass = '';\r\n @Input() autoFlip = true;\r\n @Input() autoShift = true;\r\n @Input() matchWidth = false;\r\n @Input() viewportPadding = 8;\r\n @Input() closeOnEscape = true;\r\n @Input() closeOnOutsideClick = true;\r\n @Input() anchorElement?: HTMLElement | null = null;\r\n @Input() matchWidthElement?: HTMLElement | null = null;\r\n @Input() placement: SolarisPopoverPlacement = 'bottom-start';\r\n\r\n @Output() openChange = new EventEmitter<boolean>();\r\n\r\n private readonly _internalOpen = signal(false);\r\n private readonly _openInput = signal<boolean | null>(null);\r\n\r\n readonly isOpen = computed(() => {\r\n const v = this._openInput();\r\n return typeof v === 'boolean' ? v : this._internalOpen();\r\n });\r\n\r\n @Input() set open(v: boolean | null) {\r\n this._openInput.set(v);\r\n }\r\n get open(): boolean | null {\r\n return this._openInput();\r\n }\r\n\r\n @ContentChild(SolarisPopoverPanelDirective) panelDir?: SolarisPopoverPanelDirective;\r\n @ContentChild(SolarisPopoverTriggerDirective) triggerDir?: SolarisPopoverTriggerDirective;\r\n\r\n private raf = 0;\r\n private _setting = false;\r\n private panelHost?: HTMLDivElement;\r\n private panelView?: EmbeddedViewRef<any>;\r\n\r\n @HostBinding('attr.data-open')\r\n get dataOpen() {\r\n return this.isOpen() ? 'true' : null;\r\n }\r\n\r\n constructor() {\r\n effect(() => {\r\n if (this.isOpen()) this.show();\r\n else this.hide();\r\n });\r\n\r\n effect((onCleanup) => {\r\n if (!this.isOpen()) return;\r\n\r\n const onResize = () => this.scheduleReposition();\r\n const onScroll = () => this.scheduleReposition();\r\n\r\n const onPointerDown = (ev: PointerEvent) => {\r\n if (!this.closeOnOutsideClick) return;\r\n const t = ev.target as Node | null;\r\n const triggerEl = this.triggerDir?.elementRef.nativeElement;\r\n if (!t || !triggerEl || !this.panelHost) return;\r\n\r\n const clickedInsidePanel = this.panelHost.contains(t);\r\n const clickedOnTrigger = triggerEl.contains(t);\r\n\r\n if (!clickedInsidePanel && !clickedOnTrigger) {\r\n this.setOpen(false);\r\n }\r\n };\r\n\r\n const onKeyDown = (ev: KeyboardEvent) => {\r\n if (!this.closeOnEscape) return;\r\n if (ev.key === 'Escape') this.setOpen(false);\r\n };\r\n\r\n window.addEventListener('resize', onResize, { passive: true });\r\n window.addEventListener('scroll', onScroll, { passive: true, capture: true });\r\n document.addEventListener('pointerdown', onPointerDown, { capture: true });\r\n document.addEventListener('keydown', onKeyDown, { capture: true });\r\n\r\n onCleanup(() => {\r\n window.removeEventListener('resize', onResize);\r\n window.removeEventListener('scroll', onScroll, true as any);\r\n document.removeEventListener('pointerdown', onPointerDown, true as any);\r\n document.removeEventListener('keydown', onKeyDown, true as any);\r\n });\r\n });\r\n\r\n this.destroyRef.onDestroy(() => this.unmountHard());\r\n }\r\n\r\n public toggle() {\r\n this.setOpen(!this.isOpen());\r\n }\r\n\r\n public setOpen(next: boolean) {\r\n const current = this.isOpen();\r\n if (next === current) return;\r\n if (this._setting) return;\r\n\r\n this._setting = true;\r\n try {\r\n this.openChange.emit(next);\r\n if (typeof this._openInput() !== 'boolean') {\r\n this._internalOpen.set(next);\r\n }\r\n } finally {\r\n queueMicrotask(() => (this._setting = false));\r\n }\r\n }\r\n\r\n private ensureMounted() {\r\n if (this.panelHost || !this.triggerDir || !this.panelDir) return;\r\n\r\n const host = document.createElement('div');\r\n host.style.top = '0px';\r\n host.style.left = '0px';\r\n host.style.display = 'none';\r\n host.style.position = 'fixed';\r\n host.style.zIndex = 'var(--solaris-z-max)';\r\n host.className = `solaris-popover-panel ${this.panelClass || ''}`.trim();\r\n\r\n const view = this.panelDir.templateRef.createEmbeddedView({});\r\n this.appRef.attachView(view);\r\n view.detectChanges();\r\n\r\n for (const node of view.rootNodes) host.appendChild(node);\r\n document.body.appendChild(host);\r\n\r\n this.panelHost = host;\r\n this.panelView = view;\r\n }\r\n\r\n private show() {\r\n this.ensureMounted();\r\n if (!this.panelHost) return;\r\n\r\n this.panelHost.style.display = '';\r\n this.scheduleReposition(true);\r\n }\r\n\r\n private hide() {\r\n if (!this.panelHost) return;\r\n this.panelHost.style.display = 'none';\r\n }\r\n\r\n private unmountHard() {\r\n if (this.raf) cancelAnimationFrame(this.raf);\r\n this.raf = 0;\r\n\r\n if (this.panelView) {\r\n this.appRef.detachView(this.panelView);\r\n this.panelView.destroy();\r\n this.panelView = undefined;\r\n }\r\n\r\n if (this.panelHost) {\r\n this.panelHost.remove();\r\n this.panelHost = undefined;\r\n }\r\n }\r\n\r\n private scheduleReposition(immediate = false) {\r\n if (!this.panelHost || !this.triggerDir) return;\r\n\r\n if (immediate) {\r\n this.reposition();\r\n return;\r\n }\r\n\r\n if (this.raf) return;\r\n this.raf = requestAnimationFrame(() => {\r\n this.raf = 0;\r\n this.reposition();\r\n });\r\n }\r\n\r\n private reposition() {\r\n const triggerEl = this.triggerDir?.elementRef.nativeElement;\r\n const host = this.panelHost;\r\n if (!triggerEl || !host) return;\r\n\r\n const anchorEl = this.anchorElement ?? triggerEl;\r\n const anchorRect = anchorEl.getBoundingClientRect();\r\n const widthEl = this.matchWidthElement ?? (this.matchWidth ? anchorEl : null);\r\n\r\n if (this.matchWidth && widthEl) {\r\n const w = widthEl.getBoundingClientRect().width;\r\n host.style.boxSizing = 'border-box';\r\n host.style.width = `${w}px`;\r\n host.style.minWidth = `${w}px`;\r\n host.style.maxWidth = `${w}px`;\r\n } else {\r\n host.style.width = '';\r\n host.style.minWidth = '';\r\n host.style.maxWidth = '';\r\n }\r\n\r\n if (getComputedStyle(host).display === 'none') return;\r\n\r\n const panelRect = host.getBoundingClientRect();\r\n\r\n const { x, y } = computePopoverPosition(anchorRect, panelRect, {\r\n placement: this.placement,\r\n offset: this.offset,\r\n viewportPadding: this.viewportPadding,\r\n autoFlip: this.autoFlip,\r\n autoShift: this.autoShift,\r\n matchWidth: this.matchWidth,\r\n });\r\n\r\n host.style.transform = `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)`;\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n","import { AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, HostBinding, Input,\r\n Output, QueryList, signal } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\n\r\nimport { TabsSize, TabsVariant } from '../model/tab.type';\r\nimport { SolarisTab } from '../tab/component/tab';\r\n\r\n@Component({\r\n selector: 'solaris-tabs',\r\n standalone: true,\r\n imports: [NgClass],\r\n templateUrl: './tabs.html',\r\n styleUrl: './tabs.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisTabs implements AfterContentInit {\r\n @Input() size: TabsSize = 'md';\r\n @Input() disabled = false;\r\n @Input() variant: TabsVariant = 'underline';\r\n @Input({ alias: 'active-id' }) activeId?: string;\r\n @Output('active-idChange') activeIdChange = new EventEmitter<string>();\r\n @Output() tabChange = new EventEmitter<{ id: string }>();\r\n\r\n @HostBinding('class') hostClass = 'solaris-tabs-host';\r\n @ContentChildren(SolarisTab) tabs!: QueryList<SolarisTab>;\r\n readonly focusId = signal<string | null>(null);\r\n\r\n ngAfterContentInit() {\r\n queueMicrotask(() => {\r\n const first = this.tabs?.get(0);\r\n if (!this.activeId && first?.id) {\r\n this.setActive(first.id, false);\r\n }\r\n if (!this.focusId() && (this.activeId ?? first?.id)) {\r\n this.focusId.set(this.activeId ?? first?.id ?? null);\r\n }\r\n this.syncTabs();\r\n this.tabs.changes.subscribe(() => this.syncTabs());\r\n });\r\n }\r\n\r\n private syncTabs() {\r\n const list = this.tabs?.toArray() ?? [];\r\n for (const t of list) {\r\n t._setParent(this);\r\n t._setDisabled(this.disabled || t.disabled);\r\n }\r\n }\r\n\r\n isActive(id: string) {\r\n return this.activeId === id;\r\n }\r\n\r\n isFocusable(id: string) {\r\n const fid = this.focusId();\r\n return (fid ?? this.activeId) === id;\r\n }\r\n\r\n setActive(id: string, emit = true) {\r\n if (!id) return;\r\n this.activeId = id;\r\n this.focusId.set(id);\r\n if (emit) {\r\n this.activeIdChange.emit(id);\r\n this.tabChange.emit({ id });\r\n }\r\n }\r\n\r\n onKeydown(ev: KeyboardEvent) {\r\n if (this.disabled) return;\r\n\r\n const keys = ['ArrowLeft', 'ArrowRight', 'Home', 'End'];\r\n if (!keys.includes(ev.key)) return;\r\n\r\n const list = (this.tabs?.toArray() ?? []).filter(t => !t._isDisabled());\r\n if (!list.length) return;\r\n\r\n ev.preventDefault();\r\n\r\n const currentId = this.focusId() ?? this.activeId ?? list[0].id;\r\n const idx = Math.max(0, list.findIndex(t => t.id === currentId));\r\n let next = idx;\r\n\r\n if (ev.key === 'ArrowLeft') next = (idx - 1 + list.length) % list.length;\r\n if (ev.key === 'ArrowRight') next = (idx + 1) % list.length;\r\n if (ev.key === 'Home') next = 0;\r\n if (ev.key === 'End') next = list.length - 1;\r\n\r\n const nextTab = list[next];\r\n this.focusId.set(nextTab.id);\r\n nextTab._focus();\r\n }\r\n}\r\n","<div [ngClass]=\"['size-' + size, 'variant-' + variant, disabled ? 'is-disabled' : '']\"\r\n class=\"solaris-tabs\" role=\"tablist\" (keydown)=\"onKeydown($event)\">\r\n <ng-content/>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, ElementRef, HostBinding,\r\n HostListener, Input, Optional } from '@angular/core';\r\nimport { RouterLink } from '@angular/router';\r\n\r\nimport { SolarisTabs } from '../../component/tabs';\r\n\r\n@Component({\r\n selector: 'solaris-tab',\r\n standalone: true,\r\n imports: [RouterLink],\r\n templateUrl: './tab.html',\r\n styleUrl: './tab.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisTab {\r\n @Input() disabled = false;\r\n @Input() routerLink?: any[] | string;\r\n @Input({ required: true }) id!: string;\r\n\r\n private parent?: SolarisTabs;\r\n private disabledByParent = false;\r\n\r\n constructor(private readonly elementRef: ElementRef<HTMLElement>,@Optional() parent: SolarisTabs) {\r\n this.parent = parent;\r\n }\r\n\r\n _setParent(p: SolarisTabs) { this.parent = p; }\r\n _setDisabled(v: boolean) { this.disabledByParent = v; }\r\n\r\n _isDisabled() {\r\n return this.disabled || this.disabledByParent;\r\n }\r\n\r\n _focus() {\r\n this.elementRef.nativeElement.focus();\r\n }\r\n\r\n @HostBinding('class') get hostClass() {\r\n const active = this.parent?.isActive(this.id);\r\n return [\r\n 'solaris-tab',\r\n active ? 'is-active' : '',\r\n this._isDisabled() ? 'is-disabled' : '',\r\n this.routerLink ? 'is-link' : '',\r\n ].filter(Boolean).join(' ');\r\n }\r\n @HostBinding('attr.role') role = 'tab';\r\n @HostBinding('attr.tabindex') get tabIndex() {\r\n if (this._isDisabled()) return -1;\r\n return this.parent?.isFocusable(this.id) ? 0 : -1;\r\n }\r\n @HostBinding('attr.aria-selected') get ariaSelected() {\r\n return this.parent?.isActive(this.id) ? 'true' : 'false';\r\n }\r\n\r\n @HostListener('click') onClick() {\r\n if (this._isDisabled()) return;\r\n this.parent?.setActive(this.id, true);\r\n }\r\n\r\n @HostListener('focus') onFocus() {\r\n if (this._isDisabled()) return;\r\n this.parent?.focusId.set(this.id);\r\n }\r\n}\r\n","@if (routerLink) {\r\n <a class=\"solaris-tab__inner\" [routerLink]=\"routerLink\">\r\n <ng-content />\r\n </a>\r\n} @else {\r\n <button type=\"button\" class=\"solaris-tab__inner\">\r\n <ng-content />\r\n </button>\r\n}\r\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { NgStyle } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'solaris-loading-overlay',\r\n standalone: true,\r\n templateUrl: './loading-overlay.html',\r\n styleUrl: './loading-overlay.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n NgStyle\r\n ]\r\n})\r\nexport class SolarisLoadingOverlay implements OnChanges {\r\n @HostBinding('attr.solaris-loading-overlay') readonly marker = '';\r\n\r\n @Input({ alias: 'z-index' }) zIndex?: number;\r\n @Input() backdrop: 'soft' | 'strong' = 'soft';\r\n @Input() appearance: 'card' | 'minimal' = 'card';\r\n @Input({ transform: coerceBoolean }) blur = true;\r\n @Input({ transform: coerceBoolean }) open = false;\r\n @Input({ alias: 'lock-scroll', transform: coerceBoolean }) lockScroll = true;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!this.lockScroll) return;\r\n\r\n if (changes['open']) {\r\n if (this.open) document.documentElement.style.overflow = 'hidden';\r\n else document.documentElement.style.overflow = '';\r\n }\r\n }\r\n\r\n get overlayStyle() {\r\n return this.zIndex == null ? null : {'z-index': String(this.zIndex)};\r\n }\r\n}\r\n\r\nfunction coerceBoolean(v: any): boolean {\r\n return v === '' || v === true || v === 'true' || v === 1 || v === '1';\r\n}\r\n","@if (open) {\r\n <div class=\"solaris-loading-overlay\" [class.backdrop-soft]=\"backdrop === 'soft'\"\r\n [class.backdrop-strong]=\"backdrop === 'strong'\" [class.is-blur]=\"blur\"\r\n [class.appearance-card]=\"appearance === 'card'\" [class.appearance-minimal]=\"appearance === 'minimal'\"\r\n [ngStyle]=\"overlayStyle\" role=\"presentation\">\r\n <div class=\"solaris-loading-overlay__backdrop\" aria-hidden=\"true\"></div>\r\n\r\n <div class=\"solaris-loading-overlay__content\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n}\r\n","import { SolarisFloatingOverlayRef, SolarisFloatingPosition, SolarisFloatingPositionConfiguration,\r\n SolarisFloatingPositionResult, SolarisTooltipRepositionOptions } from './model/tooltip-services.type';\r\nimport { ElementRef } from '@angular/core';\r\n\r\nfunction clamp(value: number, min: number, max: number): number {\r\n return Math.max(min, Math.min(max, value));\r\n}\r\n\r\nfunction oppositePosition(position: SolarisFloatingPosition): SolarisFloatingPosition {\r\n switch (position) {\r\n case 'top': return 'bottom';\r\n case 'bottom': return 'top';\r\n case 'left': return 'right';\r\n case 'right': return 'left';\r\n }\r\n}\r\n\r\nfunction initialXY(anchor: DOMRect, panel: DOMRect,\r\n position: SolarisFloatingPosition, offset: number): { x: number; y: number } {\r\n const anchorCenterX = anchor.left + anchor.width / 2;\r\n const anchorCenterY = anchor.top + anchor.height / 2;\r\n\r\n switch (position) {\r\n case 'top':\r\n return {\r\n x: anchorCenterX - panel.width / 2,\r\n y: anchor.top - panel.height - offset,\r\n };\r\n\r\n case 'bottom':\r\n return {\r\n x: anchorCenterX - panel.width / 2,\r\n y: anchor.bottom + offset,\r\n };\r\n\r\n case 'right':\r\n return {\r\n x: anchor.right + offset,\r\n y: anchorCenterY - panel.height / 2,\r\n };\r\n\r\n case 'left':\r\n return {\r\n x: anchor.left - panel.width - offset,\r\n y: anchorCenterY - panel.height / 2,\r\n };\r\n }\r\n}\r\n\r\nexport function computeFloatingPosition(anchorRect: DOMRect, panelRect: DOMRect,\r\n configuration: SolarisFloatingPositionConfiguration): SolarisFloatingPositionResult {\r\n const viewportWidth = window.innerWidth;\r\n const viewportHeight = window.innerHeight;\r\n const padding = configuration.viewportPadding;\r\n\r\n let appliedPosition = configuration.position;\r\n let position = initialXY(anchorRect, panelRect, appliedPosition, configuration.offset);\r\n\r\n const fits = (x: number, y: number): boolean => {\r\n const left = x;\r\n const top = y;\r\n const right = x + panelRect.width;\r\n const bottom = y + panelRect.height;\r\n\r\n return (\r\n left >= padding &&\r\n top >= padding &&\r\n right <= viewportWidth - padding &&\r\n bottom <= viewportHeight - padding\r\n );\r\n };\r\n\r\n if (configuration.autoFlip && !fits(position.x, position.y)) {\r\n const flipped = oppositePosition(appliedPosition);\r\n const flippedPosition = initialXY(anchorRect, panelRect, flipped, configuration.offset);\r\n\r\n if (fits(flippedPosition.x, flippedPosition.y)) {\r\n appliedPosition = flipped;\r\n position = flippedPosition;\r\n }\r\n }\r\n\r\n if (configuration.autoShift) {\r\n position.x = clamp(position.x, padding, viewportWidth - padding - panelRect.width);\r\n position.y = clamp(position.y, padding, viewportHeight - padding - panelRect.height);\r\n }\r\n\r\n return {\r\n x: position.x,\r\n y: position.y,\r\n appliedPosition,\r\n };\r\n}\r\n\r\nexport function repositionTooltipOverlay<T>(anchor: ElementRef<HTMLElement>, overlayRef: SolarisFloatingOverlayRef<T>,\r\n options: SolarisTooltipRepositionOptions, setAppliedPosition: (position: SolarisFloatingPosition) => void): void {\r\n const anchorRect = anchor.nativeElement.getBoundingClientRect();\r\n const panelRect = overlayRef.hostElement.getBoundingClientRect();\r\n\r\n const result = computeFloatingPosition(anchorRect, panelRect, options);\r\n\r\n overlayRef.setTransform(result.x, result.y);\r\n setAppliedPosition(result.appliedPosition);\r\n}\r\n","import { ApplicationRef, EnvironmentInjector, Injectable, Type,\r\n createComponent, inject } from '@angular/core';\r\n\r\nimport {\r\n SolarisFloatingOverlayOptions,\r\n SolarisFloatingOverlayRef,\r\n SolarisFloatingRepositionContext\r\n} from './model/tooltip-services.type';\r\nimport { computeFloatingPosition } from './floating-position.util';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SolarisFloatingOverlayService {\r\n private readonly appRef = inject(ApplicationRef);\r\n private readonly injector = inject(EnvironmentInjector);\r\n\r\n create<T>(component: Type<T>, options: SolarisFloatingOverlayOptions = {}): SolarisFloatingOverlayRef<T> {\r\n const id = this.createId(options.idPrefix ?? 'solaris-floating');\r\n\r\n const host = document.createElement('div');\r\n host.id = id;\r\n host.style.position = 'fixed';\r\n host.style.top = '0';\r\n host.style.left = '0';\r\n host.style.display = 'block';\r\n host.style.width = 'max-content';\r\n host.style.maxWidth = 'max-content';\r\n host.style.zIndex = options.zIndex ?? 'var(--solaris-z-tooltip, 1200)';\r\n host.style.pointerEvents = options.pointerEvents ?? 'none';\r\n host.style.transform = 'translate3d(0, 0, 0)';\r\n\r\n if (options.panelClass?.trim()) {\r\n host.className = options.panelClass.trim();\r\n }\r\n\r\n document.body.appendChild(host);\r\n\r\n const componentRef = createComponent(component, {\r\n environmentInjector: this.injector,\r\n hostElement: host,\r\n });\r\n\r\n this.appRef.attachView(componentRef.hostView);\r\n componentRef.changeDetectorRef.detectChanges();\r\n\r\n return {\r\n id,\r\n hostElement: host,\r\n componentRef,\r\n\r\n setTransform(x: number, y: number): void {\r\n host.style.transform = `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)`;\r\n },\r\n\r\n destroy: (): void => {\r\n this.appRef.detachView(componentRef.hostView);\r\n componentRef.destroy();\r\n host.remove();\r\n },\r\n };\r\n }\r\n\r\n reposition<T>(context: SolarisFloatingRepositionContext<T>): void {\r\n const anchorRect = context.anchor.getBoundingClientRect();\r\n const panelRect = context.overlayRef.hostElement.getBoundingClientRect();\r\n\r\n const result = computeFloatingPosition(anchorRect, panelRect, context.options);\r\n\r\n context.overlayRef.setTransform(result.x, result.y);\r\n context.setAppliedPosition(result.appliedPosition);\r\n }\r\n\r\n clearFloatingTimers(showTimer: number, hideTimer: number, raf: number): void {\r\n globalThis.clearTimeout(showTimer);\r\n globalThis.clearTimeout(hideTimer);\r\n\r\n if (raf) {\r\n cancelAnimationFrame(raf);\r\n }\r\n }\r\n\r\n destroyOverlay<T>(overlayRef?: SolarisFloatingOverlayRef<T>): void {\r\n overlayRef?.destroy();\r\n }\r\n\r\n private createId(prefix: string): string {\r\n const random =\r\n typeof crypto !== 'undefined' && 'randomUUID' in crypto\r\n ? crypto.randomUUID()\r\n : `${Date.now()}-${Math.round(Math.random() * 1_000_000)}`;\r\n\r\n return `${prefix}-${random}`;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, TemplateRef, input } from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\n\r\nimport { SolarisTooltipPosition, SolarisTooltipSize, SolarisTooltipVariant } from '../../tooltip/model/tooltip.type';\r\n\r\n@Component({\r\n selector: 'solaris-rich-tooltip-panel',\r\n standalone: true,\r\n imports: [\r\n NgTemplateOutlet\r\n ],\r\n templateUrl: './rich-tooltip-panel.html',\r\n styleUrls: ['./rich-tooltip-panel.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisRichTooltipPanel {\r\n readonly template = input<TemplateRef<unknown> | null>(null);\r\n readonly position = input<SolarisTooltipPosition>('top');\r\n readonly variant = input<SolarisTooltipVariant>('inverse');\r\n readonly size = input<SolarisTooltipSize>('md');\r\n}\r\n","<div class=\"solaris-rich-tooltip\" [attr.data-position]=\"position()\" [attr.data-variant]=\"variant()\"\r\n [attr.data-size]=\"size()\" role=\"tooltip\">\r\n <div class=\"solaris-rich-tooltip__content\">\r\n @if (template()) {\r\n <ng-container [ngTemplateOutlet]=\"template()\"></ng-container>\r\n }\r\n </div>\r\n\r\n <span class=\"solaris-rich-tooltip__arrow\" aria-hidden=\"true\"></span>\r\n</div>\r\n","import { Directive, ElementRef, Renderer2, TemplateRef, effect, inject, input, OnDestroy } from '@angular/core';\r\n\r\nimport { SolarisTooltipPosition, SolarisTooltipSize, SolarisTooltipVariant } from '../../tooltip/model/tooltip.type';\r\nimport { SolarisFloatingOverlayService } from '../../../../services/tooltip/floating-overlay.service';\r\nimport { SolarisFloatingOverlayRef } from '../../../../services/tooltip/model/tooltip-services.type';\r\nimport { repositionTooltipOverlay } from '../../../../services/tooltip/floating-position.util';\r\nimport { SolarisRichTooltipPanel } from '../component/rich-tooltip-panel';\r\n\r\n@Directive({\r\n selector: '[solaris-rich-tooltip]',\r\n standalone: true,\r\n})\r\nexport class SolarisRichTooltipDirective implements OnDestroy {\r\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly renderer = inject(Renderer2);\r\n private readonly floatingOverlay = inject(SolarisFloatingOverlayService);\r\n\r\n readonly template = input<TemplateRef<unknown> | null>(null, {\r\n alias: 'solaris-rich-tooltip',\r\n });\r\n\r\n readonly tooltipPosition = input<SolarisTooltipPosition>('top', {\r\n alias: 'tooltip-position',\r\n });\r\n\r\n readonly tooltipVariant = input<SolarisTooltipVariant>('inverse', {\r\n alias: 'tooltip-variant',\r\n });\r\n\r\n readonly tooltipSize = input<SolarisTooltipSize>('md', {\r\n alias: 'tooltip-size',\r\n });\r\n\r\n readonly tooltipDisabled = input(false, {\r\n alias: 'tooltip-disabled',\r\n });\r\n\r\n readonly tooltipShowDelay = input(300, {\r\n alias: 'tooltip-show-delay',\r\n });\r\n\r\n readonly tooltipHideDelay = input(120, {\r\n alias: 'tooltip-hide-delay',\r\n });\r\n\r\n readonly tooltipOffset = input(8, {\r\n alias: 'tooltip-offset',\r\n });\r\n\r\n readonly tooltipAutoFlip = input(true, {\r\n alias: 'tooltip-auto-flip',\r\n });\r\n\r\n readonly tooltipAutoShift = input(true, {\r\n alias: 'tooltip-auto-shift',\r\n });\r\n\r\n readonly tooltipViewportPadding = input(8, {\r\n alias: 'tooltip-viewport-padding',\r\n });\r\n\r\n private overlayRef?: SolarisFloatingOverlayRef<SolarisRichTooltipPanel>;\r\n private showTimer = 0;\r\n private hideTimer = 0;\r\n private raf = 0;\r\n private isTriggerHovered = false;\r\n private isPanelHovered = false;\r\n private hasFocusInside = false;\r\n\r\n private readonly cleanups: Array<() => void> = [];\r\n\r\n constructor() {\r\n const host = this.elementRef.nativeElement;\r\n\r\n this.cleanups.push(\r\n this.renderer.listen(host, 'mouseenter', () => {\r\n this.isTriggerHovered = true;\r\n this.scheduleShow();\r\n }),\r\n this.renderer.listen(host, 'mouseleave', () => {\r\n this.isTriggerHovered = false;\r\n this.scheduleHideIfSafe();\r\n }),\r\n this.renderer.listen(host, 'focusin', () => {\r\n this.hasFocusInside = true;\r\n this.scheduleShow();\r\n }),\r\n this.renderer.listen(host, 'focusout', () => {\r\n this.hasFocusInside = false;\r\n this.scheduleHideIfSafe();\r\n }),\r\n this.renderer.listen(host, 'keydown', (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') {\r\n this.hide();\r\n }\r\n }),\r\n this.renderer.listen(globalThis, 'resize', () => this.scheduleReposition()),\r\n this.renderer.listen(globalThis, 'scroll', () => this.scheduleReposition()),\r\n this.renderer.listen(document, 'keydown', (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') {\r\n this.hide();\r\n }\r\n }),\r\n );\r\n\r\n effect(() => {\r\n if (!this.overlayRef) return;\r\n\r\n this.applyPanelInputs();\r\n this.scheduleReposition();\r\n });\r\n }\r\n\r\n private scheduleShow(): void {\r\n if (this.tooltipDisabled()) return;\r\n if (!this.template()) return;\r\n\r\n globalThis.clearTimeout(this.hideTimer);\r\n globalThis.clearTimeout(this.showTimer);\r\n\r\n this.showTimer = globalThis.setTimeout(() => {\r\n this.show();\r\n }, this.tooltipShowDelay());\r\n }\r\n\r\n private scheduleHideIfSafe(): void {\r\n globalThis.clearTimeout(this.showTimer);\r\n globalThis.clearTimeout(this.hideTimer);\r\n\r\n this.hideTimer = globalThis.setTimeout(() => {\r\n if (!this.isTriggerHovered && !this.isPanelHovered && !this.hasFocusInside) {\r\n this.hide();\r\n }\r\n }, this.tooltipHideDelay());\r\n }\r\n\r\n private show(): void {\r\n if (this.overlayRef || this.tooltipDisabled()) return;\r\n if (!this.template()) return;\r\n\r\n this.overlayRef = this.floatingOverlay.create(SolarisRichTooltipPanel, {\r\n idPrefix: 'solaris-rich-tooltip',\r\n zIndex: 'var(--solaris-z-tooltip, 1200)',\r\n pointerEvents: 'auto',\r\n });\r\n\r\n this.applyPanelInputs();\r\n this.bindPanelInteractions();\r\n\r\n this.renderer.setAttribute(\r\n this.elementRef.nativeElement,\r\n 'aria-describedby',\r\n this.overlayRef.id,\r\n );\r\n\r\n requestAnimationFrame(() => this.reposition());\r\n }\r\n\r\n private bindPanelInteractions(): void {\r\n if (!this.overlayRef) return;\r\n\r\n const panel = this.overlayRef.hostElement;\r\n\r\n this.cleanups.push(\r\n this.renderer.listen(panel, 'mouseenter', () => {\r\n this.isPanelHovered = true;\r\n globalThis.clearTimeout(this.hideTimer);\r\n }),\r\n this.renderer.listen(panel, 'mouseleave', () => {\r\n this.isPanelHovered = false;\r\n this.scheduleHideIfSafe();\r\n }),\r\n this.renderer.listen(panel, 'focusin', () => {\r\n this.hasFocusInside = true;\r\n globalThis.clearTimeout(this.hideTimer);\r\n }),\r\n this.renderer.listen(panel, 'focusout', () => {\r\n this.hasFocusInside = false;\r\n this.scheduleHideIfSafe();\r\n }),\r\n );\r\n }\r\n\r\n private hide(): void {\r\n this.floatingOverlay.clearFloatingTimers(this.showTimer, this.hideTimer, this.raf);\r\n this.raf = 0;\r\n\r\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'aria-describedby');\r\n\r\n this.floatingOverlay.destroyOverlay(this.overlayRef);\r\n this.overlayRef = undefined;\r\n\r\n this.isPanelHovered = false;\r\n this.hasFocusInside = false;\r\n }\r\n\r\n private applyPanelInputs(): void {\r\n if (!this.overlayRef) return;\r\n\r\n const panel = this.overlayRef.componentRef;\r\n\r\n panel.setInput('template', this.template());\r\n panel.setInput('position', this.tooltipPosition());\r\n panel.setInput('variant', this.tooltipVariant());\r\n panel.setInput('size', this.tooltipSize());\r\n\r\n panel.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private scheduleReposition(): void {\r\n if (!this.overlayRef) return;\r\n if (this.raf) return;\r\n\r\n this.raf = requestAnimationFrame(() => {\r\n this.raf = 0;\r\n this.reposition();\r\n });\r\n }\r\n\r\n private reposition(): void {\r\n if (!this.overlayRef) return;\r\n\r\n repositionTooltipOverlay(this.elementRef, this.overlayRef, {\r\n position: this.tooltipPosition(),\r\n offset: this.tooltipOffset(),\r\n viewportPadding: this.tooltipViewportPadding(),\r\n autoFlip: this.tooltipAutoFlip(),\r\n autoShift: this.tooltipAutoShift(),\r\n },\r\n (position) => {\r\n this.overlayRef?.componentRef.setInput('position', position);\r\n this.overlayRef?.componentRef.changeDetectorRef.detectChanges();\r\n },\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.hide();\r\n\r\n for (const cleanup of this.cleanups) {\r\n cleanup();\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostBinding, HostListener, Input, booleanAttribute, computed, inject, signal } from '@angular/core';\r\n\r\nimport { SolarisButtonColorInput, SolarisButtonVariant, SolarisRadiusInput } from '../models/button.type';\r\nimport { SolarisColorPreset, SolarisSizePreset } from '../../../common/model/common-configurations.type';\r\n\r\nconst PRESET_COLORS = new Set<SolarisColorPreset>([\r\n 'primary',\r\n 'surface',\r\n 'success',\r\n 'warning',\r\n 'error',\r\n 'info',\r\n 'gradient',\r\n]);\r\nfunction resolveRadius(v: SolarisRadiusInput): string {\r\n const s = String(v).trim();\r\n switch (s) {\r\n case 'none':\r\n return '0';\r\n case 'sm':\r\n return 'var(--solaris-radius-sm)';\r\n case 'md':\r\n return 'var(--solaris-radius-md, var(--solaris-radius-sm))';\r\n case 'lg':\r\n return 'var(--solaris-radius-lg, var(--solaris-radius-md, var(--solaris-radius-sm)))';\r\n case 'full':\r\n return 'var(--solaris-radius-full)';\r\n default:\r\n return s;\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: 'button[solaris-button], a[solaris-button]',\r\n standalone: true,\r\n})\r\nexport class SolarisButtonDirective {\r\n private readonly elementRef = inject(ElementRef<HTMLElement>);\r\n\r\n private readonly _loading = signal(false);\r\n private readonly _disabled = signal(false);\r\n private readonly _iconOnly = signal(false);\r\n private readonly _fullWidth = signal(false);\r\n private readonly _badgeOverlay = signal(false);\r\n private readonly _textColor = signal<string | null>(null);\r\n private readonly _customColor = signal<string | null>(null);\r\n private readonly _size = signal<SolarisSizePreset>('md');\r\n private readonly _variant = signal<SolarisButtonVariant>('solid');\r\n private readonly _radius = signal<SolarisRadiusInput | null>(null);\r\n private readonly _color = signal<SolarisColorPreset | 'custom'>('primary');\r\n\r\n private readonly isAnchor = computed(\r\n () => this.elementRef.nativeElement.tagName.toLowerCase() === 'a'\r\n );\r\n\r\n @Input() set size(v: SolarisSizePreset) {\r\n if (v) this._size.set(v);\r\n }\r\n @Input() set variant(v: SolarisButtonVariant) {\r\n if (v) this._variant.set(v);\r\n }\r\n @Input() set color(v: SolarisButtonColorInput) {\r\n if (v == null || String(v).trim() === '') return;\r\n\r\n const value = String(v).trim();\r\n if (PRESET_COLORS.has(value as SolarisColorPreset)) {\r\n this._color.set(value as SolarisColorPreset);\r\n this._customColor.set(null);\r\n } else {\r\n this._color.set('custom');\r\n this._customColor.set(value);\r\n }\r\n }\r\n @Input() set textColor(v: string | null | undefined) {\r\n const value = v == null || String(v).trim() === '' ? null : String(v).trim();\r\n this._textColor.set(value);\r\n }\r\n @Input() set radius(v: SolarisRadiusInput | null | undefined) {\r\n const value = v == null || String(v).trim() === '' ? null : (v);\r\n this._radius.set(value);\r\n }\r\n @Input({ transform: booleanAttribute }) set loading(v: boolean) {\r\n this._loading.set(v);\r\n }\r\n @Input({ transform: booleanAttribute }) set iconOnly(v: boolean) {\r\n this._iconOnly.set(v);\r\n }\r\n @Input({ transform: booleanAttribute }) set disabled(v: boolean) {\r\n this._disabled.set(v);\r\n }\r\n @Input({ transform: booleanAttribute }) set fullWidth(v: boolean) {\r\n this._fullWidth.set(v);\r\n }\r\n @Input({ transform: booleanAttribute }) set badgeOverlay(v: boolean) {\r\n this._badgeOverlay.set(v);\r\n }\r\n\r\n @HostBinding('attr.solaris-button') readonly attr = '';\r\n @HostBinding('attr.tabindex') get tabIndex() {\r\n return this.isAnchor() && (this._disabled() || this._loading()) ? -1 : null;\r\n }\r\n @HostBinding('attr.aria-busy') get ariaBusy() {\r\n return this._loading() ? 'true' : null;\r\n }\r\n @HostBinding('attr.data-size') get dataSize() {\r\n return this._size();\r\n }\r\n @HostBinding('attr.data-color') get dataColor() {\r\n return this._color();\r\n }\r\n @HostBinding('attr.disabled') get nativeDisabled() {\r\n const isButton = !this.isAnchor();\r\n return isButton && (this._disabled() || this._loading()) ? '' : null;\r\n }\r\n @HostBinding('attr.data-variant') get dataVariant() {\r\n return this._variant();\r\n }\r\n @HostBinding('attr.aria-disabled') get ariaDisabled() {\r\n return this.isAnchor() && (this._disabled() || this._loading()) ? 'true' : null;\r\n }\r\n @HostBinding('attr.data-icon-only') get dataIconOnly() {\r\n return this._iconOnly() ? 'true' : null;\r\n }\r\n @HostBinding('attr.data-full-width') get dataFullWidth() {\r\n return this._fullWidth() ? 'true' : null;\r\n }\r\n @HostBinding('style.--sb-custom') get customColorValue() {\r\n return this._customColor() ?? null;\r\n }\r\n @HostBinding('attr.data-custom-ink') get dataCustomInk() {\r\n return this._textColor() ? 'true' : null;\r\n }\r\n @HostBinding('style.--sb-custom-ink') get customInkValue() {\r\n return this._textColor() ?? null;\r\n }\r\n @HostBinding('attr.data-badge-overlay') get dataBadgeOverlay() {\r\n return this._badgeOverlay() ? 'true' : null;\r\n }\r\n @HostBinding('style.--solaris-button-radius') get buttonRadius() {\r\n return this._radius() ? resolveRadius(this._radius()!) : null;\r\n }\r\n\r\n @HostListener('click', ['$event']) onClick(ev: Event) {\r\n if (!this.isAnchor()) return;\r\n if (this._disabled() || this._loading()) {\r\n ev.preventDefault();\r\n ev.stopImmediatePropagation();\r\n }\r\n }\r\n}\r\n","import { EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\r\n\r\nimport { SolarisNotificationConfig, SolarisNotificationConfigInput, SolarisNotificationPosition } from '../model/notification.types';\r\n\r\nexport const SOLARIS_NOTIFICATION_POSITIONS: readonly SolarisNotificationPosition[] = [\r\n 'top-right', 'top-left', 'top-center',\r\n 'bottom-right', 'bottom-left', 'bottom-center',\r\n] as const;\r\n\r\nexport const SOLARIS_NOTIFICATION_DEFAULT_CONFIG: SolarisNotificationConfig = {\r\n defaultPosition: 'bottom-center',\r\n defaultDuration: 15000,\r\n maxVisiblePerPosition: 4,\r\n hoverPause: false,\r\n newestOnTop: true,\r\n expandSingle: false,\r\n persistInCenter: true,\r\n translationScope: 'solaris.notifications',\r\n};\r\n\r\nexport const SOLARIS_NOTIFICATION_CONFIG = new InjectionToken<SolarisNotificationConfig>(\r\n 'SOLARIS_NOTIFICATION_CONFIG',\r\n {\r\n providedIn: 'root',\r\n factory: () => SOLARIS_NOTIFICATION_DEFAULT_CONFIG,\r\n }\r\n);\r\n\r\nfunction mergeConfig(input: SolarisNotificationConfigInput = {}): SolarisNotificationConfig {\r\n return {\r\n ...SOLARIS_NOTIFICATION_DEFAULT_CONFIG,\r\n ...input,\r\n };\r\n}\r\n\r\nexport function provideSolarisNotifications(input: SolarisNotificationConfigInput = {}): EnvironmentProviders {\r\n return makeEnvironmentProviders([\r\n {\r\n provide: SOLARIS_NOTIFICATION_CONFIG,\r\n useValue: mergeConfig(input),\r\n },\r\n ]);\r\n}\r\n","import { Injectable, computed, inject } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\nimport {\r\n SOLARIS_TRANSLATION,\r\n SOLARIS_TRANSLATION_CONFIGURATION,\r\n SolarisTranslationParams,\r\n} from '@educarehq/solaris-services';\r\n\r\nimport { SOLARIS_NOTIFICATION_CONFIG } from '../config/notification.config';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SolarisNotificationIntlService {\r\n private readonly translationService = inject(SOLARIS_TRANSLATION);\r\n private readonly notificationConfig = inject(SOLARIS_NOTIFICATION_CONFIG);\r\n private readonly translationConfig = inject(SOLARIS_TRANSLATION_CONFIGURATION);\r\n\r\n private readonly activeLang = toSignal(this.translationService.languageChanges(), {\r\n initialValue: this.translationService.language(),\r\n });\r\n\r\n private readonly prefix = computed(() => {\r\n this.activeLang();\r\n\r\n const uiScope = this.translationConfig.uiScope ?? 'ui';\r\n const namespace = this.notificationConfig.translationScope;\r\n\r\n return `${uiScope}.${namespace}`;\r\n });\r\n\r\n translate(key: string, params?: SolarisTranslationParams): string {\r\n this.activeLang();\r\n\r\n const isAbsoluteKey = key.startsWith('ui.') || key.startsWith('solaris.')\r\n || key.startsWith('notification.');\r\n\r\n const finalKey = isAbsoluteKey ? key : `${this.prefix()}.${key}`;\r\n return this.translationService.translate(finalKey, params);\r\n }\r\n\r\n close(): string {\r\n return this.translate('close');\r\n }\r\n\r\n expand(): string {\r\n return this.translate('expand');\r\n }\r\n\r\n collapse(): string {\r\n return this.translate('collapse');\r\n }\r\n\r\n stopTimer(): string {\r\n return this.translate('stopTimer');\r\n }\r\n\r\n resumeTimer(): string {\r\n return this.translate('resumeTimer');\r\n }\r\n\r\n paused(): string {\r\n return this.translate('paused');\r\n }\r\n\r\n centerTitle(): string {\r\n return this.translate('centerTitle');\r\n }\r\n\r\n emptyCenter(): string {\r\n return this.translate('emptyCenter');\r\n }\r\n\r\n clearHistory(): string {\r\n return this.translate('clearHistory');\r\n }\r\n\r\n autoClose(seconds: number): string {\r\n return this.translate('autoClose', {\r\n seconds,\r\n unit: seconds === 1 ? this.translate('units.second') : this.translate('units.seconds'),\r\n });\r\n }\r\n}\r\n","import { DestroyRef, Injectable, PLATFORM_ID, computed, inject, signal } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\nimport { SolarisNotificationConfig, SolarisNotificationInput, SolarisNotificationKind,\r\n SolarisNotificationPosition, SolarisNotificationRecord, SolarisNotificationRef } from '../model/notification.types';\r\nimport { SOLARIS_NOTIFICATION_CONFIG, SOLARIS_NOTIFICATION_POSITIONS } from '../config/notification.config';\r\nimport { SOLARIS_TRANSLATION } from '@educarehq/solaris-services';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SolarisNotificationService {\r\n private readonly platformId = inject(PLATFORM_ID);\r\n private readonly destroyRef = inject(DestroyRef);\r\n readonly config: SolarisNotificationConfig = inject(SOLARIS_NOTIFICATION_CONFIG);\r\n private readonly translationService = inject(SOLARIS_TRANSLATION);\r\n\r\n readonly centerOpen = signal(false);\r\n private readonly _items = signal<SolarisNotificationRecord[]>([]);\r\n\r\n readonly items = computed(() => this._items());\r\n readonly visibleItems = computed(() =>\r\n this._items().filter((item) => item.state === 'visible')\r\n );\r\n readonly centerItems = computed(() =>\r\n [...this._items()].sort((a, b) => b.createdAt - a.createdAt)\r\n );\r\n\r\n private lastTick = 0;\r\n private readonly intervalId: number | null = null;\r\n\r\n constructor() {\r\n if (!isPlatformBrowser(this.platformId)) return;\r\n\r\n this.lastTick = performance.now();\r\n this.intervalId = globalThis.setInterval(() => this.tick(), 100);\r\n\r\n const handleVisibility = () => {\r\n const hidden = document.visibilityState !== 'visible';\r\n\r\n this._items.update((items) => items.map((item) =>\r\n item.duration == null ? item : { ...item, pausedByVisibility: hidden }));\r\n };\r\n\r\n document.addEventListener('visibilitychange', handleVisibility, {\r\n passive: true,\r\n });\r\n\r\n this.destroyRef.onDestroy(() => {\r\n if (this.intervalId != null) {\r\n globalThis.clearInterval(this.intervalId);\r\n }\r\n\r\n document.removeEventListener('visibilitychange', handleVisibility);\r\n });\r\n }\r\n\r\n success(input: Omit<SolarisNotificationInput, 'kind'>): SolarisNotificationRef {\r\n return this.show({ ...input, kind: 'success' });\r\n }\r\n\r\n warning(input: Omit<SolarisNotificationInput, 'kind'>): SolarisNotificationRef {\r\n return this.show({ ...input, kind: 'warning' });\r\n }\r\n\r\n error(input: Omit<SolarisNotificationInput, 'kind'>): SolarisNotificationRef {\r\n return this.show({ ...input, kind: 'error' });\r\n }\r\n\r\n info(input: Omit<SolarisNotificationInput, 'kind'>): SolarisNotificationRef {\r\n return this.show({ ...input, kind: 'info' });\r\n }\r\n\r\n show(input: SolarisNotificationInput): SolarisNotificationRef {\r\n const item = this.createRecord(input);\r\n\r\n this._items.update((items) =>\r\n this.config.newestOnTop ? [item, ...items] : [...items, item]\r\n );\r\n\r\n this.rebalance();\r\n return this.createRef(item.id);\r\n }\r\n\r\n visibleByPosition(position: SolarisNotificationPosition): SolarisNotificationRecord[] {\r\n return this.visibleItems().filter((item) => item.position === position);\r\n }\r\n\r\n isPaused(item: SolarisNotificationRecord): boolean {\r\n return item.pausedByHover || item.pausedByUser || item.pausedByVisibility;\r\n }\r\n\r\n dismiss(id: string): void {\r\n this._items.update((items) => {\r\n if (this.config.persistInCenter) {\r\n return items.map((item) =>\r\n item.id === id ? { ...item, state: 'archived', pausedByHover: false, pausedByUser: false, pausedByVisibility: false,} : item);\r\n }\r\n\r\n return items.filter((item) => item.id !== id);\r\n });\r\n\r\n this.rebalance();\r\n }\r\n\r\n remove(id: string): void {\r\n this._items.update((items) => items.filter((item) => item.id !== id));\r\n }\r\n\r\n clearHistory(): void {\r\n this._items.update((items) => items.filter((item) => item.state !== 'archived'));\r\n }\r\n\r\n pause(id: string): void {\r\n this.patch(id, { pausedByUser: true });\r\n }\r\n\r\n resume(id: string): void {\r\n this.patch(id, { pausedByUser: false });\r\n }\r\n\r\n toggleUserPause(id: string): void {\r\n const current = this.find(id);\r\n if (!current) return;\r\n\r\n this.patch(id, { pausedByUser: !current.pausedByUser });\r\n }\r\n\r\n setHoverPaused(id: string, paused: boolean): void {\r\n const current = this.find(id);\r\n if (!current?.pauseOnHover) return;\r\n\r\n this.patch(id, { pausedByHover: paused });\r\n }\r\n\r\n toggleExpanded(id: string): void {\r\n const current = this.find(id);\r\n if (!current?.expandable) return;\r\n\r\n this._items.update((items) =>\r\n items.map((item) => {\r\n if (item.id === id) {\r\n return { ...item, expanded: !item.expanded };\r\n }\r\n\r\n if (this.config.expandSingle && item.position === current.position &&\r\n item.state === 'visible') {\r\n return { ...item, expanded: false };\r\n }\r\n\r\n return item;\r\n })\r\n );\r\n }\r\n\r\n update(id: string, patch: Partial<SolarisNotificationInput>): void {\r\n this._items.update((items) =>\r\n items.map((item) => {\r\n if (item.id !== id) return item;\r\n\r\n const hasDurationPatch = this.hasOwn(patch, 'duration');\r\n const hasTitlePatch = this.hasOwn(patch, 'title') ||\r\n this.hasOwn(patch, 'titleKey') || this.hasOwn(patch, 'titleParams');\r\n\r\n const hasDescriptionPatch = this.hasOwn(patch, 'description') ||\r\n this.hasOwn(patch, 'descriptionKey') || this.hasOwn(patch, 'descriptionParams');\r\n\r\n const duration = hasDurationPatch ? (patch.duration ?? null) : item.duration;\r\n\r\n const title = hasTitlePatch ? this.resolveRequiredText(\r\n patch.title, patch.titleKey, patch.titleParams,\r\n item.title) : item.title;\r\n\r\n const description = hasDescriptionPatch ? this.resolveOptionalText(\r\n patch.description, patch.descriptionKey, patch.descriptionParams,\r\n item.description) : item.description;\r\n\r\n const hasExplicitExpandable = this.hasOwn(patch, 'expandable');\r\n\r\n let expandable = item.expandable;\r\n\r\n if (hasExplicitExpandable) {\r\n expandable = patch.expandable ?? item.expandable;\r\n } else if (hasDescriptionPatch) {\r\n expandable = Boolean(description?.trim().length);\r\n }\r\n\r\n return {\r\n ...item,\r\n title,\r\n description,\r\n kind: patch.kind ?? item.kind,\r\n position: patch.position ?? item.position,\r\n duration,\r\n remainingMs: hasDurationPatch ? duration ?? null : item.remainingMs,\r\n expandable,\r\n expanded: patch.expanded ?? item.expanded,\r\n closeable: patch.closeable ?? item.closeable,\r\n pauseOnHover: patch.pauseOnHover ?? item.pauseOnHover,\r\n actions: patch.actions ?? item.actions,\r\n ariaLive: patch.ariaLive ?? item.ariaLive,\r\n data: patch.data ?? item.data,\r\n };\r\n })\r\n );\r\n\r\n this.rebalance();\r\n }\r\n\r\n openCenter(): void {\r\n this.centerOpen.set(true);\r\n }\r\n\r\n closeCenter(): void {\r\n this.centerOpen.set(false);\r\n }\r\n\r\n toggleCenter(): void {\r\n this.centerOpen.update((value) => !value);\r\n }\r\n\r\n private tick(): void {\r\n const now = performance.now();\r\n const delta = now - this.lastTick;\r\n this.lastTick = now;\r\n\r\n let shouldRebalance = false;\r\n const expiredIds = new Set<string>();\r\n\r\n this._items.update((items) => {\r\n const next: SolarisNotificationRecord[] = items.map(\r\n (item): SolarisNotificationRecord => {\r\n if (item.state !== 'visible') return item;\r\n if (item.duration == null || item.remainingMs == null) return item;\r\n if (this.isPaused(item)) return item;\r\n\r\n const remainingMs = Math.max(0, item.remainingMs - delta);\r\n\r\n if (remainingMs === 0) {\r\n shouldRebalance = true;\r\n expiredIds.add(item.id);\r\n\r\n if (this.config.persistInCenter) {\r\n return {\r\n ...item,\r\n remainingMs: 0,\r\n state: 'archived',\r\n pausedByHover: false,\r\n pausedByUser: false,\r\n pausedByVisibility: false,\r\n };\r\n }\r\n\r\n return item;\r\n }\r\n\r\n return {\r\n ...item,\r\n remainingMs,\r\n };\r\n }\r\n );\r\n\r\n if (this.config.persistInCenter) {\r\n return next;\r\n }\r\n\r\n return next.filter((item) => !expiredIds.has(item.id));\r\n });\r\n\r\n if (shouldRebalance) {\r\n this.rebalance();\r\n }\r\n }\r\n\r\n private rebalance(): void {\r\n this._items.update((items) => {\r\n let next = [...items];\r\n\r\n for (const position of SOLARIS_NOTIFICATION_POSITIONS) {\r\n const visibleCount = next.filter(\r\n (item) => item.position === position && item.state === 'visible'\r\n ).length;\r\n\r\n const freeSlots = this.config.maxVisiblePerPosition - visibleCount;\r\n if (freeSlots <= 0) continue;\r\n\r\n const queued = next.filter((item) => item.position === position && item.state === 'queued')\r\n .sort((a, b) => this.config.newestOnTop ? b.createdAt - a.createdAt : a.createdAt - b.createdAt)\r\n .slice(0, freeSlots);\r\n\r\n if (!queued.length) continue;\r\n const queuedIds = new Set(queued.map((item) => item.id));\r\n next = next.map((item) => queuedIds.has(item.id) ? { ...item, state: 'visible' } : item);\r\n }\r\n\r\n return next;\r\n });\r\n }\r\n\r\n private createRecord(input: SolarisNotificationInput): SolarisNotificationRecord {\r\n const duration =\r\n input.duration === undefined\r\n ? this.config.defaultDuration\r\n : input.duration;\r\n\r\n const kind = input.kind ?? 'info';\r\n const position = input.position ?? this.config.defaultPosition;\r\n\r\n const title = this.resolveRequiredText(\r\n input.title,\r\n input.titleKey,\r\n input.titleParams,\r\n ''\r\n );\r\n\r\n const description = this.resolveOptionalText(\r\n input.description,\r\n input.descriptionKey,\r\n input.descriptionParams,\r\n null\r\n );\r\n\r\n const expandable = input.expandable ?? Boolean(description?.trim().length);\r\n\r\n return {\r\n id: this.createId(),\r\n title,\r\n description,\r\n kind,\r\n position,\r\n state: 'queued',\r\n duration,\r\n remainingMs: duration == null ? null : duration,\r\n expandable,\r\n expanded: input.expanded ?? false,\r\n closeable: input.closeable ?? true,\r\n pauseOnHover: input.pauseOnHover ?? this.config.hoverPause,\r\n pausedByHover: false,\r\n pausedByUser: false,\r\n pausedByVisibility: false,\r\n actions: input.actions ?? [],\r\n ariaLive: input.ariaLive ?? this.resolveAriaLive(kind),\r\n data: input.data ?? null,\r\n createdAt: Date.now(),\r\n };\r\n }\r\n\r\n private resolveAriaLive(kind: SolarisNotificationKind): 'polite' | 'assertive' {\r\n return kind === 'success' || kind === 'info' ? 'polite' : 'assertive';\r\n }\r\n\r\n private createRef(id: string): SolarisNotificationRef {\r\n return {\r\n id,\r\n dismiss: () => this.dismiss(id),\r\n remove: () => this.remove(id),\r\n pause: () => this.pause(id),\r\n resume: () => this.resume(id),\r\n toggleExpanded: () => this.toggleExpanded(id),\r\n update: (patch) => this.update(id, patch),\r\n };\r\n }\r\n\r\n private createId(): string {\r\n const uuid = globalThis.crypto?.randomUUID?.();\r\n return uuid ?? `sn_${Date.now()}_${Math.random().toString(36).slice(2, 10)}`;\r\n }\r\n\r\n private find(id: string): SolarisNotificationRecord | undefined {\r\n return this._items().find((item) => item.id === id);\r\n }\r\n\r\n private patch(id: string,\r\n patch: Partial<Pick<SolarisNotificationRecord, 'pausedByHover' | 'pausedByUser' | 'pausedByVisibility'>>): void {\r\n this._items.update((items) =>\r\n items.map((item) => (item.id === id ? { ...item, ...patch } : item))\r\n );\r\n }\r\n\r\n private resolveRequiredText(value: string | undefined, key: string | undefined,\r\n params: Record<string, unknown> | undefined, fallback: string): string {\r\n if (key) {\r\n return this.translationService.translate(key, params);\r\n }\r\n\r\n if (value == null) {\r\n return fallback;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n private resolveOptionalText(value: string | null | undefined, key: string | undefined,\r\n params: Record<string, unknown> | undefined, fallback: string | null): string | null {\r\n if (key) {\r\n return this.translationService.translate(key, params);\r\n }\r\n\r\n if (value === undefined) {\r\n return fallback;\r\n }\r\n\r\n return value ?? null;\r\n }\r\n\r\n private hasOwn<T extends object>(obj: T, key: PropertyKey): boolean {\r\n return Object.hasOwn(obj, key);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\n\r\nimport { SolarisNotificationAction, SolarisNotificationRecord } from '../../model/notification.types';\r\nimport { SolarisNotificationIntlService } from '../../service/notification-intl.service';\r\nimport { SolarisNotificationService } from '../../service/notification.service';\r\nimport { SolarisButtonDirective } from '../../../../actions/button/directives/button.directive';\r\n\r\n\r\n@Component({\r\n selector: 'solaris-notification-item',\r\n standalone: true,\r\n imports: [NgClass, SolarisButtonDirective],\r\n templateUrl: './notification-item.html',\r\n styleUrl: './notification-item.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisNotificationItemComponent {\r\n protected readonly notificationService = inject(SolarisNotificationService);\r\n protected readonly intl = inject(SolarisNotificationIntlService);\r\n\r\n readonly item = input.required<SolarisNotificationRecord>();\r\n readonly mode = input<'toast' | 'center'>('toast');\r\n\r\n readonly paused = computed(() => this.notificationService.isPaused(this.item()));\r\n\r\n readonly secondsLeft = computed(() => {\r\n const remaining = this.item().remainingMs ?? 0;\r\n return Math.max(1, Math.ceil(remaining / 1000));\r\n });\r\n\r\n readonly progress = computed(() => {\r\n const duration = this.item().duration;\r\n const remaining = this.item().remainingMs;\r\n\r\n if (duration == null || remaining == null || duration <= 0) return 0;\r\n return Math.max(0, Math.min(100, (remaining / duration) * 100));\r\n });\r\n\r\n readonly iconClass = computed(() => {\r\n switch (this.item().kind) {\r\n case 'success':\r\n return 'ph-check-circle';\r\n case 'warning':\r\n return 'ph-warning-circle';\r\n case 'error':\r\n return 'ph-x-circle';\r\n default:\r\n return 'ph-info';\r\n }\r\n });\r\n\r\n protected readonly isCompactHeader = computed(() => {\r\n const hasDescription = Boolean(this.item().description?.trim().length);\r\n return !hasDescription && !this.item().expandable;\r\n });\r\n\r\n toggleExpanded(): void {\r\n this.notificationService.toggleExpanded(this.item().id);\r\n }\r\n\r\n toggleUserPause(): void {\r\n this.notificationService.toggleUserPause(this.item().id);\r\n }\r\n\r\n close(): void {\r\n this.notificationService.dismiss(this.item().id);\r\n }\r\n\r\n onMouseEnter(): void {\r\n if (this.mode() !== 'toast') return;\r\n this.notificationService.setHoverPaused(this.item().id, true);\r\n }\r\n\r\n onMouseLeave(): void {\r\n if (this.mode() !== 'toast') return;\r\n this.notificationService.setHoverPaused(this.item().id, false);\r\n }\r\n\r\n async runAction(action: SolarisNotificationAction): Promise<void> {\r\n await action.run?.({\r\n id: this.item().id,\r\n data: this.item().data,\r\n dismiss: () => this.notificationService.dismiss(this.item().id),\r\n remove: () => this.notificationService.remove(this.item().id),\r\n update: (patch) => this.notificationService.update(this.item().id, patch),\r\n });\r\n\r\n if (action.closeOnClick !== false) {\r\n this.notificationService.dismiss(this.item().id);\r\n }\r\n }\r\n\r\n protected resolveActionLabel(action: SolarisNotificationAction): string {\r\n if (action.labelKey) {\r\n return this.intl.translate(action.labelKey, action.labelParams);\r\n }\r\n\r\n return action.label ?? '';\r\n }\r\n}\r\n","<article class=\"sn\" [attr.data-kind]=\"item().kind\" [attr.data-mode]=\"mode()\" [attr.data-expanded]=\"item().expanded ? 'true' : 'false'\"\r\n [attr.data-paused]=\"paused() ? 'true' : 'false'\" [attr.aria-live]=\"mode() === 'toast' ? item().ariaLive : null\"\r\n [attr.role]=\"item().ariaLive === 'assertive' ? 'alert' : 'status'\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n <div class=\"sn__header\" [attr.data-align]=\"isCompactHeader() ? 'center' : 'start'\">\r\n <div class=\"sn__leading\">\r\n <span class=\"sn__icon\" aria-hidden=\"true\">\r\n <i class=\"ph\" [ngClass]=\"iconClass()\"></i>\r\n </span>\r\n\r\n <div class=\"sn__heading\">\r\n <strong class=\"sn__title\">{{ item().title }}</strong>\r\n\r\n @if (!item().expanded && item().description) {\r\n <p class=\"sn__description sn__description--clamped\">\r\n {{ item().description }}\r\n </p>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"sn__controls\">\r\n @if (item().expandable && item().description) {\r\n <button type=\"button\" class=\"sn__icon-btn\" [attr.aria-expanded]=\"item().expanded\"\r\n [attr.aria-label]=\"item().expanded ? intl.collapse() : intl.expand()\" (click)=\"toggleExpanded()\">\r\n <i class=\"ph\" [ngClass]=\"item().expanded ? 'ph-caret-up' : 'ph-caret-down'\" aria-hidden=\"true\"></i>\r\n </button>\r\n }\r\n\r\n @if (item().closeable) {\r\n <button type=\"button\" class=\"sn__icon-btn\" [attr.aria-label]=\"intl.close()\" (click)=\"close()\">\r\n <i class=\"ph ph-x\" aria-hidden=\"true\"></i>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n\r\n @if (item().expanded && item().description) {\r\n <div class=\"sn__body\">\r\n <p class=\"sn__body-text\">{{ item().description }}</p>\r\n @if (item().actions.length) {\r\n <div class=\"sn__actions\">\r\n @for (action of item().actions; track action.id) {\r\n <button type=\"button\" solaris-button [variant]=\"action.variant ?? 'outline'\" [color]=\"action.color ?? 'surface'\"\r\n [size]=\"action.size ?? 'sm'\" [radius]=\"action.radius ?? 'md'\" [disabled]=\"action.disabled ?? false\"\r\n (click)=\"runAction(action)\">\r\n {{ resolveActionLabel(action) }}\r\n </button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n @if (mode() === 'toast' && item().duration !== null) {\r\n <div class=\"sn__footer\">\r\n @if (!paused()) {\r\n <p class=\"sn__timer\">\r\n {{ intl.autoClose(secondsLeft()) }}\r\n <button type=\"button\" class=\"sn__timer-link\" (click)=\"toggleUserPause()\">\r\n {{ intl.stopTimer() }}\r\n </button>.\r\n </p>\r\n } @else {\r\n <p class=\"sn__timer\">\r\n {{ intl.paused() }}\r\n <button type=\"button\" class=\"sn__timer-link\" (click)=\"toggleUserPause()\">\r\n {{ intl.resumeTimer() }}\r\n </button>.\r\n </p>\r\n }\r\n </div>\r\n\r\n <div class=\"sn__progress\" aria-hidden=\"true\">\r\n <span [style.width.%]=\"progress()\"></span>\r\n </div>\r\n }\r\n</article>\r\n","import { ChangeDetectionStrategy, Component, HostListener, inject } from '@angular/core';\r\n\r\nimport { SolarisButtonDirective } from '../../../../actions/button/directives/button.directive';\r\nimport { SolarisNotificationIntlService } from '../../service/notification-intl.service';\r\nimport { SolarisNotificationService } from '../../service/notification.service';\r\nimport { SolarisNotificationItemComponent } from '../item/notification-item';\r\n\r\n@Component({\r\n selector: 'solaris-notification-center',\r\n standalone: true,\r\n imports: [SolarisButtonDirective, SolarisNotificationItemComponent],\r\n templateUrl: './notification-center.html',\r\n styleUrl: './notification-center.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisNotificationCenterComponent {\r\n protected readonly notificationService = inject(SolarisNotificationService);\r\n protected readonly intl = inject(SolarisNotificationIntlService);\r\n\r\n @HostListener('document:keydown.escape') onEscape(): void {\r\n if (this.notificationService.centerOpen()) {\r\n this.notificationService.closeCenter();\r\n }\r\n }\r\n}\r\n","@if (notificationService.centerOpen()) {\r\n <div class=\"snc__backdrop\" (click)=\"notificationService.closeCenter()\"></div>\r\n\r\n <aside class=\"snc\" role=\"dialog\" aria-modal=\"true\" [attr.aria-label]=\"intl.centerTitle()\">\r\n <header class=\"snc__header\">\r\n <div>\r\n <strong class=\"snc__title\">{{ intl.centerTitle() }}</strong>\r\n </div>\r\n\r\n <div class=\"snc__controls\">\r\n <button type=\"button\" solaris-button variant=\"outline\" color=\"surface\" size=\"sm\" radius=\"md\"\r\n (click)=\"notificationService.clearHistory()\">\r\n {{ intl.clearHistory() }}\r\n </button>\r\n\r\n <button type=\"button\" class=\"snc__icon-btn\" [attr.aria-label]=\"intl.close()\" (click)=\"notificationService.closeCenter()\">\r\n <i class=\"ph ph-x\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </header>\r\n\r\n <div class=\"snc__list\">\r\n @for (item of notificationService.centerItems(); track item.id) {\r\n <solaris-notification-item [item]=\"item\" mode=\"center\"/>\r\n } @empty {\r\n <div class=\"snc__empty\">\r\n {{ intl.emptyCenter() }}\r\n </div>\r\n }\r\n </div>\r\n </aside>\r\n}\r\n","import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\r\n\r\nimport { SolarisNotificationCenterComponent } from '../center/notification-center';\r\nimport { SOLARIS_NOTIFICATION_POSITIONS } from '../../config/notification.config';\r\nimport { SolarisNotificationService } from '../../service/notification.service';\r\nimport { SolarisNotificationPosition } from '../../model/notification.types';\r\nimport { SolarisNotificationItemComponent } from '../item/notification-item';\r\n\r\n@Component({\r\n selector: 'solaris-notification-host',\r\n standalone: true,\r\n imports: [SolarisNotificationItemComponent, SolarisNotificationCenterComponent],\r\n templateUrl: './notification-host.html',\r\n styleUrls: ['./notification-host.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisNotificationHostComponent {\r\n protected readonly notificationService = inject(SolarisNotificationService);\r\n protected readonly positions = SOLARIS_NOTIFICATION_POSITIONS;\r\n readonly withCenter = input(true);\r\n\r\n visibleByPosition(position: SolarisNotificationPosition) {\r\n return this.notificationService.visibleByPosition(position);\r\n }\r\n}\r\n","@for (position of positions; track position) {\r\n <section class=\"snh__stack\" [attr.data-position]=\"position\">\r\n @for (item of visibleByPosition(position); track item.id) {\r\n <solaris-notification-item [item]=\"item\" mode=\"toast\"/>\r\n }\r\n </section>\r\n}\r\n\r\n@if (withCenter()) { <solaris-notification-center/> }\r\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\n\r\nimport { SolarisTooltipPosition, SolarisTooltipSize, SolarisTooltipVariant } from '../model/tooltip.type';\r\n\r\n@Component({\r\n selector: 'solaris-tooltip-panel',\r\n standalone: true,\r\n templateUrl: './tooltip-panel.html',\r\n styleUrls: ['./tooltip-panel.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisTooltipPanel {\r\n readonly text = input('');\r\n readonly prefixIcon = input('');\r\n readonly size = input<SolarisTooltipSize>('md');\r\n readonly position = input<SolarisTooltipPosition>('top');\r\n readonly variant = input<SolarisTooltipVariant>('inverse');\r\n}\r\n","<div class=\"solaris-tooltip\" [attr.data-position]=\"position()\" [attr.data-variant]=\"variant()\"\r\n [attr.data-size]=\"size()\" role=\"tooltip\">\r\n @if (prefixIcon()) {\r\n <span class=\"solaris-tooltip__prefix\" aria-hidden=\"true\">\r\n <i [class]=\"prefixIcon()\"></i>\r\n </span>\r\n }\r\n\r\n <span class=\"solaris-tooltip__content\">\r\n {{ text() }}\r\n </span>\r\n\r\n <span class=\"solaris-tooltip__arrow\" aria-hidden=\"true\"></span>\r\n</div>\r\n","import { Directive, ElementRef, Renderer2, computed, effect, inject, input, OnDestroy } from '@angular/core';\r\n\r\nimport { SolarisTooltipPosition, SolarisTooltipSize, SolarisTooltipVariant } from '../model/tooltip.type';\r\nimport { SolarisFloatingOverlayService } from '../../../../services/tooltip/floating-overlay.service';\r\nimport { SolarisFloatingOverlayRef } from '../../../../services/tooltip/model/tooltip-services.type';\r\nimport { repositionTooltipOverlay } from '../../../../services/tooltip/floating-position.util';\r\nimport { SolarisTooltipPanel } from '../component/tooltip-panel';\r\n\r\n@Directive({\r\n selector: '[solaris-tooltip]',\r\n standalone: true,\r\n})\r\nexport class SolarisTooltipDirective implements OnDestroy {\r\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly floatingOverlay = inject(SolarisFloatingOverlayService);\r\n private readonly renderer = inject(Renderer2);\r\n\r\n readonly text = input('', { alias: 'solaris-tooltip' });\r\n\r\n readonly tooltipPosition = input<SolarisTooltipPosition>('top', {\r\n alias: 'tooltip-position',\r\n });\r\n\r\n readonly tooltipVariant = input<SolarisTooltipVariant>('inverse', {\r\n alias: 'tooltip-variant',\r\n });\r\n\r\n readonly tooltipSize = input<SolarisTooltipSize>('md', {\r\n alias: 'tooltip-size',\r\n });\r\n\r\n readonly tooltipPrefixIcon = input('', {\r\n alias: 'tooltip-prefix-icon',\r\n });\r\n\r\n readonly tooltipDisabled = input(false, {\r\n alias: 'tooltip-disabled',\r\n });\r\n\r\n readonly tooltipShowDelay = input(300, {\r\n alias: 'tooltip-show-delay',\r\n });\r\n\r\n readonly tooltipHideDelay = input(80, {\r\n alias: 'tooltip-hide-delay',\r\n });\r\n\r\n readonly tooltipOffset = input(8, {\r\n alias: 'tooltip-offset',\r\n });\r\n\r\n readonly tooltipAutoFlip = input(true, {\r\n alias: 'tooltip-auto-flip',\r\n });\r\n\r\n readonly tooltipAutoShift = input(true, {\r\n alias: 'tooltip-auto-shift',\r\n });\r\n\r\n readonly tooltipViewportPadding = input(8, {\r\n alias: 'tooltip-viewport-padding',\r\n });\r\n\r\n readonly tooltipKey = input('', {\r\n alias: 'tooltip-key',\r\n });\r\n\r\n readonly tooltipParams = input<Record<string, unknown> | undefined>(undefined, {\r\n alias: 'tooltip-params',\r\n });\r\n\r\n private overlayRef?: SolarisFloatingOverlayRef<SolarisTooltipPanel>;\r\n private showTimer = 0;\r\n private hideTimer = 0;\r\n private raf = 0;\r\n\r\n private readonly cleanups: Array<() => void> = [];\r\n\r\n private readonly resolvedText = computed(() => {\r\n const key = this.tooltipKey().trim();\r\n\r\n if (key) {\r\n return key;\r\n }\r\n\r\n return this.text().trim();\r\n });\r\n\r\n constructor() {\r\n const host = this.elementRef.nativeElement;\r\n\r\n this.cleanups.push(\r\n this.renderer.listen(host, 'mouseenter', () => this.scheduleShow()),\r\n this.renderer.listen(host, 'mouseleave', () => this.scheduleHide()),\r\n this.renderer.listen(host, 'focusin', () => this.scheduleShow()),\r\n this.renderer.listen(host, 'focusout', () => this.scheduleHide()),\r\n this.renderer.listen(host, 'keydown', (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') {\r\n this.hide();\r\n }\r\n }),\r\n this.renderer.listen(globalThis, 'resize', () => this.scheduleReposition()),\r\n this.renderer.listen(globalThis, 'scroll', () => this.scheduleReposition()),\r\n );\r\n\r\n effect(() => {\r\n if (!this.overlayRef) return;\r\n\r\n this.applyPanelInputs();\r\n this.scheduleReposition();\r\n });\r\n }\r\n\r\n private scheduleShow(): void {\r\n if (this.tooltipDisabled()) return;\r\n if (!this.resolvedText()) return;\r\n\r\n globalThis.clearTimeout(this.hideTimer);\r\n globalThis.clearTimeout(this.showTimer);\r\n\r\n this.showTimer = globalThis.setTimeout(() => {\r\n this.show();\r\n }, this.tooltipShowDelay());\r\n }\r\n\r\n private scheduleHide(): void {\r\n globalThis.clearTimeout(this.showTimer);\r\n globalThis.clearTimeout(this.hideTimer);\r\n\r\n this.hideTimer = globalThis.setTimeout(() => {\r\n this.hide();\r\n }, this.tooltipHideDelay());\r\n }\r\n\r\n private show(): void {\r\n if (this.overlayRef || this.tooltipDisabled()) return;\r\n if (!this.resolvedText()) return;\r\n\r\n this.overlayRef = this.floatingOverlay.create(SolarisTooltipPanel, {\r\n idPrefix: 'solaris-tooltip',\r\n zIndex: 'var(--solaris-z-tooltip, 1200)',\r\n pointerEvents: 'none',\r\n });\r\n\r\n this.applyPanelInputs();\r\n\r\n this.renderer.setAttribute(\r\n this.elementRef.nativeElement,\r\n 'aria-describedby',\r\n this.overlayRef.id,\r\n );\r\n\r\n requestAnimationFrame(() => this.reposition());\r\n }\r\n\r\n private hide(): void {\r\n this.floatingOverlay.clearFloatingTimers(this.showTimer, this.hideTimer, this.raf);\r\n this.raf = 0;\r\n\r\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'aria-describedby');\r\n\r\n this.floatingOverlay.destroyOverlay(this.overlayRef);\r\n this.overlayRef = undefined;\r\n }\r\n\r\n private applyPanelInputs(): void {\r\n if (!this.overlayRef) return;\r\n\r\n const panel = this.overlayRef.componentRef;\r\n\r\n panel.setInput('text', this.resolvedText());\r\n panel.setInput('position', this.tooltipPosition());\r\n panel.setInput('variant', this.tooltipVariant());\r\n panel.setInput('size', this.tooltipSize());\r\n panel.setInput('prefixIcon', this.tooltipPrefixIcon());\r\n\r\n panel.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private scheduleReposition(): void {\r\n if (!this.overlayRef) return;\r\n\r\n if (this.raf) return;\r\n\r\n this.raf = requestAnimationFrame(() => {\r\n this.raf = 0;\r\n this.reposition();\r\n });\r\n }\r\n\r\n private reposition(): void {\r\n if (!this.overlayRef) return;\r\n\r\n this.floatingOverlay.reposition({\r\n anchor: this.elementRef.nativeElement,\r\n overlayRef: this.overlayRef,\r\n options: {\r\n position: this.tooltipPosition(),\r\n offset: this.tooltipOffset(),\r\n viewportPadding: this.tooltipViewportPadding(),\r\n autoFlip: this.tooltipAutoFlip(),\r\n autoShift: this.tooltipAutoShift(),\r\n },\r\n setAppliedPosition: (position) => {\r\n this.overlayRef?.componentRef.setInput('position', position);\r\n this.overlayRef?.componentRef.changeDetectorRef.detectChanges();\r\n },\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.hide();\r\n\r\n for (const cleanup of this.cleanups) {\r\n cleanup();\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\r\nimport {\r\n LoadingType,\r\n SolarisLoadingColor,\r\n SolarisLoadingEasing,\r\n SolarisLoadingPresetColor,\r\n SolarisLoadingSize,\r\n SolarisLoadingSpeed,\r\n SolarisLoadingDashDensity,\r\n} from '../model/loading.type';\r\n\r\nconst PRESET_COLORS: readonly SolarisLoadingPresetColor[] =\r\n ['primary', 'success', 'warning', 'error', 'surface'] as const;\r\n\r\n@Component({\r\n selector: 'solaris-loading',\r\n standalone: true,\r\n templateUrl: './loading.html',\r\n styleUrl: './loading.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisLoading {\r\n @HostBinding('attr.solaris-loading') readonly marker = '';\r\n\r\n @Input() label?: string;\r\n @Input() value: number | null = null;\r\n @Input() type: LoadingType = 'spinner';\r\n @Input() size: SolarisLoadingSize = 'md';\r\n @Input() speed: SolarisLoadingSpeed = 'md';\r\n @Input() color: SolarisLoadingColor = 'primary';\r\n @Input() easing: SolarisLoadingEasing = 'linear';\r\n @Input() trail: 'forward' | 'reverse' = 'forward';\r\n @Input() dashDensity: SolarisLoadingDashDensity = 'md';\r\n @Input({ transform: coerceBoolean }) indeterminate = false;\r\n\r\n get percent(): number {\r\n return clamp(this.value ?? 0, 0, 100);\r\n }\r\n get ariaLabel(): string {\r\n return this.label ?? 'Loading';\r\n }\r\n get dashedSpokes(): Spoke[] {\r\n return buildSpokes(this.dashedCount, 0.12);\r\n }\r\n get inlineColor(): string | null {\r\n return isPresetColor(this.color) ? null : String(this.color);\r\n }\r\n get ariaValueNow(): number | null {\r\n if (this.role !== 'progressbar') return null;\r\n if (this.indeterminate || this.value == null) return null;\r\n return clamp(this.value, 0, 100);\r\n }\r\n get role(): 'status' | 'progressbar' {\r\n return (this.type === 'progress' || this.type === 'bar') ? 'progressbar' : 'status';\r\n }\r\n get dataColor(): SolarisLoadingPresetColor | null {\r\n return isPresetColor(this.color) ? this.color : null;\r\n }\r\n\r\n private get dashedCount(): number {\r\n switch (this.dashDensity) {\r\n case 'low': return 8;\r\n case 'high': return 16;\r\n case 'md':\r\n default: return 12;\r\n }\r\n }\r\n}\r\n\r\nfunction isPresetColor(v: unknown): v is SolarisLoadingPresetColor {\r\n return PRESET_COLORS.includes(v as SolarisLoadingPresetColor);\r\n}\r\n\r\nfunction coerceBoolean(v: any): boolean {\r\n return v === '' || v === true || v === 'true' || v === 1 || v === '1';\r\n}\r\n\r\nfunction clamp(n: number, min: number, max: number) {\r\n return Math.max(min, Math.min(max, n));\r\n}\r\n\r\ntype Spoke = { angle: number; opacity: number };\r\n\r\nconst SPOKE_CACHE = new Map<number, Spoke[]>();\r\n\r\nfunction buildSpokes(count: number, minOpacity = 0.12): Spoke[] {\r\n const cached = SPOKE_CACHE.get(count);\r\n if (cached) return cached;\r\n\r\n const res: Spoke[] = [];\r\n const step = 360 / count;\r\n const span = 1 - minOpacity;\r\n for (let i = 0; i < count; i++) {\r\n const t = count === 1 ? 0 : i / (count - 1);\r\n const opacity = 1 - span * t;\r\n res.push({ angle: i * step, opacity: Number(opacity.toFixed(2)) });\r\n }\r\n\r\n SPOKE_CACHE.set(count, res);\r\n return res;\r\n}\r\n","<div class=\"solaris-loading\" [attr.data-type]=\"type\" [attr.data-size]=\"size\" [attr.data-color]=\"dataColor\"\r\n [attr.data-speed]=\"speed\" [attr.data-easing]=\"easing\" [class.is-indeterminate]=\"indeterminate || value === null\"\r\n [attr.role]=\"role\" [attr.aria-label]=\"ariaLabel\" [style.--solaris-loading-color]=\"inlineColor\"\r\n [attr.aria-valuemin]=\"role === 'progressbar' ? 0 : null\" [attr.aria-valuemax]=\"role === 'progressbar' ? 100 : null\"\r\n [attr.aria-valuenow]=\"role === 'progressbar' ? ariaValueNow : null\">\r\n\r\n @if (type === 'spinner') {\r\n <span class=\"solaris-loading__spinner\" aria-hidden=\"true\"></span>\r\n }\r\n\r\n @if (type === 'spinner-dashed') {\r\n <svg class=\"solaris-loading__spinner-stacked\" viewBox=\"0 0 44 44\" aria-hidden=\"true\">\r\n @for (spoke of dashedSpokes; track spoke.angle) {\r\n <line x1=\"22\" y1=\"6\" x2=\"22\" y2=\"12\" [attr.opacity]=\"spoke.opacity\"\r\n [attr.transform]=\"'rotate(' + spoke.angle + ' 22 22)'\">\r\n </line>\r\n }\r\n </svg>\r\n }\r\n\r\n @if (type === 'progress') {\r\n <svg class=\"solaris-loading__ring\" viewBox=\"0 0 44 44\" aria-hidden=\"true\">\r\n <circle class=\"ring-track\" cx=\"22\" cy=\"22\" r=\"18\"></circle>\r\n <circle class=\"ring-value\" cx=\"22\" cy=\"22\" r=\"18\" [attr.stroke-dasharray]=\"113.097\"\r\n [attr.stroke-dashoffset]=\"113.097 - (113.097 * percent / 100)\"></circle>\r\n </svg>\r\n\r\n <span class=\"solaris-loading__percent\" aria-hidden=\"true\">\r\n {{ percent }}%\r\n </span>\r\n }\r\n\r\n @if (type === 'bar') {\r\n <span class=\"solaris-loading__bar\" aria-hidden=\"true\">\r\n <span class=\"solaris-loading__bar-inner\" [style.width.%]=\"indeterminate || value === null ? 30 : percent\"></span>\r\n </span>\r\n }\r\n</div>\r\n","import { Directive, inject, TemplateRef } from '@angular/core';\r\nimport { SolarisCarouselContext } from '../model/carousel.type';\r\n\r\n@Directive({\r\n selector: 'ng-template[solaris-carousel-overlay]',\r\n standalone: true,\r\n})\r\nexport class SolarisCarouselOverlayDirective<TItem = unknown> {\r\n readonly templateRef = inject<TemplateRef<SolarisCarouselContext<TItem>>>(TemplateRef);\r\n}\r\n","import { Directive, inject, TemplateRef } from '@angular/core';\r\n\r\nimport { SolarisCarouselContext } from '../model/carousel.type';\r\n\r\n@Directive({\r\n selector: 'ng-template[solaris-carousel-slide]',\r\n standalone: true,\r\n})\r\nexport class SolarisCarouselSlideDirective<TItem = unknown> {\r\n readonly templateRef = inject<TemplateRef<SolarisCarouselContext<TItem>>>(TemplateRef);\r\n}\r\n","import { afterNextRender, booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChild, DestroyRef,\r\n effect, HostBinding, HostListener, inject, input, model, numberAttribute, output, signal, TemplateRef, Type } from '@angular/core';\r\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\r\n\r\nimport { SolarisCarouselAppearance, SolarisCarouselAspect, SolarisCarouselChangeEvent, SolarisCarouselContext,\r\n SolarisCarouselControlsPosition, SolarisCarouselItem, SolarisCarouselNavigationSource, SolarisCarouselOverlayDirective,\r\n SolarisCarouselRadius, SolarisCarouselSlideDirective, SolarisCarouselTextResolver } from '../carousel.index';\r\n\r\n@Component({\r\n selector: 'solaris-carousel',\r\n standalone: true,\r\n imports: [\r\n NgTemplateOutlet,\r\n NgComponentOutlet\r\n ],\r\n templateUrl: './carousel.html',\r\n styleUrls: [\r\n './carousel.scss'\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SolarisCarousel {\r\n private readonly destroyRef = inject(DestroyRef);\r\n\r\n private timer: ReturnType<typeof setInterval> | null = null;\r\n private readonly projectedSlide = contentChild(SolarisCarouselSlideDirective);\r\n private readonly projectedOverlay = contentChild(SolarisCarouselOverlayDirective);\r\n\r\n readonly activeIndex = model(0);\r\n\r\n readonly items = input<SolarisCarouselItem[]>([]);\r\n readonly radius = input<SolarisCarouselRadius>('lg');\r\n readonly aspect = input<SolarisCarouselAspect>('16/9');\r\n readonly appearance = input<SolarisCarouselAppearance>('plain');\r\n readonly controlsPosition = input<SolarisCarouselControlsPosition>('inside');\r\n\r\n readonly loop = input(true, { transform: booleanAttribute });\r\n readonly autoplay = input(false, { transform: booleanAttribute });\r\n readonly intervalMs = input(4500, { transform: numberAttribute });\r\n readonly transitionMs = input(520, { transform: numberAttribute });\r\n\r\n readonly pauseOnHover = input(true, { transform: booleanAttribute });\r\n readonly pauseOnFocus = input(true, { transform: booleanAttribute });\r\n readonly resetAutoplayOnInteraction = input(true, { transform: booleanAttribute });\r\n\r\n readonly showDots = input(true, { transform: booleanAttribute });\r\n readonly showArrows = input(true, { transform: booleanAttribute });\r\n readonly keyboard = input(true, { transform: booleanAttribute });\r\n\r\n readonly ariaLabel = input('Carousel');\r\n readonly ariaLabelKey = input<string | undefined>(undefined);\r\n\r\n readonly previousLabel = input('Previous slide');\r\n readonly previousLabelKey = input<string | undefined>(undefined);\r\n\r\n readonly nextLabel = input('Next slide');\r\n readonly nextLabelKey = input<string | undefined>(undefined);\r\n\r\n readonly navigationLabel = input('Slide navigation');\r\n readonly navigationLabelKey = input<string | undefined>(undefined);\r\n\r\n readonly goToSlideLabel = input('Go to slide');\r\n readonly goToSlideLabelKey = input<string | undefined>(undefined);\r\n\r\n readonly openLabel = input('Open');\r\n readonly openLabelKey = input<string | undefined>(undefined);\r\n\r\n readonly textResolver = input<SolarisCarouselTextResolver | null>(null);\r\n\r\n readonly slideTpl = input<TemplateRef<SolarisCarouselContext> | undefined>(undefined);\r\n readonly overlayTpl = input<TemplateRef<SolarisCarouselContext> | undefined>(undefined);\r\n\r\n readonly slideComponent = input<Type<unknown> | undefined>(undefined);\r\n readonly overlayComponent = input<Type<unknown> | undefined>(undefined);\r\n\r\n readonly slideChange = output<SolarisCarouselChangeEvent>();\r\n\r\n protected readonly viewReady = signal(false);\r\n protected readonly paused = signal(false);\r\n\r\n protected readonly count = computed(() => this.items().length);\r\n protected readonly hasMultiple = computed(() => this.count() > 1);\r\n\r\n protected readonly isFirst = computed(() => this.activeIndex() === 0);\r\n protected readonly isLast = computed(() => this.activeIndex() === this.count() - 1);\r\n\r\n protected readonly canGoPrev = computed(() => this.loop() || !this.isFirst());\r\n protected readonly canGoNext = computed(() => this.loop() || !this.isLast());\r\n\r\n protected readonly isPlaying = computed(() => {\r\n return this.autoplay() && this.hasMultiple() && !this.paused();\r\n });\r\n\r\n protected readonly canRunAutoplay = computed(() => {\r\n return this.viewReady() && this.autoplay() && this.hasMultiple() && !this.paused();\r\n });\r\n\r\n protected readonly resolvedSlideTpl = computed(() => {\r\n return this.slideTpl() ?? this.projectedSlide()?.templateRef;\r\n });\r\n\r\n protected readonly resolvedOverlayTpl = computed(() => {\r\n return this.overlayTpl() ?? this.projectedOverlay()?.templateRef;\r\n });\r\n\r\n @HostBinding('attr.data-aspect') get dataAspect(): SolarisCarouselAspect {\r\n return this.aspect();\r\n }\r\n\r\n @HostBinding('attr.data-radius') get dataRadius(): SolarisCarouselRadius {\r\n return this.radius();\r\n }\r\n\r\n @HostBinding('attr.data-appearance') get dataAppearance(): SolarisCarouselAppearance {\r\n return this.appearance();\r\n }\r\n\r\n @HostBinding('attr.data-controls-position') get dataControlsPosition(): SolarisCarouselControlsPosition {\r\n return this.controlsPosition();\r\n }\r\n\r\n constructor() {\r\n afterNextRender(() => this.viewReady.set(true));\r\n\r\n effect((onCleanup) => {\r\n this.stopTimer();\r\n\r\n if (!this.canRunAutoplay()) return;\r\n\r\n const ms = this.intervalMs();\r\n\r\n if (!Number.isFinite(ms) || ms <= 0) return;\r\n\r\n this.startTimer(ms);\r\n\r\n onCleanup(() => this.stopTimer());\r\n });\r\n\r\n effect(() => {\r\n const len = this.count();\r\n const idx = this.activeIndex();\r\n\r\n if (!len) {\r\n if (idx !== 0) this.activeIndex.set(0);\r\n return;\r\n }\r\n\r\n if (idx > len - 1) {\r\n this.activeIndex.set(len - 1);\r\n }\r\n\r\n if (idx < 0) {\r\n this.activeIndex.set(0);\r\n }\r\n });\r\n\r\n this.destroyRef.onDestroy(() => this.stopTimer());\r\n }\r\n\r\n protected readonly goTo = (index: number,\r\n source: SolarisCarouselNavigationSource = 'api'): void => {\r\n const length = this.count();\r\n\r\n if (!length) return;\r\n\r\n const previousIndex = this.activeIndex();\r\n const nextIndex = this.normalizeIndex(index, length);\r\n\r\n if (nextIndex === previousIndex) return;\r\n\r\n this.activeIndex.set(nextIndex);\r\n\r\n this.slideChange.emit({\r\n index: nextIndex,\r\n previousIndex,\r\n item: this.items()[nextIndex],\r\n source,\r\n });\r\n\r\n if (source !== 'autoplay' && this.resetAutoplayOnInteraction()) {\r\n this.restartAutoplay();\r\n }\r\n };\r\n\r\n private normalizeIndex(index: number, length: number): number {\r\n if (this.loop()) {\r\n return ((index % length) + length) % length;\r\n }\r\n\r\n return Math.max(0, Math.min(index, length - 1));\r\n }\r\n\r\n protected readonly next = (\r\n source: SolarisCarouselNavigationSource = 'api'): void => {\r\n if (!this.canGoNext()) return;\r\n this.goTo(this.activeIndex() + 1, source);\r\n };\r\n\r\n protected readonly prev = (\r\n source: SolarisCarouselNavigationSource = 'api'): void => {\r\n if (!this.canGoPrev()) return;\r\n this.goTo(this.activeIndex() - 1, source);\r\n };\r\n\r\n protected readonly pause = (): void => {\r\n this.paused.set(true);\r\n };\r\n\r\n protected readonly resume = (): void => {\r\n this.paused.set(false);\r\n };\r\n\r\n protected onMouseEnter(): void {\r\n if (!this.pauseOnHover()) return;\r\n this.pause();\r\n }\r\n\r\n protected onMouseLeave(): void {\r\n if (!this.pauseOnHover()) return;\r\n this.resume();\r\n }\r\n\r\n protected onFocusIn(): void {\r\n if (!this.pauseOnFocus()) return;\r\n this.pause();\r\n }\r\n\r\n protected onFocusOut(): void {\r\n if (!this.pauseOnFocus()) return;\r\n this.resume();\r\n }\r\n\r\n protected carouselContext(index: number): SolarisCarouselContext {\r\n const item = this.items()[index];\r\n\r\n return {\r\n $implicit: item,\r\n item,\r\n\r\n index,\r\n active: index === this.activeIndex(),\r\n first: index === 0,\r\n last: index === this.count() - 1,\r\n count: this.count(),\r\n\r\n isPlaying: this.isPlaying(),\r\n\r\n goTo: this.goTo,\r\n next: this.next,\r\n prev: this.prev,\r\n\r\n pause: this.pause,\r\n resume: this.resume,\r\n };\r\n }\r\n\r\n protected slideComponentInputs(index: number): Record<string, unknown> {\r\n const context = this.carouselContext(index);\r\n const itemInputs = context.item.slideInputs ?? {};\r\n\r\n return {\r\n item: context.item,\r\n index: context.index,\r\n active: context.active,\r\n first: context.first,\r\n last: context.last,\r\n count: context.count,\r\n isPlaying: context.isPlaying,\r\n goTo: context.goTo,\r\n next: context.next,\r\n prev: context.prev,\r\n pause: context.pause,\r\n resume: context.resume,\r\n ...itemInputs,\r\n };\r\n }\r\n\r\n protected overlayComponentInputs(index: number): Record<string, unknown> {\r\n const context = this.carouselContext(index);\r\n const itemInputs = context.item.overlayInputs ?? {};\r\n\r\n return {\r\n item: context.item,\r\n index: context.index,\r\n active: context.active,\r\n first: context.first,\r\n last: context.last,\r\n count: context.count,\r\n isPlaying: context.isPlaying,\r\n goTo: context.goTo,\r\n next: context.next,\r\n prev: context.prev,\r\n pause: context.pause,\r\n resume: context.resume,\r\n ...itemInputs,\r\n };\r\n }\r\n\r\n protected text(text?: string, key?: string): string {\r\n const directValue = text?.trim();\r\n\r\n if (directValue) return directValue;\r\n\r\n const resolver = this.textResolver();\r\n\r\n if (key && resolver) return resolver(key);\r\n\r\n return '';\r\n }\r\n\r\n protected itemAlt(item: SolarisCarouselItem): string {\r\n return this.text(item.alt, item.altKey);\r\n }\r\n\r\n protected itemAriaLabel(item: SolarisCarouselItem): string | null {\r\n return (\r\n this.text(item.ariaLabel, item.ariaLabelKey) ||\r\n this.text(item.alt, item.altKey) ||\r\n this.text(this.openLabel(), this.openLabelKey()) ||\r\n null\r\n );\r\n }\r\n\r\n protected rootAriaLabel(): string {\r\n return this.text(this.ariaLabel(), this.ariaLabelKey()) || 'Carousel';\r\n }\r\n\r\n protected previousAriaLabel(): string {\r\n return this.text(this.previousLabel(), this.previousLabelKey()) || 'Previous slide';\r\n }\r\n\r\n protected nextAriaLabel(): string {\r\n return this.text(this.nextLabel(), this.nextLabelKey()) || 'Next slide';\r\n }\r\n\r\n protected navigationAriaLabel(): string {\r\n return this.text(this.navigationLabel(), this.navigationLabelKey()) || 'Slide navigation';\r\n }\r\n\r\n protected dotAriaLabel(index: number): string {\r\n const label = this.text(this.goToSlideLabel(), this.goToSlideLabelKey()) || 'Go to slide';\r\n return `${label} ${index + 1}`;\r\n }\r\n\r\n protected trackByItem(index: number, item: SolarisCarouselItem): string | number {\r\n return item.id ?? index;\r\n }\r\n\r\n private startTimer(ms: number): void {\r\n this.timer = setInterval(() => this.next('autoplay'), ms);\r\n }\r\n\r\n private stopTimer(): void {\r\n if (this.timer) {\r\n clearInterval(this.timer);\r\n }\r\n\r\n this.timer = null;\r\n }\r\n\r\n private restartAutoplay(): void {\r\n if (!this.autoplay() || this.paused() || !this.hasMultiple()) return;\r\n\r\n this.stopTimer();\r\n\r\n const ms = this.intervalMs();\r\n\r\n if (!Number.isFinite(ms) || ms <= 0) return;\r\n\r\n this.startTimer(ms);\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n protected onKeyDown(ev: KeyboardEvent): void {\r\n if (!this.keyboard() || !this.hasMultiple()) return;\r\n\r\n switch (ev.key) {\r\n case 'ArrowLeft':\r\n ev.preventDefault();\r\n this.prev('keyboard');\r\n break;\r\n\r\n case 'ArrowRight':\r\n ev.preventDefault();\r\n this.next('keyboard');\r\n break;\r\n\r\n case 'Home':\r\n ev.preventDefault();\r\n this.goTo(0, 'keyboard');\r\n break;\r\n\r\n case 'End':\r\n ev.preventDefault();\r\n this.goTo(this.count() - 1, 'keyboard');\r\n break;\r\n }\r\n }\r\n}\r\n","<div class=\"solaris-carousel\" role=\"region\" aria-roledescription=\"carousel\" [attr.aria-label]=\"rootAriaLabel()\"\r\n [attr.tabindex]=\"keyboard() ? '0' : null\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\"\r\n (focusin)=\"onFocusIn()\" (focusout)=\"onFocusOut()\">\r\n\r\n <div class=\"solaris-carousel__viewport\">\r\n <div class=\"solaris-carousel__track\" [style.transition-duration.ms]=\"transitionMs()\"\r\n [style.transform]=\"'translate3d(' + (-activeIndex() * 100) + '%, 0, 0)'\">\r\n\r\n @for (item of items(); track trackByItem($index, item)) {\r\n <div class=\"solaris-carousel__slide\" role=\"group\" aria-roledescription=\"slide\" [attr.aria-label]=\"($index + 1) + ' / ' + count()\"\r\n [attr.aria-hidden]=\"$index !== activeIndex() ? 'true' : null\">\r\n\r\n @if (resolvedSlideTpl(); as tpl) {\r\n <ng-container\r\n *ngTemplateOutlet=\"tpl; context: carouselContext($index)\">\r\n </ng-container>\r\n } @else if (item.slideComponent; as component) {\r\n <ng-container\r\n *ngComponentOutlet=\"component; inputs: slideComponentInputs($index)\">\r\n </ng-container>\r\n } @else if (slideComponent(); as component) {\r\n <ng-container\r\n *ngComponentOutlet=\"component; inputs: slideComponentInputs($index)\">\r\n </ng-container>\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"defaultImageSlide; context: carouselContext($index)\">\r\n </ng-container>\r\n }\r\n\r\n @if (resolvedOverlayTpl(); as tpl) {\r\n <div class=\"solaris-carousel__overlay\">\r\n <ng-container\r\n *ngTemplateOutlet=\"tpl; context: carouselContext($index)\">\r\n </ng-container>\r\n </div>\r\n } @else if (item.overlayComponent; as component) {\r\n <div class=\"solaris-carousel__overlay\">\r\n <ng-container\r\n *ngComponentOutlet=\"component; inputs: overlayComponentInputs($index)\">\r\n </ng-container>\r\n </div>\r\n } @else if (overlayComponent(); as component) {\r\n <div class=\"solaris-carousel__overlay\">\r\n <ng-container\r\n *ngComponentOutlet=\"component; inputs: overlayComponentInputs($index)\">\r\n </ng-container>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n @if (showArrows() && hasMultiple()) {\r\n <button type=\"button\" class=\"solaris-carousel__arrow is-prev\" [disabled]=\"!canGoPrev()\" [attr.aria-label]=\"previousAriaLabel()\"\r\n (click)=\"prev('arrow')\">\r\n <i class=\"ph ph-caret-left\" aria-hidden=\"true\"></i>\r\n </button>\r\n\r\n <button type=\"button\" class=\"solaris-carousel__arrow is-next\" [disabled]=\"!canGoNext()\" [attr.aria-label]=\"nextAriaLabel()\"\r\n (click)=\"next('arrow')\">\r\n <i class=\"ph ph-caret-right\" aria-hidden=\"true\"></i>\r\n </button>\r\n }\r\n\r\n @if (showDots() && hasMultiple()) {\r\n <div class=\"solaris-carousel__dots\" role=\"tablist\" [attr.aria-label]=\"navigationAriaLabel()\">\r\n @for (item of items(); track trackByItem($index, item)) {\r\n <button type=\"button\" class=\"solaris-carousel__dot\" role=\"tab\" [class.is-active]=\"$index === activeIndex()\"\r\n [attr.aria-label]=\"dotAriaLabel($index)\" [attr.aria-selected]=\"$index === activeIndex() ? 'true' : 'false'\"\r\n [attr.aria-current]=\"$index === activeIndex() ? 'true' : null\" (click)=\"goTo($index, 'dot')\">\r\n </button>\r\n }\r\n </div>\r\n }\r\n</div>\r\n\r\n<ng-template #defaultImageSlide let-item>\r\n @if (item.src) {\r\n @if (item.href) {\r\n <a class=\"solaris-carousel__media\" [href]=\"item.href\" [attr.target]=\"item.target ?? null\" [attr.aria-label]=\"itemAriaLabel(item)\">\r\n <img class=\"solaris-carousel__img\" [src]=\"item.src\" [attr.srcset]=\"item.srcSet ?? null\" [attr.sizes]=\"item.sizes ?? null\"\r\n [attr.alt]=\"itemAlt(item)\"/>\r\n </a>\r\n } @else {\r\n <div class=\"solaris-carousel__media\">\r\n <img class=\"solaris-carousel__img\" [src]=\"item.src\" [attr.srcset]=\"item.srcSet ?? null\" [attr.sizes]=\"item.sizes ?? null\"\r\n [attr.alt]=\"itemAlt(item)\"/>\r\n </div>\r\n }\r\n } @else {\r\n <div class=\"solaris-carousel__empty\" aria-hidden=\"true\"></div>\r\n }\r\n</ng-template>\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'solaris-section',\r\n standalone: true,\r\n imports: [NgClass],\r\n templateUrl: './section.html',\r\n styleUrl: './section.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisSectionComponent {\r\n @Input() title?: string;\r\n @Input() description?: string;\r\n @Input() appearance: 'plain' | 'card' = 'plain';\r\n @Input() density: 'comfortable' | 'compact' = 'comfortable';\r\n}\r\n","<section class=\"solaris-section\" [ngClass]=\"['appearance-' + appearance, 'density-' + density]\">\r\n @if (title || description) {\r\n <header class=\"solaris-section__header\">\r\n @if (title) { <h2 class=\"solaris-section__title\">{{ title }}</h2> }\r\n @if (description) { <p class=\"solaris-section__description\">{{ description }}</p> }\r\n </header>\r\n }\r\n\r\n <div class=\"solaris-section__content\">\r\n <ng-content></ng-content>\r\n </div>\r\n</section>\r\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\n\r\nimport { DividerLabelAlign, DividerOrientation, DividerSpacing, DividerStrength, DividerVariant } from '../model/divider.type';\r\n\r\n@Component({\r\n selector: 'solaris-divider',\r\n standalone: true,\r\n imports: [NgClass],\r\n templateUrl: './divider.html',\r\n styleUrl: './divider.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { role: 'separator' },\r\n})\r\nexport class SolarisDivider {\r\n @Input() label?: string;\r\n @Input() inset = false;\r\n @Input() spacing: DividerSpacing = 'none';\r\n @Input() variant: DividerVariant = 'solid';\r\n @Input() strength: DividerStrength = 'normal';\r\n @Input() orientation: DividerOrientation = 'horizontal';\r\n @Input({ alias: 'label-align' }) labelAlign: DividerLabelAlign = 'center';\r\n\r\n @HostBinding('class') hostClass = 'solaris-divider-host';\r\n @HostBinding('attr.aria-orientation') get ariaOrientation() {\r\n return this.orientation === 'vertical' ? 'vertical' : 'horizontal';\r\n }\r\n\r\n get hasLabel(): boolean {\r\n return !!this.label && this.orientation === 'horizontal';\r\n }\r\n}\r\n","<div\r\n class=\"solaris-divider\"\r\n [ngClass]=\"[\r\n 'orientation-' + orientation,\r\n 'spacing-' + spacing,\r\n 'strength-' + strength,\r\n 'variant-' + variant,\r\n inset ? 'is-inset' : '',\r\n hasLabel ? 'has-label' : '',\r\n hasLabel ? 'label-' + labelAlign : ''\r\n ]\">\r\n @if (hasLabel) {\r\n <span class=\"solaris-divider__line\"></span>\r\n <span class=\"solaris-divider__label\">{{ label }}</span>\r\n <span class=\"solaris-divider__line\"></span>\r\n }\r\n</div>\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const SOLARIS_DIALOG_STEP_DATA = new InjectionToken<unknown>('SOLARIS_DIALOG_STEP_DATA');\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const SOLARIS_DIALOG_DATA = new InjectionToken<unknown>('SOLARIS_DIALOG_DATA');\r\n","import { SolarisDialogAction, SolarisDialogHeaderConfiguration } from '../model/dialog.type';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nexport class SolarisDialogRef<TResult = unknown> {\r\n private readonly actionSubject = new Subject<SolarisDialogAction<TResult>>();\r\n private readonly closedSubject = new Subject<TResult | undefined>();\r\n\r\n private closeFn?: (result?: TResult) => void;\r\n private updateActionsFn?: (actions: SolarisDialogAction<TResult>[]) => void;\r\n private updateHeaderFn?: (header: SolarisDialogHeaderConfiguration) => void;\r\n\r\n afterClosed(): Observable<TResult | undefined> {\r\n return this.closedSubject.asObservable();\r\n }\r\n\r\n afterAction(): Observable<SolarisDialogAction<TResult>> {\r\n return this.actionSubject.asObservable();\r\n }\r\n\r\n close(result?: TResult): void {\r\n this.closeFn?.(result);\r\n }\r\n\r\n updateActions(actions: SolarisDialogAction<TResult>[]): void {\r\n this.updateActionsFn?.(actions);\r\n }\r\n\r\n updateHeader(header: SolarisDialogHeaderConfiguration): void {\r\n this.updateHeaderFn?.(header);\r\n }\r\n\r\n _attachCloseFn(fn: (result?: TResult) => void): void {\r\n this.closeFn = fn;\r\n }\r\n\r\n _attachActionsUpdateFn(fn: (actions: SolarisDialogAction<TResult>[]) => void): void {\r\n this.updateActionsFn = fn;\r\n }\r\n\r\n _attachHeaderUpdateFn(fn: (header: SolarisDialogHeaderConfiguration) => void): void {\r\n this.updateHeaderFn = fn;\r\n }\r\n\r\n _emitAction(action: SolarisDialogAction<TResult>): void {\r\n this.actionSubject.next(action);\r\n }\r\n\r\n _finishClose(result?: TResult): void {\r\n this.closedSubject.next(result);\r\n this.closedSubject.complete();\r\n this.actionSubject.complete();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, DestroyRef, Injector, computed, effect, inject, signal,\r\n AfterViewInit, ViewChildren, ElementRef, QueryList } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { NgComponentOutlet } from '@angular/common';\r\n\r\nimport {\r\n SolarisDialogStep,\r\n SolarisDialogStepActionValue,\r\n SolarisDialogStepDirection,\r\n SolarisDialogStepsConfiguration\r\n} from '../../model/dialog-steps.type';\r\nimport { SOLARIS_DIALOG_STEP_DATA } from '../../token/dialog-step-data.token';\r\nimport { SOLARIS_DIALOG_DATA } from '../../token/dialog-data.token';\r\nimport { SolarisDialogAction } from '../../model/dialog.type';\r\nimport { SolarisDialogRef } from '../../token/dialog-ref';\r\n\r\n@Component({\r\n selector: 'solaris-dialog-steps-container',\r\n standalone: true,\r\n imports: [\r\n NgComponentOutlet\r\n ],\r\n templateUrl: './dialog-steps-container.html',\r\n styleUrl: './dialog-steps-container.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisDialogStepsContainer<TResult = unknown> implements AfterViewInit {\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly injector = inject(Injector);\r\n\r\n private readonly configuration =\r\n inject(SOLARIS_DIALOG_DATA) as SolarisDialogStepsConfiguration<TResult>;\r\n\r\n private readonly dialogRef =\r\n inject<SolarisDialogRef<TResult | SolarisDialogStepActionValue>>(SolarisDialogRef);\r\n\r\n protected readonly steps = this.configuration?.steps ?? [];\r\n\r\n protected readonly showProgress = this.configuration?.showProgress ?? true;\r\n protected readonly transitionBlur = this.configuration?.transitionBlur ?? true;\r\n protected readonly contentMinHeight = this.configuration?.contentMinHeight ?? '0';\r\n protected readonly transitionDurationMs = this.configuration?.transitionDurationMs ?? 420;\r\n\r\n protected readonly loading = signal(false);\r\n protected readonly transitioning = signal(false);\r\n protected readonly transitionHalfway = signal(false);\r\n\r\n protected readonly currentStepIndex = signal(this.resolveInitialStepIndex());\r\n\r\n @ViewChildren('stepElement', { read: ElementRef })\r\n private readonly stepElements!: QueryList<ElementRef<HTMLElement>>;\r\n\r\n protected readonly activeStepHeight = signal('auto');\r\n\r\n private measureRaf = 0;\r\n private resizeObserver?: ResizeObserver;\r\n\r\n private halfwayTimer = 0;\r\n private transitionTimer = 0;\r\n\r\n private readonly stepInjectors = this.steps.map(step =>\r\n Injector.create({\r\n providers: [\r\n {\r\n provide: SOLARIS_DIALOG_STEP_DATA,\r\n useValue: step.data,\r\n },\r\n ],\r\n parent: this.injector,\r\n })\r\n );\r\n\r\n protected readonly trackTransform = computed(() => {\r\n return `translate3d(-${this.currentStepIndex() * 100}%, 0, 0)`;\r\n });\r\n\r\n protected readonly isFirstStep = computed(() => this.currentStepIndex() === 0);\r\n\r\n protected readonly isLastStep = computed(() => {\r\n return this.currentStepIndex() === this.steps.length - 1;\r\n });\r\n\r\n protected readonly transitionDuration = computed(() => {\r\n return `${this.transitionDurationMs}ms`;\r\n });\r\n\r\n constructor() {\r\n this.destroyRef.onDestroy(() => {\r\n globalThis.clearTimeout(this.halfwayTimer);\r\n globalThis.clearTimeout(this.transitionTimer);\r\n\r\n if (this.measureRaf) {\r\n cancelAnimationFrame(this.measureRaf);\r\n }\r\n\r\n this.resizeObserver?.disconnect();\r\n });\r\n\r\n this.dialogRef.afterAction()\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(action => {\r\n void this.handleAction(action.value as SolarisDialogStepActionValue);\r\n });\r\n\r\n effect(() => {\r\n this.currentStepIndex();\r\n this.loading();\r\n\r\n this.updateDialogHeader();\r\n this.updateDialogActions();\r\n\r\n queueMicrotask(() => {\r\n this.observeActiveStepHeight();\r\n this.scheduleActiveStepHeightMeasure();\r\n });\r\n });\r\n\r\n queueMicrotask(() => {\r\n void this.runBeforeEnter(this.currentStepIndex(), 'initial');\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.stepElements.changes.pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => {\r\n this.observeActiveStepHeight();\r\n this.scheduleActiveStepHeightMeasure();\r\n });\r\n\r\n this.observeActiveStepHeight();\r\n this.scheduleActiveStepHeightMeasure();\r\n }\r\n\r\n protected stepInjector(index: number): Injector {\r\n return this.stepInjectors[index];\r\n }\r\n\r\n private async handleAction(value: SolarisDialogStepActionValue): Promise<void> {\r\n switch (value) {\r\n case 'cancel':\r\n this.dialogRef.close();\r\n return;\r\n\r\n case 'back':\r\n await this.goToStep(this.currentStepIndex() - 1, 'backward');\r\n return;\r\n\r\n case 'next':\r\n await this.goToStep(this.currentStepIndex() + 1, 'forward');\r\n return;\r\n\r\n case 'finish':\r\n await this.finish();\r\n return;\r\n }\r\n }\r\n\r\n private async goToStep(targetIndex: number, direction: SolarisDialogStepDirection): Promise<void> {\r\n if (this.loading()) return;\r\n if (targetIndex < 0 || targetIndex >= this.steps.length) return;\r\n\r\n const fromIndex = this.currentStepIndex();\r\n const canLeave = await this.runBeforeLeave(fromIndex, targetIndex, direction);\r\n\r\n if (!canLeave) return;\r\n\r\n const canEnter = await this.runBeforeEnter(targetIndex, direction, fromIndex);\r\n\r\n if (!canEnter) return;\r\n\r\n this.runTransitionTo(targetIndex);\r\n }\r\n\r\n private async finish(): Promise<void> {\r\n if (this.loading()) return;\r\n\r\n const index = this.currentStepIndex();\r\n const canLeave = await this.runBeforeLeave(index, index, 'forward');\r\n\r\n if (!canLeave) return;\r\n\r\n this.dialogRef.close(this.configuration.finishValue);\r\n }\r\n\r\n private async runBeforeEnter(toIndex: number, direction: SolarisDialogStepDirection,\r\n fromIndex = toIndex): Promise<boolean> {\r\n const step = this.steps[toIndex];\r\n\r\n if (!step?.beforeEnter) {\r\n return true;\r\n }\r\n\r\n this.loading.set(true);\r\n\r\n try {\r\n const result = await step.beforeEnter({\r\n fromIndex,\r\n toIndex,\r\n direction,\r\n });\r\n\r\n return result !== false;\r\n } finally {\r\n this.loading.set(false);\r\n }\r\n }\r\n\r\n private async runBeforeLeave(fromIndex: number, toIndex: number,\r\n direction: SolarisDialogStepDirection): Promise<boolean> {\r\n const step = this.steps[fromIndex];\r\n\r\n if (!step?.beforeLeave) {\r\n return true;\r\n }\r\n\r\n this.loading.set(true);\r\n\r\n try {\r\n const result = await step.beforeLeave({\r\n fromIndex,\r\n toIndex,\r\n direction,\r\n });\r\n\r\n return result !== false;\r\n } finally {\r\n this.loading.set(false);\r\n }\r\n }\r\n\r\n private updateDialogActions(): void {\r\n if (!this.steps.length) {\r\n this.dialogRef.updateActions([]);\r\n return;\r\n }\r\n\r\n const step = this.steps[this.currentStepIndex()];\r\n const customActions = this.resolveStepActions(step);\r\n\r\n if (customActions.length) {\r\n this.dialogRef.updateActions(\r\n customActions.map(action => ({\r\n ...action,\r\n disabled: action.disabled || this.loading(),\r\n }))\r\n );\r\n return;\r\n }\r\n\r\n const leftAction: SolarisDialogAction<TResult | SolarisDialogStepActionValue> = this.isFirstStep()\r\n ? {\r\n label: this.configuration.cancelLabel ?? 'Cancelar',\r\n labelKey: this.configuration.cancelLabelKey,\r\n value: 'cancel',\r\n variant: 'outline',\r\n color: 'surface',\r\n closesDialog: false,\r\n disabled: this.loading(),\r\n }\r\n : {\r\n label: this.configuration.backLabel ?? 'Voltar',\r\n labelKey: this.configuration.backLabelKey,\r\n value: 'back',\r\n variant: 'outline',\r\n color: 'surface',\r\n closesDialog: false,\r\n disabled: this.loading(),\r\n };\r\n\r\n const rightAction: SolarisDialogAction<TResult | SolarisDialogStepActionValue> = this.isLastStep()\r\n ? {\r\n label: this.configuration.finishLabel ?? 'Finalizar',\r\n labelKey: this.configuration.finishLabelKey,\r\n value: 'finish',\r\n variant: 'solid',\r\n color: 'primary',\r\n closesDialog: false,\r\n loading: this.loading(),\r\n }\r\n : {\r\n label: this.configuration.nextLabel ?? 'Continuar',\r\n labelKey: this.configuration.nextLabelKey,\r\n value: 'next',\r\n variant: 'solid',\r\n color: 'primary',\r\n closesDialog: false,\r\n loading: this.loading(),\r\n };\r\n\r\n this.dialogRef.updateActions([leftAction, rightAction]);\r\n }\r\n\r\n private resolveStepActions(\r\n step: SolarisDialogStep<unknown, TResult> | undefined\r\n ): SolarisDialogAction<TResult | SolarisDialogStepActionValue>[] {\r\n if (!step?.actions) {\r\n return [];\r\n }\r\n\r\n if (typeof step.actions === 'function') {\r\n return step.actions({\r\n index: this.currentStepIndex(),\r\n loading: this.loading(),\r\n isFirstStep: this.isFirstStep(),\r\n isLastStep: this.isLastStep(),\r\n });\r\n }\r\n\r\n return step.actions;\r\n }\r\n\r\n private resolveInitialStepIndex(): number {\r\n if (!this.steps.length) {\r\n return 0;\r\n }\r\n\r\n const index = this.configuration.initialStepIndex ?? 0;\r\n\r\n return Math.max(0, Math.min(index, this.steps.length - 1));\r\n }\r\n\r\n private runTransitionTo(targetIndex: number): void {\r\n globalThis.clearTimeout(this.halfwayTimer);\r\n globalThis.clearTimeout(this.transitionTimer);\r\n\r\n this.transitioning.set(true);\r\n this.transitionHalfway.set(false);\r\n\r\n this.currentStepIndex.set(targetIndex);\r\n\r\n this.observeActiveStepHeight(targetIndex);\r\n this.scheduleActiveStepHeightMeasure(targetIndex);\r\n\r\n if (this.transitionBlur) {\r\n this.halfwayTimer = globalThis.setTimeout(() => {\r\n if (this.transitioning()) {\r\n this.transitionHalfway.set(true);\r\n }\r\n }, Math.round(this.transitionDurationMs / 2));\r\n }\r\n\r\n this.transitionTimer = globalThis.setTimeout(() => {\r\n this.transitioning.set(false);\r\n this.transitionHalfway.set(false);\r\n }, this.transitionDurationMs);\r\n }\r\n\r\n private updateDialogHeader(): void {\r\n const step = this.steps[this.currentStepIndex()];\r\n\r\n const title = step?.title;\r\n const titleKey = step?.titleKey;\r\n\r\n const description = step?.description;\r\n const descriptionKey = step?.descriptionKey;\r\n\r\n this.dialogRef.updateHeader({\r\n title: titleKey ? undefined : (title ?? this.configuration.title),\r\n titleKey: titleKey ?? (title ? undefined : this.configuration.titleKey),\r\n titleParams: step?.titleParams ?? this.configuration.titleParams,\r\n\r\n description: descriptionKey ? undefined : (description ?? this.configuration.description),\r\n descriptionKey: descriptionKey ?? (description ? undefined : this.configuration.descriptionKey),\r\n descriptionParams: step?.descriptionParams ?? this.configuration.descriptionParams,\r\n });\r\n }\r\n\r\n private scheduleActiveStepHeightMeasure(index = this.currentStepIndex()): void {\r\n if (this.measureRaf) {\r\n cancelAnimationFrame(this.measureRaf);\r\n }\r\n\r\n this.measureRaf = requestAnimationFrame(() => {\r\n this.measureStepHeight(index);\r\n });\r\n }\r\n\r\n private measureStepHeight(index = this.currentStepIndex()): void {\r\n const element = this.stepElements?.toArray()[index]?.nativeElement;\r\n\r\n if (!element) {\r\n this.activeStepHeight.set('auto');\r\n return;\r\n }\r\n\r\n const height = Math.ceil(element.scrollHeight);\r\n\r\n this.activeStepHeight.set(`${height}px`);\r\n }\r\n\r\n private observeActiveStepHeight(index = this.currentStepIndex()): void {\r\n this.resizeObserver?.disconnect();\r\n\r\n const element = this.stepElements?.toArray()[index]?.nativeElement;\r\n\r\n if (!element || typeof ResizeObserver === 'undefined') {\r\n return;\r\n }\r\n\r\n this.resizeObserver = new ResizeObserver(() => {\r\n this.scheduleActiveStepHeightMeasure(index);\r\n });\r\n\r\n this.resizeObserver.observe(element);\r\n }\r\n}\r\n","<div class=\"solaris-dialog-steps\" [class.is-transitioning]=\"transitioning()\" [class.is-halfway]=\"transitionHalfway()\"\r\n [class.has-transition-blur]=\"transitionBlur\" [style.--solaris-dialog-steps-min-height]=\"contentMinHeight\"\r\n [style.--solaris-dialog-steps-active-height]=\"activeStepHeight()\">\r\n @if (showProgress) {\r\n <div class=\"solaris-dialog-steps__progress\" aria-hidden=\"true\">\r\n @for (step of steps; track step.key; let index = $index) {\r\n <span class=\"solaris-dialog-steps__dot\" [class.is-active]=\"index === currentStepIndex()\"\r\n [class.is-complete]=\"index < currentStepIndex()\"></span>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"solaris-dialog-steps__viewport\">\r\n <div class=\"solaris-dialog-steps__track\" [style.transform]=\"trackTransform()\"\r\n [style.--solaris-dialog-steps-transition-duration]=\"transitionDuration()\">\r\n @for (step of steps; track step.key; let index = $index) {\r\n <section #stepElement class=\"solaris-dialog-steps__step\" [class.is-active]=\"index === currentStepIndex()\"\r\n [class.is-before]=\"index < currentStepIndex()\" [class.is-after]=\"index > currentStepIndex()\">\r\n <div class=\"solaris-dialog-steps__step-inner\">\r\n <ng-container\r\n *ngComponentOutlet=\"step.component; injector: stepInjector(index)\"\r\n ></ng-container>\r\n </div>\r\n </section>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewContainerRef } from '@angular/core';\r\n\r\nimport { SolarisDialogAction, SolarisDialogActionAlignment, SolarisDialogSize } from '../../model/dialog.type';\r\nimport { SolarisButtonColorInput, SolarisButtonVariant } from '../../../../actions/button/models/button.type';\r\nimport { SolarisButtonDirective } from '../../../../actions/button/directives/button.directive';\r\nimport { SolarisSizePreset } from '../../../../common/model/common-configurations.type';\r\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\r\n\r\n@Component({\r\n selector: 'solaris-dialog-container',\r\n standalone: true,\r\n templateUrl: './dialog-container.html',\r\n styleUrl: './dialog-container.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n SolarisButtonDirective,\r\n SolarisTranslationPipe\r\n ]\r\n})\r\nexport class SolarisDialogContainer<TResult = unknown> {\r\n @ViewChild('contentHost', { read: ViewContainerRef, static: true })\r\n readonly contentHost!: ViewContainerRef;\r\n\r\n @Input() title?: string;\r\n @Input() titleKey?: string;\r\n @Input() titleParams?: Record<string, unknown>;\r\n\r\n @Input() description?: string;\r\n @Input() descriptionKey?: string;\r\n @Input() descriptionParams?: Record<string, unknown>;\r\n\r\n @Input() size: SolarisDialogSize = 'md';\r\n @Input() showCloseButton = true;\r\n @Input() actionSize?: SolarisSizePreset;\r\n @Input() actions: SolarisDialogAction<TResult>[] = [];\r\n @Input() actionAlignment: SolarisDialogActionAlignment = 'end';\r\n\r\n @Input() ariaLabel?: string;\r\n @Input() ariaLabelledBy?: string;\r\n @Input() ariaDescribedBy?: string;\r\n\r\n @Output() readonly closeClick = new EventEmitter<void>();\r\n @Output() readonly actionClick = new EventEmitter<SolarisDialogAction<TResult>>();\r\n\r\n readonly titleId = `solaris-dialog-title-${Math.round(Math.random() * 1_000_000)}`;\r\n readonly descriptionId = `solaris-dialog-description-${Math.round(Math.random() * 1_000_000)}`;\r\n\r\n get hasHeader(): boolean {\r\n return !!this.title || !!this.titleKey || !!this.description || !!this.descriptionKey || this.showCloseButton;\r\n }\r\n\r\n get hasDescription(): boolean {\r\n return !!this.description || !!this.descriptionKey;\r\n }\r\n\r\n get hasActions(): boolean {\r\n return this.actions.length > 0;\r\n }\r\n\r\n get resolvedAriaLabelledBy(): string | null {\r\n if (this.ariaLabelledBy) return this.ariaLabelledBy;\r\n if (this.title || this.titleKey) return this.titleId;\r\n return null;\r\n }\r\n\r\n get resolvedAriaDescribedBy(): string | null {\r\n if (this.ariaDescribedBy) return this.ariaDescribedBy;\r\n if (this.description || this.descriptionKey) return this.descriptionId;\r\n return null;\r\n }\r\n\r\n protected resolveActionSize(action: SolarisDialogAction<TResult>): SolarisSizePreset {\r\n if (action.size) {\r\n return action.size;\r\n }\r\n\r\n if (this.actionSize) {\r\n return this.actionSize;\r\n }\r\n\r\n switch (this.size) {\r\n case 'sm':\r\n return 'sm';\r\n case 'md':\r\n return 'md';\r\n case 'lg':\r\n case 'xl':\r\n case 'fullscreen':\r\n return 'lg';\r\n }\r\n }\r\n\r\n protected resolveActionVariant(action: SolarisDialogAction<TResult>): SolarisButtonVariant {\r\n if (action.variant) {\r\n return action.variant;\r\n }\r\n\r\n return 'solid';\r\n }\r\n\r\n protected resolveActionColor(action: SolarisDialogAction<TResult>): SolarisButtonColorInput {\r\n if (action.color) {\r\n return action.color;\r\n }\r\n\r\n switch (action.variant) {\r\n case 'ghost':\r\n case 'outline':\r\n case 'soft':\r\n return 'surface';\r\n default:\r\n return 'primary';\r\n }\r\n }\r\n}\r\n","<section class=\"solaris-dialog\" [attr.data-size]=\"size\" role=\"dialog\" aria-modal=\"true\" [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"resolvedAriaLabelledBy\" [attr.aria-describedby]=\"resolvedAriaDescribedBy\">\r\n @if (hasHeader) {\r\n <header class=\"solaris-dialog__header\">\r\n <div class=\"solaris-dialog__heading\">\r\n @if (title || titleKey) {\r\n <h2 class=\"solaris-dialog__title\" [id]=\"titleId\">\r\n @if (titleKey) {\r\n {{ titleKey | translate }}\r\n } @else {\r\n {{ title }}\r\n }\r\n </h2>\r\n }\r\n\r\n @if (hasDescription) {\r\n <p class=\"solaris-dialog__description\" [id]=\"descriptionId\">\r\n @if (descriptionKey) {\r\n {{ descriptionKey | translate }}\r\n } @else {\r\n {{ description }}\r\n }\r\n </p>\r\n }\r\n </div>\r\n\r\n @if (showCloseButton) {\r\n <button type=\"button\" class=\"solaris-dialog__close\" aria-label=\"Fechar\" (click)=\"closeClick.emit()\">\r\n <i class=\"ph ph-x\"></i>\r\n </button>\r\n }\r\n </header>\r\n }\r\n\r\n <div class=\"solaris-dialog__body\">\r\n <ng-template #contentHost></ng-template>\r\n </div>\r\n\r\n @if (hasActions) {\r\n <footer class=\"solaris-dialog__footer\" [attr.data-action-alignment]=\"actionAlignment\">\r\n @for (action of actions; track action.label ?? action.labelKey ?? $index) {\r\n <button type=\"button\" solaris-button class=\"solaris-dialog__action\" [size]=\"resolveActionSize(action)\"\r\n [variant]=\"resolveActionVariant(action)\" [color]=\"resolveActionColor(action)\" [disabled]=\"action.disabled\"\r\n [loading]=\"action.loading\" [fullWidth]=\"action.fullWidth\" (click)=\"actionClick.emit(action)\">\r\n @if (action.prefixIcon) {\r\n <i [attr.class]=\"'solaris-dialog__action-icon solaris-dialog__action-icon--prefix ' + action.prefixIcon\"\r\n aria-hidden=\"true\"></i>\r\n }\r\n\r\n <span class=\"solaris-dialog__action-label\">\r\n @if (action.labelKey) {\r\n {{ action.labelKey | translate:action.labelParams }}\r\n } @else {\r\n {{ action.label }}\r\n }\r\n </span>\r\n\r\n @if (action.suffixIcon) {\r\n <i [attr.class]=\"'solaris-dialog__action-icon solaris-dialog__action-icon--suffix ' + action.suffixIcon\"\r\n aria-hidden=\"true\"></i>\r\n }\r\n </button>\r\n }\r\n </footer>\r\n }\r\n</section>\r\n","import { ApplicationRef, EnvironmentInjector, Injectable, Injector, Type, createComponent, inject } from '@angular/core';\r\n\r\nimport { SolarisDialogStepsContainer } from '../components/dialog-steps-container/dialog-steps-container';\r\nimport { SolarisDialogContainer } from '../components/dialog-container/dialog-container';\r\nimport { SolarisDialogStepsConfiguration } from '../model/dialog-steps.type';\r\nimport { SolarisDialogConfiguration } from '../model/dialog.type';\r\nimport { SOLARIS_DIALOG_DATA } from '../token/dialog-data.token';\r\nimport { SolarisDialogRef } from '../token/dialog-ref';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SolarisDialogService {\r\n private readonly environmentInjector = inject(EnvironmentInjector);\r\n private readonly appRef = inject(ApplicationRef);\r\n\r\n open<TComponent, TData = unknown, TResult = unknown>(component: Type<TComponent>,\r\n configuration: SolarisDialogConfiguration<TData, TResult> = {},): SolarisDialogRef<TResult> {\r\n const dialogRef = new SolarisDialogRef<TResult>();\r\n\r\n const backdrop = document.createElement('div');\r\n backdrop.className = 'solaris-dialog-backdrop';\r\n\r\n const host = document.createElement('div');\r\n const positionClass = `position-${configuration.position ?? 'center'}`;\r\n\r\n host.className = [\r\n 'solaris-dialog-host',\r\n positionClass,\r\n configuration.panelClass ?? '',\r\n ].filter(Boolean).join(' ');\r\n\r\n document.body.appendChild(backdrop);\r\n document.body.appendChild(host);\r\n\r\n const dialogInjector = Injector.create({\r\n providers: [\r\n { provide: SOLARIS_DIALOG_DATA, useValue: configuration.data },\r\n { provide: SolarisDialogRef, useValue: dialogRef },\r\n ],\r\n parent: this.environmentInjector,\r\n });\r\n\r\n const containerRef = createComponent(SolarisDialogContainer<TResult>, {\r\n environmentInjector: this.environmentInjector,\r\n hostElement: host,\r\n });\r\n\r\n containerRef.setInput('title', configuration.title);\r\n containerRef.setInput('titleKey', configuration.titleKey);\r\n containerRef.setInput('titleParams', configuration.titleParams);\r\n containerRef.setInput('description', configuration.description);\r\n containerRef.setInput('descriptionKey', configuration.descriptionKey);\r\n containerRef.setInput('descriptionParams', configuration.descriptionParams);\r\n containerRef.setInput('size', configuration.size ?? 'md');\r\n containerRef.setInput('actions', configuration.actions ?? []);\r\n containerRef.setInput('actionSize', configuration.actionSize);\r\n containerRef.setInput('actionAlignment', configuration.actionAlignment ?? 'end');\r\n containerRef.setInput('ariaLabel', configuration.ariaLabel);\r\n containerRef.setInput('ariaLabelledBy', configuration.ariaLabelledBy);\r\n containerRef.setInput('ariaDescribedBy', configuration.ariaDescribedBy);\r\n containerRef.setInput('showCloseButton', configuration.showCloseButton ?? !configuration.disableClose);\r\n\r\n dialogRef._attachActionsUpdateFn(actions => {\r\n containerRef.setInput('actions', [...actions]);\r\n containerRef.changeDetectorRef.detectChanges();\r\n });\r\n\r\n dialogRef._attachHeaderUpdateFn(header => {\r\n containerRef.setInput('title', header.title);\r\n containerRef.setInput('titleKey', header.titleKey);\r\n containerRef.setInput('titleParams', header.titleParams);\r\n\r\n containerRef.setInput('description', header.description);\r\n containerRef.setInput('descriptionKey', header.descriptionKey);\r\n containerRef.setInput('descriptionParams', header.descriptionParams);\r\n\r\n containerRef.changeDetectorRef.detectChanges();\r\n });\r\n\r\n this.appRef.attachView(containerRef.hostView);\r\n containerRef.changeDetectorRef.detectChanges();\r\n\r\n const contentRef = createComponent(component, {\r\n environmentInjector: this.environmentInjector,\r\n elementInjector: dialogInjector,\r\n });\r\n\r\n containerRef.instance.contentHost.insert(contentRef.hostView);\r\n contentRef.changeDetectorRef.detectChanges();\r\n\r\n const close = (result?: TResult) => {\r\n this.appRef.detachView(contentRef.hostView);\r\n contentRef.destroy();\r\n\r\n this.appRef.detachView(containerRef.hostView);\r\n containerRef.destroy();\r\n\r\n backdrop.remove();\r\n host.remove();\r\n\r\n document.removeEventListener('keydown', onKeyDown, true);\r\n backdrop.removeEventListener('pointerdown', onBackdropClick, true);\r\n\r\n dialogRef._finishClose(result);\r\n };\r\n\r\n dialogRef._attachCloseFn(close);\r\n\r\n const closeOnBackdropClick = configuration.closeOnBackdropClick ?? !configuration.disableClose;\r\n const closeOnEscape = configuration.closeOnEscape ?? !configuration.disableClose;\r\n\r\n const onBackdropClick = () => {\r\n if (closeOnBackdropClick) {\r\n dialogRef.close();\r\n }\r\n };\r\n\r\n const onKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === 'Escape' && closeOnEscape) {\r\n dialogRef.close();\r\n }\r\n };\r\n\r\n backdrop.addEventListener('pointerdown', onBackdropClick, true);\r\n document.addEventListener('keydown', onKeyDown, true);\r\n\r\n containerRef.instance.closeClick.subscribe(() => {\r\n if (!configuration.disableClose) {\r\n dialogRef.close();\r\n }\r\n });\r\n\r\n containerRef.instance.actionClick.subscribe((action) => {\r\n if (action.disabled || action.loading) return;\r\n\r\n dialogRef._emitAction(action);\r\n if (action.closesDialog ?? true) {\r\n dialogRef.close(action.value as TResult);\r\n }\r\n });\r\n\r\n return dialogRef;\r\n }\r\n\r\n openSteps<TResult = unknown>(configuration: SolarisDialogStepsConfiguration<TResult>,): SolarisDialogRef<TResult> {\r\n return this.open<SolarisDialogStepsContainer<TResult>, SolarisDialogStepsConfiguration<TResult>,\r\n TResult>(SolarisDialogStepsContainer, {\r\n ...configuration,\r\n data: configuration,\r\n actions: [],\r\n actionAlignment: configuration.actionAlignment ?? 'space-between',\r\n showCloseButton: configuration.showCloseButton ?? true,\r\n });\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[solaris-drawer-header]',\r\n standalone: true,\r\n})\r\nexport class SolarisDrawerHeaderDirective {}\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[solaris-drawer-footer]',\r\n standalone: true,\r\n})\r\nexport class SolarisDrawerFooterDirective {}\r\n","import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, HostBinding,\r\n Input, Output, ViewChild, computed, effect, inject, signal } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\nimport { SolarisDrawerHeaderDirective } from '../directives/drawer-header.directive';\r\nimport { SolarisDrawerFooterDirective } from '../directives/drawer-footer.directive';\r\nimport { SolarisDrawerSide } from '../model/drawer.type';\r\n\r\n@Component({\r\n selector: 'solaris-drawer',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './drawer.html',\r\n styleUrls: ['./drawer.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'solaris-drawer-host' },\r\n})\r\nexport class SolarisDrawer {\r\n private readonly doc = inject(DOCUMENT);\r\n\r\n @Input() title = '';\r\n @Input() titleKey = '';\r\n @Input() panelClass = '';\r\n @Input() backdrop = true;\r\n @Input() showClose = true;\r\n @Input() trapFocus = true;\r\n @Input() backdropClass = '';\r\n @Input() showHeader = true;\r\n @Input() lockScroll = true;\r\n @Input() restoreFocus = true;\r\n @Input() closeOnEscape = true;\r\n @Input() width = 'min(26rem, 92vw)';\r\n @Input() side: SolarisDrawerSide = 'right';\r\n @Input() height = 'min(70vh, 40rem)';\r\n @Input() closeOnOutsideClick = true;\r\n\r\n private readonly _openInput = signal<boolean | null>(null);\r\n private readonly _internalOpen = signal(false);\r\n\r\n @Input() set open(v: boolean | null) { this._openInput.set(v); }\r\n get open(): boolean | null { return this._openInput(); }\r\n\r\n readonly isOpen = computed(() => {\r\n const v = this._openInput();\r\n return typeof v === 'boolean' ? v : this._internalOpen();\r\n });\r\n\r\n @Output() openChange = new EventEmitter<boolean>();\r\n\r\n @ContentChild(SolarisDrawerHeaderDirective) headerSlot?: SolarisDrawerHeaderDirective;\r\n @ContentChild(SolarisDrawerFooterDirective) footerSlot?: SolarisDrawerFooterDirective;\r\n @ViewChild('panelEl', { read: ElementRef }) panelEl?: ElementRef<HTMLElement>;\r\n\r\n private static seq = 0;\r\n readonly _id = `solaris-drawer-${++SolarisDrawer.seq}`;\r\n private static scrollLockCount = 0;\r\n private static prevBodyOverflow = '';\r\n readonly titleId = `${this._id}-title`;\r\n private prevFocused: HTMLElement | null = null;\r\n private static prevBodyPaddingRight = '';\r\n\r\n @HostBinding('attr.data-side') get dataSide() { return this.side; }\r\n @HostBinding('attr.data-open') get dataOpen() { return this.isOpen() ? 'true' : null; }\r\n\r\n get hasCustomHeader(): boolean { return !!this.headerSlot; }\r\n get hasCustomFooter(): boolean { return !!this.footerSlot; }\r\n\r\n constructor() {\r\n effect((onCleanup) => {\r\n const open = this.isOpen();\r\n\r\n if (open) {\r\n this.onOpen();\r\n } else {\r\n this.onClose();\r\n }\r\n\r\n const onKeyDown = (ev: KeyboardEvent) => {\r\n if (!this.isOpen()) return;\r\n if (this.closeOnEscape && ev.key === 'Escape') {\r\n ev.preventDefault();\r\n this.setOpen(false);\r\n }\r\n };\r\n\r\n const onDocPointerDown = (ev: PointerEvent) => {\r\n if (!this.isOpen()) return;\r\n if (!this.closeOnOutsideClick) return;\r\n if (this.backdrop) return;\r\n\r\n const panel = this.panelEl?.nativeElement;\r\n const t = ev.target as Node | null;\r\n if (!panel || !t) return;\r\n\r\n if (!panel.contains(t)) this.setOpen(false);\r\n };\r\n\r\n const onFocusIn = (ev: FocusEvent) => {\r\n if (!this.isOpen()) return;\r\n if (!this.trapFocus) return;\r\n\r\n const panel = this.panelEl?.nativeElement;\r\n const target = ev.target as Node | null;\r\n if (!panel || !target) return;\r\n\r\n if (!panel.contains(target)) {\r\n this.focusFirst();\r\n }\r\n };\r\n\r\n this.doc.addEventListener('keydown', onKeyDown, { capture: true });\r\n this.doc.addEventListener('pointerdown', onDocPointerDown, { capture: true });\r\n this.doc.addEventListener('focusin', onFocusIn, { capture: true });\r\n\r\n onCleanup(() => {\r\n this.doc.removeEventListener('keydown', onKeyDown, true as any);\r\n this.doc.removeEventListener('pointerdown', onDocPointerDown, true as any);\r\n this.doc.removeEventListener('focusin', onFocusIn, true as any);\r\n });\r\n });\r\n }\r\n\r\n toggle() {\r\n this.setOpen(!this.isOpen());\r\n }\r\n\r\n setOpen(next: boolean) {\r\n const cur = this.isOpen();\r\n if (next === cur) return;\r\n\r\n this.openChange.emit(next);\r\n if (typeof this._openInput() !== 'boolean') {\r\n this._internalOpen.set(next);\r\n }\r\n }\r\n\r\n onBackdropClick() {\r\n if (!this.closeOnOutsideClick) return;\r\n this.setOpen(false);\r\n }\r\n\r\n onPanelKeydown(ev: KeyboardEvent) {\r\n if (!this.trapFocus) return;\r\n if (ev.key !== 'Tab') return;\r\n\r\n const panel = this.panelEl?.nativeElement;\r\n if (!panel) return;\r\n\r\n const focusables = this.getFocusable(panel);\r\n if (!focusables.length) return;\r\n\r\n const first = focusables[0];\r\n const last = focusables.at(-1);\r\n\r\n const active = this.doc.activeElement as HTMLElement | null;\r\n\r\n if (ev.shiftKey) {\r\n if (!active || active === first) {\r\n ev.preventDefault();\r\n if (last) {\r\n last.focus();\r\n }\r\n }\r\n } else if (!active || active === last) {\r\n ev.preventDefault();\r\n first.focus();\r\n }\r\n }\r\n\r\n private onOpen() {\r\n if (this.restoreFocus) {\r\n this.prevFocused = this.doc.activeElement as HTMLElement | null;\r\n }\r\n\r\n if (this.lockScroll) this.lockBodyScroll();\r\n queueMicrotask(() => {\r\n requestAnimationFrame(() => this.focusFirst());\r\n });\r\n }\r\n\r\n private onClose() {\r\n if (this.lockScroll) this.unlockBodyScroll();\r\n\r\n if (this.restoreFocus && this.prevFocused?.isConnected) {\r\n queueMicrotask(() => this.prevFocused?.focus?.());\r\n }\r\n this.prevFocused = null;\r\n }\r\n\r\n private focusFirst() {\r\n const panel = this.panelEl?.nativeElement;\r\n if (!panel) return;\r\n\r\n const focusables = this.getFocusable(panel);\r\n if (focusables.length) {\r\n focusables[0].focus();\r\n return;\r\n }\r\n\r\n panel.focus?.();\r\n }\r\n\r\n private getFocusable(root: HTMLElement): HTMLElement[] {\r\n const selector =\r\n 'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\r\n\r\n const all = Array.from(root.querySelectorAll<HTMLElement>(selector));\r\n return all.filter(el => {\r\n const style = getComputedStyle(el);\r\n const visible = style.visibility !== 'hidden' && style.display !== 'none';\r\n const inDom = el.offsetParent !== null || style.position === 'fixed';\r\n return visible && inDom;\r\n });\r\n }\r\n\r\n private lockBodyScroll() {\r\n const body = this.doc.body;\r\n if (!body) return;\r\n\r\n if (SolarisDrawer.scrollLockCount === 0) {\r\n SolarisDrawer.prevBodyOverflow = body.style.overflow;\r\n SolarisDrawer.prevBodyPaddingRight = body.style.paddingRight;\r\n\r\n const scrollbarW = Math.max(0, window.innerWidth - this.doc.documentElement.clientWidth);\r\n body.style.overflow = 'hidden';\r\n if (scrollbarW) body.style.paddingRight = `${scrollbarW}px`;\r\n }\r\n\r\n SolarisDrawer.scrollLockCount++;\r\n }\r\n\r\n private unlockBodyScroll() {\r\n const body = this.doc.body;\r\n if (!body) return;\r\n\r\n SolarisDrawer.scrollLockCount = Math.max(0, SolarisDrawer.scrollLockCount - 1);\r\n\r\n if (SolarisDrawer.scrollLockCount === 0) {\r\n body.style.overflow = SolarisDrawer.prevBodyOverflow;\r\n body.style.paddingRight = SolarisDrawer.prevBodyPaddingRight;\r\n }\r\n }\r\n}\r\n","@if (isOpen()) {\r\n @if (backdrop) {\r\n <div class=\"solaris-drawer__backdrop {{ backdropClass }}\" (click)=\"onBackdropClick()\" aria-hidden=\"true\"></div>\r\n }\r\n\r\n <aside #panelEl class=\"solaris-drawer__panel {{ panelClass }}\" role=\"dialog\" aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"showHeader ? titleId : null\" [style.--solaris-drawer-width]=\"width\"\r\n [style.--solaris-drawer-height]=\"height\" (keydown)=\"onPanelKeydown($event)\" tabindex=\"-1\">\r\n @if (showHeader) {\r\n <header class=\"solaris-drawer__header\">\r\n @if (hasCustomHeader) {\r\n <ng-content select=\"[solaris-drawer-header]\"></ng-content>\r\n } @else {\r\n <div class=\"solaris-drawer__title\" [id]=\"titleId\">{{ title }}</div>\r\n\r\n @if (showClose) {\r\n <button type=\"button\" class=\"solaris-drawer__close\" (click)=\"setOpen(false)\" aria-label=\"Close\">\r\n <i class=\"ph ph-x\" aria-hidden=\"true\"></i>\r\n </button>\r\n }\r\n }\r\n </header>\r\n }\r\n\r\n <div class=\"solaris-drawer__content\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n @if (hasCustomFooter) {\r\n <footer class=\"solaris-drawer__footer\">\r\n <ng-content select=\"[solaris-drawer-footer]\"></ng-content>\r\n </footer>\r\n }\r\n </aside>\r\n}\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[solaris-filter-panel-footer]',\r\n standalone: true,\r\n})\r\nexport class SolarisFilterPanelFooterDirective {}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'solaris-table-filters',\r\n standalone: true,\r\n templateUrl: './table-filters.html',\r\n styleUrls: ['./table-filters.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'solaris-table-filters' },\r\n})\r\nexport class SolarisTableFilters {}\r\n","<ng-content></ng-content>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\r\n\r\n@Component({\r\n selector: 'solaris-filter-field',\r\n standalone: true,\r\n imports: [SolarisTranslationPipe],\r\n templateUrl: './filter-field.html',\r\n styleUrls: ['./filter-field.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'solaris-filter-field-host' },\r\n})\r\nexport class SolarisFilterField {\r\n @Input() label = '';\r\n @Input() labelKey = '';\r\n @Input() active = false;\r\n @Input() resetLabel = 'Reset';\r\n @Input() resetLabelKey = 'ui.solaris.common.reset';\r\n\r\n @Output() reset = new EventEmitter<void>();\r\n\r\n get showReset(): boolean {\r\n return this.reset.observed;\r\n }\r\n\r\n onResetClick(ev: MouseEvent) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n this.reset.emit();\r\n }\r\n}\r\n","<div class=\"solaris-filter-field\">\r\n <div class=\"solaris-filter-field__head\">\r\n <span class=\"solaris-filter-field__label\">\r\n @if (labelKey) { {{ labelKey | translate }} } @else { {{ label }} }\r\n </span>\r\n\r\n @if (showReset) {\r\n <button type=\"button\" class=\"solaris-filter-field__reset\" (click)=\"onResetClick($event)\" [disabled]=\"!active\">\r\n @if (resetLabelKey) { {{ resetLabelKey | translate }} } @else { {{ resetLabel }} }\r\n </button>\r\n }\r\n </div>\r\n\r\n <div class=\"solaris-filter-field__body\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[solaris-filter-panel-chips]',\r\n standalone: true,\r\n})\r\nexport class SolarisFilterPanelChipsDirective {}\r\n","import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, Output, computed, signal } from '@angular/core';\r\n\r\nimport { SolarisFilterPanelFooterDirective } from '../../../directives/filter-panel-footer.directive';\r\nimport { SolarisDrawerFooterDirective } from '../../../../drawer/directives/drawer-footer.directive';\r\nimport { SolarisDrawerHeaderDirective } from '../../../../drawer/directives/drawer-header.directive';\r\nimport { SolarisFilterPanelChipsDirective } from '../../../directives/filter-panel-chips.directive';\r\nimport { SolarisButtonDirective } from '../../../../../actions/button/directives/button.directive';\r\nimport { SolarisFilterPanelRadius } from '../../../model/filter-panel/filter-panel.type';\r\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\r\nimport { SolarisDrawer } from '../../../../drawer/component/drawer';\r\n\r\n@Component({\r\n selector: 'solaris-filter-panel',\r\n standalone: true,\r\n imports: [\r\n SolarisTranslationPipe,\r\n SolarisButtonDirective,\r\n SolarisDrawerHeaderDirective,\r\n SolarisDrawerFooterDirective,\r\n SolarisDrawer\r\n ],\r\n templateUrl: './filter-panel.html',\r\n styleUrls: ['./filter-panel.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'solaris-filter-panel-host' },\r\n})\r\nexport class SolarisFilterPanel {\r\n @Input() count = 0;\r\n @Input() labelKey = '';\r\n @Input() titleKey = '';\r\n @Input() disabled = false;\r\n @Input() drawerSide: 'right' | 'left' = 'right';\r\n @Input() radius: SolarisFilterPanelRadius = 'sm';\r\n @Input() drawerWidth: string = 'min(30rem, 92vw)';\r\n @Input() label = 'ui.solaris.tables.filter.filters';\r\n @Input() title = 'ui.solaris.tables.filter.filters';\r\n\r\n private readonly _internalOpen = signal(false);\r\n private readonly _openInput = signal<boolean | null>(null);\r\n private readonly _chipsSlot = signal<SolarisFilterPanelChipsDirective | null>(null);\r\n\r\n @Input() set open(v: boolean | null) { this._openInput.set(v); }\r\n get open(): boolean | null { return this._openInput(); }\r\n\r\n readonly isOpen = computed(() => {\r\n const v = this._openInput();\r\n return typeof v === 'boolean' ? v : this._internalOpen();\r\n });\r\n\r\n @Output() apply = new EventEmitter<void>();\r\n @Output() clearAll = new EventEmitter<void>();\r\n @Output() openChange = new EventEmitter<boolean>();\r\n\r\n @ContentChild(SolarisFilterPanelFooterDirective) footerSlot?: SolarisFilterPanelFooterDirective;\r\n @ContentChild(SolarisFilterPanelChipsDirective) set chipsSlot(v: SolarisFilterPanelChipsDirective | undefined) {\r\n this._chipsSlot.set(v ?? null);\r\n }\r\n\r\n readonly hasChips = computed(() => !!this._chipsSlot());\r\n get hasCustomFooter(): boolean { return !!this.footerSlot; }\r\n\r\n setOpen(next: boolean) {\r\n if (this.disabled) return;\r\n if (next === this.isOpen()) return;\r\n\r\n this.openChange.emit(next);\r\n if (typeof this._openInput() !== 'boolean') this._internalOpen.set(next);\r\n }\r\n\r\n toggle() {\r\n this.setOpen(!this.isOpen());\r\n }\r\n}\r\n","<button type=\"button\" class=\"solaris-filter-panel__trigger\" [disabled]=\"disabled\" (click)=\"toggle()\"\r\n [attr.data-radius]=\"radius\">\r\n <i class=\"ph ph-sliders-horizontal\"></i>\r\n\r\n @if (labelKey) { {{ labelKey | translate }} } @else { {{ label | translate }} }\r\n\r\n @if (count > 0) {\r\n <span class=\"solaris-filter-panel__count\">{{ count }}</span>\r\n }\r\n</button>\r\n\r\n<solaris-drawer [open]=\"isOpen()\" (openChange)=\"setOpen($event)\" [side]=\"drawerSide\" [width]=\"drawerWidth\"\r\n [backdrop]=\"true\" [closeOnEscape]=\"true\" [closeOnOutsideClick]=\"true\" [lockScroll]=\"true\"\r\n [restoreFocus]=\"true\" [trapFocus]=\"true\" panelClass=\"solaris-filter-panel__drawer\">\r\n <div solaris-drawer-header class=\"solaris-filter-panel__header\">\r\n <div class=\"solaris-filter-panel__title\">\r\n @if (titleKey) { {{ titleKey | translate }} } @else { {{ title | translate }} }\r\n </div>\r\n\r\n <button type=\"button\" class=\"solaris-filter-panel__close\" (click)=\"setOpen(false)\">\r\n <i class=\"ph ph-x\"></i>\r\n </button>\r\n </div>\r\n\r\n @if (hasChips()) {\r\n <div class=\"solaris-filter-panel__chips\">\r\n <ng-content select=\"[solarisFilterPanelChips]\"></ng-content>\r\n </div>\r\n }\r\n\r\n <div class=\"solaris-filter-panel__content\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <footer solaris-drawer-footer class=\"solaris-filter-panel__footer\">\r\n <ng-content select=\"[solarisFilterPanelFooter]\"></ng-content>\r\n\r\n @if (!hasCustomFooter) {\r\n <div class=\"solaris-filter-panel__footer-default\">\r\n <button solaris-button color=\"surface\" variant=\"outline\" type=\"button\" (click)=\"clearAll.emit()\">\r\n {{ 'ui.solaris.common.clearAll' | translate }}\r\n </button>\r\n\r\n <button solaris-button type=\"button\" (click)=\"apply.emit()\">\r\n {{ 'ui.solaris.common.apply' | translate }}\r\n </button>\r\n </div>\r\n }\r\n </footer>\r\n</solaris-drawer>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\r\nimport { SolarisRadiusPreset } from '../../../../../common/model/common-configurations.type';\r\n\r\n\r\n@Component({\r\n selector: 'solaris-filter-chip',\r\n standalone: true,\r\n imports: [\r\n SolarisTranslationPipe\r\n ],\r\n templateUrl: './filter-chip.html',\r\n styleUrls: ['./filter-chip.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'solaris-filter-chip-host' },\r\n})\r\nexport class SolarisFilterChip {\r\n @Input() label = '';\r\n @Input() value = '';\r\n @Input() labelKey = '';\r\n @Input() valueKey = '';\r\n @Input() disabled = false;\r\n @Input() removable = true;\r\n @Input() radius: SolarisRadiusPreset = 'md';\r\n\r\n @Output() remove = new EventEmitter<void>();\r\n @Output() chipClick = new EventEmitter<void>();\r\n\r\n onRemoveClick(ev: MouseEvent) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n if (!this.disabled) this.remove.emit();\r\n }\r\n}\r\n","<button type=\"button\" class=\"solaris-filter-chip\" [disabled]=\"disabled\"\r\n (click)=\"chipClick.emit()\" [attr.data-radius]=\"radius\">\r\n <span class=\"solaris-filter-chip__label\">\r\n @if (labelKey) { {{ labelKey | translate }} } @else { {{ label }} }\r\n </span>\r\n\r\n <span class=\"solaris-filter-chip__value\">\r\n @if (valueKey) { {{ valueKey | translate }} } @else { {{ value }} }\r\n </span>\r\n\r\n @if (removable) {\r\n <span class=\"solaris-filter-chip__remove\"\r\n role=\"button\"\r\n tabindex=\"-1\"\r\n (click)=\"onRemoveClick($event)\">\r\n <i class=\"ph ph-x\" aria-hidden=\"true\"></i>\r\n </span>\r\n }\r\n</button>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'solaris-table-skeleton',\r\n standalone: true,\r\n templateUrl: './table-skeleton.html',\r\n styleUrls: ['./table-skeleton.scss'],\r\n})\r\nexport class SolarisTableSkeleton {\r\n @Input() rows = 10;\r\n @Input() columns = 6;\r\n @Input() selectable = false;\r\n @Input() gridTemplateColumns = '';\r\n\r\n public rowsArray() { return Array.from({ length: this.rows }, (_, i) => i); }\r\n public colsArray() { return Array.from({ length: this.columns }, (_, i) => i); }\r\n}\r\n","<div class=\"solaris-table-skeleton\" role=\"status\" aria-live=\"polite\">\r\n @for (r of rowsArray(); track r) {\r\n <div class=\"solaris-table-skeleton__row\" [style.gridTemplateColumns]=\"gridTemplateColumns\">\r\n\r\n @for (c of colsArray(); track c; let i = $index) {\r\n <div class=\"solaris-table-skeleton__cell\" [class.is-first]=\"i === 0\">\r\n @if (selectable && i === 0) {\r\n <span class=\"solaris-table-skeleton__select-prefix\">\r\n <span class=\"sk sk--circle\"></span>\r\n </span>\r\n }\r\n\r\n <span class=\"sk sk--line\"></span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'solaris-filter-bar',\r\n standalone: true,\r\n templateUrl: './filter-bar.html',\r\n styleUrls: ['./filter-bar.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'solaris-filter-bar' },\r\n})\r\nexport class SolarisFilterBar {}\r\n","<ng-content></ng-content>\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'ng-template[solaris-column-cell]',\r\n standalone: true,\r\n})\r\nexport class SolarisColumnCellDef {\r\n constructor(public readonly template: TemplateRef<any>) {}\r\n}\r\n\r\n@Directive({\r\n selector: 'ng-template[solaris-column-header]',\r\n standalone: true,\r\n})\r\nexport class SolarisColumnHeaderDef {\r\n constructor(public readonly template: TemplateRef<any>) {}\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SolarisIdGenerator {\r\n private readonly counters = new Map<string, number>();\r\n\r\n public next(prefix = 'solaris'): string {\r\n const current = this.counters.get(prefix) ?? 0;\r\n const next = current + 1;\r\n this.counters.set(prefix, next);\r\n return `${prefix}-${next}`;\r\n }\r\n}\r\n","import { booleanAttribute, Component, ContentChild, inject, Input } from '@angular/core';\r\n\r\nimport { SolarisColumnCellDef, SolarisColumnHeaderDef } from '../../directives/column.directive';\r\nimport { SolarisIdGenerator } from '../../../../common/service/id-generator.service';\r\nimport { SolarisAlign } from '../../model/table/table.types';\r\n\r\n@Component({\r\n selector: 'solaris-column',\r\n standalone: true,\r\n templateUrl: './table-column.html',\r\n styleUrls: ['./table-column.scss']\r\n})\r\nexport class SolarisTableColumn {\r\n private readonly ids = inject(SolarisIdGenerator);\r\n readonly id = this.ids.next('solaris-column');\r\n\r\n @Input() field?: string;\r\n @Input() width?: string;\r\n @Input() header?: string;\r\n @Input() sortKey?: string;\r\n @Input() minWidth?: string;\r\n @Input() maxWidth?: string;\r\n @Input() headerKey?: string;\r\n @Input() headerIconClass?: string;\r\n @Input() align: SolarisAlign = 'start';\r\n @Input({ transform: booleanAttribute }) grow = false;\r\n @Input({ transform: booleanAttribute }) resizable = true;\r\n @Input({ transform: booleanAttribute }) sortable = false;\r\n\r\n @ContentChild(SolarisColumnCellDef) cellDef?: SolarisColumnCellDef;\r\n @ContentChild(SolarisColumnHeaderDef) headerDef?: SolarisColumnHeaderDef;\r\n}\r\n","","import { inject } from '@angular/core';\r\n\r\nimport { SolarisIdGenerator } from '../service/id-generator.service';\r\n\r\nexport function uniqueId(prefix: string): string {\r\n return inject(SolarisIdGenerator).next(prefix);\r\n}\r\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewChild,\r\n forwardRef, computed, effect, input, output, signal } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nimport { SolarisColorPreset, SolarisSizePreset } from '../../../common/model/common-configurations.type';\r\nimport { CheckboxAppearance, CheckboxColorInput, CheckboxVariant } from '../model/checkbox.type';\r\nimport { uniqueId } from '../../../common/helper/unique-id';\r\n\r\nconst PRESET_COLORS = new Set<SolarisColorPreset>([ 'primary', 'success', 'warning', 'error', 'info' ]);\r\n\r\n@Component({\r\n selector: 'solaris-checkbox',\r\n standalone: true,\r\n templateUrl: './checkbox.html',\r\n styleUrls: ['./checkbox.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SolarisCheckbox),\r\n multi: true,\r\n },\r\n ],\r\n host: {\r\n class: 'solaris-checkbox-host',\r\n '[attr.data-size]': 'size()',\r\n '[attr.data-color]': 'colorKey()',\r\n '[attr.data-variant]': 'variant()',\r\n '[attr.data-appearance]': 'appearance()',\r\n '[style.--solaris-checkbox-ink]': 'ink()',\r\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\r\n '[style.--solaris-checkbox-custom]': 'customAccent()',\r\n },\r\n})\r\nexport class SolarisCheckbox implements ControlValueAccessor {\r\n readonly indeterminate = input<boolean>(false);\r\n readonly ariaLabel = input<string | null>(null);\r\n readonly size = input<SolarisSizePreset>('md');\r\n readonly variant = input<CheckboxVariant>('square');\r\n readonly color = input<CheckboxColorInput>('primary');\r\n readonly inputId = input<string | null>(null, { alias: 'id' });\r\n readonly appearance = input<CheckboxAppearance>('solid');\r\n readonly checkColor = input<CheckboxColorInput | null>(null);\r\n\r\n readonly checked = signal(false);\r\n readonly disabled = signal(false);\r\n readonly checkedChange = output<boolean>();\r\n readonly indeterminateChange = output<boolean>();\r\n\r\n @ViewChild('native', { static: true })\r\n private readonly native?: ElementRef<HTMLInputElement>;\r\n\r\n readonly customAccent = computed(() => {\r\n if (this.colorKey() !== 'custom') return null;\r\n const raw = String(this.color() ?? '').trim();\r\n return !raw || raw === 'custom' ? null : raw;\r\n });\r\n readonly colorKey = computed(() => {\r\n const raw = String(this.color() ?? '').trim();\r\n if (!raw || raw === 'custom') return 'custom';\r\n return PRESET_COLORS.has(raw as SolarisColorPreset) ? (raw as SolarisColorPreset) : 'custom';\r\n });\r\n private readonly autoId = uniqueId('solaris-checkbox');\r\n readonly id = computed(() => this.inputId() ?? this.autoId);\r\n readonly ink = computed(() => resolveColor(this.checkColor(), null));\r\n\r\n private onChange: (value: boolean) => void = () => {};\r\n private onTouched: () => void = () => {};\r\n\r\n constructor() {\r\n effect(() => {\r\n const el = this.native?.nativeElement;\r\n if (!el) return;\r\n el.indeterminate = this.indeterminate();\r\n });\r\n }\r\n\r\n public onNativeChange(next: boolean) {\r\n if (this.indeterminate()) this.indeterminateChange.emit(false);\r\n\r\n this.checked.set(next);\r\n this.onChange(next);\r\n this.checkedChange.emit(next);\r\n this.onTouched();\r\n }\r\n\r\n public onBlur() {\r\n this.onTouched();\r\n }\r\n\r\n writeValue(value: boolean | null): void {\r\n this.checked.set(!!value);\r\n }\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled.set(isDisabled);\r\n }\r\n registerOnChange(fn: (value: boolean) => void): void {\r\n this.onChange = fn;\r\n }\r\n}\r\n\r\nfunction resolveColor(v: CheckboxColorInput | null | undefined, fallback: string | null): string | null {\r\n const s = v == null ? '' : String(v).trim();\r\n if (!s || s === 'custom') return fallback;\r\n if (PRESET_COLORS.has(s as SolarisColorPreset)) return `var(--solaris-color-${s})`;\r\n return s;\r\n}\r\n","<label class=\"solaris-checkbox\">\r\n <input #native class=\"solaris-checkbox__native\" type=\"checkbox\" [attr.id]=\"id()\"\r\n [checked]=\"checked()\" [disabled]=\"disabled()\" [attr.aria-label]=\"ariaLabel() ?? null\"\r\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : (checked() ? 'true' : 'false')\"\r\n (change)=\"onNativeChange(native.checked)\" (blur)=\"onBlur()\"/>\r\n\r\n <span class=\"solaris-checkbox__control\" aria-hidden=\"true\">\r\n @if (variant() === 'icon') {\r\n <span class=\"solaris-checkbox__dot\" aria-hidden=\"true\"></span>\r\n } @else {\r\n <i class=\"ph solaris-checkbox__icon\" [class.ph-check]=\"!indeterminate()\"\r\n [class.ph-minus]=\"indeterminate()\" aria-hidden=\"true\"></i>\r\n }\r\n </span>\r\n\r\n @if (variant() !== 'icon') {\r\n <span class=\"solaris-checkbox__content\"><ng-content/></span>\r\n }\r\n</label>\r\n","import { AfterContentInit, ChangeDetectionStrategy, Component, computed, ContentChildren, DestroyRef, ElementRef,\r\n EventEmitter, inject, Input, OnChanges, Output, QueryList, signal, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { SolarisPageChange, SolarisRowKey, SolarisSort, SolarisTableVariant } from '../../model/table/table.types';\r\nimport { SolarisCheckbox } from '../../../../actions/checkbox/component/checkbox';\r\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\r\nimport { SolarisTableSkeleton } from '../skeleton/table-skeleton';\r\nimport { SolarisTableColumn } from '../column/table-column';\r\n\r\n@Component({\r\n selector: 'solaris-table',\r\n standalone: true,\r\n imports: [\r\n FormsModule,\r\n SolarisCheckbox,\r\n NgTemplateOutlet,\r\n SolarisTableSkeleton,\r\n SolarisTranslationPipe,\r\n ],\r\n templateUrl: './table.html',\r\n styleUrls: ['./table.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'solaris-table-host',\r\n '[attr.data-scroll]': 'needsScroll() ? \"true\" : null',\r\n }\r\n})\r\nexport class SolarisTable implements AfterContentInit, OnChanges {\r\n private readonly destroyRef: DestroyRef = inject(DestroyRef);\r\n\r\n @Input() length = 0;\r\n @Input() pageIndex = 0;\r\n @Input() pageSize = 10;\r\n @Input() rowsCount = 0;\r\n @Input() loading = false;\r\n @Input() sort: SolarisSort[] = [];\r\n @Input() selectable = false;\r\n @Input() tableDescription = '';\r\n @Input() selection: SolarisRowKey[] = [];\r\n @Input() variant: SolarisTableVariant = 'grid';\r\n @Input() emptyIconClass = 'ph ph-database';\r\n @Input() pageSizeOptions: number[] = [10, 20, 50];\r\n @Input() emptyTextKey = 'ui.solaris.table.empty';\r\n\r\n @Output() sortChange = new EventEmitter<SolarisSort[]>();\r\n @Output() pageChange = new EventEmitter<SolarisPageChange>();\r\n @Output() selectionChange = new EventEmitter<SolarisRowKey[]>();\r\n\r\n @ContentChildren(SolarisTableColumn) private readonly columnQuery!: QueryList<SolarisTableColumn>;\r\n @ViewChild('tableRoot', { static: true }) private readonly tableRoot!: ElementRef<HTMLElement>;\r\n\r\n readonly needsScroll = signal(false);\r\n readonly measuredReady = signal(false);\r\n readonly sortState = signal<SolarisSort[]>([]);\r\n private readonly measuredPx = signal<number[]>([]);\r\n readonly columns = signal<SolarisTableColumn[]>([]);\r\n private readonly selectionSig = signal<SolarisRowKey[]>([]);\r\n private readonly rowKeys = signal<Set<SolarisRowKey>>(new Set());\r\n private readonly manualPx = signal<Record<number, number>>({});\r\n private readonly selectionSetSig = computed(() => new Set(this.selectionSig()));\r\n\r\n readonly selectAllChecked = computed(() => {\r\n const keys = Array.from(this.rowKeys());\r\n if (!keys.length) return false;\r\n const sel = this.selectionSetSig();\r\n return keys.every(k => sel.has(k));\r\n });\r\n readonly selectAllIndeterminate = computed(() => {\r\n const keys = Array.from(this.rowKeys());\r\n if (!keys.length) return false;\r\n const sel = this.selectionSetSig();\r\n const any = keys.some(k => sel.has(k));\r\n return any && !this.selectAllChecked();\r\n });\r\n readonly selectedCount = computed(() => this.selectionSig().length);\r\n readonly gridTemplateColumns = computed(() => this.buildGridTemplateColumns());\r\n\r\n private rafId: number | null = null;\r\n private resizeObserver?: ResizeObserver;\r\n\r\n get rangeStart(): number {\r\n if (!this.length) return 0;\r\n return this.pageIndex * this.pageSize + 1;\r\n }\r\n\r\n get rangeEnd(): number {\r\n if (!this.length) return 0;\r\n return Math.min(this.length, (this.pageIndex + 1) * this.pageSize);\r\n }\r\n\r\n get totalPages(): number {\r\n return Math.max(1, Math.ceil((this.length || 0) / (this.pageSize || 1)));\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.syncColumns();\r\n this.selectionSig.set(this.selection ?? []);\r\n this.sortState.set(this.sort ?? []);\r\n\r\n this.columnQuery.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\r\n this.syncColumns();\r\n this.scheduleMeasure();\r\n });\r\n\r\n this.resizeObserver = new ResizeObserver(() => this.scheduleMeasure());\r\n this.resizeObserver.observe(this.tableRoot.nativeElement);\r\n this.destroyRef.onDestroy(() => this.resizeObserver?.disconnect());\r\n\r\n const fonts = (document as any).fonts;\r\n if (fonts?.ready?.then) fonts.ready.then(() => this.scheduleMeasure());\r\n\r\n this.scheduleMeasure();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['sort']) this.sortState.set(this.sort ?? []);\r\n if (changes['selection']) this.selectionSig.set(this.selection ?? []);\r\n\r\n if (changes['variant'] || changes['rowsCount'] || changes['pageIndex'] || changes['pageSize'] || changes['loading']) {\r\n this.scheduleMeasure();\r\n }\r\n }\r\n\r\n private syncColumns(): void {\r\n this.columns.set(this.columnQuery?.toArray() ?? []);\r\n }\r\n\r\n private scheduleMeasure(): void {\r\n if (this.loading) return;\r\n\r\n if (this.rafId != null) cancelAnimationFrame(this.rafId);\r\n this.rafId = requestAnimationFrame(() => {\r\n this.rafId = null;\r\n this.measureColumns();\r\n });\r\n }\r\n\r\n private measureColumns(): void {\r\n const root = this.tableRoot?.nativeElement;\r\n if (!root) return;\r\n\r\n const cols = this.columns();\r\n if (!cols.length) return;\r\n\r\n const isGrid = this.variant === 'grid';\r\n const borderPx = isGrid ? 2 : 0;\r\n const safetyPx = isGrid ? 2 : 0;\r\n const perColOverhead = borderPx + safetyPx;\r\n\r\n const widths: number[] = [];\r\n\r\n for (let i = 0; i < cols.length; i++) {\r\n const col = cols[i];\r\n\r\n if (col.width) { widths[i] = -1; continue; }\r\n\r\n const manual = this.manualPx()[i];\r\n if (manual != null) { widths[i] = manual; continue; }\r\n\r\n const headerCell = root.querySelector<HTMLElement>(`.solaris-table__row--header [data-col-idx=\"${i}\"]`);\r\n const bodyCells = Array.from(root.querySelectorAll<HTMLElement>(`.solaris-table__body [data-col-idx=\"${i}\"]`));\r\n\r\n const headerW = headerCell ? this.measureHeaderCellWidth(headerCell) : 0;\r\n const bodyW = this.measureBodyCellsWidth(bodyCells);\r\n\r\n const cap = this.toPx(col.maxWidth ?? '18rem', root);\r\n const ideal = Math.max(headerW, bodyW);\r\n const withOverhead = ideal + perColOverhead;\r\n\r\n const min = col.minWidth ? this.toPx(col.minWidth, root) : 40;\r\n\r\n widths[i] = Math.max(min, Math.min(withOverhead, cap));\r\n }\r\n\r\n this.measuredPx.set(widths);\r\n this.measuredReady.set(true);\r\n this.updateScrollFlag();\r\n }\r\n\r\n private measureHeaderCellWidth(cell: HTMLElement): number {\r\n const root = this.tableRoot?.nativeElement;\r\n if (!root) return 0;\r\n\r\n const clone = cell.cloneNode(true) as HTMLElement;\r\n\r\n clone.style.position = 'absolute';\r\n clone.style.left = '-99999px';\r\n clone.style.top = '0';\r\n clone.style.visibility = 'hidden';\r\n clone.style.pointerEvents = 'none';\r\n clone.style.width = 'max-content';\r\n clone.style.maxWidth = 'none';\r\n\r\n const resizer = clone.querySelector<HTMLElement>('.solaris-table__col-resizer');\r\n if (resizer) resizer.style.display = 'none';\r\n\r\n const headerContent = clone.querySelector<HTMLElement>('.solaris-table__header-content');\r\n if (headerContent) {\r\n headerContent.style.width = 'max-content';\r\n headerContent.style.justifyContent = 'flex-start';\r\n }\r\n\r\n const left = clone.querySelector<HTMLElement>('.solaris-table__header-left');\r\n if (left) {\r\n left.style.overflow = 'visible';\r\n left.style.maxWidth = 'none';\r\n left.style.minWidth = '0';\r\n }\r\n\r\n const text = clone.querySelector<HTMLElement>('.solaris-table__header-text');\r\n if (text) {\r\n text.style.maxWidth = 'none';\r\n text.style.overflow = 'visible';\r\n text.style.textOverflow = 'clip';\r\n text.style.whiteSpace = 'nowrap';\r\n text.style.display = 'inline-block';\r\n }\r\n\r\n const sortBtn = clone.querySelector<HTMLElement>('.solaris-table__sort-btn');\r\n if (sortBtn) sortBtn.style.width = 'max-content';\r\n\r\n root.appendChild(clone);\r\n const w = clone.getBoundingClientRect().width;\r\n clone.remove();\r\n\r\n return Math.ceil(w);\r\n }\r\n\r\n private measureBodyCellsWidth(cells: HTMLElement[]): number {\r\n let max = 0;\r\n for (const cell of cells) max = Math.max(max, this.measureBodyCellWidth(cell));\r\n return max;\r\n }\r\n\r\n private measureBodyCellWidth(cell: HTMLElement): number {\r\n const style = getComputedStyle(cell);\r\n const pad = Number.parseFloat(style.paddingLeft || '0') + Number.parseFloat(style.paddingRight || '0');\r\n\r\n const prefix = cell.querySelector<HTMLElement>('.solaris-row__select-prefix');\r\n const content = cell.querySelector<HTMLElement>('.solaris-row__content');\r\n\r\n const prefixW = prefix?.scrollWidth ?? 0;\r\n const contentW = content?.scrollWidth ?? cell.scrollWidth;\r\n\r\n const gap = prefix ? 12 : 0;\r\n return pad + prefixW + gap + contentW;\r\n }\r\n\r\n private toPx(value: string, base: HTMLElement): number {\r\n const v = value.trim();\r\n if (v.endsWith('px')) return Number.parseFloat(v);\r\n if (v.endsWith('rem')) return Number.parseFloat(v) * Number.parseFloat(getComputedStyle(document.documentElement).fontSize);\r\n if (v.endsWith('em')) return Number.parseFloat(v) * Number.parseFloat(getComputedStyle(base).fontSize);\r\n const n = Number.parseFloat(v);\r\n return Number.isFinite(n) ? n : 280;\r\n }\r\n\r\n private updateScrollFlag(): void {\r\n const root = this.tableRoot?.nativeElement;\r\n if (!root) return;\r\n\r\n requestAnimationFrame(() => {\r\n const needs = root.scrollWidth > root.clientWidth + 1;\r\n this.needsScroll.set(needs);\r\n });\r\n }\r\n\r\n private clamp(n: number, min: number, max: number): number {\r\n return Math.max(min, Math.min(max, n));\r\n }\r\n\r\n public clearManualWidth(i: number): void {\r\n const next = { ...this.manualPx() };\r\n delete next[i];\r\n this.manualPx.set(next);\r\n this.scheduleMeasure();\r\n }\r\n\r\n public onResizeStart(ev: PointerEvent, i: number): void {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n\r\n const root = this.tableRoot?.nativeElement;\r\n if (!root) return;\r\n\r\n const headerCell = this.getHeaderCell(i);\r\n if (!headerCell) return;\r\n\r\n const cols = this.columns();\r\n const col = cols[i];\r\n if (!col || col.width || !col.resizable) return;\r\n\r\n const startX = ev.clientX;\r\n const startW = this.manualPx()[i] ?? Math.round(headerCell.getBoundingClientRect().width);\r\n\r\n const min = col.minWidth ? this.toPx(col.minWidth, root) : 40;\r\n const hardMax = col.maxWidth ? this.toPx(col.maxWidth, root) : 9999;\r\n const maxSafe = this.computeResizeMax(i, min, hardMax, root);\r\n\r\n root.classList.add('is-resizing');\r\n (ev.target as HTMLElement).setPointerCapture?.(ev.pointerId);\r\n\r\n const onMove = (e: PointerEvent) => {\r\n const dx = e.clientX - startX;\r\n const nextW = this.clamp(Math.round(startW + dx), min, maxSafe);\r\n const cur = this.manualPx();\r\n if (cur[i] === nextW) return;\r\n this.manualPx.set({ ...cur, [i]: nextW });\r\n };\r\n\r\n const cleanup = () => {\r\n root.classList.remove('is-resizing');\r\n globalThis.removeEventListener('pointermove', onMove);\r\n globalThis.removeEventListener('pointerup', cleanup);\r\n globalThis.removeEventListener('pointercancel', cleanup);\r\n };\r\n\r\n globalThis.addEventListener('pointermove', onMove);\r\n globalThis.addEventListener('pointerup', cleanup);\r\n globalThis.addEventListener('pointercancel', cleanup);\r\n }\r\n\r\n private getHeaderCell(i: number): HTMLElement | null {\r\n const root = this.tableRoot?.nativeElement;\r\n if (!root) return null;\r\n return root.querySelector<HTMLElement>(`.solaris-table__row--header [data-col-idx=\"${i}\"]`);\r\n }\r\n\r\n private pxMinWidth(c: SolarisTableColumn, root: HTMLElement): number {\r\n return c.minWidth ? this.toPx(c.minWidth, root) : 0;\r\n }\r\n\r\n private pxFixedWidth(c: SolarisTableColumn, root: HTMLElement): number | null {\r\n if (!c.width) return null;\r\n const w = c.width.trim();\r\n if (w.endsWith('px') || w.endsWith('rem') || w.endsWith('em')) return this.toPx(w, root);\r\n const n = Number.parseFloat(w);\r\n return Number.isFinite(n) ? n : null;\r\n }\r\n\r\n private reservedWidthExcept(i: number, root: HTMLElement): number {\r\n const cols = this.columns();\r\n const manualMap = this.manualPx();\r\n\r\n let reserved = 0;\r\n\r\n for (let j = 0; j < cols.length; j++) {\r\n if (j === i) continue;\r\n const c = cols[j];\r\n\r\n if (c.width) {\r\n const px = this.pxFixedWidth(c, root);\r\n if (px != null) { reserved += px; continue; }\r\n\r\n const cell = this.getHeaderCell(j);\r\n reserved += Math.round(cell?.getBoundingClientRect().width ?? 48);\r\n continue;\r\n }\r\n\r\n const manual = manualMap[j];\r\n if (manual != null) { reserved += manual; continue; }\r\n\r\n if (c.grow) { reserved += this.pxMinWidth(c, root); continue; }\r\n\r\n reserved += 48;\r\n }\r\n\r\n return reserved;\r\n }\r\n\r\n public readField(row: any, path?: string): any {\r\n if (!path) return '';\r\n const parts = path.split('.');\r\n let cur = row;\r\n\r\n for (const p of parts) {\r\n if (cur == null) return '';\r\n cur = cur[p];\r\n }\r\n\r\n return cur ?? '';\r\n }\r\n\r\n private computeResizeMax(i: number, min: number, hardMax: number, root: HTMLElement): number {\r\n const available = root.clientWidth;\r\n const reserved = this.reservedWidthExcept(i, root);\r\n\r\n const safety = 8;\r\n const fitMax = Math.max(min, Math.floor(available - reserved - safety));\r\n\r\n return Math.max(min, Math.min(hardMax, fitMax));\r\n }\r\n\r\n public registerRowKey(key: SolarisRowKey): void {\r\n const next = new Set(this.rowKeys());\r\n next.add(key);\r\n this.rowKeys.set(next);\r\n }\r\n\r\n public unregisterRowKey(key: SolarisRowKey): void {\r\n const next = new Set(this.rowKeys());\r\n next.delete(key);\r\n this.rowKeys.set(next);\r\n }\r\n\r\n public onToggleSelectAll(checked: boolean): void {\r\n const keys = Array.from(this.rowKeys());\r\n const sel = new Set(this.selectionSig());\r\n\r\n if (checked) keys.forEach(k => sel.add(k));\r\n else keys.forEach(k => sel.delete(k));\r\n\r\n const out = Array.from(sel);\r\n this.selectionSig.set(out);\r\n this.selectionChange.emit(out);\r\n }\r\n\r\n public toggleRow(key: SolarisRowKey, checked: boolean): void {\r\n const sel = new Set(this.selectionSig());\r\n if (checked) sel.add(key);\r\n else sel.delete(key);\r\n\r\n const out = Array.from(sel);\r\n this.selectionSig.set(out);\r\n this.selectionChange.emit(out);\r\n }\r\n\r\n public isSelected(key: SolarisRowKey): boolean {\r\n return this.selectionSetSig().has(key);\r\n }\r\n\r\n public getSortFor(col: SolarisTableColumn): SolarisSort | undefined {\r\n const key = col.sortKey ?? col.field;\r\n if (!key) return undefined;\r\n return this.sortState().find(s => s.key === key);\r\n }\r\n\r\n public onHeaderSortClick(ev: MouseEvent, col: SolarisTableColumn): void {\r\n ev.stopPropagation();\r\n\r\n if (!col.sortable) return;\r\n\r\n const key = col.sortKey ?? col.field;\r\n if (!key) return;\r\n\r\n const multi = ev.shiftKey;\r\n let next = [...this.sortState()];\r\n\r\n if (!multi) next = next.filter(s => s.key === key);\r\n\r\n const idx = next.findIndex(s => s.key === key);\r\n if (idx === -1) next.push({ key, direction: 'asc', order: next.length + 1 });\r\n else {\r\n const cur = next[idx];\r\n if (cur.direction === 'asc') next[idx] = { ...cur, direction: 'desc' };\r\n else next.splice(idx, 1);\r\n }\r\n\r\n next = next.map((s, k) => ({ ...s, order: k + 1 }));\r\n this.sortState.set(next);\r\n this.sortChange.emit(next);\r\n }\r\n\r\n public ariaSort(col: SolarisTableColumn): 'none' | 'ascending' | 'descending' {\r\n const s = this.getSortFor(col);\r\n if (!s) return 'none';\r\n return s.direction === 'asc' ? 'ascending' : 'descending';\r\n }\r\n\r\n public firstPage(): void { this.pageChange.emit({ pageIndex: 0, pageSize: this.pageSize }); }\r\n public prevPage(): void { this.pageChange.emit({ pageIndex: Math.max(0, this.pageIndex - 1), pageSize: this.pageSize }); }\r\n public nextPage(): void { this.pageChange.emit({ pageIndex: Math.min(this.totalPages - 1, this.pageIndex + 1), pageSize: this.pageSize }); }\r\n public lastPage(): void { this.pageChange.emit({ pageIndex: this.totalPages - 1, pageSize: this.pageSize }); }\r\n public changePageSize(size: number): void { this.pageChange.emit({ pageIndex: 0, pageSize: size }); }\r\n\r\n private buildGridTemplateColumns(): string {\r\n const cols = this.columns();\r\n const measured = this.measuredPx();\r\n const root = this.tableRoot?.nativeElement;\r\n\r\n const minPx = (c: SolarisTableColumn) => root && c.minWidth ? this.toPx(c.minWidth, root) : 0;\r\n const fixedWidthPx = (c: SolarisTableColumn): number | null => {\r\n if (!root || !c.width) return null;\r\n const w = c.width.trim();\r\n if (w.endsWith('px') || w.endsWith('rem') || w.endsWith('em')) return this.toPx(w, root);\r\n const n = Number.parseFloat(w);\r\n return Number.isFinite(n) ? n : null;\r\n };\r\n\r\n\r\n if (!measured.length || measured.length !== cols.length) {\r\n return cols.map((c) => {\r\n if (c.width) return c.width;\r\n if (c.grow) return `minmax(${minPx(c)}px, 1fr)`;\r\n if (root && c.maxWidth) {\r\n const cap = this.toPx(c.maxWidth, root);\r\n return `minmax(0px, ${cap}px)`;\r\n }\r\n return 'minmax(0px, 1fr)';\r\n }).join(' ');\r\n }\r\n\r\n const available = root?.clientWidth ?? 0;\r\n\r\n const rawPx: number[] = [];\r\n const growMinSum = cols.reduce((acc, c) => acc + (c.grow ? minPx(c) : 0), 0);\r\n\r\n let fixedSum = 0;\r\n\r\n for (let i = 0; i < cols.length; i++) {\r\n const c = cols[i];\r\n\r\n if (c.width) {\r\n const px = fixedWidthPx(c);\r\n rawPx[i] = px ?? 0;\r\n fixedSum += px ?? 0;\r\n continue;\r\n }\r\n\r\n if (c.grow) {\r\n rawPx[i] = 0;\r\n continue;\r\n }\r\n\r\n const manual = this.manualPx()[i];\r\n const px = manual ?? (measured[i] > 0 ? measured[i] : 180);\r\n rawPx[i] = px;\r\n fixedSum += px;\r\n }\r\n\r\n if (!available) {\r\n return cols.map((c, i) => {\r\n if (c.width) return c.width;\r\n if (c.grow) return `minmax(${minPx(c)}px, 1fr)`;\r\n return `${rawPx[i]}px`;\r\n }).join(' ');\r\n }\r\n\r\n const fixedBudget = Math.max(0, available - growMinSum);\r\n const scale = fixedSum > fixedBudget && fixedSum > 0 ? (fixedBudget / fixedSum) : 1;\r\n\r\n return cols.map((c, i) => {\r\n if (c.width) {\r\n return c.width;\r\n }\r\n\r\n if (c.grow) {\r\n const min = minPx(c);\r\n return `minmax(${min}px, 1fr)`;\r\n }\r\n\r\n const px = Math.max(48, Math.floor(rawPx[i] * scale));\r\n return `${px}px`;\r\n }).join(' ');\r\n }\r\n}\r\n","<ng-content select=\"solaris-table-filters\"></ng-content>\r\n\r\n<div class=\"solaris-table\" [class.solaris-table--grid]=\"variant === 'grid'\"\r\n [class.solaris-table--zebra]=\"variant === 'zebra'\">\r\n <div #tableRoot class=\"solaris-table__inner\" role=\"table\" [attr.aria-rowcount]=\"rowsCount\">\r\n <div class=\"solaris-table__header\" role=\"rowgroup\">\r\n <div class=\"solaris-table__row solaris-table__row--header\" role=\"row\" [style.gridTemplateColumns]=\"gridTemplateColumns()\">\r\n @for (col of columns(); track col.id; let i = $index) {\r\n <div class=\"solaris-table__cell solaris-table__cell--header\" role=\"columnheader\" [attr.data-col-idx]=\"i\"\r\n [attr.aria-sort]=\"ariaSort(col)\" [style.--solaris-col-max]=\"col.maxWidth || null\">\r\n\r\n <div class=\"solaris-table__header-content\">\r\n <span class=\"solaris-table__header-left\">\r\n @if (selectable && i === 0) {\r\n <span class=\"solaris-table__select-prefix\" (click)=\"$event.stopPropagation()\">\r\n <solaris-checkbox variant=\"square\" color=\"primary\" size=\"sm\" [ngModel]=\"selectAllChecked()\"\r\n (ngModelChange)=\"onToggleSelectAll($event)\" [indeterminate]=\"selectAllIndeterminate()\">\r\n </solaris-checkbox>\r\n </span>\r\n }\r\n\r\n @if (col.headerIconClass) { <i [class]=\"col.headerIconClass\"></i> }\r\n\r\n @if (col.headerDef?.template) {\r\n <ng-container [ngTemplateOutlet]=\"col.headerDef?.template\"></ng-container>\r\n } @else {\r\n @if (col.headerKey) {\r\n <span class=\"solaris-table__header-text\">{{ col.headerKey | translate }}</span>\r\n } @else {\r\n <span class=\"solaris-table__header-text\">{{ col.header }}</span>\r\n }\r\n }\r\n </span>\r\n\r\n @if (col.sortable) {\r\n <button type=\"button\" class=\"solaris-table__sort-btn\" (click)=\"onHeaderSortClick($event, col)\">\r\n <span class=\"solaris-table__sort\">\r\n <i class=\"ph ph-arrow-up\" [class.is-active]=\"getSortFor(col)?.direction === 'asc'\"></i>\r\n <i class=\"ph ph-arrow-down\" [class.is-active]=\"getSortFor(col)?.direction === 'desc'\"></i>\r\n\r\n @if (getSortFor(col)?.order && sortState().length > 1) {\r\n <span class=\"solaris-table__sort-order\">{{ getSortFor(col)!.order }}</span>\r\n }\r\n </span>\r\n </button>\r\n }\r\n </div>\r\n\r\n @if (col.resizable && !col.width) {\r\n <span class=\"solaris-table__col-resizer\" role=\"separator\" aria-orientation=\"vertical\"\r\n (pointerdown)=\"onResizeStart($event, i)\" (dblclick)=\"clearManualWidth(i)\"\r\n (click)=\"$event.stopPropagation()\">\r\n </span>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"solaris-table__body\" role=\"rowgroup\">\r\n @if (loading) {\r\n <solaris-table-skeleton [rows]=\"pageSize\" [columns]=\"columns().length\" [selectable]=\"selectable\"\r\n [gridTemplateColumns]=\"gridTemplateColumns()\">\r\n </solaris-table-skeleton>\r\n } @else {\r\n @if (rowsCount === 0) {\r\n <div class=\"solaris-table__empty\" role=\"row\">\r\n <i [class]=\"emptyIconClass\"></i>\r\n <div class=\"solaris-table__empty-text\">{{ 'ui.solaris.tables.empty' | translate }}</div>\r\n </div>\r\n } @else {\r\n <ng-content select=\"solaris-row\"></ng-content>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"solaris-table__footer\" role=\"rowgroup\">\r\n <div class=\"solaris-table__footer-left\">\r\n @if (selectedCount() > 0) {\r\n <div class=\"solaris-table__selected\">\r\n {{ selectedCount() }} {{ 'ui.solaris.tables.selection.selected' | translate }}\r\n </div>\r\n } @else if (tableDescription != null) {\r\n <div class=\"solaris-table__description\">\r\n {{ tableDescription }}\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"solaris-table__footer-right\">\r\n <div class=\"solaris-table__rows-per-page\">\r\n <span>{{ 'ui.solaris.tables.pagination.rowsPerPage' | translate }}:</span>\r\n <select [ngModel]=\"pageSize\" (ngModelChange)=\"changePageSize($event)\">\r\n @for (opt of pageSizeOptions; track opt) {\r\n <option [ngValue]=\"opt\">{{ opt }}</option>\r\n }\r\n </select>\r\n </div>\r\n\r\n <div class=\"solaris-table__range\">\r\n {{ rangeStart }}–{{ rangeEnd }} {{ 'ui.solaris.common.of' | translate }} {{ length }}\r\n </div>\r\n\r\n <div class=\"solaris-table__pager\">\r\n <button type=\"button\" (click)=\"firstPage()\" [disabled]=\"pageIndex === 0\">\r\n <i class=\"ph ph-caret-line-left\"></i>\r\n </button>\r\n <button type=\"button\" (click)=\"prevPage()\" [disabled]=\"pageIndex === 0\">\r\n <i class=\"ph ph-caret-left\"></i>\r\n </button>\r\n <button type=\"button\" (click)=\"nextPage()\" [disabled]=\"pageIndex >= totalPages - 1\">\r\n <i class=\"ph ph-caret-right\"></i>\r\n </button>\r\n <button type=\"button\" (click)=\"lastPage()\" [disabled]=\"pageIndex >= totalPages - 1\">\r\n <i class=\"ph ph-caret-line-right\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, DestroyRef, Host, Input, OnInit, Optional, inject } from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { SolarisCheckbox } from '../../../../actions/checkbox/component/checkbox';\r\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\r\nimport { SolarisRowKey } from '../../model/table/table.types';\r\nimport { SolarisTable } from '../table/table';\r\n\r\n@Component({\r\n selector: 'solaris-row',\r\n standalone: true,\r\n imports: [\r\n FormsModule,\r\n SolarisCheckbox,\r\n SolarisTranslationPipe,\r\n NgTemplateOutlet\r\n ],\r\n templateUrl: './table-row.html',\r\n styleUrls: ['./table-row.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'solaris-row-host' },\r\n})\r\nexport class SolarisRowComponent implements OnInit {\r\n private readonly destroyRef = inject(DestroyRef);\r\n\r\n @Input() rowKey!: SolarisRowKey;\r\n @Input({ required: true }) value!: any;\r\n\r\n\r\n constructor(@Optional() @Host() public readonly table: SolarisTable) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.table) {\r\n throw new Error('<solaris-row> deve ser usado dentro de <solaris-table>.');\r\n }\r\n\r\n if (this.table.selectable && (this.rowKey === null || this.rowKey === undefined)) {\r\n throw new Error('Quando selectable=true, <solaris-row> exige [rowKey].');\r\n }\r\n\r\n if (this.table.selectable) {\r\n this.table.registerRowKey(this.rowKey);\r\n this.destroyRef.onDestroy(() => this.table.unregisterRowKey(this.rowKey));\r\n }\r\n }\r\n\r\n get isSelected(): boolean {\r\n return this.table.isSelected(this.rowKey);\r\n }\r\n}\r\n","<div class=\"solaris-row\" role=\"row\" [attr.aria-selected]=\"isSelected\" [class.is-selected]=\"isSelected\"\r\n [style.gridTemplateColumns]=\"table.gridTemplateColumns()\">\r\n\r\n @for (col of table.columns(); track col.id; let i = $index) {\r\n <div class=\"solaris-row__cell\" role=\"cell\" [attr.data-col-idx]=\"i\" [class.align-end]=\"col.align === 'end'\"\r\n [class.align-center]=\"col.align === 'center'\" [style.--solaris-col-max]=\"col.maxWidth || null\">\r\n\r\n @if (table.selectable && i === 0) {\r\n <span class=\"solaris-row__select-prefix\">\r\n <solaris-checkbox variant=\"square\" color=\"primary\" size=\"sm\" [ngModel]=\"isSelected\"\r\n (ngModelChange)=\"table.toggleRow(rowKey, $event)\" [attr.aria-label]=\"'ui.solaris.tables.aria.selectRow' | translate\"/>\r\n </span>\r\n }\r\n\r\n <span class=\"solaris-row__label\">\r\n @if (col.headerKey) { {{ col.headerKey | translate }} } @else { {{ col.header }} }\r\n </span>\r\n\r\n <span class=\"solaris-row__content\">\r\n @if (col.cellDef?.template) {\r\n <ng-container [ngTemplateOutlet]=\"col.cellDef!.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: value, row: value, col: col }\"/>\r\n } @else {\r\n {{ table.readField(value, col.field) }}\r\n }\r\n </span>\r\n </div>\r\n }\r\n</div>\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[solaris-header]',\r\n standalone: true,\r\n})\r\nexport class SolarisHeaderDirective {}\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[solaris-footer]',\r\n standalone: true,\r\n})\r\nexport class SolarisFooterDirective {}\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[solaris-body]',\r\n standalone: true,\r\n})\r\nexport class SolarisBodyDirective {}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\n\r\nimport { SolarisDivider } from '../../divider/component/divider';\r\n\r\n@Component({\r\n selector: 'solaris-page',\r\n standalone: true,\r\n imports: [NgClass, SolarisDivider],\r\n templateUrl: './page.html',\r\n styleUrls: ['./page.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'solaris-page-host',\r\n },\r\n})\r\nexport class SolarisPage {\r\n @Input() stickyHeader = false;\r\n @Input() container: 'contained' | 'fluid' = 'contained';\r\n}\r\n","<div class=\"solaris-page\" [ngClass]=\"['container-' + container]\">\r\n <header class=\"solaris-page__header\" [ngClass]=\"{ 'is-sticky': stickyHeader }\">\r\n <ng-content select=\"[solaris-header]\"></ng-content>\r\n @if (stickyHeader) { <solaris-divider class=\"solaris-page__header-divider\"/> }\r\n </header>\r\n\r\n <main class=\"solaris-page__body\">\r\n <ng-content select=\"[solaris-body]\"></ng-content>\r\n </main>\r\n\r\n <footer class=\"solaris-page__footer\">\r\n <solaris-divider class=\"solaris-page__footer-divider\"/>\r\n\r\n <div class=\"solaris-page__footer-content\">\r\n <ng-content select=\"[solaris-footer]\"></ng-content>\r\n </div>\r\n </footer>\r\n</div>\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[solaris-page-header-description]',\r\n standalone: true,\r\n})\r\nexport class SolarisPageHeaderDescriptionDirective {}\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[solaris-page-header-breadcrumb]',\r\n standalone: true,\r\n})\r\nexport class SolarisPageHeaderBreadcrumbDirective {}\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[solaris-page-header-title]',\r\n standalone: true,\r\n})\r\nexport class SolarisPageHeaderTitleDirective {}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'solaris-page-header-title',\r\n standalone: true,\r\n imports: [NgClass],\r\n templateUrl: './page-header-title.html',\r\n styleUrl: './page-header-title.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisPageHeaderTitle {\r\n @Input() title = '';\r\n @Input() overline?: string;\r\n @Input() description?: string;\r\n @Input() size: 'md' | 'lg' = 'lg';\r\n}\r\n","<div class=\"solaris-page-title\" [ngClass]=\"['size-' + size]\">\r\n @if (overline) {\r\n <div class=\"solaris-page-title__overline\">{{ overline }}</div>\r\n }\r\n\r\n <h1 class=\"solaris-page-title__title\">{{ title }}</h1>\r\n\r\n @if (description) {\r\n <p class=\"solaris-page-title__description\">{{ description }}</p>\r\n }\r\n</div>\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[solaris-page-header-actions]',\r\n standalone: true,\r\n})\r\nexport class SolarisPageHeaderActionsDirective {}\r\n","import { ChangeDetectionStrategy, Component, ContentChild, Input } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\n\r\nimport { SolarisPageHeaderDescriptionDirective } from '../directives/solaris-header-description.directive';\r\nimport { SolarisPageHeaderBreadcrumbDirective } from '../directives/solaris-header-breadcrumb.directive';\r\nimport { SolarisPageHeaderActionsDirective } from '../directives/solaris-header-actions.directive';\r\nimport { SolarisPageHeaderTitleDirective } from '../directives/solaris-header-title.directive';\r\n\r\n\r\n@Component({\r\n selector: 'solaris-page-header',\r\n standalone: true,\r\n imports: [NgClass],\r\n templateUrl: './page-header.html',\r\n styleUrl: './page-header.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisPageHeader {\r\n @Input() layout: 'split' | 'stacked' = 'split';\r\n @Input() density: 'sm' | 'md' | 'lg' = 'md';\r\n\r\n @ContentChild(SolarisPageHeaderTitleDirective) titleSlot?: SolarisPageHeaderTitleDirective;\r\n @ContentChild(SolarisPageHeaderActionsDirective) actionsSlot?: SolarisPageHeaderActionsDirective;\r\n @ContentChild(SolarisPageHeaderBreadcrumbDirective) breadcrumbSlot?: SolarisPageHeaderBreadcrumbDirective;\r\n @ContentChild(SolarisPageHeaderDescriptionDirective) descriptionSlot?: SolarisPageHeaderDescriptionDirective;\r\n}\r\n","<header class=\"solaris-page-header\" [ngClass]=\"['layout-' + layout, 'density-' + density]\">\r\n <div class=\"solaris-page-header__left\">\r\n <div class=\"solaris-page-header__breadcrumb\">\r\n <ng-content select=\"[solaris-page-header-breadcrumb]\" />\r\n </div>\r\n\r\n <div class=\"solaris-page-header__titles\">\r\n <div class=\"solaris-page-header__title-row\">\r\n <h1 class=\"solaris-page-header__title\">\r\n <span class=\"solaris-page-header__title-slot\">\r\n <ng-content select=\"[solaris-page-header-title]\" />\r\n </span>\r\n\r\n <span class=\"solaris-page-header__title-meta\">\r\n <ng-content select=\"[solaris-page-header-title-meta]\" />\r\n </span>\r\n </h1>\r\n\r\n <div class=\"solaris-page-header__title-meta\">\r\n <ng-content select=\"[solaris-page-header-title-meta]\" />\r\n </div>\r\n </div>\r\n\r\n <p class=\"solaris-page-header__description\">\r\n <ng-content select=\"[solaris-page-header-description]\" />\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"solaris-page-header__actions\">\r\n <ng-content select=\"[solaris-page-header-actions]\" />\r\n </div>\r\n</header>\r\n","import { Directive, HostBinding, Input } from '@angular/core';\r\n\r\nimport { SolarisRadiusInput } from '../models/button.type';\r\n\r\nfunction resolveRadius(v: SolarisRadiusInput): string {\r\n const s = String(v).trim();\r\n switch (s) {\r\n case 'none':\r\n return '0';\r\n case 'sm':\r\n return 'var(--solaris-radius-sm)';\r\n case 'md':\r\n return 'var(--solaris-radius-md, var(--solaris-radius-sm))';\r\n case 'lg':\r\n return 'var(--solaris-radius-lg, var(--solaris-radius-md, var(--solaris-radius-sm)))';\r\n case 'full':\r\n return 'var(--solaris-radius-full)';\r\n default:\r\n return s;\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[solaris-button-group]',\r\n standalone: true,\r\n})\r\nexport class ButtonGroupDirective {\r\n private _radius: SolarisRadiusInput | null = null;\r\n\r\n @Input() set radius(v: SolarisRadiusInput | null | undefined) {\r\n this._radius = v == null || String(v).trim() === '' ? null : (v);\r\n }\r\n\r\n @HostBinding('attr.solaris-button-group') readonly attr = '';\r\n @HostBinding('style.--solaris-button-group-radius') get groupRadius() {\r\n return this._radius ? resolveRadius(this._radius) : null;\r\n }\r\n}\r\n","import { InjectionToken, Signal } from '@angular/core';\r\n\r\nimport { RadioCompareWith } from '../model/radio.type';\r\nimport { SolarisRadio } from '../component/radio';\r\n\r\nexport interface SolarisRadioGroupApi {\r\n readonly name: Signal<string>;\r\n readonly disabled: Signal<boolean>;\r\n readonly compareWith: Signal<RadioCompareWith>;\r\n\r\n notifyTouched(): void;\r\n select(radio: SolarisRadio): void;\r\n isSelected(value: unknown): boolean;\r\n tabIndexFor(radio: SolarisRadio): number;\r\n handleKeydown(event: KeyboardEvent, current: SolarisRadio): void;\r\n}\r\n\r\nexport const SOLARIS_RADIO_GROUP = new InjectionToken<SolarisRadioGroupApi>('SOLARIS_RADIO_GROUP');\r\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewChild, computed,\r\n effect, inject, input, output, signal, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nimport { SolarisSizePreset, SolarisColorPreset } from '../../../common/model/common-configurations.type';\r\nimport { RadioAppearance, RadioColorInput, RadioVariant } from '../model/radio.type';\r\nimport { SOLARIS_RADIO_GROUP } from '../token/radio-group.token';\r\nimport { uniqueId } from '../../../common/helper/unique-id';\r\n\r\nconst PRESET_COLORS = new Set<SolarisColorPreset>([\r\n 'primary',\r\n 'success',\r\n 'warning',\r\n 'error',\r\n 'info'\r\n]);\r\n\r\n@Component({\r\n selector: 'solaris-radio',\r\n standalone: true,\r\n templateUrl: './radio.html',\r\n styleUrls: ['./radio.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SolarisRadio),\r\n multi: true,\r\n },\r\n ],\r\n host: {\r\n class: 'solaris-radio-host',\r\n '[attr.data-size]': 'size()',\r\n '[attr.data-color]': 'colorKey()',\r\n '[attr.data-variant]': 'variant()',\r\n '[attr.data-appearance]': 'appearance()',\r\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\r\n '[attr.data-checked]': 'checked() ? \"true\" : null',\r\n '[style.--solaris-radio-custom]': 'customAccent()',\r\n },\r\n})\r\nexport class SolarisRadio implements ControlValueAccessor {\r\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\r\n readonly inputId = input<string | null>(null, { alias: 'id' });\r\n readonly inputName = input<string | null>(null, { alias: 'name' });\r\n readonly size = input<SolarisSizePreset>('md');\r\n readonly variant = input<RadioVariant>('dot');\r\n readonly appearance = input<RadioAppearance>('solid');\r\n readonly color = input<RadioColorInput>('primary');\r\n readonly value = input<unknown>(true);\r\n readonly checkedInput = input<boolean>(false, { alias: 'checked' });\r\n readonly disabledInput = input<boolean>(false, { alias: 'disabled' });\r\n\r\n readonly checkedChange = output<boolean>();\r\n\r\n @ViewChild('native', { static: true })\r\n private readonly native?: ElementRef<HTMLInputElement>;\r\n\r\n private readonly group = inject(SOLARIS_RADIO_GROUP, { optional: true });\r\n private readonly autoId = uniqueId('solaris-radio');\r\n private readonly autoName = uniqueId('solaris-radio-name');\r\n\r\n private readonly localChecked = signal(false);\r\n private readonly cvaDisabled = signal(false);\r\n\r\n readonly id = computed(() => this.inputId() ?? this.autoId);\r\n readonly name = computed(() => this.group?.name() ?? this.inputName() ?? this.autoName);\r\n\r\n readonly disabled = computed(() => {\r\n return !!this.group?.disabled() || this.disabledInput() || this.cvaDisabled();\r\n });\r\n\r\n readonly checked = computed(() => {\r\n if (this.group) return this.group.isSelected(this.value());\r\n return this.localChecked();\r\n });\r\n\r\n readonly tabIndex = computed(() => {\r\n if (this.group) return this.group.tabIndexFor(this);\r\n return this.disabled() ? -1 : 0;\r\n });\r\n\r\n readonly customAccent = computed(() => {\r\n if (this.colorKey() !== 'custom') return null;\r\n const raw = String(this.color() ?? '').trim();\r\n return !raw || raw === 'custom' ? null : raw;\r\n });\r\n\r\n readonly colorKey = computed(() => {\r\n const raw = String(this.color() ?? '').trim();\r\n if (!raw || raw === 'custom') return 'custom';\r\n return PRESET_COLORS.has(raw as SolarisColorPreset) ? (raw as SolarisColorPreset) : 'custom';\r\n });\r\n\r\n private onChange: (value: boolean) => void = () => {};\r\n private onTouched: () => void = () => {};\r\n\r\n constructor() {\r\n effect(() => {\r\n if (this.group) return;\r\n this.localChecked.set(this.checkedInput());\r\n });\r\n }\r\n\r\n public onNativeChange() {\r\n if (this.disabled()) return;\r\n\r\n if (this.group) {\r\n const wasChecked = this.checked();\r\n this.group.select(this);\r\n if (!wasChecked) this.checkedChange.emit(true);\r\n return;\r\n }\r\n\r\n if (this.localChecked()) {\r\n this.onTouched();\r\n return;\r\n }\r\n\r\n this.localChecked.set(true);\r\n this.onChange(true);\r\n this.checkedChange.emit(true);\r\n this.onTouched();\r\n }\r\n\r\n public onNativeKeydown(event: KeyboardEvent) {\r\n if (this.disabled()) return;\r\n\r\n if (this.group) {\r\n this.group.handleKeydown(event, this);\r\n return;\r\n }\r\n\r\n if (event.key === ' ' || event.key === 'Enter') {\r\n event.preventDefault();\r\n this.onNativeChange();\r\n }\r\n }\r\n\r\n public onBlur() {\r\n if (this.group) {\r\n this.group.notifyTouched();\r\n return;\r\n }\r\n this.onTouched();\r\n }\r\n\r\n public focus() {\r\n this.native?.nativeElement.focus();\r\n }\r\n\r\n writeValue(value: boolean | null): void {\r\n if (this.group) return;\r\n this.localChecked.set(!!value);\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.cvaDisabled.set(isDisabled);\r\n }\r\n\r\n registerOnChange(fn: (value: boolean) => void): void {\r\n this.onChange = fn;\r\n }\r\n}\r\n","<label class=\"solaris-radio\">\r\n <input #native class=\"solaris-radio__native\" type=\"radio\" [attr.id]=\"id()\" [attr.name]=\"name()\" [checked]=\"checked()\"\r\n [disabled]=\"disabled()\" [attr.aria-label]=\"ariaLabel() ?? null\" [attr.tabindex]=\"tabIndex()\"\r\n (change)=\"onNativeChange()\" (keydown)=\"onNativeKeydown($event)\" (blur)=\"onBlur()\"/>\r\n\r\n <span class=\"solaris-radio__control\" aria-hidden=\"true\">\r\n <span class=\"solaris-radio__inner\" aria-hidden=\"true\"></span>\r\n </span>\r\n\r\n <span class=\"solaris-radio__content\">\r\n <ng-content/>\r\n </span>\r\n</label>\r\n","import { AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, DestroyRef,\r\n QueryList, computed, forwardRef, inject, input, output, signal } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nimport { SOLARIS_RADIO_GROUP, SolarisRadioGroupApi } from '../../token/radio-group.token';\r\nimport { SolarisSizePreset } from '../../../../common/model/common-configurations.type';\r\nimport { RadioCompareWith, RadioGroupOrientation } from '../../model/radio.type';\r\nimport { uniqueId } from '../../../../common/helper/unique-id';\r\nimport { SolarisRadio } from '../../component/radio';\r\n\r\n@Component({\r\n selector: 'solaris-radio-group',\r\n standalone: true,\r\n templateUrl: './radio-group.html',\r\n styleUrls: ['./radio-group.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SolarisRadioGroup),\r\n multi: true,\r\n },\r\n {\r\n provide: SOLARIS_RADIO_GROUP,\r\n useExisting: forwardRef(() => SolarisRadioGroup),\r\n },\r\n ],\r\n host: {\r\n class: 'solaris-radio-group-host',\r\n role: 'radiogroup',\r\n '[attr.data-orientation]': 'orientation()',\r\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\r\n '[attr.aria-label]': 'ariaLabel() ?? null',\r\n '[attr.aria-orientation]': 'orientation()',\r\n '[style.--solaris-radio-group-gap]': 'resolvedGap()',\r\n },\r\n})\r\nexport class SolarisRadioGroup implements ControlValueAccessor, AfterContentInit, SolarisRadioGroupApi {\r\n readonly gap = input<SolarisSizePreset | string>('md');\r\n readonly compareWith = input<RadioCompareWith>(Object.is);\r\n readonly nameInput = input<string | null>(null, { alias: 'name' });\r\n readonly disabledInput = input<boolean>(false, { alias: 'disabled' });\r\n readonly orientation = input<RadioGroupOrientation>('vertical');\r\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\r\n\r\n readonly valueChange = output<unknown>();\r\n\r\n @ContentChildren(forwardRef(() => SolarisRadio), { descendants: true })\r\n private readonly radiosQuery?: QueryList<SolarisRadio>;\r\n\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly autoName = uniqueId('solaris-radio-group');\r\n private readonly cvaDisabled = signal(false);\r\n private readonly internalValue = signal<unknown>(null);\r\n private readonly radiosVersion = signal(0);\r\n\r\n readonly name = computed(() => this.nameInput() ?? this.autoName);\r\n readonly disabled = computed(() => this.disabledInput() || this.cvaDisabled());\r\n\r\n readonly resolvedGap = computed(() => {\r\n const value = String(this.gap() ?? 'md').trim();\r\n switch (value) {\r\n case 'sm':\r\n return 'var(--solaris-space-2)';\r\n case 'md':\r\n return 'var(--solaris-space-3)';\r\n case 'lg':\r\n return 'var(--solaris-space-4)';\r\n default:\r\n return value;\r\n }\r\n });\r\n\r\n private onChange: (value: unknown) => void = () => {};\r\n private onTouched: () => void = () => {};\r\n\r\n ngAfterContentInit(): void {\r\n this.bumpRadiosVersion();\r\n\r\n this.radiosQuery?.changes\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => this.bumpRadiosVersion());\r\n }\r\n\r\n public isSelected(value: unknown): boolean {\r\n return this.compareWith()(this.internalValue(), value);\r\n }\r\n\r\n public select(radio: SolarisRadio): void {\r\n if (this.disabled() || radio.disabled()) return;\r\n\r\n const nextValue = radio.value();\r\n if (!this.isSelected(nextValue)) {\r\n this.internalValue.set(nextValue);\r\n this.onChange(nextValue);\r\n this.valueChange.emit(nextValue);\r\n }\r\n\r\n this.onTouched();\r\n this.bumpRadiosVersion();\r\n }\r\n\r\n public tabIndexFor(radio: SolarisRadio): number {\r\n this.radiosVersion();\r\n\r\n if (this.disabled() || radio.disabled()) return -1;\r\n\r\n const enabled = this.enabledRadios();\r\n if (!enabled.length) return -1;\r\n\r\n const selected = enabled.find(item => this.isSelected(item.value()));\r\n const target = selected ?? enabled[0];\r\n\r\n return target === radio ? 0 : -1;\r\n }\r\n\r\n public handleKeydown(event: KeyboardEvent, current: SolarisRadio): void {\r\n if (this.disabled()) return;\r\n\r\n switch (event.key) {\r\n case 'ArrowRight':\r\n case 'ArrowDown':\r\n event.preventDefault();\r\n this.move(current, +1);\r\n break;\r\n case 'ArrowLeft':\r\n case 'ArrowUp':\r\n event.preventDefault();\r\n this.move(current, -1);\r\n break;\r\n case ' ':\r\n case 'Enter':\r\n event.preventDefault();\r\n this.select(current);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n public notifyTouched(): void {\r\n this.onTouched();\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n this.internalValue.set(value);\r\n this.bumpRadiosVersion();\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.cvaDisabled.set(isDisabled);\r\n this.bumpRadiosVersion();\r\n }\r\n\r\n registerOnChange(fn: (value: unknown) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n private move(current: SolarisRadio, direction: 1 | -1): void {\r\n const enabled = this.enabledRadios();\r\n if (!enabled.length) return;\r\n\r\n const currentIndex = enabled.indexOf(current);\r\n const startIndex = Math.max(currentIndex, 0);\r\n const nextIndex = (startIndex + direction + enabled.length) % enabled.length;\r\n const next = enabled[nextIndex];\r\n\r\n this.select(next);\r\n next.focus();\r\n }\r\n\r\n private enabledRadios(): SolarisRadio[] {\r\n this.radiosVersion();\r\n return (this.radiosQuery?.toArray() ?? []).filter(radio => !radio.disabled());\r\n }\r\n\r\n private bumpRadiosVersion(): void {\r\n this.radiosVersion.update(value => value + 1);\r\n }\r\n}\r\n","<ng-content/>\r\n","import { InjectionToken, Signal } from '@angular/core';\r\n\r\nimport { CardGroupSelectionMode } from '../model/card-group.type';\r\n\r\nexport interface SolarisSelectionCardHandle {\r\n value(): unknown;\r\n disabled(): boolean;\r\n focus(): void;\r\n}\r\n\r\nexport interface SolarisCardGroupApi {\r\n readonly disabled: Signal<boolean>;\r\n readonly selectionMode: Signal<CardGroupSelectionMode>;\r\n\r\n isSelected(value: unknown): boolean;\r\n activate(card: SolarisSelectionCardHandle): void;\r\n tabIndexFor(card: SolarisSelectionCardHandle): number;\r\n handleKeydown(event: KeyboardEvent, current: SolarisSelectionCardHandle): void;\r\n notifyTouched(): void;\r\n}\r\n\r\nexport const SOLARIS_CARD_GROUP = new InjectionToken<SolarisCardGroupApi>('SOLARIS_CARD_GROUP');\r\n","import { ChangeDetectionStrategy, Component, booleanAttribute, computed, input } from '@angular/core';\r\n\r\nimport { CardOrientation, CardRadiusInput, CardSize } from '../model/cards.type';\r\n\r\n@Component({\r\n selector: 'solaris-card',\r\n standalone: true,\r\n templateUrl: './card.html',\r\n styleUrls: ['./card.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'solaris-card-host',\r\n '[attr.data-size]': 'size()',\r\n '[attr.data-orientation]': 'orientation()',\r\n '[attr.data-interactive]': 'interactive() ? \"true\" : null',\r\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\r\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\r\n '[style.--solaris-card-radius]': 'resolvedRadius()',\r\n },\r\n})\r\nexport class SolarisCard {\r\n readonly size = input<CardSize>('md');\r\n readonly orientation = input<CardOrientation>('vertical');\r\n readonly radius = input<CardRadiusInput | null>(null);\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n readonly interactive = input(false, { transform: booleanAttribute });\r\n\r\n readonly resolvedRadius = computed(() => resolveRadius(this.radius()));\r\n}\r\n\r\nfunction resolveRadius(v: CardRadiusInput | null | undefined): string | null {\r\n const value = v == null || String(v).trim() === '' ? null : String(v).trim();\r\n if (!value) return null;\r\n\r\n switch (value) {\r\n case 'none':\r\n return '0';\r\n case 'sm':\r\n return 'var(--solaris-radius-sm)';\r\n case 'md':\r\n return 'var(--solaris-radius-md, var(--solaris-radius-sm))';\r\n case 'lg':\r\n return 'var(--solaris-radius-lg, var(--solaris-radius-md, var(--solaris-radius-sm)))';\r\n case 'full':\r\n return 'var(--solaris-radius-full)';\r\n default:\r\n return value;\r\n }\r\n}\r\n","<article class=\"solaris-card\">\r\n <div class=\"solaris-card__media\">\r\n <ng-content select=\"[solaris-card-media]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"solaris-card__content\">\r\n <div class=\"solaris-card__header\">\r\n <div class=\"solaris-card__header-main\">\r\n <div class=\"solaris-card__eyebrow\">\r\n <ng-content select=\"[solaris-card-eyebrow]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"solaris-card__title\">\r\n <ng-content select=\"[solaris-card-title]\"></ng-content>\r\n </div>\r\n </div>\r\n\r\n <div class=\"solaris-card__badge\">\r\n <ng-content select=\"[solaris-card-badge]\"></ng-content>\r\n </div>\r\n </div>\r\n\r\n <div class=\"solaris-card__description\">\r\n <ng-content select=\"[solaris-card-description]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"solaris-card__meta\">\r\n <ng-content select=\"[solaris-card-meta]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"solaris-card__footer\">\r\n <div class=\"solaris-card__footer-main\">\r\n <ng-content select=\"[solaris-card-footer]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"solaris-card__actions\">\r\n <ng-content select=\"[solaris-card-actions]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</article>\r\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, effect, ElementRef,\r\n inject, input, output, signal } from '@angular/core';\r\n\r\n\r\nimport { ResolvedSelectionCardIndicator, SelectionCardAppearance, SelectionCardColorInput,\r\n SelectionCardIndicator, SelectionCardOrientation, SelectionCardRadiusInput, SelectionCardSize } from '../model/selection-card.type';\r\nimport { SOLARIS_CARD_GROUP, SolarisSelectionCardHandle } from '../../cards-group/token/card-group.token';\r\nimport { SolarisColorPreset } from '../../../../common/model/common-configurations.type';\r\nimport { CardGroupSelectionMode } from '../../cards-group/model/card-group.type';\r\nimport { SolarisCard } from '../../card/component/card';\r\n\r\nconst PRESET_COLORS = new Set<SolarisColorPreset>([\r\n 'primary',\r\n 'success',\r\n 'warning',\r\n 'error',\r\n 'info',\r\n]);\r\n\r\n@Component({\r\n selector: 'solaris-selection-card',\r\n standalone: true,\r\n imports: [SolarisCard],\r\n templateUrl: './selection-card.html',\r\n styleUrls: ['./selection-card.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'solaris-selection-card-host',\r\n '[attr.data-size]': 'size()',\r\n '[attr.data-orientation]': 'orientation()',\r\n '[attr.data-selected]': 'selected() ? \"true\" : null',\r\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\r\n '[attr.data-invalid]': 'invalid() ? \"true\" : null',\r\n '[attr.data-appearance]': 'appearance()',\r\n '[attr.data-color]': 'colorKey()',\r\n '[attr.data-indicator]': 'resolvedIndicator()',\r\n '[attr.role]': 'role()',\r\n '[attr.aria-checked]': 'ariaChecked()',\r\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\r\n '[attr.tabindex]': 'tabIndex()',\r\n '[style.--solaris-selection-card-custom]': 'customAccent()',\r\n '(click)': 'onHostClick($event)',\r\n '(keydown)': 'onHostKeydown($event)',\r\n '(blur)': 'onHostBlur()',\r\n },\r\n})\r\nexport class SolarisSelectionCard implements SolarisSelectionCardHandle {\r\n readonly value = input<unknown>(null);\r\n readonly size = input<SelectionCardSize>('md');\r\n readonly color = input<SelectionCardColorInput>('primary');\r\n readonly orientation = input<SelectionCardOrientation>('vertical');\r\n readonly radius = input<SelectionCardRadiusInput | null>(null);\r\n readonly appearance = input<SelectionCardAppearance>('outline');\r\n readonly selectionIndicator = input<SelectionCardIndicator>('auto');\r\n readonly invalid = input(false, { transform: booleanAttribute });\r\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\r\n readonly selectedInput = input(false, { alias: 'selected', transform: booleanAttribute });\r\n\r\n readonly selectedChange = output<boolean>();\r\n readonly cardClick = output<MouseEvent>();\r\n\r\n private readonly elementRef = inject(ElementRef<HTMLElement>);\r\n private readonly group = inject(SOLARIS_CARD_GROUP, { optional: true });\r\n\r\n private readonly localSelected = signal(false);\r\n\r\n readonly disabled = computed(() => {\r\n return !!this.group?.disabled() || this.disabledInput();\r\n });\r\n\r\n readonly selected = computed(() => {\r\n if (this.group) return this.group.isSelected(this.value());\r\n return this.localSelected();\r\n });\r\n\r\n readonly resolvedMode = computed<CardGroupSelectionMode>(() => {\r\n if (this.group) return this.group.selectionMode();\r\n return inferStandaloneMode(this.selectionIndicator());\r\n });\r\n\r\n public onHostBlur() {\r\n this.group?.notifyTouched();\r\n }\r\n\r\n readonly resolvedIndicator = computed<ResolvedSelectionCardIndicator>(() => {\r\n const requested = this.selectionIndicator();\r\n if (requested !== 'auto') return requested;\r\n\r\n switch (this.resolvedMode()) {\r\n case 'single':\r\n return 'radio';\r\n case 'multiple':\r\n return 'checkbox';\r\n case 'none':\r\n default:\r\n return 'none';\r\n }\r\n });\r\n\r\n readonly tabIndex = computed(() => {\r\n if (this.disabled()) return -1;\r\n if (this.group) return this.group.tabIndexFor(this);\r\n return 0;\r\n });\r\n\r\n readonly role = computed(() => {\r\n switch (this.resolvedMode()) {\r\n case 'single':\r\n return 'radio';\r\n case 'multiple':\r\n return 'checkbox';\r\n case 'none':\r\n default:\r\n return 'button';\r\n }\r\n });\r\n\r\n readonly ariaChecked = computed(() => {\r\n if (this.resolvedMode() === 'none') return null;\r\n return this.selected() ? 'true' : 'false';\r\n });\r\n\r\n readonly customAccent = computed(() => {\r\n if (this.colorKey() !== 'custom') return null;\r\n const raw = String(this.color() ?? '').trim();\r\n return !raw || raw === 'custom' ? null : raw;\r\n });\r\n\r\n readonly colorKey = computed(() => {\r\n const raw = String(this.color() ?? '').trim();\r\n if (!raw || raw === 'custom') return 'custom';\r\n return PRESET_COLORS.has(raw as SolarisColorPreset) ? (raw as SolarisColorPreset) : 'custom';\r\n });\r\n\r\n constructor() {\r\n effect(() => {\r\n if (this.group) return;\r\n this.localSelected.set(this.selectedInput());\r\n });\r\n }\r\n\r\n public focus() {\r\n this.elementRef.nativeElement.focus();\r\n }\r\n\r\n public onHostClick(event: MouseEvent) {\r\n if (this.isActionZone(event.target)) return;\r\n\r\n this.cardClick.emit(event);\r\n\r\n if (this.disabled()) return;\r\n\r\n const previous = this.selected();\r\n\r\n if (this.group) {\r\n this.group.activate(this);\r\n if (previous !== this.selected()) this.selectedChange.emit(this.selected());\r\n return;\r\n }\r\n\r\n const next = this.activateStandalone();\r\n if (next !== previous) this.selectedChange.emit(next);\r\n }\r\n\r\n public onHostKeydown(event: KeyboardEvent) {\r\n if (this.disabled()) return;\r\n\r\n if (this.group) {\r\n this.group.handleKeydown(event, this);\r\n return;\r\n }\r\n\r\n if (event.key === ' ' || event.key === 'Enter') {\r\n event.preventDefault();\r\n const previous = this.selected();\r\n const next = this.activateStandalone();\r\n if (next !== previous) this.selectedChange.emit(next);\r\n }\r\n }\r\n\r\n private activateStandalone(): boolean {\r\n switch (this.resolvedMode()) {\r\n case 'single':\r\n if (!this.localSelected()) this.localSelected.set(true);\r\n return this.localSelected();\r\n\r\n case 'multiple':\r\n this.localSelected.update(value => !value);\r\n return this.localSelected();\r\n\r\n case 'none':\r\n default:\r\n return this.localSelected();\r\n }\r\n }\r\n\r\n private isActionZone(target: EventTarget | null): boolean {\r\n return target instanceof HTMLElement && !!target.closest('[data-card-actions=\"true\"]');\r\n }\r\n}\r\n\r\nfunction inferStandaloneMode(indicator: SelectionCardIndicator): CardGroupSelectionMode {\r\n switch (indicator) {\r\n case 'radio':\r\n return 'single';\r\n case 'checkbox':\r\n case 'icon':\r\n case 'auto':\r\n default:\r\n return 'multiple';\r\n }\r\n}\r\n","<div class=\"solaris-selection-card\">\r\n @if (resolvedIndicator() !== 'none') {\r\n <span class=\"solaris-selection-card__indicator\" aria-hidden=\"true\">\r\n <span class=\"solaris-selection-card__indicator-control\">\r\n @switch (resolvedIndicator()) {\r\n @case ('radio') {\r\n <span class=\"solaris-selection-card__indicator-dot\"></span>\r\n }\r\n @case ('checkbox') {\r\n <i class=\"ph ph-check solaris-selection-card__indicator-check\"></i>\r\n }\r\n @case ('icon') {\r\n <span class=\"solaris-selection-card__indicator-icon-dot\"></span>\r\n }\r\n }\r\n </span>\r\n </span>\r\n }\r\n\r\n <solaris-card\r\n class=\"solaris-selection-card__card\"\r\n [orientation]=\"orientation()\"\r\n [size]=\"size()\"\r\n [radius]=\"radius()\"\r\n [interactive]=\"!disabled()\"\r\n [disabled]=\"disabled()\">\r\n\r\n <div ngProjectAs=\"[solaris-card-media]\">\r\n <ng-content select=\"[solaris-card-media]\"></ng-content>\r\n </div>\r\n\r\n <div ngProjectAs=\"[solaris-card-eyebrow]\">\r\n <ng-content select=\"[solaris-card-eyebrow]\"></ng-content>\r\n </div>\r\n\r\n <div ngProjectAs=\"[solaris-card-title]\">\r\n <ng-content select=\"[solaris-card-title]\"></ng-content>\r\n </div>\r\n\r\n <div ngProjectAs=\"[solaris-card-description]\">\r\n <ng-content select=\"[solaris-card-description]\"></ng-content>\r\n </div>\r\n\r\n <div ngProjectAs=\"[solaris-card-meta]\">\r\n <ng-content select=\"[solaris-card-meta]\"></ng-content>\r\n </div>\r\n\r\n <div ngProjectAs=\"[solaris-card-badge]\">\r\n <ng-content select=\"[solaris-card-badge]\"></ng-content>\r\n </div>\r\n\r\n <div ngProjectAs=\"[solaris-card-footer]\">\r\n <ng-content select=\"[solaris-card-footer]\"></ng-content>\r\n </div>\r\n\r\n <div ngProjectAs=\"[solaris-card-actions]\">\r\n <ng-content select=\"[solaris-card-actions]\"></ng-content>\r\n </div>\r\n\r\n </solaris-card>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { SolarisTranslationParams, SolarisTranslationPipe } from '@educarehq/solaris-services';\r\n\r\n@Component({\r\n selector: 'solaris-field-error',\r\n standalone: true,\r\n imports: [SolarisTranslationPipe],\r\n templateUrl: './field-error.html',\r\n styleUrls: ['./field-error.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FieldErrorComponent {\r\n @Input() public text?: string;\r\n @Input() public textKey?: string;\r\n @Input() public textParams?: SolarisTranslationParams;\r\n}\r\n","<div class=\"solaris-field-error\" role=\"alert\" aria-live=\"polite\">\r\n <span class=\"solaris-field-error__text\">\r\n @if (textKey) { {{ textKey | translate:textParams }} }\r\n @else { {{ text }} }\r\n </span>\r\n</div>\r\n","import { AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, DestroyRef, QueryList, booleanAttribute,\r\n computed, effect, forwardRef, inject, input, output, signal } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nimport { CardGroupCompareWith, CardGroupLayout, CardGroupSelectionMode, CardGroupValue, SizeInput } from '../model/card-group.type';\r\nimport { SOLARIS_CARD_GROUP, SolarisCardGroupApi, SolarisSelectionCardHandle } from '../token/card-group.token';\r\nimport { FieldErrorComponent } from '../../../../forms/form-field/messages/error/field-error';\r\nimport { SolarisShowErrors } from '../../../../common/model/common-configurations.type';\r\nimport { SolarisSelectionCard } from '../../selection-card/component/selection-card';\r\nimport { CardGroupValidationError } from '../model/card-group-error.type';\r\nimport { SolarisTranslationParams } from '@educarehq/solaris-services';\r\n\r\n@Component({\r\n selector: 'solaris-card-group',\r\n standalone: true,\r\n imports: [\r\n FieldErrorComponent\r\n ],\r\n templateUrl: './card-group.html',\r\n styleUrls: ['./card-group.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SolarisCardGroup),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => SolarisCardGroup),\r\n multi: true,\r\n },\r\n {\r\n provide: SOLARIS_CARD_GROUP,\r\n useExisting: forwardRef(() => SolarisCardGroup),\r\n },\r\n ],\r\n host: {\r\n class: 'solaris-card-group-host',\r\n '[attr.data-layout]': 'layout()',\r\n '[attr.data-orientation]': 'orientation()',\r\n '[attr.data-selection-mode]': 'selectionMode()',\r\n '[attr.data-invalid]': 'invalidComputed() ? \"true\" : null',\r\n '[attr.data-readonly]': 'readonly() ? \"true\" : null',\r\n '[attr.role]': 'groupRole()',\r\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\r\n '[attr.aria-invalid]': 'invalidComputed() ? \"true\" : null',\r\n '[style.--solaris-card-group-gap]': 'resolvedGap()',\r\n },\r\n})\r\nexport class SolarisCardGroup<T = unknown>\r\n implements ControlValueAccessor, Validator, AfterContentInit, SolarisCardGroupApi {\r\n\r\n readonly readonly = input(false, { transform: booleanAttribute });\r\n readonly required = input(false, { transform: booleanAttribute });\r\n readonly submitted = input(false, { transform: booleanAttribute });\r\n readonly selectOnFocus = input(false, { transform: booleanAttribute });\r\n readonly disabledInput = input(false, { transform: booleanAttribute });\r\n\r\n readonly gap = input<SizeInput>('md');\r\n readonly invalid = input<boolean | null>(null);\r\n readonly minSelected = input<number | null>(null);\r\n readonly maxSelected = input<number | null>(null);\r\n readonly layout = input<CardGroupLayout>('stack');\r\n readonly compareWith = input<CardGroupCompareWith<T>>(Object.is);\r\n readonly showErrors = input<SolarisShowErrors>('dirtyOrTouched');\r\n readonly selectionMode = input<CardGroupSelectionMode>('single');\r\n readonly orientation = input<'vertical' | 'horizontal' | 'compact'>('vertical');\r\n\r\n readonly requiredErrorKey = input('solaris.cardGroup.errors.required');\r\n readonly minSelectedErrorKey = input('solaris.cardGroup.errors.minSelected');\r\n readonly maxSelectedErrorKey = input('solaris.cardGroup.errors.maxSelected');\r\n\r\n readonly valueChange = output<CardGroupValue<T>>();\r\n readonly selectionRejected = output<{ reason: 'readonly' | 'maxSelected'; value: unknown }>();\r\n\r\n @ContentChildren(forwardRef(() => SolarisSelectionCard), { descendants: true })\r\n private readonly cardsQuery?: QueryList<SolarisSelectionCard>;\r\n\r\n private readonly destroyRef = inject(DestroyRef);\r\n\r\n private readonly controlTick = signal(0);\r\n private readonly dirtyState = signal(false);\r\n private readonly cardsVersion = signal(0);\r\n private readonly cvaDisabled = signal(false);\r\n private readonly touchedState = signal(false);\r\n private readonly internalValue = signal<CardGroupValue<T>>(null);\r\n\r\n private onTouched: () => void = () => {};\r\n private onChange: (value: CardGroupValue<T>) => void = () => {};\r\n private onValidatorChange: () => void = () => {};\r\n\r\n constructor() {\r\n effect(() => {\r\n this.selectionMode();\r\n this.required();\r\n this.minSelected();\r\n this.maxSelected();\r\n this.compareWith();\r\n this.internalValue();\r\n\r\n this.onValidatorChange();\r\n });\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.bumpCardsVersion();\r\n\r\n this.cardsQuery?.changes\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => this.bumpCardsVersion());\r\n }\r\n\r\n readonly resolvedGap = computed(() => {\r\n const value = String(this.gap() ?? 'md').trim();\r\n\r\n switch (value) {\r\n case 'sm':\r\n return 'var(--solaris-space-3)';\r\n case 'md':\r\n return 'var(--solaris-space-4)';\r\n case 'lg':\r\n return 'var(--solaris-space-5)';\r\n default:\r\n return value;\r\n }\r\n });\r\n\r\n readonly disabled = computed(() => this.disabledInput() || this.cvaDisabled());\r\n\r\n readonly groupRole = computed(() => {\r\n switch (this.selectionMode()) {\r\n case 'single':\r\n return 'radiogroup';\r\n case 'multiple':\r\n case 'none':\r\n default:\r\n return 'group';\r\n }\r\n });\r\n\r\n readonly selectionCount = computed(() => {\r\n const value = this.internalValue();\r\n\r\n if (Array.isArray(value)) return value.length;\r\n if (value == null) return 0;\r\n return 1;\r\n });\r\n\r\n readonly validationError = computed<CardGroupValidationError>(() => {\r\n if (this.disabled() || this.selectionMode() === 'none') return null;\r\n\r\n const count = this.selectionCount();\r\n\r\n if (this.required() && count === 0) return 'required';\r\n\r\n if (this.selectionMode() === 'multiple') {\r\n const min = this.minSelected();\r\n const max = this.maxSelected();\r\n\r\n if (min != null && count < min) return 'minSelected';\r\n if (max != null && count > max) return 'maxSelected';\r\n }\r\n\r\n return null;\r\n });\r\n\r\n readonly invalidComputed = computed(() => {\r\n const explicitInvalid = this.invalid();\r\n if (explicitInvalid !== null) return explicitInvalid;\r\n\r\n const localInvalid = this.validationError() !== null;\r\n\r\n if (this.showErrors() === 'always') return localInvalid;\r\n if (this.showErrors() === 'submitted') return localInvalid && this.submitted();\r\n\r\n return localInvalid && (this.touchedState() || this.dirtyState());\r\n });\r\n\r\n readonly errorKeyComputed = computed<string | undefined>(() => {\r\n switch (this.validationError()) {\r\n case 'required':\r\n return this.requiredErrorKey();\r\n case 'minSelected':\r\n return this.minSelectedErrorKey();\r\n case 'maxSelected':\r\n return this.maxSelectedErrorKey();\r\n default:\r\n return undefined;\r\n }\r\n });\r\n\r\n readonly errorParamsComputed = computed<SolarisTranslationParams | undefined>(() => {\r\n switch (this.validationError()) {\r\n case 'minSelected':\r\n return { min: this.minSelected() ?? undefined };\r\n case 'maxSelected':\r\n return { max: this.maxSelected() ?? undefined };\r\n default:\r\n return undefined;\r\n }\r\n });\r\n\r\n public isSelected(value: unknown): boolean {\r\n const currentValue = this.internalValue();\r\n\r\n switch (this.selectionMode()) {\r\n case 'single':\r\n return !Array.isArray(currentValue) &&\r\n currentValue !== null &&\r\n this.compareWith()(currentValue as T, value as T);\r\n\r\n case 'multiple': {\r\n const list: T[] = Array.isArray(currentValue) ? currentValue : [];\r\n return list.some(item => this.compareWith()(item, value as T));\r\n }\r\n\r\n case 'none':\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n public activate(card: SolarisSelectionCardHandle): void {\r\n if (this.disabled() || card.disabled()) return;\r\n\r\n this.notifyTouched();\r\n\r\n if (this.readonly()) {\r\n this.selectionRejected.emit({ reason: 'readonly', value: card.value() });\r\n return;\r\n }\r\n\r\n switch (this.selectionMode()) {\r\n case 'single': {\r\n const nextValue = card.value() as T;\r\n const currentValue = this.internalValue();\r\n\r\n if (Array.isArray(currentValue) || currentValue === null\r\n || !this.compareWith()(currentValue as T, nextValue)) {\r\n this.internalValue.set(nextValue);\r\n this.emitModelChange(nextValue);\r\n }\r\n\r\n break;\r\n }\r\n\r\n case 'multiple': {\r\n const currentValue = this.internalValue();\r\n const current: T[] = Array.isArray(currentValue) ? [...currentValue] : [];\r\n const cardValue = card.value() as T;\r\n\r\n const index = current.findIndex(item => this.compareWith()(item, cardValue));\r\n\r\n if (index >= 0) {\r\n current.splice(index, 1);\r\n this.internalValue.set(current);\r\n this.emitModelChange(current);\r\n break;\r\n }\r\n\r\n const max = this.maxSelected();\r\n if (max != null && current.length >= max) {\r\n this.selectionRejected.emit({ reason: 'maxSelected', value: cardValue });\r\n return;\r\n }\r\n\r\n current.push(cardValue);\r\n this.internalValue.set(current);\r\n this.emitModelChange(current);\r\n break;\r\n }\r\n\r\n case 'none':\r\n default:\r\n break;\r\n }\r\n\r\n this.bumpCardsVersion();\r\n this.bumpControlTick();\r\n }\r\n\r\n public tabIndexFor(card: SolarisSelectionCardHandle): number {\r\n this.cardsVersion();\r\n\r\n if (this.disabled() || card.disabled()) return -1;\r\n if (this.selectionMode() === 'none') return 0;\r\n\r\n const enabled = this.enabledCards();\r\n if (!enabled.length) return -1;\r\n\r\n const selected = enabled.find(item => this.isSelected(item.value()));\r\n const target = selected ?? enabled[0];\r\n\r\n return target === card ? 0 : -1;\r\n }\r\n\r\n public handleKeydown(event: KeyboardEvent, current: SolarisSelectionCardHandle): void {\r\n if (this.disabled()) return;\r\n if (this.selectionMode() === 'none') return;\r\n\r\n switch (event.key) {\r\n case 'ArrowRight':\r\n case 'ArrowDown':\r\n event.preventDefault();\r\n this.move(current, +1);\r\n break;\r\n\r\n case 'ArrowLeft':\r\n case 'ArrowUp':\r\n event.preventDefault();\r\n this.move(current, -1);\r\n break;\r\n\r\n case 'Home':\r\n event.preventDefault();\r\n this.focusFirst();\r\n break;\r\n\r\n case 'End':\r\n event.preventDefault();\r\n this.focusLast();\r\n break;\r\n\r\n case ' ':\r\n case 'Enter':\r\n event.preventDefault();\r\n this.activate(current);\r\n break;\r\n }\r\n }\r\n\r\n public notifyTouched(): void {\r\n if (!this.touchedState()) {\r\n this.touchedState.set(true);\r\n }\r\n\r\n this.onTouched();\r\n this.bumpControlTick();\r\n }\r\n\r\n writeValue(value: CardGroupValue<T>): void {\r\n this.internalValue.set(this.normalizeIncomingValue(value, this.selectionMode()));\r\n this.bumpCardsVersion();\r\n this.bumpControlTick();\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.cvaDisabled.set(isDisabled);\r\n this.bumpCardsVersion();\r\n this.bumpControlTick();\r\n }\r\n\r\n registerOnChange(fn: (value: CardGroupValue<T>) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n validate(_: AbstractControl): ValidationErrors | null {\r\n switch (this.validationError()) {\r\n case 'required':\r\n return { required: true };\r\n case 'minSelected':\r\n return {\r\n minSelected: {\r\n min: this.minSelected(),\r\n actual: this.selectionCount(),\r\n },\r\n };\r\n case 'maxSelected':\r\n return {\r\n maxSelected: {\r\n max: this.maxSelected(),\r\n actual: this.selectionCount(),\r\n },\r\n };\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n registerOnValidatorChange(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n private move(current: SolarisSelectionCardHandle, direction: 1 | -1): void {\r\n const enabled = this.enabledCards();\r\n if (!enabled.length) return;\r\n\r\n const currentIndex = enabled.indexOf(current);\r\n const startIndex = Math.max(currentIndex, 0);\r\n const nextIndex = (startIndex + direction + enabled.length) % enabled.length;\r\n const next = enabled[nextIndex];\r\n\r\n if (this.selectionMode() === 'single' && this.selectOnFocus()) {\r\n this.activate(next);\r\n }\r\n\r\n next.focus();\r\n }\r\n\r\n private focusFirst(): void {\r\n const first = this.enabledCards()[0];\r\n if (!first) return;\r\n\r\n if (this.selectionMode() === 'single' && this.selectOnFocus()) {\r\n this.activate(first);\r\n }\r\n\r\n first.focus();\r\n }\r\n\r\n private focusLast(): void {\r\n const enabled = this.enabledCards();\r\n const last = enabled.at(-1);\r\n if (!last) return;\r\n\r\n if (this.selectionMode() === 'single' && this.selectOnFocus()) {\r\n this.activate(last);\r\n }\r\n\r\n last.focus();\r\n }\r\n\r\n private enabledCards(): SolarisSelectionCardHandle[] {\r\n this.cardsVersion();\r\n return (this.cardsQuery?.toArray() ?? []).filter(card => !card.disabled());\r\n }\r\n\r\n private emitModelChange(value: CardGroupValue<T>): void {\r\n this.onChange(value);\r\n this.valueChange.emit(value);\r\n this.onValidatorChange();\r\n }\r\n\r\n private normalizeIncomingValue(value: CardGroupValue<T>, mode: CardGroupSelectionMode): CardGroupValue<T> {\r\n switch (mode) {\r\n case 'single':\r\n return Array.isArray(value) ? (value[0] ?? null) : value;\r\n\r\n case 'multiple':\r\n if (value == null) return [];\r\n return Array.isArray(value) ? value : [value];\r\n\r\n case 'none':\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n private bumpCardsVersion(): void {\r\n this.cardsVersion.update(value => value + 1);\r\n }\r\n\r\n private bumpControlTick(): void {\r\n this.controlTick.update(value => value + 1);\r\n }\r\n}\r\n","<div class=\"solaris-card-group__control\">\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n@if (errorKeyComputed()) {\r\n <solaris-field-error [textKey]=\"errorKeyComputed()\" [textParams]=\"errorParamsComputed()\"></solaris-field-error>\r\n} @else {\r\n <ng-content select=\"[card-group-message]\"></ng-content>\r\n}\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[solaris-card-media]',\r\n standalone: true,\r\n host: { class: 'solaris-card-slot solaris-card-slot--media' },\r\n})\r\nexport class SolarisCardMediaDirective {}\r\n\r\n@Directive({\r\n selector: '[solaris-card-eyebrow]',\r\n standalone: true,\r\n host: { class: 'solaris-card-slot solaris-card-slot--eyebrow' },\r\n})\r\nexport class SolarisCardEyebrowDirective {}\r\n\r\n@Directive({\r\n selector: '[solaris-card-title]',\r\n standalone: true,\r\n host: { class: 'solaris-card-slot solaris-card-slot--title' },\r\n})\r\nexport class SolarisCardTitleDirective {}\r\n\r\n@Directive({\r\n selector: '[solaris-card-description]',\r\n standalone: true,\r\n host: { class: 'solaris-card-slot solaris-card-slot--description' },\r\n})\r\nexport class SolarisCardDescriptionDirective {}\r\n\r\n@Directive({\r\n selector: '[solaris-card-meta]',\r\n standalone: true,\r\n host: { class: 'solaris-card-slot solaris-card-slot--meta' },\r\n})\r\nexport class SolarisCardMetaDirective {}\r\n\r\n@Directive({\r\n selector: '[solaris-card-badge]',\r\n standalone: true,\r\n host: { class: 'solaris-card-slot solaris-card-slot--badge' },\r\n})\r\nexport class SolarisCardBadgeDirective {}\r\n\r\n@Directive({\r\n selector: '[solaris-card-actions]',\r\n standalone: true,\r\n host: {\r\n class: 'solaris-card-slot solaris-card-slot--actions',\r\n 'data-card-actions': 'true',\r\n },\r\n})\r\nexport class SolarisCardActionsDirective {}\r\n\r\n@Directive({\r\n selector: '[solaris-card-footer]',\r\n standalone: true,\r\n host: { class: 'solaris-card-slot solaris-card-slot--footer' },\r\n})\r\nexport class SolarisCardFooterDirective {}\r\n\r\nexport const SOLARIS_CARD_SLOT_DIRECTIVES = [\r\n SolarisCardMediaDirective,\r\n SolarisCardEyebrowDirective,\r\n SolarisCardTitleDirective,\r\n SolarisCardDescriptionDirective,\r\n SolarisCardMetaDirective,\r\n SolarisCardBadgeDirective,\r\n SolarisCardActionsDirective,\r\n SolarisCardFooterDirective,\r\n] as const;\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[solaris-avatar-overlay]',\r\n standalone: true,\r\n})\r\nexport class SolarisAvatarOverlayDirective { }\r\n","import { ChangeDetectionStrategy, Component, DestroyRef, HostBinding, Signal,\r\n booleanAttribute, computed, inject, input, signal } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { NgClass } from '@angular/common';\r\n\r\nimport { SOLARIS_TRANSLATION, SOLARIS_TRANSLATION_CONFIGURATION, SolarisTranslationConfiguration, TranslationInterface } from '@educarehq/solaris-services';\r\nimport { SolarisPresenceQuietHours, SolarisPresenceState, TimeContext } from '../../../presence-avatar/model/presence-avatar.type';\r\nimport { SolarisAvatarShape } from '../../../avatar/model/avatar.type';\r\n\r\n@Component({\r\n selector: 'solaris-avatar-presence',\r\n standalone: true,\r\n imports: [NgClass],\r\n templateUrl: './avatar-presence.html',\r\n styleUrl: './avatar-presence.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisAvatarPresence {\r\n private readonly translation = inject<TranslationInterface | null>(SOLARIS_TRANSLATION, { optional: true });\r\n private readonly translationConfiguration =\r\n inject<SolarisTranslationConfiguration | null>(SOLARIS_TRANSLATION_CONFIGURATION, { optional: true });\r\n private readonly destroyRef = inject(DestroyRef);\r\n\r\n readonly presence = input<SolarisPresenceState>('offline');\r\n readonly timezone = input<string | null>(null);\r\n readonly lastSeenAt = input<string | Date | number | null>(null);\r\n readonly quietHours = input<SolarisPresenceQuietHours>(false);\r\n readonly workHoursStart = input(9);\r\n readonly workHoursEnd = input(18);\r\n\r\n readonly shape = input<SolarisAvatarShape>('circle');\r\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\r\n readonly ariaHidden = input(false, { alias: 'aria-hidden', transform: booleanAttribute });\r\n\r\n @HostBinding('class')\r\n protected readonly hostClass = 'solaris-avatar-presence-host';\r\n\r\n private readonly nowTick = signal(Date.now());\r\n\r\n private readonly fallbackLanguage = this.translationConfiguration?.defaultLanguage ?? 'en-US';\r\n\r\n private readonly activeLanguage: Signal<string> = this.translation\r\n ? toSignal(this.translation.languageChanges(), {\r\n initialValue: this.translation.language(),\r\n })\r\n : signal(this.fallbackLanguage);\r\n\r\n private readonly browserTimezone =\r\n typeof Intl === 'undefined'\r\n ? null\r\n : Intl.DateTimeFormat().resolvedOptions().timeZone || null;\r\n\r\n constructor() {\r\n if (globalThis.window !== undefined) {\r\n const intervalId = globalThis.setInterval(() => {\r\n this.nowTick.set(Date.now());\r\n }, 60_000);\r\n\r\n this.destroyRef.onDestroy(() => {\r\n globalThis.clearInterval(intervalId);\r\n });\r\n }\r\n }\r\n\r\n readonly normalizedTimezone = computed(() => this.normalize(this.timezone()));\r\n readonly normalizedAriaLabel = computed(() => this.normalize(this.ariaLabel()));\r\n readonly parsedLastSeenAt = computed(() => this.parseDate(this.lastSeenAt()));\r\n\r\n readonly effectiveTimezone = computed(() => {\r\n return this.normalizedTimezone() || this.browserTimezone || null;\r\n });\r\n\r\n readonly intlLocale = computed(() => {\r\n const lang = this.activeLanguage() || this.fallbackLanguage || 'en-US';\r\n return lang.replace('_', '-');\r\n });\r\n\r\n readonly translationPrefix = computed(() => {\r\n const uiScope = this.translationConfiguration?.uiScope ?? 'ui';\r\n return `${uiScope}.solaris.avatar.presence`;\r\n });\r\n\r\n readonly normalizedWorkHours = computed(() => {\r\n const start = this.coerceHour(this.workHoursStart(), 9, 0, 23);\r\n const end = this.coerceHour(this.workHoursEnd(), 18, 1, 24);\r\n\r\n if (end <= start) {\r\n return { start: 9, end: 18 };\r\n }\r\n\r\n return { start, end };\r\n });\r\n\r\n readonly currentTimeContext = computed<TimeContext | null>(() => {\r\n this.nowTick();\r\n this.activeLanguage();\r\n\r\n const timezone = this.effectiveTimezone();\r\n if (!timezone || typeof Intl === 'undefined') {\r\n return null;\r\n }\r\n\r\n try {\r\n const formatter = new Intl.DateTimeFormat('en-US', {\r\n hour: 'numeric',\r\n weekday: 'short',\r\n hourCycle: 'h23',\r\n timeZone: timezone,\r\n });\r\n\r\n const parts = formatter.formatToParts(new Date(this.nowTick()));\r\n const hour = Number(parts.find((part) => part.type === 'hour')?.value ?? Number.NaN);\r\n const weekday = parts.find((part) => part.type === 'weekday')?.value ?? '';\r\n\r\n if (Number.isNaN(hour)) {\r\n return null;\r\n }\r\n\r\n const weekdayIndex = this.resolveWeekdayIndex(weekday);\r\n\r\n return {\r\n hour,\r\n timezone,\r\n isWeekend: weekdayIndex === 0 || weekdayIndex === 6,\r\n };\r\n } catch {\r\n return null;\r\n }\r\n });\r\n\r\n readonly isQuietHoursAuto = computed(() => {\r\n const context = this.currentTimeContext();\r\n if (!context) {\r\n return false;\r\n }\r\n\r\n if (context.isWeekend) {\r\n return true;\r\n }\r\n\r\n const { start, end } = this.normalizedWorkHours();\r\n return context.hour < start || context.hour >= end;\r\n });\r\n\r\n readonly showQuietHoursAccent = computed(() => {\r\n const mode = this.quietHours();\r\n\r\n if (mode === true) return true;\r\n if (mode === false) return false;\r\n\r\n return this.isQuietHoursAuto();\r\n });\r\n\r\n readonly showDndSlash = computed(() => this.presence() === 'dnd');\r\n\r\n readonly stateClasses = computed(() => ([\r\n `state-${this.presence()}`,\r\n this.showQuietHoursAccent() ? 'has-quiet-hours' : '',\r\n ]));\r\n\r\n readonly titleText = computed(() => {\r\n if (this.ariaHidden()) return null;\r\n\r\n this.activeLanguage();\r\n return this.buildSemanticText();\r\n });\r\n\r\n readonly resolvedAriaLabel = computed(() => {\r\n if (this.ariaHidden()) return null;\r\n\r\n this.activeLanguage();\r\n return this.normalizedAriaLabel() || this.buildSemanticText();\r\n });\r\n\r\n private buildSemanticText(): string {\r\n const parts: string[] = [this.translate(`states.${this.presence()}`)];\r\n\r\n if (this.presence() === 'offline') {\r\n const lastSeen = this.getLastSeenLabel(this.parsedLastSeenAt());\r\n if (lastSeen) {\r\n parts.push(lastSeen);\r\n }\r\n }\r\n\r\n if (this.showQuietHoursAccent()) {\r\n parts.push(this.translate('quietHours'));\r\n }\r\n\r\n return parts.join(' • ');\r\n }\r\n\r\n private getLastSeenLabel(value: Date | null): string | null {\r\n if (!value || Number.isNaN(value.getTime())) {\r\n return null;\r\n }\r\n\r\n const now = new Date(this.nowTick());\r\n const diffMs = Math.max(0, now.getTime() - value.getTime());\r\n\r\n const minuteMs = 60_000;\r\n const hourMs = 60 * minuteMs;\r\n\r\n if (diffMs < minuteMs) {\r\n return this.translate('lastSeen.now');\r\n }\r\n\r\n if (diffMs < hourMs) {\r\n return this.translate('lastSeen.minutesAgo', {\r\n minutes: Math.floor(diffMs / minuteMs),\r\n });\r\n }\r\n\r\n if (diffMs < 6 * hourMs) {\r\n return this.translate('lastSeen.hoursAgo', {\r\n hours: Math.floor(diffMs / hourMs),\r\n });\r\n }\r\n\r\n const timeLabel = this.formatDate(value, {\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n });\r\n\r\n if (this.isSameCalendarDay(value, now)) {\r\n return this.translate('lastSeen.todayAt', {\r\n time: timeLabel,\r\n });\r\n }\r\n\r\n const yesterday = new Date(now);\r\n yesterday.setDate(now.getDate() - 1);\r\n\r\n if (this.isSameCalendarDay(value, yesterday)) {\r\n return this.translate('lastSeen.yesterdayAt', {\r\n time: timeLabel,\r\n });\r\n }\r\n\r\n return this.translate('lastSeen.onDate', {\r\n date: this.formatDate(value, {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n }),\r\n });\r\n }\r\n\r\n private formatDate(value: Date, options: Intl.DateTimeFormatOptions): string {\r\n try {\r\n return new Intl.DateTimeFormat(this.intlLocale(), options).format(value);\r\n } catch {\r\n return value.toLocaleString();\r\n }\r\n }\r\n\r\n private translate(key: string, params?: Record<string, unknown>): string {\r\n const fullKey = `${this.translationPrefix()}.${key}`;\r\n\r\n if (this.translation) {\r\n const translated = this.translation.translate(fullKey, params);\r\n if (translated && translated !== fullKey) {\r\n return translated;\r\n }\r\n }\r\n\r\n return this.fallbackTranslate(key, params);\r\n }\r\n\r\n private fallbackTranslate(key: string, params?: Record<string, unknown>): string {\r\n const isPt = this.intlLocale().toLowerCase().startsWith('pt');\r\n\r\n const dict = isPt\r\n ? {\r\n 'states.online': 'Online',\r\n 'states.offline': 'Offline',\r\n 'states.away': 'Ausente',\r\n 'states.busy': 'Ocupado',\r\n 'states.dnd': 'Não perturbe',\r\n 'quietHours': 'Fora do expediente local',\r\n 'lastSeen.now': 'Visto agora',\r\n 'lastSeen.minutesAgo': `Visto há ${params?.['minutes'] ?? 0} min`,\r\n 'lastSeen.hoursAgo': `Visto há ${params?.['hours'] ?? 0} h`,\r\n 'lastSeen.todayAt': `Visto hoje às ${params?.['time'] ?? ''}`,\r\n 'lastSeen.yesterdayAt': `Visto ontem às ${params?.['time'] ?? ''}`,\r\n 'lastSeen.onDate': `Visto em ${params?.['date'] ?? ''}`,\r\n }\r\n : {\r\n 'states.online': 'Online',\r\n 'states.offline': 'Offline',\r\n 'states.away': 'Away',\r\n 'states.busy': 'Busy',\r\n 'states.dnd': 'Do not disturb',\r\n 'quietHours': 'Outside local working hours',\r\n 'lastSeen.now': 'Seen just now',\r\n 'lastSeen.minutesAgo': `Seen ${params?.['minutes'] ?? 0} min ago`,\r\n 'lastSeen.hoursAgo': `Seen ${params?.['hours'] ?? 0} h ago`,\r\n 'lastSeen.todayAt': `Seen today at ${params?.['time'] ?? ''}`,\r\n 'lastSeen.yesterdayAt': `Seen yesterday at ${params?.['time'] ?? ''}`,\r\n 'lastSeen.onDate': `Seen on ${params?.['date'] ?? ''}`,\r\n };\r\n\r\n return dict[key as keyof typeof dict] ?? key;\r\n }\r\n\r\n private isSameCalendarDay(a: Date, b: Date): boolean {\r\n return a.getFullYear() === b.getFullYear()\r\n && a.getMonth() === b.getMonth()\r\n && a.getDate() === b.getDate();\r\n }\r\n\r\n private resolveWeekdayIndex(weekday: string): number {\r\n switch (weekday.toLowerCase()) {\r\n case 'sun': return 0;\r\n case 'mon': return 1;\r\n case 'tue': return 2;\r\n case 'wed': return 3;\r\n case 'thu': return 4;\r\n case 'fri': return 5;\r\n case 'sat': return 6;\r\n default: return -1;\r\n }\r\n }\r\n\r\n private coerceHour(value: unknown, fallback: number, min: number, max: number): number {\r\n const numeric = Number(value);\r\n if (Number.isNaN(numeric)) {\r\n return fallback;\r\n }\r\n\r\n return Math.min(Math.max(Math.floor(numeric), min), max);\r\n }\r\n\r\n private parseDate(value: string | Date | number | null): Date | null {\r\n if (value == null || value === '') {\r\n return null;\r\n }\r\n\r\n if (value instanceof Date) {\r\n return Number.isNaN(value.getTime()) ? null : value;\r\n }\r\n\r\n const parsed = new Date(value);\r\n return Number.isNaN(parsed.getTime()) ? null : parsed;\r\n }\r\n\r\n private normalize(value: unknown): string {\r\n return String(value ?? '').trim();\r\n }\r\n}\r\n","<span class=\"solaris-avatar-presence\" [attr.title]=\"titleText()\"\r\n [attr.aria-label]=\"resolvedAriaLabel()\" [attr.aria-hidden]=\"ariaHidden() ? 'true' : null\"\r\n [ngClass]=\"[...stateClasses(), shape() === 'square' ? 'shape-square' : 'shape-circle']\">\r\n <span class=\"solaris-avatar-presence__dot\" aria-hidden=\"true\">\r\n @if (showDndSlash()) {\r\n <span class=\"solaris-avatar-presence__slash\"></span>\r\n }\r\n </span>\r\n\r\n @if (showQuietHoursAccent()) {\r\n <span class=\"solaris-avatar-presence__quiet\" aria-hidden=\"true\">z</span>\r\n }\r\n</span>\r\n","import { ChangeDetectionStrategy, Component, HostBinding, booleanAttribute, computed, effect, input, signal } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\n\r\nimport { SolarisAvatarButtonType, SolarisAvatarColorInput, SolarisAvatarColorPreset, SolarisAvatarObjectFit,\r\n SolarisAvatarRadiusInput, SolarisAvatarShape, SolarisAvatarSize, SolarisAvatarVariant } from '../model/avatar.type';\r\n\r\n@Component({\r\n selector: 'solaris-avatar',\r\n standalone: true,\r\n imports: [\r\n NgClass\r\n ],\r\n templateUrl: './avatar.html',\r\n styleUrl: './avatar.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisAvatar {\r\n readonly size = input<SolarisAvatarSize>('md');\r\n readonly shape = input<SolarisAvatarShape>('circle');\r\n readonly variant = input<SolarisAvatarVariant>('auto');\r\n\r\n readonly src = input<string | null>(null);\r\n readonly alt = input<string | null>(null);\r\n readonly name = input<string | null>(null);\r\n readonly initials = input<string | null>(null);\r\n\r\n readonly color = input<SolarisAvatarColorInput>('surface');\r\n readonly loading = input(false, { transform: booleanAttribute });\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n readonly interactive = input(false, { transform: booleanAttribute });\r\n\r\n readonly buttonType = input<SolarisAvatarButtonType>('button');\r\n readonly asButton = input(false, { transform: booleanAttribute });\r\n\r\n readonly radius = input<SolarisAvatarRadiusInput>(null);\r\n readonly objectFit = input<SolarisAvatarObjectFit>('cover');\r\n\r\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\r\n readonly ariaHidden = input(false, { alias: 'aria-hidden', transform: booleanAttribute });\r\n\r\n @HostBinding('class')\r\n protected readonly hostClass = 'solaris-avatar-host';\r\n\r\n private readonly imageFailed = signal(false);\r\n\r\n private readonly presetColors = new Set<SolarisAvatarColorPreset>([\r\n 'primary',\r\n 'surface',\r\n 'success',\r\n 'warning',\r\n 'error',\r\n 'info',\r\n ]);\r\n\r\n constructor() {\r\n effect(() => {\r\n this.src();\r\n this.imageFailed.set(false);\r\n });\r\n }\r\n\r\n readonly normalizedSrc = computed(() => this.normalize(this.src()));\r\n readonly normalizedAlt = computed(() => this.normalize(this.alt()));\r\n readonly normalizedName = computed(() => this.normalize(this.name()));\r\n readonly normalizedInitials = computed(() => this.normalize(this.initials()));\r\n readonly normalizedAriaLabel = computed(() => this.normalize(this.ariaLabel()));\r\n\r\n readonly resolvedInitials = computed(() => {\r\n const explicit = this.normalizedInitials();\r\n if (explicit) return explicit.slice(0, 2).toUpperCase();\r\n\r\n const name = this.normalizedName();\r\n if (!name) return '';\r\n\r\n const parts = name.split(/\\s+/).map(part => part.trim()).filter(Boolean);\r\n\r\n if (!parts.length) return '';\r\n if (parts.length === 1) return parts[0].slice(0, 1).toUpperCase();\r\n\r\n const first = parts[0]?.slice(0, 1) ?? '';\r\n const last = parts.at(-1)?.slice(0, 1) ?? '';\r\n\r\n return `${first}${last}`.toUpperCase();\r\n });\r\n\r\n readonly showImage = computed(() => {\r\n if (this.loading()) return false;\r\n\r\n const variant = this.variant();\r\n if (variant === 'letter' || variant === 'default') return false;\r\n\r\n return !!this.normalizedSrc() && !this.imageFailed();\r\n });\r\n\r\n readonly showLetter = computed(() => {\r\n if (this.loading()) return false;\r\n\r\n const variant = this.variant();\r\n const initials = this.resolvedInitials();\r\n\r\n if (!initials) return false;\r\n if (variant === 'letter') return true;\r\n if (variant === 'default') return false;\r\n\r\n return !this.showImage();\r\n });\r\n\r\n readonly showDefault = computed(() => {\r\n if (this.loading()) return false;\r\n return !this.showImage() && !this.showLetter();\r\n });\r\n\r\n readonly isCustomColor = computed(() => !this.presetColors.has(this.color() as SolarisAvatarColorPreset));\r\n\r\n readonly colorClass = computed(() => {\r\n return this.isCustomColor() ? 'color-custom' : `color-${this.color()}`;\r\n });\r\n\r\n readonly customColorValue = computed(() => {\r\n return this.isCustomColor() ? String(this.color()) : null;\r\n });\r\n\r\n readonly resolvedRadius = computed(() => {\r\n const radius = this.normalize(this.radius());\r\n\r\n if (!radius) {\r\n return this.shape() === 'circle'\r\n ? 'var(--solaris-avatar-radius-circle)'\r\n : 'var(--solaris-avatar-radius-square)';\r\n }\r\n\r\n switch (radius) {\r\n case 'none': return 'var(--solaris-radius-none)';\r\n case 'sm': return 'var(--solaris-radius-sm)';\r\n case 'md': return 'var(--solaris-radius-md)';\r\n case 'lg': return 'var(--solaris-radius-lg)';\r\n case 'full': return 'var(--solaris-radius-full)';\r\n default: return radius;\r\n }\r\n });\r\n\r\n readonly rootClasses = computed(() => ([\r\n `size-${this.size()}`,\r\n `shape-${this.shape()}`,\r\n this.colorClass(),\r\n this.interactive() ? 'is-interactive' : '',\r\n this.disabled() ? 'is-disabled' : '',\r\n this.loading() ? 'is-loading' : '',\r\n this.asButton() ? 'is-button' : '',\r\n ]));\r\n\r\n readonly accessibleLabel = computed(() => {\r\n if (this.ariaHidden()) return null;\r\n\r\n return this.normalizedAriaLabel()\r\n || this.normalizedAlt()\r\n || this.normalizedName()\r\n || this.resolvedInitials()\r\n || 'Avatar';\r\n });\r\n\r\n readonly rootRole = computed(() => {\r\n if (this.ariaHidden() || this.asButton()) return null;\r\n return 'img';\r\n });\r\n\r\n onImageLoad(): void {\r\n this.imageFailed.set(false);\r\n }\r\n\r\n onImageError(): void {\r\n this.imageFailed.set(true);\r\n }\r\n\r\n private normalize(value: unknown): string {\r\n return String(value ?? '').trim();\r\n }\r\n}\r\n","@if (asButton()) {\r\n <button class=\"solaris-avatar\" [ngClass]=\"rootClasses()\" [type]=\"buttonType()\" [disabled]=\"disabled()\"\r\n [attr.aria-label]=\"accessibleLabel()\" [attr.aria-hidden]=\"ariaHidden() ? 'true' : null\"\r\n [style.--solaris-avatar-radius]=\"resolvedRadius()\" [style.--solaris-avatar-image-fit]=\"objectFit()\"\r\n [style.--solaris-avatar-custom-bg]=\"customColorValue()\">\r\n <span class=\"solaris-avatar__body\">\r\n @if (loading()) {\r\n <span class=\"solaris-avatar__skeleton\" aria-hidden=\"true\"></span>\r\n } @else if (showImage()) {\r\n <img class=\"solaris-avatar__image\" [src]=\"normalizedSrc()\" alt=\"\" aria-hidden=\"true\"\r\n decoding=\"async\" (load)=\"onImageLoad()\" (error)=\"onImageError()\">\r\n } @else if (showLetter()) {\r\n <span class=\"solaris-avatar__label\" aria-hidden=\"true\">\r\n {{ resolvedInitials() }}\r\n </span>\r\n } @else if (showDefault()) {\r\n <span class=\"solaris-avatar__placeholder\" aria-hidden=\"true\">\r\n <svg class=\"solaris-avatar__placeholder-svg\" viewBox=\"0 0 64 64\" preserveAspectRatio=\"xMidYMid meet\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle class=\"solaris-avatar__placeholder-head\" cx=\"32\" cy=\"25\" r=\"14\"></circle>\r\n <path class=\"solaris-avatar__placeholder-body\" d=\"M2 64 C6 50, 18 42, 32 45 C46 42, 58 50, 62 64 Z\"></path>\r\n </svg>\r\n </span>\r\n }\r\n </span>\r\n\r\n <span class=\"solaris-avatar__overlay\" aria-hidden=\"true\">\r\n <ng-content></ng-content>\r\n </span>\r\n </button>\r\n} @else {\r\n <span class=\"solaris-avatar\" [ngClass]=\"rootClasses()\" [attr.role]=\"rootRole()\" [attr.aria-label]=\"accessibleLabel()\"\r\n [attr.aria-hidden]=\"ariaHidden() ? 'true' : null\" [style.--solaris-avatar-radius]=\"resolvedRadius()\"\r\n [style.--solaris-avatar-image-fit]=\"objectFit()\" [style.--solaris-avatar-custom-bg]=\"customColorValue()\">\r\n <span class=\"solaris-avatar__body\">\r\n @if (loading()) {\r\n <span class=\"solaris-avatar__skeleton\" aria-hidden=\"true\"></span>\r\n } @else if (showImage()) {\r\n <img class=\"solaris-avatar__image\" [src]=\"normalizedSrc()\" alt=\"\" aria-hidden=\"true\"\r\n decoding=\"async\" (load)=\"onImageLoad()\" (error)=\"onImageError()\">\r\n } @else if (showLetter()) {\r\n <span class=\"solaris-avatar__label\" aria-hidden=\"true\">{{ resolvedInitials() }}</span>\r\n } @else if (showDefault()) {\r\n <span class=\"solaris-avatar__placeholder\" aria-hidden=\"true\">\r\n <svg class=\"solaris-avatar__placeholder-svg\" viewBox=\"0 0 64 64\" preserveAspectRatio=\"xMidYMid meet\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle class=\"solaris-avatar__placeholder-head\" cx=\"32\" cy=\"25\" r=\"14\"></circle>\r\n <path class=\"solaris-avatar__placeholder-body\" d=\"M2 64 C6 50, 18 42, 32 45 C46 42, 58 50, 62 64 Z\"></path>\r\n </svg>\r\n </span>\r\n }\r\n </span>\r\n\r\n <span class=\"solaris-avatar__overlay\" aria-hidden=\"true\">\r\n <ng-content></ng-content>\r\n </span>\r\n </span>\r\n}\r\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\r\n\r\nimport { SolarisAvatarButtonType, SolarisAvatarColorInput, SolarisAvatarObjectFit, SolarisAvatarRadiusInput,\r\n SolarisAvatarShape, SolarisAvatarSize, SolarisAvatarVariant } from '../../avatar/model/avatar.type';\r\nimport { SolarisTooltipDirective } from '../../../feedbacks/tooltip/directives/tooltip.directive';\r\nimport { SolarisAvatarOverlayDirective } from '../../avatar/directives/avatar-overlay.directive';\r\nimport { SolarisAvatarPresence } from '../../internal/avatar-presence/component/avatar-presence';\r\nimport { SolarisPresenceQuietHours, SolarisPresenceState } from '../model/presence-avatar.type';\r\nimport { SolarisAvatar } from '../../avatar/component/avatar';\r\nimport { SOLARIS_TRANSLATION, TranslationInterface } from '@educarehq/solaris-services';\r\n\r\n@Component({\r\n selector: 'solaris-presence-avatar',\r\n standalone: true,\r\n imports: [\r\n SolarisAvatar,\r\n SolarisAvatarPresence,\r\n SolarisTooltipDirective,\r\n SolarisAvatarOverlayDirective,\r\n ],\r\n templateUrl: './presence-avatar.html',\r\n styleUrl: './presence-avatar.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisPresenceAvatar {\r\n readonly translationService: TranslationInterface = inject(SOLARIS_TRANSLATION);\r\n readonly size = input<SolarisAvatarSize>('md');\r\n readonly shape = input<SolarisAvatarShape>('circle');\r\n readonly variant = input<SolarisAvatarVariant>('auto');\r\n\r\n readonly src = input<string | null>(null);\r\n readonly alt = input<string | null>(null);\r\n readonly name = input<string | null>(null);\r\n readonly initials = input<string | null>(null);\r\n\r\n readonly color = input<SolarisAvatarColorInput>('surface');\r\n readonly loading = input(false, { transform: booleanAttribute });\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n readonly interactive = input(false, { transform: booleanAttribute });\r\n\r\n readonly buttonType = input<SolarisAvatarButtonType>('button');\r\n readonly asButton = input(false, { transform: booleanAttribute });\r\n\r\n readonly radius = input<SolarisAvatarRadiusInput>(null);\r\n readonly objectFit = input<SolarisAvatarObjectFit>('cover');\r\n\r\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\r\n readonly ariaHidden = input(false, { alias: 'aria-hidden', transform: booleanAttribute });\r\n\r\n readonly presence = input<SolarisPresenceState>('offline');\r\n readonly presenceAriaLabel = input<string | null>(null);\r\n readonly timezone = input<string | null>(null);\r\n readonly lastSeenAt = input<string | Date | number | null>(null);\r\n readonly quietHours = input<SolarisPresenceQuietHours>('auto');\r\n readonly workHoursStart = input(9);\r\n readonly workHoursEnd = input(18);\r\n\r\n readonly presenceTooltipKey = computed(() => {\r\n return this.translationService.translate(`ui.solaris.avatar.presence.states.${this.presence()}`);\r\n });\r\n}\r\n","<solaris-avatar [src]=\"src()\" [alt]=\"alt()\" [name]=\"name()\" [initials]=\"initials()\" [size]=\"size()\" [shape]=\"shape()\"\r\n [variant]=\"variant()\" [color]=\"color()\" [loading]=\"loading()\" [disabled]=\"disabled()\" [interactive]=\"interactive()\"\r\n [buttonType]=\"buttonType()\" [asButton]=\"asButton()\" [radius]=\"radius()\" [objectFit]=\"objectFit()\"\r\n [aria-label]=\"ariaLabel()\" [aria-hidden]=\"ariaHidden()\" solaris-tooltip [tooltip-key]=\"presenceTooltipKey()\"\r\n tooltip-variant=\"default\" tooltip-size=\"sm\" tooltip-prefix-icon=\"ph ph-info\">\r\n\r\n <span solaris-avatar-overlay class=\"solaris-presence-avatar__overlay\" aria-hidden=\"true\">\r\n <solaris-avatar-presence [presence]=\"presence()\" [timezone]=\"timezone()\" [lastSeenAt]=\"lastSeenAt()\"\r\n [quietHours]=\"quietHours()\" [workHoursStart]=\"workHoursStart()\" [workHoursEnd]=\"workHoursEnd()\"\r\n [aria-label]=\"presenceAriaLabel()\" [aria-hidden]=\"ariaHidden()\" [shape]=\"shape()\">\r\n </solaris-avatar-presence>\r\n </span>\r\n</solaris-avatar>\r\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, input, numberAttribute } from '@angular/core';\r\n\r\nimport { SolarisAvatarShape, SolarisAvatarSize } from '../../avatar/model/avatar.type';\r\nimport { SolarisPresenceAvatar } from '../../presence-avatar/component/presence-avatar';\r\nimport { SolarisAvatarStackItem, SolarisAvatarStackOverlap } from '../model/avatar-stack.type';\r\nimport { SolarisAvatar } from '../../avatar/component/avatar';\r\n\r\n@Component({\r\n selector: 'solaris-avatar-stack',\r\n standalone: true,\r\n imports: [\r\n SolarisPresenceAvatar,\r\n SolarisAvatar\r\n ],\r\n templateUrl: './avatar-stack.html',\r\n styleUrl: './avatar-stack.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisAvatarStack {\r\n readonly items = input<SolarisAvatarStackItem[]>([]);\r\n readonly max = input(4, { transform: numberAttribute });\r\n readonly showPresence = input(false, { transform: booleanAttribute });\r\n\r\n readonly size = input<SolarisAvatarSize>('md');\r\n readonly shape = input<SolarisAvatarShape>('circle');\r\n readonly overlap = input<SolarisAvatarStackOverlap>('md');\r\n\r\n readonly visibleItems = computed(() => {\r\n const max = Math.max(1, this.max());\r\n return this.items().slice(0, max);\r\n });\r\n\r\n readonly hiddenCount = computed(() => {\r\n return Math.max(0, this.items().length - this.visibleItems().length);\r\n });\r\n\r\n readonly hasHiddenItems = computed(() => this.hiddenCount() > 0);\r\n}\r\n","<div class=\"solaris-avatar-stack\" [attr.data-size]=\"size()\"\r\n [attr.data-shape]=\"shape()\" [attr.data-overlap]=\"overlap()\">\r\n @for (item of visibleItems(); track item.name ?? item.src ?? $index) {\r\n <span class=\"solaris-avatar-stack__item\">\r\n @if (showPresence()) {\r\n <solaris-presence-avatar [size]=\"size()\" [shape]=\"shape()\" [src]=\"item.src ?? null\" [alt]=\"item.alt ?? null\"\r\n [name]=\"item.name ?? null\" [initials]=\"item.initials ?? null\" [presence]=\"item.presence ?? 'offline'\"\r\n [timezone]=\"item.timezone ?? null\" [lastSeenAt]=\"item.lastSeenAt ?? null\" [quietHours]=\"item.quietHours ?? false\"/>\r\n } @else {\r\n <solaris-avatar [size]=\"size()\" [shape]=\"shape()\" [src]=\"item.src ?? null\" [alt]=\"item.alt ?? null\"\r\n [name]=\"item.name ?? null\" [initials]=\"item.initials ?? null\"/>\r\n }\r\n </span>\r\n }\r\n\r\n @if (hasHiddenItems()) {\r\n <span class=\"solaris-avatar-stack__item solaris-avatar-stack__more\">\r\n +{{ hiddenCount() }}\r\n </span>\r\n }\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Output, booleanAttribute, input, numberAttribute } from '@angular/core';\r\n\r\nimport { SolarisAvatarDropdownItem, SolarisAvatarDropdownPlacement, SolarisAvatarDropdownSelectEvent } from '../model/avatar-dropdown.type';\r\nimport { SolarisPopoverTriggerDirective } from '../../../navigations/popover/directives/popover-trigger.directive';\r\nimport { SolarisPopoverPanelDirective } from '../../../navigations/popover/directives/popover-panel.directive';\r\nimport { SolarisAvatarShape, SolarisAvatarSize } from '../../avatar/model/avatar.type';\r\nimport { SolarisAvatarStackOverlap } from '../../avatar-stack/model/avatar-stack.type';\r\nimport { SolarisAvatarStack } from '../../avatar-stack/component/avatar-stack';\r\nimport { SolarisPopover } from '../../../navigations/popover/component/popover';\r\nimport { SolarisAvatar } from '../../avatar/component/avatar';\r\n\r\n@Component({\r\n selector: 'solaris-avatar-dropdown',\r\n standalone: true,\r\n imports: [\r\n SolarisPopover,\r\n SolarisPopoverTriggerDirective,\r\n SolarisPopoverPanelDirective,\r\n SolarisAvatarStack,\r\n SolarisAvatar\r\n ],\r\n templateUrl: './avatar-dropdown.html',\r\n styleUrl: './avatar-dropdown.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisAvatarDropdown {\r\n readonly items = input<SolarisAvatarDropdownItem[]>([]);\r\n\r\n readonly size = input<SolarisAvatarSize>('md');\r\n readonly shape = input<SolarisAvatarShape>('circle');\r\n readonly overlap = input<SolarisAvatarStackOverlap>('md');\r\n\r\n readonly maxVisible = input(4, { transform: numberAttribute });\r\n readonly placement = input<SolarisAvatarDropdownPlacement>('bottom-end');\r\n\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n readonly closeOnSelect = input(true, { transform: booleanAttribute });\r\n\r\n readonly panelLabel = input('Avatar dropdown');\r\n\r\n @Output() readonly itemSelect = new EventEmitter<SolarisAvatarDropdownSelectEvent>();\r\n @Output() readonly openChange = new EventEmitter<boolean>();\r\n\r\n onItemClick(item: SolarisAvatarDropdownItem, index: number, popover: SolarisPopover): void {\r\n if (item.disabled) return;\r\n\r\n this.itemSelect.emit({ item, index });\r\n\r\n if (this.closeOnSelect()) {\r\n popover.setOpen(false);\r\n }\r\n }\r\n}\r\n","<solaris-popover #popover [placement]=\"placement()\" [offset]=\"8\" [autoFlip]=\"true\" [autoShift]=\"true\"\r\n [closeOnEscape]=\"true\" [closeOnOutsideClick]=\"true\" panelClass=\"solaris-avatar-dropdown-popover\"\r\n (openChange)=\"openChange.emit($event)\">\r\n <button type=\"button\" solaris-popover-trigger class=\"solaris-avatar-dropdown__trigger\" [disabled]=\"disabled()\"\r\n [attr.aria-label]=\"panelLabel()\" [attr.aria-expanded]=\"popover.isOpen() ? 'true' : 'false'\"\r\n (click)=\"popover.toggle()\">\r\n <solaris-avatar-stack [items]=\"items()\" [max]=\"maxVisible()\" [size]=\"size()\" [shape]=\"shape()\" [overlap]=\"overlap()\"\r\n [showPresence]=\"false\"/>\r\n </button>\r\n\r\n <ng-template solaris-popover-panel>\r\n <div class=\"solaris-avatar-dropdown__panel\" role=\"listbox\" [attr.aria-label]=\"panelLabel()\">\r\n @for (item of items(); track item.id ?? item.name ?? item.src ?? $index) {\r\n <button type=\"button\" class=\"solaris-avatar-dropdown__item\" [disabled]=\"item.disabled\"\r\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\r\n (click)=\"onItemClick(item, $index, popover)\">\r\n <solaris-avatar size=\"sm\" [shape]=\"shape()\" [src]=\"item.src ?? null\" [alt]=\"item.alt ?? null\"\r\n [name]=\"item.name ?? null\" [initials]=\"item.initials ?? null\"/>\r\n\r\n <span class=\"solaris-avatar-dropdown__item-body\">\r\n <span class=\"solaris-avatar-dropdown__item-title\">\r\n {{ item.name || item.initials || 'User' }}\r\n </span>\r\n </span>\r\n </button>\r\n }\r\n </div>\r\n </ng-template>\r\n</solaris-popover>\r\n","import { Directive, HostBinding } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[solaris-card-media-overlay]',\r\n standalone: true,\r\n})\r\nexport class SolarisCardMediaOverlay {\r\n @HostBinding('attr.solaris-card-media-overlay')\r\n readonly attr = '';\r\n}\r\n","import { ChangeDetectionStrategy, Component, booleanAttribute, computed, input } from '@angular/core';\r\n\r\nimport { SolarisCardMediaAlign, SolarisCardMediaAppearance, SolarisCardMediaColor, SolarisCardMediaFit, SolarisCardMediaRatio,\r\n SolarisCardMediaOverlayPosition, SolarisCardMediaPadding, SolarisCardMediaVariant } from '../model/card-media.type';\r\nimport { SolarisRadiusPreset } from '../../../common/model/common-configurations.type';\r\n\r\n@Component({\r\n selector: 'solaris-card-media',\r\n standalone: true,\r\n templateUrl: './card-media.html',\r\n styleUrls: ['./card-media.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisCardMedia {\r\n readonly variant = input<SolarisCardMediaVariant>('image');\r\n\r\n readonly src = input<string | null>(null);\r\n readonly alt = input<string | null>(null);\r\n\r\n readonly color = input<SolarisCardMediaColor>('neutral');\r\n readonly appearance = input<SolarisCardMediaAppearance>('solid');\r\n\r\n readonly customRatio = input<string | null>(null);\r\n readonly ratio = input<SolarisCardMediaRatio>('16:9');\r\n\r\n readonly objectPosition = input<string>('center');\r\n readonly fit = input<SolarisCardMediaFit>('cover');\r\n\r\n readonly radius = input<SolarisRadiusPreset>('inherit');\r\n readonly align = input<SolarisCardMediaAlign>('center');\r\n readonly padding = input<SolarisCardMediaPadding>('md');\r\n\r\n readonly height = input<string | null>(null);\r\n readonly minHeight = input<string | null>(null);\r\n readonly maxHeight = input<string | null>(null);\r\n\r\n readonly shadow = input<string | null>(null);\r\n readonly background = input<string | null>(null);\r\n readonly foreground = input<string | null>(null);\r\n readonly borderColor = input<string | null>(null);\r\n\r\n readonly overlayInset = input<string | null>(null);\r\n readonly overlayPosition = input<SolarisCardMediaOverlayPosition>('top-end');\r\n\r\n readonly loading = input(false, { transform: booleanAttribute });\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n\r\n readonly showImage = computed(() => {\r\n return !this.loading()\r\n && this.variant() === 'image'\r\n && !!this.normalizedSrc();\r\n });\r\n\r\n readonly resolvedCustomRatio = computed(() => {\r\n return this.ratio() === 'custom' ? this.normalizedCustomRatio() : '';\r\n });\r\n\r\n readonly normalizedSrc = computed(() => this.normalize(this.src()));\r\n readonly normalizedAlt = computed(() => this.normalize(this.alt()));\r\n\r\n readonly normalizedShadow = computed(() => this.normalize(this.shadow()));\r\n readonly normalizedHeight = computed(() => this.normalize(this.height()));\r\n readonly normalizedMinHeight = computed(() => this.normalize(this.minHeight()));\r\n readonly normalizedMaxHeight = computed(() => this.normalize(this.maxHeight()));\r\n readonly normalizedBackground = computed(() => this.normalize(this.background()));\r\n readonly normalizedForeground = computed(() => this.normalize(this.foreground()));\r\n readonly normalizedBorderColor = computed(() => this.normalize(this.borderColor()));\r\n readonly normalizedCustomRatio = computed(() => this.normalize(this.customRatio()));\r\n readonly normalizedOverlayInset = computed(() => this.normalize(this.overlayInset()));\r\n\r\n private normalize(value: unknown): string {\r\n return String(value ?? '').trim();\r\n }\r\n}\r\n","<div class=\"solaris-card-media\" [class.is-loading]=\"loading()\" [class.is-disabled]=\"disabled()\" [attr.data-variant]=\"variant()\"\r\n [attr.data-appearance]=\"appearance()\" [attr.data-color]=\"color()\" [attr.data-ratio]=\"ratio()\" [attr.data-align]=\"align()\"\r\n [attr.data-radius]=\"radius()\" [attr.data-padding]=\"padding()\" [attr.data-overlay-position]=\"overlayPosition()\"\r\n [style.--solaris-card-media-fit]=\"fit()\" [style.--solaris-card-media-object-position]=\"objectPosition()\"\r\n [style.--solaris-card-media-custom-ratio]=\"resolvedCustomRatio() || null\"\r\n [style.--solaris-card-media-bg-override]=\"normalizedBackground() || null\"\r\n [style.--solaris-card-media-fg-override]=\"normalizedForeground() || null\"\r\n [style.--solaris-card-media-border-override]=\"normalizedBorderColor() || null\"\r\n [style.--solaris-card-media-shadow-override]=\"normalizedShadow() || null\"\r\n [style.--solaris-card-media-height]=\"normalizedHeight() || null\"\r\n [style.--solaris-card-media-min-height-override]=\"normalizedMinHeight() || null\"\r\n [style.--solaris-card-media-max-height]=\"normalizedMaxHeight() || null\"\r\n [style.--solaris-card-media-overlay-inset]=\"normalizedOverlayInset() || null\">\r\n\r\n <div class=\"solaris-card-media__surface\">\r\n @if (loading()) {\r\n <span class=\"solaris-card-media__skeleton\" aria-hidden=\"true\"></span>\r\n } @else if (showImage()) {\r\n <img class=\"solaris-card-media__image\" [src]=\"normalizedSrc()\" [alt]=\"normalizedAlt()\" decoding=\"async\">\r\n } @else {\r\n <div class=\"solaris-card-media__content\">\r\n <ng-content></ng-content>\r\n </div>\r\n }\r\n\r\n <div class=\"solaris-card-media__overlay\">\r\n <ng-content select=\"[solaris-card-media-overlay]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n","export type PhoneSanitizeConfig = {\r\n allowedChars: RegExp;\r\n};\r\n\r\nexport function sanitizePhoneInput(v: string): string {\r\n let s = (v ?? '').replace(/[^\\d+\\-\\s().]/g, '');\r\n s = s.replace(/\\+/g, (_m, offset) => (offset === 0 ? '+' : ''));\r\n return s;\r\n}\r\n\r\nexport function insertAtCursor(input: HTMLInputElement, text: string): void {\r\n const start = input.selectionStart ?? input.value.length;\r\n const end = input.selectionEnd ?? input.value.length;\r\n input.value = input.value.slice(0, start) + text + input.value.slice(end);\r\n const pos = start + text.length;\r\n input.setSelectionRange(pos, pos);\r\n}\r\n\r\nexport function enforceMaxDigitsInPlace(input: HTMLInputElement, maxDigits?: number): void {\r\n if (!maxDigits) return;\r\n\r\n const v = input.value ?? '';\r\n const sanitized = sanitizePhoneInput(v);\r\n\r\n const digits = (sanitized.match(/\\d/g) ?? []).length;\r\n if (digits <= maxDigits) {\r\n if (sanitized !== v) input.value = sanitized;\r\n return;\r\n }\r\n\r\n let digitCount = 0;\r\n let out = '';\r\n for (const ch of sanitized) {\r\n if (/\\d/.test(ch)) {\r\n if (digitCount >= maxDigits) break;\r\n digitCount++;\r\n }\r\n out += ch;\r\n }\r\n input.value = out;\r\n}\r\n\r\nexport function shouldBlockBeforeInput(ev: InputEvent, cfg: PhoneSanitizeConfig): boolean {\r\n return !!ev.data && !cfg.allowedChars.test(ev.data);\r\n}\r\n\r\nexport function shouldBlockKeyDown(ev: KeyboardEvent): boolean {\r\n if (ev.ctrlKey || ev.metaKey || ev.altKey) return false;\r\n\r\n const k = ev.key;\r\n const allowedControl = [\r\n 'Backspace', 'Delete', 'Tab', 'Enter', 'Escape',\r\n 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End',\r\n ];\r\n if (allowedControl.includes(k)) return false;\r\n if (/^\\d$/.test(k)) return false;\r\n return !(k === '+' || k === '-' || k === ' ' || k === '(' || k === ')' || k === '.');\r\n}\r\n","import { getCountries, getCountryCallingCode } from 'libphonenumber-js';\r\n\r\nexport function buildCallingCodeIndex(): Map<string, string[]> {\r\n const m = new Map<string, string[]>();\r\n for (const c of getCountries()) {\r\n const code = getCountryCallingCode(c);\r\n const arr = m.get(code) ?? [];\r\n arr.push(c.toLowerCase());\r\n m.set(code, arr);\r\n }\r\n return m;\r\n}\r\n\r\nexport function pickIso2ForCallingCode(\r\n callingCode: string,\r\n selectedIso2: string | null,\r\n index: Map<string, string[]>,\r\n preferredCountries?: string[],\r\n): string | null {\r\n const list = index.get(callingCode) ?? [];\r\n if (!list.length) return null;\r\n\r\n const sel = selectedIso2?.toLowerCase() ?? null;\r\n if (sel && list.includes(sel)) return sel;\r\n\r\n if (callingCode === '1') {\r\n if (list.includes('us')) return 'us';\r\n if (list.includes('ca')) return 'ca';\r\n }\r\n\r\n const preferred = (preferredCountries ?? []).map((x) => x.toLowerCase());\r\n for (const p of preferred) {\r\n if (list.includes(p)) return p;\r\n }\r\n\r\n return list[0] ?? null;\r\n}\r\n\r\nexport function getInitialCountryFromBrowser(fallbackIso2: string): string {\r\n const lang = globalThis?.navigator?.language ?? '';\r\n const region = lang.split('-')[1]?.toLowerCase() ?? '';\r\n return region.length === 2 ? region : fallbackIso2;\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface SolarisFormFieldFeature {\r\n kind: 'email' | 'password';\r\n}\r\n\r\nexport const SOLARIS_FORM_FIELD_FEATURES =\r\n new InjectionToken<ReadonlyArray<SolarisFormFieldFeature>>('SOLARIS_FORM_FIELD_FEATURES');\r\n","import { Injectable, Optional, inject, signal, DestroyRef } from '@angular/core';\r\nimport { NgControl, FormGroupDirective, NgForm } from '@angular/forms';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nimport type { SolarisPasswordDirective } from '../../input-text/directives/input-password.directive';\r\nimport type { SolarisEmailDirective } from '../../input-text/directives/input-email.directive';\r\nimport { SOLARIS_FORM_FIELD_FEATURES } from '../tokens/form-field-features';\r\n\r\n@Injectable()\r\nexport class SolarisFormFieldController {\r\n features = inject(SOLARIS_FORM_FIELD_FEATURES, { optional: true }) ?? [];\r\n @Optional() private readonly ngForm = inject(NgForm, { optional: true });\r\n @Optional() private readonly formGroupDir = inject(FormGroupDirective, { optional: true });\r\n private readonly destroyRef = inject(DestroyRef);\r\n\r\n readonly submitted = signal<boolean>(false);\r\n readonly control = signal<NgControl | null>(null);\r\n readonly email = signal<SolarisEmailDirective | null>(null);\r\n readonly password = signal<SolarisPasswordDirective | null>(null);\r\n\r\n constructor() {\r\n this.formGroupDir?.ngSubmit\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => this.submitted.set(true));\r\n\r\n this.ngForm?.ngSubmit\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => this.submitted.set(true));\r\n }\r\n\r\n registerPassword(dir: SolarisPasswordDirective | null) {\r\n this.password.set(dir);\r\n }\r\n\r\n registerEmail(dir: SolarisEmailDirective | null) {\r\n this.email.set(dir);\r\n }\r\n\r\n registerControl(ctrl: NgControl | null) {\r\n if (!ctrl && this.control()) return;\r\n this.control.set(ctrl);\r\n }\r\n\r\n passwordVisible(): boolean {\r\n return this.password()?.visible() ?? false;\r\n }\r\n\r\n togglePasswordVisibility(): void {\r\n this.password()?.toggle();\r\n }\r\n\r\n resetSubmitted() {\r\n this.submitted.set(false);\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface SolarisInputApi {\r\n element: HTMLInputElement | HTMLTextAreaElement;\r\n setType?(type: string): void;\r\n getType?(): string;\r\n}\r\n\r\nexport const SOLARIS_INPUT = new InjectionToken<SolarisInputApi>('SOLARIS_INPUT');\r\n","import { Directive, ElementRef, HostBinding, inject, Injector, Optional } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\r\nimport { SOLARIS_INPUT, SolarisInputApi } from '../tokens/input.token';\r\n\r\n@Directive({\r\n selector: 'input[solaris-input],textarea[solaris-input]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: SOLARIS_INPUT,\r\n useFactory: (): SolarisInputApi => {\r\n const el = inject(ElementRef<HTMLInputElement | HTMLTextAreaElement>).nativeElement;\r\n return {\r\n element: el,\r\n setType: (type: string) => {\r\n if (el instanceof HTMLInputElement) el.type = type;\r\n },\r\n getType: () => (el instanceof HTMLInputElement ? el.type : 'textarea'),\r\n };\r\n },\r\n },\r\n ],\r\n})\r\nexport class InputTextDirective {\r\n private readonly el = inject(ElementRef<HTMLInputElement | HTMLTextAreaElement>);\r\n private readonly injector = inject(Injector);\r\n\r\n @Optional()\r\n private readonly field = inject(SolarisFormFieldController, { optional: true });\r\n\r\n @HostBinding('attr.solaris-input') readonly attr = '';\r\n\r\n @HostBinding('attr.placeholder') get placeholderAttr() {\r\n return this.el.nativeElement.getAttribute('placeholder');\r\n }\r\n\r\n constructor() {\r\n queueMicrotask(() => {\r\n const ngc = this.injector.get(NgControl, null, { self: true, optional: true });\r\n this.field?.registerControl(ngc);\r\n });\r\n }\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, forwardRef, HostBinding, inject,\r\n Injector, Input, OnDestroy, Renderer2, ViewChild } from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n ValidationErrors,\r\n Validator\r\n} from '@angular/forms';\r\n\r\nimport { enforceMaxDigitsInPlace, insertAtCursor, sanitizePhoneInput, shouldBlockBeforeInput, shouldBlockKeyDown } from '../helper/phone-input.sanitize';\r\nimport { buildCallingCodeIndex, getInitialCountryFromBrowser, pickIso2ForCallingCode } from '../helper/phone-input.country';\r\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\r\nimport { InputTextDirective } from '../../input-text/directives/input-text.directive';\r\nimport type { ItiInstance, ItiUtils } from '../model/phone-input.iti-types';\r\nimport { AsYouType, parsePhoneNumberFromString, } from 'libphonenumber-js';\r\nimport { PhoneFormat, Iso2 } from '../model/phone-input.type';\r\nimport intlTelInput from 'intl-tel-input';\r\n\r\n@Component({\r\n selector: 'solaris-phone-input',\r\n standalone: true,\r\n templateUrl: './phone-input.html',\r\n styleUrl: './phone-input.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SolarisPhoneInput),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => SolarisPhoneInput),\r\n multi: true,\r\n },\r\n ],\r\n imports: [InputTextDirective],\r\n})\r\nexport class SolarisPhoneInput implements AfterViewInit, OnDestroy, ControlValueAccessor, Validator {\r\n private readonly field = inject(SolarisFormFieldController, { optional: true });\r\n private readonly renderer = inject(Renderer2);\r\n private readonly injector = inject(Injector);\r\n\r\n @HostBinding('attr.solaris-phone-input') readonly marker = '';\r\n @ViewChild('input', { static: false }) inputRef?: ElementRef<HTMLInputElement>;\r\n\r\n @Input() set placeholder(v: string | undefined) {\r\n this._placeholder = v;\r\n this.applyPlaceholderIfCustom();\r\n }\r\n get placeholder(): string | undefined {\r\n return this._placeholder;\r\n }\r\n\r\n @Input() format: PhoneFormat = 'e164';\r\n @Input({ alias: 'only-countries' }) onlyCountries?: Iso2[];\r\n @Input({ alias: 'default-country' }) defaultCountry: Iso2 = 'br';\r\n @Input({ alias: 'preferred-countries' }) preferredCountries?: Iso2[];\r\n\r\n private _raw = '';\r\n private maxDigits?: number;\r\n private _placeholder?: string;\r\n protected _disabled = false;\r\n private iti: ItiInstance | null = null;\r\n private _lastE164: string | null = null;\r\n private readonly allowedChars = /^[0-9+\\-\\s().]*$/;\r\n private callingCodeIndex = new Map<string, string[]>();\r\n\r\n private onChange: (v: string | null) => void = () => {};\r\n private onTouched: () => void = () => {};\r\n private onValidatorChange?: () => void;\r\n\r\n constructor() {\r\n queueMicrotask(() => {\r\n const ngControl = this.injector.get(NgControl, null, { self: true, optional: true });\r\n this.field?.registerControl(ngControl);\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const el = this.el;\r\n if (!el) return;\r\n this.callingCodeIndex = buildCallingCodeIndex();\r\n this.initIntlTelInput(el);\r\n this.setupListeners(el);\r\n\r\n if (this._raw) el.value = this._raw;\r\n\r\n this.normalizeAndFormat(true);\r\n this.recalculateLimits();\r\n this.afterUtilsReady();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n const el = this.el;\r\n if (el) this.teardownListeners(el);\r\n this.iti?.destroy?.();\r\n this.iti = null;\r\n }\r\n\r\n public writeValue(value: string | null): void {\r\n this._lastE164 = value ?? null;\r\n const el = this.el;\r\n if (!el) return;\r\n\r\n if (!value) {\r\n this._raw = '';\r\n el.value = '';\r\n this.recomputeFromRaw(true);\r\n return;\r\n }\r\n const iso2 = this.getSelectedIso2();\r\n const cc = iso2 ? iso2.toUpperCase() : undefined;\r\n const parsed = parsePhoneNumberFromString(value, cc as any);\r\n const next = parsed ? parsed.formatNational() : value;\r\n this._raw = next;\r\n el.value = next;\r\n\r\n this.recomputeFromRaw(true);\r\n }\r\n\r\n public registerOnChange(fn: (v: string | null) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public setDisabledState(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n const el = this.el;\r\n if (el) el.disabled = isDisabled;\r\n }\r\n\r\n public validate(): ValidationErrors | null {\r\n if (!this._raw?.trim()) return null;\r\n return this._lastE164 ? null : { solarisPhone: true };\r\n }\r\n\r\n public registerOnValidatorChange(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n protected onInput(silent = false): void {\r\n this.normalizeAndFormat(silent);\r\n }\r\n\r\n protected onBlur(): void {\r\n this.onTouched();\r\n const el = this.el;\r\n if (!el) return;\r\n\r\n this._raw = el.value ?? '';\r\n this.recomputeFromRaw(false);\r\n }\r\n\r\n protected onFocus(): void {\r\n const el = this.el;\r\n if (!el || this._disabled) return;\r\n if ((el.value ?? '').trim().length) return;\r\n\r\n const dial = this.getSelectedDialCode();\r\n if (!dial) return;\r\n\r\n const v = `+${dial} `;\r\n el.value = v;\r\n this._raw = v;\r\n\r\n queueMicrotask(() => el.setSelectionRange(v.length, v.length));\r\n this.recomputeFromRaw(false);\r\n }\r\n\r\n private normalizeAndFormat(silent: boolean): void {\r\n const el = this.el;\r\n if (!el) return;\r\n\r\n const raw = sanitizePhoneInput(el.value ?? '');\r\n const selectedIso2 = this.getSelectedIso2();\r\n const selectedCountry = selectedIso2 ? selectedIso2.toUpperCase() : undefined;\r\n\r\n const ayt = raw.trim().startsWith('+')\r\n ? new AsYouType()\r\n : new AsYouType(selectedCountry as any);\r\n\r\n const formatted = ayt.input(raw);\r\n el.value = formatted;\r\n this._raw = formatted;\r\n\r\n const number = ayt.getNumber();\r\n if (number?.countryCallingCode && this.iti) {\r\n const nextIso2 = pickIso2ForCallingCode(\r\n number.countryCallingCode,\r\n selectedIso2,\r\n this.callingCodeIndex,\r\n this.preferredCountries,\r\n );\r\n if (nextIso2 && nextIso2 !== selectedIso2) {\r\n this.setCountrySafely(nextIso2);\r\n }\r\n }\r\n\r\n enforceMaxDigitsInPlace(el, this.maxDigits);\r\n this.recomputeFromRaw(silent);\r\n }\r\n\r\n private recomputeFromRaw(silent: boolean): void {\r\n const raw = (this._raw ?? '').trim();\r\n\r\n if (!raw) {\r\n this._lastE164 = null;\r\n if (!silent) this.emit(null);\r\n return;\r\n }\r\n\r\n const iso2 = this.getSelectedIso2();\r\n const cc = iso2 ? iso2.toUpperCase() : undefined;\r\n\r\n const parsed = raw.startsWith('+')\r\n ? parsePhoneNumberFromString(raw)\r\n : parsePhoneNumberFromString(raw, cc as any);\r\n\r\n if (parsed?.isValid()) {\r\n this._lastE164 = parsed.number;\r\n if (!silent) this.emit(parsed.number);\r\n return;\r\n }\r\n\r\n this._lastE164 = null;\r\n if (!silent) this.emit(null);\r\n }\r\n\r\n private emit(v: string | null): void {\r\n this.onChange(v);\r\n this.onValidatorChange?.();\r\n }\r\n\r\n private initIntlTelInput(el: HTMLInputElement): void {\r\n const options: Record<string, unknown> = {\r\n initialCountry: getInitialCountryFromBrowser((this.defaultCountry || 'br').toLowerCase()),\r\n separateDialCode: false,\r\n nationalMode: false,\r\n formatOnDisplay: true,\r\n autoPlaceholder: 'aggressive',\r\n loadUtils: () => import('intl-tel-input/build/js/utils.js'),\r\n };\r\n\r\n const only = this.onlyCountries?.map((x) => x.toLowerCase());\r\n if (only?.length) options['onlyCountries'] = only;\r\n const preferred = this.preferredCountries?.map((x) => x.toLowerCase());\r\n if (preferred?.length) options['preferredCountries'] = preferred;\r\n this.iti = intlTelInput(el, options) as unknown as ItiInstance;\r\n this.applyPlaceholderIfCustom();\r\n }\r\n\r\n private afterUtilsReady(): void {\r\n const itiAny: any = this.iti as any;\r\n const p: Promise<unknown> | undefined = itiAny?.promise;\r\n\r\n const run = () => {\r\n const iso2 = this.getSelectedIso2();\r\n if (iso2) this.setCountrySafely(iso2);\r\n this.recalculateLimits();\r\n };\r\n\r\n if (p?.then) p.then(run);\r\n else queueMicrotask(run);\r\n }\r\n\r\n private setCountrySafely(iso2: string): void {\r\n try { (this.iti as any)?.setCountry?.(iso2) } catch {}\r\n }\r\n\r\n private recalculateLimits(): void {\r\n this.updateMaxDigits();\r\n const el = this.el;\r\n if (el) enforceMaxDigitsInPlace(el, this.maxDigits);\r\n }\r\n\r\n private updateMaxDigits(): void {\r\n if (!this.iti) {\r\n this.maxDigits = undefined;\r\n return;\r\n }\r\n\r\n const c: any = (this.iti as any).getSelectedCountryData?.();\r\n const iso2 = String(c?.iso2 ?? '').toLowerCase();\r\n const dialDigits = String(c?.dialCode ?? '').replace(/\\D/g, '').length;\r\n\r\n const u = this.getUtils();\r\n\r\n const exNationalDigits = this.safe(() => {\r\n if (!u?.getExampleNumber) return undefined;\r\n const t = u.numberType?.MOBILE;\r\n const ex = u.getExampleNumber?.(iso2, true, t);\r\n return ex ? (String(ex).match(/\\d/g) ?? []).length : undefined;\r\n });\r\n\r\n if (exNationalDigits && exNationalDigits > 0) {\r\n this.maxDigits = dialDigits + exNationalDigits;\r\n return;\r\n }\r\n\r\n const el = this.el;\r\n const ph = el?.getAttribute('placeholder') ?? '';\r\n const phDigits = (ph.match(/\\d/g) ?? []).length;\r\n this.maxDigits = phDigits > 0 ? phDigits : undefined;\r\n }\r\n\r\n private setupListeners(el: HTMLInputElement): void {\r\n el.addEventListener('beforeinput', this.onBeforeInput as any);\r\n el.addEventListener('keydown', this.onKeyDown);\r\n el.addEventListener('paste', this.onPaste);\r\n el.addEventListener('countrychange', this.onCountryChange);\r\n }\r\n\r\n private teardownListeners(el: HTMLInputElement): void {\r\n el.removeEventListener('beforeinput', this.onBeforeInput as any);\r\n el.removeEventListener('keydown', this.onKeyDown);\r\n el.removeEventListener('paste', this.onPaste);\r\n el.removeEventListener('countrychange', this.onCountryChange);\r\n }\r\n\r\n private readonly onCountryChange = () => {\r\n this.recalculateLimits();\r\n\r\n const el = this.el;\r\n if (!el || !(el.value ?? '').trim()) return;\r\n\r\n this._raw = el.value ?? '';\r\n this.normalizeAndFormat(false);\r\n };\r\n\r\n private readonly onBeforeInput = (ev: InputEvent) => {\r\n if (shouldBlockBeforeInput(ev, { allowedChars: this.allowedChars })) {\r\n ev.preventDefault();\r\n }\r\n };\r\n\r\n private readonly onKeyDown = (ev: KeyboardEvent) => {\r\n if (shouldBlockKeyDown(ev)) ev.preventDefault();\r\n };\r\n\r\n private readonly onPaste = (ev: ClipboardEvent) => {\r\n const el = this.el;\r\n if (!el) return;\r\n\r\n const text = ev.clipboardData?.getData('text') ?? '';\r\n if (!text) return;\r\n\r\n const sanitized = sanitizePhoneInput(text);\r\n if (sanitized === text) return;\r\n\r\n ev.preventDefault();\r\n insertAtCursor(el, sanitized);\r\n\r\n queueMicrotask(() => {\r\n this.recalculateLimits();\r\n this.normalizeAndFormat(false);\r\n });\r\n };\r\n\r\n private applyPlaceholderIfCustom(): void {\r\n const el = this.el;\r\n if (!el) return;\r\n\r\n const ph = this._placeholder?.trim();\r\n if (ph) this.renderer.setAttribute(el, 'placeholder', ph);\r\n }\r\n\r\n private getSelectedIso2(): string | null {\r\n try {\r\n const data = (this.iti as any)?.getSelectedCountryData?.();\r\n return (data?.iso2 as string | undefined)?.toLowerCase() ?? null;\r\n } catch {\r\n return null;\r\n }\r\n }\r\n\r\n private getSelectedDialCode(): string | null {\r\n try {\r\n const data = (this.iti as any)?.getSelectedCountryData?.();\r\n return (data?.dialCode as string | undefined) ?? null;\r\n } catch {\r\n return null;\r\n }\r\n }\r\n\r\n private getUtils(): ItiUtils | undefined {\r\n return (globalThis as any).intlTelInputUtils as ItiUtils | undefined;\r\n }\r\n\r\n private safe<T>(fn: () => T): T | undefined {\r\n try {\r\n return fn();\r\n } catch {\r\n return undefined;\r\n }\r\n }\r\n\r\n private get el(): HTMLInputElement | null {\r\n return this.inputRef?.nativeElement ?? null;\r\n }\r\n}\r\n","<input #input solaris-input type=\"tel\" [disabled]=\"_disabled\" (focus)=\"onFocus()\" (input)=\"onInput()\"\r\n (blur)=\"onBlur()\" data-bwignore=\"true\"/>\r\n","import { Directive, HostBinding, Optional, inject, signal, WritableSignal, Input, forwardRef, Injector } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, NgControl } from '@angular/forms';\r\n\r\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\r\nimport { SOLARIS_FORM_FIELD_FEATURES } from '../../form-field/tokens/form-field-features';\r\nimport { SolarisPasswordErrorBag } from '../models/password-directive.type';\r\n\r\n@Directive({\r\n selector: 'input[solaris-password]',\r\n standalone: true,\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => SolarisPasswordDirective), multi: true },\r\n { provide: SOLARIS_FORM_FIELD_FEATURES, useValue: { kind: 'password' }, multi: true }\r\n ],\r\n})\r\nexport class SolarisPasswordDirective implements Validator {\r\n @Input() minLength = 8;\r\n @Input() requireUpper = true;\r\n @Input() requireLower = true;\r\n @Input() requireNumber = true;\r\n @Input() requireSpecial = false;\r\n\r\n @Input() set requireUpperKebab(v: any) { this.requireUpper = coerceBoolean(v); this._onChange?.(); }\r\n @Input() set requireLowerKebab(v: any) { this.requireLower = coerceBoolean(v); this._onChange?.(); }\r\n @Input() set requireNumberKebab(v: any) { this.requireNumber = coerceBoolean(v); this._onChange?.(); }\r\n @Input() set minLengthKebab(v: any) { this.minLength = coerceNumber(v, 8); this._onChange?.(); }\r\n @Input() set requireSpecialKebab(v: any) { this.requireSpecial = coerceBoolean(v); this._onChange?.(); }\r\n\r\n @HostBinding('attr.type') get type() {\r\n return this.visible() ? 'text' : 'password';\r\n }\r\n @HostBinding('attr.spellcheck') spellcheck = 'false';\r\n @HostBinding('attr.solaris-password') readonly marker = '';\r\n @HostBinding('attr.solaris-input') readonly solarisInput = '';\r\n @HostBinding('attr.autocapitalize') autocapitalize = 'none';\r\n @HostBinding('attr.autocomplete') autocomplete = 'current-password';\r\n\r\n @Optional() private readonly field = inject(SolarisFormFieldController, { optional: true });\r\n private readonly injector = inject(Injector);\r\n\r\n readonly visible: WritableSignal<boolean> = signal(false);\r\n\r\n private _onChange?: () => void;\r\n\r\n constructor() {\r\n this.field?.registerPassword(this);\r\n queueMicrotask(() => {\r\n const ngc = this.injector.get(NgControl, null, { self: true, optional: true });\r\n this.field?.registerControl(ngc);\r\n });\r\n }\r\n\r\n public toggle(): void {\r\n this.visible.set(!this.visible());\r\n }\r\n\r\n public validate(control: AbstractControl): ValidationErrors | null {\r\n const v = String(control.value ?? '');\r\n if (!v) return null;\r\n\r\n const errors: SolarisPasswordErrorBag = {};\r\n\r\n if (this.minLength && v.length < this.minLength) {\r\n errors.minLength = { requiredLength: this.minLength, actualLength: v.length };\r\n }\r\n if (this.requireLower && !/[a-z]/.test(v)) errors.lowercase = true;\r\n if (this.requireUpper && !/[A-Z]/.test(v)) errors.uppercase = true;\r\n if (this.requireNumber && !/\\d/.test(v)) errors.number = true;\r\n if (this.requireSpecial && !/[^\\w\\s]/.test(v)) errors.special = true;\r\n\r\n return Object.keys(errors).length ? { solarisPassword: errors } : null;\r\n }\r\n\r\n public registerOnValidatorChange(fn: () => void): void {\r\n this._onChange = fn;\r\n }\r\n}\r\n\r\nfunction coerceBoolean(v: any): boolean {\r\n return v === '' || v === true || v === 'true' || v === 1 || v === '1';\r\n}\r\n\r\nfunction coerceNumber(v: any, fallback: number): number {\r\n const n = Number(v);\r\n return Number.isFinite(n) ? n : fallback;\r\n}\r\n","import { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, NgControl } from '@angular/forms';\r\nimport { Directive, forwardRef, HostBinding, inject, Optional, Injector } from '@angular/core';\r\n\r\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\r\nimport { SOLARIS_FORM_FIELD_FEATURES } from '../../form-field/tokens/form-field-features';\r\n\r\n@Directive({\r\n selector: 'input[solaris-email],input[solarisEmail]',\r\n standalone: true,\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => SolarisEmailDirective), multi: true },\r\n { provide: SOLARIS_FORM_FIELD_FEATURES, useValue: { kind: 'email' }, multi: true }\r\n ],\r\n})\r\nexport class SolarisEmailDirective implements Validator {\r\n @HostBinding('attr.type') type = 'email';\r\n @HostBinding('attr.inputmode') inputmode = 'email';\r\n @HostBinding('attr.spellcheck') spellcheck = 'false';\r\n @HostBinding('attr.autocomplete') autocomplete = 'email';\r\n @HostBinding('attr.solaris-input') readonly solarisInput = '';\r\n @HostBinding('attr.autocapitalize') autocapitalize = 'none';\r\n @Optional() private readonly field = inject(SolarisFormFieldController, { optional: true });\r\n private readonly injector = inject(Injector);\r\n\r\n constructor() {\r\n this.field?.registerEmail(this);\r\n queueMicrotask(() => {\r\n const ngc = this.injector.get(NgControl, null, { self: true, optional: true });\r\n this.field?.registerControl(ngc);\r\n });\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const v = String(control.value ?? '').trim();\r\n if (!v) return null;\r\n const ok = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(v);\r\n return ok ? null : { solarisEmail: true };\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface SolarisFormFieldControllerLike {\r\n passwordVisible(): boolean\r\n togglePasswordVisibility(): void;\r\n}\r\n\r\nexport const SOLARIS_FORM_FIELD_CONTROLLER =\r\n new InjectionToken<SolarisFormFieldControllerLike>('SOLARIS_FORM_FIELD_CONTROLLER');\r\n","import { ChangeDetectionStrategy, Component, HostBinding, Optional, inject } from '@angular/core';\r\n\r\nimport { SOLARIS_FORM_FIELD_CONTROLLER, SolarisFormFieldControllerLike } from '../../form-field/tokens/form-field-controller.token';\r\nimport { SOLARIS_TRANSLATION, TranslationInterface } from '@educarehq/solaris-services';\r\n\r\n@Component({\r\n selector: 'solaris-password-toggle',\r\n standalone: true,\r\n templateUrl: './password-toggle.html',\r\n styleUrls: ['./password-toggle.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PasswordToggle {\r\n private readonly translationService: TranslationInterface = inject(SOLARIS_TRANSLATION);\r\n\r\n @HostBinding('attr.solaris-suffix') readonly solarisSuffix = '';\r\n @Optional() private readonly field = inject<SolarisFormFieldControllerLike>(SOLARIS_FORM_FIELD_CONTROLLER, { optional: true });\r\n\r\n protected visible = () => this.field?.passwordVisible() ?? false;\r\n\r\n protected toggle(): void {\r\n this.field?.togglePasswordVisibility();\r\n }\r\n protected get ariaLabelHide() { return this.translationService.translate('ui.solaris.password.aria.hidePassword'); }\r\n protected get ariaLabelShow() { return this.translationService.translate('ui.solaris.password.aria.showPassword'); }\r\n}\r\n","<button class=\"solaris-password-toggle\" type=\"button\" (click)=\"toggle()\" [attr.aria-pressed]=\"visible() ? 'true' : 'false'\"\r\n [attr.aria-label]=\"visible() ? ariaLabelHide : ariaLabelShow\">\r\n @if (visible()) { <i class=\"ph ph-eye-slash\"></i> }\r\n @else { <i class=\"ph ph-eye\"></i> }\r\n</button>\r\n","import { Directive, Optional, inject } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\nimport { SolarisFormFieldController } from '../controller/form-field-controller';\r\n\r\n@Directive({\r\n selector: 'input[solaris-password],input[solaris-email],input[solaris-input],textarea[solaris-input]',\r\n standalone: true,\r\n})\r\nexport class SolarisControlBridgeDirective {\r\n @Optional() private readonly ctrl = inject(NgControl, { optional: true });\r\n @Optional() private readonly field = inject(SolarisFormFieldController, { optional: true });\r\n\r\n constructor() {\r\n if (this.ctrl) this.field?.registerControl(this.ctrl);\r\n }\r\n}\r\n","import { Directive, HostBinding } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[solaris-prefix]',\r\n standalone: true,\r\n})\r\nexport class SolarisPrefixDirective {\r\n @HostBinding('attr.solaris-prefix') readonly attr = '';\r\n}\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[solaris-suffix]',\r\n standalone: true\r\n})\r\nexport class SolarisSuffixDirective {}\r\n","import { ChangeDetectionStrategy, Component, ContentChild, Input, computed, effect, inject, signal, input } from '@angular/core';\r\n\r\nimport { SolarisFormFieldAppearance, SolarisFormFieldRadius } from '../model/form-field.type';\r\nimport { SOLARIS_FORM_FIELD_CONTROLLER } from '../tokens/form-field-controller.token';\r\nimport { SolarisShowErrors } from '../../../common/model/common-configurations.type';\r\nimport { PasswordToggle } from '../../input-text/password-toggle/password-toggle';\r\nimport { SolarisFormFieldController } from '../controller/form-field-controller';\r\nimport { SolarisPrefixDirective } from '../directives/prefix.directive';\r\nimport { SolarisSuffixDirective } from '../directives/suffix.directive';\r\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\r\nimport { FieldErrorComponent } from '../messages/error/field-error';\r\nimport { merge } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'solaris-form-field',\r\n standalone: true,\r\n imports: [PasswordToggle, FieldErrorComponent, SolarisTranslationPipe],\r\n templateUrl: './form-field.html',\r\n styleUrls: ['./form-field.scss'],\r\n providers: [\r\n SolarisFormFieldController,\r\n { provide: SOLARIS_FORM_FIELD_CONTROLLER, useExisting: SolarisFormFieldController },\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FormField {\r\n protected readonly field = inject(SolarisFormFieldController);\r\n @ContentChild(SolarisPrefixDirective) prefix?: SolarisPrefixDirective;\r\n @ContentChild(SolarisSuffixDirective) suffix?: SolarisSuffixDirective;\r\n\r\n @Input() public hint?: string = '';\r\n @Input() public label?: string = '';\r\n @Input() public hintKey?: string = '';\r\n @Input() public labelKey?: string = '';\r\n @Input() public radius: SolarisFormFieldRadius = 'sm';\r\n @Input() public showErrors: SolarisShowErrors = 'dirtyOrTouched';\r\n @Input() public appearance: SolarisFormFieldAppearance = 'filled';\r\n\r\n private readonly _tick = signal(0);\r\n readonly customErrorKey = input<string>('');\r\n readonly invalid = input<boolean | null>(null);\r\n readonly customErrorParams = input<Record<string, unknown> | undefined>(undefined);\r\n\r\n constructor() {\r\n effect((onCleanup) => {\r\n const ac = this.field.control()?.control;\r\n if (!ac) return;\r\n\r\n const sub = merge(ac.statusChanges, ac.valueChanges).subscribe(() => {\r\n this._tick.update(v => v + 1);\r\n });\r\n\r\n onCleanup(() => sub.unsubscribe());\r\n });\r\n }\r\n\r\n get hasPrefix(): boolean { return !!this.prefix; }\r\n get hasSuffix(): boolean { return !!this.suffix; }\r\n\r\n private getDirectErrorKey(errors: Record<string, any>): string {\r\n if (errors['required']) return 'ui.solaris.validation.required';\r\n if (errors['email'] || errors['solarisEmail']) return 'ui.solaris.validation.email';\r\n return '';\r\n }\r\n\r\n private getPasswordErrorKey(bag: any): string {\r\n if (bag?.minLength) return 'ui.solaris.validation.password.minLength';\r\n if (bag?.uppercase) return 'ui.solaris.validation.password.uppercase';\r\n if (bag?.lowercase) return 'ui.solaris.validation.password.lowercase';\r\n if (bag?.number) return 'ui.solaris.validation.password.number';\r\n if (bag?.special) return 'ui.solaris.validation.password.special';\r\n return 'ui.solaris.validation.password.invalid';\r\n }\r\n\r\n readonly showPasswordToggle = computed(() => !!this.field.password());\r\n\r\n readonly invalidComputed = computed(() => {\r\n this._tick();\r\n const invalid = this.invalid();\r\n if (invalid !== null) return invalid;\r\n const c = this.field.control();\r\n if (!c) return false;\r\n if (this.showErrors === 'always') return !!c.invalid;\r\n if (this.showErrors === 'submitted') return !!(c.invalid && this.field.submitted());\r\n return !!(c.invalid && (c.touched || c.dirty));\r\n });\r\n\r\n readonly errorParams = computed<Record<string, unknown> | undefined>(() => {\r\n this._tick();\r\n if (!this.invalidComputed()) return undefined;\r\n\r\n const customKey = this.customErrorKey()?.trim();\r\n if (customKey) {\r\n return this.customErrorParams();\r\n }\r\n\r\n const errors = this.field.control()?.errors;\r\n if (!errors) return undefined;\r\n\r\n if (errors['solarisPassword']) {\r\n return errors['solarisPassword'];\r\n }\r\n\r\n return undefined;\r\n });\r\n\r\n readonly errorKey = computed(() => {\r\n this._tick();\r\n\r\n if (!this.invalidComputed()) return '';\r\n\r\n const customKey = this.customErrorKey()?.trim();\r\n if (customKey) return customKey;\r\n\r\n const errors = this.field.control()?.errors;\r\n if (!errors) return '';\r\n\r\n const direct = this.getDirectErrorKey(errors);\r\n if (direct) return direct;\r\n\r\n if (errors['solarisPassword']) {\r\n return this.getPasswordErrorKey(errors['solarisPassword']);\r\n }\r\n\r\n return 'solaris.validation.invalid';\r\n });\r\n\r\n readonly disabledComputed = computed(() => {\r\n this._tick();\r\n const c = this.field.control();\r\n return !!c?.disabled;\r\n });\r\n}\r\n","<div class=\"solaris-form-field\" [class.solaris-form-field--has-prefix]=\"hasPrefix\" [attr.data-appearance]=\"appearance\"\r\n [attr.data-invalid]=\"invalidComputed() ? 'true' : null\" [attr.data-radius]=\"radius\"\r\n [attr.data-disabled]=\"disabledComputed() ? 'true' : null\">\r\n @if ((label || labelKey)) {\r\n <label class=\"solaris-form-field__label\">\r\n @if (labelKey) { {{ labelKey | translate }} }\r\n @else if (label) { {{ label }} }\r\n </label>\r\n }\r\n\r\n <div class=\"solaris-form-field__frame\">\r\n @if (hasPrefix) {\r\n <span class=\"solaris-form-field__prefix\" aria-hidden=\"true\">\r\n <ng-content select=\"[solaris-prefix]\"></ng-content>\r\n </span>\r\n }\r\n\r\n <div class=\"solaris-form-field__body\">\r\n <div class=\"solaris-form-field__control-slot\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n @if (hasSuffix || showPasswordToggle() || invalidComputed() || disabledComputed()) {\r\n <span class=\"solaris-form-field__suffix\">\r\n @if (disabledComputed()) {\r\n <span class=\"solaris-form-field__status solaris-form-field__status--disabled\" aria-hidden=\"true\">\r\n <i class=\"ph ph-lock-simple\"></i>\r\n </span>\r\n } @else {\r\n <ng-content select=\"[solaris-suffix]\"></ng-content>\r\n\r\n @if (showPasswordToggle()) {\r\n <solaris-password-toggle></solaris-password-toggle>\r\n }\r\n\r\n @if (invalidComputed()) {\r\n <span class=\"solaris-form-field__status\" aria-hidden=\"true\">\r\n <i class=\"ph ph-warning-circle\"></i>\r\n </span>\r\n }\r\n }\r\n </span>\r\n }\r\n </div>\r\n </div>\r\n\r\n @if (errorKey()) {\r\n <solaris-field-error [textKey]=\"errorKey()\" [textParams]=\"errorParams()\"></solaris-field-error>\r\n } @else {\r\n <ng-content select=\"[form-field-message]\"></ng-content>\r\n }\r\n\r\n @if (hint || hintKey) {\r\n <div class=\"solaris-form-field__hint\">\r\n @if (hintKey) { {{ hintKey | translate }} }\r\n @else { {{ hint }} }\r\n </div>\r\n }\r\n</div>\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, HostBinding, Input,\r\n Optional, ViewChild, computed, effect, inject, signal, Injector, forwardRef, OnInit } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\r\nimport { NgOptimizedImage } from '@angular/common';\r\n\r\nimport { SolarisSelectNode, SelectionDisplay, StackLevel, SolarisSelectItem, SolarisSelectRow } from '../model/select.type';\r\nimport { SolarisPopoverTriggerDirective } from '../../../navigations/popover/directives/popover-trigger.directive';\r\nimport { SolarisPopoverPanelDirective } from '../../../navigations/popover/directives/popover-panel.directive';\r\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\r\nimport { SolarisTranslationPipe, SOLARIS_TRANSLATION } from '@educarehq/solaris-services';\r\nimport { SolarisPopover } from '../../../navigations/popover/component/popover';\r\n\r\n@Component({\r\n selector: 'solaris-select',\r\n standalone: true,\r\n imports: [\r\n SolarisPopover,\r\n SolarisPopoverTriggerDirective,\r\n SolarisPopoverPanelDirective,\r\n SolarisTranslationPipe,\r\n NgOptimizedImage,\r\n ],\r\n templateUrl: './select.html',\r\n styleUrls: ['./select.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SolarisSelect),\r\n multi: true,\r\n },\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SolarisSelect implements OnInit, ControlValueAccessor, AfterViewInit {\r\n private readonly translationService = inject(SOLARIS_TRANSLATION);\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly injector = inject(Injector);\r\n\r\n @Optional() private readonly field = inject(SolarisFormFieldController, { optional: true });\r\n\r\n @ViewChild('tokenEl', { read: ElementRef }) tokenEl?: ElementRef<HTMLElement>;\r\n @ViewChild('measureSlot', { read: ElementRef }) measureSlot?: ElementRef<HTMLElement>;\r\n @ViewChild('triggerWrap', { read: ElementRef }) triggerWrap?: ElementRef<HTMLElement>;\r\n @ViewChild('triggerInput', { read: ElementRef }) triggerInput?: ElementRef<HTMLInputElement>;\r\n\r\n @HostBinding('attr.data-open') get dataOpen() {\r\n return this.open() ? 'true' : null;\r\n }\r\n\r\n @HostBinding('attr.data-compact') get dataCompact() {\r\n return this.compactInput() ? 'true' : null;\r\n }\r\n\r\n @HostBinding('attr.data-multiple') get dataMultiple() {\r\n return this.multiple ? 'true' : 'false';\r\n }\r\n\r\n private readonly _rootNodes = signal<SolarisSelectNode[]>([]);\r\n\r\n @Input() set items(v: SolarisSelectNode[] | null | undefined) {\r\n this._rootNodes.set(v ?? []);\r\n this.resetStack();\r\n\r\n const cur = this._value();\r\n const next = this.sanitizeValue(cur);\r\n const changed = !this.sameCvaValue(cur, next);\r\n\r\n if (changed) this._value.set(next);\r\n }\r\n\r\n private _multiple = false;\r\n\r\n @Input() set multiple(v: boolean) {\r\n this._multiple = v;\r\n\r\n const cur = this._value();\r\n\r\n if (this._multiple && !Array.isArray(cur)) this._value.set([]);\r\n if (!this._multiple && Array.isArray(cur)) this._value.set(null);\r\n }\r\n\r\n get multiple() {\r\n return this._multiple;\r\n }\r\n\r\n @Input() valueKey?: string;\r\n @Input() backKey = '';\r\n @Input() placeholder = '';\r\n @Input() placeholderKey = '';\r\n @Input() searchable = true;\r\n @Input() selectedCountKey = '';\r\n @Input() selectedFirst = true;\r\n @Input() searchPlaceholder = '';\r\n @Input() selectedCountText = '';\r\n @Input() panelMaxHeight = '32rem';\r\n @Input() searchPlaceholderKey = '';\r\n @Input() selectionSeparator = ', ';\r\n @Input() compareWith?: (a: any, b: any) => boolean;\r\n @Input() backText = 'ui.solaris.common.back';\r\n @Input() selectionDisplay: SelectionDisplay = 'auto';\r\n\r\n private readonly _disabled = signal(false);\r\n\r\n @Input() set disabled(v: boolean) {\r\n this._disabled.set(v);\r\n if (v) this.open.set(false);\r\n }\r\n\r\n get disabled() {\r\n return this._disabled();\r\n }\r\n\r\n readonly open = signal(false);\r\n readonly searchTerm = signal('');\r\n readonly activeIndex = signal(0);\r\n readonly showCount = signal(false);\r\n\r\n private readonly _value = signal<any>(null);\r\n private readonly _stack = signal<StackLevel[]>([]);\r\n\r\n readonly selectedItems = computed(() => {\r\n const all: SolarisSelectItem[] = [];\r\n this.collectAllItems(this._rootNodes(), all);\r\n\r\n const v = this._value();\r\n\r\n if (this.multiple) {\r\n const arr = Array.isArray(v) ? v : [];\r\n return all.filter(it => arr.some(s => this.eq(s, it.value)));\r\n }\r\n\r\n return all.filter(it => v != null && this.eq(v, it.value));\r\n });\r\n\r\n readonly showToken = computed(() => {\r\n return this.selectedCount() > 0;\r\n });\r\n\r\n readonly selectedText = computed(() => {\r\n const items = this.selectedItems();\r\n if (!items.length) return '';\r\n\r\n return items\r\n .map(it => this.itemLabel(it))\r\n .filter(Boolean)\r\n .join(this.selectionSeparator);\r\n });\r\n\r\n readonly triggerValue = computed(() => {\r\n if (this.isSearchMode()) return this.searchTerm();\r\n return '';\r\n });\r\n\r\n readonly activeOptionId = computed(() => {\r\n const idx = this.activeIndex();\r\n const row = this.itemRows()[idx];\r\n\r\n return row?.id ?? null;\r\n });\r\n\r\n readonly inputPlaceholderKey = computed(() => {\r\n if (this.selectedCount() > 0) return '';\r\n if (this.searchTerm().length > 0) return '';\r\n\r\n return this.open() && this.searchable\r\n ? this.searchPlaceholderKey || this.placeholderKey || ''\r\n : this.placeholderKey || '';\r\n });\r\n\r\n readonly inputPlaceholderText = computed(() => {\r\n if (this.selectedCount() > 0) return '';\r\n if (this.searchTerm().length > 0) return '';\r\n\r\n return this.open() && this.searchable\r\n ? this.searchPlaceholder || this.placeholder || 'Search...'\r\n : this.placeholder || '';\r\n });\r\n\r\n readonly viewModel = computed(() => {\r\n const lvl = this.currentLevel();\r\n const ordered = this.applySelectedFirst(lvl.nodes);\r\n const filtered = this.filterNodes(ordered, this.searchTerm());\r\n return this.buildRows(filtered);\r\n });\r\n\r\n readonly rows = computed(() => this.viewModel().rows);\r\n readonly canGoBack = computed(() => this._stack().length > 1);\r\n readonly selectedCount = computed(() => this.selectedItems().length);\r\n readonly isSearchMode = computed(() => this.open() && this.searchable);\r\n readonly itemRows = computed(() => this.viewModel().itemRows);\r\n readonly compactInput = computed(() => this.selectedCount() > 0 && this.searchTerm().length === 0);\r\n readonly currentLevel = computed(() => this._stack().at(-1) ?? { nodes: this._rootNodes() });\r\n\r\n private static seq = 0;\r\n\r\n private _measureNonce = 0;\r\n private resizeObs?: ResizeObserver;\r\n private propagateTouched: () => void = () => {};\r\n private propagateChange: (v: any) => void = () => {};\r\n private resolvedNgControl: NgControl | null | undefined = undefined;\r\n\r\n matchWidthEl: HTMLElement | null = null;\r\n\r\n public readonly _id = `solaris-select-${++SolarisSelect.seq}`;\r\n\r\n constructor() {\r\n this.resetStack();\r\n\r\n effect(() => {\r\n this.selectedText();\r\n this.compactInput();\r\n this.scheduleAutoMeasure();\r\n });\r\n\r\n effect(() => {\r\n const isOpen = this.open();\r\n\r\n if (isOpen) {\r\n this.activeIndex.set(0);\r\n this.scheduleFocusTrigger();\r\n } else {\r\n this.propagateTouched();\r\n this.searchTerm.set('');\r\n this.resetStack();\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.resolveNgControlOnce();\r\n }\r\n\r\n ngAfterViewInit() {\r\n const trigger = this.triggerWrap?.nativeElement;\r\n\r\n if (trigger) {\r\n this.matchWidthEl =\r\n (trigger.closest('.solaris-form-field')?.querySelector('.solaris-form-field__frame') as HTMLElement) ??\r\n null;\r\n }\r\n\r\n const el = this.triggerWrap?.nativeElement;\r\n\r\n if (!el) return;\r\n if (typeof ResizeObserver === 'undefined') return;\r\n\r\n this.resizeObs = new ResizeObserver(() => this.scheduleAutoMeasure(true));\r\n this.resizeObs.observe(el);\r\n\r\n if ((document as any).fonts?.ready) {\r\n (document as any).fonts.ready.then(() => this.scheduleAutoMeasure(true));\r\n }\r\n\r\n this.destroyRef.onDestroy(() => this.resizeObs?.disconnect());\r\n }\r\n\r\n writeValue(obj: any): void {\r\n this._value.set(this.sanitizeValue(obj));\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.propagateChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.propagateTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled.set(isDisabled);\r\n }\r\n\r\n private translate(key?: string, params?: any): string {\r\n if (!key) return '';\r\n return this.translationService.translate(key, params);\r\n }\r\n\r\n private itemLabel(item: SolarisSelectItem): string {\r\n if (item.labelKey) return this.translate(item.labelKey);\r\n return item.label ?? item.searchText ?? '';\r\n }\r\n\r\n private itemDescription(item: SolarisSelectItem): string {\r\n if (item.descriptionKey) return this.translate(item.descriptionKey);\r\n return item.description ?? '';\r\n }\r\n\r\n private itemEndText(item: SolarisSelectItem): string {\r\n if (item.endTextKey) return this.translate(item.endTextKey);\r\n return item.endText ?? '';\r\n }\r\n\r\n private itemSearchText(item: SolarisSelectItem): string {\r\n return [\r\n item.searchText,\r\n this.itemLabel(item),\r\n this.itemDescription(item),\r\n this.itemEndText(item),\r\n item.labelKey,\r\n item.descriptionKey,\r\n item.endTextKey,\r\n ]\r\n .filter(Boolean)\r\n .join(' ')\r\n .toLowerCase();\r\n }\r\n\r\n private sameCvaValue(a: any, b: any): boolean {\r\n if (this.multiple) {\r\n const aa = Array.isArray(a) ? a : [];\r\n const bb = Array.isArray(b) ? b : [];\r\n\r\n if (aa.length !== bb.length) return false;\r\n\r\n for (let i = 0; i < aa.length; i++) {\r\n if (!this.eq(aa[i], bb[i])) return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n if (a == null && b == null) return true;\r\n if (a == null || b == null) return false;\r\n\r\n return this.eq(a, b);\r\n }\r\n\r\n private eq(a: any, b: any): boolean {\r\n if (this.compareWith) return this.compareWith(a, b);\r\n if (this.valueKey) return a?.[this.valueKey] === b?.[this.valueKey];\r\n\r\n return Object.is(a, b);\r\n }\r\n\r\n private resolveNgControlOnce() {\r\n if (this.resolvedNgControl !== undefined) return;\r\n\r\n this.resolvedNgControl = this.injector.get(NgControl, null, {\r\n self: true,\r\n optional: true,\r\n });\r\n\r\n if (this.resolvedNgControl) {\r\n this.field?.registerControl(this.resolvedNgControl);\r\n }\r\n }\r\n\r\n private collectAllItems(nodes: SolarisSelectNode[], out: SolarisSelectItem[]) {\r\n for (const n of nodes) {\r\n if (n.kind === 'item') {\r\n out.push(n);\r\n\r\n if (n.children?.length) {\r\n this.collectAllItems(n.children, out);\r\n }\r\n } else if (n.kind === 'group') {\r\n this.collectAllItems(n.items, out);\r\n }\r\n }\r\n }\r\n\r\n private resetStack() {\r\n this._stack.set([{ nodes: this._rootNodes() }]);\r\n }\r\n\r\n public goBack() {\r\n if (!this.canGoBack()) return;\r\n\r\n const s = [...this._stack()];\r\n s.pop();\r\n\r\n this._stack.set(s);\r\n this.activeIndex.set(0);\r\n this.scheduleFocusTrigger();\r\n }\r\n\r\n private enterChildren(item: SolarisSelectItem) {\r\n if (!item.children?.length) return;\r\n\r\n this._stack.set([\r\n ...this._stack(),\r\n {\r\n title: item.childrenTitle,\r\n titleKey: item.childrenTitleKey,\r\n nodes: item.children,\r\n },\r\n ]);\r\n\r\n this.activeIndex.set(0);\r\n this.scheduleFocusTrigger();\r\n }\r\n\r\n private filterNodes(nodes: SolarisSelectNode[], termRaw: string): SolarisSelectNode[] {\r\n const term = termRaw.trim().toLowerCase();\r\n\r\n if (!term) return nodes;\r\n\r\n const matchItem = (it: SolarisSelectItem) => {\r\n return this.itemSearchText(it).includes(term);\r\n };\r\n\r\n const walk = (list: SolarisSelectNode[]): SolarisSelectNode[] => {\r\n const res: SolarisSelectNode[] = [];\r\n\r\n for (const n of list) {\r\n if (n.kind === 'divider') {\r\n res.push(n);\r\n continue;\r\n }\r\n\r\n if (n.kind === 'group') {\r\n const sub = walk(n.items);\r\n\r\n if (sub.some(x => x.kind !== 'divider')) {\r\n res.push({ ...n, items: sub });\r\n }\r\n\r\n continue;\r\n }\r\n\r\n if (n.children?.length) {\r\n const sub = walk(n.children);\r\n\r\n if (matchItem(n) || sub.some(x => x.kind !== 'divider')) {\r\n res.push({ ...n, children: sub });\r\n }\r\n } else if (matchItem(n)) {\r\n res.push(n);\r\n }\r\n }\r\n\r\n return this.cleanupDividers(res);\r\n };\r\n\r\n return walk(nodes);\r\n }\r\n\r\n private cleanupDividers(nodes: SolarisSelectNode[]): SolarisSelectNode[] {\r\n const out: SolarisSelectNode[] = [];\r\n\r\n for (const n of nodes) {\r\n if (n.kind === 'divider') {\r\n if (!out.length) continue;\r\n if (out.at(-1)?.kind === 'divider') continue;\r\n }\r\n\r\n out.push(n);\r\n }\r\n\r\n while (out.length && out[0].kind === 'divider') out.shift();\r\n while (out.length && out.at(-1)?.kind === 'divider') out.pop();\r\n\r\n return out;\r\n }\r\n\r\n private applySelectedFirst(nodes: SolarisSelectNode[]): SolarisSelectNode[] {\r\n if (!this.multiple || !this.selectedFirst) return nodes;\r\n\r\n const selected = (it: SolarisSelectItem) => {\r\n const v = this._value();\r\n const arr = Array.isArray(v) ? v : [];\r\n\r\n return arr.some(s => this.eq(s, it.value));\r\n };\r\n\r\n const reorderSegment = (segment: SolarisSelectNode[]) => {\r\n const items: SolarisSelectItem[] = [];\r\n const others: SolarisSelectNode[] = [];\r\n\r\n for (const n of segment) {\r\n if (n.kind === 'item') {\r\n items.push(n);\r\n } else if (n.kind === 'group') {\r\n others.push({ ...n, items: this.applySelectedFirst(n.items) });\r\n } else {\r\n others.push(n);\r\n }\r\n }\r\n\r\n const sel: SolarisSelectItem[] = [];\r\n const non: SolarisSelectItem[] = [];\r\n\r\n for (const it of items) {\r\n if (selected(it)) {\r\n sel.push(it);\r\n } else {\r\n non.push(it);\r\n }\r\n }\r\n\r\n return [...sel, ...non, ...others];\r\n };\r\n\r\n const res: SolarisSelectNode[] = [];\r\n let buf: SolarisSelectNode[] = [];\r\n\r\n const flush = () => {\r\n if (!buf.length) return;\r\n\r\n res.push(...reorderSegment(buf));\r\n buf = [];\r\n };\r\n\r\n for (const n of nodes) {\r\n if (n.kind === 'divider') {\r\n flush();\r\n res.push(n);\r\n } else {\r\n buf.push(n);\r\n }\r\n }\r\n\r\n flush();\r\n\r\n return this.cleanupDividers(res);\r\n }\r\n\r\n private buildRows(nodes: SolarisSelectNode[]) {\r\n const rows: SolarisSelectRow[] = [];\r\n let optionIndex = 0;\r\n\r\n const pushItem = (it: SolarisSelectItem) => {\r\n const hasChildren = !!it.children?.length;\r\n const selectable = !hasChildren;\r\n const disabled = !!it.disabled;\r\n const selected = selectable ? this.isSelected(it.value) : false;\r\n\r\n rows.push({\r\n kind: 'item',\r\n key: `item-${optionIndex}-${this.itemLabel(it)}-${String(it.value)}`,\r\n id: `${this._id}-opt-${optionIndex}`,\r\n optionIndex,\r\n item: it,\r\n disabled,\r\n selected,\r\n hasChildren,\r\n selectable,\r\n });\r\n\r\n optionIndex++;\r\n };\r\n\r\n const walk = (list: SolarisSelectNode[]) => {\r\n for (const n of list) {\r\n if (n.kind === 'divider') {\r\n rows.push({ kind: 'divider', key: `div-${rows.length}` });\r\n continue;\r\n }\r\n\r\n if (n.kind === 'group') {\r\n rows.push({\r\n kind: 'group',\r\n key: `grp-${rows.length}-${n.label ?? n.labelKey ?? ''}`,\r\n label: n.label,\r\n labelKey: n.labelKey,\r\n });\r\n\r\n walk(n.items);\r\n continue;\r\n }\r\n\r\n pushItem(n);\r\n }\r\n };\r\n\r\n walk(nodes);\r\n\r\n const itemRows = rows.filter(r => r.kind === 'item');\r\n\r\n return { rows, itemRows };\r\n }\r\n\r\n isSelected(value: any): boolean {\r\n const v = this._value();\r\n\r\n if (this.multiple) {\r\n const arr = Array.isArray(v) ? v : [];\r\n return arr.some(s => this.eq(s, value));\r\n }\r\n\r\n return v != null && this.eq(v, value);\r\n }\r\n\r\n private setValue(next: any) {\r\n const cur = this._value();\r\n\r\n if (this.sameCvaValue(cur, next)) return;\r\n\r\n this._value.set(next);\r\n this.propagateChange(next);\r\n }\r\n\r\n toggleItem(value: any) {\r\n if (!this.multiple) return;\r\n\r\n const cur = this._value();\r\n const arr = Array.isArray(cur) ? [...cur] : [];\r\n const idx = arr.findIndex(v => this.eq(v, value));\r\n\r\n if (idx >= 0) {\r\n arr.splice(idx, 1);\r\n } else {\r\n arr.push(value);\r\n }\r\n\r\n this.setValue(arr);\r\n this.searchTerm.set('');\r\n this.activeIndex.set(0);\r\n this.scheduleFocusTrigger();\r\n }\r\n\r\n selectSingle(value: any) {\r\n if (this.multiple) return;\r\n\r\n this.searchTerm.set('');\r\n this.setValue(value);\r\n this.open.set(false);\r\n }\r\n\r\n onOptionClick(item: SolarisSelectItem) {\r\n if (this.disabled) return;\r\n\r\n if (item.children?.length) {\r\n this.enterChildren(item);\r\n return;\r\n }\r\n\r\n if (this.multiple) {\r\n this.toggleItem(item.value);\r\n this.searchTerm.set('');\r\n this.activeIndex.set(0);\r\n this.scheduleFocusTrigger();\r\n } else {\r\n this.searchTerm.set('');\r\n this.selectSingle(item.value);\r\n }\r\n }\r\n\r\n openFromTrigger() {\r\n if (this.disabled) return;\r\n\r\n if (!this.open()) {\r\n this.open.set(true);\r\n }\r\n }\r\n\r\n toggleOpen() {\r\n if (this.disabled) return;\r\n\r\n const next = !this.open();\r\n\r\n if (next) {\r\n this.searchTerm.set('');\r\n }\r\n\r\n this.open.set(next);\r\n }\r\n\r\n onTriggerInput(v: string) {\r\n if (this.disabled) return;\r\n\r\n if (!this.open()) {\r\n this.open.set(true);\r\n }\r\n\r\n this.searchTerm.set(v);\r\n this.activeIndex.set(0);\r\n }\r\n\r\n onTriggerKeydown(ev: KeyboardEvent) {\r\n if (this.disabled) return;\r\n\r\n if (!this.open()) {\r\n if (ev.key === 'ArrowDown' || ev.key === 'Enter') {\r\n ev.preventDefault();\r\n this.searchTerm.set('');\r\n this.open.set(true);\r\n this.activeIndex.set(0);\r\n return;\r\n }\r\n\r\n if (this.searchable && ev.key.length === 1 && !ev.ctrlKey && !ev.metaKey && !ev.altKey) {\r\n ev.preventDefault();\r\n this.searchTerm.set(ev.key);\r\n this.open.set(true);\r\n this.activeIndex.set(0);\r\n return;\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (\r\n ev.key === 'ArrowDown' ||\r\n ev.key === 'ArrowUp' ||\r\n ev.key === 'Home' ||\r\n ev.key === 'End' ||\r\n ev.key === 'Enter' ||\r\n ev.key === 'Escape'\r\n ) {\r\n this.onPanelKeydown(ev);\r\n return;\r\n }\r\n\r\n if ((ev.key === 'Backspace' || ev.key === 'ArrowLeft') && this.canGoBack() && !this.searchTerm()) {\r\n ev.preventDefault();\r\n this.goBack();\r\n }\r\n }\r\n\r\n onPanelKeydown(ev: KeyboardEvent) {\r\n const items = this.itemRows();\r\n\r\n if (!items.length) return;\r\n\r\n const max = items.length - 1;\r\n const clamp = (n: number) => Math.max(0, Math.min(max, n));\r\n\r\n switch (ev.key) {\r\n case 'ArrowDown':\r\n ev.preventDefault();\r\n this.activeIndex.set(clamp(this.activeIndex() + 1));\r\n break;\r\n\r\n case 'ArrowUp':\r\n ev.preventDefault();\r\n this.activeIndex.set(clamp(this.activeIndex() - 1));\r\n break;\r\n\r\n case 'Home':\r\n ev.preventDefault();\r\n this.activeIndex.set(0);\r\n break;\r\n\r\n case 'End':\r\n ev.preventDefault();\r\n this.activeIndex.set(max);\r\n break;\r\n\r\n case 'Enter':\r\n ev.preventDefault();\r\n this.onOptionClick(items[this.activeIndex()].item);\r\n break;\r\n\r\n case 'ArrowRight': {\r\n const row = items[this.activeIndex()];\r\n\r\n if (row?.hasChildren) {\r\n ev.preventDefault();\r\n this.enterChildren(row.item);\r\n }\r\n\r\n break;\r\n }\r\n\r\n case 'Escape':\r\n ev.preventDefault();\r\n this.open.set(false);\r\n break;\r\n }\r\n }\r\n\r\n private scheduleAutoMeasure(force = false) {\r\n if (!this.multiple) {\r\n this.showCount.set(false);\r\n return;\r\n }\r\n\r\n if (this.selectionDisplay === 'count') {\r\n this.showCount.set(true);\r\n return;\r\n }\r\n\r\n if (this.selectionDisplay === 'list') {\r\n this.showCount.set(false);\r\n return;\r\n }\r\n\r\n const nonce = ++this._measureNonce;\r\n\r\n requestAnimationFrame(() => {\r\n requestAnimationFrame(() => {\r\n if (nonce !== this._measureNonce) return;\r\n\r\n this.measureAuto(force);\r\n });\r\n });\r\n }\r\n\r\n private measureAuto(_force: boolean) {\r\n if (!this.multiple) {\r\n this.showCount.set(false);\r\n return;\r\n }\r\n\r\n if (this.selectionDisplay === 'count') {\r\n this.showCount.set(true);\r\n return;\r\n }\r\n\r\n if (this.selectionDisplay === 'list') {\r\n this.showCount.set(false);\r\n return;\r\n }\r\n\r\n if (!this.compactInput()) {\r\n if (this.showCount()) this.showCount.set(false);\r\n return;\r\n }\r\n\r\n const wrap = this.triggerWrap?.nativeElement;\r\n const inputEl = this.triggerInput?.nativeElement;\r\n const measureEl = this.measureSlot?.nativeElement;\r\n\r\n if (!wrap || !inputEl || !measureEl) return;\r\n\r\n const text = this.selectedText();\r\n\r\n if (!text) {\r\n if (this.showCount()) this.showCount.set(false);\r\n }\r\n\r\n const ws = getComputedStyle(wrap);\r\n const padL = this.px(ws.paddingLeft);\r\n const padR = this.px(ws.paddingRight);\r\n const gap = this.px(ws.columnGap || ws.gap);\r\n const contentWidth = wrap.clientWidth - padL - padR;\r\n\r\n const inputWidth = inputEl.getBoundingClientRect().width;\r\n const tokenMaxWidth = Math.max(0, contentWidth - gap - inputWidth);\r\n\r\n const needed = Math.ceil(measureEl.scrollWidth);\r\n const available = Math.floor(tokenMaxWidth);\r\n\r\n const current = this.showCount();\r\n\r\n const marginForward = 1;\r\n const marginBack = 3;\r\n\r\n const next = current\r\n ? needed > available - marginBack\r\n : needed > available + marginForward;\r\n\r\n if (next !== current) {\r\n this.showCount.set(next);\r\n }\r\n }\r\n\r\n private px(v: string): number {\r\n const first = (v ?? '0').split(' ')[0];\r\n const n = Number.parseFloat(first);\r\n\r\n return Number.isFinite(n) ? n : 0;\r\n }\r\n\r\n private scheduleFocusTrigger() {\r\n requestAnimationFrame(() => {\r\n this.triggerInput?.nativeElement?.focus?.();\r\n\r\n if (this.searchable) {\r\n this.triggerInput?.nativeElement?.select?.();\r\n }\r\n });\r\n }\r\n\r\n private isSelectableValue(v: any): boolean {\r\n if (v == null) return false;\r\n\r\n let selectable = false;\r\n\r\n const walk = (nodes: SolarisSelectNode[]) => {\r\n for (const n of nodes) {\r\n if (n.kind === 'group') {\r\n walk(n.items);\r\n continue;\r\n }\r\n\r\n if (n.kind === 'item') {\r\n if (this.eq(n.value, v)) {\r\n selectable = !n.children?.length;\r\n return;\r\n }\r\n\r\n if (n.children?.length) {\r\n walk(n.children);\r\n }\r\n }\r\n }\r\n };\r\n\r\n walk(this._rootNodes());\r\n\r\n return selectable;\r\n }\r\n\r\n private sanitizeValue(next: any): any {\r\n if (this.multiple) {\r\n const arr = Array.isArray(next) ? next : [];\r\n return arr.filter(v => this.isSelectableValue(v));\r\n }\r\n\r\n return this.isSelectableValue(next) ? next : null;\r\n }\r\n\r\n selectedCountLabel(): string {\r\n const count = this.selectedCount();\r\n\r\n if (this.selectedCountKey) {\r\n return this.translate(this.selectedCountKey, { count });\r\n }\r\n\r\n if (this.selectedCountText) {\r\n return this.selectedCountText.replace('{count}', String(count));\r\n }\r\n\r\n return `${count} selecionados`;\r\n }\r\n\r\n trackRow = (_: number, r: SolarisSelectRow) => r.key;\r\n}\r\n","<solaris-popover [open]=\"open()\" (openChange)=\"open.set($event)\" placement=\"bottom-start\" [offset]=\"6\"\r\n [matchWidth]=\"true\" [anchorElement]=\"matchWidthEl\" [matchWidthElement]=\"matchWidthEl\"\r\n [closeOnOutsideClick]=\"true\" [closeOnEscape]=\"true\" panelClass=\"solaris-select__popover\">\r\n <div #triggerWrap solaris-popover-trigger class=\"solaris-select__trigger\" (click)=\"openFromTrigger()\">\r\n @if (showToken()) {\r\n <span #tokenEl class=\"solaris-select__token\" aria-hidden=\"true\">\r\n @if (multiple && showCount()) {\r\n @if (selectedCountKey) { {{ selectedCountKey | translate:{ count: selectedCount() } }} }\r\n @else { {{ selectedCountLabel() }} }\r\n } @else {\r\n {{ selectedText() }}\r\n }\r\n </span>\r\n }\r\n\r\n <input #triggerInput type=\"text\" class=\"solaris-select__input\" [disabled]=\"disabled\"\r\n [attr.aria-activedescendant]=\"open() ? activeOptionId() : null\" (click)=\"openFromTrigger()\"\r\n [readonly]=\"!isSearchMode()\" role=\"combobox\" aria-autocomplete=\"list\" aria-haspopup=\"listbox\"\r\n aria-controls=\"{{ _id }}-listbox\" aria-expanded=\"false\" [attr.aria-expanded]=\"open() ? 'true' : 'false'\"\r\n [attr.placeholder]=\"inputPlaceholderKey() ? (inputPlaceholderKey() | translate) : inputPlaceholderText()\"\r\n [value]=\"triggerValue()\" (keydown)=\"onTriggerKeydown($event)\" (focus)=\"openFromTrigger()\" (input)=\"onTriggerInput(triggerInput.value)\"/>\r\n\r\n <button type=\"button\" class=\"solaris-select__chevron-btn\" [disabled]=\"disabled\" (click)=\"toggleOpen()\"\r\n [attr.aria-label]=\"('ui.solaris.aria.toggleOptions' | translate)\">\r\n <i class=\"ph ph-caret-down\" aria-hidden=\"true\"></i>\r\n </button>\r\n\r\n <span class=\"solaris-select__measure solaris-select__token\" #measureSlot aria-hidden=\"true\">\r\n {{ selectedText() }}\r\n </span>\r\n </div>\r\n\r\n <ng-template solaris-popover-panel>\r\n <div class=\"solaris-select__panel\" (keydown)=\"onPanelKeydown($event)\" [style.max-height]=\"panelMaxHeight\">\r\n @if (canGoBack()) {\r\n <div class=\"solaris-select__nav\">\r\n <button type=\"button\" class=\"solaris-select__back\" (click)=\"goBack()\">\r\n <i class=\"ph ph-arrow-left\"></i>\r\n <span>\r\n @if (backKey) { {{ backKey | translate }} }\r\n @else { {{ backText | translate }} }\r\n </span>\r\n </button>\r\n\r\n <div class=\"solaris-select__title\">\r\n @if (currentLevel().titleKey) { {{ currentLevel().titleKey! | translate }} }\r\n @else { {{ currentLevel().title ?? '' }} }\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"solaris-select__list\" role=\"listbox\" [id]=\"_id + '-listbox'\"\r\n [attr.aria-multiselectable]=\"multiple ? 'true' : null\"\r\n [attr.aria-activedescendant]=\"activeOptionId()\">\r\n @for (row of rows(); track trackRow($index, row)) {\r\n @if (row.kind === 'group') {\r\n <div class=\"solaris-select__group\">\r\n @if (row.labelKey) { {{ row.labelKey | translate }} }\r\n @else { {{ row.label }} }\r\n </div>\r\n }\r\n\r\n @if (row.kind === 'divider') {\r\n <div class=\"solaris-select__divider\" aria-hidden=\"true\"></div>\r\n }\r\n\r\n @if (row.kind === 'item') {\r\n <button type=\"button\" class=\"solaris-select__option\" [id]=\"row.id\" [disabled]=\"row.disabled\"\r\n [attr.aria-selected]=\"row.selected ? 'true' : 'false'\" [class.is-active]=\"row.optionIndex === activeIndex()\"\r\n [class.is-selected]=\"row.selected\" [class.is-navigable]=\"row.hasChildren\" (click)=\"onOptionClick(row.item)\">\r\n <span class=\"solaris-select__option-leading\">\r\n @if (multiple) {\r\n @if (!row.hasChildren) {\r\n <span class=\"solaris-select__checkbox\" aria-hidden=\"true\" [class.is-checked]=\"row.selected\">\r\n <i class=\"ph ph-check\"></i>\r\n </span>\r\n } @else {\r\n @if (row.item.imageUrl) {\r\n <img class=\"solaris-select__avatar\" [ngSrc]=\"row.item.imageUrl\" alt=\"\" fill/>\r\n } @else if (row.item.icon) {\r\n <i class=\"solaris-select__icon\" [class]=\"row.item.icon\" aria-hidden=\"true\"></i>\r\n } @else {\r\n <span class=\"solaris-select__checkbox-spacer\" aria-hidden=\"true\"></span>\r\n }\r\n }\r\n }\r\n\r\n @if (!multiple) {\r\n @if (row.item.imageUrl) {\r\n <img class=\"solaris-select__avatar\" [ngSrc]=\"row.item.imageUrl\" alt=\"\" fill />\r\n } @else if (row.item.icon) {\r\n <i class=\"solaris-select__icon\" [class]=\"row.item.icon\" aria-hidden=\"true\"></i>\r\n }\r\n }\r\n </span>\r\n\r\n <span class=\"solaris-select__option-main\">\r\n <span class=\"solaris-select__option-label\">\r\n @if (row.item.labelKey) { {{ row.item.labelKey | translate }} }\r\n @else { {{ row.item.label }} }\r\n </span>\r\n\r\n @if (row.item.description || row.item.descriptionKey) {\r\n <span class=\"solaris-select__option-desc\">\r\n @if (row.item.descriptionKey) { {{ row.item.descriptionKey | translate }} }\r\n @else { {{ row.item.description }} }\r\n </span>\r\n }\r\n </span>\r\n\r\n <span class=\"solaris-select__option-end\">\r\n @if (row.item.endTextKey) {\r\n <span class=\"solaris-select__end-text\">{{ row.item.endTextKey | translate }}</span>\r\n } @else if (row.item.endText) {\r\n <span class=\"solaris-select__end-text\">{{ row.item.endText }}</span>\r\n }\r\n\r\n @if (!multiple && row.selected) {\r\n <i class=\"ph ph-check\" aria-hidden=\"true\"></i>\r\n }\r\n\r\n @if (row.hasChildren) {\r\n <i class=\"ph ph-caret-right\" aria-hidden=\"true\"></i>\r\n }\r\n </span>\r\n </button>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n</solaris-popover>\r\n","/// <reference path=\"./typings/intl-tel-input-utils.d.ts\" />\r\n\r\nexport * from './lib/navigations/navigations.index';\r\nexport * from './lib/feedbacks/feedbacks.index';\r\nexport * from './lib/layouts/layouts.index';\r\nexport * from './lib/actions/actions.index';\r\nexport * from './lib/visual/visual.index';\r\nexport * from './services/services.index';\r\nexport * from './lib/common/common.index';\r\nexport * from './lib/forms/forms.index';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["clamp","initialXY","i1.SolarisTabs","coerceBoolean","PRESET_COLORS","resolveRadius","i1","i1.SolarisTable"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"educarehq-solaris-components.mjs","sources":["../../../projects/solaris-components/src/lib/navigations/dropdown/directives/dropdown-content-trigger.directive.ts","../../../projects/solaris-components/src/lib/navigations/dropdown/directives/dropdown-content-panel.directive.ts","../../../projects/solaris-components/src/lib/navigations/dropdown/service/dropdown-content-registry.service.ts","../../../projects/solaris-components/src/lib/navigations/dropdown/component/dropdown-content.ts","../../../projects/solaris-components/src/lib/navigations/dropdown/component/dropdown-content.html","../../../projects/solaris-components/src/lib/navigations/breadcrumb/component/breadcrumb.ts","../../../projects/solaris-components/src/lib/navigations/breadcrumb/component/breadcrumb.html","../../../projects/solaris-components/src/lib/navigations/stepper/item/component/stepper-item.ts","../../../projects/solaris-components/src/lib/navigations/stepper/item/component/stepper-item.html","../../../projects/solaris-components/src/lib/feedbacks/badge/component/badge.ts","../../../projects/solaris-components/src/lib/feedbacks/badge/component/badge.html","../../../projects/solaris-components/src/lib/navigations/stepper/component/stepper.ts","../../../projects/solaris-components/src/lib/navigations/stepper/component/stepper.html","../../../projects/solaris-components/src/lib/navigations/popover/directives/popover-trigger.directive.ts","../../../projects/solaris-components/src/lib/navigations/popover/directives/popover-panel.directive.ts","../../../projects/solaris-components/src/lib/navigations/popover/model/popover.type.ts","../../../projects/solaris-components/src/lib/navigations/popover/component/popover.ts","../../../projects/solaris-components/src/lib/navigations/popover/component/popover.html","../../../projects/solaris-components/src/lib/navigations/tabs/component/tabs.ts","../../../projects/solaris-components/src/lib/navigations/tabs/component/tabs.html","../../../projects/solaris-components/src/lib/navigations/tabs/tab/component/tab.ts","../../../projects/solaris-components/src/lib/navigations/tabs/tab/component/tab.html","../../../projects/solaris-components/src/lib/feedbacks/loading-overlay/loading-overlay.ts","../../../projects/solaris-components/src/lib/feedbacks/loading-overlay/loading-overlay.html","../../../projects/solaris-components/src/lib/core/overlay/floating-position.util.ts","../../../projects/solaris-components/src/lib/core/overlay/floating-overlay.service.ts","../../../projects/solaris-components/src/lib/feedbacks/rich-tooltip/component/rich-tooltip-panel.ts","../../../projects/solaris-components/src/lib/feedbacks/rich-tooltip/component/rich-tooltip-panel.html","../../../projects/solaris-components/src/lib/feedbacks/rich-tooltip/directives/rich-tooltip.directive.ts","../../../projects/solaris-components/src/lib/actions/button/directives/button.directive.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/config/notification.config.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/service/notification-intl.service.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/service/notification.service.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/components/item/notification-item.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/components/item/notification-item.html","../../../projects/solaris-components/src/lib/feedbacks/notification/components/center/notification-center.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/components/center/notification-center.html","../../../projects/solaris-components/src/lib/feedbacks/notification/components/host/notification-host.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/components/host/notification-host.html","../../../projects/solaris-components/src/lib/feedbacks/tooltip/component/tooltip-panel.ts","../../../projects/solaris-components/src/lib/feedbacks/tooltip/component/tooltip-panel.html","../../../projects/solaris-components/src/lib/feedbacks/tooltip/directives/tooltip.directive.ts","../../../projects/solaris-components/src/lib/feedbacks/loading/component/loading.ts","../../../projects/solaris-components/src/lib/feedbacks/loading/component/loading.html","../../../projects/solaris-components/src/lib/layouts/carousel/directives/carousel-overlay.directive.ts","../../../projects/solaris-components/src/lib/layouts/carousel/directives/carousel-slide.directive.ts","../../../projects/solaris-components/src/lib/layouts/carousel/component/carousel.ts","../../../projects/solaris-components/src/lib/layouts/carousel/component/carousel.html","../../../projects/solaris-components/src/lib/layouts/section/component/section.ts","../../../projects/solaris-components/src/lib/layouts/section/component/section.html","../../../projects/solaris-components/src/lib/layouts/divider/component/divider.ts","../../../projects/solaris-components/src/lib/layouts/divider/component/divider.html","../../../projects/solaris-components/src/lib/layouts/dialog/token/dialog-step-data.token.ts","../../../projects/solaris-components/src/lib/layouts/dialog/token/dialog-data.token.ts","../../../projects/solaris-components/src/lib/layouts/dialog/token/dialog-ref.ts","../../../projects/solaris-components/src/lib/layouts/dialog/components/dialog-steps-container/dialog-steps-container.ts","../../../projects/solaris-components/src/lib/layouts/dialog/components/dialog-steps-container/dialog-steps-container.html","../../../projects/solaris-components/src/lib/layouts/dialog/components/dialog-container/dialog-container.ts","../../../projects/solaris-components/src/lib/layouts/dialog/components/dialog-container/dialog-container.html","../../../projects/solaris-components/src/lib/layouts/dialog/service/dialog.service.ts","../../../projects/solaris-components/src/lib/layouts/drawer/directives/drawer-header.directive.ts","../../../projects/solaris-components/src/lib/layouts/drawer/directives/drawer-footer.directive.ts","../../../projects/solaris-components/src/lib/layouts/drawer/component/drawer.ts","../../../projects/solaris-components/src/lib/layouts/drawer/component/drawer.html","../../../projects/solaris-components/src/lib/data-display/table/directives/filter-panel-footer.directive.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/filter/table-filters.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/filter/table-filters.html","../../../projects/solaris-components/src/lib/data-display/table/components/filters/field/filter-field.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/field/filter-field.html","../../../projects/solaris-components/src/lib/data-display/table/directives/filter-panel-chips.directive.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/panel/filter-panel.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/panel/filter-panel.html","../../../projects/solaris-components/src/lib/data-display/table/components/filters/chip/filter-chip.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/chip/filter-chip.html","../../../projects/solaris-components/src/lib/data-display/table/components/skeleton/table-skeleton.ts","../../../projects/solaris-components/src/lib/data-display/table/components/skeleton/table-skeleton.html","../../../projects/solaris-components/src/lib/data-display/table/components/filters/bar/filter-bar.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/bar/filter-bar.html","../../../projects/solaris-components/src/lib/data-display/table/directives/column.directive.ts","../../../projects/solaris-components/src/lib/common/service/id-generator.service.ts","../../../projects/solaris-components/src/lib/data-display/table/components/column/table-column.ts","../../../projects/solaris-components/src/lib/data-display/table/components/column/table-column.html","../../../projects/solaris-components/src/lib/common/helper/unique-id.ts","../../../projects/solaris-components/src/lib/actions/checkbox/component/checkbox.ts","../../../projects/solaris-components/src/lib/actions/checkbox/component/checkbox.html","../../../projects/solaris-components/src/lib/data-display/table/components/table/table.ts","../../../projects/solaris-components/src/lib/data-display/table/components/table/table.html","../../../projects/solaris-components/src/lib/data-display/table/components/row/table-row.ts","../../../projects/solaris-components/src/lib/data-display/table/components/row/table-row.html","../../../projects/solaris-components/src/lib/layouts/page/directives/solaris-header.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/directives/solaris-footer.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/directives/solaris-body.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/component/page.ts","../../../projects/solaris-components/src/lib/layouts/page/component/page.html","../../../projects/solaris-components/src/lib/layouts/page/header/directives/solaris-header-description.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/header/directives/solaris-header-breadcrumb.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/header/directives/solaris-header-title.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/header/title/component/page-header-title.ts","../../../projects/solaris-components/src/lib/layouts/page/header/title/component/page-header-title.html","../../../projects/solaris-components/src/lib/layouts/page/header/directives/solaris-header-actions.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/header/component/page-header.ts","../../../projects/solaris-components/src/lib/layouts/page/header/component/page-header.html","../../../projects/solaris-components/src/lib/actions/button/directives/button-group.directive.ts","../../../projects/solaris-components/src/lib/actions/radio/token/radio-group.token.ts","../../../projects/solaris-components/src/lib/actions/radio/component/radio.ts","../../../projects/solaris-components/src/lib/actions/radio/component/radio.html","../../../projects/solaris-components/src/lib/actions/radio/group/component/radio-group.ts","../../../projects/solaris-components/src/lib/actions/radio/group/component/radio-group.html","../../../projects/solaris-components/src/lib/visual/avatar/directives/avatar-overlay.directive.ts","../../../projects/solaris-components/src/lib/visual/internal/avatar-presence/component/avatar-presence.ts","../../../projects/solaris-components/src/lib/visual/internal/avatar-presence/component/avatar-presence.html","../../../projects/solaris-components/src/lib/visual/avatar/component/avatar.ts","../../../projects/solaris-components/src/lib/visual/avatar/component/avatar.html","../../../projects/solaris-components/src/lib/visual/presence-avatar/component/presence-avatar.ts","../../../projects/solaris-components/src/lib/visual/presence-avatar/component/presence-avatar.html","../../../projects/solaris-components/src/lib/visual/avatar-stack/component/avatar-stack.ts","../../../projects/solaris-components/src/lib/visual/avatar-stack/component/avatar-stack.html","../../../projects/solaris-components/src/lib/visual/avatar-dropdown/component/avatar-dropdown.ts","../../../projects/solaris-components/src/lib/visual/avatar-dropdown/component/avatar-dropdown.html","../../../projects/solaris-components/src/lib/cards/card-group/token/card-group.token.ts","../../../projects/solaris-components/src/lib/cards/card/utils/resolve-card-color.ts","../../../projects/solaris-components/src/lib/cards/card/utils/resolve-card-radius.ts","../../../projects/solaris-components/src/lib/cards/card/component/card.ts","../../../projects/solaris-components/src/lib/cards/card/component/card.html","../../../projects/solaris-components/src/lib/cards/selection-card/component/selection-card.ts","../../../projects/solaris-components/src/lib/cards/selection-card/component/selection-card.html","../../../projects/solaris-components/src/lib/cards/card-media/directives/card-media-overlay.directive.ts","../../../projects/solaris-components/src/lib/cards/card-media/component/card-media.ts","../../../projects/solaris-components/src/lib/cards/card-media/component/card-media.html","../../../projects/solaris-components/src/lib/forms/form-field/messages/error/field-error.ts","../../../projects/solaris-components/src/lib/forms/form-field/messages/error/field-error.html","../../../projects/solaris-components/src/lib/cards/card-group/component/card-group.ts","../../../projects/solaris-components/src/lib/cards/card-group/component/card-group.html","../../../projects/solaris-components/src/lib/cards/card/directives/card-description.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-actions.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-eyebrow.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-footer.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-media.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-meta.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-badge.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-title.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-slots.directive.ts","../../../projects/solaris-components/src/lib/forms/phone-input/helper/phone-input.sanitize.ts","../../../projects/solaris-components/src/lib/forms/phone-input/helper/phone-input.country.ts","../../../projects/solaris-components/src/lib/forms/form-field/tokens/form-field-features.ts","../../../projects/solaris-components/src/lib/forms/form-field/controller/form-field-controller.ts","../../../projects/solaris-components/src/lib/forms/input-text/tokens/input.token.ts","../../../projects/solaris-components/src/lib/forms/input-text/directives/input-text.directive.ts","../../../projects/solaris-components/src/lib/forms/phone-input/component/phone-input.ts","../../../projects/solaris-components/src/lib/forms/phone-input/component/phone-input.html","../../../projects/solaris-components/src/lib/forms/input-text/directives/input-password.directive.ts","../../../projects/solaris-components/src/lib/forms/input-text/directives/input-email.directive.ts","../../../projects/solaris-components/src/lib/forms/form-field/tokens/form-field-controller.token.ts","../../../projects/solaris-components/src/lib/forms/input-text/password-toggle/password-toggle.ts","../../../projects/solaris-components/src/lib/forms/input-text/password-toggle/password-toggle.html","../../../projects/solaris-components/src/lib/forms/form-field/directives/control-bridge.directive.ts","../../../projects/solaris-components/src/lib/forms/form-field/directives/prefix.directive.ts","../../../projects/solaris-components/src/lib/forms/form-field/directives/suffix.directive.ts","../../../projects/solaris-components/src/lib/forms/form-field/component/form-field.ts","../../../projects/solaris-components/src/lib/forms/form-field/component/form-field.html","../../../projects/solaris-components/src/lib/forms/select/component/select.ts","../../../projects/solaris-components/src/lib/forms/select/component/select.html","../../../projects/solaris-components/src/public-api.ts","../../../projects/solaris-components/src/educarehq-solaris-components.ts"],"sourcesContent":["import { Directive, ElementRef, inject, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[solaris-dropdown-content-trigger]',\n standalone: true,\n})\nexport class SolarisDropdownContentTriggerDirective {\n public readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n private readonly renderer: Renderer2 = inject(Renderer2);\n\n public ensureFocusable(): void {\n const element = this.elementRef.nativeElement;\n const tag = element.tagName.toLowerCase();\n const isNaturallyFocusable =\n tag === 'button' || tag === 'a' || element.hasAttribute('tabindex');\n\n if (!isNaturallyFocusable) {\n this.renderer.setAttribute(element, 'tabindex', '0');\n this.renderer.setAttribute(element, 'role', 'button');\n }\n\n this.renderer.setAttribute(element, 'aria-haspopup', 'true');\n }\n\n public setExpanded(isExpanded: boolean, panelId: string): void {\n const element = this.elementRef.nativeElement;\n this.renderer.setAttribute(element, 'aria-expanded', String(isExpanded));\n this.renderer.setAttribute(element, 'aria-controls', panelId);\n }\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[solaris-dropdown-content-panel]',\n standalone: true,\n})\nexport class SolarisDropdownContentPanelDirective {\n public readonly templateRef: TemplateRef<unknown> = inject(TemplateRef<unknown>);\n}\n","import { Injectable } from '@angular/core';\n\nexport interface SolarisDropdownContentInterface {\n closeFromRegistry(): void;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SolarisDropdownContentRegistry {\n private readonly instances = new Set<SolarisDropdownContentInterface>();\n\n public register(instance: SolarisDropdownContentInterface): void {\n this.instances.add(instance);\n }\n\n public unregister(instance: SolarisDropdownContentInterface): void {\n this.instances.delete(instance);\n }\n\n public notifyOpen(openingInstance: SolarisDropdownContentInterface): void {\n for (const instance of this.instances) {\n if (instance !== openingInstance) {\n instance.closeFromRegistry();\n }\n }\n }\n}\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n DestroyRef,\n ElementRef,\n Input,\n ViewContainerRef,\n ViewEncapsulation,\n inject,\n OnDestroy,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\nimport {\n SolarisDropdownContentInterface,\n SolarisDropdownContentRegistry,\n} from '../service/dropdown-content-registry.service';\nimport { SolarisDropdownContentTriggerDirective } from '../directives/dropdown-content-trigger.directive';\nimport { SolarisDropdownContentPanelDirective } from '../directives/dropdown-content-panel.directive';\nimport { SolarisDropdownWidthMode } from '../model/dropdown-content.type';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'solaris-dropdown-content',\n standalone: true,\n imports: [],\n templateUrl: './dropdown-content.html',\n styleUrls: ['./dropdown-content.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SolarisDropdownContent\n implements AfterContentInit, OnDestroy, SolarisDropdownContentInterface\n{\n private readonly registry = inject(SolarisDropdownContentRegistry);\n private readonly viewContainerRef = inject(ViewContainerRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly overlay = inject(Overlay);\n\n @ContentChild(SolarisDropdownContentTriggerDirective)\n trigger?: SolarisDropdownContentTriggerDirective;\n @ContentChild(SolarisDropdownContentPanelDirective) panel?: SolarisDropdownContentPanelDirective;\n\n @Input() container?: HTMLElement | ElementRef<HTMLElement>;\n @Input() widthMode: SolarisDropdownWidthMode = 'auto';\n @Input() maxWidth: string = '72rem';\n @Input() closeDelay = 120;\n @Input() openDelay = 60;\n\n private readonly panelId = `solaris-dropdown-panel-${Math.random().toString(16).slice(2)}`;\n private isHoveringTrigger = false;\n private portal?: TemplatePortal<unknown>;\n private isHoveringPanel = false;\n private outsideClickSub?: Subscription;\n private isPinned = false;\n private overlayRef?: OverlayRef;\n private isOpen = false;\n private closeTimer?: number;\n private openTimer?: number;\n\n ngAfterContentInit(): void {\n if (!this.trigger) throw new Error('solaris-dropdown: missing [solaris-dropdown-trigger].');\n if (!this.panel)\n throw new Error('solaris-dropdown: missing <ng-template solaris-dropdown-content-panel>.');\n\n this.registry.register(this);\n this.trigger.ensureFocusable();\n this.trigger.setExpanded(false, this.panelId);\n\n const triggerElement = this.trigger.elementRef.nativeElement;\n\n fromEvent(triggerElement, 'mouseenter')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.onTriggerEnter());\n\n fromEvent(triggerElement, 'mouseleave')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.onTriggerLeave());\n\n fromEvent<MouseEvent>(triggerElement, 'click')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => {\n event.preventDefault();\n this.togglePinned();\n });\n\n fromEvent<KeyboardEvent>(triggerElement, 'keydown')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.togglePinned();\n }\n\n if (event.key === 'Escape') {\n event.preventDefault();\n this.close('escape');\n }\n });\n }\n\n ngOnDestroy(): void {\n this.registry.unregister(this);\n this.unbindOutsideClick();\n this.overlayRef?.dispose();\n }\n\n public closeFromRegistry(): void {\n this.close('registry');\n }\n\n private onTriggerEnter(): void {\n this.isHoveringTrigger = true;\n if (this.isPinned) return;\n this.scheduleOpen('hover');\n }\n\n private onTriggerLeave(): void {\n this.isHoveringTrigger = false;\n if (this.isPinned) return;\n this.scheduleClose();\n }\n\n private onPanelEnter(): void {\n this.isHoveringPanel = true;\n if (this.isPinned) return;\n this.clearCloseTimer();\n }\n\n private onPanelLeave(): void {\n this.isHoveringPanel = false;\n if (this.isPinned) return;\n this.scheduleClose();\n }\n\n private togglePinned(): void {\n if (!this.isOpen) {\n this.isPinned = true;\n this.open('pinned');\n return;\n }\n\n if (this.isPinned) {\n this.close('toggle');\n return;\n }\n\n this.isPinned = true;\n this.bindOutsideClick();\n }\n\n private scheduleOpen(reason: 'hover' | 'pinned'): void {\n this.clearOpenTimer();\n this.openTimer = globalThis.setTimeout(() => this.open(reason), this.openDelay);\n }\n\n private scheduleClose(): void {\n this.clearCloseTimer();\n this.closeTimer = globalThis.setTimeout(() => {\n if (this.isPinned) return;\n if (this.isHoveringTrigger || this.isHoveringPanel) return;\n this.close('hover-leave');\n }, this.closeDelay);\n }\n\n private clearOpenTimer(): void {\n if (this.openTimer) globalThis.clearTimeout(this.openTimer);\n this.openTimer = undefined;\n }\n\n private clearCloseTimer(): void {\n if (this.closeTimer) globalThis.clearTimeout(this.closeTimer);\n this.closeTimer = undefined;\n }\n\n public open(reason: 'hover' | 'pinned'): void {\n if (!this.trigger || !this.panel) return;\n if (reason === 'hover') this.isPinned = false;\n\n this.registry.notifyOpen(this);\n\n const triggerElement = this.trigger.elementRef.nativeElement;\n const originRect = triggerElement.getBoundingClientRect();\n\n const containerElement = this.getContainerElement();\n const containerRect = containerElement?.getBoundingClientRect();\n const isFull = this.widthMode === 'full';\n const viewportMargin = isFull ? 0 : 8;\n const offsetX = this.computeOffsetX(originRect, containerRect);\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(triggerElement)\n .withFlexibleDimensions(false)\n .withPush(!isFull)\n .withViewportMargin(viewportMargin)\n .withDefaultOffsetX(offsetX)\n .withDefaultOffsetY(8)\n .withPositions([\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n ]);\n\n if (this.overlayRef) {\n this.overlayRef.updatePositionStrategy(positionStrategy);\n } else {\n this.overlayRef = this.overlay.create({\n positionStrategy: positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n panelClass: ['solaris-dropdown-content-overlay'],\n });\n\n this.overlayRef\n .detachments()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.resetState());\n }\n\n this.applyOverlaySize(originRect, containerRect);\n this.portal ??= new TemplatePortal(this.panel.templateRef, this.viewContainerRef);\n if (!this.overlayRef.hasAttached()) {\n this.overlayRef.attach(this.portal);\n this.wirePanelEvents();\n }\n\n this.isOpen = true;\n this.trigger.setExpanded(true, this.panelId);\n\n if (this.isPinned) {\n this.bindOutsideClick();\n } else {\n this.unbindOutsideClick();\n }\n\n this.clearCloseTimer();\n }\n\n public close(reason: 'hover-leave' | 'toggle' | 'escape' | 'outside' | 'registry'): void {\n this.clearOpenTimer();\n this.clearCloseTimer();\n this.isPinned = false;\n this.unbindOutsideClick();\n\n if (this.overlayRef?.hasAttached()) {\n this.overlayRef.detach();\n }\n\n this.isOpen = false;\n this.trigger?.setExpanded(false, this.panelId);\n }\n\n private resetState(): void {\n this.isOpen = false;\n this.isPinned = false;\n this.isHoveringPanel = false;\n this.isHoveringTrigger = false;\n this.unbindOutsideClick();\n this.trigger?.setExpanded(false, this.panelId);\n }\n\n private wirePanelEvents(): void {\n if (!this.overlayRef) return;\n\n const panelHost = this.overlayRef.overlayElement;\n panelHost.id = this.panelId;\n\n fromEvent(panelHost, 'mouseenter')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.onPanelEnter());\n\n fromEvent(panelHost, 'mouseleave')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.onPanelLeave());\n\n fromEvent<KeyboardEvent>(panelHost, 'keydown')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => {\n if (event.key === 'Escape') {\n event.preventDefault();\n this.close('escape');\n this.trigger?.elementRef.nativeElement.focus();\n }\n });\n }\n\n private bindOutsideClick(): void {\n if (!this.isPinned) return;\n if (this.outsideClickSub) return;\n\n const triggerElement = this.trigger?.elementRef.nativeElement;\n const overlayEl = this.overlayRef?.overlayElement;\n\n if (!triggerElement || !overlayEl) return;\n\n this.outsideClickSub = fromEvent<MouseEvent>(document, 'mousedown')\n .pipe(\n filter(() => this.isPinned),\n filter((event) => {\n const targetNode = event.target as Node | null;\n if (!targetNode) return false;\n const insideTrigger = triggerElement.contains(targetNode);\n const insidePanel = overlayEl.contains(targetNode);\n return !insideTrigger && !insidePanel;\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => this.close('outside'));\n }\n\n private unbindOutsideClick(): void {\n this.outsideClickSub?.unsubscribe();\n this.outsideClickSub = undefined;\n }\n\n private getContainerElement(): HTMLElement | undefined {\n const containerRef = this.container;\n if (!containerRef) return undefined;\n return containerRef instanceof ElementRef ? containerRef.nativeElement : containerRef;\n }\n\n private computeOffsetX(originRect: DOMRect, containerRect?: DOMRect): number {\n if (this.widthMode === 'full') {\n return -originRect.left;\n }\n\n if (this.widthMode === 'container' && containerRect) {\n return containerRect.left - originRect.left;\n }\n\n return 0;\n }\n\n private applyOverlaySize(originRect: DOMRect, containerRect?: DOMRect): void {\n if (!this.overlayRef) return;\n\n if (this.widthMode === 'match-trigger') {\n this.overlayRef.updateSize({ width: originRect.width });\n return;\n }\n\n if (this.widthMode === 'full') {\n const viewportWidth = document.documentElement.clientWidth;\n this.overlayRef.updateSize({\n width: viewportWidth,\n maxWidth: viewportWidth,\n });\n return;\n }\n\n if (this.widthMode === 'container' && containerRect) {\n this.overlayRef.updateSize({\n width: containerRect.width,\n maxWidth: containerRect.width,\n });\n return;\n }\n\n this.overlayRef.updateSize({ maxWidth: this.maxWidth });\n }\n}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { RouterLink } from '@angular/router';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\n\nimport { SolarisBreadcrumbItem } from '../model/breadcrumb.type';\n\n@Component({\n selector: 'solaris-breadcrumb',\n standalone: true,\n imports: [NgClass, RouterLink, CdkMenu, CdkMenuItem, CdkMenuTrigger, NgTemplateOutlet],\n templateUrl: './breadcrumb.html',\n styleUrls: ['./breadcrumb.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisBreadcrumb {\n @Input({ alias: 'min-items' }) minItems = 2;\n @Input({ alias: 'max-items' }) maxItems = 4;\n @Input() responsive = true;\n @Input({ required: true }) items: SolarisBreadcrumbItem[] = [];\n @HostBinding('class') hostClass = 'solaris-breadcrumb-host';\n @Output() itemSelect = new EventEmitter<{ id: string; item: SolarisBreadcrumbItem }>();\n\n get viewModel() {\n const items = this.items ?? [];\n const total = items.length;\n const max = Math.max(this.minItems, this.effectiveMaxItems);\n\n if (total <= max) {\n return {\n head: items,\n overflow: [] as SolarisBreadcrumbItem[],\n tail: [] as SolarisBreadcrumbItem[],\n };\n }\n\n const keepHead = 1;\n const keepTail = 1;\n\n const remaining = max - keepHead - keepTail;\n const extraTail = Math.max(0, remaining);\n\n const head = items.slice(0, keepHead);\n const tail = items.slice(total - (keepTail + extraTail), total);\n const overflow = items.slice(keepHead, total - tail.length);\n\n return { head, overflow, tail };\n }\n get effectiveMaxItems(): number {\n if (!this.responsive) return this.maxItems;\n\n const isSmall =\n typeof globalThis.matchMedia === 'function' &&\n globalThis.matchMedia('(max-width: 640px)').matches;\n\n return isSmall ? Math.max(this.minItems, 3) : this.maxItems;\n }\n\n protected getRouterCommands(it: SolarisBreadcrumbItem): any[] | null {\n return it.target?.kind === 'router' ? it.target.commands : null;\n }\n\n protected getRouterQueryParams(it: SolarisBreadcrumbItem): Record<string, any> | null {\n return it.target?.kind === 'router' ? (it.target.extras?.queryParams ?? null) : null;\n }\n\n protected shouldRenderSeparatorAfterHead(headIndex: number): boolean {\n if (headIndex < this.viewModel.head.length - 1) return true;\n return this.viewModel.overflow.length > 0 || this.viewModel.tail.length > 0;\n }\n\n protected onAction(item: SolarisBreadcrumbItem) {\n if (item.disabled) return;\n const t = item.target;\n if (t?.kind === 'action') this.itemSelect.emit({ id: t.id, item });\n }\n}\n","<nav class=\"solaris-breadcrumb\" aria-label=\"Breadcrumb\">\n <ol class=\"solaris-breadcrumb__list\">\n @for (it of viewModel.head; track it.label; let i = $index) {\n <li class=\"solaris-breadcrumb__item\">\n <ng-container [ngTemplateOutlet]=\"itemTpl\" [ngTemplateOutletContext]=\"{ $implicit: it }\" />\n @if (shouldRenderSeparatorAfterHead(i)) {\n <span class=\"solaris-breadcrumb__sep\" aria-hidden=\"true\">\n <i class=\"ph ph-caret-right\"></i>\n </span>\n }\n </li>\n }\n\n @if (viewModel.overflow.length > 0) {\n <li class=\"solaris-breadcrumb__item\">\n <button\n type=\"button\"\n class=\"solaris-breadcrumb__ellipsis\"\n aria-label=\"Mostrar mais\"\n [cdkMenuTriggerFor]=\"overflowMenu\"\n >\n <i class=\"ph ph-dots-three\"></i>\n </button>\n\n <ng-template #overflowMenu>\n <div class=\"solaris-breadcrumb__menu\" cdkMenu>\n @for (it of viewModel.overflow; track it.label) {\n <button\n type=\"button\"\n class=\"solaris-breadcrumb__menu-item\"\n cdkMenuItem\n (click)=\"onAction(it)\"\n [disabled]=\"it.disabled\"\n [routerLink]=\"getRouterCommands(it)\"\n [queryParams]=\"getRouterQueryParams(it)\"\n >\n @if (it.icon) {\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\n }\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\n </button>\n }\n </div>\n </ng-template>\n\n @if (viewModel.tail.length > 0) {\n <span class=\"solaris-breadcrumb__sep\" aria-hidden=\"true\">\n <i class=\"ph ph-caret-right\"></i>\n </span>\n }\n </li>\n }\n\n @for (it of viewModel.tail; track it.label; let i = $index) {\n <li class=\"solaris-breadcrumb__item\" [class.is-current]=\"i === viewModel.tail.length - 1\">\n <ng-container\n [ngTemplateOutlet]=\"itemTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: it, current: i === viewModel.tail.length - 1 }\"\n />\n @if (it !== viewModel.tail[viewModel.tail.length - 1]) {\n <span class=\"solaris-breadcrumb__sep\" aria-hidden=\"true\">\n <i class=\"ph ph-caret-right\"></i>\n </span>\n }\n </li>\n }\n </ol>\n\n <ng-template #itemTpl let-it let-current=\"current\">\n @if (it.target?.kind === 'router') {\n <a\n class=\"solaris-breadcrumb__link\"\n [class.is-disabled]=\"it.disabled\"\n [class.is-current]=\"current\"\n [routerLink]=\"it.disabled ? null : it.target!.commands\"\n [attr.aria-current]=\"current ? 'page' : null\"\n [attr.aria-label]=\"it.ariaLabel || it.label\"\n >\n @if (it.icon) {\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\n }\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\n </a>\n } @else if (it.target?.kind === 'href') {\n <a\n class=\"solaris-breadcrumb__link\"\n [class.is-disabled]=\"it.disabled\"\n [class.is-current]=\"current\"\n [href]=\"it.disabled ? null : it.target!.href\"\n [target]=\"it.target!.target || '_self'\"\n [attr.aria-current]=\"current ? 'page' : null\"\n [attr.aria-label]=\"it.ariaLabel || it.label\"\n >\n @if (it.icon) {\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\n }\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\n </a>\n } @else if (it.target?.kind === 'action') {\n <button\n type=\"button\"\n class=\"solaris-breadcrumb__link as-button\"\n [class.is-current]=\"current\"\n [disabled]=\"it.disabled\"\n (click)=\"onAction(it)\"\n [attr.aria-current]=\"current ? 'page' : null\"\n [attr.aria-label]=\"it.ariaLabel || it.label\"\n >\n @if (it.icon) {\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\n }\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\n </button>\n } @else {\n <span class=\"solaris-breadcrumb__text\" [attr.aria-current]=\"current ? 'page' : null\">\n @if (it.icon) {\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\n }\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\n </span>\n }\n </ng-template>\n</nav>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { BadgeColorInput, BadgeVariant } from '../../../../feedbacks/badge/model/badge.type';\nimport { SolarisSizePreset } from '../../../../common/model/common-configurations.type';\nimport { SolarisStepperPhase, SolarisStepperStatus } from '../../model/stepper.type';\n\n@Component({\n selector: 'solaris-stepper-item',\n standalone: true,\n templateUrl: './stepper-item.html',\n styleUrls: ['./stepper-item.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisStepperItem {\n @Input() stepId?: string;\n\n @Input() label?: string;\n @Input() labelKey?: string;\n\n @Input() title?: string;\n @Input() titleKey?: string;\n\n @Input() description?: string;\n @Input() descriptionKey?: string;\n\n @Input() icon?: string;\n @Input() optional = false;\n\n @Input() phase: SolarisStepperPhase | null = null;\n @Input() status: SolarisStepperStatus = 'default';\n\n @Input() badgeText?: string;\n @Input() badgeTextKey?: string;\n @Input() badgeColor?: BadgeColorInput;\n @Input() badgeVariant: BadgeVariant = 'subtle';\n @Input() badgeSize: SolarisSizePreset = 'sm';\n @Input() badgePill = true;\n\n public active = false;\n public index = 0;\n public headerId = '';\n public panelId = '';\n}\n","<section\n class=\"solaris-stepper-item__panel\"\n role=\"tabpanel\"\n [id]=\"panelId\"\n [attr.aria-labelledby]=\"headerId\"\n [attr.aria-hidden]=\"!active\"\n [attr.hidden]=\"active ? null : ''\"\n>\n <ng-content></ng-content>\n</section>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport {\n SolarisColorPreset,\n SolarisSizePreset,\n} from '../../../common/model/common-configurations.type';\nimport { BadgeColorInput, BadgeVariant } from '../model/badge.type';\n\n@Component({\n selector: 'solaris-badge',\n standalone: true,\n imports: [NgClass],\n templateUrl: './badge.html',\n styleUrls: ['./badge.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisBadge {\n @Input() pill = false;\n @Input() customTextColor?: string;\n @Input() interactive = false;\n @Input() size: SolarisSizePreset = 'md';\n @Input() variant: BadgeVariant = 'subtle';\n @Input() color: BadgeColorInput = 'surface';\n @Input({ alias: 'aria-hidden' }) ariaHidden: 'true' | 'false' | null = null;\n @HostBinding('class') hostClass = 'solaris-badge-host';\n private readonly presetColors = new Set<SolarisColorPreset>([\n 'primary',\n 'success',\n 'warning',\n 'error',\n 'info',\n 'surface',\n ]);\n\n get colorClass(): string {\n return this.isCustomColor ? 'color-custom' : `color-${this.color}`;\n }\n get isCustomColor(): boolean {\n return !this.presetColors.has(this.color as SolarisColorPreset);\n }\n get customColorValue(): string | null {\n return this.isCustomColor ? String(this.color) : null;\n }\n}\n","<span\n class=\"solaris-badge\"\n [attr.aria-hidden]=\"ariaHidden\"\n [ngClass]=\"[\n 'variant-' + variant,\n colorClass,\n 'size-' + size,\n pill ? 'is-pill' : '',\n interactive ? 'is-interactive' : '',\n ]\"\n [style.--solaris-badge-custom]=\"customColorValue\"\n [style.--solaris-badge-custom-fg]=\"customTextColor\"\n>\n <ng-content></ng-content>\n</span>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n SolarisStepperAppearance,\n SolarisStepperChangeEvent,\n SolarisStepperChangeReason,\n SolarisStepperOrientation,\n SolarisStepperPhase,\n} from '../model/stepper.type';\nimport { SolarisBadge } from '../../../feedbacks/badge/component/badge';\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\nimport { SolarisStepperItem } from '../item/component/stepper-item';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'solaris-stepper',\n standalone: true,\n imports: [CommonModule, SolarisTranslationPipe, SolarisBadge],\n templateUrl: './stepper.html',\n styleUrls: ['./stepper.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisStepper implements AfterContentInit, OnChanges {\n private readonly destroyRef = inject(DestroyRef);\n private static nextId = 0;\n\n @Input() orientation: SolarisStepperOrientation = 'horizontal';\n @Input() appearance: SolarisStepperAppearance = 'default';\n\n @Input() linear = true;\n @Input() interactive = true;\n\n @Input() activeIndex: number | null = null;\n @Input() defaultActiveIndex = 0;\n\n @Input() allowBackNavigation = true;\n @Input() allowFutureNavigation = false;\n @Input() allowSkip = false;\n\n @Input() renderPanels = true;\n @Input() showStateBadges = false;\n\n @Output() readonly activeIndexChange = new EventEmitter<number>();\n @Output('next') readonly nextChange = new EventEmitter<number>();\n @Output('previous') readonly previousChange = new EventEmitter<number>();\n @Output() readonly stepChange = new EventEmitter<SolarisStepperChangeEvent>();\n\n @ContentChildren(SolarisStepperItem)\n private readonly itemsQuery?: QueryList<SolarisStepperItem>;\n\n @ViewChildren('stepButton')\n private readonly stepButtons?: QueryList<ElementRef<HTMLButtonElement>>;\n\n public items: SolarisStepperItem[] = [];\n\n private readonly uid = SolarisStepper.nextId++;\n private internalActiveIndex = 0;\n\n public get currentIndex(): number {\n return this.normalizeIndex(\n this.isControlled() ? (this.activeIndex ?? 0) : this.internalActiveIndex,\n );\n }\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {}\n\n ngAfterContentInit(): void {\n this.internalActiveIndex = this.defaultActiveIndex;\n this.syncItems();\n\n this.itemsQuery?.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.syncItems();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['defaultActiveIndex'] && !this.isControlled()) {\n this.internalActiveIndex = this.defaultActiveIndex;\n }\n\n if (\n changes['activeIndex'] ||\n changes['orientation'] ||\n changes['appearance'] ||\n changes['linear']\n ) {\n this.syncItems();\n }\n }\n\n public next(): void {\n const target = this.findAdjacentNavigableIndex(this.currentIndex, 1);\n if (target === null) return;\n\n this.commitIndexChange(target, 'next');\n this.nextChange.emit(target);\n }\n\n public previous(): void {\n const target = this.findAdjacentNavigableIndex(this.currentIndex, -1);\n if (target === null) return;\n\n this.commitIndexChange(target, 'previous');\n this.previousChange.emit(target);\n }\n\n public setActiveStep(index: number): void {\n if (!this.isProgrammaticallyNavigable(index)) return;\n this.commitIndexChange(index, 'programmatic');\n }\n\n public onStepHeaderClick(index: number): void {\n if (!this.canActivateByHeaderClick(index)) return;\n this.commitIndexChange(index, 'header');\n }\n\n public onStepKeydown(event: KeyboardEvent, index: number): void {\n const isHorizontal = this.orientation === 'horizontal';\n\n switch (event.key) {\n case 'ArrowRight':\n if (!isHorizontal) return;\n event.preventDefault();\n this.focusRelativeButton(index, 1);\n return;\n\n case 'ArrowLeft':\n if (!isHorizontal) return;\n event.preventDefault();\n this.focusRelativeButton(index, -1);\n return;\n\n case 'ArrowDown':\n if (isHorizontal) return;\n event.preventDefault();\n this.focusRelativeButton(index, 1);\n return;\n\n case 'ArrowUp':\n if (isHorizontal) return;\n event.preventDefault();\n this.focusRelativeButton(index, -1);\n return;\n\n case 'Home':\n event.preventDefault();\n this.focusButton(0);\n return;\n\n case 'End':\n event.preventDefault();\n this.focusButton(this.items.length - 1);\n return;\n\n default:\n return;\n }\n }\n\n public isCurrent(index: number): boolean {\n return index === this.currentIndex;\n }\n\n public isCompleted(index: number): boolean {\n return this.resolvePhase(this.items[index], index) === 'completed';\n }\n\n public isPending(index: number): boolean {\n return this.resolvePhase(this.items[index], index) === 'pending';\n }\n\n public resolvePhase(item: SolarisStepperItem, index: number): SolarisStepperPhase {\n if (item.phase) return item.phase;\n\n if (index < this.currentIndex) return 'completed';\n if (index === this.currentIndex) return 'current';\n return 'pending';\n }\n\n public getStepClasses(item: SolarisStepperItem, index: number): Record<string, boolean> {\n return {\n 'is-current': this.isCurrent(index),\n 'is-completed': this.isCompleted(index),\n 'is-pending': this.isPending(index),\n 'is-warning': item.status === 'warning',\n 'is-error': item.status === 'error',\n 'is-disabled': item.status === 'disabled',\n 'is-locked': item.status === 'locked',\n 'is-clickable': this.canActivateByHeaderClick(index),\n };\n }\n\n public getConnectorClasses(index: number): Record<string, boolean> {\n return {\n 'is-completed': index < this.currentIndex,\n 'is-current': index === this.currentIndex,\n };\n }\n\n public getMarkerIcon(item: SolarisStepperItem, index: number): string | null {\n if (this.appearance === 'compact') return null;\n\n if (item.status === 'locked') return 'ph-lock';\n if (item.status === 'error') return 'ph-x-circle';\n if (item.status === 'warning') return 'ph-warning-circle';\n if (this.isCompleted(index)) return 'ph-check';\n\n return item.icon ?? null;\n }\n\n public getMarkerText(item: SolarisStepperItem, index: number): string | null {\n if (this.appearance === 'compact') {\n return `${index + 1}.`;\n }\n\n return this.getMarkerIcon(item, index) ? null : String(index + 1);\n }\n\n public hasBadge(item: SolarisStepperItem, index: number): boolean {\n if (!this.showStateBadges || this.appearance === 'compact') return false;\n\n return Boolean(\n item.badgeText || item.badgeTextKey || this.getAutoBadgeTranslationKey(item, index),\n );\n }\n\n public getResolvedLabel(item: SolarisStepperItem, index: number): string | null {\n if (item.labelKey || item.label) return null;\n return `${index + 1}`;\n }\n\n public getResolvedBadgeColor(item: SolarisStepperItem, index: number) {\n if (item.badgeColor) return item.badgeColor;\n\n if (item.status === 'error') return 'error';\n if (item.status === 'warning') return 'warning';\n if (item.status === 'locked' || item.status === 'disabled') return 'surface';\n\n const phase = this.resolvePhase(item, index);\n if (phase === 'completed') return 'success';\n if (phase === 'current') return 'primary';\n\n return 'surface';\n }\n\n public getResolvedBadgeVariant(item: SolarisStepperItem) {\n return item.badgeVariant;\n }\n\n public getAutoBadgeTranslationKey(item: SolarisStepperItem, index: number): string {\n if (item.status === 'error') return 'ui.solaris.stepper.error';\n if (item.status === 'warning') return 'ui.solaris.stepper.warning';\n if (item.status === 'locked') return 'ui.solaris.stepper.locked';\n if (item.status === 'disabled') return 'ui.solaris.stepper.disabled';\n\n const phase = this.resolvePhase(item, index);\n\n if (phase === 'completed') return 'ui.solaris.stepper.completed';\n if (phase === 'current') return 'ui.solaris.stepper.inProgress';\n return 'ui.solaris.stepper.pending';\n }\n\n public getTitle(item: SolarisStepperItem): string {\n return item.title ?? '';\n }\n\n public getDescription(item: SolarisStepperItem): string {\n return item.description ?? '';\n }\n\n public getStepAriaLabel(item: SolarisStepperItem, index: number): string {\n const phase = this.resolvePhase(item, index);\n const title = item.title ?? item.titleKey ?? `${index + 1}`;\n\n if (phase === 'completed') {\n return `${title} completed`;\n }\n\n if (phase === 'current') {\n return `${title} current step`;\n }\n\n if (item.status === 'locked') {\n return `${title} locked`;\n }\n\n if (item.status === 'disabled') {\n return `${title} disabled`;\n }\n\n return title;\n }\n\n public trackByIndex(index: number): number {\n return index;\n }\n\n private syncItems(): void {\n this.items = this.itemsQuery?.toArray() ?? [];\n\n const currentIndex = this.normalizeIndex(\n this.isControlled() ? (this.activeIndex ?? 0) : this.internalActiveIndex,\n );\n\n this.items.forEach((item, index) => {\n item.index = index;\n item.headerId = `solaris-stepper-${this.uid}-tab-${index}`;\n item.panelId = `solaris-stepper-${this.uid}-panel-${index}`;\n item.active = index === currentIndex;\n });\n\n this.changeDetectorRef.markForCheck();\n }\n\n private commitIndexChange(index: number, reason: SolarisStepperChangeReason): void {\n const normalized = this.normalizeIndex(index);\n if (normalized === this.currentIndex) return;\n\n const previousIndex = this.currentIndex;\n\n if (!this.isControlled()) {\n this.internalActiveIndex = normalized;\n this.syncItems();\n }\n\n this.activeIndexChange.emit(normalized);\n this.stepChange.emit({\n previousIndex,\n currentIndex: normalized,\n reason,\n });\n }\n\n private canActivateByHeaderClick(index: number): boolean {\n if (!this.interactive) return false;\n if (!this.isInBounds(index)) return false;\n\n const item = this.items[index];\n if (!item || this.isDisabledLike(item)) return false;\n\n if (index === this.currentIndex) return true;\n if (index < this.currentIndex) return this.allowBackNavigation;\n\n if (!this.linear) return true;\n\n if (!this.allowFutureNavigation) return false;\n if (!this.allowSkip) return index === this.currentIndex + 1;\n\n return true;\n }\n\n private isProgrammaticallyNavigable(index: number): boolean {\n if (!this.isInBounds(index)) return false;\n\n const item = this.items[index];\n if (!item) return false;\n\n return !this.isDisabledLike(item);\n }\n\n private findAdjacentNavigableIndex(start: number, direction: 1 | -1): number | null {\n let cursor = start + direction;\n\n while (this.isInBounds(cursor)) {\n const item = this.items[cursor];\n if (item && !this.isDisabledLike(item)) {\n return cursor;\n }\n cursor += direction;\n }\n\n return null;\n }\n\n private isDisabledLike(item: SolarisStepperItem): boolean {\n return item.status === 'disabled' || item.status === 'locked';\n }\n\n private isControlled(): boolean {\n return this.activeIndex !== null && this.activeIndex !== undefined;\n }\n\n private isInBounds(index: number): boolean {\n return index >= 0 && index < this.items.length;\n }\n\n private normalizeIndex(index: number): number {\n if (this.items.length === 0) return 0;\n return Math.min(Math.max(index, 0), this.items.length - 1);\n }\n\n private focusRelativeButton(index: number, direction: 1 | -1): void {\n let cursor = index + direction;\n\n while (cursor >= 0 && cursor < this.items.length) {\n if (!this.isDisabledLike(this.items[cursor])) {\n this.focusButton(cursor);\n return;\n }\n cursor += direction;\n }\n }\n\n private focusButton(index: number): void {\n const button = this.stepButtons?.get(index)?.nativeElement;\n button?.focus();\n }\n}\n","<div class=\"solaris-stepper\" [ngClass]=\"['orientation-' + orientation, 'appearance-' + appearance]\">\n <div class=\"solaris-stepper__rail\" role=\"tablist\" [attr.aria-orientation]=\"orientation\">\n @for (item of items; track trackByIndex($index); let i = $index; let last = $last) {\n <div class=\"solaris-stepper__node\">\n <button\n #stepButton\n type=\"button\"\n role=\"tab\"\n class=\"solaris-stepper__step\"\n [id]=\"item.headerId\"\n [attr.aria-controls]=\"item.panelId\"\n [attr.aria-selected]=\"isCurrent(i)\"\n [attr.aria-current]=\"isCurrent(i) ? 'step' : null\"\n [attr.aria-disabled]=\"item.status === 'disabled' || item.status === 'locked'\"\n [attr.tabindex]=\"isCurrent(i) ? 0 : -1\"\n [ngClass]=\"getStepClasses(item, i)\"\n (click)=\"onStepHeaderClick(i)\"\n (keydown)=\"onStepKeydown($event, i)\"\n >\n <span class=\"solaris-stepper__marker\" [ngClass]=\"getStepClasses(item, i)\">\n @if (getMarkerIcon(item, i)) {\n <i class=\"ph\" [ngClass]=\"getMarkerIcon(item, i)\" aria-hidden=\"true\"></i>\n }\n\n @if (getMarkerText(item, i)) {\n <span>{{ getMarkerText(item, i) }}</span>\n }\n </span>\n\n <span class=\"solaris-stepper__meta\">\n <span class=\"solaris-stepper__label\">\n @if (item.labelKey) {\n {{ item.labelKey | translate }}\n } @else if (item.label) {\n {{ item.label }}\n } @else {\n {{ 'ui.solaris.stepper.step' | translate }} {{ i + 1 }}\n }\n </span>\n\n <span class=\"solaris-stepper__title\">\n @if (item.titleKey) {\n {{ item.titleKey | translate }}\n } @else {\n {{ item.title }}\n }\n </span>\n\n @if (item.descriptionKey || item.description) {\n <span class=\"solaris-stepper__description\">\n @if (item.descriptionKey) {\n {{ item.descriptionKey | translate }}\n } @else {\n {{ item.description }}\n }\n </span>\n }\n\n @if (item.optional) {\n <span class=\"solaris-stepper__optional\">\n {{ 'ui.solaris.stepper.optional' | translate }}\n </span>\n }\n </span>\n\n @if (hasBadge(item, i)) {\n <solaris-badge\n class=\"solaris-stepper__badge\"\n [pill]=\"item.badgePill\"\n [size]=\"item.badgeSize\"\n [variant]=\"getResolvedBadgeVariant(item)\"\n [color]=\"getResolvedBadgeColor(item, i)\"\n aria-hidden=\"true\"\n >\n @if (item.badgeTextKey) {\n {{ item.badgeTextKey | translate }}\n } @else if (item.badgeText) {\n {{ item.badgeText }}\n } @else {\n {{ getAutoBadgeTranslationKey(item, i) | translate }}\n }\n </solaris-badge>\n }\n </button>\n\n @if (!last) {\n <span\n class=\"solaris-stepper__connector\"\n [ngClass]=\"getConnectorClasses(i)\"\n aria-hidden=\"true\"\n ></span>\n }\n </div>\n }\n </div>\n\n @if (renderPanels) {\n <div class=\"solaris-stepper__content\">\n <ng-content></ng-content>\n </div>\n }\n</div>\n","import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[solaris-popover-trigger]',\n standalone: true,\n})\nexport class SolarisPopoverTriggerDirective {\n readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[solaris-popover-panel]',\n standalone: true,\n})\nexport class SolarisPopoverPanelDirective {\n readonly templateRef: TemplateRef<any> = inject(TemplateRef<any>);\n}\n","export type SolarisPopoverPlacement =\n | 'bottom-start'\n | 'bottom'\n | 'bottom-end'\n | 'top-start'\n | 'top'\n | 'top-end'\n | 'right-start'\n | 'right'\n | 'right-end'\n | 'left-start'\n | 'left'\n | 'left-end';\n\nexport interface SolarisPopoverPositionConfiguration {\n placement: SolarisPopoverPlacement;\n offset: number;\n viewportPadding: number;\n autoFlip: boolean;\n autoShift: boolean;\n matchWidth: boolean;\n}\n\nexport interface SolarisPopoverPositionResult {\n x: number;\n y: number;\n appliedPlacement: SolarisPopoverPlacement;\n}\n\nfunction clamp(v: number, min: number, max: number) {\n return Math.max(min, Math.min(max, v));\n}\n\nfunction initialXY(\n anchor: DOMRect,\n panel: DOMRect,\n placement: SolarisPopoverPlacement,\n offset: number,\n) {\n const axMid = anchor.left + anchor.width / 2;\n const ayMid = anchor.top + anchor.height / 2;\n\n switch (placement) {\n case 'bottom-start':\n return { x: anchor.left, y: anchor.bottom + offset };\n case 'bottom':\n return { x: axMid - panel.width / 2, y: anchor.bottom + offset };\n case 'bottom-end':\n return { x: anchor.right - panel.width, y: anchor.bottom + offset };\n\n case 'top-start':\n return { x: anchor.left, y: anchor.top - panel.height - offset };\n case 'top':\n return { x: axMid - panel.width / 2, y: anchor.top - panel.height - offset };\n case 'top-end':\n return { x: anchor.right - panel.width, y: anchor.top - panel.height - offset };\n\n case 'right-start':\n return { x: anchor.right + offset, y: anchor.top };\n case 'right':\n return { x: anchor.right + offset, y: ayMid - panel.height / 2 };\n case 'right-end':\n return { x: anchor.right + offset, y: anchor.bottom - panel.height };\n\n case 'left-start':\n return { x: anchor.left - panel.width - offset, y: anchor.top };\n case 'left':\n return { x: anchor.left - panel.width - offset, y: ayMid - panel.height / 2 };\n case 'left-end':\n return { x: anchor.left - panel.width - offset, y: anchor.bottom - panel.height };\n }\n}\n\nfunction flipPlacement(p: SolarisPopoverPlacement): SolarisPopoverPlacement {\n if (p.startsWith('bottom')) return p.replace('bottom', 'top') as SolarisPopoverPlacement;\n if (p.startsWith('top')) return p.replace('top', 'bottom') as SolarisPopoverPlacement;\n if (p.startsWith('left')) return p.replace('left', 'right') as SolarisPopoverPlacement;\n if (p.startsWith('right')) return p.replace('right', 'left') as SolarisPopoverPlacement;\n return p;\n}\n\nexport function computePopoverPosition(\n anchorRect: DOMRect,\n panelRect: DOMRect,\n configuration: SolarisPopoverPositionConfiguration,\n): SolarisPopoverPositionResult {\n const vw = window.innerWidth;\n const vh = window.innerHeight;\n\n let applied = configuration.placement;\n\n const fits = (x: number, y: number) => {\n const pad = configuration.viewportPadding;\n const left = x;\n const top = y;\n const right = x + panelRect.width;\n const bottom = y + panelRect.height;\n\n return left >= pad && top >= pad && right <= vw - pad && bottom <= vh - pad;\n };\n\n let pos = initialXY(anchorRect, panelRect, applied, configuration.offset);\n\n if (configuration.autoFlip && !fits(pos.x, pos.y)) {\n const flipped = flipPlacement(applied);\n const flippedPos = initialXY(anchorRect, panelRect, flipped, configuration.offset);\n if (fits(flippedPos.x, flippedPos.y)) {\n applied = flipped;\n pos = flippedPos;\n }\n }\n\n if (configuration.autoShift) {\n const pad = configuration.viewportPadding;\n pos.x = clamp(pos.x, pad, vw - pad - panelRect.width);\n pos.y = clamp(pos.y, pad, vh - pad - panelRect.height);\n }\n\n return { x: pos.x, y: pos.y, appliedPlacement: applied };\n}\n","import {\n ApplicationRef,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChild,\n DestroyRef,\n effect,\n EmbeddedViewRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n Output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { SolarisPopoverTriggerDirective } from '../directives/popover-trigger.directive';\nimport { computePopoverPosition, SolarisPopoverPlacement } from '../model/popover.type';\nimport { SolarisPopoverPanelDirective } from '../directives/popover-panel.directive';\n\n@Component({\n selector: 'solaris-popover',\n standalone: true,\n templateUrl: './popover.html',\n styleUrls: ['./popover.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class SolarisPopover {\n private readonly appRef = inject(ApplicationRef);\n private readonly destroyRef = inject(DestroyRef);\n\n @Input() offset = 8;\n @Input() panelClass = '';\n @Input() autoFlip = true;\n @Input() autoShift = true;\n @Input() matchWidth = false;\n @Input() viewportPadding = 8;\n @Input() closeOnEscape = true;\n @Input() closeOnOutsideClick = true;\n @Input() anchorElement?: HTMLElement | null = null;\n @Input() matchWidthElement?: HTMLElement | null = null;\n @Input() placement: SolarisPopoverPlacement = 'bottom-start';\n\n @Output() openChange = new EventEmitter<boolean>();\n\n private readonly _internalOpen = signal(false);\n private readonly _openInput = signal<boolean | null>(null);\n\n readonly isOpen = computed(() => {\n const v = this._openInput();\n return typeof v === 'boolean' ? v : this._internalOpen();\n });\n\n @Input() set open(v: boolean | null) {\n this._openInput.set(v);\n }\n get open(): boolean | null {\n return this._openInput();\n }\n\n @ContentChild(SolarisPopoverPanelDirective) panelDir?: SolarisPopoverPanelDirective;\n @ContentChild(SolarisPopoverTriggerDirective) triggerDir?: SolarisPopoverTriggerDirective;\n\n private raf = 0;\n private _setting = false;\n private panelHost?: HTMLDivElement;\n private panelView?: EmbeddedViewRef<any>;\n\n @HostBinding('attr.data-open')\n get dataOpen() {\n return this.isOpen() ? 'true' : null;\n }\n\n constructor() {\n effect(() => {\n if (this.isOpen()) this.show();\n else this.hide();\n });\n\n effect((onCleanup) => {\n if (!this.isOpen()) return;\n\n const onResize = () => this.scheduleReposition();\n const onScroll = () => this.scheduleReposition();\n\n const onPointerDown = (ev: PointerEvent) => {\n if (!this.closeOnOutsideClick) return;\n const t = ev.target as Node | null;\n const triggerEl = this.triggerDir?.elementRef.nativeElement;\n if (!t || !triggerEl || !this.panelHost) return;\n\n const clickedInsidePanel = this.panelHost.contains(t);\n const clickedOnTrigger = triggerEl.contains(t);\n\n if (!clickedInsidePanel && !clickedOnTrigger) {\n this.setOpen(false);\n }\n };\n\n const onKeyDown = (ev: KeyboardEvent) => {\n if (!this.closeOnEscape) return;\n if (ev.key === 'Escape') this.setOpen(false);\n };\n\n window.addEventListener('resize', onResize, { passive: true });\n window.addEventListener('scroll', onScroll, { passive: true, capture: true });\n document.addEventListener('pointerdown', onPointerDown, { capture: true });\n document.addEventListener('keydown', onKeyDown, { capture: true });\n\n onCleanup(() => {\n window.removeEventListener('resize', onResize);\n window.removeEventListener('scroll', onScroll, true as any);\n document.removeEventListener('pointerdown', onPointerDown, true as any);\n document.removeEventListener('keydown', onKeyDown, true as any);\n });\n });\n\n this.destroyRef.onDestroy(() => this.unmountHard());\n }\n\n public toggle() {\n this.setOpen(!this.isOpen());\n }\n\n public setOpen(next: boolean) {\n const current = this.isOpen();\n if (next === current) return;\n if (this._setting) return;\n\n this._setting = true;\n try {\n this.openChange.emit(next);\n if (typeof this._openInput() !== 'boolean') {\n this._internalOpen.set(next);\n }\n } finally {\n queueMicrotask(() => (this._setting = false));\n }\n }\n\n private ensureMounted() {\n if (this.panelHost || !this.triggerDir || !this.panelDir) return;\n\n const host = document.createElement('div');\n host.style.top = '0px';\n host.style.left = '0px';\n host.style.display = 'none';\n host.style.position = 'fixed';\n host.style.zIndex = 'var(--solaris-z-max)';\n host.className = `solaris-popover-panel ${this.panelClass || ''}`.trim();\n\n const view = this.panelDir.templateRef.createEmbeddedView({});\n this.appRef.attachView(view);\n view.detectChanges();\n\n for (const node of view.rootNodes) host.appendChild(node);\n document.body.appendChild(host);\n\n this.panelHost = host;\n this.panelView = view;\n }\n\n private show() {\n this.ensureMounted();\n if (!this.panelHost) return;\n\n this.panelHost.style.display = '';\n this.scheduleReposition(true);\n }\n\n private hide() {\n if (!this.panelHost) return;\n this.panelHost.style.display = 'none';\n }\n\n private unmountHard() {\n if (this.raf) cancelAnimationFrame(this.raf);\n this.raf = 0;\n\n if (this.panelView) {\n this.appRef.detachView(this.panelView);\n this.panelView.destroy();\n this.panelView = undefined;\n }\n\n if (this.panelHost) {\n this.panelHost.remove();\n this.panelHost = undefined;\n }\n }\n\n private scheduleReposition(immediate = false) {\n if (!this.panelHost || !this.triggerDir) return;\n\n if (immediate) {\n this.reposition();\n return;\n }\n\n if (this.raf) return;\n this.raf = requestAnimationFrame(() => {\n this.raf = 0;\n this.reposition();\n });\n }\n\n private reposition() {\n const triggerEl = this.triggerDir?.elementRef.nativeElement;\n const host = this.panelHost;\n if (!triggerEl || !host) return;\n\n const anchorEl = this.anchorElement ?? triggerEl;\n const anchorRect = anchorEl.getBoundingClientRect();\n const widthEl = this.matchWidthElement ?? (this.matchWidth ? anchorEl : null);\n\n if (this.matchWidth && widthEl) {\n const w = widthEl.getBoundingClientRect().width;\n host.style.boxSizing = 'border-box';\n host.style.width = `${w}px`;\n host.style.minWidth = `${w}px`;\n host.style.maxWidth = `${w}px`;\n } else {\n host.style.width = '';\n host.style.minWidth = '';\n host.style.maxWidth = '';\n }\n\n if (getComputedStyle(host).display === 'none') return;\n\n const panelRect = host.getBoundingClientRect();\n\n const { x, y } = computePopoverPosition(anchorRect, panelRect, {\n placement: this.placement,\n offset: this.offset,\n viewportPadding: this.viewportPadding,\n autoFlip: this.autoFlip,\n autoShift: this.autoShift,\n matchWidth: this.matchWidth,\n });\n\n host.style.transform = `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)`;\n }\n}\n","<ng-content></ng-content>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n QueryList,\n signal,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { TabsSize, TabsVariant } from '../model/tab.type';\nimport { SolarisTab } from '../tab/component/tab';\n\n@Component({\n selector: 'solaris-tabs',\n standalone: true,\n imports: [NgClass],\n templateUrl: './tabs.html',\n styleUrls: ['./tabs.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisTabs implements AfterContentInit {\n @Input() size: TabsSize = 'md';\n @Input() disabled = false;\n @Input() variant: TabsVariant = 'underline';\n @Input({ alias: 'active-id' }) activeId?: string;\n @Output('active-idChange') activeIdChange = new EventEmitter<string>();\n @Output() tabChange = new EventEmitter<{ id: string }>();\n\n @HostBinding('class') hostClass = 'solaris-tabs-host';\n @ContentChildren(SolarisTab) tabs!: QueryList<SolarisTab>;\n readonly focusId = signal<string | null>(null);\n\n ngAfterContentInit(): void {\n queueMicrotask(() => {\n const first = this.tabs?.get(0);\n if (!this.activeId && first?.id) {\n this.setActive(first.id, false);\n }\n if (!this.focusId() && (this.activeId ?? first?.id)) {\n this.focusId.set(this.activeId ?? first?.id ?? null);\n }\n this.syncTabs();\n this.tabs.changes.subscribe(() => this.syncTabs());\n });\n }\n\n private syncTabs(): void {\n const list = this.tabs?.toArray() ?? [];\n for (const t of list) {\n t._setParent(this);\n t._setDisabled(this.disabled || t.disabled);\n }\n }\n\n isActive(id: string): boolean {\n return this.activeId === id;\n }\n\n isFocusable(id: string): boolean {\n const fid = this.focusId();\n return (fid ?? this.activeId) === id;\n }\n\n setActive(id: string, emit = true): void {\n if (!id) return;\n this.activeId = id;\n this.focusId.set(id);\n if (emit) {\n this.activeIdChange.emit(id);\n this.tabChange.emit({ id });\n }\n }\n\n onKeydown(ev: KeyboardEvent): void {\n if (this.disabled) return;\n\n const keys = ['ArrowLeft', 'ArrowRight', 'Home', 'End'];\n if (!keys.includes(ev.key)) return;\n\n const list = (this.tabs?.toArray() ?? []).filter((t) => !t._isDisabled());\n if (!list.length) return;\n\n ev.preventDefault();\n\n const currentId = this.focusId() ?? this.activeId ?? list[0].id;\n const idx = Math.max(\n 0,\n list.findIndex((t) => t.id === currentId),\n );\n let next = idx;\n\n if (ev.key === 'ArrowLeft') next = (idx - 1 + list.length) % list.length;\n if (ev.key === 'ArrowRight') next = (idx + 1) % list.length;\n if (ev.key === 'Home') next = 0;\n if (ev.key === 'End') next = list.length - 1;\n\n const nextTab = list[next];\n this.focusId.set(nextTab.id);\n nextTab._focus();\n }\n}\n","<div\n [ngClass]=\"['size-' + size, 'variant-' + variant, disabled ? 'is-disabled' : '']\"\n class=\"solaris-tabs\"\n role=\"tablist\"\n (keydown)=\"onKeydown($event)\"\n>\n <ng-content />\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n Optional,\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\nimport { SolarisTabs } from '../../component/tabs';\n\n@Component({\n selector: 'solaris-tab',\n standalone: true,\n imports: [RouterLink],\n templateUrl: './tab.html',\n styleUrls: ['./tab.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisTab {\n @Input() disabled = false;\n @Input() routerLink?: any[] | string;\n @Input({ required: true }) id!: string;\n\n private parent?: SolarisTabs;\n private disabledByParent = false;\n\n constructor(\n private readonly elementRef: ElementRef<HTMLElement>,\n @Optional() parent: SolarisTabs,\n ) {\n this.parent = parent;\n }\n\n _setParent(parent: SolarisTabs): void {\n this.parent = parent;\n }\n\n _setDisabled(disabled: boolean): void {\n this.disabledByParent = disabled;\n }\n\n _isDisabled(): boolean {\n return this.disabled || this.disabledByParent;\n }\n\n _focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n @HostBinding('class')\n get hostClass(): string {\n const active = this.parent?.isActive(this.id);\n return [\n 'solaris-tab',\n active ? 'is-active' : '',\n this._isDisabled() ? 'is-disabled' : '',\n this.routerLink ? 'is-link' : '',\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n @HostBinding('attr.role') role = 'tab';\n\n @HostBinding('attr.tabindex')\n get tabIndex(): number {\n if (this._isDisabled()) return -1;\n return this.parent?.isFocusable(this.id) ? 0 : -1;\n }\n\n @HostBinding('attr.aria-selected')\n get ariaSelected(): string {\n return this.parent?.isActive(this.id) ? 'true' : 'false';\n }\n\n @HostListener('click')\n onClick(): void {\n if (this._isDisabled()) return;\n this.parent?.setActive(this.id, true);\n }\n\n @HostListener('focus')\n onFocus(): void {\n if (this._isDisabled()) return;\n this.parent?.focusId.set(this.id);\n }\n}\n","@if (routerLink) {\n <a class=\"solaris-tab__inner\" [routerLink]=\"routerLink\">\n <ng-content />\n </a>\n} @else {\n <button type=\"button\" class=\"solaris-tab__inner\">\n <ng-content />\n </button>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { NgStyle } from '@angular/common';\n\n@Component({\n selector: 'solaris-loading-overlay',\n standalone: true,\n imports: [NgStyle],\n templateUrl: './loading-overlay.html',\n styleUrls: ['./loading-overlay.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisLoadingOverlay implements OnChanges {\n @HostBinding('attr.solaris-loading-overlay') readonly marker = '';\n\n @Input({ alias: 'z-index' }) zIndex?: number;\n @Input() backdrop: 'soft' | 'strong' = 'soft';\n @Input() appearance: 'card' | 'minimal' = 'card';\n @Input({ transform: coerceBoolean }) blur = true;\n @Input({ transform: coerceBoolean }) open = false;\n @Input({ alias: 'lock-scroll', transform: coerceBoolean }) lockScroll = true;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.lockScroll) return;\n\n if (changes['open']) {\n if (this.open) document.documentElement.style.overflow = 'hidden';\n else document.documentElement.style.overflow = '';\n }\n }\n\n get overlayStyle() {\n return this.zIndex == null ? null : { 'z-index': String(this.zIndex) };\n }\n}\n\nfunction coerceBoolean(v: any): boolean {\n return v === '' || v === true || v === 'true' || v === 1 || v === '1';\n}\n","@if (open) {\n <div\n class=\"solaris-loading-overlay\"\n [class.backdrop-soft]=\"backdrop === 'soft'\"\n [class.backdrop-strong]=\"backdrop === 'strong'\"\n [class.is-blur]=\"blur\"\n [class.appearance-card]=\"appearance === 'card'\"\n [class.appearance-minimal]=\"appearance === 'minimal'\"\n [ngStyle]=\"overlayStyle\"\n role=\"presentation\"\n >\n <div class=\"solaris-loading-overlay__backdrop\" aria-hidden=\"true\"></div>\n\n <div class=\"solaris-loading-overlay__content\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\">\n <ng-content></ng-content>\n </div>\n </div>\n}\n","import {\n SolarisFloatingOverlayRef,\n SolarisFloatingPosition,\n SolarisFloatingPositionConfiguration,\n SolarisFloatingPositionResult,\n SolarisTooltipRepositionOptions,\n} from './model/tooltip-services.type';\nimport { ElementRef } from '@angular/core';\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, value));\n}\n\nfunction oppositePosition(position: SolarisFloatingPosition): SolarisFloatingPosition {\n switch (position) {\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n }\n}\n\nfunction initialXY(\n anchor: DOMRect,\n panel: DOMRect,\n position: SolarisFloatingPosition,\n offset: number,\n): { x: number; y: number } {\n const anchorCenterX = anchor.left + anchor.width / 2;\n const anchorCenterY = anchor.top + anchor.height / 2;\n\n switch (position) {\n case 'top':\n return {\n x: anchorCenterX - panel.width / 2,\n y: anchor.top - panel.height - offset,\n };\n\n case 'bottom':\n return {\n x: anchorCenterX - panel.width / 2,\n y: anchor.bottom + offset,\n };\n\n case 'right':\n return {\n x: anchor.right + offset,\n y: anchorCenterY - panel.height / 2,\n };\n\n case 'left':\n return {\n x: anchor.left - panel.width - offset,\n y: anchorCenterY - panel.height / 2,\n };\n }\n}\n\nexport function computeFloatingPosition(\n anchorRect: DOMRect,\n panelRect: DOMRect,\n configuration: SolarisFloatingPositionConfiguration,\n): SolarisFloatingPositionResult {\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n const padding = configuration.viewportPadding;\n\n let appliedPosition = configuration.position;\n let position = initialXY(anchorRect, panelRect, appliedPosition, configuration.offset);\n\n const fits = (x: number, y: number): boolean => {\n const left = x;\n const top = y;\n const right = x + panelRect.width;\n const bottom = y + panelRect.height;\n\n return (\n left >= padding &&\n top >= padding &&\n right <= viewportWidth - padding &&\n bottom <= viewportHeight - padding\n );\n };\n\n if (configuration.autoFlip && !fits(position.x, position.y)) {\n const flipped = oppositePosition(appliedPosition);\n const flippedPosition = initialXY(anchorRect, panelRect, flipped, configuration.offset);\n\n if (fits(flippedPosition.x, flippedPosition.y)) {\n appliedPosition = flipped;\n position = flippedPosition;\n }\n }\n\n if (configuration.autoShift) {\n position.x = clamp(position.x, padding, viewportWidth - padding - panelRect.width);\n position.y = clamp(position.y, padding, viewportHeight - padding - panelRect.height);\n }\n\n return {\n x: position.x,\n y: position.y,\n appliedPosition,\n };\n}\n\nexport function repositionTooltipOverlay<T>(\n anchor: ElementRef<HTMLElement>,\n overlayRef: SolarisFloatingOverlayRef<T>,\n options: SolarisTooltipRepositionOptions,\n setAppliedPosition: (position: SolarisFloatingPosition) => void,\n): void {\n const anchorRect = anchor.nativeElement.getBoundingClientRect();\n const panelRect = overlayRef.hostElement.getBoundingClientRect();\n\n const result = computeFloatingPosition(anchorRect, panelRect, options);\n\n overlayRef.setTransform(result.x, result.y);\n setAppliedPosition(result.appliedPosition);\n}\n","import {\n ApplicationRef,\n EnvironmentInjector,\n Injectable,\n Type,\n createComponent,\n inject,\n} from '@angular/core';\n\nimport {\n SolarisFloatingOverlayOptions,\n SolarisFloatingOverlayRef,\n SolarisFloatingRepositionContext,\n} from './model/tooltip-services.type';\nimport { computeFloatingPosition } from './floating-position.util';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SolarisFloatingOverlayService {\n private readonly appRef = inject(ApplicationRef);\n private readonly injector = inject(EnvironmentInjector);\n\n create<T>(\n component: Type<T>,\n options: SolarisFloatingOverlayOptions = {},\n ): SolarisFloatingOverlayRef<T> {\n const id = this.createId(options.idPrefix ?? 'solaris-floating');\n\n const host = document.createElement('div');\n host.id = id;\n host.style.position = 'fixed';\n host.style.top = '0';\n host.style.left = '0';\n host.style.display = 'block';\n host.style.width = 'max-content';\n host.style.maxWidth = 'max-content';\n host.style.zIndex = options.zIndex ?? 'var(--solaris-z-tooltip, 1200)';\n host.style.pointerEvents = options.pointerEvents ?? 'none';\n host.style.transform = 'translate3d(0, 0, 0)';\n\n if (options.panelClass?.trim()) {\n host.className = options.panelClass.trim();\n }\n\n document.body.appendChild(host);\n\n const componentRef = createComponent(component, {\n environmentInjector: this.injector,\n hostElement: host,\n });\n\n this.appRef.attachView(componentRef.hostView);\n componentRef.changeDetectorRef.detectChanges();\n\n return {\n id,\n hostElement: host,\n componentRef,\n\n setTransform(x: number, y: number): void {\n host.style.transform = `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)`;\n },\n\n destroy: (): void => {\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n host.remove();\n },\n };\n }\n\n reposition<T>(context: SolarisFloatingRepositionContext<T>): void {\n const anchorRect = context.anchor.getBoundingClientRect();\n const panelRect = context.overlayRef.hostElement.getBoundingClientRect();\n\n const result = computeFloatingPosition(anchorRect, panelRect, context.options);\n\n context.overlayRef.setTransform(result.x, result.y);\n context.setAppliedPosition(result.appliedPosition);\n }\n\n clearFloatingTimers(showTimer: number, hideTimer: number, raf: number): void {\n globalThis.clearTimeout(showTimer);\n globalThis.clearTimeout(hideTimer);\n\n if (raf) {\n cancelAnimationFrame(raf);\n }\n }\n\n destroyOverlay<T>(overlayRef?: SolarisFloatingOverlayRef<T>): void {\n overlayRef?.destroy();\n }\n\n private createId(prefix: string): string {\n const random =\n typeof crypto !== 'undefined' && 'randomUUID' in crypto\n ? crypto.randomUUID()\n : `${Date.now()}-${Math.round(Math.random() * 1_000_000)}`;\n\n return `${prefix}-${random}`;\n }\n}\n","import { ChangeDetectionStrategy, Component, TemplateRef, input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\nimport {\n SolarisTooltipPosition,\n SolarisTooltipSize,\n SolarisTooltipVariant,\n} from '../../tooltip/model/tooltip.type';\n\n@Component({\n selector: 'solaris-rich-tooltip-panel',\n standalone: true,\n imports: [NgTemplateOutlet],\n templateUrl: './rich-tooltip-panel.html',\n styleUrls: ['./rich-tooltip-panel.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisRichTooltipPanel {\n readonly template = input<TemplateRef<unknown> | null>(null);\n readonly position = input<SolarisTooltipPosition>('top');\n readonly variant = input<SolarisTooltipVariant>('inverse');\n readonly size = input<SolarisTooltipSize>('md');\n}\n","<div\n class=\"solaris-rich-tooltip\"\n [attr.data-position]=\"position()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n role=\"tooltip\"\n>\n <div class=\"solaris-rich-tooltip__content\">\n @if (template()) {\n <ng-container [ngTemplateOutlet]=\"template()\"></ng-container>\n }\n </div>\n\n <span class=\"solaris-rich-tooltip__arrow\" aria-hidden=\"true\"></span>\n</div>\n","import {\n Directive,\n ElementRef,\n Renderer2,\n TemplateRef,\n effect,\n inject,\n input,\n OnDestroy,\n} from '@angular/core';\n\nimport {\n SolarisTooltipPosition,\n SolarisTooltipSize,\n SolarisTooltipVariant,\n} from '../../tooltip/model/tooltip.type';\nimport { SolarisFloatingOverlayService } from '../../../core/overlay/floating-overlay.service';\nimport { SolarisFloatingOverlayRef } from '../../../core/overlay/model/tooltip-services.type';\nimport { repositionTooltipOverlay } from '../../../core/overlay/floating-position.util';\nimport { SolarisRichTooltipPanel } from '../component/rich-tooltip-panel';\n\n@Directive({\n selector: '[solaris-rich-tooltip]',\n standalone: true,\n})\nexport class SolarisRichTooltipDirective implements OnDestroy {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly floatingOverlay = inject(SolarisFloatingOverlayService);\n\n readonly template = input<TemplateRef<unknown> | null>(null, {\n alias: 'solaris-rich-tooltip',\n });\n\n readonly tooltipPosition = input<SolarisTooltipPosition>('top', {\n alias: 'tooltip-position',\n });\n\n readonly tooltipVariant = input<SolarisTooltipVariant>('inverse', {\n alias: 'tooltip-variant',\n });\n\n readonly tooltipSize = input<SolarisTooltipSize>('md', {\n alias: 'tooltip-size',\n });\n\n readonly tooltipDisabled = input(false, {\n alias: 'tooltip-disabled',\n });\n\n readonly tooltipShowDelay = input(300, {\n alias: 'tooltip-show-delay',\n });\n\n readonly tooltipHideDelay = input(120, {\n alias: 'tooltip-hide-delay',\n });\n\n readonly tooltipOffset = input(8, {\n alias: 'tooltip-offset',\n });\n\n readonly tooltipAutoFlip = input(true, {\n alias: 'tooltip-auto-flip',\n });\n\n readonly tooltipAutoShift = input(true, {\n alias: 'tooltip-auto-shift',\n });\n\n readonly tooltipViewportPadding = input(8, {\n alias: 'tooltip-viewport-padding',\n });\n\n private overlayRef?: SolarisFloatingOverlayRef<SolarisRichTooltipPanel>;\n private showTimer = 0;\n private hideTimer = 0;\n private raf = 0;\n private isTriggerHovered = false;\n private isPanelHovered = false;\n private hasFocusInside = false;\n\n private readonly cleanups: Array<() => void> = [];\n\n constructor() {\n const host = this.elementRef.nativeElement;\n\n this.cleanups.push(\n this.renderer.listen(host, 'mouseenter', () => {\n this.isTriggerHovered = true;\n this.scheduleShow();\n }),\n this.renderer.listen(host, 'mouseleave', () => {\n this.isTriggerHovered = false;\n this.scheduleHideIfSafe();\n }),\n this.renderer.listen(host, 'focusin', () => {\n this.hasFocusInside = true;\n this.scheduleShow();\n }),\n this.renderer.listen(host, 'focusout', () => {\n this.hasFocusInside = false;\n this.scheduleHideIfSafe();\n }),\n this.renderer.listen(host, 'keydown', (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n this.hide();\n }\n }),\n this.renderer.listen(globalThis, 'resize', () => this.scheduleReposition()),\n this.renderer.listen(globalThis, 'scroll', () => this.scheduleReposition()),\n this.renderer.listen(document, 'keydown', (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n this.hide();\n }\n }),\n );\n\n effect(() => {\n if (!this.overlayRef) return;\n\n this.applyPanelInputs();\n this.scheduleReposition();\n });\n }\n\n private scheduleShow(): void {\n if (this.tooltipDisabled()) return;\n if (!this.template()) return;\n\n globalThis.clearTimeout(this.hideTimer);\n globalThis.clearTimeout(this.showTimer);\n\n this.showTimer = globalThis.setTimeout(() => {\n this.show();\n }, this.tooltipShowDelay());\n }\n\n private scheduleHideIfSafe(): void {\n globalThis.clearTimeout(this.showTimer);\n globalThis.clearTimeout(this.hideTimer);\n\n this.hideTimer = globalThis.setTimeout(() => {\n if (!this.isTriggerHovered && !this.isPanelHovered && !this.hasFocusInside) {\n this.hide();\n }\n }, this.tooltipHideDelay());\n }\n\n private show(): void {\n if (this.overlayRef || this.tooltipDisabled()) return;\n if (!this.template()) return;\n\n this.overlayRef = this.floatingOverlay.create(SolarisRichTooltipPanel, {\n idPrefix: 'solaris-rich-tooltip',\n zIndex: 'var(--solaris-z-tooltip, 1200)',\n pointerEvents: 'auto',\n });\n\n this.applyPanelInputs();\n this.bindPanelInteractions();\n\n this.renderer.setAttribute(\n this.elementRef.nativeElement,\n 'aria-describedby',\n this.overlayRef.id,\n );\n\n requestAnimationFrame(() => this.reposition());\n }\n\n private bindPanelInteractions(): void {\n if (!this.overlayRef) return;\n\n const panel = this.overlayRef.hostElement;\n\n this.cleanups.push(\n this.renderer.listen(panel, 'mouseenter', () => {\n this.isPanelHovered = true;\n globalThis.clearTimeout(this.hideTimer);\n }),\n this.renderer.listen(panel, 'mouseleave', () => {\n this.isPanelHovered = false;\n this.scheduleHideIfSafe();\n }),\n this.renderer.listen(panel, 'focusin', () => {\n this.hasFocusInside = true;\n globalThis.clearTimeout(this.hideTimer);\n }),\n this.renderer.listen(panel, 'focusout', () => {\n this.hasFocusInside = false;\n this.scheduleHideIfSafe();\n }),\n );\n }\n\n private hide(): void {\n this.floatingOverlay.clearFloatingTimers(this.showTimer, this.hideTimer, this.raf);\n this.raf = 0;\n\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'aria-describedby');\n\n this.floatingOverlay.destroyOverlay(this.overlayRef);\n this.overlayRef = undefined;\n\n this.isPanelHovered = false;\n this.hasFocusInside = false;\n }\n\n private applyPanelInputs(): void {\n if (!this.overlayRef) return;\n\n const panel = this.overlayRef.componentRef;\n\n panel.setInput('template', this.template());\n panel.setInput('position', this.tooltipPosition());\n panel.setInput('variant', this.tooltipVariant());\n panel.setInput('size', this.tooltipSize());\n\n panel.changeDetectorRef.detectChanges();\n }\n\n private scheduleReposition(): void {\n if (!this.overlayRef) return;\n if (this.raf) return;\n\n this.raf = requestAnimationFrame(() => {\n this.raf = 0;\n this.reposition();\n });\n }\n\n private reposition(): void {\n if (!this.overlayRef) return;\n\n repositionTooltipOverlay(\n this.elementRef,\n this.overlayRef,\n {\n position: this.tooltipPosition(),\n offset: this.tooltipOffset(),\n viewportPadding: this.tooltipViewportPadding(),\n autoFlip: this.tooltipAutoFlip(),\n autoShift: this.tooltipAutoShift(),\n },\n (position) => {\n this.overlayRef?.componentRef.setInput('position', position);\n this.overlayRef?.componentRef.changeDetectorRef.detectChanges();\n },\n );\n }\n\n ngOnDestroy(): void {\n this.hide();\n\n for (const cleanup of this.cleanups) {\n cleanup();\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n booleanAttribute,\n computed,\n inject,\n signal,\n} from '@angular/core';\n\nimport {\n SolarisButtonColorInput,\n SolarisButtonVariant,\n SolarisRadiusInput,\n} from '../model/button.type';\nimport {\n SolarisColorPreset,\n SolarisSizePreset,\n} from '../../../common/model/common-configurations.type';\n\nconst PRESET_COLORS = new Set<SolarisColorPreset>([\n 'primary',\n 'surface',\n 'success',\n 'warning',\n 'error',\n 'info',\n 'gradient',\n]);\nfunction resolveRadius(v: SolarisRadiusInput): string {\n const s = String(v).trim();\n switch (s) {\n case 'none':\n return '0';\n case 'sm':\n return 'var(--solaris-radius-sm)';\n case 'md':\n return 'var(--solaris-radius-md, var(--solaris-radius-sm))';\n case 'lg':\n return 'var(--solaris-radius-lg, var(--solaris-radius-md, var(--solaris-radius-sm)))';\n case 'full':\n return 'var(--solaris-radius-full)';\n default:\n return s;\n }\n}\n\n@Directive({\n selector: 'button[solaris-button], a[solaris-button]',\n standalone: true,\n})\nexport class SolarisButtonDirective {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n private readonly _loading = signal(false);\n private readonly _disabled = signal(false);\n private readonly _iconOnly = signal(false);\n private readonly _fullWidth = signal(false);\n private readonly _badgeOverlay = signal(false);\n private readonly _textColor = signal<string | null>(null);\n private readonly _customColor = signal<string | null>(null);\n private readonly _size = signal<SolarisSizePreset>('md');\n private readonly _variant = signal<SolarisButtonVariant>('solid');\n private readonly _radius = signal<SolarisRadiusInput | null>(null);\n private readonly _color = signal<SolarisColorPreset | 'custom'>('primary');\n\n private readonly isAnchor = computed(\n () => this.elementRef.nativeElement.tagName.toLowerCase() === 'a',\n );\n\n @Input() set size(v: SolarisSizePreset) {\n if (v) this._size.set(v);\n }\n @Input() set variant(v: SolarisButtonVariant) {\n if (v) this._variant.set(v);\n }\n @Input() set color(v: SolarisButtonColorInput) {\n if (v == null || String(v).trim() === '') return;\n\n const value = String(v).trim();\n if (PRESET_COLORS.has(value as SolarisColorPreset)) {\n this._color.set(value as SolarisColorPreset);\n this._customColor.set(null);\n } else {\n this._color.set('custom');\n this._customColor.set(value);\n }\n }\n @Input() set textColor(v: string | null | undefined) {\n const value = v == null || String(v).trim() === '' ? null : String(v).trim();\n this._textColor.set(value);\n }\n @Input() set radius(v: SolarisRadiusInput | null | undefined) {\n const value = v == null || String(v).trim() === '' ? null : v;\n this._radius.set(value);\n }\n @Input({ transform: booleanAttribute }) set loading(v: boolean) {\n this._loading.set(v);\n }\n @Input({ transform: booleanAttribute }) set iconOnly(v: boolean) {\n this._iconOnly.set(v);\n }\n @Input({ transform: booleanAttribute }) set disabled(v: boolean) {\n this._disabled.set(v);\n }\n @Input({ transform: booleanAttribute }) set fullWidth(v: boolean) {\n this._fullWidth.set(v);\n }\n @Input({ transform: booleanAttribute }) set badgeOverlay(v: boolean) {\n this._badgeOverlay.set(v);\n }\n\n @HostBinding('attr.solaris-button') readonly attr = '';\n @HostBinding('attr.tabindex') get tabIndex() {\n return this.isAnchor() && (this._disabled() || this._loading()) ? -1 : null;\n }\n @HostBinding('attr.aria-busy') get ariaBusy() {\n return this._loading() ? 'true' : null;\n }\n @HostBinding('attr.data-size') get dataSize() {\n return this._size();\n }\n @HostBinding('attr.data-color') get dataColor() {\n return this._color();\n }\n @HostBinding('attr.disabled') get nativeDisabled() {\n const isButton = !this.isAnchor();\n return isButton && (this._disabled() || this._loading()) ? '' : null;\n }\n @HostBinding('attr.data-variant') get dataVariant() {\n return this._variant();\n }\n @HostBinding('attr.aria-disabled') get ariaDisabled() {\n return this.isAnchor() && (this._disabled() || this._loading()) ? 'true' : null;\n }\n @HostBinding('attr.data-icon-only') get dataIconOnly() {\n return this._iconOnly() ? 'true' : null;\n }\n @HostBinding('attr.data-full-width') get dataFullWidth() {\n return this._fullWidth() ? 'true' : null;\n }\n @HostBinding('style.--sb-custom') get customColorValue() {\n return this._customColor() ?? null;\n }\n @HostBinding('attr.data-custom-ink') get dataCustomInk() {\n return this._textColor() ? 'true' : null;\n }\n @HostBinding('style.--sb-custom-ink') get customInkValue() {\n return this._textColor() ?? null;\n }\n @HostBinding('attr.data-badge-overlay') get dataBadgeOverlay() {\n return this._badgeOverlay() ? 'true' : null;\n }\n @HostBinding('style.--solaris-button-radius') get buttonRadius() {\n return this._radius() ? resolveRadius(this._radius()!) : null;\n }\n\n @HostListener('click', ['$event']) onClick(ev: Event) {\n if (!this.isAnchor()) return;\n if (this._disabled() || this._loading()) {\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n }\n}\n","import { EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\n\nimport {\n SolarisNotificationConfig,\n SolarisNotificationConfigInput,\n SolarisNotificationPosition,\n} from '../model/notification.types';\n\nexport const SOLARIS_NOTIFICATION_POSITIONS: readonly SolarisNotificationPosition[] = [\n 'top-right',\n 'top-left',\n 'top-center',\n 'bottom-right',\n 'bottom-left',\n 'bottom-center',\n] as const;\n\nexport const SOLARIS_NOTIFICATION_DEFAULT_CONFIG: SolarisNotificationConfig = {\n defaultPosition: 'bottom-center',\n defaultDuration: 15000,\n maxVisiblePerPosition: 4,\n hoverPause: false,\n newestOnTop: true,\n expandSingle: false,\n persistInCenter: true,\n translationScope: 'solaris.notifications',\n};\n\nexport const SOLARIS_NOTIFICATION_CONFIG = new InjectionToken<SolarisNotificationConfig>(\n 'SOLARIS_NOTIFICATION_CONFIG',\n {\n providedIn: 'root',\n factory: () => SOLARIS_NOTIFICATION_DEFAULT_CONFIG,\n },\n);\n\nfunction mergeConfig(input: SolarisNotificationConfigInput = {}): SolarisNotificationConfig {\n return {\n ...SOLARIS_NOTIFICATION_DEFAULT_CONFIG,\n ...input,\n };\n}\n\nexport function provideSolarisNotifications(\n input: SolarisNotificationConfigInput = {},\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: SOLARIS_NOTIFICATION_CONFIG,\n useValue: mergeConfig(input),\n },\n ]);\n}\n","import { Injectable, computed, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nimport {\n SOLARIS_TRANSLATION,\n SOLARIS_TRANSLATION_CONFIGURATION,\n SolarisTranslationParams,\n} from '@educarehq/solaris-services';\n\nimport { SOLARIS_NOTIFICATION_CONFIG } from '../config/notification.config';\n\n@Injectable({ providedIn: 'root' })\nexport class SolarisNotificationIntlService {\n private readonly translationService = inject(SOLARIS_TRANSLATION);\n private readonly notificationConfig = inject(SOLARIS_NOTIFICATION_CONFIG);\n private readonly translationConfig = inject(SOLARIS_TRANSLATION_CONFIGURATION);\n\n private readonly activeLang = toSignal(this.translationService.languageChanges(), {\n initialValue: this.translationService.language(),\n });\n\n private readonly prefix = computed(() => {\n this.activeLang();\n\n const uiScope = this.translationConfig.uiScope ?? 'ui';\n const namespace = this.notificationConfig.translationScope;\n\n return `${uiScope}.${namespace}`;\n });\n\n translate(key: string, params?: SolarisTranslationParams): string {\n this.activeLang();\n\n const isAbsoluteKey =\n key.startsWith('ui.') || key.startsWith('solaris.') || key.startsWith('notification.');\n\n const finalKey = isAbsoluteKey ? key : `${this.prefix()}.${key}`;\n return this.translationService.translate(finalKey, params);\n }\n\n close(): string {\n return this.translate('close');\n }\n\n expand(): string {\n return this.translate('expand');\n }\n\n collapse(): string {\n return this.translate('collapse');\n }\n\n stopTimer(): string {\n return this.translate('stopTimer');\n }\n\n resumeTimer(): string {\n return this.translate('resumeTimer');\n }\n\n paused(): string {\n return this.translate('paused');\n }\n\n centerTitle(): string {\n return this.translate('centerTitle');\n }\n\n emptyCenter(): string {\n return this.translate('emptyCenter');\n }\n\n clearHistory(): string {\n return this.translate('clearHistory');\n }\n\n autoClose(seconds: number): string {\n return this.translate('autoClose', {\n seconds,\n unit: seconds === 1 ? this.translate('units.second') : this.translate('units.seconds'),\n });\n }\n}\n","import { DestroyRef, Injectable, PLATFORM_ID, computed, inject, signal } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nimport {\n SolarisNotificationConfig,\n SolarisNotificationInput,\n SolarisNotificationKind,\n SolarisNotificationPosition,\n SolarisNotificationRecord,\n SolarisNotificationRef,\n} from '../model/notification.types';\nimport {\n SOLARIS_NOTIFICATION_CONFIG,\n SOLARIS_NOTIFICATION_POSITIONS,\n} from '../config/notification.config';\nimport { SOLARIS_TRANSLATION } from '@educarehq/solaris-services';\n\n@Injectable({ providedIn: 'root' })\nexport class SolarisNotificationService {\n private readonly platformId = inject(PLATFORM_ID);\n private readonly destroyRef = inject(DestroyRef);\n readonly config: SolarisNotificationConfig = inject(SOLARIS_NOTIFICATION_CONFIG);\n private readonly translationService = inject(SOLARIS_TRANSLATION);\n\n readonly centerOpen = signal(false);\n private readonly _items = signal<SolarisNotificationRecord[]>([]);\n\n readonly items = computed(() => this._items());\n readonly visibleItems = computed(() => this._items().filter((item) => item.state === 'visible'));\n readonly centerItems = computed(() =>\n [...this._items()].sort((a, b) => b.createdAt - a.createdAt),\n );\n\n private lastTick = 0;\n private readonly intervalId: number | null = null;\n\n constructor() {\n if (!isPlatformBrowser(this.platformId)) return;\n\n this.lastTick = performance.now();\n this.intervalId = globalThis.setInterval(() => this.tick(), 100);\n\n const handleVisibility = () => {\n const hidden = document.visibilityState !== 'visible';\n\n this._items.update((items) =>\n items.map((item) =>\n item.duration == null ? item : { ...item, pausedByVisibility: hidden },\n ),\n );\n };\n\n document.addEventListener('visibilitychange', handleVisibility, {\n passive: true,\n });\n\n this.destroyRef.onDestroy(() => {\n if (this.intervalId != null) {\n globalThis.clearInterval(this.intervalId);\n }\n\n document.removeEventListener('visibilitychange', handleVisibility);\n });\n }\n\n success(input: Omit<SolarisNotificationInput, 'kind'>): SolarisNotificationRef {\n return this.show({ ...input, kind: 'success' });\n }\n\n warning(input: Omit<SolarisNotificationInput, 'kind'>): SolarisNotificationRef {\n return this.show({ ...input, kind: 'warning' });\n }\n\n error(input: Omit<SolarisNotificationInput, 'kind'>): SolarisNotificationRef {\n return this.show({ ...input, kind: 'error' });\n }\n\n info(input: Omit<SolarisNotificationInput, 'kind'>): SolarisNotificationRef {\n return this.show({ ...input, kind: 'info' });\n }\n\n show(input: SolarisNotificationInput): SolarisNotificationRef {\n const item = this.createRecord(input);\n\n this._items.update((items) => (this.config.newestOnTop ? [item, ...items] : [...items, item]));\n\n this.rebalance();\n return this.createRef(item.id);\n }\n\n visibleByPosition(position: SolarisNotificationPosition): SolarisNotificationRecord[] {\n return this.visibleItems().filter((item) => item.position === position);\n }\n\n isPaused(item: SolarisNotificationRecord): boolean {\n return item.pausedByHover || item.pausedByUser || item.pausedByVisibility;\n }\n\n dismiss(id: string): void {\n this._items.update((items) => {\n if (this.config.persistInCenter) {\n return items.map((item) =>\n item.id === id\n ? {\n ...item,\n state: 'archived',\n pausedByHover: false,\n pausedByUser: false,\n pausedByVisibility: false,\n }\n : item,\n );\n }\n\n return items.filter((item) => item.id !== id);\n });\n\n this.rebalance();\n }\n\n remove(id: string): void {\n this._items.update((items) => items.filter((item) => item.id !== id));\n }\n\n clearHistory(): void {\n this._items.update((items) => items.filter((item) => item.state !== 'archived'));\n }\n\n pause(id: string): void {\n this.patch(id, { pausedByUser: true });\n }\n\n resume(id: string): void {\n this.patch(id, { pausedByUser: false });\n }\n\n toggleUserPause(id: string): void {\n const current = this.find(id);\n if (!current) return;\n\n this.patch(id, { pausedByUser: !current.pausedByUser });\n }\n\n setHoverPaused(id: string, paused: boolean): void {\n const current = this.find(id);\n if (!current?.pauseOnHover) return;\n\n this.patch(id, { pausedByHover: paused });\n }\n\n toggleExpanded(id: string): void {\n const current = this.find(id);\n if (!current?.expandable) return;\n\n this._items.update((items) =>\n items.map((item) => {\n if (item.id === id) {\n return { ...item, expanded: !item.expanded };\n }\n\n if (\n this.config.expandSingle &&\n item.position === current.position &&\n item.state === 'visible'\n ) {\n return { ...item, expanded: false };\n }\n\n return item;\n }),\n );\n }\n\n update(id: string, patch: Partial<SolarisNotificationInput>): void {\n this._items.update((items) =>\n items.map((item) => {\n if (item.id !== id) return item;\n\n const hasDurationPatch = this.hasOwn(patch, 'duration');\n const hasTitlePatch =\n this.hasOwn(patch, 'title') ||\n this.hasOwn(patch, 'titleKey') ||\n this.hasOwn(patch, 'titleParams');\n\n const hasDescriptionPatch =\n this.hasOwn(patch, 'description') ||\n this.hasOwn(patch, 'descriptionKey') ||\n this.hasOwn(patch, 'descriptionParams');\n\n const duration = hasDurationPatch ? (patch.duration ?? null) : item.duration;\n\n const title = hasTitlePatch\n ? this.resolveRequiredText(patch.title, patch.titleKey, patch.titleParams, item.title)\n : item.title;\n\n const description = hasDescriptionPatch\n ? this.resolveOptionalText(\n patch.description,\n patch.descriptionKey,\n patch.descriptionParams,\n item.description,\n )\n : item.description;\n\n const hasExplicitExpandable = this.hasOwn(patch, 'expandable');\n\n let expandable = item.expandable;\n\n if (hasExplicitExpandable) {\n expandable = patch.expandable ?? item.expandable;\n } else if (hasDescriptionPatch) {\n expandable = Boolean(description?.trim().length);\n }\n\n return {\n ...item,\n title,\n description,\n kind: patch.kind ?? item.kind,\n position: patch.position ?? item.position,\n duration,\n remainingMs: hasDurationPatch ? (duration ?? null) : item.remainingMs,\n expandable,\n expanded: patch.expanded ?? item.expanded,\n closeable: patch.closeable ?? item.closeable,\n pauseOnHover: patch.pauseOnHover ?? item.pauseOnHover,\n actions: patch.actions ?? item.actions,\n ariaLive: patch.ariaLive ?? item.ariaLive,\n data: patch.data ?? item.data,\n };\n }),\n );\n\n this.rebalance();\n }\n\n openCenter(): void {\n this.centerOpen.set(true);\n }\n\n closeCenter(): void {\n this.centerOpen.set(false);\n }\n\n toggleCenter(): void {\n this.centerOpen.update((value) => !value);\n }\n\n private tick(): void {\n const now = performance.now();\n const delta = now - this.lastTick;\n this.lastTick = now;\n\n let shouldRebalance = false;\n const expiredIds = new Set<string>();\n\n this._items.update((items) => {\n const next: SolarisNotificationRecord[] = items.map((item): SolarisNotificationRecord => {\n if (item.state !== 'visible') return item;\n if (item.duration == null || item.remainingMs == null) return item;\n if (this.isPaused(item)) return item;\n\n const remainingMs = Math.max(0, item.remainingMs - delta);\n\n if (remainingMs === 0) {\n shouldRebalance = true;\n expiredIds.add(item.id);\n\n if (this.config.persistInCenter) {\n return {\n ...item,\n remainingMs: 0,\n state: 'archived',\n pausedByHover: false,\n pausedByUser: false,\n pausedByVisibility: false,\n };\n }\n\n return item;\n }\n\n return {\n ...item,\n remainingMs,\n };\n });\n\n if (this.config.persistInCenter) {\n return next;\n }\n\n return next.filter((item) => !expiredIds.has(item.id));\n });\n\n if (shouldRebalance) {\n this.rebalance();\n }\n }\n\n private rebalance(): void {\n this._items.update((items) => {\n let next = [...items];\n\n for (const position of SOLARIS_NOTIFICATION_POSITIONS) {\n const visibleCount = next.filter(\n (item) => item.position === position && item.state === 'visible',\n ).length;\n\n const freeSlots = this.config.maxVisiblePerPosition - visibleCount;\n if (freeSlots <= 0) continue;\n\n const queued = next\n .filter((item) => item.position === position && item.state === 'queued')\n .sort((a, b) =>\n this.config.newestOnTop ? b.createdAt - a.createdAt : a.createdAt - b.createdAt,\n )\n .slice(0, freeSlots);\n\n if (!queued.length) continue;\n const queuedIds = new Set(queued.map((item) => item.id));\n next = next.map((item) => (queuedIds.has(item.id) ? { ...item, state: 'visible' } : item));\n }\n\n return next;\n });\n }\n\n private createRecord(input: SolarisNotificationInput): SolarisNotificationRecord {\n const duration = input.duration === undefined ? this.config.defaultDuration : input.duration;\n\n const kind = input.kind ?? 'info';\n const position = input.position ?? this.config.defaultPosition;\n\n const title = this.resolveRequiredText(input.title, input.titleKey, input.titleParams, '');\n\n const description = this.resolveOptionalText(\n input.description,\n input.descriptionKey,\n input.descriptionParams,\n null,\n );\n\n const expandable = input.expandable ?? Boolean(description?.trim().length);\n\n return {\n id: this.createId(),\n title,\n description,\n kind,\n position,\n state: 'queued',\n duration,\n remainingMs: duration ?? null,\n expandable,\n expanded: input.expanded ?? false,\n closeable: input.closeable ?? true,\n pauseOnHover: input.pauseOnHover ?? this.config.hoverPause,\n pausedByHover: false,\n pausedByUser: false,\n pausedByVisibility: false,\n actions: input.actions ?? [],\n ariaLive: input.ariaLive ?? this.resolveAriaLive(kind),\n data: input.data ?? null,\n createdAt: Date.now(),\n };\n }\n\n private resolveAriaLive(kind: SolarisNotificationKind): 'polite' | 'assertive' {\n return kind === 'success' || kind === 'info' ? 'polite' : 'assertive';\n }\n\n private createRef(id: string): SolarisNotificationRef {\n return {\n id,\n dismiss: () => this.dismiss(id),\n remove: () => this.remove(id),\n pause: () => this.pause(id),\n resume: () => this.resume(id),\n toggleExpanded: () => this.toggleExpanded(id),\n update: (patch) => this.update(id, patch),\n };\n }\n\n private createId(): string {\n const uuid = globalThis.crypto?.randomUUID?.();\n return uuid ?? `sn_${Date.now()}_${Math.random().toString(36).slice(2, 10)}`;\n }\n\n private find(id: string): SolarisNotificationRecord | undefined {\n return this._items().find((item) => item.id === id);\n }\n\n private patch(\n id: string,\n patch: Partial<\n Pick<SolarisNotificationRecord, 'pausedByHover' | 'pausedByUser' | 'pausedByVisibility'>\n >,\n ): void {\n this._items.update((items) =>\n items.map((item) => (item.id === id ? { ...item, ...patch } : item)),\n );\n }\n\n private resolveRequiredText(\n value: string | undefined,\n key: string | undefined,\n params: Record<string, unknown> | undefined,\n fallback: string,\n ): string {\n if (key) {\n return this.translationService.translate(key, params);\n }\n\n if (value == null) {\n return fallback;\n }\n\n return value;\n }\n\n private resolveOptionalText(\n value: string | null | undefined,\n key: string | undefined,\n params: Record<string, unknown> | undefined,\n fallback: string | null,\n ): string | null {\n if (key) {\n return this.translationService.translate(key, params);\n }\n\n if (value === undefined) {\n return fallback;\n }\n\n return value ?? null;\n }\n\n private hasOwn<T extends object>(obj: T, key: PropertyKey): boolean {\n return Object.hasOwn(obj, key);\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport {\n SolarisNotificationAction,\n SolarisNotificationRecord,\n} from '../../model/notification.types';\nimport { SolarisNotificationIntlService } from '../../service/notification-intl.service';\nimport { SolarisNotificationService } from '../../service/notification.service';\nimport { SolarisButtonDirective } from '../../../../actions/button/directives/button.directive';\n\n@Component({\n selector: 'solaris-notification-item',\n standalone: true,\n imports: [NgClass, SolarisButtonDirective],\n templateUrl: './notification-item.html',\n styleUrls: ['./notification-item.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisNotificationItemComponent {\n protected readonly notificationService = inject(SolarisNotificationService);\n protected readonly intl = inject(SolarisNotificationIntlService);\n\n readonly item = input.required<SolarisNotificationRecord>();\n readonly mode = input<'toast' | 'center'>('toast');\n\n readonly paused = computed(() => this.notificationService.isPaused(this.item()));\n\n readonly secondsLeft = computed(() => {\n const remaining = this.item().remainingMs ?? 0;\n return Math.max(1, Math.ceil(remaining / 1000));\n });\n\n readonly progress = computed(() => {\n const duration = this.item().duration;\n const remaining = this.item().remainingMs;\n\n if (duration == null || remaining == null || duration <= 0) return 0;\n return Math.max(0, Math.min(100, (remaining / duration) * 100));\n });\n\n readonly iconClass = computed(() => {\n switch (this.item().kind) {\n case 'success':\n return 'ph-check-circle';\n case 'warning':\n return 'ph-warning-circle';\n case 'error':\n return 'ph-x-circle';\n default:\n return 'ph-info';\n }\n });\n\n protected readonly isCompactHeader = computed(() => {\n const hasDescription = Boolean(this.item().description?.trim().length);\n return !hasDescription && !this.item().expandable;\n });\n\n toggleExpanded(): void {\n this.notificationService.toggleExpanded(this.item().id);\n }\n\n toggleUserPause(): void {\n this.notificationService.toggleUserPause(this.item().id);\n }\n\n close(): void {\n this.notificationService.dismiss(this.item().id);\n }\n\n onMouseEnter(): void {\n if (this.mode() !== 'toast') return;\n this.notificationService.setHoverPaused(this.item().id, true);\n }\n\n onMouseLeave(): void {\n if (this.mode() !== 'toast') return;\n this.notificationService.setHoverPaused(this.item().id, false);\n }\n\n async runAction(action: SolarisNotificationAction): Promise<void> {\n await action.run?.({\n id: this.item().id,\n data: this.item().data,\n dismiss: () => this.notificationService.dismiss(this.item().id),\n remove: () => this.notificationService.remove(this.item().id),\n update: (patch) => this.notificationService.update(this.item().id, patch),\n });\n\n if (action.closeOnClick !== false) {\n this.notificationService.dismiss(this.item().id);\n }\n }\n\n protected resolveActionLabel(action: SolarisNotificationAction): string {\n if (action.labelKey) {\n return this.intl.translate(action.labelKey, action.labelParams);\n }\n\n return action.label ?? '';\n }\n}\n","<article\n class=\"sn\"\n [attr.data-kind]=\"item().kind\"\n [attr.data-mode]=\"mode()\"\n [attr.data-expanded]=\"item().expanded ? 'true' : 'false'\"\n [attr.data-paused]=\"paused() ? 'true' : 'false'\"\n [attr.aria-live]=\"mode() === 'toast' ? item().ariaLive : null\"\n [attr.role]=\"item().ariaLive === 'assertive' ? 'alert' : 'status'\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n>\n <div class=\"sn__header\" [attr.data-align]=\"isCompactHeader() ? 'center' : 'start'\">\n <div class=\"sn__leading\">\n <span class=\"sn__icon\" aria-hidden=\"true\">\n <i class=\"ph\" [ngClass]=\"iconClass()\"></i>\n </span>\n\n <div class=\"sn__heading\">\n <strong class=\"sn__title\">{{ item().title }}</strong>\n\n @if (!item().expanded && item().description) {\n <p class=\"sn__description sn__description--clamped\">\n {{ item().description }}\n </p>\n }\n </div>\n </div>\n\n <div class=\"sn__controls\">\n @if (item().expandable && item().description) {\n <button\n type=\"button\"\n class=\"sn__icon-btn\"\n [attr.aria-expanded]=\"item().expanded\"\n [attr.aria-label]=\"item().expanded ? intl.collapse() : intl.expand()\"\n (click)=\"toggleExpanded()\"\n >\n <i\n class=\"ph\"\n [ngClass]=\"item().expanded ? 'ph-caret-up' : 'ph-caret-down'\"\n aria-hidden=\"true\"\n ></i>\n </button>\n }\n\n @if (item().closeable) {\n <button\n type=\"button\"\n class=\"sn__icon-btn\"\n [attr.aria-label]=\"intl.close()\"\n (click)=\"close()\"\n >\n <i class=\"ph ph-x\" aria-hidden=\"true\"></i>\n </button>\n }\n </div>\n </div>\n\n @if (item().expanded && item().description) {\n <div class=\"sn__body\">\n <p class=\"sn__body-text\">{{ item().description }}</p>\n @if (item().actions.length) {\n <div class=\"sn__actions\">\n @for (action of item().actions; track action.id) {\n <button\n type=\"button\"\n solaris-button\n [variant]=\"action.variant ?? 'outline'\"\n [color]=\"action.color ?? 'surface'\"\n [size]=\"action.size ?? 'sm'\"\n [radius]=\"action.radius ?? 'md'\"\n [disabled]=\"action.disabled ?? false\"\n (click)=\"runAction(action)\"\n >\n {{ resolveActionLabel(action) }}\n </button>\n }\n </div>\n }\n </div>\n }\n\n @if (mode() === 'toast' && item().duration !== null) {\n <div class=\"sn__footer\">\n @if (!paused()) {\n <p class=\"sn__timer\">\n {{ intl.autoClose(secondsLeft()) }}\n <button type=\"button\" class=\"sn__timer-link\" (click)=\"toggleUserPause()\">\n {{ intl.stopTimer() }}</button\n >.\n </p>\n } @else {\n <p class=\"sn__timer\">\n {{ intl.paused() }}\n <button type=\"button\" class=\"sn__timer-link\" (click)=\"toggleUserPause()\">\n {{ intl.resumeTimer() }}</button\n >.\n </p>\n }\n </div>\n\n <div class=\"sn__progress\" aria-hidden=\"true\">\n <span [style.width.%]=\"progress()\"></span>\n </div>\n }\n</article>\n","import { ChangeDetectionStrategy, Component, HostListener, inject } from '@angular/core';\n\nimport { SolarisButtonDirective } from '../../../../actions/button/directives/button.directive';\nimport { SolarisNotificationIntlService } from '../../service/notification-intl.service';\nimport { SolarisNotificationService } from '../../service/notification.service';\nimport { SolarisNotificationItemComponent } from '../item/notification-item';\n\n@Component({\n selector: 'solaris-notification-center',\n standalone: true,\n imports: [SolarisButtonDirective, SolarisNotificationItemComponent],\n templateUrl: './notification-center.html',\n styleUrls: ['./notification-center.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisNotificationCenterComponent {\n protected readonly notificationService = inject(SolarisNotificationService);\n protected readonly intl = inject(SolarisNotificationIntlService);\n\n @HostListener('document:keydown.escape') onEscape(): void {\n if (this.notificationService.centerOpen()) {\n this.notificationService.closeCenter();\n }\n }\n}\n","@if (notificationService.centerOpen()) {\n <div class=\"snc__backdrop\" (click)=\"notificationService.closeCenter()\"></div>\n\n <aside class=\"snc\" role=\"dialog\" aria-modal=\"true\" [attr.aria-label]=\"intl.centerTitle()\">\n <header class=\"snc__header\">\n <div>\n <strong class=\"snc__title\">{{ intl.centerTitle() }}</strong>\n </div>\n\n <div class=\"snc__controls\">\n <button\n type=\"button\"\n solaris-button\n variant=\"outline\"\n color=\"surface\"\n size=\"sm\"\n radius=\"md\"\n (click)=\"notificationService.clearHistory()\"\n >\n {{ intl.clearHistory() }}\n </button>\n\n <button\n type=\"button\"\n class=\"snc__icon-btn\"\n [attr.aria-label]=\"intl.close()\"\n (click)=\"notificationService.closeCenter()\"\n >\n <i class=\"ph ph-x\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </header>\n\n <div class=\"snc__list\">\n @for (item of notificationService.centerItems(); track item.id) {\n <solaris-notification-item [item]=\"item\" mode=\"center\" />\n } @empty {\n <div class=\"snc__empty\">\n {{ intl.emptyCenter() }}\n </div>\n }\n </div>\n </aside>\n}\n","import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\n\nimport { SolarisNotificationCenterComponent } from '../center/notification-center';\nimport { SOLARIS_NOTIFICATION_POSITIONS } from '../../config/notification.config';\nimport { SolarisNotificationService } from '../../service/notification.service';\nimport { SolarisNotificationPosition } from '../../model/notification.types';\nimport { SolarisNotificationItemComponent } from '../item/notification-item';\n\n@Component({\n selector: 'solaris-notification-host',\n standalone: true,\n imports: [SolarisNotificationItemComponent, SolarisNotificationCenterComponent],\n templateUrl: './notification-host.html',\n styleUrls: ['./notification-host.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisNotificationHostComponent {\n protected readonly notificationService = inject(SolarisNotificationService);\n protected readonly positions = SOLARIS_NOTIFICATION_POSITIONS;\n readonly withCenter = input(true);\n\n visibleByPosition(position: SolarisNotificationPosition) {\n return this.notificationService.visibleByPosition(position);\n }\n}\n","@for (position of positions; track position) {\n <section class=\"snh__stack\" [attr.data-position]=\"position\">\n @for (item of visibleByPosition(position); track item.id) {\n <solaris-notification-item [item]=\"item\" mode=\"toast\" />\n }\n </section>\n}\n\n@if (withCenter()) {\n <solaris-notification-center />\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport {\n SolarisTooltipPosition,\n SolarisTooltipSize,\n SolarisTooltipVariant,\n} from '../model/tooltip.type';\n\n@Component({\n selector: 'solaris-tooltip-panel',\n standalone: true,\n templateUrl: './tooltip-panel.html',\n styleUrls: ['./tooltip-panel.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisTooltipPanel {\n readonly text = input('');\n readonly prefixIcon = input('');\n readonly size = input<SolarisTooltipSize>('md');\n readonly position = input<SolarisTooltipPosition>('top');\n readonly variant = input<SolarisTooltipVariant>('inverse');\n}\n","<div\n class=\"solaris-tooltip\"\n [attr.data-position]=\"position()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n role=\"tooltip\"\n>\n @if (prefixIcon()) {\n <span class=\"solaris-tooltip__prefix\" aria-hidden=\"true\">\n <i [class]=\"prefixIcon()\"></i>\n </span>\n }\n\n <span class=\"solaris-tooltip__content\">\n {{ text() }}\n </span>\n\n <span class=\"solaris-tooltip__arrow\" aria-hidden=\"true\"></span>\n</div>\n","import {\n Directive,\n ElementRef,\n Renderer2,\n computed,\n effect,\n inject,\n input,\n OnDestroy,\n} from '@angular/core';\n\nimport {\n SolarisTooltipPosition,\n SolarisTooltipSize,\n SolarisTooltipVariant,\n} from '../model/tooltip.type';\nimport { SolarisFloatingOverlayService } from '../../../core/overlay/floating-overlay.service';\nimport { SolarisFloatingOverlayRef } from '../../../core/overlay/model/tooltip-services.type';\nimport { SolarisTooltipPanel } from '../component/tooltip-panel';\n\n@Directive({\n selector: '[solaris-tooltip]',\n standalone: true,\n})\nexport class SolarisTooltipDirective implements OnDestroy {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly floatingOverlay = inject(SolarisFloatingOverlayService);\n private readonly renderer = inject(Renderer2);\n\n readonly text = input('', { alias: 'solaris-tooltip' });\n\n readonly tooltipPosition = input<SolarisTooltipPosition>('top', {\n alias: 'tooltip-position',\n });\n\n readonly tooltipVariant = input<SolarisTooltipVariant>('inverse', {\n alias: 'tooltip-variant',\n });\n\n readonly tooltipSize = input<SolarisTooltipSize>('md', {\n alias: 'tooltip-size',\n });\n\n readonly tooltipPrefixIcon = input('', {\n alias: 'tooltip-prefix-icon',\n });\n\n readonly tooltipDisabled = input(false, {\n alias: 'tooltip-disabled',\n });\n\n readonly tooltipShowDelay = input(300, {\n alias: 'tooltip-show-delay',\n });\n\n readonly tooltipHideDelay = input(80, {\n alias: 'tooltip-hide-delay',\n });\n\n readonly tooltipOffset = input(8, {\n alias: 'tooltip-offset',\n });\n\n readonly tooltipAutoFlip = input(true, {\n alias: 'tooltip-auto-flip',\n });\n\n readonly tooltipAutoShift = input(true, {\n alias: 'tooltip-auto-shift',\n });\n\n readonly tooltipViewportPadding = input(8, {\n alias: 'tooltip-viewport-padding',\n });\n\n readonly tooltipKey = input('', {\n alias: 'tooltip-key',\n });\n\n readonly tooltipParams = input<Record<string, unknown> | undefined>(undefined, {\n alias: 'tooltip-params',\n });\n\n private overlayRef?: SolarisFloatingOverlayRef<SolarisTooltipPanel>;\n private showTimer = 0;\n private hideTimer = 0;\n private raf = 0;\n\n private readonly cleanups: Array<() => void> = [];\n\n private readonly resolvedText = computed(() => {\n const key = this.tooltipKey().trim();\n\n if (key) {\n return key;\n }\n\n return this.text().trim();\n });\n\n constructor() {\n const host = this.elementRef.nativeElement;\n\n this.cleanups.push(\n this.renderer.listen(host, 'mouseenter', () => this.scheduleShow()),\n this.renderer.listen(host, 'mouseleave', () => this.scheduleHide()),\n this.renderer.listen(host, 'focusin', () => this.scheduleShow()),\n this.renderer.listen(host, 'focusout', () => this.scheduleHide()),\n this.renderer.listen(host, 'keydown', (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n this.hide();\n }\n }),\n this.renderer.listen(globalThis, 'resize', () => this.scheduleReposition()),\n this.renderer.listen(globalThis, 'scroll', () => this.scheduleReposition()),\n );\n\n effect(() => {\n if (!this.overlayRef) return;\n\n this.applyPanelInputs();\n this.scheduleReposition();\n });\n }\n\n private scheduleShow(): void {\n if (this.tooltipDisabled()) return;\n if (!this.resolvedText()) return;\n\n globalThis.clearTimeout(this.hideTimer);\n globalThis.clearTimeout(this.showTimer);\n\n this.showTimer = globalThis.setTimeout(() => {\n this.show();\n }, this.tooltipShowDelay());\n }\n\n private scheduleHide(): void {\n globalThis.clearTimeout(this.showTimer);\n globalThis.clearTimeout(this.hideTimer);\n\n this.hideTimer = globalThis.setTimeout(() => {\n this.hide();\n }, this.tooltipHideDelay());\n }\n\n private show(): void {\n if (this.overlayRef || this.tooltipDisabled()) return;\n if (!this.resolvedText()) return;\n\n this.overlayRef = this.floatingOverlay.create(SolarisTooltipPanel, {\n idPrefix: 'solaris-tooltip',\n zIndex: 'var(--solaris-z-tooltip, 1200)',\n pointerEvents: 'none',\n });\n\n this.applyPanelInputs();\n\n this.renderer.setAttribute(\n this.elementRef.nativeElement,\n 'aria-describedby',\n this.overlayRef.id,\n );\n\n requestAnimationFrame(() => this.reposition());\n }\n\n private hide(): void {\n this.floatingOverlay.clearFloatingTimers(this.showTimer, this.hideTimer, this.raf);\n this.raf = 0;\n\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'aria-describedby');\n\n this.floatingOverlay.destroyOverlay(this.overlayRef);\n this.overlayRef = undefined;\n }\n\n private applyPanelInputs(): void {\n if (!this.overlayRef) return;\n\n const panel = this.overlayRef.componentRef;\n\n panel.setInput('text', this.resolvedText());\n panel.setInput('position', this.tooltipPosition());\n panel.setInput('variant', this.tooltipVariant());\n panel.setInput('size', this.tooltipSize());\n panel.setInput('prefixIcon', this.tooltipPrefixIcon());\n\n panel.changeDetectorRef.detectChanges();\n }\n\n private scheduleReposition(): void {\n if (!this.overlayRef) return;\n\n if (this.raf) return;\n\n this.raf = requestAnimationFrame(() => {\n this.raf = 0;\n this.reposition();\n });\n }\n\n private reposition(): void {\n if (!this.overlayRef) return;\n\n this.floatingOverlay.reposition({\n anchor: this.elementRef.nativeElement,\n overlayRef: this.overlayRef,\n options: {\n position: this.tooltipPosition(),\n offset: this.tooltipOffset(),\n viewportPadding: this.tooltipViewportPadding(),\n autoFlip: this.tooltipAutoFlip(),\n autoShift: this.tooltipAutoShift(),\n },\n setAppliedPosition: (position) => {\n this.overlayRef?.componentRef.setInput('position', position);\n this.overlayRef?.componentRef.changeDetectorRef.detectChanges();\n },\n });\n }\n\n ngOnDestroy(): void {\n this.hide();\n\n for (const cleanup of this.cleanups) {\n cleanup();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport {\n LoadingType,\n SolarisLoadingColor,\n SolarisLoadingEasing,\n SolarisLoadingPresetColor,\n SolarisLoadingSize,\n SolarisLoadingSpeed,\n SolarisLoadingDashDensity,\n} from '../model/loading.type';\n\nconst PRESET_COLORS: readonly SolarisLoadingPresetColor[] = [\n 'primary',\n 'success',\n 'warning',\n 'error',\n 'surface',\n] as const;\n\n@Component({\n selector: 'solaris-loading',\n standalone: true,\n templateUrl: './loading.html',\n styleUrls: ['./loading.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisLoading {\n @HostBinding('attr.solaris-loading') readonly marker = '';\n\n @Input() label?: string;\n @Input() value: number | null = null;\n @Input() type: LoadingType = 'spinner';\n @Input() size: SolarisLoadingSize = 'md';\n @Input() speed: SolarisLoadingSpeed = 'md';\n @Input() color: SolarisLoadingColor = 'primary';\n @Input() easing: SolarisLoadingEasing = 'linear';\n @Input() trail: 'forward' | 'reverse' = 'forward';\n @Input() dashDensity: SolarisLoadingDashDensity = 'md';\n @Input({ transform: coerceBoolean }) indeterminate = false;\n\n get percent(): number {\n return clamp(this.value ?? 0, 0, 100);\n }\n get ariaLabel(): string {\n return this.label ?? 'Loading';\n }\n get dashedSpokes(): Spoke[] {\n return buildSpokes(this.dashedCount, 0.12);\n }\n get inlineColor(): string | null {\n return isPresetColor(this.color) ? null : String(this.color);\n }\n get ariaValueNow(): number | null {\n if (this.role !== 'progressbar') return null;\n if (this.indeterminate || this.value == null) return null;\n return clamp(this.value, 0, 100);\n }\n get role(): 'status' | 'progressbar' {\n return this.type === 'progress' || this.type === 'bar' ? 'progressbar' : 'status';\n }\n get dataColor(): SolarisLoadingPresetColor | null {\n return isPresetColor(this.color) ? this.color : null;\n }\n\n private get dashedCount(): number {\n switch (this.dashDensity) {\n case 'low':\n return 8;\n case 'high':\n return 16;\n case 'md':\n default:\n return 12;\n }\n }\n}\n\nfunction isPresetColor(v: unknown): v is SolarisLoadingPresetColor {\n return PRESET_COLORS.includes(v as SolarisLoadingPresetColor);\n}\n\nfunction coerceBoolean(v: any): boolean {\n return v === '' || v === true || v === 'true' || v === 1 || v === '1';\n}\n\nfunction clamp(n: number, min: number, max: number) {\n return Math.max(min, Math.min(max, n));\n}\n\ntype Spoke = { angle: number; opacity: number };\n\nconst SPOKE_CACHE = new Map<number, Spoke[]>();\n\nfunction buildSpokes(count: number, minOpacity = 0.12): Spoke[] {\n const cached = SPOKE_CACHE.get(count);\n if (cached) return cached;\n\n const res: Spoke[] = [];\n const step = 360 / count;\n const span = 1 - minOpacity;\n for (let i = 0; i < count; i++) {\n const t = count === 1 ? 0 : i / (count - 1);\n const opacity = 1 - span * t;\n res.push({ angle: i * step, opacity: Number(opacity.toFixed(2)) });\n }\n\n SPOKE_CACHE.set(count, res);\n return res;\n}\n","<div\n class=\"solaris-loading\"\n [attr.data-type]=\"type\"\n [attr.data-size]=\"size\"\n [attr.data-color]=\"dataColor\"\n [attr.data-speed]=\"speed\"\n [attr.data-easing]=\"easing\"\n [class.is-indeterminate]=\"indeterminate || value === null\"\n [attr.role]=\"role\"\n [attr.aria-label]=\"ariaLabel\"\n [style.--solaris-loading-color]=\"inlineColor\"\n [attr.aria-valuemin]=\"role === 'progressbar' ? 0 : null\"\n [attr.aria-valuemax]=\"role === 'progressbar' ? 100 : null\"\n [attr.aria-valuenow]=\"role === 'progressbar' ? ariaValueNow : null\"\n>\n @if (type === 'spinner') {\n <span class=\"solaris-loading__spinner\" aria-hidden=\"true\"></span>\n }\n\n @if (type === 'spinner-dashed') {\n <svg class=\"solaris-loading__spinner-stacked\" viewBox=\"0 0 44 44\" aria-hidden=\"true\">\n @for (spoke of dashedSpokes; track spoke.angle) {\n <line\n x1=\"22\"\n y1=\"6\"\n x2=\"22\"\n y2=\"12\"\n [attr.opacity]=\"spoke.opacity\"\n [attr.transform]=\"'rotate(' + spoke.angle + ' 22 22)'\"\n ></line>\n }\n </svg>\n }\n\n @if (type === 'progress') {\n <svg class=\"solaris-loading__ring\" viewBox=\"0 0 44 44\" aria-hidden=\"true\">\n <circle class=\"ring-track\" cx=\"22\" cy=\"22\" r=\"18\"></circle>\n <circle\n class=\"ring-value\"\n cx=\"22\"\n cy=\"22\"\n r=\"18\"\n [attr.stroke-dasharray]=\"113.097\"\n [attr.stroke-dashoffset]=\"113.097 - (113.097 * percent) / 100\"\n ></circle>\n </svg>\n\n <span class=\"solaris-loading__percent\" aria-hidden=\"true\"> {{ percent }}% </span>\n }\n\n @if (type === 'bar') {\n <span class=\"solaris-loading__bar\" aria-hidden=\"true\">\n <span\n class=\"solaris-loading__bar-inner\"\n [style.width.%]=\"indeterminate || value === null ? 30 : percent\"\n ></span>\n </span>\n }\n</div>\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { SolarisCarouselContext } from '../model/carousel.type';\n\n@Directive({\n selector: 'ng-template[solaris-carousel-overlay]',\n standalone: true,\n})\nexport class SolarisCarouselOverlayDirective<TItem = unknown> {\n readonly templateRef = inject<TemplateRef<SolarisCarouselContext<TItem>>>(TemplateRef);\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\nimport { SolarisCarouselContext } from '../model/carousel.type';\n\n@Directive({\n selector: 'ng-template[solaris-carousel-slide]',\n standalone: true,\n})\nexport class SolarisCarouselSlideDirective<TItem = unknown> {\n readonly templateRef = inject<TemplateRef<SolarisCarouselContext<TItem>>>(TemplateRef);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n HostBinding,\n HostListener,\n TemplateRef,\n Type,\n afterNextRender,\n booleanAttribute,\n computed,\n contentChild,\n effect,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n} from '@angular/core';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\n\nimport {\n SolarisCarouselAppearance,\n SolarisCarouselAspect,\n SolarisCarouselChangeEvent,\n SolarisCarouselContext,\n SolarisCarouselControlsPosition,\n SolarisCarouselItem,\n SolarisCarouselNavigationSource,\n SolarisCarouselOverlayDirective,\n SolarisCarouselRadius,\n SolarisCarouselSlideDirective,\n SolarisCarouselTextResolver,\n} from '../carousel.index';\n\n@Component({\n selector: 'solaris-carousel',\n standalone: true,\n imports: [NgTemplateOutlet, NgComponentOutlet],\n templateUrl: './carousel.html',\n styleUrls: ['./carousel.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisCarousel {\n private readonly destroyRef = inject(DestroyRef);\n\n private timer: ReturnType<typeof setInterval> | null = null;\n private readonly projectedSlide = contentChild(SolarisCarouselSlideDirective);\n private readonly projectedOverlay = contentChild(SolarisCarouselOverlayDirective);\n\n readonly activeIndex = model(0);\n\n readonly items = input<SolarisCarouselItem[]>([]);\n readonly radius = input<SolarisCarouselRadius>('lg');\n readonly aspect = input<SolarisCarouselAspect>('16/9');\n readonly appearance = input<SolarisCarouselAppearance>('plain');\n readonly controlsPosition = input<SolarisCarouselControlsPosition>('inside');\n\n readonly loop = input(true, { transform: booleanAttribute });\n readonly autoplay = input(false, { transform: booleanAttribute });\n readonly intervalMs = input(4500, { transform: numberAttribute });\n readonly transitionMs = input(520, { transform: numberAttribute });\n\n readonly pauseOnHover = input(true, { transform: booleanAttribute });\n readonly pauseOnFocus = input(true, { transform: booleanAttribute });\n readonly resetAutoplayOnInteraction = input(true, { transform: booleanAttribute });\n\n readonly showDots = input(true, { transform: booleanAttribute });\n readonly showArrows = input(true, { transform: booleanAttribute });\n readonly keyboard = input(true, { transform: booleanAttribute });\n\n readonly ariaLabel = input('Carousel');\n readonly ariaLabelKey = input<string | undefined>(undefined);\n\n readonly previousLabel = input('Previous slide');\n readonly previousLabelKey = input<string | undefined>(undefined);\n\n readonly nextLabel = input('Next slide');\n readonly nextLabelKey = input<string | undefined>(undefined);\n\n readonly navigationLabel = input('Slide navigation');\n readonly navigationLabelKey = input<string | undefined>(undefined);\n\n readonly goToSlideLabel = input('Go to slide');\n readonly goToSlideLabelKey = input<string | undefined>(undefined);\n\n readonly openLabel = input('Open');\n readonly openLabelKey = input<string | undefined>(undefined);\n\n readonly textResolver = input<SolarisCarouselTextResolver | null>(null);\n\n readonly slideTpl = input<TemplateRef<SolarisCarouselContext> | undefined>(undefined);\n readonly overlayTpl = input<TemplateRef<SolarisCarouselContext> | undefined>(undefined);\n\n readonly slideComponent = input<Type<unknown> | undefined>(undefined);\n readonly overlayComponent = input<Type<unknown> | undefined>(undefined);\n\n readonly slideChange = output<SolarisCarouselChangeEvent>();\n\n protected readonly viewReady = signal(false);\n protected readonly paused = signal(false);\n\n protected readonly count = computed(() => this.items().length);\n protected readonly hasMultiple = computed(() => this.count() > 1);\n\n protected readonly isFirst = computed(() => this.activeIndex() === 0);\n protected readonly isLast = computed(() => this.activeIndex() === this.count() - 1);\n\n protected readonly canGoPrev = computed(() => this.loop() || !this.isFirst());\n protected readonly canGoNext = computed(() => this.loop() || !this.isLast());\n\n protected readonly isPlaying = computed(() => {\n return this.autoplay() && this.hasMultiple() && !this.paused();\n });\n\n protected readonly canRunAutoplay = computed(() => {\n return this.viewReady() && this.autoplay() && this.hasMultiple() && !this.paused();\n });\n\n protected readonly resolvedSlideTpl = computed(() => {\n return this.slideTpl() ?? this.projectedSlide()?.templateRef;\n });\n\n protected readonly resolvedOverlayTpl = computed(() => {\n return this.overlayTpl() ?? this.projectedOverlay()?.templateRef;\n });\n\n @HostBinding('attr.data-aspect') get dataAspect(): SolarisCarouselAspect {\n return this.aspect();\n }\n\n @HostBinding('attr.data-radius') get dataRadius(): SolarisCarouselRadius {\n return this.radius();\n }\n\n @HostBinding('attr.data-appearance') get dataAppearance(): SolarisCarouselAppearance {\n return this.appearance();\n }\n\n @HostBinding('attr.data-controls-position')\n get dataControlsPosition(): SolarisCarouselControlsPosition {\n return this.controlsPosition();\n }\n\n constructor() {\n afterNextRender(() => this.viewReady.set(true));\n\n effect((onCleanup) => {\n this.stopTimer();\n\n if (!this.canRunAutoplay()) return;\n\n const ms = this.intervalMs();\n\n if (!Number.isFinite(ms) || ms <= 0) return;\n\n this.startTimer(ms);\n\n onCleanup(() => this.stopTimer());\n });\n\n effect(() => {\n const len = this.count();\n const idx = this.activeIndex();\n\n if (!len) {\n if (idx !== 0) this.activeIndex.set(0);\n return;\n }\n\n if (idx > len - 1) {\n this.activeIndex.set(len - 1);\n }\n\n if (idx < 0) {\n this.activeIndex.set(0);\n }\n });\n\n this.destroyRef.onDestroy(() => this.stopTimer());\n }\n\n protected readonly goTo = (\n index: number,\n source: SolarisCarouselNavigationSource = 'api',\n ): void => {\n const length = this.count();\n\n if (!length) return;\n\n const previousIndex = this.activeIndex();\n const nextIndex = this.normalizeIndex(index, length);\n\n if (nextIndex === previousIndex) return;\n\n this.activeIndex.set(nextIndex);\n\n this.slideChange.emit({\n index: nextIndex,\n previousIndex,\n item: this.items()[nextIndex],\n source,\n });\n\n if (source !== 'autoplay' && this.resetAutoplayOnInteraction()) {\n this.restartAutoplay();\n }\n };\n\n private normalizeIndex(index: number, length: number): number {\n if (this.loop()) {\n return ((index % length) + length) % length;\n }\n\n return Math.max(0, Math.min(index, length - 1));\n }\n\n protected readonly next = (source: SolarisCarouselNavigationSource = 'api'): void => {\n if (!this.canGoNext()) return;\n this.goTo(this.activeIndex() + 1, source);\n };\n\n protected readonly prev = (source: SolarisCarouselNavigationSource = 'api'): void => {\n if (!this.canGoPrev()) return;\n this.goTo(this.activeIndex() - 1, source);\n };\n\n protected readonly pause = (): void => {\n this.paused.set(true);\n };\n\n protected readonly resume = (): void => {\n this.paused.set(false);\n };\n\n protected onMouseEnter(): void {\n if (!this.pauseOnHover()) return;\n this.pause();\n }\n\n protected onMouseLeave(): void {\n if (!this.pauseOnHover()) return;\n this.resume();\n }\n\n protected onFocusIn(): void {\n if (!this.pauseOnFocus()) return;\n this.pause();\n }\n\n protected onFocusOut(): void {\n if (!this.pauseOnFocus()) return;\n this.resume();\n }\n\n protected carouselContext(index: number): SolarisCarouselContext {\n const item = this.items()[index];\n\n return {\n $implicit: item,\n item,\n\n index,\n active: index === this.activeIndex(),\n first: index === 0,\n last: index === this.count() - 1,\n count: this.count(),\n\n isPlaying: this.isPlaying(),\n\n goTo: this.goTo,\n next: this.next,\n prev: this.prev,\n\n pause: this.pause,\n resume: this.resume,\n };\n }\n\n protected slideComponentInputs(index: number): Record<string, unknown> {\n const context = this.carouselContext(index);\n const itemInputs = context.item.slideInputs ?? {};\n\n if (!context.item.passCarouselContext) {\n return itemInputs;\n }\n\n return {\n item: context.item,\n index: context.index,\n active: context.active,\n first: context.first,\n last: context.last,\n count: context.count,\n isPlaying: context.isPlaying,\n goTo: context.goTo,\n next: context.next,\n prev: context.prev,\n pause: context.pause,\n resume: context.resume,\n ...itemInputs,\n };\n }\n\n protected overlayComponentInputs(index: number): Record<string, unknown> {\n const context = this.carouselContext(index);\n const itemInputs = context.item.overlayInputs ?? {};\n\n if (!context.item.passOverlayContext) {\n return itemInputs;\n }\n\n return {\n item: context.item,\n index: context.index,\n active: context.active,\n first: context.first,\n last: context.last,\n count: context.count,\n isPlaying: context.isPlaying,\n goTo: context.goTo,\n next: context.next,\n prev: context.prev,\n pause: context.pause,\n resume: context.resume,\n ...itemInputs,\n };\n }\n\n protected text(text?: string, key?: string): string {\n const directValue = text?.trim();\n\n if (directValue) return directValue;\n\n const resolver = this.textResolver();\n\n if (key && resolver) return resolver(key);\n\n return '';\n }\n\n protected itemAlt(item: SolarisCarouselItem): string {\n return this.text(item.alt, item.altKey);\n }\n\n protected itemAriaLabel(item: SolarisCarouselItem): string | null {\n return (\n this.text(item.ariaLabel, item.ariaLabelKey) ||\n this.text(item.alt, item.altKey) ||\n this.text(this.openLabel(), this.openLabelKey()) ||\n null\n );\n }\n\n protected rootAriaLabel(): string {\n return this.text(this.ariaLabel(), this.ariaLabelKey()) || 'Carousel';\n }\n\n protected previousAriaLabel(): string {\n return this.text(this.previousLabel(), this.previousLabelKey()) || 'Previous slide';\n }\n\n protected nextAriaLabel(): string {\n return this.text(this.nextLabel(), this.nextLabelKey()) || 'Next slide';\n }\n\n protected navigationAriaLabel(): string {\n return this.text(this.navigationLabel(), this.navigationLabelKey()) || 'Slide navigation';\n }\n\n protected dotAriaLabel(index: number): string {\n const label = this.text(this.goToSlideLabel(), this.goToSlideLabelKey()) || 'Go to slide';\n return `${label} ${index + 1}`;\n }\n\n protected trackByItem(index: number, item: SolarisCarouselItem): string | number {\n return item.id ?? index;\n }\n\n private startTimer(ms: number): void {\n this.timer = setInterval(() => this.next('autoplay'), ms);\n }\n\n private stopTimer(): void {\n if (this.timer) {\n clearInterval(this.timer);\n }\n\n this.timer = null;\n }\n\n private restartAutoplay(): void {\n if (!this.autoplay() || this.paused() || !this.hasMultiple()) return;\n\n this.stopTimer();\n\n const ms = this.intervalMs();\n\n if (!Number.isFinite(ms) || ms <= 0) return;\n\n this.startTimer(ms);\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeyDown(ev: KeyboardEvent): void {\n if (!this.keyboard() || !this.hasMultiple()) return;\n\n switch (ev.key) {\n case 'ArrowLeft':\n ev.preventDefault();\n this.prev('keyboard');\n break;\n\n case 'ArrowRight':\n ev.preventDefault();\n this.next('keyboard');\n break;\n\n case 'Home':\n ev.preventDefault();\n this.goTo(0, 'keyboard');\n break;\n\n case 'End':\n ev.preventDefault();\n this.goTo(this.count() - 1, 'keyboard');\n break;\n }\n }\n}\n","<div\n class=\"solaris-carousel\"\n role=\"region\"\n aria-roledescription=\"carousel\"\n [attr.aria-label]=\"rootAriaLabel()\"\n [attr.tabindex]=\"keyboard() ? '0' : null\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut()\"\n>\n <div class=\"solaris-carousel__viewport\">\n <div\n class=\"solaris-carousel__track\"\n [style.transition-duration.ms]=\"transitionMs()\"\n [style.transform]=\"'translate3d(' + -activeIndex() * 100 + '%, 0, 0)'\"\n >\n @for (item of items(); track trackByItem($index, item)) {\n <div\n class=\"solaris-carousel__slide\"\n role=\"group\"\n aria-roledescription=\"slide\"\n [attr.aria-label]=\"$index + 1 + ' / ' + count()\"\n [attr.aria-hidden]=\"$index !== activeIndex() ? 'true' : null\"\n >\n @if (resolvedSlideTpl(); as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl; context: carouselContext($index)\"> </ng-container>\n } @else if (item.slideComponent; as component) {\n <ng-container *ngComponentOutlet=\"component; inputs: slideComponentInputs($index)\">\n </ng-container>\n } @else if (slideComponent(); as component) {\n <ng-container *ngComponentOutlet=\"component; inputs: slideComponentInputs($index)\">\n </ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"defaultImageSlide; context: carouselContext($index)\">\n </ng-container>\n }\n\n @if (resolvedOverlayTpl(); as tpl) {\n <div class=\"solaris-carousel__overlay\">\n <ng-container *ngTemplateOutlet=\"tpl; context: carouselContext($index)\">\n </ng-container>\n </div>\n } @else if (item.overlayComponent; as component) {\n <div class=\"solaris-carousel__overlay\">\n <ng-container *ngComponentOutlet=\"component; inputs: overlayComponentInputs($index)\">\n </ng-container>\n </div>\n } @else if (overlayComponent(); as component) {\n <div class=\"solaris-carousel__overlay\">\n <ng-container *ngComponentOutlet=\"component; inputs: overlayComponentInputs($index)\">\n </ng-container>\n </div>\n }\n </div>\n }\n </div>\n </div>\n\n @if (showArrows() && hasMultiple()) {\n <button\n type=\"button\"\n class=\"solaris-carousel__arrow is-prev\"\n [disabled]=\"!canGoPrev()\"\n [attr.aria-label]=\"previousAriaLabel()\"\n (click)=\"prev('arrow')\"\n >\n <i class=\"ph ph-caret-left\" aria-hidden=\"true\"></i>\n </button>\n\n <button\n type=\"button\"\n class=\"solaris-carousel__arrow is-next\"\n [disabled]=\"!canGoNext()\"\n [attr.aria-label]=\"nextAriaLabel()\"\n (click)=\"next('arrow')\"\n >\n <i class=\"ph ph-caret-right\" aria-hidden=\"true\"></i>\n </button>\n }\n\n @if (showDots() && hasMultiple()) {\n <div class=\"solaris-carousel__dots\" role=\"tablist\" [attr.aria-label]=\"navigationAriaLabel()\">\n @for (item of items(); track trackByItem($index, item)) {\n <button\n type=\"button\"\n class=\"solaris-carousel__dot\"\n role=\"tab\"\n [class.is-active]=\"$index === activeIndex()\"\n [attr.aria-label]=\"dotAriaLabel($index)\"\n [attr.aria-selected]=\"$index === activeIndex() ? 'true' : 'false'\"\n [attr.aria-current]=\"$index === activeIndex() ? 'true' : null\"\n (click)=\"goTo($index, 'dot')\"\n ></button>\n }\n </div>\n }\n</div>\n\n<ng-template #defaultImageSlide let-item>\n @if (item.src) {\n @if (item.href) {\n <a\n class=\"solaris-carousel__media\"\n [href]=\"item.href\"\n [attr.target]=\"item.target ?? null\"\n [attr.aria-label]=\"itemAriaLabel(item)\"\n >\n <img\n class=\"solaris-carousel__img\"\n [src]=\"item.src\"\n [attr.srcset]=\"item.srcSet ?? null\"\n [attr.sizes]=\"item.sizes ?? null\"\n [attr.alt]=\"itemAlt(item)\"\n />\n </a>\n } @else {\n <div class=\"solaris-carousel__media\">\n <img\n class=\"solaris-carousel__img\"\n [src]=\"item.src\"\n [attr.srcset]=\"item.srcSet ?? null\"\n [attr.sizes]=\"item.sizes ?? null\"\n [attr.alt]=\"itemAlt(item)\"\n />\n </div>\n }\n } @else {\n <div class=\"solaris-carousel__empty\" aria-hidden=\"true\"></div>\n }\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'solaris-section',\n standalone: true,\n imports: [NgClass],\n templateUrl: './section.html',\n styleUrls: ['./section.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisSectionComponent {\n @Input() title?: string;\n @Input() description?: string;\n @Input() appearance: 'plain' | 'card' = 'plain';\n @Input() density: 'comfortable' | 'compact' = 'comfortable';\n}\n","<section class=\"solaris-section\" [ngClass]=\"['appearance-' + appearance, 'density-' + density]\">\n @if (title || description) {\n <header class=\"solaris-section__header\">\n @if (title) {\n <h2 class=\"solaris-section__title\">{{ title }}</h2>\n }\n @if (description) {\n <p class=\"solaris-section__description\">{{ description }}</p>\n }\n </header>\n }\n\n <div class=\"solaris-section__content\">\n <ng-content></ng-content>\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport {\n DividerLabelAlign,\n DividerOrientation,\n DividerSpacing,\n DividerStrength,\n DividerVariant,\n} from '../model/divider.type';\n\n@Component({\n selector: 'solaris-divider',\n standalone: true,\n imports: [NgClass],\n templateUrl: './divider.html',\n styleUrls: ['./divider.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { role: 'separator' },\n})\nexport class SolarisDivider {\n @Input() label?: string;\n @Input() inset = false;\n @Input() spacing: DividerSpacing = 'none';\n @Input() variant: DividerVariant = 'solid';\n @Input() strength: DividerStrength = 'normal';\n @Input() orientation: DividerOrientation = 'horizontal';\n @Input({ alias: 'label-align' }) labelAlign: DividerLabelAlign = 'center';\n\n @HostBinding('class') hostClass = 'solaris-divider-host';\n @HostBinding('attr.aria-orientation') get ariaOrientation() {\n return this.orientation === 'vertical' ? 'vertical' : 'horizontal';\n }\n\n get hasLabel(): boolean {\n return !!this.label && this.orientation === 'horizontal';\n }\n}\n","<div\n class=\"solaris-divider\"\n [ngClass]=\"[\n 'orientation-' + orientation,\n 'spacing-' + spacing,\n 'strength-' + strength,\n 'variant-' + variant,\n inset ? 'is-inset' : '',\n hasLabel ? 'has-label' : '',\n hasLabel ? 'label-' + labelAlign : '',\n ]\"\n>\n @if (hasLabel) {\n <span class=\"solaris-divider__line\"></span>\n <span class=\"solaris-divider__label\">{{ label }}</span>\n <span class=\"solaris-divider__line\"></span>\n }\n</div>\n","import { InjectionToken } from '@angular/core';\n\nexport const SOLARIS_DIALOG_STEP_DATA = new InjectionToken<unknown>('SOLARIS_DIALOG_STEP_DATA');\n","import { InjectionToken } from '@angular/core';\n\nexport const SOLARIS_DIALOG_DATA = new InjectionToken<unknown>('SOLARIS_DIALOG_DATA');\n","import { SolarisDialogAction, SolarisDialogHeaderConfiguration } from '../model/dialog.type';\nimport { Observable, Subject } from 'rxjs';\n\nexport class SolarisDialogRef<TResult = unknown> {\n private readonly actionSubject = new Subject<SolarisDialogAction<TResult>>();\n private readonly closedSubject = new Subject<TResult | undefined>();\n\n private closeFn?: (result?: TResult) => void;\n private updateActionsFn?: (actions: SolarisDialogAction<TResult>[]) => void;\n private updateHeaderFn?: (header: SolarisDialogHeaderConfiguration) => void;\n\n afterClosed(): Observable<TResult | undefined> {\n return this.closedSubject.asObservable();\n }\n\n afterAction(): Observable<SolarisDialogAction<TResult>> {\n return this.actionSubject.asObservable();\n }\n\n close(result?: TResult): void {\n this.closeFn?.(result);\n }\n\n updateActions(actions: SolarisDialogAction<TResult>[]): void {\n this.updateActionsFn?.(actions);\n }\n\n updateHeader(header: SolarisDialogHeaderConfiguration): void {\n this.updateHeaderFn?.(header);\n }\n\n _attachCloseFn(fn: (result?: TResult) => void): void {\n this.closeFn = fn;\n }\n\n _attachActionsUpdateFn(fn: (actions: SolarisDialogAction<TResult>[]) => void): void {\n this.updateActionsFn = fn;\n }\n\n _attachHeaderUpdateFn(fn: (header: SolarisDialogHeaderConfiguration) => void): void {\n this.updateHeaderFn = fn;\n }\n\n _emitAction(action: SolarisDialogAction<TResult>): void {\n this.actionSubject.next(action);\n }\n\n _finishClose(result?: TResult): void {\n this.closedSubject.next(result);\n this.closedSubject.complete();\n this.actionSubject.complete();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Injector,\n computed,\n effect,\n inject,\n signal,\n AfterViewInit,\n ViewChildren,\n ElementRef,\n QueryList,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgComponentOutlet } from '@angular/common';\n\nimport {\n SolarisDialogStep,\n SolarisDialogStepActionValue,\n SolarisDialogStepDirection,\n SolarisDialogStepsConfiguration,\n} from '../../model/dialog-steps.type';\nimport { SOLARIS_DIALOG_STEP_DATA } from '../../token/dialog-step-data.token';\nimport { SOLARIS_DIALOG_DATA } from '../../token/dialog-data.token';\nimport { SolarisDialogAction } from '../../model/dialog.type';\nimport { SolarisDialogRef } from '../../token/dialog-ref';\n\n@Component({\n selector: 'solaris-dialog-steps-container',\n standalone: true,\n imports: [NgComponentOutlet],\n templateUrl: './dialog-steps-container.html',\n styleUrls: ['./dialog-steps-container.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisDialogStepsContainer<TResult = unknown> implements AfterViewInit {\n private readonly destroyRef = inject(DestroyRef);\n private readonly injector = inject(Injector);\n\n private readonly configuration = inject(\n SOLARIS_DIALOG_DATA,\n ) as SolarisDialogStepsConfiguration<TResult>;\n\n private readonly dialogRef =\n inject<SolarisDialogRef<TResult | SolarisDialogStepActionValue>>(SolarisDialogRef);\n\n protected readonly steps = this.configuration?.steps ?? [];\n\n protected readonly showProgress = this.configuration?.showProgress ?? true;\n protected readonly transitionBlur = this.configuration?.transitionBlur ?? true;\n protected readonly contentMinHeight = this.configuration?.contentMinHeight ?? '0';\n protected readonly transitionDurationMs = this.configuration?.transitionDurationMs ?? 420;\n\n protected readonly loading = signal(false);\n protected readonly transitioning = signal(false);\n protected readonly transitionHalfway = signal(false);\n\n protected readonly currentStepIndex = signal(this.resolveInitialStepIndex());\n\n @ViewChildren('stepElement', { read: ElementRef })\n private readonly stepElements!: QueryList<ElementRef<HTMLElement>>;\n\n protected readonly activeStepHeight = signal('auto');\n\n private measureRaf = 0;\n private resizeObserver?: ResizeObserver;\n\n private halfwayTimer = 0;\n private transitionTimer = 0;\n\n private readonly stepInjectors = this.steps.map((step) =>\n Injector.create({\n providers: [\n {\n provide: SOLARIS_DIALOG_STEP_DATA,\n useValue: step.data,\n },\n ],\n parent: this.injector,\n }),\n );\n\n protected readonly trackTransform = computed(() => {\n return `translate3d(-${this.currentStepIndex() * 100}%, 0, 0)`;\n });\n\n protected readonly isFirstStep = computed(() => this.currentStepIndex() === 0);\n\n protected readonly isLastStep = computed(() => {\n return this.currentStepIndex() === this.steps.length - 1;\n });\n\n protected readonly transitionDuration = computed(() => {\n return `${this.transitionDurationMs}ms`;\n });\n\n constructor() {\n this.destroyRef.onDestroy(() => {\n globalThis.clearTimeout(this.halfwayTimer);\n globalThis.clearTimeout(this.transitionTimer);\n\n if (this.measureRaf) {\n cancelAnimationFrame(this.measureRaf);\n }\n\n this.resizeObserver?.disconnect();\n });\n\n this.dialogRef\n .afterAction()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((action) => {\n void this.handleAction(action.value as SolarisDialogStepActionValue);\n });\n\n effect(() => {\n this.currentStepIndex();\n this.loading();\n\n this.updateDialogHeader();\n this.updateDialogActions();\n\n queueMicrotask(() => {\n this.observeActiveStepHeight();\n this.scheduleActiveStepHeightMeasure();\n });\n });\n\n queueMicrotask(() => {\n void this.runBeforeEnter(this.currentStepIndex(), 'initial');\n });\n }\n\n ngAfterViewInit(): void {\n this.stepElements.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.observeActiveStepHeight();\n this.scheduleActiveStepHeightMeasure();\n });\n\n this.observeActiveStepHeight();\n this.scheduleActiveStepHeightMeasure();\n }\n\n protected stepInjector(index: number): Injector {\n return this.stepInjectors[index];\n }\n\n private async handleAction(value: SolarisDialogStepActionValue): Promise<void> {\n switch (value) {\n case 'cancel':\n this.dialogRef.close();\n return;\n\n case 'back':\n await this.goToStep(this.currentStepIndex() - 1, 'backward');\n return;\n\n case 'next':\n await this.goToStep(this.currentStepIndex() + 1, 'forward');\n return;\n\n case 'finish':\n await this.finish();\n return;\n }\n }\n\n private async goToStep(\n targetIndex: number,\n direction: SolarisDialogStepDirection,\n ): Promise<void> {\n if (this.loading()) return;\n if (targetIndex < 0 || targetIndex >= this.steps.length) return;\n\n const fromIndex = this.currentStepIndex();\n const canLeave = await this.runBeforeLeave(fromIndex, targetIndex, direction);\n\n if (!canLeave) return;\n\n const canEnter = await this.runBeforeEnter(targetIndex, direction, fromIndex);\n\n if (!canEnter) return;\n\n this.runTransitionTo(targetIndex);\n }\n\n private async finish(): Promise<void> {\n if (this.loading()) return;\n\n const index = this.currentStepIndex();\n const canLeave = await this.runBeforeLeave(index, index, 'forward');\n\n if (!canLeave) return;\n\n this.dialogRef.close(this.configuration.finishValue);\n }\n\n private async runBeforeEnter(\n toIndex: number,\n direction: SolarisDialogStepDirection,\n fromIndex = toIndex,\n ): Promise<boolean> {\n const step = this.steps[toIndex];\n\n if (!step?.beforeEnter) {\n return true;\n }\n\n this.loading.set(true);\n\n try {\n const result = await step.beforeEnter({\n fromIndex,\n toIndex,\n direction,\n });\n\n return result !== false;\n } finally {\n this.loading.set(false);\n }\n }\n\n private async runBeforeLeave(\n fromIndex: number,\n toIndex: number,\n direction: SolarisDialogStepDirection,\n ): Promise<boolean> {\n const step = this.steps[fromIndex];\n\n if (!step?.beforeLeave) {\n return true;\n }\n\n this.loading.set(true);\n\n try {\n const result = await step.beforeLeave({\n fromIndex,\n toIndex,\n direction,\n });\n\n return result !== false;\n } finally {\n this.loading.set(false);\n }\n }\n\n private updateDialogActions(): void {\n if (!this.steps.length) {\n this.dialogRef.updateActions([]);\n return;\n }\n\n const step = this.steps[this.currentStepIndex()];\n const customActions = this.resolveStepActions(step);\n\n if (customActions.length) {\n this.dialogRef.updateActions(\n customActions.map((action) => ({\n ...action,\n disabled: action.disabled || this.loading(),\n })),\n );\n return;\n }\n\n const leftAction: SolarisDialogAction<TResult | SolarisDialogStepActionValue> =\n this.isFirstStep()\n ? {\n label: this.configuration.cancelLabel ?? 'Cancelar',\n labelKey: this.configuration.cancelLabelKey,\n value: 'cancel',\n variant: 'outline',\n color: 'surface',\n closesDialog: false,\n disabled: this.loading(),\n }\n : {\n label: this.configuration.backLabel ?? 'Voltar',\n labelKey: this.configuration.backLabelKey,\n value: 'back',\n variant: 'outline',\n color: 'surface',\n closesDialog: false,\n disabled: this.loading(),\n };\n\n const rightAction: SolarisDialogAction<TResult | SolarisDialogStepActionValue> =\n this.isLastStep()\n ? {\n label: this.configuration.finishLabel ?? 'Finalizar',\n labelKey: this.configuration.finishLabelKey,\n value: 'finish',\n variant: 'solid',\n color: 'primary',\n closesDialog: false,\n loading: this.loading(),\n }\n : {\n label: this.configuration.nextLabel ?? 'Continuar',\n labelKey: this.configuration.nextLabelKey,\n value: 'next',\n variant: 'solid',\n color: 'primary',\n closesDialog: false,\n loading: this.loading(),\n };\n\n this.dialogRef.updateActions([leftAction, rightAction]);\n }\n\n private resolveStepActions(\n step: SolarisDialogStep<unknown, TResult> | undefined,\n ): SolarisDialogAction<TResult | SolarisDialogStepActionValue>[] {\n if (!step?.actions) {\n return [];\n }\n\n if (typeof step.actions === 'function') {\n return step.actions({\n index: this.currentStepIndex(),\n loading: this.loading(),\n isFirstStep: this.isFirstStep(),\n isLastStep: this.isLastStep(),\n });\n }\n\n return step.actions;\n }\n\n private resolveInitialStepIndex(): number {\n if (!this.steps.length) {\n return 0;\n }\n\n const index = this.configuration.initialStepIndex ?? 0;\n\n return Math.max(0, Math.min(index, this.steps.length - 1));\n }\n\n private runTransitionTo(targetIndex: number): void {\n globalThis.clearTimeout(this.halfwayTimer);\n globalThis.clearTimeout(this.transitionTimer);\n\n this.transitioning.set(true);\n this.transitionHalfway.set(false);\n\n this.currentStepIndex.set(targetIndex);\n\n this.observeActiveStepHeight(targetIndex);\n this.scheduleActiveStepHeightMeasure(targetIndex);\n\n if (this.transitionBlur) {\n this.halfwayTimer = globalThis.setTimeout(\n () => {\n if (this.transitioning()) {\n this.transitionHalfway.set(true);\n }\n },\n Math.round(this.transitionDurationMs / 2),\n );\n }\n\n this.transitionTimer = globalThis.setTimeout(() => {\n this.transitioning.set(false);\n this.transitionHalfway.set(false);\n }, this.transitionDurationMs);\n }\n\n private updateDialogHeader(): void {\n const step = this.steps[this.currentStepIndex()];\n\n const title = step?.title;\n const titleKey = step?.titleKey;\n\n const description = step?.description;\n const descriptionKey = step?.descriptionKey;\n\n this.dialogRef.updateHeader({\n title: titleKey ? undefined : (title ?? this.configuration.title),\n titleKey: titleKey ?? (title ? undefined : this.configuration.titleKey),\n titleParams: step?.titleParams ?? this.configuration.titleParams,\n\n description: descriptionKey ? undefined : (description ?? this.configuration.description),\n descriptionKey:\n descriptionKey ?? (description ? undefined : this.configuration.descriptionKey),\n descriptionParams: step?.descriptionParams ?? this.configuration.descriptionParams,\n });\n }\n\n private scheduleActiveStepHeightMeasure(index = this.currentStepIndex()): void {\n if (this.measureRaf) {\n cancelAnimationFrame(this.measureRaf);\n }\n\n this.measureRaf = requestAnimationFrame(() => {\n this.measureStepHeight(index);\n });\n }\n\n private measureStepHeight(index = this.currentStepIndex()): void {\n const element = this.stepElements?.toArray()[index]?.nativeElement;\n\n if (!element) {\n this.activeStepHeight.set('auto');\n return;\n }\n\n const height = Math.ceil(element.scrollHeight);\n\n this.activeStepHeight.set(`${height}px`);\n }\n\n private observeActiveStepHeight(index = this.currentStepIndex()): void {\n this.resizeObserver?.disconnect();\n\n const element = this.stepElements?.toArray()[index]?.nativeElement;\n\n if (!element || typeof ResizeObserver === 'undefined') {\n return;\n }\n\n this.resizeObserver = new ResizeObserver(() => {\n this.scheduleActiveStepHeightMeasure(index);\n });\n\n this.resizeObserver.observe(element);\n }\n}\n","<div\n class=\"solaris-dialog-steps\"\n [class.is-transitioning]=\"transitioning()\"\n [class.is-halfway]=\"transitionHalfway()\"\n [class.has-transition-blur]=\"transitionBlur\"\n [style.--solaris-dialog-steps-min-height]=\"contentMinHeight\"\n [style.--solaris-dialog-steps-active-height]=\"activeStepHeight()\"\n>\n @if (showProgress) {\n <div class=\"solaris-dialog-steps__progress\" aria-hidden=\"true\">\n @for (step of steps; track step.key; let index = $index) {\n <span\n class=\"solaris-dialog-steps__dot\"\n [class.is-active]=\"index === currentStepIndex()\"\n [class.is-complete]=\"index < currentStepIndex()\"\n ></span>\n }\n </div>\n }\n\n <div class=\"solaris-dialog-steps__viewport\">\n <div\n class=\"solaris-dialog-steps__track\"\n [style.transform]=\"trackTransform()\"\n [style.--solaris-dialog-steps-transition-duration]=\"transitionDuration()\"\n >\n @for (step of steps; track step.key; let index = $index) {\n <section\n #stepElement\n class=\"solaris-dialog-steps__step\"\n [class.is-active]=\"index === currentStepIndex()\"\n [class.is-before]=\"index < currentStepIndex()\"\n [class.is-after]=\"index > currentStepIndex()\"\n >\n <div class=\"solaris-dialog-steps__step-inner\">\n <ng-container\n *ngComponentOutlet=\"step.component; injector: stepInjector(index)\"\n ></ng-container>\n </div>\n </section>\n }\n </div>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport {\n SolarisDialogAction,\n SolarisDialogActionAlignment,\n SolarisDialogSize,\n} from '../../model/dialog.type';\nimport {\n SolarisButtonColorInput,\n SolarisButtonVariant,\n} from '../../../../actions/button/model/button.type';\nimport { SolarisButtonDirective } from '../../../../actions/button/directives/button.directive';\nimport { SolarisSizePreset } from '../../../../common/model/common-configurations.type';\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\n\n@Component({\n selector: 'solaris-dialog-container',\n standalone: true,\n imports: [SolarisButtonDirective, SolarisTranslationPipe],\n templateUrl: './dialog-container.html',\n styleUrls: ['./dialog-container.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisDialogContainer<TResult = unknown> {\n @ViewChild('contentHost', { read: ViewContainerRef, static: true })\n readonly contentHost!: ViewContainerRef;\n\n @Input() title?: string;\n @Input() titleKey?: string;\n @Input() titleParams?: Record<string, unknown>;\n\n @Input() description?: string;\n @Input() descriptionKey?: string;\n @Input() descriptionParams?: Record<string, unknown>;\n\n @Input() size: SolarisDialogSize = 'md';\n @Input() showCloseButton = true;\n @Input() actionSize?: SolarisSizePreset;\n @Input() actions: SolarisDialogAction<TResult>[] = [];\n @Input() actionAlignment: SolarisDialogActionAlignment = 'end';\n\n @Input() ariaLabel?: string;\n @Input() ariaLabelledBy?: string;\n @Input() ariaDescribedBy?: string;\n\n @Output() readonly closeClick = new EventEmitter<void>();\n @Output() readonly actionClick = new EventEmitter<SolarisDialogAction<TResult>>();\n\n readonly titleId = `solaris-dialog-title-${Math.round(Math.random() * 1_000_000)}`;\n readonly descriptionId = `solaris-dialog-description-${Math.round(Math.random() * 1_000_000)}`;\n\n get hasHeader(): boolean {\n return (\n !!this.title ||\n !!this.titleKey ||\n !!this.description ||\n !!this.descriptionKey ||\n this.showCloseButton\n );\n }\n\n get hasDescription(): boolean {\n return !!this.description || !!this.descriptionKey;\n }\n\n get hasActions(): boolean {\n return this.actions.length > 0;\n }\n\n get resolvedAriaLabelledBy(): string | null {\n if (this.ariaLabelledBy) return this.ariaLabelledBy;\n if (this.title || this.titleKey) return this.titleId;\n return null;\n }\n\n get resolvedAriaDescribedBy(): string | null {\n if (this.ariaDescribedBy) return this.ariaDescribedBy;\n if (this.description || this.descriptionKey) return this.descriptionId;\n return null;\n }\n\n protected resolveActionSize(action: SolarisDialogAction<TResult>): SolarisSizePreset {\n if (action.size) {\n return action.size;\n }\n\n if (this.actionSize) {\n return this.actionSize;\n }\n\n switch (this.size) {\n case 'sm':\n return 'sm';\n case 'md':\n return 'md';\n case 'lg':\n case 'xl':\n case 'fullscreen':\n return 'lg';\n }\n }\n\n protected resolveActionVariant(action: SolarisDialogAction<TResult>): SolarisButtonVariant {\n if (action.variant) {\n return action.variant;\n }\n\n return 'solid';\n }\n\n protected resolveActionColor(action: SolarisDialogAction<TResult>): SolarisButtonColorInput {\n if (action.color) {\n return action.color;\n }\n\n switch (action.variant) {\n case 'ghost':\n case 'outline':\n case 'soft':\n return 'surface';\n default:\n return 'primary';\n }\n }\n}\n","<section\n class=\"solaris-dialog\"\n [attr.data-size]=\"size\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"resolvedAriaLabelledBy\"\n [attr.aria-describedby]=\"resolvedAriaDescribedBy\"\n>\n @if (hasHeader) {\n <header class=\"solaris-dialog__header\">\n <div class=\"solaris-dialog__heading\">\n @if (title || titleKey) {\n <h2 class=\"solaris-dialog__title\" [id]=\"titleId\">\n @if (titleKey) {\n {{ titleKey | translate }}\n } @else {\n {{ title }}\n }\n </h2>\n }\n\n @if (hasDescription) {\n <p class=\"solaris-dialog__description\" [id]=\"descriptionId\">\n @if (descriptionKey) {\n {{ descriptionKey | translate }}\n } @else {\n {{ description }}\n }\n </p>\n }\n </div>\n\n @if (showCloseButton) {\n <button\n type=\"button\"\n class=\"solaris-dialog__close\"\n aria-label=\"Fechar\"\n (click)=\"closeClick.emit()\"\n >\n <i class=\"ph ph-x\"></i>\n </button>\n }\n </header>\n }\n\n <div class=\"solaris-dialog__body\">\n <ng-template #contentHost></ng-template>\n </div>\n\n @if (hasActions) {\n <footer class=\"solaris-dialog__footer\" [attr.data-action-alignment]=\"actionAlignment\">\n @for (action of actions; track action.label ?? action.labelKey ?? $index) {\n <button\n type=\"button\"\n solaris-button\n class=\"solaris-dialog__action\"\n [size]=\"resolveActionSize(action)\"\n [variant]=\"resolveActionVariant(action)\"\n [color]=\"resolveActionColor(action)\"\n [disabled]=\"action.disabled\"\n [loading]=\"action.loading\"\n [fullWidth]=\"action.fullWidth\"\n (click)=\"actionClick.emit(action)\"\n >\n @if (action.prefixIcon) {\n <i\n [attr.class]=\"\n 'solaris-dialog__action-icon solaris-dialog__action-icon--prefix ' +\n action.prefixIcon\n \"\n aria-hidden=\"true\"\n ></i>\n }\n\n <span class=\"solaris-dialog__action-label\">\n @if (action.labelKey) {\n {{ action.labelKey | translate: action.labelParams }}\n } @else {\n {{ action.label }}\n }\n </span>\n\n @if (action.suffixIcon) {\n <i\n [attr.class]=\"\n 'solaris-dialog__action-icon solaris-dialog__action-icon--suffix ' +\n action.suffixIcon\n \"\n aria-hidden=\"true\"\n ></i>\n }\n </button>\n }\n </footer>\n }\n</section>\n","import {\n ApplicationRef,\n EnvironmentInjector,\n Injectable,\n Injector,\n Type,\n createComponent,\n inject,\n} from '@angular/core';\n\nimport { SolarisDialogStepsContainer } from '../components/dialog-steps-container/dialog-steps-container';\nimport { SolarisDialogContainer } from '../components/dialog-container/dialog-container';\nimport { SolarisDialogStepsConfiguration } from '../model/dialog-steps.type';\nimport { SolarisDialogConfiguration } from '../model/dialog.type';\nimport { SOLARIS_DIALOG_DATA } from '../token/dialog-data.token';\nimport { SolarisDialogRef } from '../token/dialog-ref';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SolarisDialogService {\n private readonly environmentInjector = inject(EnvironmentInjector);\n private readonly appRef = inject(ApplicationRef);\n\n open<TComponent, TData = unknown, TResult = unknown>(\n component: Type<TComponent>,\n configuration: SolarisDialogConfiguration<TData, TResult> = {},\n ): SolarisDialogRef<TResult> {\n const dialogRef = new SolarisDialogRef<TResult>();\n\n const backdrop = document.createElement('div');\n backdrop.className = 'solaris-dialog-backdrop';\n\n const host = document.createElement('div');\n const positionClass = `position-${configuration.position ?? 'center'}`;\n\n host.className = ['solaris-dialog-host', positionClass, configuration.panelClass ?? '']\n .filter(Boolean)\n .join(' ');\n\n document.body.appendChild(backdrop);\n document.body.appendChild(host);\n\n const dialogInjector = Injector.create({\n providers: [\n { provide: SOLARIS_DIALOG_DATA, useValue: configuration.data },\n { provide: SolarisDialogRef, useValue: dialogRef },\n ],\n parent: this.environmentInjector,\n });\n\n const containerRef = createComponent(SolarisDialogContainer<TResult>, {\n environmentInjector: this.environmentInjector,\n hostElement: host,\n });\n\n containerRef.setInput('title', configuration.title);\n containerRef.setInput('titleKey', configuration.titleKey);\n containerRef.setInput('titleParams', configuration.titleParams);\n containerRef.setInput('description', configuration.description);\n containerRef.setInput('descriptionKey', configuration.descriptionKey);\n containerRef.setInput('descriptionParams', configuration.descriptionParams);\n containerRef.setInput('size', configuration.size ?? 'md');\n containerRef.setInput('actions', configuration.actions ?? []);\n containerRef.setInput('actionSize', configuration.actionSize);\n containerRef.setInput('actionAlignment', configuration.actionAlignment ?? 'end');\n containerRef.setInput('ariaLabel', configuration.ariaLabel);\n containerRef.setInput('ariaLabelledBy', configuration.ariaLabelledBy);\n containerRef.setInput('ariaDescribedBy', configuration.ariaDescribedBy);\n containerRef.setInput(\n 'showCloseButton',\n configuration.showCloseButton ?? !configuration.disableClose,\n );\n\n dialogRef._attachActionsUpdateFn((actions) => {\n containerRef.setInput('actions', [...actions]);\n containerRef.changeDetectorRef.detectChanges();\n });\n\n dialogRef._attachHeaderUpdateFn((header) => {\n containerRef.setInput('title', header.title);\n containerRef.setInput('titleKey', header.titleKey);\n containerRef.setInput('titleParams', header.titleParams);\n\n containerRef.setInput('description', header.description);\n containerRef.setInput('descriptionKey', header.descriptionKey);\n containerRef.setInput('descriptionParams', header.descriptionParams);\n\n containerRef.changeDetectorRef.detectChanges();\n });\n\n this.appRef.attachView(containerRef.hostView);\n containerRef.changeDetectorRef.detectChanges();\n\n const contentRef = createComponent(component, {\n environmentInjector: this.environmentInjector,\n elementInjector: dialogInjector,\n });\n\n containerRef.instance.contentHost.insert(contentRef.hostView);\n contentRef.changeDetectorRef.detectChanges();\n\n const close = (result?: TResult) => {\n this.appRef.detachView(contentRef.hostView);\n contentRef.destroy();\n\n this.appRef.detachView(containerRef.hostView);\n containerRef.destroy();\n\n backdrop.remove();\n host.remove();\n\n document.removeEventListener('keydown', onKeyDown, true);\n backdrop.removeEventListener('pointerdown', onBackdropClick, true);\n\n dialogRef._finishClose(result);\n };\n\n dialogRef._attachCloseFn(close);\n\n const closeOnBackdropClick = configuration.closeOnBackdropClick ?? !configuration.disableClose;\n const closeOnEscape = configuration.closeOnEscape ?? !configuration.disableClose;\n\n const onBackdropClick = () => {\n if (closeOnBackdropClick) {\n dialogRef.close();\n }\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && closeOnEscape) {\n dialogRef.close();\n }\n };\n\n backdrop.addEventListener('pointerdown', onBackdropClick, true);\n document.addEventListener('keydown', onKeyDown, true);\n\n containerRef.instance.closeClick.subscribe(() => {\n if (!configuration.disableClose) {\n dialogRef.close();\n }\n });\n\n containerRef.instance.actionClick.subscribe((action) => {\n if (action.disabled || action.loading) return;\n\n dialogRef._emitAction(action);\n if (action.closesDialog ?? true) {\n dialogRef.close(action.value as TResult);\n }\n });\n\n return dialogRef;\n }\n\n openSteps<TResult = unknown>(\n configuration: SolarisDialogStepsConfiguration<TResult>,\n ): SolarisDialogRef<TResult> {\n return this.open<\n SolarisDialogStepsContainer<TResult>,\n SolarisDialogStepsConfiguration<TResult>,\n TResult\n >(SolarisDialogStepsContainer, {\n ...configuration,\n data: configuration,\n actions: [],\n actionAlignment: configuration.actionAlignment ?? 'space-between',\n showCloseButton: configuration.showCloseButton ?? true,\n });\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-drawer-header]',\n standalone: true,\n})\nexport class SolarisDrawerHeaderDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-drawer-footer]',\n standalone: true,\n})\nexport class SolarisDrawerFooterDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n ViewChild,\n computed,\n effect,\n inject,\n signal,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport { SolarisDrawerHeaderDirective } from '../directives/drawer-header.directive';\nimport { SolarisDrawerFooterDirective } from '../directives/drawer-footer.directive';\nimport { SolarisDrawerSide } from '../model/drawer.type';\n\n@Component({\n selector: 'solaris-drawer',\n standalone: true,\n imports: [],\n templateUrl: './drawer.html',\n styleUrls: ['./drawer.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-drawer-host' },\n})\nexport class SolarisDrawer {\n private readonly doc = inject(DOCUMENT);\n\n @Input() title = '';\n @Input() titleKey = '';\n @Input() panelClass = '';\n @Input() backdrop = true;\n @Input() showClose = true;\n @Input() trapFocus = true;\n @Input() backdropClass = '';\n @Input() showHeader = true;\n @Input() lockScroll = true;\n @Input() restoreFocus = true;\n @Input() closeOnEscape = true;\n @Input() width = 'min(26rem, 92vw)';\n @Input() side: SolarisDrawerSide = 'right';\n @Input() height = 'min(70vh, 40rem)';\n @Input() closeOnOutsideClick = true;\n\n private readonly _openInput = signal<boolean | null>(null);\n private readonly _internalOpen = signal(false);\n\n @Input()\n set open(value: boolean | null) {\n this._openInput.set(value);\n }\n\n get open(): boolean | null {\n return this._openInput();\n }\n\n readonly isOpen = computed(() => {\n const v = this._openInput();\n return typeof v === 'boolean' ? v : this._internalOpen();\n });\n\n @Output() openChange = new EventEmitter<boolean>();\n\n @ContentChild(SolarisDrawerHeaderDirective) headerSlot?: SolarisDrawerHeaderDirective;\n @ContentChild(SolarisDrawerFooterDirective) footerSlot?: SolarisDrawerFooterDirective;\n @ViewChild('panelEl', { read: ElementRef }) panelEl?: ElementRef<HTMLElement>;\n\n private static seq = 0;\n readonly _id = `solaris-drawer-${++SolarisDrawer.seq}`;\n private static scrollLockCount = 0;\n private static prevBodyOverflow = '';\n readonly titleId = `${this._id}-title`;\n private prevFocused: HTMLElement | null = null;\n private static prevBodyPaddingRight = '';\n\n @HostBinding('attr.data-side')\n get dataSide(): SolarisDrawerSide {\n return this.side;\n }\n\n @HostBinding('attr.data-open')\n get dataOpen(): string | null {\n return this.isOpen() ? 'true' : null;\n }\n\n get hasCustomHeader(): boolean {\n return !!this.headerSlot;\n }\n\n get hasCustomFooter(): boolean {\n return !!this.footerSlot;\n }\n\n constructor() {\n effect((onCleanup) => {\n const open = this.isOpen();\n\n if (open) {\n this.onOpen();\n } else {\n this.onClose();\n }\n\n const onKeyDown = (ev: KeyboardEvent) => {\n if (!this.isOpen()) return;\n if (this.closeOnEscape && ev.key === 'Escape') {\n ev.preventDefault();\n this.setOpen(false);\n }\n };\n\n const onDocPointerDown = (ev: PointerEvent) => {\n if (!this.isOpen()) return;\n if (!this.closeOnOutsideClick) return;\n if (this.backdrop) return;\n\n const panel = this.panelEl?.nativeElement;\n const t = ev.target as Node | null;\n if (!panel || !t) return;\n\n if (!panel.contains(t)) this.setOpen(false);\n };\n\n const onFocusIn = (ev: FocusEvent) => {\n if (!this.isOpen()) return;\n if (!this.trapFocus) return;\n\n const panel = this.panelEl?.nativeElement;\n const target = ev.target as Node | null;\n if (!panel || !target) return;\n\n if (!panel.contains(target)) {\n this.focusFirst();\n }\n };\n\n this.doc.addEventListener('keydown', onKeyDown, { capture: true });\n this.doc.addEventListener('pointerdown', onDocPointerDown, { capture: true });\n this.doc.addEventListener('focusin', onFocusIn, { capture: true });\n\n onCleanup(() => {\n this.doc.removeEventListener('keydown', onKeyDown, true);\n this.doc.removeEventListener('pointerdown', onDocPointerDown, true);\n this.doc.removeEventListener('focusin', onFocusIn, true);\n });\n });\n }\n\n toggle(): void {\n this.setOpen(!this.isOpen());\n }\n\n setOpen(next: boolean): void {\n const cur = this.isOpen();\n if (next === cur) return;\n\n this.openChange.emit(next);\n if (typeof this._openInput() !== 'boolean') {\n this._internalOpen.set(next);\n }\n }\n\n onBackdropClick(): void {\n if (!this.closeOnOutsideClick) return;\n this.setOpen(false);\n }\n\n onPanelKeydown(ev: KeyboardEvent): void {\n if (!this.trapFocus) return;\n if (ev.key !== 'Tab') return;\n\n const panel = this.panelEl?.nativeElement;\n if (!panel) return;\n\n const focusables = this.getFocusable(panel);\n if (!focusables.length) return;\n\n const first = focusables[0];\n const last = focusables.at(-1);\n\n const active = this.doc.activeElement as HTMLElement | null;\n\n if (ev.shiftKey) {\n if (!active || active === first) {\n ev.preventDefault();\n if (last) {\n last.focus();\n }\n }\n } else if (!active || active === last) {\n ev.preventDefault();\n first.focus();\n }\n }\n\n private onOpen(): void {\n if (this.restoreFocus) {\n this.prevFocused = this.doc.activeElement as HTMLElement | null;\n }\n\n if (this.lockScroll) this.lockBodyScroll();\n queueMicrotask(() => {\n requestAnimationFrame(() => this.focusFirst());\n });\n }\n\n private onClose(): void {\n if (this.lockScroll) this.unlockBodyScroll();\n\n if (this.restoreFocus && this.prevFocused?.isConnected) {\n queueMicrotask(() => this.prevFocused?.focus?.());\n }\n this.prevFocused = null;\n }\n\n private focusFirst(): void {\n const panel = this.panelEl?.nativeElement;\n if (!panel) return;\n\n const focusables = this.getFocusable(panel);\n if (focusables.length) {\n focusables[0].focus();\n return;\n }\n\n panel.focus?.();\n }\n\n private getFocusable(root: HTMLElement): HTMLElement[] {\n const selector =\n 'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\n const all = Array.from(root.querySelectorAll<HTMLElement>(selector));\n return all.filter((el) => {\n const style = getComputedStyle(el);\n const visible = style.visibility !== 'hidden' && style.display !== 'none';\n const inDom = el.offsetParent !== null || style.position === 'fixed';\n return visible && inDom;\n });\n }\n\n private lockBodyScroll(): void {\n const body = this.doc.body;\n if (!body) return;\n\n if (SolarisDrawer.scrollLockCount === 0) {\n SolarisDrawer.prevBodyOverflow = body.style.overflow;\n SolarisDrawer.prevBodyPaddingRight = body.style.paddingRight;\n\n const scrollbarW = Math.max(0, window.innerWidth - this.doc.documentElement.clientWidth);\n body.style.overflow = 'hidden';\n if (scrollbarW) body.style.paddingRight = `${scrollbarW}px`;\n }\n\n SolarisDrawer.scrollLockCount++;\n }\n\n private unlockBodyScroll(): void {\n const body = this.doc.body;\n if (!body) return;\n\n SolarisDrawer.scrollLockCount = Math.max(0, SolarisDrawer.scrollLockCount - 1);\n\n if (SolarisDrawer.scrollLockCount === 0) {\n body.style.overflow = SolarisDrawer.prevBodyOverflow;\n body.style.paddingRight = SolarisDrawer.prevBodyPaddingRight;\n }\n }\n}\n","@if (isOpen()) {\n @if (backdrop) {\n <div\n class=\"solaris-drawer__backdrop {{ backdropClass }}\"\n (click)=\"onBackdropClick()\"\n aria-hidden=\"true\"\n ></div>\n }\n\n <aside\n #panelEl\n class=\"solaris-drawer__panel {{ panelClass }}\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-labelledby]=\"showHeader ? titleId : null\"\n [style.--solaris-drawer-width]=\"width\"\n [style.--solaris-drawer-height]=\"height\"\n (keydown)=\"onPanelKeydown($event)\"\n tabindex=\"-1\"\n >\n @if (showHeader) {\n <header class=\"solaris-drawer__header\">\n @if (hasCustomHeader) {\n <ng-content select=\"[solaris-drawer-header]\"></ng-content>\n } @else {\n <div class=\"solaris-drawer__title\" [id]=\"titleId\">{{ title }}</div>\n\n @if (showClose) {\n <button\n type=\"button\"\n class=\"solaris-drawer__close\"\n (click)=\"setOpen(false)\"\n aria-label=\"Close\"\n >\n <i class=\"ph ph-x\" aria-hidden=\"true\"></i>\n </button>\n }\n }\n </header>\n }\n\n <div class=\"solaris-drawer__content\">\n <ng-content></ng-content>\n </div>\n\n @if (hasCustomFooter) {\n <footer class=\"solaris-drawer__footer\">\n <ng-content select=\"[solaris-drawer-footer]\"></ng-content>\n </footer>\n }\n </aside>\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-filter-panel-footer]',\n standalone: true,\n})\nexport class SolarisFilterPanelFooterDirective {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'solaris-table-filters',\n standalone: true,\n templateUrl: './table-filters.html',\n styleUrls: ['./table-filters.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-table-filters' },\n})\nexport class SolarisTableFilters {}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\n\n@Component({\n selector: 'solaris-filter-field',\n standalone: true,\n imports: [SolarisTranslationPipe],\n templateUrl: './filter-field.html',\n styleUrls: ['./filter-field.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-filter-field-host' },\n})\nexport class SolarisFilterField {\n @Input() label = '';\n @Input() labelKey = '';\n @Input() active = false;\n @Input() resetLabel = 'Reset';\n @Input() resetLabelKey = 'ui.solaris.common.reset';\n\n @Output() reset = new EventEmitter<void>();\n\n get showReset(): boolean {\n return this.reset.observed;\n }\n\n onResetClick(ev: MouseEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n this.reset.emit();\n }\n}\n","<div class=\"solaris-filter-field\">\n <div class=\"solaris-filter-field__head\">\n <span class=\"solaris-filter-field__label\">\n @if (labelKey) {\n {{ labelKey | translate }}\n } @else {\n {{ label }}\n }\n </span>\n\n @if (showReset) {\n <button\n type=\"button\"\n class=\"solaris-filter-field__reset\"\n (click)=\"onResetClick($event)\"\n [disabled]=\"!active\"\n >\n @if (resetLabelKey) {\n {{ resetLabelKey | translate }}\n } @else {\n {{ resetLabel }}\n }\n </button>\n }\n </div>\n\n <div class=\"solaris-filter-field__body\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-filter-panel-chips]',\n standalone: true,\n})\nexport class SolarisFilterPanelChipsDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n Output,\n computed,\n signal,\n} from '@angular/core';\n\nimport { SolarisFilterPanelFooterDirective } from '../../../directives/filter-panel-footer.directive';\nimport { SolarisDrawerFooterDirective } from '../../../../../layouts/drawer/directives/drawer-footer.directive';\nimport { SolarisDrawerHeaderDirective } from '../../../../../layouts/drawer/directives/drawer-header.directive';\nimport { SolarisFilterPanelChipsDirective } from '../../../directives/filter-panel-chips.directive';\nimport { SolarisButtonDirective } from '../../../../../actions/button/directives/button.directive';\nimport { SolarisFilterPanelRadius } from '../../../model/filter-panel/filter-panel.type';\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\nimport { SolarisDrawer } from '../../../../../layouts/drawer/component/drawer';\n\n@Component({\n selector: 'solaris-filter-panel',\n standalone: true,\n imports: [\n SolarisTranslationPipe,\n SolarisButtonDirective,\n SolarisDrawerHeaderDirective,\n SolarisDrawerFooterDirective,\n SolarisDrawer,\n ],\n templateUrl: './filter-panel.html',\n styleUrls: ['./filter-panel.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-filter-panel-host' },\n})\nexport class SolarisFilterPanel {\n @Input() count = 0;\n @Input() labelKey = '';\n @Input() titleKey = '';\n @Input() disabled = false;\n @Input() drawerSide: 'right' | 'left' = 'right';\n @Input() radius: SolarisFilterPanelRadius = 'sm';\n @Input() drawerWidth: string = 'min(30rem, 92vw)';\n @Input() label = 'ui.solaris.tables.filter.filters';\n @Input() title = 'ui.solaris.tables.filter.filters';\n\n private readonly _internalOpen = signal(false);\n private readonly _openInput = signal<boolean | null>(null);\n private readonly _chipsSlot = signal<SolarisFilterPanelChipsDirective | null>(null);\n\n @Input() set open(v: boolean | null) {\n this._openInput.set(v);\n }\n get open(): boolean | null {\n return this._openInput();\n }\n\n readonly isOpen = computed(() => {\n const v = this._openInput();\n return typeof v === 'boolean' ? v : this._internalOpen();\n });\n\n @Output() apply = new EventEmitter<void>();\n @Output() clearAll = new EventEmitter<void>();\n @Output() openChange = new EventEmitter<boolean>();\n\n @ContentChild(SolarisFilterPanelFooterDirective) footerSlot?: SolarisFilterPanelFooterDirective;\n @ContentChild(SolarisFilterPanelChipsDirective) set chipsSlot(\n v: SolarisFilterPanelChipsDirective | undefined,\n ) {\n this._chipsSlot.set(v ?? null);\n }\n\n readonly hasChips = computed(() => !!this._chipsSlot());\n get hasCustomFooter(): boolean {\n return !!this.footerSlot;\n }\n\n setOpen(next: boolean) {\n if (this.disabled) return;\n if (next === this.isOpen()) return;\n\n this.openChange.emit(next);\n if (typeof this._openInput() !== 'boolean') this._internalOpen.set(next);\n }\n\n toggle() {\n this.setOpen(!this.isOpen());\n }\n}\n","<button\n type=\"button\"\n class=\"solaris-filter-panel__trigger\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n [attr.data-radius]=\"radius\"\n>\n <i class=\"ph ph-sliders-horizontal\"></i>\n\n @if (labelKey) {\n {{ labelKey | translate }}\n } @else {\n {{ label | translate }}\n }\n\n @if (count > 0) {\n <span class=\"solaris-filter-panel__count\">{{ count }}</span>\n }\n</button>\n\n<solaris-drawer\n [open]=\"isOpen()\"\n (openChange)=\"setOpen($event)\"\n [side]=\"drawerSide\"\n [width]=\"drawerWidth\"\n [backdrop]=\"true\"\n [closeOnEscape]=\"true\"\n [closeOnOutsideClick]=\"true\"\n [lockScroll]=\"true\"\n [restoreFocus]=\"true\"\n [trapFocus]=\"true\"\n panelClass=\"solaris-filter-panel__drawer\"\n>\n <div solaris-drawer-header class=\"solaris-filter-panel__header\">\n <div class=\"solaris-filter-panel__title\">\n @if (titleKey) {\n {{ titleKey | translate }}\n } @else {\n {{ title | translate }}\n }\n </div>\n\n <button type=\"button\" class=\"solaris-filter-panel__close\" (click)=\"setOpen(false)\">\n <i class=\"ph ph-x\"></i>\n </button>\n </div>\n\n @if (hasChips()) {\n <div class=\"solaris-filter-panel__chips\">\n <ng-content select=\"[solarisFilterPanelChips]\"></ng-content>\n </div>\n }\n\n <div class=\"solaris-filter-panel__content\">\n <ng-content></ng-content>\n </div>\n\n <footer solaris-drawer-footer class=\"solaris-filter-panel__footer\">\n <ng-content select=\"[solarisFilterPanelFooter]\"></ng-content>\n\n @if (!hasCustomFooter) {\n <div class=\"solaris-filter-panel__footer-default\">\n <button\n solaris-button\n color=\"surface\"\n variant=\"outline\"\n type=\"button\"\n (click)=\"clearAll.emit()\"\n >\n {{ 'ui.solaris.common.clearAll' | translate }}\n </button>\n\n <button solaris-button type=\"button\" (click)=\"apply.emit()\">\n {{ 'ui.solaris.common.apply' | translate }}\n </button>\n </div>\n }\n </footer>\n</solaris-drawer>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\nimport { SolarisRadiusPreset } from '../../../../../common/model/common-configurations.type';\n\n@Component({\n selector: 'solaris-filter-chip',\n standalone: true,\n imports: [SolarisTranslationPipe],\n templateUrl: './filter-chip.html',\n styleUrls: ['./filter-chip.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-filter-chip-host' },\n})\nexport class SolarisFilterChip {\n @Input() label = '';\n @Input() value = '';\n @Input() labelKey = '';\n @Input() valueKey = '';\n @Input() disabled = false;\n @Input() removable = true;\n @Input() radius: SolarisRadiusPreset = 'md';\n\n @Output() remove = new EventEmitter<void>();\n @Output() chipClick = new EventEmitter<void>();\n\n onRemoveClick(ev: MouseEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n if (!this.disabled) this.remove.emit();\n }\n}\n","<button\n type=\"button\"\n class=\"solaris-filter-chip\"\n [disabled]=\"disabled\"\n (click)=\"chipClick.emit()\"\n [attr.data-radius]=\"radius\"\n>\n <span class=\"solaris-filter-chip__label\">\n @if (labelKey) {\n {{ labelKey | translate }}\n } @else {\n {{ label }}\n }\n </span>\n\n <span class=\"solaris-filter-chip__value\">\n @if (valueKey) {\n {{ valueKey | translate }}\n } @else {\n {{ value }}\n }\n </span>\n\n @if (removable) {\n <span\n class=\"solaris-filter-chip__remove\"\n role=\"button\"\n tabindex=\"-1\"\n (click)=\"onRemoveClick($event)\"\n >\n <i class=\"ph ph-x\" aria-hidden=\"true\"></i>\n </span>\n }\n</button>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'solaris-table-skeleton',\n standalone: true,\n templateUrl: './table-skeleton.html',\n styleUrls: ['./table-skeleton.scss'],\n})\nexport class SolarisTableSkeleton {\n @Input() rows = 10;\n @Input() columns = 6;\n @Input() selectable = false;\n @Input() gridTemplateColumns = '';\n\n public rowsArray() {\n return Array.from({ length: this.rows }, (_, i) => i);\n }\n public colsArray() {\n return Array.from({ length: this.columns }, (_, i) => i);\n }\n}\n","<div class=\"solaris-table-skeleton\" role=\"status\" aria-live=\"polite\">\n @for (r of rowsArray(); track r) {\n <div class=\"solaris-table-skeleton__row\" [style.gridTemplateColumns]=\"gridTemplateColumns\">\n @for (c of colsArray(); track c; let i = $index) {\n <div class=\"solaris-table-skeleton__cell\" [class.is-first]=\"i === 0\">\n @if (selectable && i === 0) {\n <span class=\"solaris-table-skeleton__select-prefix\">\n <span class=\"sk sk--circle\"></span>\n </span>\n }\n\n <span class=\"sk sk--line\"></span>\n </div>\n }\n </div>\n }\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'solaris-filter-bar',\n standalone: true,\n templateUrl: './filter-bar.html',\n styleUrls: ['./filter-bar.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-filter-bar' },\n})\nexport class SolarisFilterBar {}\n","<ng-content></ng-content>\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[solaris-column-cell]',\n standalone: true,\n})\nexport class SolarisColumnCellDef {\n constructor(public readonly template: TemplateRef<any>) {}\n}\n\n@Directive({\n selector: 'ng-template[solaris-column-header]',\n standalone: true,\n})\nexport class SolarisColumnHeaderDef {\n constructor(public readonly template: TemplateRef<any>) {}\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class SolarisIdGenerator {\n private readonly counters = new Map<string, number>();\n\n public next(prefix = 'solaris'): string {\n const current = this.counters.get(prefix) ?? 0;\n const next = current + 1;\n this.counters.set(prefix, next);\n return `${prefix}-${next}`;\n }\n}\n","import { booleanAttribute, Component, ContentChild, inject, Input } from '@angular/core';\n\nimport { SolarisColumnCellDef, SolarisColumnHeaderDef } from '../../directives/column.directive';\nimport { SolarisIdGenerator } from '../../../../common/service/id-generator.service';\nimport { SolarisAlign } from '../../model/table/table.types';\n\n@Component({\n selector: 'solaris-column',\n standalone: true,\n templateUrl: './table-column.html',\n styleUrls: ['./table-column.scss'],\n})\nexport class SolarisTableColumn {\n private readonly ids = inject(SolarisIdGenerator);\n readonly id = this.ids.next('solaris-column');\n\n @Input() field?: string;\n @Input() width?: string;\n @Input() header?: string;\n @Input() sortKey?: string;\n @Input() minWidth?: string;\n @Input() maxWidth?: string;\n @Input() headerKey?: string;\n @Input() headerIconClass?: string;\n @Input() align: SolarisAlign = 'start';\n @Input({ transform: booleanAttribute }) grow = false;\n @Input({ transform: booleanAttribute }) resizable = true;\n @Input({ transform: booleanAttribute }) sortable = false;\n\n @ContentChild(SolarisColumnCellDef) cellDef?: SolarisColumnCellDef;\n @ContentChild(SolarisColumnHeaderDef) headerDef?: SolarisColumnHeaderDef;\n}\n","","import { inject } from '@angular/core';\n\nimport { SolarisIdGenerator } from '../service/id-generator.service';\n\nexport function uniqueId(prefix: string): string {\n return inject(SolarisIdGenerator).next(prefix);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewChild,\n forwardRef,\n computed,\n effect,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {\n SolarisColorPreset,\n SolarisSizePreset,\n} from '../../../common/model/common-configurations.type';\nimport { CheckboxAppearance, CheckboxColorInput, CheckboxVariant } from '../model/checkbox.type';\nimport { uniqueId } from '../../../common/helper/unique-id';\n\nconst PRESET_COLORS = new Set<SolarisColorPreset>([\n 'primary',\n 'success',\n 'warning',\n 'error',\n 'info',\n]);\n\n@Component({\n selector: 'solaris-checkbox',\n standalone: true,\n templateUrl: './checkbox.html',\n styleUrls: ['./checkbox.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SolarisCheckbox),\n multi: true,\n },\n ],\n host: {\n class: 'solaris-checkbox-host',\n '[attr.data-size]': 'size()',\n '[attr.data-color]': 'colorKey()',\n '[attr.data-variant]': 'variant()',\n '[attr.data-appearance]': 'appearance()',\n '[style.--solaris-checkbox-ink]': 'ink()',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n '[style.--solaris-checkbox-custom]': 'customAccent()',\n },\n})\nexport class SolarisCheckbox implements ControlValueAccessor {\n readonly indeterminate = input<boolean>(false);\n readonly ariaLabel = input<string | null>(null);\n readonly size = input<SolarisSizePreset>('md');\n readonly variant = input<CheckboxVariant>('square');\n readonly color = input<CheckboxColorInput>('primary');\n readonly inputId = input<string | null>(null, { alias: 'id' });\n readonly appearance = input<CheckboxAppearance>('solid');\n readonly checkColor = input<CheckboxColorInput | null>(null);\n\n readonly checked = signal(false);\n readonly disabled = signal(false);\n readonly checkedChange = output<boolean>();\n readonly indeterminateChange = output<boolean>();\n\n @ViewChild('native', { static: true })\n private readonly native?: ElementRef<HTMLInputElement>;\n\n readonly customAccent = computed(() => {\n if (this.colorKey() !== 'custom') return null;\n const raw = String(this.color() ?? '').trim();\n return !raw || raw === 'custom' ? null : raw;\n });\n readonly colorKey = computed(() => {\n const raw = String(this.color() ?? '').trim();\n if (!raw || raw === 'custom') return 'custom';\n return PRESET_COLORS.has(raw as SolarisColorPreset) ? (raw as SolarisColorPreset) : 'custom';\n });\n private readonly autoId = uniqueId('solaris-checkbox');\n readonly id = computed(() => this.inputId() ?? this.autoId);\n readonly ink = computed(() => resolveColor(this.checkColor(), null));\n\n private onChange: (value: boolean) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor() {\n effect(() => {\n const el = this.native?.nativeElement;\n if (!el) return;\n el.indeterminate = this.indeterminate();\n });\n }\n\n public onNativeChange(next: boolean) {\n if (this.indeterminate()) this.indeterminateChange.emit(false);\n\n this.checked.set(next);\n this.onChange(next);\n this.checkedChange.emit(next);\n this.onTouched();\n }\n\n public onBlur() {\n this.onTouched();\n }\n\n writeValue(value: boolean | null): void {\n this.checked.set(!!value);\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n}\n\nfunction resolveColor(\n v: CheckboxColorInput | null | undefined,\n fallback: string | null,\n): string | null {\n const s = v == null ? '' : String(v).trim();\n if (!s || s === 'custom') return fallback;\n if (PRESET_COLORS.has(s as SolarisColorPreset)) return `var(--solaris-color-${s})`;\n return s;\n}\n","<label class=\"solaris-checkbox\">\n <input\n #native\n class=\"solaris-checkbox__native\"\n type=\"checkbox\"\n [attr.id]=\"id()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : checked() ? 'true' : 'false'\"\n (change)=\"onNativeChange(native.checked)\"\n (blur)=\"onBlur()\"\n />\n\n <span class=\"solaris-checkbox__control\" aria-hidden=\"true\">\n @if (variant() === 'icon') {\n <span class=\"solaris-checkbox__dot\" aria-hidden=\"true\"></span>\n } @else {\n <i\n class=\"ph solaris-checkbox__icon\"\n [class.ph-check]=\"!indeterminate()\"\n [class.ph-minus]=\"indeterminate()\"\n aria-hidden=\"true\"\n ></i>\n }\n </span>\n\n @if (variant() !== 'icon') {\n <span class=\"solaris-checkbox__content\"><ng-content /></span>\n }\n</label>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n Output,\n QueryList,\n signal,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport {\n SolarisPageChange,\n SolarisRowKey,\n SolarisSort,\n SolarisTableVariant,\n} from '../../model/table/table.types';\nimport { SolarisCheckbox } from '../../../../actions/checkbox/component/checkbox';\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\nimport { SolarisTableSkeleton } from '../skeleton/table-skeleton';\nimport { SolarisTableColumn } from '../column/table-column';\n\n@Component({\n selector: 'solaris-table',\n standalone: true,\n imports: [\n FormsModule,\n SolarisCheckbox,\n NgTemplateOutlet,\n SolarisTableSkeleton,\n SolarisTranslationPipe,\n ],\n templateUrl: './table.html',\n styleUrls: ['./table.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'solaris-table-host',\n '[attr.data-scroll]': 'needsScroll() ? \"true\" : null',\n },\n})\nexport class SolarisTable implements AfterContentInit, OnChanges {\n private readonly destroyRef: DestroyRef = inject(DestroyRef);\n\n @Input() length = 0;\n @Input() pageIndex = 0;\n @Input() pageSize = 10;\n @Input() rowsCount = 0;\n @Input() loading = false;\n @Input() sort: SolarisSort[] = [];\n @Input() selectable = false;\n @Input() tableDescription = '';\n @Input() selection: SolarisRowKey[] = [];\n @Input() variant: SolarisTableVariant = 'grid';\n @Input() emptyIconClass = 'ph ph-database';\n @Input() pageSizeOptions: number[] = [10, 20, 50];\n @Input() emptyTextKey = 'ui.solaris.table.empty';\n\n @Output() sortChange = new EventEmitter<SolarisSort[]>();\n @Output() pageChange = new EventEmitter<SolarisPageChange>();\n @Output() selectionChange = new EventEmitter<SolarisRowKey[]>();\n\n @ContentChildren(SolarisTableColumn) private readonly columnQuery!: QueryList<SolarisTableColumn>;\n @ViewChild('tableRoot', { static: true }) private readonly tableRoot!: ElementRef<HTMLElement>;\n\n readonly needsScroll = signal(false);\n readonly measuredReady = signal(false);\n readonly sortState = signal<SolarisSort[]>([]);\n private readonly measuredPx = signal<number[]>([]);\n readonly columns = signal<SolarisTableColumn[]>([]);\n private readonly selectionSig = signal<SolarisRowKey[]>([]);\n private readonly rowKeys = signal<Set<SolarisRowKey>>(new Set());\n private readonly manualPx = signal<Record<number, number>>({});\n private readonly selectionSetSig = computed(() => new Set(this.selectionSig()));\n\n readonly selectAllChecked = computed(() => {\n const keys = Array.from(this.rowKeys());\n if (!keys.length) return false;\n const sel = this.selectionSetSig();\n return keys.every((k) => sel.has(k));\n });\n readonly selectAllIndeterminate = computed(() => {\n const keys = Array.from(this.rowKeys());\n if (!keys.length) return false;\n const sel = this.selectionSetSig();\n const any = keys.some((k) => sel.has(k));\n return any && !this.selectAllChecked();\n });\n readonly selectedCount = computed(() => this.selectionSig().length);\n readonly gridTemplateColumns = computed(() => this.buildGridTemplateColumns());\n\n private rafId: number | null = null;\n private resizeObserver?: ResizeObserver;\n\n get rangeStart(): number {\n if (!this.length) return 0;\n return this.pageIndex * this.pageSize + 1;\n }\n\n get rangeEnd(): number {\n if (!this.length) return 0;\n return Math.min(this.length, (this.pageIndex + 1) * this.pageSize);\n }\n\n get totalPages(): number {\n return Math.max(1, Math.ceil((this.length || 0) / (this.pageSize || 1)));\n }\n\n ngAfterContentInit(): void {\n this.syncColumns();\n this.selectionSig.set(this.selection ?? []);\n this.sortState.set(this.sort ?? []);\n\n this.columnQuery.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.syncColumns();\n this.scheduleMeasure();\n });\n\n this.resizeObserver = new ResizeObserver(() => this.scheduleMeasure());\n this.resizeObserver.observe(this.tableRoot.nativeElement);\n this.destroyRef.onDestroy(() => this.resizeObserver?.disconnect());\n\n const fonts = (document as any).fonts;\n if (fonts?.ready?.then) fonts.ready.then(() => this.scheduleMeasure());\n\n this.scheduleMeasure();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['sort']) this.sortState.set(this.sort ?? []);\n if (changes['selection']) this.selectionSig.set(this.selection ?? []);\n\n if (\n changes['variant'] ||\n changes['rowsCount'] ||\n changes['pageIndex'] ||\n changes['pageSize'] ||\n changes['loading']\n ) {\n this.scheduleMeasure();\n }\n }\n\n private syncColumns(): void {\n this.columns.set(this.columnQuery?.toArray() ?? []);\n }\n\n private scheduleMeasure(): void {\n if (this.loading) return;\n\n if (this.rafId != null) cancelAnimationFrame(this.rafId);\n this.rafId = requestAnimationFrame(() => {\n this.rafId = null;\n this.measureColumns();\n });\n }\n\n private measureColumns(): void {\n const root = this.tableRoot?.nativeElement;\n if (!root) return;\n\n const cols = this.columns();\n if (!cols.length) return;\n\n const isGrid = this.variant === 'grid';\n const borderPx = isGrid ? 2 : 0;\n const safetyPx = isGrid ? 2 : 0;\n const perColOverhead = borderPx + safetyPx;\n\n const widths: number[] = [];\n\n for (let i = 0; i < cols.length; i++) {\n const col = cols[i];\n\n if (col.width) {\n widths[i] = -1;\n continue;\n }\n\n const manual = this.manualPx()[i];\n if (manual != null) {\n widths[i] = manual;\n continue;\n }\n\n const headerCell = root.querySelector<HTMLElement>(\n `.solaris-table__row--header [data-col-idx=\"${i}\"]`,\n );\n const bodyCells = Array.from(\n root.querySelectorAll<HTMLElement>(`.solaris-table__body [data-col-idx=\"${i}\"]`),\n );\n\n const headerW = headerCell ? this.measureHeaderCellWidth(headerCell) : 0;\n const bodyW = this.measureBodyCellsWidth(bodyCells);\n\n const cap = this.toPx(col.maxWidth ?? '18rem', root);\n const ideal = Math.max(headerW, bodyW);\n const withOverhead = ideal + perColOverhead;\n\n const min = col.minWidth ? this.toPx(col.minWidth, root) : 40;\n\n widths[i] = Math.max(min, Math.min(withOverhead, cap));\n }\n\n this.measuredPx.set(widths);\n this.measuredReady.set(true);\n this.updateScrollFlag();\n }\n\n private measureHeaderCellWidth(cell: HTMLElement): number {\n const root = this.tableRoot?.nativeElement;\n if (!root) return 0;\n\n const clone = cell.cloneNode(true) as HTMLElement;\n\n clone.style.position = 'absolute';\n clone.style.left = '-99999px';\n clone.style.top = '0';\n clone.style.visibility = 'hidden';\n clone.style.pointerEvents = 'none';\n clone.style.width = 'max-content';\n clone.style.maxWidth = 'none';\n\n const resizer = clone.querySelector<HTMLElement>('.solaris-table__col-resizer');\n if (resizer) resizer.style.display = 'none';\n\n const headerContent = clone.querySelector<HTMLElement>('.solaris-table__header-content');\n if (headerContent) {\n headerContent.style.width = 'max-content';\n headerContent.style.justifyContent = 'flex-start';\n }\n\n const left = clone.querySelector<HTMLElement>('.solaris-table__header-left');\n if (left) {\n left.style.overflow = 'visible';\n left.style.maxWidth = 'none';\n left.style.minWidth = '0';\n }\n\n const text = clone.querySelector<HTMLElement>('.solaris-table__header-text');\n if (text) {\n text.style.maxWidth = 'none';\n text.style.overflow = 'visible';\n text.style.textOverflow = 'clip';\n text.style.whiteSpace = 'nowrap';\n text.style.display = 'inline-block';\n }\n\n const sortBtn = clone.querySelector<HTMLElement>('.solaris-table__sort-btn');\n if (sortBtn) sortBtn.style.width = 'max-content';\n\n root.appendChild(clone);\n const w = clone.getBoundingClientRect().width;\n clone.remove();\n\n return Math.ceil(w);\n }\n\n private measureBodyCellsWidth(cells: HTMLElement[]): number {\n let max = 0;\n for (const cell of cells) max = Math.max(max, this.measureBodyCellWidth(cell));\n return max;\n }\n\n private measureBodyCellWidth(cell: HTMLElement): number {\n const style = getComputedStyle(cell);\n const pad =\n Number.parseFloat(style.paddingLeft || '0') + Number.parseFloat(style.paddingRight || '0');\n\n const prefix = cell.querySelector<HTMLElement>('.solaris-row__select-prefix');\n const content = cell.querySelector<HTMLElement>('.solaris-row__content');\n\n const prefixW = prefix?.scrollWidth ?? 0;\n const contentW = content?.scrollWidth ?? cell.scrollWidth;\n\n const gap = prefix ? 12 : 0;\n return pad + prefixW + gap + contentW;\n }\n\n private toPx(value: string, base: HTMLElement): number {\n const v = value.trim();\n if (v.endsWith('px')) return Number.parseFloat(v);\n if (v.endsWith('rem'))\n return (\n Number.parseFloat(v) *\n Number.parseFloat(getComputedStyle(document.documentElement).fontSize)\n );\n if (v.endsWith('em'))\n return Number.parseFloat(v) * Number.parseFloat(getComputedStyle(base).fontSize);\n const n = Number.parseFloat(v);\n return Number.isFinite(n) ? n : 280;\n }\n\n private updateScrollFlag(): void {\n const root = this.tableRoot?.nativeElement;\n if (!root) return;\n\n requestAnimationFrame(() => {\n const needs = root.scrollWidth > root.clientWidth + 1;\n this.needsScroll.set(needs);\n });\n }\n\n private clamp(n: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, n));\n }\n\n public clearManualWidth(i: number): void {\n const next = { ...this.manualPx() };\n delete next[i];\n this.manualPx.set(next);\n this.scheduleMeasure();\n }\n\n public onResizeStart(ev: PointerEvent, i: number): void {\n ev.preventDefault();\n ev.stopPropagation();\n\n const root = this.tableRoot?.nativeElement;\n if (!root) return;\n\n const headerCell = this.getHeaderCell(i);\n if (!headerCell) return;\n\n const cols = this.columns();\n const col = cols[i];\n if (!col || col.width || !col.resizable) return;\n\n const startX = ev.clientX;\n const startW = this.manualPx()[i] ?? Math.round(headerCell.getBoundingClientRect().width);\n\n const min = col.minWidth ? this.toPx(col.minWidth, root) : 40;\n const hardMax = col.maxWidth ? this.toPx(col.maxWidth, root) : 9999;\n const maxSafe = this.computeResizeMax(i, min, hardMax, root);\n\n root.classList.add('is-resizing');\n (ev.target as HTMLElement).setPointerCapture?.(ev.pointerId);\n\n const onMove = (e: PointerEvent) => {\n const dx = e.clientX - startX;\n const nextW = this.clamp(Math.round(startW + dx), min, maxSafe);\n const cur = this.manualPx();\n if (cur[i] === nextW) return;\n this.manualPx.set({ ...cur, [i]: nextW });\n };\n\n const cleanup = () => {\n root.classList.remove('is-resizing');\n globalThis.removeEventListener('pointermove', onMove);\n globalThis.removeEventListener('pointerup', cleanup);\n globalThis.removeEventListener('pointercancel', cleanup);\n };\n\n globalThis.addEventListener('pointermove', onMove);\n globalThis.addEventListener('pointerup', cleanup);\n globalThis.addEventListener('pointercancel', cleanup);\n }\n\n private getHeaderCell(i: number): HTMLElement | null {\n const root = this.tableRoot?.nativeElement;\n if (!root) return null;\n return root.querySelector<HTMLElement>(`.solaris-table__row--header [data-col-idx=\"${i}\"]`);\n }\n\n private pxMinWidth(c: SolarisTableColumn, root: HTMLElement): number {\n return c.minWidth ? this.toPx(c.minWidth, root) : 0;\n }\n\n private pxFixedWidth(c: SolarisTableColumn, root: HTMLElement): number | null {\n if (!c.width) return null;\n const w = c.width.trim();\n if (w.endsWith('px') || w.endsWith('rem') || w.endsWith('em')) return this.toPx(w, root);\n const n = Number.parseFloat(w);\n return Number.isFinite(n) ? n : null;\n }\n\n private reservedWidthExcept(i: number, root: HTMLElement): number {\n const cols = this.columns();\n const manualMap = this.manualPx();\n\n let reserved = 0;\n\n for (let j = 0; j < cols.length; j++) {\n if (j === i) continue;\n const c = cols[j];\n\n if (c.width) {\n const px = this.pxFixedWidth(c, root);\n if (px != null) {\n reserved += px;\n continue;\n }\n\n const cell = this.getHeaderCell(j);\n reserved += Math.round(cell?.getBoundingClientRect().width ?? 48);\n continue;\n }\n\n const manual = manualMap[j];\n if (manual != null) {\n reserved += manual;\n continue;\n }\n\n if (c.grow) {\n reserved += this.pxMinWidth(c, root);\n continue;\n }\n\n reserved += 48;\n }\n\n return reserved;\n }\n\n public readField(row: any, path?: string): any {\n if (!path) return '';\n const parts = path.split('.');\n let cur = row;\n\n for (const p of parts) {\n if (cur == null) return '';\n cur = cur[p];\n }\n\n return cur ?? '';\n }\n\n private computeResizeMax(i: number, min: number, hardMax: number, root: HTMLElement): number {\n const available = root.clientWidth;\n const reserved = this.reservedWidthExcept(i, root);\n\n const safety = 8;\n const fitMax = Math.max(min, Math.floor(available - reserved - safety));\n\n return Math.max(min, Math.min(hardMax, fitMax));\n }\n\n public registerRowKey(key: SolarisRowKey): void {\n const next = new Set(this.rowKeys());\n next.add(key);\n this.rowKeys.set(next);\n }\n\n public unregisterRowKey(key: SolarisRowKey): void {\n const next = new Set(this.rowKeys());\n next.delete(key);\n this.rowKeys.set(next);\n }\n\n public onToggleSelectAll(checked: boolean): void {\n const keys = Array.from(this.rowKeys());\n const sel = new Set(this.selectionSig());\n\n if (checked) keys.forEach((k) => sel.add(k));\n else keys.forEach((k) => sel.delete(k));\n\n const out = Array.from(sel);\n this.selectionSig.set(out);\n this.selectionChange.emit(out);\n }\n\n public toggleRow(key: SolarisRowKey, checked: boolean): void {\n const sel = new Set(this.selectionSig());\n if (checked) sel.add(key);\n else sel.delete(key);\n\n const out = Array.from(sel);\n this.selectionSig.set(out);\n this.selectionChange.emit(out);\n }\n\n public isSelected(key: SolarisRowKey): boolean {\n return this.selectionSetSig().has(key);\n }\n\n public getSortFor(col: SolarisTableColumn): SolarisSort | undefined {\n const key = col.sortKey ?? col.field;\n if (!key) return undefined;\n return this.sortState().find((s) => s.key === key);\n }\n\n public onHeaderSortClick(ev: MouseEvent, col: SolarisTableColumn): void {\n ev.stopPropagation();\n\n if (!col.sortable) return;\n\n const key = col.sortKey ?? col.field;\n if (!key) return;\n\n const multi = ev.shiftKey;\n let next = [...this.sortState()];\n\n if (!multi) next = next.filter((s) => s.key === key);\n\n const idx = next.findIndex((s) => s.key === key);\n if (idx === -1) next.push({ key, direction: 'asc', order: next.length + 1 });\n else {\n const cur = next[idx];\n if (cur.direction === 'asc') next[idx] = { ...cur, direction: 'desc' };\n else next.splice(idx, 1);\n }\n\n next = next.map((s, k) => ({ ...s, order: k + 1 }));\n this.sortState.set(next);\n this.sortChange.emit(next);\n }\n\n public ariaSort(col: SolarisTableColumn): 'none' | 'ascending' | 'descending' {\n const s = this.getSortFor(col);\n if (!s) return 'none';\n return s.direction === 'asc' ? 'ascending' : 'descending';\n }\n\n public firstPage(): void {\n this.pageChange.emit({ pageIndex: 0, pageSize: this.pageSize });\n }\n public prevPage(): void {\n this.pageChange.emit({ pageIndex: Math.max(0, this.pageIndex - 1), pageSize: this.pageSize });\n }\n public nextPage(): void {\n this.pageChange.emit({\n pageIndex: Math.min(this.totalPages - 1, this.pageIndex + 1),\n pageSize: this.pageSize,\n });\n }\n public lastPage(): void {\n this.pageChange.emit({ pageIndex: this.totalPages - 1, pageSize: this.pageSize });\n }\n public changePageSize(size: number): void {\n this.pageChange.emit({ pageIndex: 0, pageSize: size });\n }\n\n private buildGridTemplateColumns(): string {\n const cols = this.columns();\n const measured = this.measuredPx();\n const root = this.tableRoot?.nativeElement;\n\n const minPx = (c: SolarisTableColumn) => (root && c.minWidth ? this.toPx(c.minWidth, root) : 0);\n const fixedWidthPx = (c: SolarisTableColumn): number | null => {\n if (!root || !c.width) return null;\n const w = c.width.trim();\n if (w.endsWith('px') || w.endsWith('rem') || w.endsWith('em')) return this.toPx(w, root);\n const n = Number.parseFloat(w);\n return Number.isFinite(n) ? n : null;\n };\n\n if (!measured.length || measured.length !== cols.length) {\n return cols\n .map((c) => {\n if (c.width) return c.width;\n if (c.grow) return `minmax(${minPx(c)}px, 1fr)`;\n if (root && c.maxWidth) {\n const cap = this.toPx(c.maxWidth, root);\n return `minmax(0px, ${cap}px)`;\n }\n return 'minmax(0px, 1fr)';\n })\n .join(' ');\n }\n\n const available = root?.clientWidth ?? 0;\n\n const rawPx: number[] = [];\n const growMinSum = cols.reduce((acc, c) => acc + (c.grow ? minPx(c) : 0), 0);\n\n let fixedSum = 0;\n\n for (let i = 0; i < cols.length; i++) {\n const c = cols[i];\n\n if (c.width) {\n const px = fixedWidthPx(c);\n rawPx[i] = px ?? 0;\n fixedSum += px ?? 0;\n continue;\n }\n\n if (c.grow) {\n rawPx[i] = 0;\n continue;\n }\n\n const manual = this.manualPx()[i];\n const px = manual ?? (measured[i] > 0 ? measured[i] : 180);\n rawPx[i] = px;\n fixedSum += px;\n }\n\n if (!available) {\n return cols\n .map((c, i) => {\n if (c.width) return c.width;\n if (c.grow) return `minmax(${minPx(c)}px, 1fr)`;\n return `${rawPx[i]}px`;\n })\n .join(' ');\n }\n\n const fixedBudget = Math.max(0, available - growMinSum);\n const scale = fixedSum > fixedBudget && fixedSum > 0 ? fixedBudget / fixedSum : 1;\n\n return cols\n .map((c, i) => {\n if (c.width) {\n return c.width;\n }\n\n if (c.grow) {\n const min = minPx(c);\n return `minmax(${min}px, 1fr)`;\n }\n\n const px = Math.max(48, Math.floor(rawPx[i] * scale));\n return `${px}px`;\n })\n .join(' ');\n }\n}\n","<ng-content select=\"solaris-table-filters\"></ng-content>\n\n<div\n class=\"solaris-table\"\n [class.solaris-table--grid]=\"variant === 'grid'\"\n [class.solaris-table--zebra]=\"variant === 'zebra'\"\n>\n <div #tableRoot class=\"solaris-table__inner\" role=\"table\" [attr.aria-rowcount]=\"rowsCount\">\n <div class=\"solaris-table__header\" role=\"rowgroup\">\n <div\n class=\"solaris-table__row solaris-table__row--header\"\n role=\"row\"\n [style.gridTemplateColumns]=\"gridTemplateColumns()\"\n >\n @for (col of columns(); track col.id; let i = $index) {\n <div\n class=\"solaris-table__cell solaris-table__cell--header\"\n role=\"columnheader\"\n [attr.data-col-idx]=\"i\"\n [attr.aria-sort]=\"ariaSort(col)\"\n [style.--solaris-col-max]=\"col.maxWidth || null\"\n >\n <div class=\"solaris-table__header-content\">\n <span class=\"solaris-table__header-left\">\n @if (selectable && i === 0) {\n <span class=\"solaris-table__select-prefix\" (click)=\"$event.stopPropagation()\">\n <solaris-checkbox\n variant=\"square\"\n color=\"primary\"\n size=\"sm\"\n [ngModel]=\"selectAllChecked()\"\n (ngModelChange)=\"onToggleSelectAll($event)\"\n [indeterminate]=\"selectAllIndeterminate()\"\n >\n </solaris-checkbox>\n </span>\n }\n\n @if (col.headerIconClass) {\n <i [class]=\"col.headerIconClass\"></i>\n }\n\n @if (col.headerDef?.template) {\n <ng-container [ngTemplateOutlet]=\"col.headerDef?.template\"></ng-container>\n } @else {\n @if (col.headerKey) {\n <span class=\"solaris-table__header-text\">{{ col.headerKey | translate }}</span>\n } @else {\n <span class=\"solaris-table__header-text\">{{ col.header }}</span>\n }\n }\n </span>\n\n @if (col.sortable) {\n <button\n type=\"button\"\n class=\"solaris-table__sort-btn\"\n (click)=\"onHeaderSortClick($event, col)\"\n >\n <span class=\"solaris-table__sort\">\n <i\n class=\"ph ph-arrow-up\"\n [class.is-active]=\"getSortFor(col)?.direction === 'asc'\"\n ></i>\n <i\n class=\"ph ph-arrow-down\"\n [class.is-active]=\"getSortFor(col)?.direction === 'desc'\"\n ></i>\n\n @if (getSortFor(col)?.order && sortState().length > 1) {\n <span class=\"solaris-table__sort-order\">{{ getSortFor(col)!.order }}</span>\n }\n </span>\n </button>\n }\n </div>\n\n @if (col.resizable && !col.width) {\n <span\n class=\"solaris-table__col-resizer\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n (pointerdown)=\"onResizeStart($event, i)\"\n (dblclick)=\"clearManualWidth(i)\"\n (click)=\"$event.stopPropagation()\"\n >\n </span>\n }\n </div>\n }\n </div>\n </div>\n\n <div class=\"solaris-table__body\" role=\"rowgroup\">\n @if (loading) {\n <solaris-table-skeleton\n [rows]=\"pageSize\"\n [columns]=\"columns().length\"\n [selectable]=\"selectable\"\n [gridTemplateColumns]=\"gridTemplateColumns()\"\n >\n </solaris-table-skeleton>\n } @else {\n @if (rowsCount === 0) {\n <div class=\"solaris-table__empty\" role=\"row\">\n <i [class]=\"emptyIconClass\"></i>\n <div class=\"solaris-table__empty-text\">{{ 'ui.solaris.tables.empty' | translate }}</div>\n </div>\n } @else {\n <ng-content select=\"solaris-row\"></ng-content>\n }\n }\n </div>\n\n <div class=\"solaris-table__footer\" role=\"rowgroup\">\n <div class=\"solaris-table__footer-left\">\n @if (selectedCount() > 0) {\n <div class=\"solaris-table__selected\">\n {{ selectedCount() }} {{ 'ui.solaris.tables.selection.selected' | translate }}\n </div>\n } @else if (tableDescription != null) {\n <div class=\"solaris-table__description\">\n {{ tableDescription }}\n </div>\n }\n </div>\n\n <div class=\"solaris-table__footer-right\">\n <div class=\"solaris-table__rows-per-page\">\n <span>{{ 'ui.solaris.tables.pagination.rowsPerPage' | translate }}:</span>\n <select [ngModel]=\"pageSize\" (ngModelChange)=\"changePageSize($event)\">\n @for (opt of pageSizeOptions; track opt) {\n <option [ngValue]=\"opt\">{{ opt }}</option>\n }\n </select>\n </div>\n\n <div class=\"solaris-table__range\">\n {{ rangeStart }}–{{ rangeEnd }} {{ 'ui.solaris.common.of' | translate }} {{ length }}\n </div>\n\n <div class=\"solaris-table__pager\">\n <button type=\"button\" (click)=\"firstPage()\" [disabled]=\"pageIndex === 0\">\n <i class=\"ph ph-caret-line-left\"></i>\n </button>\n <button type=\"button\" (click)=\"prevPage()\" [disabled]=\"pageIndex === 0\">\n <i class=\"ph ph-caret-left\"></i>\n </button>\n <button type=\"button\" (click)=\"nextPage()\" [disabled]=\"pageIndex >= totalPages - 1\">\n <i class=\"ph ph-caret-right\"></i>\n </button>\n <button type=\"button\" (click)=\"lastPage()\" [disabled]=\"pageIndex >= totalPages - 1\">\n <i class=\"ph ph-caret-line-right\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Host,\n Input,\n OnInit,\n Optional,\n inject,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { SolarisCheckbox } from '../../../../actions/checkbox/component/checkbox';\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\nimport { SolarisRowKey } from '../../model/table/table.types';\nimport { SolarisTable } from '../table/table';\n\n@Component({\n selector: 'solaris-row',\n standalone: true,\n imports: [FormsModule, SolarisCheckbox, SolarisTranslationPipe, NgTemplateOutlet],\n templateUrl: './table-row.html',\n styleUrls: ['./table-row.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-row-host' },\n})\nexport class SolarisRowComponent implements OnInit {\n private readonly destroyRef = inject(DestroyRef);\n\n @Input() rowKey!: SolarisRowKey;\n @Input({ required: true }) value!: any;\n\n constructor(@Optional() @Host() public readonly table: SolarisTable) {}\n\n ngOnInit(): void {\n if (!this.table) {\n throw new Error('<solaris-row> deve ser usado dentro de <solaris-table>.');\n }\n\n if (this.table.selectable && (this.rowKey === null || this.rowKey === undefined)) {\n throw new Error('Quando selectable=true, <solaris-row> exige [rowKey].');\n }\n\n if (this.table.selectable) {\n this.table.registerRowKey(this.rowKey);\n this.destroyRef.onDestroy(() => this.table.unregisterRowKey(this.rowKey));\n }\n }\n\n get isSelected(): boolean {\n return this.table.isSelected(this.rowKey);\n }\n}\n","<div\n class=\"solaris-row\"\n role=\"row\"\n [attr.aria-selected]=\"isSelected\"\n [class.is-selected]=\"isSelected\"\n [style.gridTemplateColumns]=\"table.gridTemplateColumns()\"\n>\n @for (col of table.columns(); track col.id; let i = $index) {\n <div\n class=\"solaris-row__cell\"\n role=\"cell\"\n [attr.data-col-idx]=\"i\"\n [class.align-end]=\"col.align === 'end'\"\n [class.align-center]=\"col.align === 'center'\"\n [style.--solaris-col-max]=\"col.maxWidth || null\"\n >\n @if (table.selectable && i === 0) {\n <span class=\"solaris-row__select-prefix\">\n <solaris-checkbox\n variant=\"square\"\n color=\"primary\"\n size=\"sm\"\n [ngModel]=\"isSelected\"\n (ngModelChange)=\"table.toggleRow(rowKey, $event)\"\n [attr.aria-label]=\"'ui.solaris.tables.aria.selectRow' | translate\"\n />\n </span>\n }\n\n <span class=\"solaris-row__label\">\n @if (col.headerKey) {\n {{ col.headerKey | translate }}\n } @else {\n {{ col.header }}\n }\n </span>\n\n <span class=\"solaris-row__content\">\n @if (col.cellDef?.template) {\n <ng-container\n [ngTemplateOutlet]=\"col.cellDef!.template\"\n [ngTemplateOutletContext]=\"{ $implicit: value, row: value, col: col }\"\n />\n } @else {\n {{ table.readField(value, col.field) }}\n }\n </span>\n </div>\n }\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-header]',\n standalone: true,\n})\nexport class SolarisHeaderDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-footer]',\n standalone: true,\n})\nexport class SolarisFooterDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-body]',\n standalone: true,\n})\nexport class SolarisBodyDirective {}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { SolarisDivider } from '../../divider/component/divider';\n\n@Component({\n selector: 'solaris-page',\n standalone: true,\n imports: [NgClass, SolarisDivider],\n templateUrl: './page.html',\n styleUrls: ['./page.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'solaris-page-host',\n },\n})\nexport class SolarisPage {\n @Input() stickyHeader = false;\n @Input() container: 'contained' | 'fluid' = 'contained';\n}\n","<div class=\"solaris-page\" [ngClass]=\"['container-' + container]\">\n <header class=\"solaris-page__header\" [ngClass]=\"{ 'is-sticky': stickyHeader }\">\n <ng-content select=\"[solaris-header]\"></ng-content>\n @if (stickyHeader) {\n <solaris-divider class=\"solaris-page__header-divider\" />\n }\n </header>\n\n <main class=\"solaris-page__body\">\n <ng-content select=\"[solaris-body]\"></ng-content>\n </main>\n\n <footer class=\"solaris-page__footer\">\n <solaris-divider class=\"solaris-page__footer-divider\" />\n\n <div class=\"solaris-page__footer-content\">\n <ng-content select=\"[solaris-footer]\"></ng-content>\n </div>\n </footer>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-page-header-description]',\n standalone: true,\n})\nexport class SolarisPageHeaderDescriptionDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-page-header-breadcrumb]',\n standalone: true,\n})\nexport class SolarisPageHeaderBreadcrumbDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-page-header-title]',\n standalone: true,\n})\nexport class SolarisPageHeaderTitleDirective {}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'solaris-page-header-title',\n standalone: true,\n imports: [NgClass],\n templateUrl: './page-header-title.html',\n styleUrls: ['./page-header-title.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisPageHeaderTitle {\n @Input() title = '';\n @Input() overline?: string;\n @Input() description?: string;\n @Input() size: 'md' | 'lg' = 'lg';\n}\n","<div class=\"solaris-page-title\" [ngClass]=\"['size-' + size]\">\n @if (overline) {\n <div class=\"solaris-page-title__overline\">{{ overline }}</div>\n }\n\n <h1 class=\"solaris-page-title__title\">{{ title }}</h1>\n\n @if (description) {\n <p class=\"solaris-page-title__description\">{{ description }}</p>\n }\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-page-header-actions]',\n standalone: true,\n})\nexport class SolarisPageHeaderActionsDirective {}\n","import { ChangeDetectionStrategy, Component, ContentChild, Input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { SolarisPageHeaderDescriptionDirective } from '../directives/solaris-header-description.directive';\nimport { SolarisPageHeaderBreadcrumbDirective } from '../directives/solaris-header-breadcrumb.directive';\nimport { SolarisPageHeaderActionsDirective } from '../directives/solaris-header-actions.directive';\nimport { SolarisPageHeaderTitleDirective } from '../directives/solaris-header-title.directive';\nimport { SolarisSizePreset } from '../../../../common/model/common-configurations.type';\n\n@Component({\n selector: 'solaris-page-header',\n standalone: true,\n imports: [NgClass],\n templateUrl: './page-header.html',\n styleUrls: ['./page-header.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisPageHeader {\n @Input() layout: 'split' | 'stacked' = 'split';\n @Input() density: SolarisSizePreset = 'md';\n\n @ContentChild(SolarisPageHeaderTitleDirective) titleSlot?: SolarisPageHeaderTitleDirective;\n @ContentChild(SolarisPageHeaderActionsDirective) actionsSlot?: SolarisPageHeaderActionsDirective;\n @ContentChild(SolarisPageHeaderBreadcrumbDirective)\n breadcrumbSlot?: SolarisPageHeaderBreadcrumbDirective;\n @ContentChild(SolarisPageHeaderDescriptionDirective)\n descriptionSlot?: SolarisPageHeaderDescriptionDirective;\n}\n","<header class=\"solaris-page-header\" [ngClass]=\"['layout-' + layout, 'density-' + density]\">\n <div class=\"solaris-page-header__left\">\n <div class=\"solaris-page-header__breadcrumb\">\n <ng-content select=\"[solaris-page-header-breadcrumb]\" />\n </div>\n\n <div class=\"solaris-page-header__titles\">\n <div class=\"solaris-page-header__title-row\">\n <h1 class=\"solaris-page-header__title\">\n <span class=\"solaris-page-header__title-slot\">\n <ng-content select=\"[solaris-page-header-title]\" />\n </span>\n\n <span class=\"solaris-page-header__title-meta\">\n <ng-content select=\"[solaris-page-header-title-meta]\" />\n </span>\n </h1>\n\n <div class=\"solaris-page-header__title-meta\">\n <ng-content select=\"[solaris-page-header-title-meta]\" />\n </div>\n </div>\n\n <p class=\"solaris-page-header__description\">\n <ng-content select=\"[solaris-page-header-description]\" />\n </p>\n </div>\n </div>\n\n <div class=\"solaris-page-header__actions\">\n <ng-content select=\"[solaris-page-header-actions]\" />\n </div>\n</header>\n","import { Directive, HostBinding, Input } from '@angular/core';\n\nimport { SolarisRadiusInput } from '../model/button.type';\n\nfunction resolveRadius(v: SolarisRadiusInput): string {\n const s = String(v).trim();\n switch (s) {\n case 'none':\n return '0';\n case 'sm':\n return 'var(--solaris-radius-sm)';\n case 'md':\n return 'var(--solaris-radius-md, var(--solaris-radius-sm))';\n case 'lg':\n return 'var(--solaris-radius-lg, var(--solaris-radius-md, var(--solaris-radius-sm)))';\n case 'full':\n return 'var(--solaris-radius-full)';\n default:\n return s;\n }\n}\n\n@Directive({\n selector: '[solaris-button-group]',\n standalone: true,\n})\nexport class ButtonGroupDirective {\n private _radius: SolarisRadiusInput | null = null;\n\n @Input() set radius(v: SolarisRadiusInput | null | undefined) {\n this._radius = v == null || String(v).trim() === '' ? null : v;\n }\n\n @HostBinding('attr.solaris-button-group') readonly attr = '';\n @HostBinding('style.--solaris-button-group-radius') get groupRadius() {\n return this._radius ? resolveRadius(this._radius) : null;\n }\n}\n","import { InjectionToken, Signal } from '@angular/core';\n\nimport { RadioCompareWith } from '../model/radio.type';\nimport { SolarisRadio } from '../component/radio';\n\nexport interface SolarisRadioGroupApi {\n readonly name: Signal<string>;\n readonly disabled: Signal<boolean>;\n readonly compareWith: Signal<RadioCompareWith>;\n\n notifyTouched(): void;\n select(radio: SolarisRadio): void;\n isSelected(value: unknown): boolean;\n tabIndexFor(radio: SolarisRadio): number;\n handleKeydown(event: KeyboardEvent, current: SolarisRadio): void;\n}\n\nexport const SOLARIS_RADIO_GROUP = new InjectionToken<SolarisRadioGroupApi>('SOLARIS_RADIO_GROUP');\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewChild,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {\n SolarisSizePreset,\n SolarisColorPreset,\n} from '../../../common/model/common-configurations.type';\nimport { RadioAppearance, RadioColorInput, RadioVariant } from '../model/radio.type';\nimport { SOLARIS_RADIO_GROUP } from '../token/radio-group.token';\nimport { uniqueId } from '../../../common/helper/unique-id';\n\nconst PRESET_COLORS = new Set<SolarisColorPreset>([\n 'primary',\n 'success',\n 'warning',\n 'error',\n 'info',\n]);\n\n@Component({\n selector: 'solaris-radio',\n standalone: true,\n templateUrl: './radio.html',\n styleUrls: ['./radio.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SolarisRadio),\n multi: true,\n },\n ],\n host: {\n class: 'solaris-radio-host',\n '[attr.data-size]': 'size()',\n '[attr.data-color]': 'colorKey()',\n '[attr.data-variant]': 'variant()',\n '[attr.data-appearance]': 'appearance()',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n '[attr.data-checked]': 'checked() ? \"true\" : null',\n '[style.--solaris-radio-custom]': 'customAccent()',\n },\n})\nexport class SolarisRadio implements ControlValueAccessor {\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n readonly inputId = input<string | null>(null, { alias: 'id' });\n readonly inputName = input<string | null>(null, { alias: 'name' });\n readonly size = input<SolarisSizePreset>('md');\n readonly variant = input<RadioVariant>('dot');\n readonly appearance = input<RadioAppearance>('solid');\n readonly color = input<RadioColorInput>('primary');\n readonly value = input<unknown>(true);\n readonly checkedInput = input<boolean>(false, { alias: 'checked' });\n readonly disabledInput = input<boolean>(false, { alias: 'disabled' });\n\n readonly checkedChange = output<boolean>();\n\n @ViewChild('native', { static: true })\n private readonly native?: ElementRef<HTMLInputElement>;\n\n private readonly group = inject(SOLARIS_RADIO_GROUP, { optional: true });\n private readonly autoId = uniqueId('solaris-radio');\n private readonly autoName = uniqueId('solaris-radio-name');\n\n private readonly localChecked = signal(false);\n private readonly cvaDisabled = signal(false);\n\n readonly id = computed(() => this.inputId() ?? this.autoId);\n readonly name = computed(() => this.group?.name() ?? this.inputName() ?? this.autoName);\n\n readonly disabled = computed(() => {\n return !!this.group?.disabled() || this.disabledInput() || this.cvaDisabled();\n });\n\n readonly checked = computed(() => {\n if (this.group) return this.group.isSelected(this.value());\n return this.localChecked();\n });\n\n readonly tabIndex = computed(() => {\n if (this.group) return this.group.tabIndexFor(this);\n return this.disabled() ? -1 : 0;\n });\n\n readonly customAccent = computed(() => {\n if (this.colorKey() !== 'custom') return null;\n const raw = String(this.color() ?? '').trim();\n return !raw || raw === 'custom' ? null : raw;\n });\n\n readonly colorKey = computed(() => {\n const raw = String(this.color() ?? '').trim();\n if (!raw || raw === 'custom') return 'custom';\n return PRESET_COLORS.has(raw as SolarisColorPreset) ? (raw as SolarisColorPreset) : 'custom';\n });\n\n private onChange: (value: boolean) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor() {\n effect(() => {\n if (this.group) return;\n this.localChecked.set(this.checkedInput());\n });\n }\n\n public onNativeChange() {\n if (this.disabled()) return;\n\n if (this.group) {\n const wasChecked = this.checked();\n this.group.select(this);\n if (!wasChecked) this.checkedChange.emit(true);\n return;\n }\n\n if (this.localChecked()) {\n this.onTouched();\n return;\n }\n\n this.localChecked.set(true);\n this.onChange(true);\n this.checkedChange.emit(true);\n this.onTouched();\n }\n\n public onNativeKeydown(event: KeyboardEvent) {\n if (this.disabled()) return;\n\n if (this.group) {\n this.group.handleKeydown(event, this);\n return;\n }\n\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n this.onNativeChange();\n }\n }\n\n public onBlur() {\n if (this.group) {\n this.group.notifyTouched();\n return;\n }\n this.onTouched();\n }\n\n public focus() {\n this.native?.nativeElement.focus();\n }\n\n writeValue(value: boolean | null): void {\n if (this.group) return;\n this.localChecked.set(!!value);\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.cvaDisabled.set(isDisabled);\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n}\n","<label class=\"solaris-radio\">\n <input\n #native\n class=\"solaris-radio__native\"\n type=\"radio\"\n [attr.id]=\"id()\"\n [attr.name]=\"name()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.tabindex]=\"tabIndex()\"\n (change)=\"onNativeChange()\"\n (keydown)=\"onNativeKeydown($event)\"\n (blur)=\"onBlur()\"\n />\n\n <span class=\"solaris-radio__control\" aria-hidden=\"true\">\n <span class=\"solaris-radio__inner\" aria-hidden=\"true\"></span>\n </span>\n\n <span class=\"solaris-radio__content\">\n <ng-content />\n </span>\n</label>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n QueryList,\n computed,\n forwardRef,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { SOLARIS_RADIO_GROUP, SolarisRadioGroupApi } from '../../token/radio-group.token';\nimport { SolarisSizeValue } from '../../../../common/model/common-configurations.type';\nimport { RadioCompareWith, RadioGroupOrientation } from '../../model/radio.type';\nimport { uniqueId } from '../../../../common/helper/unique-id';\nimport { SolarisRadio } from '../../component/radio';\n\n@Component({\n selector: 'solaris-radio-group',\n standalone: true,\n templateUrl: './radio-group.html',\n styleUrls: ['./radio-group.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SolarisRadioGroup),\n multi: true,\n },\n {\n provide: SOLARIS_RADIO_GROUP,\n useExisting: forwardRef(() => SolarisRadioGroup),\n },\n ],\n host: {\n class: 'solaris-radio-group-host',\n role: 'radiogroup',\n '[attr.data-orientation]': 'orientation()',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n '[attr.aria-label]': 'ariaLabel() ?? null',\n '[attr.aria-orientation]': 'orientation()',\n '[style.--solaris-radio-group-gap]': 'resolvedGap()',\n },\n})\nexport class SolarisRadioGroup implements ControlValueAccessor, AfterContentInit, SolarisRadioGroupApi {\n readonly gap = input<SolarisSizeValue>('md');\n readonly compareWith = input<RadioCompareWith>(Object.is);\n readonly nameInput = input<string | null>(null, { alias: 'name' });\n readonly disabledInput = input<boolean>(false, { alias: 'disabled' });\n readonly orientation = input<RadioGroupOrientation>('vertical');\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n\n readonly valueChange = output<unknown>();\n\n @ContentChildren(forwardRef(() => SolarisRadio), { descendants: true })\n private readonly radiosQuery?: QueryList<SolarisRadio>;\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly autoName = uniqueId('solaris-radio-group');\n private readonly cvaDisabled = signal(false);\n private readonly internalValue = signal<unknown>(null);\n private readonly radiosVersion = signal(0);\n\n readonly name = computed(() => this.nameInput() ?? this.autoName);\n readonly disabled = computed(() => this.disabledInput() || this.cvaDisabled());\n\n readonly resolvedGap = computed(() => {\n const value = String(this.gap() ?? 'md').trim();\n switch (value) {\n case 'sm':\n return 'var(--solaris-space-2)';\n case 'md':\n return 'var(--solaris-space-3)';\n case 'lg':\n return 'var(--solaris-space-4)';\n default:\n return value;\n }\n });\n\n private onChange: (value: unknown) => void = () => {};\n private onTouched: () => void = () => {};\n\n ngAfterContentInit(): void {\n this.bumpRadiosVersion();\n\n this.radiosQuery?.changes\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.bumpRadiosVersion());\n }\n\n public isSelected(value: unknown): boolean {\n return this.compareWith()(this.internalValue(), value);\n }\n\n public select(radio: SolarisRadio): void {\n if (this.disabled() || radio.disabled()) return;\n\n const nextValue = radio.value();\n if (!this.isSelected(nextValue)) {\n this.internalValue.set(nextValue);\n this.onChange(nextValue);\n this.valueChange.emit(nextValue);\n }\n\n this.onTouched();\n this.bumpRadiosVersion();\n }\n\n public tabIndexFor(radio: SolarisRadio): number {\n this.radiosVersion();\n\n if (this.disabled() || radio.disabled()) return -1;\n\n const enabled = this.enabledRadios();\n if (!enabled.length) return -1;\n\n const selected = enabled.find((item) => this.isSelected(item.value()));\n const target = selected ?? enabled[0];\n\n return target === radio ? 0 : -1;\n }\n\n public handleKeydown(event: KeyboardEvent, current: SolarisRadio): void {\n if (this.disabled()) return;\n\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowDown':\n event.preventDefault();\n this.move(current, +1);\n break;\n case 'ArrowLeft':\n case 'ArrowUp':\n event.preventDefault();\n this.move(current, -1);\n break;\n case ' ':\n case 'Enter':\n event.preventDefault();\n this.select(current);\n break;\n default:\n break;\n }\n }\n\n public notifyTouched(): void {\n this.onTouched();\n }\n\n writeValue(value: unknown): void {\n this.internalValue.set(value);\n this.bumpRadiosVersion();\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.cvaDisabled.set(isDisabled);\n this.bumpRadiosVersion();\n }\n\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = fn;\n }\n\n private move(current: SolarisRadio, direction: 1 | -1): void {\n const enabled = this.enabledRadios();\n if (!enabled.length) return;\n\n const currentIndex = enabled.indexOf(current);\n const startIndex = Math.max(currentIndex, 0);\n const nextIndex = (startIndex + direction + enabled.length) % enabled.length;\n const next = enabled[nextIndex];\n\n this.select(next);\n next.focus();\n }\n\n private enabledRadios(): SolarisRadio[] {\n this.radiosVersion();\n return (this.radiosQuery?.toArray() ?? []).filter((radio) => !radio.disabled());\n }\n\n private bumpRadiosVersion(): void {\n this.radiosVersion.update((value) => value + 1);\n }\n}\n","<ng-content />\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-avatar-overlay]',\n standalone: true,\n})\nexport class SolarisAvatarOverlayDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n HostBinding,\n Signal,\n booleanAttribute,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { NgClass } from '@angular/common';\n\nimport {\n SOLARIS_TRANSLATION,\n SOLARIS_TRANSLATION_CONFIGURATION,\n SolarisTranslationConfiguration,\n TranslationInterface,\n} from '@educarehq/solaris-services';\nimport {\n SolarisPresenceQuietHours,\n SolarisPresenceState,\n TimeContext,\n} from '../../../presence-avatar/model/presence-avatar.type';\nimport { SolarisAvatarShape } from '../../../avatar/model/avatar.type';\n\n@Component({\n selector: 'solaris-avatar-presence',\n standalone: true,\n imports: [NgClass],\n templateUrl: './avatar-presence.html',\n styleUrls: ['./avatar-presence.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisAvatarPresence {\n private readonly translation = inject<TranslationInterface | null>(SOLARIS_TRANSLATION, {\n optional: true,\n });\n private readonly translationConfiguration = inject<SolarisTranslationConfiguration | null>(\n SOLARIS_TRANSLATION_CONFIGURATION,\n { optional: true },\n );\n private readonly destroyRef = inject(DestroyRef);\n\n readonly presence = input<SolarisPresenceState>('offline');\n readonly timezone = input<string | null>(null);\n readonly lastSeenAt = input<string | Date | number | null>(null);\n readonly quietHours = input<SolarisPresenceQuietHours>(false);\n readonly workHoursStart = input(9);\n readonly workHoursEnd = input(18);\n\n readonly shape = input<SolarisAvatarShape>('circle');\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n readonly ariaHidden = input(false, { alias: 'aria-hidden', transform: booleanAttribute });\n\n @HostBinding('class')\n protected readonly hostClass = 'solaris-avatar-presence-host';\n\n private readonly nowTick = signal(Date.now());\n\n private readonly fallbackLanguage = this.translationConfiguration?.defaultLanguage ?? 'en-US';\n\n private readonly activeLanguage: Signal<string> = this.translation\n ? toSignal(this.translation.languageChanges(), {\n initialValue: this.translation.language(),\n })\n : signal(this.fallbackLanguage);\n\n private readonly browserTimezone =\n typeof Intl === 'undefined' ? null : Intl.DateTimeFormat().resolvedOptions().timeZone || null;\n\n constructor() {\n if (globalThis.window !== undefined) {\n const intervalId = globalThis.setInterval(() => {\n this.nowTick.set(Date.now());\n }, 60_000);\n\n this.destroyRef.onDestroy(() => {\n globalThis.clearInterval(intervalId);\n });\n }\n }\n\n readonly normalizedTimezone = computed(() => this.normalize(this.timezone()));\n readonly normalizedAriaLabel = computed(() => this.normalize(this.ariaLabel()));\n readonly parsedLastSeenAt = computed(() => this.parseDate(this.lastSeenAt()));\n\n readonly effectiveTimezone = computed(() => {\n return this.normalizedTimezone() || this.browserTimezone || null;\n });\n\n readonly intlLocale = computed(() => {\n const lang = this.activeLanguage() || this.fallbackLanguage || 'en-US';\n return lang.replace('_', '-');\n });\n\n readonly translationPrefix = computed(() => {\n const uiScope = this.translationConfiguration?.uiScope ?? 'ui';\n return `${uiScope}.solaris.avatar.presence`;\n });\n\n readonly normalizedWorkHours = computed(() => {\n const start = this.coerceHour(this.workHoursStart(), 9, 0, 23);\n const end = this.coerceHour(this.workHoursEnd(), 18, 1, 24);\n\n if (end <= start) {\n return { start: 9, end: 18 };\n }\n\n return { start, end };\n });\n\n readonly currentTimeContext = computed<TimeContext | null>(() => {\n this.nowTick();\n this.activeLanguage();\n\n const timezone = this.effectiveTimezone();\n if (!timezone || typeof Intl === 'undefined') {\n return null;\n }\n\n try {\n const formatter = new Intl.DateTimeFormat('en-US', {\n hour: 'numeric',\n weekday: 'short',\n hourCycle: 'h23',\n timeZone: timezone,\n });\n\n const parts = formatter.formatToParts(new Date(this.nowTick()));\n const hour = Number(parts.find((part) => part.type === 'hour')?.value ?? Number.NaN);\n const weekday = parts.find((part) => part.type === 'weekday')?.value ?? '';\n\n if (Number.isNaN(hour)) {\n return null;\n }\n\n const weekdayIndex = this.resolveWeekdayIndex(weekday);\n\n return {\n hour,\n timezone,\n isWeekend: weekdayIndex === 0 || weekdayIndex === 6,\n };\n } catch {\n return null;\n }\n });\n\n readonly isQuietHoursAuto = computed(() => {\n const context = this.currentTimeContext();\n if (!context) {\n return false;\n }\n\n if (context.isWeekend) {\n return true;\n }\n\n const { start, end } = this.normalizedWorkHours();\n return context.hour < start || context.hour >= end;\n });\n\n readonly showQuietHoursAccent = computed(() => {\n const mode = this.quietHours();\n\n if (mode === true) return true;\n if (mode === false) return false;\n\n return this.isQuietHoursAuto();\n });\n\n readonly showDndSlash = computed(() => this.presence() === 'dnd');\n\n readonly stateClasses = computed(() => [\n `state-${this.presence()}`,\n this.showQuietHoursAccent() ? 'has-quiet-hours' : '',\n ]);\n\n readonly titleText = computed(() => {\n if (this.ariaHidden()) return null;\n\n this.activeLanguage();\n return this.buildSemanticText();\n });\n\n readonly resolvedAriaLabel = computed(() => {\n if (this.ariaHidden()) return null;\n\n this.activeLanguage();\n return this.normalizedAriaLabel() || this.buildSemanticText();\n });\n\n private buildSemanticText(): string {\n const parts: string[] = [this.translate(`states.${this.presence()}`)];\n\n if (this.presence() === 'offline') {\n const lastSeen = this.getLastSeenLabel(this.parsedLastSeenAt());\n if (lastSeen) {\n parts.push(lastSeen);\n }\n }\n\n if (this.showQuietHoursAccent()) {\n parts.push(this.translate('quietHours'));\n }\n\n return parts.join(' • ');\n }\n\n private getLastSeenLabel(value: Date | null): string | null {\n if (!value || Number.isNaN(value.getTime())) {\n return null;\n }\n\n const now = new Date(this.nowTick());\n const diffMs = Math.max(0, now.getTime() - value.getTime());\n\n const minuteMs = 60_000;\n const hourMs = 60 * minuteMs;\n\n if (diffMs < minuteMs) {\n return this.translate('lastSeen.now');\n }\n\n if (diffMs < hourMs) {\n return this.translate('lastSeen.minutesAgo', {\n minutes: Math.floor(diffMs / minuteMs),\n });\n }\n\n if (diffMs < 6 * hourMs) {\n return this.translate('lastSeen.hoursAgo', {\n hours: Math.floor(diffMs / hourMs),\n });\n }\n\n const timeLabel = this.formatDate(value, {\n hour: '2-digit',\n minute: '2-digit',\n });\n\n if (this.isSameCalendarDay(value, now)) {\n return this.translate('lastSeen.todayAt', {\n time: timeLabel,\n });\n }\n\n const yesterday = new Date(now);\n yesterday.setDate(now.getDate() - 1);\n\n if (this.isSameCalendarDay(value, yesterday)) {\n return this.translate('lastSeen.yesterdayAt', {\n time: timeLabel,\n });\n }\n\n return this.translate('lastSeen.onDate', {\n date: this.formatDate(value, {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n }),\n });\n }\n\n private formatDate(value: Date, options: Intl.DateTimeFormatOptions): string {\n try {\n return new Intl.DateTimeFormat(this.intlLocale(), options).format(value);\n } catch {\n return value.toLocaleString();\n }\n }\n\n private translate(key: string, params?: Record<string, unknown>): string {\n const fullKey = `${this.translationPrefix()}.${key}`;\n\n if (this.translation) {\n const translated = this.translation.translate(fullKey, params);\n if (translated && translated !== fullKey) {\n return translated;\n }\n }\n\n return this.fallbackTranslate(key, params);\n }\n\n private fallbackTranslate(key: string, params?: Record<string, unknown>): string {\n const isPt = this.intlLocale().toLowerCase().startsWith('pt');\n\n const dict = isPt\n ? {\n 'states.online': 'Online',\n 'states.offline': 'Offline',\n 'states.away': 'Ausente',\n 'states.busy': 'Ocupado',\n 'states.dnd': 'Não perturbe',\n quietHours: 'Fora do expediente local',\n 'lastSeen.now': 'Visto agora',\n 'lastSeen.minutesAgo': `Visto há ${params?.['minutes'] ?? 0} min`,\n 'lastSeen.hoursAgo': `Visto há ${params?.['hours'] ?? 0} h`,\n 'lastSeen.todayAt': `Visto hoje às ${params?.['time'] ?? ''}`,\n 'lastSeen.yesterdayAt': `Visto ontem às ${params?.['time'] ?? ''}`,\n 'lastSeen.onDate': `Visto em ${params?.['date'] ?? ''}`,\n }\n : {\n 'states.online': 'Online',\n 'states.offline': 'Offline',\n 'states.away': 'Away',\n 'states.busy': 'Busy',\n 'states.dnd': 'Do not disturb',\n quietHours: 'Outside local working hours',\n 'lastSeen.now': 'Seen just now',\n 'lastSeen.minutesAgo': `Seen ${params?.['minutes'] ?? 0} min ago`,\n 'lastSeen.hoursAgo': `Seen ${params?.['hours'] ?? 0} h ago`,\n 'lastSeen.todayAt': `Seen today at ${params?.['time'] ?? ''}`,\n 'lastSeen.yesterdayAt': `Seen yesterday at ${params?.['time'] ?? ''}`,\n 'lastSeen.onDate': `Seen on ${params?.['date'] ?? ''}`,\n };\n\n return dict[key as keyof typeof dict] ?? key;\n }\n\n private isSameCalendarDay(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n }\n\n private resolveWeekdayIndex(weekday: string): number {\n switch (weekday.toLowerCase()) {\n case 'sun':\n return 0;\n case 'mon':\n return 1;\n case 'tue':\n return 2;\n case 'wed':\n return 3;\n case 'thu':\n return 4;\n case 'fri':\n return 5;\n case 'sat':\n return 6;\n default:\n return -1;\n }\n }\n\n private coerceHour(value: unknown, fallback: number, min: number, max: number): number {\n const numeric = Number(value);\n if (Number.isNaN(numeric)) {\n return fallback;\n }\n\n return Math.min(Math.max(Math.floor(numeric), min), max);\n }\n\n private parseDate(value: string | Date | number | null): Date | null {\n if (value == null || value === '') {\n return null;\n }\n\n if (value instanceof Date) {\n return Number.isNaN(value.getTime()) ? null : value;\n }\n\n const parsed = new Date(value);\n return Number.isNaN(parsed.getTime()) ? null : parsed;\n }\n\n private normalize(value: unknown): string {\n return String(value ?? '').trim();\n }\n}\n","<span\n class=\"solaris-avatar-presence\"\n [attr.title]=\"titleText()\"\n [attr.aria-label]=\"resolvedAriaLabel()\"\n [attr.aria-hidden]=\"ariaHidden() ? 'true' : null\"\n [ngClass]=\"[...stateClasses(), shape() === 'square' ? 'shape-square' : 'shape-circle']\"\n>\n <span class=\"solaris-avatar-presence__dot\" aria-hidden=\"true\">\n @if (showDndSlash()) {\n <span class=\"solaris-avatar-presence__slash\"></span>\n }\n </span>\n\n @if (showQuietHoursAccent()) {\n <span class=\"solaris-avatar-presence__quiet\" aria-hidden=\"true\">z</span>\n }\n</span>\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n booleanAttribute,\n computed,\n effect,\n input,\n signal,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport {\n SolarisAvatarButtonType,\n SolarisAvatarColorInput,\n SolarisAvatarColorPreset,\n SolarisAvatarObjectFit,\n SolarisAvatarRadiusInput,\n SolarisAvatarShape,\n SolarisAvatarSize,\n SolarisAvatarVariant,\n} from '../model/avatar.type';\n\n@Component({\n selector: 'solaris-avatar',\n standalone: true,\n imports: [NgClass],\n templateUrl: './avatar.html',\n styleUrls: ['./avatar.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisAvatar {\n readonly size = input<SolarisAvatarSize>('md');\n readonly shape = input<SolarisAvatarShape>('circle');\n readonly variant = input<SolarisAvatarVariant>('auto');\n\n readonly src = input<string | null>(null);\n readonly alt = input<string | null>(null);\n readonly name = input<string | null>(null);\n readonly initials = input<string | null>(null);\n\n readonly color = input<SolarisAvatarColorInput>('surface');\n readonly loading = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly interactive = input(false, { transform: booleanAttribute });\n\n readonly buttonType = input<SolarisAvatarButtonType>('button');\n readonly asButton = input(false, { transform: booleanAttribute });\n\n readonly radius = input<SolarisAvatarRadiusInput>(null);\n readonly objectFit = input<SolarisAvatarObjectFit>('cover');\n\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n readonly ariaHidden = input(false, { alias: 'aria-hidden', transform: booleanAttribute });\n\n @HostBinding('class')\n protected readonly hostClass = 'solaris-avatar-host';\n\n private readonly imageFailed = signal(false);\n\n private readonly presetColors = new Set<SolarisAvatarColorPreset>([\n 'primary',\n 'surface',\n 'success',\n 'warning',\n 'error',\n 'info',\n ]);\n\n constructor() {\n effect(() => {\n this.src();\n this.imageFailed.set(false);\n });\n }\n\n readonly normalizedSrc = computed(() => this.normalize(this.src()));\n readonly normalizedAlt = computed(() => this.normalize(this.alt()));\n readonly normalizedName = computed(() => this.normalize(this.name()));\n readonly normalizedInitials = computed(() => this.normalize(this.initials()));\n readonly normalizedAriaLabel = computed(() => this.normalize(this.ariaLabel()));\n\n readonly resolvedInitials = computed(() => {\n const explicit = this.normalizedInitials();\n if (explicit) return explicit.slice(0, 2).toUpperCase();\n\n const name = this.normalizedName();\n if (!name) return '';\n\n const parts = name\n .split(/\\s+/)\n .map((part) => part.trim())\n .filter(Boolean);\n\n if (!parts.length) return '';\n if (parts.length === 1) return parts[0].slice(0, 1).toUpperCase();\n\n const first = parts[0]?.slice(0, 1) ?? '';\n const last = parts.at(-1)?.slice(0, 1) ?? '';\n\n return `${first}${last}`.toUpperCase();\n });\n\n readonly showImage = computed(() => {\n if (this.loading()) return false;\n\n const variant = this.variant();\n if (variant === 'letter' || variant === 'default') return false;\n\n return !!this.normalizedSrc() && !this.imageFailed();\n });\n\n readonly showLetter = computed(() => {\n if (this.loading()) return false;\n\n const variant = this.variant();\n const initials = this.resolvedInitials();\n\n if (!initials) return false;\n if (variant === 'letter') return true;\n if (variant === 'default') return false;\n\n return !this.showImage();\n });\n\n readonly showDefault = computed(() => {\n if (this.loading()) return false;\n return !this.showImage() && !this.showLetter();\n });\n\n readonly isCustomColor = computed(\n () => !this.presetColors.has(this.color() as SolarisAvatarColorPreset),\n );\n\n readonly colorClass = computed(() => {\n return this.isCustomColor() ? 'color-custom' : `color-${this.color()}`;\n });\n\n readonly customColorValue = computed(() => {\n return this.isCustomColor() ? String(this.color()) : null;\n });\n\n readonly resolvedRadius = computed(() => {\n const radius = this.normalize(this.radius());\n\n if (!radius) {\n return this.shape() === 'circle'\n ? 'var(--solaris-avatar-radius-circle)'\n : 'var(--solaris-avatar-radius-square)';\n }\n\n switch (radius) {\n case 'none':\n return 'var(--solaris-radius-none)';\n case 'sm':\n return 'var(--solaris-radius-sm)';\n case 'md':\n return 'var(--solaris-radius-md)';\n case 'lg':\n return 'var(--solaris-radius-lg)';\n case 'full':\n return 'var(--solaris-radius-full)';\n default:\n return radius;\n }\n });\n\n readonly rootClasses = computed(() => [\n `size-${this.size()}`,\n `shape-${this.shape()}`,\n this.colorClass(),\n this.interactive() ? 'is-interactive' : '',\n this.disabled() ? 'is-disabled' : '',\n this.loading() ? 'is-loading' : '',\n this.asButton() ? 'is-button' : '',\n ]);\n\n readonly accessibleLabel = computed(() => {\n if (this.ariaHidden()) return null;\n\n return (\n this.normalizedAriaLabel() ||\n this.normalizedAlt() ||\n this.normalizedName() ||\n this.resolvedInitials() ||\n 'Avatar'\n );\n });\n\n readonly rootRole = computed(() => {\n if (this.ariaHidden() || this.asButton()) return null;\n return 'img';\n });\n\n onImageLoad(): void {\n this.imageFailed.set(false);\n }\n\n onImageError(): void {\n this.imageFailed.set(true);\n }\n\n private normalize(value: unknown): string {\n return String(value ?? '').trim();\n }\n}\n","@if (asButton()) {\n <button\n class=\"solaris-avatar\"\n [ngClass]=\"rootClasses()\"\n [type]=\"buttonType()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"accessibleLabel()\"\n [attr.aria-hidden]=\"ariaHidden() ? 'true' : null\"\n [style.--solaris-avatar-radius]=\"resolvedRadius()\"\n [style.--solaris-avatar-image-fit]=\"objectFit()\"\n [style.--solaris-avatar-custom-bg]=\"customColorValue()\"\n >\n <span class=\"solaris-avatar__body\">\n @if (loading()) {\n <span class=\"solaris-avatar__skeleton\" aria-hidden=\"true\"></span>\n } @else if (showImage()) {\n <img\n class=\"solaris-avatar__image\"\n [src]=\"normalizedSrc()\"\n alt=\"\"\n aria-hidden=\"true\"\n decoding=\"async\"\n (load)=\"onImageLoad()\"\n (error)=\"onImageError()\"\n />\n } @else if (showLetter()) {\n <span class=\"solaris-avatar__label\" aria-hidden=\"true\">\n {{ resolvedInitials() }}\n </span>\n } @else if (showDefault()) {\n <span class=\"solaris-avatar__placeholder\" aria-hidden=\"true\">\n <svg\n class=\"solaris-avatar__placeholder-svg\"\n viewBox=\"0 0 64 64\"\n preserveAspectRatio=\"xMidYMid meet\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle class=\"solaris-avatar__placeholder-head\" cx=\"32\" cy=\"25\" r=\"14\"></circle>\n <path\n class=\"solaris-avatar__placeholder-body\"\n d=\"M2 64 C6 50, 18 42, 32 45 C46 42, 58 50, 62 64 Z\"\n ></path>\n </svg>\n </span>\n }\n </span>\n\n <span class=\"solaris-avatar__overlay\" aria-hidden=\"true\">\n <ng-content></ng-content>\n </span>\n </button>\n} @else {\n <span\n class=\"solaris-avatar\"\n [ngClass]=\"rootClasses()\"\n [attr.role]=\"rootRole()\"\n [attr.aria-label]=\"accessibleLabel()\"\n [attr.aria-hidden]=\"ariaHidden() ? 'true' : null\"\n [style.--solaris-avatar-radius]=\"resolvedRadius()\"\n [style.--solaris-avatar-image-fit]=\"objectFit()\"\n [style.--solaris-avatar-custom-bg]=\"customColorValue()\"\n >\n <span class=\"solaris-avatar__body\">\n @if (loading()) {\n <span class=\"solaris-avatar__skeleton\" aria-hidden=\"true\"></span>\n } @else if (showImage()) {\n <img\n class=\"solaris-avatar__image\"\n [src]=\"normalizedSrc()\"\n alt=\"\"\n aria-hidden=\"true\"\n decoding=\"async\"\n (load)=\"onImageLoad()\"\n (error)=\"onImageError()\"\n />\n } @else if (showLetter()) {\n <span class=\"solaris-avatar__label\" aria-hidden=\"true\">{{ resolvedInitials() }}</span>\n } @else if (showDefault()) {\n <span class=\"solaris-avatar__placeholder\" aria-hidden=\"true\">\n <svg\n class=\"solaris-avatar__placeholder-svg\"\n viewBox=\"0 0 64 64\"\n preserveAspectRatio=\"xMidYMid meet\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle class=\"solaris-avatar__placeholder-head\" cx=\"32\" cy=\"25\" r=\"14\"></circle>\n <path\n class=\"solaris-avatar__placeholder-body\"\n d=\"M2 64 C6 50, 18 42, 32 45 C46 42, 58 50, 62 64 Z\"\n ></path>\n </svg>\n </span>\n }\n </span>\n\n <span class=\"solaris-avatar__overlay\" aria-hidden=\"true\">\n <ng-content></ng-content>\n </span>\n </span>\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport {\n SolarisAvatarButtonType,\n SolarisAvatarColorInput,\n SolarisAvatarObjectFit,\n SolarisAvatarRadiusInput,\n SolarisAvatarShape,\n SolarisAvatarSize,\n SolarisAvatarVariant,\n} from '../../avatar/model/avatar.type';\nimport { SolarisTooltipDirective } from '../../../feedbacks/tooltip/directives/tooltip.directive';\nimport { SolarisAvatarOverlayDirective } from '../../avatar/directives/avatar-overlay.directive';\nimport { SolarisAvatarPresence } from '../../internal/avatar-presence/component/avatar-presence';\nimport { SolarisPresenceQuietHours, SolarisPresenceState } from '../model/presence-avatar.type';\nimport { SolarisAvatar } from '../../avatar/component/avatar';\nimport { SOLARIS_TRANSLATION, TranslationInterface } from '@educarehq/solaris-services';\n\n@Component({\n selector: 'solaris-presence-avatar',\n standalone: true,\n imports: [\n SolarisAvatar,\n SolarisAvatarPresence,\n SolarisTooltipDirective,\n SolarisAvatarOverlayDirective,\n ],\n templateUrl: './presence-avatar.html',\n styleUrls: ['./presence-avatar.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisPresenceAvatar {\n readonly translationService: TranslationInterface = inject(SOLARIS_TRANSLATION);\n readonly size = input<SolarisAvatarSize>('md');\n readonly shape = input<SolarisAvatarShape>('circle');\n readonly variant = input<SolarisAvatarVariant>('auto');\n\n readonly src = input<string | null>(null);\n readonly alt = input<string | null>(null);\n readonly name = input<string | null>(null);\n readonly initials = input<string | null>(null);\n\n readonly color = input<SolarisAvatarColorInput>('surface');\n readonly loading = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly interactive = input(false, { transform: booleanAttribute });\n\n readonly buttonType = input<SolarisAvatarButtonType>('button');\n readonly asButton = input(false, { transform: booleanAttribute });\n\n readonly radius = input<SolarisAvatarRadiusInput>(null);\n readonly objectFit = input<SolarisAvatarObjectFit>('cover');\n\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n readonly ariaHidden = input(false, { alias: 'aria-hidden', transform: booleanAttribute });\n\n readonly presence = input<SolarisPresenceState>('offline');\n readonly presenceAriaLabel = input<string | null>(null);\n readonly timezone = input<string | null>(null);\n readonly lastSeenAt = input<string | Date | number | null>(null);\n readonly quietHours = input<SolarisPresenceQuietHours>('auto');\n readonly workHoursStart = input(9);\n readonly workHoursEnd = input(18);\n\n readonly presenceTooltipKey = computed(() => {\n return this.translationService.translate(\n `ui.solaris.avatar.presence.states.${this.presence()}`,\n );\n });\n}\n","<solaris-avatar\n [src]=\"src()\"\n [alt]=\"alt()\"\n [name]=\"name()\"\n [initials]=\"initials()\"\n [size]=\"size()\"\n [shape]=\"shape()\"\n [variant]=\"variant()\"\n [color]=\"color()\"\n [loading]=\"loading()\"\n [disabled]=\"disabled()\"\n [interactive]=\"interactive()\"\n [buttonType]=\"buttonType()\"\n [asButton]=\"asButton()\"\n [radius]=\"radius()\"\n [objectFit]=\"objectFit()\"\n [aria-label]=\"ariaLabel()\"\n [aria-hidden]=\"ariaHidden()\"\n solaris-tooltip\n [tooltip-key]=\"presenceTooltipKey()\"\n tooltip-variant=\"default\"\n tooltip-size=\"sm\"\n tooltip-prefix-icon=\"ph ph-info\"\n>\n <span solaris-avatar-overlay class=\"solaris-presence-avatar__overlay\" aria-hidden=\"true\">\n <solaris-avatar-presence\n [presence]=\"presence()\"\n [timezone]=\"timezone()\"\n [lastSeenAt]=\"lastSeenAt()\"\n [quietHours]=\"quietHours()\"\n [workHoursStart]=\"workHoursStart()\"\n [workHoursEnd]=\"workHoursEnd()\"\n [aria-label]=\"presenceAriaLabel()\"\n [aria-hidden]=\"ariaHidden()\"\n [shape]=\"shape()\"\n >\n </solaris-avatar-presence>\n </span>\n</solaris-avatar>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n numberAttribute,\n} from '@angular/core';\n\nimport { SolarisAvatarShape, SolarisAvatarSize } from '../../avatar/model/avatar.type';\nimport { SolarisPresenceAvatar } from '../../presence-avatar/component/presence-avatar';\nimport { SolarisAvatarStackItem, SolarisAvatarStackOverlap } from '../model/avatar-stack.type';\nimport { SolarisAvatar } from '../../avatar/component/avatar';\n\n@Component({\n selector: 'solaris-avatar-stack',\n standalone: true,\n imports: [SolarisPresenceAvatar, SolarisAvatar],\n templateUrl: './avatar-stack.html',\n styleUrls: ['./avatar-stack.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisAvatarStack {\n readonly items = input<SolarisAvatarStackItem[]>([]);\n readonly max = input(4, { transform: numberAttribute });\n readonly showPresence = input(false, { transform: booleanAttribute });\n\n readonly size = input<SolarisAvatarSize>('md');\n readonly shape = input<SolarisAvatarShape>('circle');\n readonly overlap = input<SolarisAvatarStackOverlap>('md');\n\n readonly visibleItems = computed(() => {\n const max = Math.max(1, this.max());\n return this.items().slice(0, max);\n });\n\n readonly hiddenCount = computed(() => {\n return Math.max(0, this.items().length - this.visibleItems().length);\n });\n\n readonly hasHiddenItems = computed(() => this.hiddenCount() > 0);\n}\n","<div\n class=\"solaris-avatar-stack\"\n [attr.data-size]=\"size()\"\n [attr.data-shape]=\"shape()\"\n [attr.data-overlap]=\"overlap()\"\n>\n @for (item of visibleItems(); track item.name ?? item.src ?? $index) {\n <span class=\"solaris-avatar-stack__item\">\n @if (showPresence()) {\n <solaris-presence-avatar\n [size]=\"size()\"\n [shape]=\"shape()\"\n [src]=\"item.src ?? null\"\n [alt]=\"item.alt ?? null\"\n [name]=\"item.name ?? null\"\n [initials]=\"item.initials ?? null\"\n [presence]=\"item.presence ?? 'offline'\"\n [timezone]=\"item.timezone ?? null\"\n [lastSeenAt]=\"item.lastSeenAt ?? null\"\n [quietHours]=\"item.quietHours ?? false\"\n />\n } @else {\n <solaris-avatar\n [size]=\"size()\"\n [shape]=\"shape()\"\n [src]=\"item.src ?? null\"\n [alt]=\"item.alt ?? null\"\n [name]=\"item.name ?? null\"\n [initials]=\"item.initials ?? null\"\n />\n }\n </span>\n }\n\n @if (hasHiddenItems()) {\n <span class=\"solaris-avatar-stack__item solaris-avatar-stack__more\">\n +{{ hiddenCount() }}\n </span>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Output,\n booleanAttribute,\n input,\n numberAttribute,\n} from '@angular/core';\n\nimport {\n SolarisAvatarDropdownItem,\n SolarisAvatarDropdownPlacement,\n SolarisAvatarDropdownSelectEvent,\n} from '../model/avatar-dropdown.type';\nimport { SolarisPopoverTriggerDirective } from '../../../navigations/popover/directives/popover-trigger.directive';\nimport { SolarisPopoverPanelDirective } from '../../../navigations/popover/directives/popover-panel.directive';\nimport { SolarisAvatarShape, SolarisAvatarSize } from '../../avatar/model/avatar.type';\nimport { SolarisAvatarStackOverlap } from '../../avatar-stack/model/avatar-stack.type';\nimport { SolarisAvatarStack } from '../../avatar-stack/component/avatar-stack';\nimport { SolarisPopover } from '../../../navigations/popover/component/popover';\nimport { SolarisAvatar } from '../../avatar/component/avatar';\n\n@Component({\n selector: 'solaris-avatar-dropdown',\n standalone: true,\n imports: [\n SolarisPopover,\n SolarisPopoverTriggerDirective,\n SolarisPopoverPanelDirective,\n SolarisAvatarStack,\n SolarisAvatar,\n ],\n templateUrl: './avatar-dropdown.html',\n styleUrls: ['./avatar-dropdown.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisAvatarDropdown {\n readonly items = input<SolarisAvatarDropdownItem[]>([]);\n\n readonly size = input<SolarisAvatarSize>('md');\n readonly shape = input<SolarisAvatarShape>('circle');\n readonly overlap = input<SolarisAvatarStackOverlap>('md');\n\n readonly maxVisible = input(4, { transform: numberAttribute });\n readonly placement = input<SolarisAvatarDropdownPlacement>('bottom-end');\n\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly closeOnSelect = input(true, { transform: booleanAttribute });\n\n readonly panelLabel = input('Avatar dropdown');\n\n @Output() readonly itemSelect = new EventEmitter<SolarisAvatarDropdownSelectEvent>();\n @Output() readonly openChange = new EventEmitter<boolean>();\n\n onItemClick(item: SolarisAvatarDropdownItem, index: number, popover: SolarisPopover): void {\n if (item.disabled) return;\n\n this.itemSelect.emit({ item, index });\n\n if (this.closeOnSelect()) {\n popover.setOpen(false);\n }\n }\n}\n","<solaris-popover\n #popover\n [placement]=\"placement()\"\n [offset]=\"8\"\n [autoFlip]=\"true\"\n [autoShift]=\"true\"\n [closeOnEscape]=\"true\"\n [closeOnOutsideClick]=\"true\"\n panelClass=\"solaris-avatar-dropdown-popover\"\n (openChange)=\"openChange.emit($event)\"\n>\n <button\n type=\"button\"\n solaris-popover-trigger\n class=\"solaris-avatar-dropdown__trigger\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"panelLabel()\"\n [attr.aria-expanded]=\"popover.isOpen() ? 'true' : 'false'\"\n (click)=\"popover.toggle()\"\n >\n <solaris-avatar-stack\n [items]=\"items()\"\n [max]=\"maxVisible()\"\n [size]=\"size()\"\n [shape]=\"shape()\"\n [overlap]=\"overlap()\"\n [showPresence]=\"false\"\n />\n </button>\n\n <ng-template solaris-popover-panel>\n <div class=\"solaris-avatar-dropdown__panel\" role=\"listbox\" [attr.aria-label]=\"panelLabel()\">\n @for (item of items(); track item.id ?? item.name ?? item.src ?? $index) {\n <button\n type=\"button\"\n class=\"solaris-avatar-dropdown__item\"\n [disabled]=\"item.disabled\"\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\n (click)=\"onItemClick(item, $index, popover)\"\n >\n <solaris-avatar\n size=\"sm\"\n [shape]=\"shape()\"\n [src]=\"item.src ?? null\"\n [alt]=\"item.alt ?? null\"\n [name]=\"item.name ?? null\"\n [initials]=\"item.initials ?? null\"\n />\n\n <span class=\"solaris-avatar-dropdown__item-body\">\n <span class=\"solaris-avatar-dropdown__item-title\">\n {{ item.name || item.initials || 'User' }}\n </span>\n </span>\n </button>\n }\n </div>\n </ng-template>\n</solaris-popover>\n","import { InjectionToken, Signal } from '@angular/core';\n\nimport { CardGroupSelectionMode } from '../model/card-group.type';\n\nexport interface SolarisSelectionCardHandle {\n focus(): void;\n value(): unknown;\n disabled(): boolean;\n}\n\nexport interface SolarisCardGroupApi {\n readonly disabled: Signal<boolean>;\n readonly selectionMode: Signal<CardGroupSelectionMode>;\n\n notifyTouched(): void;\n isSelected(value: unknown): boolean;\n activate(card: SolarisSelectionCardHandle): void;\n tabIndexFor(card: SolarisSelectionCardHandle): number;\n handleKeydown(event: KeyboardEvent, current: SolarisSelectionCardHandle): void;\n}\n\nexport const SOLARIS_CARD_GROUP = new InjectionToken<SolarisCardGroupApi>('SOLARIS_CARD_GROUP');\n","import { CardColorInput, CardColorPreset } from '../model/card.type';\n\nconst CARD_PRESET_COLORS = new Set<CardColorPreset>([\n 'neutral',\n 'primary',\n 'success',\n 'warning',\n 'error',\n 'info',\n]);\n\nexport function resolveCardColorKey(\n value: CardColorInput | null | undefined,\n): CardColorPreset | 'custom' {\n const normalized = String(value ?? '').trim();\n if (!normalized) return 'neutral';\n\n return CARD_PRESET_COLORS.has(normalized as CardColorPreset)\n ? (normalized as CardColorPreset)\n : 'custom';\n}\n\nexport function resolveCardCustomColor(value: CardColorInput | null | undefined): string | null {\n const normalized = String(value ?? '').trim();\n if (!normalized || normalized === 'custom') return null;\n\n return CARD_PRESET_COLORS.has(normalized as CardColorPreset) ? null : normalized;\n}\n","import { CardRadiusInput } from '../model/card.type';\n\nexport function resolveCardRadius(value: CardRadiusInput | null | undefined): string | null {\n const normalized = normalizeCardValue(value);\n if (!normalized) return null;\n\n switch (normalized) {\n case 'none':\n return '0';\n\n case 'sm':\n return 'var(--solaris-radius-sm)';\n\n case 'md':\n return 'var(--solaris-radius-md, var(--solaris-radius-sm))';\n\n case 'lg':\n return 'var(--solaris-radius-lg, var(--solaris-radius-md, var(--solaris-radius-sm)))';\n\n case 'full':\n return 'var(--solaris-radius-full)';\n\n default:\n return normalized;\n }\n}\n\nexport function normalizeCardValue(value: unknown): string {\n return String(value ?? '').trim();\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n computed,\n input,\n} from '@angular/core';\n\nimport {\n CardAppearance,\n CardColorInput,\n CardOrientation,\n CardRadiusInput,\n CardSize,\n} from '../model/card.type';\nimport { resolveCardCustomColor, resolveCardColorKey } from '../utils/resolve-card-color';\nimport { normalizeCardValue, resolveCardRadius } from '../utils/resolve-card-radius';\n\n@Component({\n selector: 'solaris-card',\n standalone: true,\n imports: [],\n templateUrl: './card.html',\n styleUrls: ['./card.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'solaris-card-host',\n\n '[attr.data-size]': 'size()',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-appearance]': 'appearance()',\n '[attr.data-color]': 'colorKey()',\n\n '[attr.data-selected]': 'selected() ? \"true\" : null',\n '[attr.data-invalid]': 'invalid() ? \"true\" : null',\n '[attr.data-interactive]': 'interactive() ? \"true\" : null',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n\n '[style.--solaris-card-radius]': 'resolvedRadius()',\n '[style.--solaris-card-accent-custom]': 'customColor()',\n '[style.--solaris-card-min-height]': 'normalizedMinHeight()',\n '[style.--solaris-card-reserved-inline-end]': 'normalizedReservedInlineEnd()',\n },\n})\nexport class SolarisCard {\n readonly size = input<CardSize>('md');\n readonly orientation = input<CardOrientation>('vertical');\n readonly radius = input<CardRadiusInput | null>(null);\n\n readonly color = input<CardColorInput>('neutral');\n readonly appearance = input<CardAppearance>('outline');\n\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly selected = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly interactive = input(false, { transform: booleanAttribute });\n\n readonly minHeight = input<string | null>(null);\n readonly reservedInlineEnd = input<string | null>(null);\n\n readonly normalizedMinHeight = computed(() => {\n return normalizeCardValue(this.minHeight()) || null;\n });\n\n readonly normalizedReservedInlineEnd = computed(() => {\n return normalizeCardValue(this.reservedInlineEnd()) || null;\n });\n\n readonly resolvedRadius = computed(() => resolveCardRadius(this.radius()));\n\n readonly customColor = computed(() => resolveCardCustomColor(this.color()));\n readonly colorKey = computed(() => resolveCardColorKey(this.color()));\n}\n","<article class=\"solaris-card\">\n <div class=\"solaris-card__media\">\n <ng-content select=\"solaris-card-media, [solaris-card-media]\"></ng-content>\n </div>\n\n <div class=\"solaris-card__content\">\n <div class=\"solaris-card__header\">\n <div class=\"solaris-card__header-main\">\n <div class=\"solaris-card__eyebrow\">\n <ng-content select=\"[solaris-card-eyebrow]\"></ng-content>\n </div>\n\n <div class=\"solaris-card__title\">\n <ng-content select=\"[solaris-card-title]\"></ng-content>\n </div>\n </div>\n\n <div class=\"solaris-card__badge\">\n <ng-content select=\"[solaris-card-badge]\"></ng-content>\n </div>\n </div>\n\n <div class=\"solaris-card__description\">\n <ng-content select=\"[solaris-card-description]\"></ng-content>\n </div>\n\n <div class=\"solaris-card__meta\">\n <ng-content select=\"[solaris-card-meta]\"></ng-content>\n </div>\n\n <div class=\"solaris-card__footer\">\n <div class=\"solaris-card__footer-main\">\n <ng-content select=\"[solaris-card-footer]\"></ng-content>\n </div>\n\n <div class=\"solaris-card__actions\">\n <ng-content select=\"[solaris-card-actions]\"></ng-content>\n </div>\n </div>\n </div>\n</article>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\n\nimport {\n ResolvedSelectionCardIndicator,\n SelectionCardAppearance,\n SelectionCardColorInput,\n SelectionCardIndicator,\n SelectionCardOrientation,\n SelectionCardRadiusInput,\n SelectionCardSize,\n} from '../model/selection-card.type';\nimport {\n SOLARIS_CARD_GROUP,\n SolarisSelectionCardHandle,\n} from '../../card-group/token/card-group.token';\nimport { resolveCardColorKey, resolveCardCustomColor } from '../../card/utils/resolve-card-color';\nimport { CardGroupSelectionMode } from '../../card-group/model/card-group.type';\nimport { SolarisCard } from '../../card/component/card';\n\n@Component({\n selector: 'solaris-selection-card',\n standalone: true,\n imports: [SolarisCard],\n templateUrl: './selection-card.html',\n styleUrls: ['./selection-card.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'solaris-selection-card-host',\n\n '[attr.data-size]': 'size()',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-selected]': 'selected() ? \"true\" : null',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n '[attr.data-invalid]': 'invalid() ? \"true\" : null',\n '[attr.data-appearance]': 'appearance()',\n '[attr.data-color]': 'colorKey()',\n '[attr.data-indicator]': 'resolvedIndicator()',\n\n '[attr.role]': 'role()',\n '[attr.aria-checked]': 'ariaChecked()',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n '[attr.tabindex]': 'tabIndex()',\n\n '[style.--solaris-selection-card-custom]': 'customAccent()',\n\n '(click)': 'onHostClick($event)',\n '(keydown)': 'onHostKeydown($event)',\n '(blur)': 'onHostBlur()',\n },\n})\nexport class SolarisSelectionCard implements SolarisSelectionCardHandle {\n readonly value = input<unknown>(null);\n\n readonly size = input<SelectionCardSize>('md');\n readonly color = input<SelectionCardColorInput>('primary');\n readonly orientation = input<SelectionCardOrientation>('vertical');\n readonly radius = input<SelectionCardRadiusInput | null>(null);\n readonly appearance = input<SelectionCardAppearance>('outline');\n\n readonly selectionIndicator = input<SelectionCardIndicator>('auto');\n\n readonly invalid = input(false, { transform: booleanAttribute });\n\n readonly disabledInput = input(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n\n readonly selectedInput = input(false, {\n alias: 'selected',\n transform: booleanAttribute,\n });\n\n readonly selectedChange = output<boolean>();\n readonly cardClick = output<MouseEvent>();\n\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly group = inject(SOLARIS_CARD_GROUP, { optional: true });\n\n private readonly localSelected = signal(false);\n\n readonly disabled = computed(() => {\n return !!this.group?.disabled() || this.disabledInput();\n });\n\n readonly selected = computed(() => {\n if (this.group) return this.group.isSelected(this.value());\n\n return this.localSelected();\n });\n\n readonly resolvedMode = computed<CardGroupSelectionMode>(() => {\n if (this.group) return this.group.selectionMode();\n\n return inferStandaloneMode(this.selectionIndicator());\n });\n\n readonly resolvedIndicator = computed<ResolvedSelectionCardIndicator>(() => {\n const requested = this.selectionIndicator();\n\n if (requested !== 'auto') return requested;\n\n switch (this.resolvedMode()) {\n case 'single':\n return 'radio';\n\n case 'multiple':\n return 'checkbox';\n\n case 'none':\n default:\n return 'none';\n }\n });\n\n readonly tabIndex = computed(() => {\n if (this.disabled()) return -1;\n if (this.group) return this.group.tabIndexFor(this);\n\n return 0;\n });\n\n readonly role = computed(() => {\n switch (this.resolvedMode()) {\n case 'single':\n return 'radio';\n\n case 'multiple':\n return 'checkbox';\n\n case 'none':\n default:\n return 'button';\n }\n });\n\n readonly ariaChecked = computed(() => {\n if (this.resolvedMode() === 'none') return null;\n\n return this.selected() ? 'true' : 'false';\n });\n\n readonly colorKey = computed(() => {\n return resolveCardColorKey(this.color());\n });\n\n readonly customAccent = computed(() => {\n return resolveCardCustomColor(this.color());\n });\n\n readonly minHeight = computed(() => {\n return 'var(--ssc-min-height)';\n });\n\n readonly reservedInlineEnd = computed(() => {\n if (this.resolvedIndicator() === 'none') return null;\n\n return 'var(--ssc-reserved-inline-end)';\n });\n\n constructor() {\n effect(() => {\n if (this.group) return;\n\n this.localSelected.set(this.selectedInput());\n });\n }\n\n public focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n public onHostBlur(): void {\n this.group?.notifyTouched();\n }\n\n public onHostClick(event: MouseEvent): void {\n if (this.isActionZone(event.target)) return;\n\n this.cardClick.emit(event);\n\n if (this.disabled()) return;\n\n const previous = this.selected();\n\n if (this.group) {\n this.group.activate(this);\n\n if (previous !== this.selected()) {\n this.selectedChange.emit(this.selected());\n }\n\n return;\n }\n\n const next = this.activateStandalone();\n\n if (next !== previous) {\n this.selectedChange.emit(next);\n }\n }\n\n public onHostKeydown(event: KeyboardEvent): void {\n if (this.disabled()) return;\n\n if (this.group) {\n this.group.handleKeydown(event, this);\n return;\n }\n\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n\n const previous = this.selected();\n const next = this.activateStandalone();\n\n if (next !== previous) {\n this.selectedChange.emit(next);\n }\n }\n }\n\n private activateStandalone(): boolean {\n switch (this.resolvedMode()) {\n case 'single':\n if (!this.localSelected()) {\n this.localSelected.set(true);\n }\n\n return this.localSelected();\n\n case 'multiple':\n this.localSelected.update((value) => !value);\n\n return this.localSelected();\n\n case 'none':\n default:\n return this.localSelected();\n }\n }\n\n private isActionZone(target: EventTarget | null): boolean {\n if (!(target instanceof HTMLElement)) return false;\n\n return !!target.closest(\n ['[data-card-actions=\"true\"]', '[solaris-card-actions]', '.solaris-card-slot--actions'].join(\n ',',\n ),\n );\n }\n}\n\nfunction inferStandaloneMode(indicator: SelectionCardIndicator): CardGroupSelectionMode {\n switch (indicator) {\n case 'radio':\n return 'single';\n\n case 'checkbox':\n case 'icon':\n case 'auto':\n return 'multiple';\n\n case 'none':\n default:\n return 'none';\n }\n}\n","<div class=\"solaris-selection-card\">\n @if (resolvedIndicator() !== 'none') {\n <span class=\"solaris-selection-card__indicator\" aria-hidden=\"true\">\n <span class=\"solaris-selection-card__indicator-control\">\n @switch (resolvedIndicator()) {\n @case ('radio') {\n <span class=\"solaris-selection-card__indicator-dot\"></span>\n }\n\n @case ('checkbox') {\n <i class=\"ph ph-check solaris-selection-card__indicator-check\"></i>\n }\n\n @case ('icon') {\n <span class=\"solaris-selection-card__indicator-icon-dot\"></span>\n }\n }\n </span>\n </span>\n }\n\n <solaris-card\n class=\"solaris-selection-card__card\"\n [orientation]=\"orientation()\"\n [size]=\"size()\"\n [radius]=\"radius()\"\n [appearance]=\"appearance()\"\n [color]=\"color()\"\n [selected]=\"selected()\"\n [invalid]=\"invalid()\"\n [interactive]=\"!disabled()\"\n [disabled]=\"disabled()\"\n [minHeight]=\"minHeight()\"\n [reservedInlineEnd]=\"reservedInlineEnd()\"\n >\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"solaris-card-media\">\n <ng-content select=\"solaris-card-media\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-media]\">\n <ng-content select=\"[solaris-card-media]\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-eyebrow]\">\n <ng-content select=\"[solaris-card-eyebrow]\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-title]\">\n <ng-content select=\"[solaris-card-title]\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-description]\">\n <ng-content select=\"[solaris-card-description]\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-meta]\">\n <ng-content select=\"[solaris-card-meta]\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-badge]\">\n <ng-content select=\"[solaris-card-badge]\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-footer]\">\n <ng-content select=\"[solaris-card-footer]\"></ng-content>\n </div>\n\n <div\n class=\"solaris-selection-card__slot\"\n ngProjectAs=\"[solaris-card-actions]\"\n data-card-actions=\"true\"\n >\n <ng-content select=\"[solaris-card-actions]\"></ng-content>\n </div>\n </solaris-card>\n</div>\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-media-overlay]',\n standalone: true,\n})\nexport class SolarisCardMediaOverlayDirective {\n @HostBinding('attr.solaris-card-media-overlay')\n readonly attr = '';\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n computed,\n input,\n} from '@angular/core';\n\nimport {\n SolarisCardMediaAlign,\n SolarisCardMediaAppearance,\n SolarisCardMediaColor,\n SolarisCardMediaFit,\n SolarisCardMediaOverlayPosition,\n SolarisCardMediaPadding,\n SolarisCardMediaRadius,\n SolarisCardMediaRatio,\n SolarisCardMediaVariant,\n} from '../model/card-media.type';\n\n@Component({\n selector: 'solaris-card-media',\n standalone: true,\n templateUrl: './card-media.html',\n styleUrls: ['./card-media.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'solaris-card-media-host',\n },\n})\nexport class SolarisCardMedia {\n readonly variant = input<SolarisCardMediaVariant>('image');\n\n readonly src = input<string | null>(null);\n readonly alt = input<string | null>(null);\n\n readonly color = input<SolarisCardMediaColor>('neutral');\n readonly appearance = input<SolarisCardMediaAppearance>('solid');\n\n readonly ratio = input<SolarisCardMediaRatio>('16:9');\n readonly customRatio = input<string | null>(null);\n\n readonly fit = input<SolarisCardMediaFit>('cover');\n readonly objectPosition = input<string>('center');\n\n readonly radius = input<SolarisCardMediaRadius>('inherit');\n readonly align = input<SolarisCardMediaAlign>('center');\n readonly padding = input<SolarisCardMediaPadding>('md');\n\n readonly height = input<string | null>(null);\n readonly minHeight = input<string | null>(null);\n readonly maxHeight = input<string | null>(null);\n\n readonly shadow = input<string | null>(null);\n readonly background = input<string | null>(null);\n readonly foreground = input<string | null>(null);\n readonly borderColor = input<string | null>(null);\n\n readonly overlayInset = input<string | null>(null);\n readonly overlayPosition = input<SolarisCardMediaOverlayPosition>('top-end');\n\n readonly loading = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n\n readonly normalizedSrc = computed(() => normalizeCardMediaValue(this.src()));\n readonly normalizedAlt = computed(() => normalizeCardMediaValue(this.alt()));\n\n readonly normalizedShadow = computed(() => normalizeCardMediaValue(this.shadow()));\n readonly normalizedHeight = computed(() => normalizeCardMediaValue(this.height()));\n readonly normalizedMinHeight = computed(() => normalizeCardMediaValue(this.minHeight()));\n readonly normalizedMaxHeight = computed(() => normalizeCardMediaValue(this.maxHeight()));\n\n readonly normalizedBackground = computed(() => normalizeCardMediaValue(this.background()));\n readonly normalizedForeground = computed(() => normalizeCardMediaValue(this.foreground()));\n readonly normalizedBorderColor = computed(() => normalizeCardMediaValue(this.borderColor()));\n\n readonly normalizedCustomRatio = computed(() => normalizeCardMediaValue(this.customRatio()));\n readonly normalizedOverlayInset = computed(() => normalizeCardMediaValue(this.overlayInset()));\n\n readonly resolvedCustomRatio = computed(() => {\n return this.ratio() === 'custom' ? this.normalizedCustomRatio() : '';\n });\n\n readonly showImage = computed(() => {\n return !this.loading() && this.variant() === 'image' && !!this.normalizedSrc();\n });\n}\n\nfunction normalizeCardMediaValue(value: unknown): string {\n return String(value ?? '').trim();\n}\n","<div\n class=\"solaris-card-media\"\n [class.is-loading]=\"loading()\"\n [class.is-disabled]=\"disabled()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-appearance]=\"appearance()\"\n [attr.data-color]=\"color()\"\n [attr.data-ratio]=\"ratio()\"\n [attr.data-align]=\"align()\"\n [attr.data-radius]=\"radius()\"\n [attr.data-padding]=\"padding()\"\n [attr.data-overlay-position]=\"overlayPosition()\"\n [style.--solaris-card-media-fit]=\"fit()\"\n [style.--solaris-card-media-object-position]=\"objectPosition()\"\n [style.--solaris-card-media-custom-ratio]=\"resolvedCustomRatio() || null\"\n [style.--solaris-card-media-bg-override]=\"normalizedBackground() || null\"\n [style.--solaris-card-media-fg-override]=\"normalizedForeground() || null\"\n [style.--solaris-card-media-border-override]=\"normalizedBorderColor() || null\"\n [style.--solaris-card-media-shadow-override]=\"normalizedShadow() || null\"\n [style.--solaris-card-media-height]=\"normalizedHeight() || null\"\n [style.--solaris-card-media-min-height-override]=\"normalizedMinHeight() || null\"\n [style.--solaris-card-media-max-height]=\"normalizedMaxHeight() || null\"\n [style.--solaris-card-media-overlay-inset]=\"normalizedOverlayInset() || null\"\n>\n <div class=\"solaris-card-media__surface\">\n @if (loading()) {\n <span class=\"solaris-card-media__skeleton\" aria-hidden=\"true\"></span>\n } @else if (showImage()) {\n <img\n class=\"solaris-card-media__image\"\n [src]=\"normalizedSrc()\"\n [alt]=\"normalizedAlt()\"\n decoding=\"async\"\n />\n } @else {\n <div class=\"solaris-card-media__content\">\n <ng-content></ng-content>\n </div>\n }\n\n <div class=\"solaris-card-media__overlay\">\n <ng-content select=\"[solaris-card-media-overlay]\"></ng-content>\n </div>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { SolarisTranslationParams, SolarisTranslationPipe } from '@educarehq/solaris-services';\n\n@Component({\n selector: 'solaris-field-error',\n standalone: true,\n imports: [SolarisTranslationPipe],\n templateUrl: './field-error.html',\n styleUrls: ['./field-error.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FieldErrorComponent {\n @Input() public text?: string;\n @Input() public textKey?: string;\n @Input() public textParams?: SolarisTranslationParams;\n}\n","<div class=\"solaris-field-error\" role=\"alert\" aria-live=\"polite\">\n <span class=\"solaris-field-error__text\">\n @if (textKey) {\n {{ textKey | translate: textParams }}\n } @else {\n {{ text }}\n }\n </span>\n</div>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n QueryList,\n booleanAttribute,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport {\n CardGroupCompareWith,\n CardGroupGap,\n CardGroupLayout,\n CardGroupOrientation,\n CardGroupSelectionMode,\n CardGroupValue,\n} from '../model/card-group.type';\nimport {\n SOLARIS_CARD_GROUP,\n SolarisCardGroupApi,\n SolarisSelectionCardHandle,\n} from '../token/card-group.token';\nimport { FieldErrorComponent } from '../../../forms/form-field/messages/error/field-error';\nimport { SolarisShowErrors } from '../../../common/model/common-configurations.type';\nimport { SolarisSelectionCard } from '../../selection-card/component/selection-card';\nimport { CardGroupValidationError } from '../model/card-group-error.type';\nimport { SolarisTranslationParams } from '@educarehq/solaris-services';\n\n@Component({\n selector: 'solaris-card-group',\n standalone: true,\n imports: [FieldErrorComponent],\n templateUrl: './card-group.html',\n styleUrls: ['./card-group.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SolarisCardGroup),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SolarisCardGroup),\n multi: true,\n },\n {\n provide: SOLARIS_CARD_GROUP,\n useExisting: forwardRef(() => SolarisCardGroup),\n },\n ],\n host: {\n class: 'solaris-card-group-host',\n\n '[attr.data-layout]': 'layout()',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-selection-mode]': 'selectionMode()',\n\n '[attr.data-invalid]': 'invalidComputed() ? \"true\" : null',\n '[attr.data-readonly]': 'readonly() ? \"true\" : null',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n\n '[style.--solaris-card-group-gap]': 'resolvedGap()',\n },\n})\nexport class SolarisCardGroup<T = unknown>\n implements ControlValueAccessor, Validator, AfterContentInit, SolarisCardGroupApi\n{\n readonly disabledInput = input(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly readonly = input(false, { transform: booleanAttribute });\n readonly required = input(false, { transform: booleanAttribute });\n readonly submitted = input(false, { transform: booleanAttribute });\n readonly selectOnFocus = input(false, { transform: booleanAttribute });\n\n readonly gap = input<CardGroupGap>('md');\n readonly invalid = input<boolean | null>(null);\n readonly minSelected = input<number | null>(null);\n readonly maxSelected = input<number | null>(null);\n\n readonly layout = input<CardGroupLayout>('stack');\n readonly orientation = input<CardGroupOrientation>('vertical');\n readonly selectionMode = input<CardGroupSelectionMode>('single');\n\n readonly compareWith = input<CardGroupCompareWith<T>>(Object.is);\n readonly showErrors = input<SolarisShowErrors>('dirtyOrTouched');\n\n readonly requiredErrorKey = input('solaris.cardGroup.errors.required');\n readonly minSelectedErrorKey = input('solaris.cardGroup.errors.minSelected');\n readonly maxSelectedErrorKey = input('solaris.cardGroup.errors.maxSelected');\n\n readonly selectionRejected = output<{\n reason: 'readonly' | 'maxSelected';\n value: unknown;\n }>();\n readonly valueChange = output<CardGroupValue<T>>();\n\n @ContentChildren(forwardRef(() => SolarisSelectionCard), { descendants: true })\n private readonly cardsQuery?: QueryList<SolarisSelectionCard>;\n\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly dirtyState = signal(false);\n private readonly cardsVersion = signal(0);\n private readonly cvaDisabled = signal(false);\n private readonly touchedState = signal(false);\n private readonly internalValue = signal<CardGroupValue<T>>(null);\n\n private onTouched: () => void = () => {};\n private onChange: (value: CardGroupValue<T>) => void = () => {};\n private onValidatorChange: () => void = () => {};\n\n constructor() {\n effect(() => {\n this.selectionMode();\n this.required();\n this.minSelected();\n this.maxSelected();\n this.compareWith();\n this.internalValue();\n\n this.onValidatorChange();\n });\n }\n\n ngAfterContentInit(): void {\n this.bumpCardsVersion();\n\n this.cardsQuery?.changes\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.bumpCardsVersion());\n }\n\n readonly resolvedGap = computed(() => {\n const value = String(this.gap() ?? 'md').trim();\n\n switch (value) {\n case 'sm':\n return 'var(--solaris-space-3)';\n\n case 'md':\n return 'var(--solaris-space-4)';\n\n case 'lg':\n return 'var(--solaris-space-5)';\n\n default:\n return value;\n }\n });\n\n readonly disabled = computed(() => {\n return this.disabledInput() || this.cvaDisabled();\n });\n\n readonly groupRole = computed(() => {\n switch (this.selectionMode()) {\n case 'single':\n return 'radiogroup';\n\n case 'multiple':\n case 'none':\n default:\n return 'group';\n }\n });\n\n readonly selectionCount = computed(() => {\n const value = this.internalValue();\n\n if (Array.isArray(value)) return value.length;\n if (value == null) return 0;\n\n return 1;\n });\n\n readonly validationError = computed<CardGroupValidationError>(() => {\n if (this.disabled() || this.selectionMode() === 'none') return null;\n\n const count = this.selectionCount();\n\n if (this.required() && count === 0) return 'required';\n\n if (this.selectionMode() === 'multiple') {\n const min = this.minSelected();\n const max = this.maxSelected();\n\n if (min != null && count < min) return 'minSelected';\n if (max != null && count > max) return 'maxSelected';\n }\n\n return null;\n });\n\n readonly invalidComputed = computed(() => {\n const explicitInvalid = this.invalid();\n\n if (explicitInvalid !== null) return explicitInvalid;\n\n const localInvalid = this.validationError() !== null;\n\n switch (this.showErrors()) {\n case 'always':\n return localInvalid;\n\n case 'submitted':\n return localInvalid && this.submitted();\n\n case 'dirtyOrTouched':\n default:\n return localInvalid && (this.touchedState() || this.dirtyState());\n }\n });\n\n readonly errorKeyComputed = computed<string | undefined>(() => {\n switch (this.validationError()) {\n case 'required':\n return this.requiredErrorKey();\n\n case 'minSelected':\n return this.minSelectedErrorKey();\n\n case 'maxSelected':\n return this.maxSelectedErrorKey();\n\n default:\n return undefined;\n }\n });\n\n readonly errorParamsComputed = computed<SolarisTranslationParams | undefined>(() => {\n switch (this.validationError()) {\n case 'minSelected':\n return { min: this.minSelected() ?? undefined };\n\n case 'maxSelected':\n return { max: this.maxSelected() ?? undefined };\n\n default:\n return undefined;\n }\n });\n\n public isSelected(value: unknown): boolean {\n const currentValue = this.internalValue();\n\n switch (this.selectionMode()) {\n case 'single':\n return (\n !Array.isArray(currentValue) &&\n currentValue !== null &&\n this.compareWith()(currentValue, value as T)\n );\n\n case 'multiple': {\n const list: T[] = Array.isArray(currentValue) ? currentValue : [];\n\n return list.some((item) => this.compareWith()(item, value as T));\n }\n\n case 'none':\n default:\n return false;\n }\n }\n\n public activate(card: SolarisSelectionCardHandle): void {\n if (this.disabled() || card.disabled()) return;\n\n this.notifyTouched();\n\n if (this.readonly()) {\n this.selectionRejected.emit({\n reason: 'readonly',\n value: card.value(),\n });\n return;\n }\n\n switch (this.selectionMode()) {\n case 'single':\n this.activateSingle(card);\n break;\n\n case 'multiple':\n this.activateMultiple(card);\n break;\n\n case 'none':\n default:\n break;\n }\n\n this.bumpCardsVersion();\n }\n\n public tabIndexFor(card: SolarisSelectionCardHandle): number {\n this.cardsVersion();\n\n if (this.disabled() || card.disabled()) return -1;\n if (this.selectionMode() === 'none') return 0;\n\n const enabled = this.enabledCards();\n\n if (!enabled.length) return -1;\n\n const selected = enabled.find((item) => this.isSelected(item.value()));\n const target = selected ?? enabled[0];\n\n return target === card ? 0 : -1;\n }\n\n public handleKeydown(event: KeyboardEvent, current: SolarisSelectionCardHandle): void {\n if (this.disabled()) return;\n if (this.selectionMode() === 'none') return;\n\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowDown':\n event.preventDefault();\n this.move(current, 1);\n break;\n\n case 'ArrowLeft':\n case 'ArrowUp':\n event.preventDefault();\n this.move(current, -1);\n break;\n\n case 'Home':\n event.preventDefault();\n this.focusFirst();\n break;\n\n case 'End':\n event.preventDefault();\n this.focusLast();\n break;\n\n case ' ':\n case 'Enter':\n event.preventDefault();\n this.activate(current);\n break;\n }\n }\n\n public notifyTouched(): void {\n if (!this.touchedState()) {\n this.touchedState.set(true);\n }\n\n this.onTouched();\n }\n\n writeValue(value: CardGroupValue<T>): void {\n this.internalValue.set(this.normalizeIncomingValue(value, this.selectionMode()));\n\n this.bumpCardsVersion();\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n registerOnChange(fn: (value: CardGroupValue<T>) => void): void {\n this.onChange = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.cvaDisabled.set(isDisabled);\n this.bumpCardsVersion();\n }\n\n validate(_: AbstractControl): ValidationErrors | null {\n switch (this.validationError()) {\n case 'required':\n return { required: true };\n\n case 'minSelected':\n return {\n minSelected: {\n min: this.minSelected(),\n actual: this.selectionCount(),\n },\n };\n\n case 'maxSelected':\n return {\n maxSelected: {\n max: this.maxSelected(),\n actual: this.selectionCount(),\n },\n };\n\n default:\n return null;\n }\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onValidatorChange = fn;\n }\n\n private activateSingle(card: SolarisSelectionCardHandle): void {\n const nextValue = card.value() as T;\n const currentValue = this.internalValue();\n\n const alreadySelected =\n !Array.isArray(currentValue) &&\n currentValue !== null &&\n this.compareWith()(currentValue, nextValue);\n\n if (alreadySelected) return;\n\n this.internalValue.set(nextValue);\n this.emitModelChange(nextValue);\n }\n\n private activateMultiple(card: SolarisSelectionCardHandle): void {\n const currentValue = this.internalValue();\n const current: T[] = Array.isArray(currentValue) ? [...currentValue] : [];\n const cardValue = card.value() as T;\n\n const index = current.findIndex((item) => this.compareWith()(item, cardValue));\n\n if (index >= 0) {\n current.splice(index, 1);\n this.internalValue.set(current);\n this.emitModelChange(current);\n return;\n }\n\n const max = this.maxSelected();\n\n if (max != null && current.length >= max) {\n this.selectionRejected.emit({\n reason: 'maxSelected',\n value: cardValue,\n });\n return;\n }\n\n current.push(cardValue);\n this.internalValue.set(current);\n this.emitModelChange(current);\n }\n\n private move(current: SolarisSelectionCardHandle, direction: 1 | -1): void {\n const enabled = this.enabledCards();\n\n if (!enabled.length) return;\n\n const currentIndex = enabled.indexOf(current);\n const startIndex = Math.max(currentIndex, 0);\n const nextIndex = (startIndex + direction + enabled.length) % enabled.length;\n const next = enabled[nextIndex];\n\n if (this.selectionMode() === 'single' && this.selectOnFocus()) {\n this.activate(next);\n }\n\n next.focus();\n }\n\n private focusFirst(): void {\n const first = this.enabledCards()[0];\n\n if (!first) return;\n\n if (this.selectionMode() === 'single' && this.selectOnFocus()) {\n this.activate(first);\n }\n\n first.focus();\n }\n\n private focusLast(): void {\n const enabled = this.enabledCards();\n const last = enabled.at(-1);\n\n if (!last) return;\n\n if (this.selectionMode() === 'single' && this.selectOnFocus()) {\n this.activate(last);\n }\n\n last.focus();\n }\n\n private enabledCards(): SolarisSelectionCardHandle[] {\n this.cardsVersion();\n\n return (this.cardsQuery?.toArray() ?? []).filter((card) => !card.disabled());\n }\n\n private emitModelChange(value: CardGroupValue<T>): void {\n this.dirtyState.set(true);\n\n this.onChange(value);\n this.valueChange.emit(value);\n this.onValidatorChange();\n }\n\n private normalizeIncomingValue(\n value: CardGroupValue<T>,\n mode: CardGroupSelectionMode,\n ): CardGroupValue<T> {\n switch (mode) {\n case 'single':\n return Array.isArray(value) ? (value[0] ?? null) : value;\n\n case 'multiple':\n if (value == null) return [];\n\n return Array.isArray(value) ? value : [value];\n\n case 'none':\n default:\n return null;\n }\n }\n\n private bumpCardsVersion(): void {\n this.cardsVersion.update((value) => value + 1);\n }\n}\n","<div\n class=\"solaris-card-group__control\"\n [attr.role]=\"groupRole()\"\n [attr.aria-disabled]=\"disabled() ? 'true' : null\"\n [attr.aria-invalid]=\"invalidComputed() ? 'true' : null\"\n>\n <ng-content></ng-content>\n</div>\n\n<div class=\"solaris-card-group__message\">\n @if (errorKeyComputed()) {\n <solaris-field-error\n [textKey]=\"errorKeyComputed()\"\n [textParams]=\"errorParamsComputed()\"\n ></solaris-field-error>\n } @else {\n <ng-content select=\"[solaris-card-group-message], [card-group-message]\"></ng-content>\n }\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-description]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--description' },\n})\nexport class SolarisCardDescriptionDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-actions]',\n standalone: true,\n host: {\n class: 'solaris-card-slot solaris-card-slot--actions',\n 'data-card-actions': 'true',\n },\n})\nexport class SolarisCardActionsDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-eyebrow]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--eyebrow' },\n})\nexport class SolarisCardEyebrowDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-footer]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--footer' },\n})\nexport class SolarisCardFooterDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-media]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--media' },\n})\nexport class SolarisCardMediaDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-meta]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--meta' },\n})\nexport class SolarisCardMetaDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-badge]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--badge' },\n})\nexport class SolarisCardBadgeDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-title]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--title' },\n})\nexport class SolarisCardTitleDirective {}\n","import { SolarisCardDescriptionDirective } from './card-description.directive';\nimport { SolarisCardEyebrowDirective } from './card-eyebrow.directive';\nimport { SolarisCardActionsDirective } from './card-actions.directive';\nimport { SolarisCardFooterDirective } from './card-footer.directive';\nimport { SolarisCardMediaDirective } from './card-media.directive';\nimport { SolarisCardTitleDirective } from './card-title.directive';\nimport { SolarisCardBadgeDirective } from './card-badge.directive';\nimport { SolarisCardMetaDirective } from './card-meta.directive';\n\nexport const SOLARIS_CARD_SLOT_DIRECTIVES = [\n SolarisCardMediaDirective,\n SolarisCardEyebrowDirective,\n SolarisCardTitleDirective,\n SolarisCardDescriptionDirective,\n SolarisCardMetaDirective,\n SolarisCardBadgeDirective,\n SolarisCardActionsDirective,\n SolarisCardFooterDirective,\n] as const;\n","export type PhoneSanitizeConfig = {\n allowedChars: RegExp;\n};\n\nexport function sanitizePhoneInput(v: string): string {\n let s = (v ?? '').replace(/[^\\d+\\-\\s().]/g, '');\n s = s.replace(/\\+/g, (_m, offset) => (offset === 0 ? '+' : ''));\n return s;\n}\n\nexport function insertAtCursor(input: HTMLInputElement, text: string): void {\n const start = input.selectionStart ?? input.value.length;\n const end = input.selectionEnd ?? input.value.length;\n input.value = input.value.slice(0, start) + text + input.value.slice(end);\n const pos = start + text.length;\n input.setSelectionRange(pos, pos);\n}\n\nexport function enforceMaxDigitsInPlace(input: HTMLInputElement, maxDigits?: number): void {\n if (!maxDigits) return;\n\n const v = input.value ?? '';\n const sanitized = sanitizePhoneInput(v);\n\n const digits = (sanitized.match(/\\d/g) ?? []).length;\n if (digits <= maxDigits) {\n if (sanitized !== v) input.value = sanitized;\n return;\n }\n\n let digitCount = 0;\n let out = '';\n for (const ch of sanitized) {\n if (/\\d/.test(ch)) {\n if (digitCount >= maxDigits) break;\n digitCount++;\n }\n out += ch;\n }\n input.value = out;\n}\n\nexport function shouldBlockBeforeInput(ev: InputEvent, cfg: PhoneSanitizeConfig): boolean {\n return !!ev.data && !cfg.allowedChars.test(ev.data);\n}\n\nexport function shouldBlockKeyDown(ev: KeyboardEvent): boolean {\n if (ev.ctrlKey || ev.metaKey || ev.altKey) return false;\n\n const k = ev.key;\n const allowedControl = [\n 'Backspace',\n 'Delete',\n 'Tab',\n 'Enter',\n 'Escape',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ];\n if (allowedControl.includes(k)) return false;\n if (/^\\d$/.test(k)) return false;\n return !(k === '+' || k === '-' || k === ' ' || k === '(' || k === ')' || k === '.');\n}\n","import { getCountries, getCountryCallingCode } from 'libphonenumber-js';\n\nexport function buildCallingCodeIndex(): Map<string, string[]> {\n const m = new Map<string, string[]>();\n for (const c of getCountries()) {\n const code = getCountryCallingCode(c);\n const arr = m.get(code) ?? [];\n arr.push(c.toLowerCase());\n m.set(code, arr);\n }\n return m;\n}\n\nexport function pickIso2ForCallingCode(\n callingCode: string,\n selectedIso2: string | null,\n index: Map<string, string[]>,\n preferredCountries?: string[],\n): string | null {\n const list = index.get(callingCode) ?? [];\n if (!list.length) return null;\n\n const sel = selectedIso2?.toLowerCase() ?? null;\n if (sel && list.includes(sel)) return sel;\n\n if (callingCode === '1') {\n if (list.includes('us')) return 'us';\n if (list.includes('ca')) return 'ca';\n }\n\n const preferred = (preferredCountries ?? []).map((x) => x.toLowerCase());\n for (const p of preferred) {\n if (list.includes(p)) return p;\n }\n\n return list[0] ?? null;\n}\n\nexport function getInitialCountryFromBrowser(fallbackIso2: string): string {\n const lang = globalThis?.navigator?.language ?? '';\n const region = lang.split('-')[1]?.toLowerCase() ?? '';\n return region.length === 2 ? region : fallbackIso2;\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface SolarisFormFieldFeature {\n kind: 'email' | 'password';\n}\n\nexport const SOLARIS_FORM_FIELD_FEATURES = new InjectionToken<\n ReadonlyArray<SolarisFormFieldFeature>\n>('SOLARIS_FORM_FIELD_FEATURES');\n","import { Injectable, Optional, inject, signal, DestroyRef } from '@angular/core';\nimport { NgControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport type { SolarisPasswordDirective } from '../../input-text/directives/input-password.directive';\nimport type { SolarisEmailDirective } from '../../input-text/directives/input-email.directive';\nimport { SOLARIS_FORM_FIELD_FEATURES } from '../tokens/form-field-features';\n\n@Injectable()\nexport class SolarisFormFieldController {\n features = inject(SOLARIS_FORM_FIELD_FEATURES, { optional: true }) ?? [];\n @Optional() private readonly ngForm = inject(NgForm, { optional: true });\n @Optional() private readonly formGroupDir = inject(FormGroupDirective, { optional: true });\n private readonly destroyRef = inject(DestroyRef);\n\n readonly submitted = signal<boolean>(false);\n readonly control = signal<NgControl | null>(null);\n readonly email = signal<SolarisEmailDirective | null>(null);\n readonly password = signal<SolarisPasswordDirective | null>(null);\n\n constructor() {\n this.formGroupDir?.ngSubmit\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.submitted.set(true));\n\n this.ngForm?.ngSubmit\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.submitted.set(true));\n }\n\n registerPassword(dir: SolarisPasswordDirective | null) {\n this.password.set(dir);\n }\n\n registerEmail(dir: SolarisEmailDirective | null) {\n this.email.set(dir);\n }\n\n registerControl(ctrl: NgControl | null) {\n if (!ctrl && this.control()) return;\n this.control.set(ctrl);\n }\n\n passwordVisible(): boolean {\n return this.password()?.visible() ?? false;\n }\n\n togglePasswordVisibility(): void {\n this.password()?.toggle();\n }\n\n resetSubmitted() {\n this.submitted.set(false);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface SolarisInputApi {\n element: HTMLInputElement | HTMLTextAreaElement;\n setType?(type: string): void;\n getType?(): string;\n}\n\nexport const SOLARIS_INPUT = new InjectionToken<SolarisInputApi>('SOLARIS_INPUT');\n","import { Directive, ElementRef, HostBinding, inject, Injector, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\nimport { SOLARIS_INPUT, SolarisInputApi } from '../tokens/input.token';\n\n@Directive({\n selector: 'input[solaris-input],textarea[solaris-input]',\n standalone: true,\n providers: [\n {\n provide: SOLARIS_INPUT,\n useFactory: (): SolarisInputApi => {\n const el = inject(ElementRef<HTMLInputElement | HTMLTextAreaElement>).nativeElement;\n return {\n element: el,\n setType: (type: string) => {\n if (el instanceof HTMLInputElement) el.type = type;\n },\n getType: () => (el instanceof HTMLInputElement ? el.type : 'textarea'),\n };\n },\n },\n ],\n})\nexport class InputTextDirective {\n private readonly el = inject(ElementRef<HTMLInputElement | HTMLTextAreaElement>);\n private readonly injector = inject(Injector);\n\n @Optional()\n private readonly field = inject(SolarisFormFieldController, { optional: true });\n\n @HostBinding('attr.solaris-input') readonly attr = '';\n\n @HostBinding('attr.placeholder') get placeholderAttr() {\n return this.el.nativeElement.getAttribute('placeholder');\n }\n\n constructor() {\n queueMicrotask(() => {\n const ngc = this.injector.get(NgControl, null, { self: true, optional: true });\n this.field?.registerControl(ngc);\n });\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n HostBinding,\n inject,\n Injector,\n Input,\n OnDestroy,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n NgControl,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport {\n enforceMaxDigitsInPlace,\n insertAtCursor,\n sanitizePhoneInput,\n shouldBlockBeforeInput,\n shouldBlockKeyDown,\n} from '../helper/phone-input.sanitize';\nimport {\n buildCallingCodeIndex,\n getInitialCountryFromBrowser,\n pickIso2ForCallingCode,\n} from '../helper/phone-input.country';\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\nimport { InputTextDirective } from '../../input-text/directives/input-text.directive';\nimport type { ItiInstance, ItiUtils } from '../model/phone-input.iti-types';\nimport { AsYouType, parsePhoneNumberFromString } from 'libphonenumber-js';\nimport { PhoneFormat, Iso2 } from '../model/phone-input.type';\nimport intlTelInput from 'intl-tel-input';\n\n@Component({\n selector: 'solaris-phone-input',\n standalone: true,\n templateUrl: './phone-input.html',\n styleUrls: ['./phone-input.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SolarisPhoneInput),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SolarisPhoneInput),\n multi: true,\n },\n ],\n imports: [InputTextDirective],\n})\nexport class SolarisPhoneInput\n implements AfterViewInit, OnDestroy, ControlValueAccessor, Validator\n{\n private readonly field = inject(SolarisFormFieldController, { optional: true });\n private readonly renderer = inject(Renderer2);\n private readonly injector = inject(Injector);\n\n @HostBinding('attr.solaris-phone-input') readonly marker = '';\n @ViewChild('input', { static: false }) inputRef?: ElementRef<HTMLInputElement>;\n\n @Input() set placeholder(v: string | undefined) {\n this._placeholder = v;\n this.applyPlaceholderIfCustom();\n }\n get placeholder(): string | undefined {\n return this._placeholder;\n }\n\n @Input() format: PhoneFormat = 'e164';\n @Input({ alias: 'only-countries' }) onlyCountries?: Iso2[];\n @Input({ alias: 'default-country' }) defaultCountry: Iso2 = 'br';\n @Input({ alias: 'preferred-countries' }) preferredCountries?: Iso2[];\n\n private _raw = '';\n private maxDigits?: number;\n private _placeholder?: string;\n protected _disabled = false;\n private iti: ItiInstance | null = null;\n private _lastE164: string | null = null;\n private readonly allowedChars = /^[0-9+\\-\\s().]*$/;\n private callingCodeIndex = new Map<string, string[]>();\n\n private onChange: (v: string | null) => void = () => {};\n private onTouched: () => void = () => {};\n private onValidatorChange?: () => void;\n\n constructor() {\n queueMicrotask(() => {\n const ngControl = this.injector.get(NgControl, null, { self: true, optional: true });\n this.field?.registerControl(ngControl);\n });\n }\n\n ngAfterViewInit(): void {\n const el = this.el;\n if (!el) return;\n this.callingCodeIndex = buildCallingCodeIndex();\n this.initIntlTelInput(el);\n this.setupListeners(el);\n\n if (this._raw) el.value = this._raw;\n\n this.normalizeAndFormat(true);\n this.recalculateLimits();\n this.afterUtilsReady();\n }\n\n ngOnDestroy(): void {\n const el = this.el;\n if (el) this.teardownListeners(el);\n this.iti?.destroy?.();\n this.iti = null;\n }\n\n public writeValue(value: string | null): void {\n this._lastE164 = value ?? null;\n const el = this.el;\n if (!el) return;\n\n if (!value) {\n this._raw = '';\n el.value = '';\n this.recomputeFromRaw(true);\n return;\n }\n const iso2 = this.getSelectedIso2();\n const cc = iso2 ? iso2.toUpperCase() : undefined;\n const parsed = parsePhoneNumberFromString(value, cc as any);\n const next = parsed ? parsed.formatNational() : value;\n this._raw = next;\n el.value = next;\n\n this.recomputeFromRaw(true);\n }\n\n public registerOnChange(fn: (v: string | null) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this._disabled = isDisabled;\n const el = this.el;\n if (el) el.disabled = isDisabled;\n }\n\n public validate(): ValidationErrors | null {\n if (!this._raw?.trim()) return null;\n return this._lastE164 ? null : { solarisPhone: true };\n }\n\n public registerOnValidatorChange(fn: () => void): void {\n this.onValidatorChange = fn;\n }\n\n protected onInput(silent = false): void {\n this.normalizeAndFormat(silent);\n }\n\n protected onBlur(): void {\n this.onTouched();\n const el = this.el;\n if (!el) return;\n\n this._raw = el.value ?? '';\n this.recomputeFromRaw(false);\n }\n\n protected onFocus(): void {\n const el = this.el;\n if (!el || this._disabled) return;\n if ((el.value ?? '').trim().length) return;\n\n const dial = this.getSelectedDialCode();\n if (!dial) return;\n\n const v = `+${dial} `;\n el.value = v;\n this._raw = v;\n\n queueMicrotask(() => el.setSelectionRange(v.length, v.length));\n this.recomputeFromRaw(false);\n }\n\n private normalizeAndFormat(silent: boolean): void {\n const el = this.el;\n if (!el) return;\n\n const raw = sanitizePhoneInput(el.value ?? '');\n const selectedIso2 = this.getSelectedIso2();\n const selectedCountry = selectedIso2 ? selectedIso2.toUpperCase() : undefined;\n\n const ayt = raw.trim().startsWith('+')\n ? new AsYouType()\n : new AsYouType(selectedCountry as any);\n\n const formatted = ayt.input(raw);\n el.value = formatted;\n this._raw = formatted;\n\n const number = ayt.getNumber();\n if (number?.countryCallingCode && this.iti) {\n const nextIso2 = pickIso2ForCallingCode(\n number.countryCallingCode,\n selectedIso2,\n this.callingCodeIndex,\n this.preferredCountries,\n );\n if (nextIso2 && nextIso2 !== selectedIso2) {\n this.setCountrySafely(nextIso2);\n }\n }\n\n enforceMaxDigitsInPlace(el, this.maxDigits);\n this.recomputeFromRaw(silent);\n }\n\n private recomputeFromRaw(silent: boolean): void {\n const raw = (this._raw ?? '').trim();\n\n if (!raw) {\n this._lastE164 = null;\n if (!silent) this.emit(null);\n return;\n }\n\n const iso2 = this.getSelectedIso2();\n const cc = iso2 ? iso2.toUpperCase() : undefined;\n\n const parsed = raw.startsWith('+')\n ? parsePhoneNumberFromString(raw)\n : parsePhoneNumberFromString(raw, cc as any);\n\n if (parsed?.isValid()) {\n this._lastE164 = parsed.number;\n if (!silent) this.emit(parsed.number);\n return;\n }\n\n this._lastE164 = null;\n if (!silent) this.emit(null);\n }\n\n private emit(v: string | null): void {\n this.onChange(v);\n this.onValidatorChange?.();\n }\n\n private initIntlTelInput(el: HTMLInputElement): void {\n const options: Record<string, unknown> = {\n initialCountry: getInitialCountryFromBrowser((this.defaultCountry || 'br').toLowerCase()),\n separateDialCode: false,\n nationalMode: false,\n formatOnDisplay: true,\n autoPlaceholder: 'aggressive',\n loadUtils: () => import('intl-tel-input/build/js/utils.js'),\n };\n\n const only = this.onlyCountries?.map((x) => x.toLowerCase());\n if (only?.length) options['onlyCountries'] = only;\n const preferred = this.preferredCountries?.map((x) => x.toLowerCase());\n if (preferred?.length) options['preferredCountries'] = preferred;\n this.iti = intlTelInput(el, options) as unknown as ItiInstance;\n this.applyPlaceholderIfCustom();\n }\n\n private afterUtilsReady(): void {\n const itiAny: any = this.iti as any;\n const p: Promise<unknown> | undefined = itiAny?.promise;\n\n const run = () => {\n const iso2 = this.getSelectedIso2();\n if (iso2) this.setCountrySafely(iso2);\n this.recalculateLimits();\n };\n\n if (p?.then) p.then(run);\n else queueMicrotask(run);\n }\n\n private setCountrySafely(iso2: string): void {\n try {\n (this.iti as any)?.setCountry?.(iso2);\n } catch {}\n }\n\n private recalculateLimits(): void {\n this.updateMaxDigits();\n const el = this.el;\n if (el) enforceMaxDigitsInPlace(el, this.maxDigits);\n }\n\n private updateMaxDigits(): void {\n if (!this.iti) {\n this.maxDigits = undefined;\n return;\n }\n\n const c: any = (this.iti as any).getSelectedCountryData?.();\n const iso2 = String(c?.iso2 ?? '').toLowerCase();\n const dialDigits = String(c?.dialCode ?? '').replace(/\\D/g, '').length;\n\n const u = this.getUtils();\n\n const exNationalDigits = this.safe(() => {\n if (!u?.getExampleNumber) return undefined;\n const t = u.numberType?.MOBILE;\n const ex = u.getExampleNumber?.(iso2, true, t);\n return ex ? (String(ex).match(/\\d/g) ?? []).length : undefined;\n });\n\n if (exNationalDigits && exNationalDigits > 0) {\n this.maxDigits = dialDigits + exNationalDigits;\n return;\n }\n\n const el = this.el;\n const ph = el?.getAttribute('placeholder') ?? '';\n const phDigits = (ph.match(/\\d/g) ?? []).length;\n this.maxDigits = phDigits > 0 ? phDigits : undefined;\n }\n\n private setupListeners(el: HTMLInputElement): void {\n el.addEventListener('beforeinput', this.onBeforeInput as any);\n el.addEventListener('keydown', this.onKeyDown);\n el.addEventListener('paste', this.onPaste);\n el.addEventListener('countrychange', this.onCountryChange);\n }\n\n private teardownListeners(el: HTMLInputElement): void {\n el.removeEventListener('beforeinput', this.onBeforeInput as any);\n el.removeEventListener('keydown', this.onKeyDown);\n el.removeEventListener('paste', this.onPaste);\n el.removeEventListener('countrychange', this.onCountryChange);\n }\n\n private readonly onCountryChange = () => {\n this.recalculateLimits();\n\n const el = this.el;\n if (!el || !(el.value ?? '').trim()) return;\n\n this._raw = el.value ?? '';\n this.normalizeAndFormat(false);\n };\n\n private readonly onBeforeInput = (ev: InputEvent) => {\n if (shouldBlockBeforeInput(ev, { allowedChars: this.allowedChars })) {\n ev.preventDefault();\n }\n };\n\n private readonly onKeyDown = (ev: KeyboardEvent) => {\n if (shouldBlockKeyDown(ev)) ev.preventDefault();\n };\n\n private readonly onPaste = (ev: ClipboardEvent) => {\n const el = this.el;\n if (!el) return;\n\n const text = ev.clipboardData?.getData('text') ?? '';\n if (!text) return;\n\n const sanitized = sanitizePhoneInput(text);\n if (sanitized === text) return;\n\n ev.preventDefault();\n insertAtCursor(el, sanitized);\n\n queueMicrotask(() => {\n this.recalculateLimits();\n this.normalizeAndFormat(false);\n });\n };\n\n private applyPlaceholderIfCustom(): void {\n const el = this.el;\n if (!el) return;\n\n const ph = this._placeholder?.trim();\n if (ph) this.renderer.setAttribute(el, 'placeholder', ph);\n }\n\n private getSelectedIso2(): string | null {\n try {\n const data = (this.iti as any)?.getSelectedCountryData?.();\n return (data?.iso2 as string | undefined)?.toLowerCase() ?? null;\n } catch {\n return null;\n }\n }\n\n private getSelectedDialCode(): string | null {\n try {\n const data = (this.iti as any)?.getSelectedCountryData?.();\n return (data?.dialCode as string | undefined) ?? null;\n } catch {\n return null;\n }\n }\n\n private getUtils(): ItiUtils | undefined {\n return (globalThis as any).intlTelInputUtils as ItiUtils | undefined;\n }\n\n private safe<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch {\n return undefined;\n }\n }\n\n private get el(): HTMLInputElement | null {\n return this.inputRef?.nativeElement ?? null;\n }\n}\n","<input\n #input\n solaris-input\n type=\"tel\"\n [disabled]=\"_disabled\"\n (focus)=\"onFocus()\"\n (input)=\"onInput()\"\n (blur)=\"onBlur()\"\n data-bwignore=\"true\"\n/>\n","import {\n Directive,\n HostBinding,\n Optional,\n inject,\n signal,\n WritableSignal,\n Input,\n forwardRef,\n Injector,\n} from '@angular/core';\nimport {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n NgControl,\n} from '@angular/forms';\n\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\nimport { SOLARIS_FORM_FIELD_FEATURES } from '../../form-field/tokens/form-field-features';\nimport { SolarisPasswordErrorBag } from '../model/password-directive.type';\n\n@Directive({\n selector: 'input[solaris-password]',\n standalone: true,\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SolarisPasswordDirective),\n multi: true,\n },\n { provide: SOLARIS_FORM_FIELD_FEATURES, useValue: { kind: 'password' }, multi: true },\n ],\n})\nexport class SolarisPasswordDirective implements Validator {\n @Input() minLength = 8;\n @Input() requireUpper = true;\n @Input() requireLower = true;\n @Input() requireNumber = true;\n @Input() requireSpecial = false;\n\n @Input() set requireUpperKebab(v: any) {\n this.requireUpper = coerceBoolean(v);\n this._onChange?.();\n }\n @Input() set requireLowerKebab(v: any) {\n this.requireLower = coerceBoolean(v);\n this._onChange?.();\n }\n @Input() set requireNumberKebab(v: any) {\n this.requireNumber = coerceBoolean(v);\n this._onChange?.();\n }\n @Input() set minLengthKebab(v: any) {\n this.minLength = coerceNumber(v, 8);\n this._onChange?.();\n }\n @Input() set requireSpecialKebab(v: any) {\n this.requireSpecial = coerceBoolean(v);\n this._onChange?.();\n }\n\n @HostBinding('attr.type') get type() {\n return this.visible() ? 'text' : 'password';\n }\n @HostBinding('attr.spellcheck') spellcheck = 'false';\n @HostBinding('attr.solaris-password') readonly marker = '';\n @HostBinding('attr.solaris-input') readonly solarisInput = '';\n @HostBinding('attr.autocapitalize') autocapitalize = 'none';\n @HostBinding('attr.autocomplete') autocomplete = 'current-password';\n\n @Optional() private readonly field = inject(SolarisFormFieldController, { optional: true });\n private readonly injector = inject(Injector);\n\n readonly visible: WritableSignal<boolean> = signal(false);\n\n private _onChange?: () => void;\n\n constructor() {\n this.field?.registerPassword(this);\n queueMicrotask(() => {\n const ngc = this.injector.get(NgControl, null, { self: true, optional: true });\n this.field?.registerControl(ngc);\n });\n }\n\n public toggle(): void {\n this.visible.set(!this.visible());\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const v = String(control.value ?? '');\n if (!v) return null;\n\n const errors: SolarisPasswordErrorBag = {};\n\n if (this.minLength && v.length < this.minLength) {\n errors.minLength = { requiredLength: this.minLength, actualLength: v.length };\n }\n if (this.requireLower && !/[a-z]/.test(v)) errors.lowercase = true;\n if (this.requireUpper && !/[A-Z]/.test(v)) errors.uppercase = true;\n if (this.requireNumber && !/\\d/.test(v)) errors.number = true;\n if (this.requireSpecial && !/[^\\w\\s]/.test(v)) errors.special = true;\n\n return Object.keys(errors).length ? { solarisPassword: errors } : null;\n }\n\n public registerOnValidatorChange(fn: () => void): void {\n this._onChange = fn;\n }\n}\n\nfunction coerceBoolean(v: any): boolean {\n return v === '' || v === true || v === 'true' || v === 1 || v === '1';\n}\n\nfunction coerceNumber(v: any, fallback: number): number {\n const n = Number(v);\n return Number.isFinite(n) ? n : fallback;\n}\n","import {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n NgControl,\n} from '@angular/forms';\nimport { Directive, forwardRef, HostBinding, inject, Optional, Injector } from '@angular/core';\n\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\nimport { SOLARIS_FORM_FIELD_FEATURES } from '../../form-field/tokens/form-field-features';\n\n@Directive({\n selector: 'input[solaris-email],input[solarisEmail]',\n standalone: true,\n providers: [\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => SolarisEmailDirective), multi: true },\n { provide: SOLARIS_FORM_FIELD_FEATURES, useValue: { kind: 'email' }, multi: true },\n ],\n})\nexport class SolarisEmailDirective implements Validator {\n @HostBinding('attr.type') type = 'email';\n @HostBinding('attr.inputmode') inputmode = 'email';\n @HostBinding('attr.spellcheck') spellcheck = 'false';\n @HostBinding('attr.autocomplete') autocomplete = 'email';\n @HostBinding('attr.solaris-input') readonly solarisInput = '';\n @HostBinding('attr.autocapitalize') autocapitalize = 'none';\n @Optional() private readonly field = inject(SolarisFormFieldController, { optional: true });\n private readonly injector = inject(Injector);\n\n constructor() {\n this.field?.registerEmail(this);\n queueMicrotask(() => {\n const ngc = this.injector.get(NgControl, null, { self: true, optional: true });\n this.field?.registerControl(ngc);\n });\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n const v = String(control.value ?? '').trim();\n if (!v) return null;\n const ok = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(v);\n return ok ? null : { solarisEmail: true };\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface SolarisFormFieldControllerLike {\n passwordVisible(): boolean;\n togglePasswordVisibility(): void;\n}\n\nexport const SOLARIS_FORM_FIELD_CONTROLLER = new InjectionToken<SolarisFormFieldControllerLike>(\n 'SOLARIS_FORM_FIELD_CONTROLLER',\n);\n","import { ChangeDetectionStrategy, Component, HostBinding, Optional, inject } from '@angular/core';\n\nimport {\n SOLARIS_FORM_FIELD_CONTROLLER,\n SolarisFormFieldControllerLike,\n} from '../../form-field/tokens/form-field-controller.token';\nimport { SOLARIS_TRANSLATION, TranslationInterface } from '@educarehq/solaris-services';\n\n@Component({\n selector: 'solaris-password-toggle',\n standalone: true,\n templateUrl: './password-toggle.html',\n styleUrls: ['./password-toggle.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PasswordToggle {\n private readonly translationService: TranslationInterface = inject(SOLARIS_TRANSLATION);\n\n @HostBinding('attr.solaris-suffix') readonly solarisSuffix = '';\n @Optional() private readonly field = inject<SolarisFormFieldControllerLike>(\n SOLARIS_FORM_FIELD_CONTROLLER,\n { optional: true },\n );\n\n protected visible = () => this.field?.passwordVisible() ?? false;\n\n protected toggle(): void {\n this.field?.togglePasswordVisibility();\n }\n protected get ariaLabelHide() {\n return this.translationService.translate('ui.solaris.password.aria.hidePassword');\n }\n protected get ariaLabelShow() {\n return this.translationService.translate('ui.solaris.password.aria.showPassword');\n }\n}\n","<button\n class=\"solaris-password-toggle\"\n type=\"button\"\n (click)=\"toggle()\"\n [attr.aria-pressed]=\"visible() ? 'true' : 'false'\"\n [attr.aria-label]=\"visible() ? ariaLabelHide : ariaLabelShow\"\n>\n @if (visible()) {\n <i class=\"ph ph-eye-slash\"></i>\n } @else {\n <i class=\"ph ph-eye\"></i>\n }\n</button>\n","import { Directive, Optional, inject } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { SolarisFormFieldController } from '../controller/form-field-controller';\n\n@Directive({\n selector:\n 'input[solaris-password],input[solaris-email],input[solaris-input],textarea[solaris-input]',\n standalone: true,\n})\nexport class SolarisControlBridgeDirective {\n @Optional() private readonly ctrl = inject(NgControl, { optional: true });\n @Optional() private readonly field = inject(SolarisFormFieldController, { optional: true });\n\n constructor() {\n if (this.ctrl) this.field?.registerControl(this.ctrl);\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[solaris-prefix]',\n standalone: true,\n})\nexport class SolarisPrefixDirective {\n @HostBinding('attr.solaris-prefix') readonly attr = '';\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-suffix]',\n standalone: true,\n})\nexport class SolarisSuffixDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n computed,\n effect,\n inject,\n signal,\n input,\n} from '@angular/core';\n\nimport { SolarisFormFieldAppearance, SolarisFormFieldRadius } from '../model/form-field.type';\nimport { SOLARIS_FORM_FIELD_CONTROLLER } from '../tokens/form-field-controller.token';\nimport { SolarisShowErrors } from '../../../common/model/common-configurations.type';\nimport { PasswordToggle } from '../../input-text/password-toggle/password-toggle';\nimport { SolarisFormFieldController } from '../controller/form-field-controller';\nimport { SolarisPrefixDirective } from '../directives/prefix.directive';\nimport { SolarisSuffixDirective } from '../directives/suffix.directive';\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\nimport { FieldErrorComponent } from '../messages/error/field-error';\nimport { merge } from 'rxjs';\n\n@Component({\n selector: 'solaris-form-field',\n standalone: true,\n imports: [PasswordToggle, FieldErrorComponent, SolarisTranslationPipe],\n templateUrl: './form-field.html',\n styleUrls: ['./form-field.scss'],\n providers: [\n SolarisFormFieldController,\n { provide: SOLARIS_FORM_FIELD_CONTROLLER, useExisting: SolarisFormFieldController },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormField {\n protected readonly field = inject(SolarisFormFieldController);\n @ContentChild(SolarisPrefixDirective) prefix?: SolarisPrefixDirective;\n @ContentChild(SolarisSuffixDirective) suffix?: SolarisSuffixDirective;\n\n @Input() public hint?: string = '';\n @Input() public label?: string = '';\n @Input() public hintKey?: string = '';\n @Input() public labelKey?: string = '';\n @Input() public radius: SolarisFormFieldRadius = 'sm';\n @Input() public showErrors: SolarisShowErrors = 'dirtyOrTouched';\n @Input() public appearance: SolarisFormFieldAppearance = 'filled';\n\n private readonly _tick = signal(0);\n readonly customErrorKey = input<string>('');\n readonly invalid = input<boolean | null>(null);\n readonly customErrorParams = input<Record<string, unknown> | undefined>(undefined);\n\n constructor() {\n effect((onCleanup) => {\n const ac = this.field.control()?.control;\n if (!ac) return;\n\n const sub = merge(ac.statusChanges, ac.valueChanges).subscribe(() => {\n this._tick.update((v) => v + 1);\n });\n\n onCleanup(() => sub.unsubscribe());\n });\n }\n\n get hasPrefix(): boolean {\n return !!this.prefix;\n }\n get hasSuffix(): boolean {\n return !!this.suffix;\n }\n\n private getDirectErrorKey(errors: Record<string, any>): string {\n if (errors['required']) return 'ui.solaris.validation.required';\n if (errors['email'] || errors['solarisEmail']) return 'ui.solaris.validation.email';\n return '';\n }\n\n private getPasswordErrorKey(bag: any): string {\n if (bag?.minLength) return 'ui.solaris.validation.password.minLength';\n if (bag?.uppercase) return 'ui.solaris.validation.password.uppercase';\n if (bag?.lowercase) return 'ui.solaris.validation.password.lowercase';\n if (bag?.number) return 'ui.solaris.validation.password.number';\n if (bag?.special) return 'ui.solaris.validation.password.special';\n return 'ui.solaris.validation.password.invalid';\n }\n\n readonly showPasswordToggle = computed(() => !!this.field.password());\n\n readonly invalidComputed = computed(() => {\n this._tick();\n const invalid = this.invalid();\n if (invalid !== null) return invalid;\n const c = this.field.control();\n if (!c) return false;\n if (this.showErrors === 'always') return !!c.invalid;\n if (this.showErrors === 'submitted') return !!(c.invalid && this.field.submitted());\n return !!(c.invalid && (c.touched || c.dirty));\n });\n\n readonly errorParams = computed<Record<string, unknown> | undefined>(() => {\n this._tick();\n if (!this.invalidComputed()) return undefined;\n\n const customKey = this.customErrorKey()?.trim();\n if (customKey) {\n return this.customErrorParams();\n }\n\n const errors = this.field.control()?.errors;\n if (!errors) return undefined;\n\n if (errors['solarisPassword']) {\n return errors['solarisPassword'];\n }\n\n return undefined;\n });\n\n readonly errorKey = computed(() => {\n this._tick();\n\n if (!this.invalidComputed()) return '';\n\n const customKey = this.customErrorKey()?.trim();\n if (customKey) return customKey;\n\n const errors = this.field.control()?.errors;\n if (!errors) return '';\n\n const direct = this.getDirectErrorKey(errors);\n if (direct) return direct;\n\n if (errors['solarisPassword']) {\n return this.getPasswordErrorKey(errors['solarisPassword']);\n }\n\n return 'solaris.validation.invalid';\n });\n\n readonly disabledComputed = computed(() => {\n this._tick();\n const c = this.field.control();\n return !!c?.disabled;\n });\n}\n","<div\n class=\"solaris-form-field\"\n [class.solaris-form-field--has-prefix]=\"hasPrefix\"\n [attr.data-appearance]=\"appearance\"\n [attr.data-invalid]=\"invalidComputed() ? 'true' : null\"\n [attr.data-radius]=\"radius\"\n [attr.data-disabled]=\"disabledComputed() ? 'true' : null\"\n>\n @if (label || labelKey) {\n <label class=\"solaris-form-field__label\">\n @if (labelKey) {\n {{ labelKey | translate }}\n } @else if (label) {\n {{ label }}\n }\n </label>\n }\n\n <div class=\"solaris-form-field__frame\">\n @if (hasPrefix) {\n <span class=\"solaris-form-field__prefix\" aria-hidden=\"true\">\n <ng-content select=\"[solaris-prefix]\"></ng-content>\n </span>\n }\n\n <div class=\"solaris-form-field__body\">\n <div class=\"solaris-form-field__control-slot\">\n <ng-content></ng-content>\n </div>\n\n @if (hasSuffix || showPasswordToggle() || invalidComputed() || disabledComputed()) {\n <span class=\"solaris-form-field__suffix\">\n @if (disabledComputed()) {\n <span\n class=\"solaris-form-field__status solaris-form-field__status--disabled\"\n aria-hidden=\"true\"\n >\n <i class=\"ph ph-lock-simple\"></i>\n </span>\n } @else {\n <ng-content select=\"[solaris-suffix]\"></ng-content>\n\n @if (showPasswordToggle()) {\n <solaris-password-toggle></solaris-password-toggle>\n }\n\n @if (invalidComputed()) {\n <span class=\"solaris-form-field__status\" aria-hidden=\"true\">\n <i class=\"ph ph-warning-circle\"></i>\n </span>\n }\n }\n </span>\n }\n </div>\n </div>\n\n @if (errorKey()) {\n <solaris-field-error [textKey]=\"errorKey()\" [textParams]=\"errorParams()\"></solaris-field-error>\n } @else {\n <ng-content select=\"[form-field-message]\"></ng-content>\n }\n\n @if (hint || hintKey) {\n <div class=\"solaris-form-field__hint\">\n @if (hintKey) {\n {{ hintKey | translate }}\n } @else {\n {{ hint }}\n }\n </div>\n }\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n HostBinding,\n Input,\n Optional,\n ViewChild,\n computed,\n effect,\n inject,\n signal,\n Injector,\n forwardRef,\n OnInit,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport { NgOptimizedImage } from '@angular/common';\n\nimport {\n SolarisSelectNode,\n SelectionDisplay,\n StackLevel,\n SolarisSelectItem,\n SolarisSelectRow,\n} from '../model/select.type';\nimport { SolarisPopoverTriggerDirective } from '../../../navigations/popover/directives/popover-trigger.directive';\nimport { SolarisPopoverPanelDirective } from '../../../navigations/popover/directives/popover-panel.directive';\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\nimport { SolarisTranslationPipe, SOLARIS_TRANSLATION } from '@educarehq/solaris-services';\nimport { SolarisPopover } from '../../../navigations/popover/component/popover';\n\n@Component({\n selector: 'solaris-select',\n standalone: true,\n imports: [\n SolarisPopover,\n SolarisPopoverTriggerDirective,\n SolarisPopoverPanelDirective,\n SolarisTranslationPipe,\n NgOptimizedImage,\n ],\n templateUrl: './select.html',\n styleUrls: ['./select.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SolarisSelect),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisSelect implements OnInit, ControlValueAccessor, AfterViewInit {\n private readonly translationService = inject(SOLARIS_TRANSLATION);\n private readonly destroyRef = inject(DestroyRef);\n private readonly injector = inject(Injector);\n\n @Optional() private readonly field = inject(SolarisFormFieldController, { optional: true });\n\n @ViewChild('tokenEl', { read: ElementRef }) tokenEl?: ElementRef<HTMLElement>;\n @ViewChild('measureSlot', { read: ElementRef }) measureSlot?: ElementRef<HTMLElement>;\n @ViewChild('triggerWrap', { read: ElementRef }) triggerWrap?: ElementRef<HTMLElement>;\n @ViewChild('triggerInput', { read: ElementRef }) triggerInput?: ElementRef<HTMLInputElement>;\n\n @HostBinding('attr.data-open') get dataOpen() {\n return this.open() ? 'true' : null;\n }\n\n @HostBinding('attr.data-compact') get dataCompact() {\n return this.compactInput() ? 'true' : null;\n }\n\n @HostBinding('attr.data-multiple') get dataMultiple() {\n return this.multiple ? 'true' : 'false';\n }\n\n private readonly _rootNodes = signal<SolarisSelectNode[]>([]);\n\n @Input() set items(v: SolarisSelectNode[] | null | undefined) {\n this._rootNodes.set(v ?? []);\n this.resetStack();\n\n const cur = this._value();\n const next = this.sanitizeValue(cur);\n const changed = !this.sameCvaValue(cur, next);\n\n if (changed) this._value.set(next);\n }\n\n private _multiple = false;\n\n @Input() set multiple(v: boolean) {\n this._multiple = v;\n\n const cur = this._value();\n\n if (this._multiple && !Array.isArray(cur)) this._value.set([]);\n if (!this._multiple && Array.isArray(cur)) this._value.set(null);\n }\n\n get multiple() {\n return this._multiple;\n }\n\n @Input() valueKey?: string;\n @Input() backKey = '';\n @Input() placeholder = '';\n @Input() placeholderKey = '';\n @Input() searchable = true;\n @Input() selectedCountKey = '';\n @Input() selectedFirst = true;\n @Input() searchPlaceholder = '';\n @Input() selectedCountText = '';\n @Input() panelMaxHeight = '32rem';\n @Input() searchPlaceholderKey = '';\n @Input() selectionSeparator = ', ';\n @Input() compareWith?: (a: any, b: any) => boolean;\n @Input() backText = 'ui.solaris.common.back';\n @Input() selectionDisplay: SelectionDisplay = 'auto';\n\n private readonly _disabled = signal(false);\n\n @Input() set disabled(v: boolean) {\n this._disabled.set(v);\n if (v) this.open.set(false);\n }\n\n get disabled() {\n return this._disabled();\n }\n\n readonly open = signal(false);\n readonly searchTerm = signal('');\n readonly activeIndex = signal(0);\n readonly showCount = signal(false);\n\n private readonly _value = signal<any>(null);\n private readonly _stack = signal<StackLevel[]>([]);\n\n readonly selectedItems = computed(() => {\n const all: SolarisSelectItem[] = [];\n this.collectAllItems(this._rootNodes(), all);\n\n const v = this._value();\n\n if (this.multiple) {\n const arr = Array.isArray(v) ? v : [];\n return all.filter((it) => arr.some((s) => this.eq(s, it.value)));\n }\n\n return all.filter((it) => v != null && this.eq(v, it.value));\n });\n\n readonly showToken = computed(() => {\n return this.selectedCount() > 0;\n });\n\n readonly selectedText = computed(() => {\n const items = this.selectedItems();\n if (!items.length) return '';\n\n return items\n .map((it) => this.itemLabel(it))\n .filter(Boolean)\n .join(this.selectionSeparator);\n });\n\n readonly triggerValue = computed(() => {\n if (this.isSearchMode()) return this.searchTerm();\n return '';\n });\n\n readonly activeOptionId = computed(() => {\n const idx = this.activeIndex();\n const row = this.itemRows()[idx];\n\n return row?.id ?? null;\n });\n\n readonly inputPlaceholderKey = computed(() => {\n if (this.selectedCount() > 0) return '';\n if (this.searchTerm().length > 0) return '';\n\n return this.open() && this.searchable\n ? this.searchPlaceholderKey || this.placeholderKey || ''\n : this.placeholderKey || '';\n });\n\n readonly inputPlaceholderText = computed(() => {\n if (this.selectedCount() > 0) return '';\n if (this.searchTerm().length > 0) return '';\n\n return this.open() && this.searchable\n ? this.searchPlaceholder || this.placeholder || 'Search...'\n : this.placeholder || '';\n });\n\n readonly viewModel = computed(() => {\n const lvl = this.currentLevel();\n const ordered = this.applySelectedFirst(lvl.nodes);\n const filtered = this.filterNodes(ordered, this.searchTerm());\n return this.buildRows(filtered);\n });\n\n readonly rows = computed(() => this.viewModel().rows);\n readonly canGoBack = computed(() => this._stack().length > 1);\n readonly selectedCount = computed(() => this.selectedItems().length);\n readonly isSearchMode = computed(() => this.open() && this.searchable);\n readonly itemRows = computed(() => this.viewModel().itemRows);\n readonly compactInput = computed(\n () => this.selectedCount() > 0 && this.searchTerm().length === 0,\n );\n readonly currentLevel = computed(() => this._stack().at(-1) ?? { nodes: this._rootNodes() });\n\n private static seq = 0;\n\n private _measureNonce = 0;\n private resizeObs?: ResizeObserver;\n private propagateTouched: () => void = () => {};\n private propagateChange: (v: any) => void = () => {};\n private resolvedNgControl: NgControl | null | undefined = undefined;\n\n matchWidthEl: HTMLElement | null = null;\n\n public readonly _id = `solaris-select-${++SolarisSelect.seq}`;\n\n constructor() {\n this.resetStack();\n\n effect(() => {\n this.selectedText();\n this.compactInput();\n this.scheduleAutoMeasure();\n });\n\n effect(() => {\n const isOpen = this.open();\n\n if (isOpen) {\n this.activeIndex.set(0);\n this.scheduleFocusTrigger();\n } else {\n this.propagateTouched();\n this.searchTerm.set('');\n this.resetStack();\n }\n });\n }\n\n ngOnInit() {\n this.resolveNgControlOnce();\n }\n\n ngAfterViewInit() {\n const trigger = this.triggerWrap?.nativeElement;\n\n if (trigger) {\n this.matchWidthEl =\n (trigger\n .closest('.solaris-form-field')\n ?.querySelector('.solaris-form-field__frame') as HTMLElement) ?? null;\n }\n\n const el = this.triggerWrap?.nativeElement;\n\n if (!el) return;\n if (typeof ResizeObserver === 'undefined') return;\n\n this.resizeObs = new ResizeObserver(() => this.scheduleAutoMeasure(true));\n this.resizeObs.observe(el);\n\n if ((document as any).fonts?.ready) {\n (document as any).fonts.ready.then(() => this.scheduleAutoMeasure(true));\n }\n\n this.destroyRef.onDestroy(() => this.resizeObs?.disconnect());\n }\n\n writeValue(obj: any): void {\n this._value.set(this.sanitizeValue(obj));\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.propagateTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled.set(isDisabled);\n }\n\n private translate(key?: string, params?: any): string {\n if (!key) return '';\n return this.translationService.translate(key, params);\n }\n\n private itemLabel(item: SolarisSelectItem): string {\n if (item.labelKey) return this.translate(item.labelKey);\n return item.label ?? item.searchText ?? '';\n }\n\n private itemDescription(item: SolarisSelectItem): string {\n if (item.descriptionKey) return this.translate(item.descriptionKey);\n return item.description ?? '';\n }\n\n private itemEndText(item: SolarisSelectItem): string {\n if (item.endTextKey) return this.translate(item.endTextKey);\n return item.endText ?? '';\n }\n\n private itemSearchText(item: SolarisSelectItem): string {\n return [\n item.searchText,\n this.itemLabel(item),\n this.itemDescription(item),\n this.itemEndText(item),\n item.labelKey,\n item.descriptionKey,\n item.endTextKey,\n ]\n .filter(Boolean)\n .join(' ')\n .toLowerCase();\n }\n\n private sameCvaValue(a: any, b: any): boolean {\n if (this.multiple) {\n const aa = Array.isArray(a) ? a : [];\n const bb = Array.isArray(b) ? b : [];\n\n if (aa.length !== bb.length) return false;\n\n for (let i = 0; i < aa.length; i++) {\n if (!this.eq(aa[i], bb[i])) return false;\n }\n\n return true;\n }\n\n if (a == null && b == null) return true;\n if (a == null || b == null) return false;\n\n return this.eq(a, b);\n }\n\n private eq(a: any, b: any): boolean {\n if (this.compareWith) return this.compareWith(a, b);\n if (this.valueKey) return a?.[this.valueKey] === b?.[this.valueKey];\n\n return Object.is(a, b);\n }\n\n private resolveNgControlOnce() {\n if (this.resolvedNgControl !== undefined) return;\n\n this.resolvedNgControl = this.injector.get(NgControl, null, {\n self: true,\n optional: true,\n });\n\n if (this.resolvedNgControl) {\n this.field?.registerControl(this.resolvedNgControl);\n }\n }\n\n private collectAllItems(nodes: SolarisSelectNode[], out: SolarisSelectItem[]) {\n for (const n of nodes) {\n if (n.kind === 'item') {\n out.push(n);\n\n if (n.children?.length) {\n this.collectAllItems(n.children, out);\n }\n } else if (n.kind === 'group') {\n this.collectAllItems(n.items, out);\n }\n }\n }\n\n private resetStack() {\n this._stack.set([{ nodes: this._rootNodes() }]);\n }\n\n public goBack() {\n if (!this.canGoBack()) return;\n\n const s = [...this._stack()];\n s.pop();\n\n this._stack.set(s);\n this.activeIndex.set(0);\n this.scheduleFocusTrigger();\n }\n\n private enterChildren(item: SolarisSelectItem) {\n if (!item.children?.length) return;\n\n this._stack.set([\n ...this._stack(),\n {\n title: item.childrenTitle,\n titleKey: item.childrenTitleKey,\n nodes: item.children,\n },\n ]);\n\n this.activeIndex.set(0);\n this.scheduleFocusTrigger();\n }\n\n private filterNodes(nodes: SolarisSelectNode[], termRaw: string): SolarisSelectNode[] {\n const term = termRaw.trim().toLowerCase();\n\n if (!term) return nodes;\n\n const matchItem = (it: SolarisSelectItem) => {\n return this.itemSearchText(it).includes(term);\n };\n\n const walk = (list: SolarisSelectNode[]): SolarisSelectNode[] => {\n const res: SolarisSelectNode[] = [];\n\n for (const n of list) {\n if (n.kind === 'divider') {\n res.push(n);\n continue;\n }\n\n if (n.kind === 'group') {\n const sub = walk(n.items);\n\n if (sub.some((x) => x.kind !== 'divider')) {\n res.push({ ...n, items: sub });\n }\n\n continue;\n }\n\n if (n.children?.length) {\n const sub = walk(n.children);\n\n if (matchItem(n) || sub.some((x) => x.kind !== 'divider')) {\n res.push({ ...n, children: sub });\n }\n } else if (matchItem(n)) {\n res.push(n);\n }\n }\n\n return this.cleanupDividers(res);\n };\n\n return walk(nodes);\n }\n\n private cleanupDividers(nodes: SolarisSelectNode[]): SolarisSelectNode[] {\n const out: SolarisSelectNode[] = [];\n\n for (const n of nodes) {\n if (n.kind === 'divider') {\n if (!out.length) continue;\n if (out.at(-1)?.kind === 'divider') continue;\n }\n\n out.push(n);\n }\n\n while (out.length && out[0].kind === 'divider') out.shift();\n while (out.length && out.at(-1)?.kind === 'divider') out.pop();\n\n return out;\n }\n\n private applySelectedFirst(nodes: SolarisSelectNode[]): SolarisSelectNode[] {\n if (!this.multiple || !this.selectedFirst) return nodes;\n\n const selected = (it: SolarisSelectItem) => {\n const v = this._value();\n const arr = Array.isArray(v) ? v : [];\n\n return arr.some((s) => this.eq(s, it.value));\n };\n\n const reorderSegment = (segment: SolarisSelectNode[]) => {\n const items: SolarisSelectItem[] = [];\n const others: SolarisSelectNode[] = [];\n\n for (const n of segment) {\n if (n.kind === 'item') {\n items.push(n);\n } else if (n.kind === 'group') {\n others.push({ ...n, items: this.applySelectedFirst(n.items) });\n } else {\n others.push(n);\n }\n }\n\n const sel: SolarisSelectItem[] = [];\n const non: SolarisSelectItem[] = [];\n\n for (const it of items) {\n if (selected(it)) {\n sel.push(it);\n } else {\n non.push(it);\n }\n }\n\n return [...sel, ...non, ...others];\n };\n\n const res: SolarisSelectNode[] = [];\n let buf: SolarisSelectNode[] = [];\n\n const flush = () => {\n if (!buf.length) return;\n\n res.push(...reorderSegment(buf));\n buf = [];\n };\n\n for (const n of nodes) {\n if (n.kind === 'divider') {\n flush();\n res.push(n);\n } else {\n buf.push(n);\n }\n }\n\n flush();\n\n return this.cleanupDividers(res);\n }\n\n private buildRows(nodes: SolarisSelectNode[]) {\n const rows: SolarisSelectRow[] = [];\n let optionIndex = 0;\n\n const pushItem = (it: SolarisSelectItem) => {\n const hasChildren = !!it.children?.length;\n const selectable = !hasChildren;\n const disabled = !!it.disabled;\n const selected = selectable ? this.isSelected(it.value) : false;\n\n rows.push({\n kind: 'item',\n key: `item-${optionIndex}-${this.itemLabel(it)}-${String(it.value)}`,\n id: `${this._id}-opt-${optionIndex}`,\n optionIndex,\n item: it,\n disabled,\n selected,\n hasChildren,\n selectable,\n });\n\n optionIndex++;\n };\n\n const walk = (list: SolarisSelectNode[]) => {\n for (const n of list) {\n if (n.kind === 'divider') {\n rows.push({ kind: 'divider', key: `div-${rows.length}` });\n continue;\n }\n\n if (n.kind === 'group') {\n rows.push({\n kind: 'group',\n key: `grp-${rows.length}-${n.label ?? n.labelKey ?? ''}`,\n label: n.label,\n labelKey: n.labelKey,\n });\n\n walk(n.items);\n continue;\n }\n\n pushItem(n);\n }\n };\n\n walk(nodes);\n\n const itemRows = rows.filter((r) => r.kind === 'item');\n\n return { rows, itemRows };\n }\n\n isSelected(value: any): boolean {\n const v = this._value();\n\n if (this.multiple) {\n const arr = Array.isArray(v) ? v : [];\n return arr.some((s) => this.eq(s, value));\n }\n\n return v != null && this.eq(v, value);\n }\n\n private setValue(next: any) {\n const cur = this._value();\n\n if (this.sameCvaValue(cur, next)) return;\n\n this._value.set(next);\n this.propagateChange(next);\n }\n\n toggleItem(value: any) {\n if (!this.multiple) return;\n\n const cur = this._value();\n const arr = Array.isArray(cur) ? [...cur] : [];\n const idx = arr.findIndex((v) => this.eq(v, value));\n\n if (idx >= 0) {\n arr.splice(idx, 1);\n } else {\n arr.push(value);\n }\n\n this.setValue(arr);\n this.searchTerm.set('');\n this.activeIndex.set(0);\n this.scheduleFocusTrigger();\n }\n\n selectSingle(value: any) {\n if (this.multiple) return;\n\n this.searchTerm.set('');\n this.setValue(value);\n this.open.set(false);\n }\n\n onOptionClick(item: SolarisSelectItem) {\n if (this.disabled) return;\n\n if (item.children?.length) {\n this.enterChildren(item);\n return;\n }\n\n if (this.multiple) {\n this.toggleItem(item.value);\n this.searchTerm.set('');\n this.activeIndex.set(0);\n this.scheduleFocusTrigger();\n } else {\n this.searchTerm.set('');\n this.selectSingle(item.value);\n }\n }\n\n openFromTrigger() {\n if (this.disabled) return;\n\n if (!this.open()) {\n this.open.set(true);\n }\n }\n\n toggleOpen() {\n if (this.disabled) return;\n\n const next = !this.open();\n\n if (next) {\n this.searchTerm.set('');\n }\n\n this.open.set(next);\n }\n\n onTriggerInput(v: string) {\n if (this.disabled) return;\n\n if (!this.open()) {\n this.open.set(true);\n }\n\n this.searchTerm.set(v);\n this.activeIndex.set(0);\n }\n\n onTriggerKeydown(ev: KeyboardEvent) {\n if (this.disabled) return;\n\n if (!this.open()) {\n if (ev.key === 'ArrowDown' || ev.key === 'Enter') {\n ev.preventDefault();\n this.searchTerm.set('');\n this.open.set(true);\n this.activeIndex.set(0);\n return;\n }\n\n if (this.searchable && ev.key.length === 1 && !ev.ctrlKey && !ev.metaKey && !ev.altKey) {\n ev.preventDefault();\n this.searchTerm.set(ev.key);\n this.open.set(true);\n this.activeIndex.set(0);\n return;\n }\n\n return;\n }\n\n if (\n ev.key === 'ArrowDown' ||\n ev.key === 'ArrowUp' ||\n ev.key === 'Home' ||\n ev.key === 'End' ||\n ev.key === 'Enter' ||\n ev.key === 'Escape'\n ) {\n this.onPanelKeydown(ev);\n return;\n }\n\n if (\n (ev.key === 'Backspace' || ev.key === 'ArrowLeft') &&\n this.canGoBack() &&\n !this.searchTerm()\n ) {\n ev.preventDefault();\n this.goBack();\n }\n }\n\n onPanelKeydown(ev: KeyboardEvent) {\n const items = this.itemRows();\n\n if (!items.length) return;\n\n const max = items.length - 1;\n const clamp = (n: number) => Math.max(0, Math.min(max, n));\n\n switch (ev.key) {\n case 'ArrowDown':\n ev.preventDefault();\n this.activeIndex.set(clamp(this.activeIndex() + 1));\n break;\n\n case 'ArrowUp':\n ev.preventDefault();\n this.activeIndex.set(clamp(this.activeIndex() - 1));\n break;\n\n case 'Home':\n ev.preventDefault();\n this.activeIndex.set(0);\n break;\n\n case 'End':\n ev.preventDefault();\n this.activeIndex.set(max);\n break;\n\n case 'Enter':\n ev.preventDefault();\n this.onOptionClick(items[this.activeIndex()].item);\n break;\n\n case 'ArrowRight': {\n const row = items[this.activeIndex()];\n\n if (row?.hasChildren) {\n ev.preventDefault();\n this.enterChildren(row.item);\n }\n\n break;\n }\n\n case 'Escape':\n ev.preventDefault();\n this.open.set(false);\n break;\n }\n }\n\n private scheduleAutoMeasure(force = false) {\n if (!this.multiple) {\n this.showCount.set(false);\n return;\n }\n\n if (this.selectionDisplay === 'count') {\n this.showCount.set(true);\n return;\n }\n\n if (this.selectionDisplay === 'list') {\n this.showCount.set(false);\n return;\n }\n\n const nonce = ++this._measureNonce;\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (nonce !== this._measureNonce) return;\n\n this.measureAuto(force);\n });\n });\n }\n\n private measureAuto(_force: boolean) {\n if (!this.multiple) {\n this.showCount.set(false);\n return;\n }\n\n if (this.selectionDisplay === 'count') {\n this.showCount.set(true);\n return;\n }\n\n if (this.selectionDisplay === 'list') {\n this.showCount.set(false);\n return;\n }\n\n if (!this.compactInput()) {\n if (this.showCount()) this.showCount.set(false);\n return;\n }\n\n const wrap = this.triggerWrap?.nativeElement;\n const inputEl = this.triggerInput?.nativeElement;\n const measureEl = this.measureSlot?.nativeElement;\n\n if (!wrap || !inputEl || !measureEl) return;\n\n const text = this.selectedText();\n\n if (!text) {\n if (this.showCount()) this.showCount.set(false);\n }\n\n const ws = getComputedStyle(wrap);\n const padL = this.px(ws.paddingLeft);\n const padR = this.px(ws.paddingRight);\n const gap = this.px(ws.columnGap || ws.gap);\n const contentWidth = wrap.clientWidth - padL - padR;\n\n const inputWidth = inputEl.getBoundingClientRect().width;\n const tokenMaxWidth = Math.max(0, contentWidth - gap - inputWidth);\n\n const needed = Math.ceil(measureEl.scrollWidth);\n const available = Math.floor(tokenMaxWidth);\n\n const current = this.showCount();\n\n const marginForward = 1;\n const marginBack = 3;\n\n const next = current ? needed > available - marginBack : needed > available + marginForward;\n\n if (next !== current) {\n this.showCount.set(next);\n }\n }\n\n private px(v: string): number {\n const first = (v ?? '0').split(' ')[0];\n const n = Number.parseFloat(first);\n\n return Number.isFinite(n) ? n : 0;\n }\n\n private scheduleFocusTrigger() {\n requestAnimationFrame(() => {\n this.triggerInput?.nativeElement?.focus?.();\n\n if (this.searchable) {\n this.triggerInput?.nativeElement?.select?.();\n }\n });\n }\n\n private isSelectableValue(v: any): boolean {\n if (v == null) return false;\n\n let selectable = false;\n\n const walk = (nodes: SolarisSelectNode[]) => {\n for (const n of nodes) {\n if (n.kind === 'group') {\n walk(n.items);\n continue;\n }\n\n if (n.kind === 'item') {\n if (this.eq(n.value, v)) {\n selectable = !n.children?.length;\n return;\n }\n\n if (n.children?.length) {\n walk(n.children);\n }\n }\n }\n };\n\n walk(this._rootNodes());\n\n return selectable;\n }\n\n private sanitizeValue(next: any): any {\n if (this.multiple) {\n const arr = Array.isArray(next) ? next : [];\n return arr.filter((v) => this.isSelectableValue(v));\n }\n\n return this.isSelectableValue(next) ? next : null;\n }\n\n selectedCountLabel(): string {\n const count = this.selectedCount();\n\n if (this.selectedCountKey) {\n return this.translate(this.selectedCountKey, { count });\n }\n\n if (this.selectedCountText) {\n return this.selectedCountText.replace('{count}', String(count));\n }\n\n return `${count} selecionados`;\n }\n\n trackRow = (_: number, r: SolarisSelectRow) => r.key;\n}\n","<solaris-popover\n [open]=\"open()\"\n (openChange)=\"open.set($event)\"\n placement=\"bottom-start\"\n [offset]=\"6\"\n [matchWidth]=\"true\"\n [anchorElement]=\"matchWidthEl\"\n [matchWidthElement]=\"matchWidthEl\"\n [closeOnOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n panelClass=\"solaris-select__popover\"\n>\n <div\n #triggerWrap\n solaris-popover-trigger\n class=\"solaris-select__trigger\"\n (click)=\"openFromTrigger()\"\n >\n @if (showToken()) {\n <span #tokenEl class=\"solaris-select__token\" aria-hidden=\"true\">\n @if (multiple && showCount()) {\n @if (selectedCountKey) {\n {{ selectedCountKey | translate: { count: selectedCount() } }}\n } @else {\n {{ selectedCountLabel() }}\n }\n } @else {\n {{ selectedText() }}\n }\n </span>\n }\n\n <input\n #triggerInput\n type=\"text\"\n class=\"solaris-select__input\"\n [disabled]=\"disabled\"\n [attr.aria-activedescendant]=\"open() ? activeOptionId() : null\"\n (click)=\"openFromTrigger()\"\n [readonly]=\"!isSearchMode()\"\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-controls=\"{{ _id }}-listbox\"\n aria-expanded=\"false\"\n [attr.aria-expanded]=\"open() ? 'true' : 'false'\"\n [attr.placeholder]=\"\n inputPlaceholderKey() ? (inputPlaceholderKey() | translate) : inputPlaceholderText()\n \"\n [value]=\"triggerValue()\"\n (keydown)=\"onTriggerKeydown($event)\"\n (focus)=\"openFromTrigger()\"\n (input)=\"onTriggerInput(triggerInput.value)\"\n />\n\n <button\n type=\"button\"\n class=\"solaris-select__chevron-btn\"\n [disabled]=\"disabled\"\n (click)=\"toggleOpen()\"\n [attr.aria-label]=\"'ui.solaris.aria.toggleOptions' | translate\"\n >\n <i class=\"ph ph-caret-down\" aria-hidden=\"true\"></i>\n </button>\n\n <span class=\"solaris-select__measure solaris-select__token\" #measureSlot aria-hidden=\"true\">\n {{ selectedText() }}\n </span>\n </div>\n\n <ng-template solaris-popover-panel>\n <div\n class=\"solaris-select__panel\"\n (keydown)=\"onPanelKeydown($event)\"\n [style.max-height]=\"panelMaxHeight\"\n >\n @if (canGoBack()) {\n <div class=\"solaris-select__nav\">\n <button type=\"button\" class=\"solaris-select__back\" (click)=\"goBack()\">\n <i class=\"ph ph-arrow-left\"></i>\n <span>\n @if (backKey) {\n {{ backKey | translate }}\n } @else {\n {{ backText | translate }}\n }\n </span>\n </button>\n\n <div class=\"solaris-select__title\">\n @if (currentLevel().titleKey) {\n {{ currentLevel().titleKey! | translate }}\n } @else {\n {{ currentLevel().title ?? '' }}\n }\n </div>\n </div>\n }\n\n <div\n class=\"solaris-select__list\"\n role=\"listbox\"\n [id]=\"_id + '-listbox'\"\n [attr.aria-multiselectable]=\"multiple ? 'true' : null\"\n [attr.aria-activedescendant]=\"activeOptionId()\"\n >\n @for (row of rows(); track trackRow($index, row)) {\n @if (row.kind === 'group') {\n <div class=\"solaris-select__group\">\n @if (row.labelKey) {\n {{ row.labelKey | translate }}\n } @else {\n {{ row.label }}\n }\n </div>\n }\n\n @if (row.kind === 'divider') {\n <div class=\"solaris-select__divider\" aria-hidden=\"true\"></div>\n }\n\n @if (row.kind === 'item') {\n <button\n type=\"button\"\n class=\"solaris-select__option\"\n [id]=\"row.id\"\n [disabled]=\"row.disabled\"\n [attr.aria-selected]=\"row.selected ? 'true' : 'false'\"\n [class.is-active]=\"row.optionIndex === activeIndex()\"\n [class.is-selected]=\"row.selected\"\n [class.is-navigable]=\"row.hasChildren\"\n (click)=\"onOptionClick(row.item)\"\n >\n <span class=\"solaris-select__option-leading\">\n @if (multiple) {\n @if (!row.hasChildren) {\n <span\n class=\"solaris-select__checkbox\"\n aria-hidden=\"true\"\n [class.is-checked]=\"row.selected\"\n >\n <i class=\"ph ph-check\"></i>\n </span>\n } @else {\n @if (row.item.imageUrl) {\n <img class=\"solaris-select__avatar\" [ngSrc]=\"row.item.imageUrl\" alt=\"\" fill />\n } @else if (row.item.icon) {\n <i\n class=\"solaris-select__icon\"\n [class]=\"row.item.icon\"\n aria-hidden=\"true\"\n ></i>\n } @else {\n <span class=\"solaris-select__checkbox-spacer\" aria-hidden=\"true\"></span>\n }\n }\n }\n\n @if (!multiple) {\n @if (row.item.imageUrl) {\n <img class=\"solaris-select__avatar\" [ngSrc]=\"row.item.imageUrl\" alt=\"\" fill />\n } @else if (row.item.icon) {\n <i class=\"solaris-select__icon\" [class]=\"row.item.icon\" aria-hidden=\"true\"></i>\n }\n }\n </span>\n\n <span class=\"solaris-select__option-main\">\n <span class=\"solaris-select__option-label\">\n @if (row.item.labelKey) {\n {{ row.item.labelKey | translate }}\n } @else {\n {{ row.item.label }}\n }\n </span>\n\n @if (row.item.description || row.item.descriptionKey) {\n <span class=\"solaris-select__option-desc\">\n @if (row.item.descriptionKey) {\n {{ row.item.descriptionKey | translate }}\n } @else {\n {{ row.item.description }}\n }\n </span>\n }\n </span>\n\n <span class=\"solaris-select__option-end\">\n @if (row.item.endTextKey) {\n <span class=\"solaris-select__end-text\">{{\n row.item.endTextKey | translate\n }}</span>\n } @else if (row.item.endText) {\n <span class=\"solaris-select__end-text\">{{ row.item.endText }}</span>\n }\n\n @if (!multiple && row.selected) {\n <i class=\"ph ph-check\" aria-hidden=\"true\"></i>\n }\n\n @if (row.hasChildren) {\n <i class=\"ph ph-caret-right\" aria-hidden=\"true\"></i>\n }\n </span>\n </button>\n }\n }\n </div>\n </div>\n </ng-template>\n</solaris-popover>\n","/// <reference path=\"./typings/intl-tel-input-utils.d.ts\" />\n\nexport * from './lib/navigations/navigations.index';\nexport * from './lib/feedbacks/feedbacks.index';\nexport * from './lib/layouts/layouts.index';\nexport * from './lib/data-display/data-display.index';\nexport * from './lib/actions/actions.index';\nexport * from './lib/visual/visual.index';\nexport * from './lib/core/core.index';\nexport * from './services/services.index';\nexport * from './lib/common/common.index';\nexport * from './lib/cards/cards.index';\nexport * from './lib/forms/forms.index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["clamp","initialXY","i1.SolarisTabs","coerceBoolean","PRESET_COLORS","resolveRadius","i1","i1.SolarisTable"],"mappings":";;;;;;;;;;;;;;;;;MAMa,sCAAsC,CAAA;AACjC,IAAA,UAAU,GAA4B,MAAM,EAAC,UAAuB,EAAC;AACpE,IAAA,QAAQ,GAAc,MAAM,CAAC,SAAS,CAAC;IAEjD,eAAe,GAAA;AACpB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;QAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE;AACzC,QAAA,MAAM,oBAAoB,GACxB,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC;QAErE,IAAI,CAAC,oBAAoB,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;QACvD;QAEA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC;IAC9D;IAEO,WAAW,CAAC,UAAmB,EAAE,OAAe,EAAA;AACrD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;AAC7C,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACxE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC;IAC/D;wGAtBW,sCAAsC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAtC,sCAAsC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAtC,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBAJlD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oCAAoC;AAC9C,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MCCY,oCAAoC,CAAA;AAC/B,IAAA,WAAW,GAAyB,MAAM,EAAC,WAAoB,EAAC;wGADrE,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApC,oCAAoC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAApC,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAJhD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6CAA6C;AACvD,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MCEY,8BAA8B,CAAA;AACxB,IAAA,SAAS,GAAG,IAAI,GAAG,EAAmC;AAEhE,IAAA,QAAQ,CAAC,QAAyC,EAAA;AACvD,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC9B;AAEO,IAAA,UAAU,CAAC,QAAyC,EAAA;AACzD,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;IACjC;AAEO,IAAA,UAAU,CAAC,eAAgD,EAAA;AAChE,QAAA,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AACrC,YAAA,IAAI,QAAQ,KAAK,eAAe,EAAE;gBAChC,QAAQ,CAAC,iBAAiB,EAAE;YAC9B;QACF;IACF;wGAjBW,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAA9B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,cADjB,MAAM,EAAA,CAAA;;4FACnB,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAD1C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MC4BrB,sBAAsB,CAAA;AAGhB,IAAA,QAAQ,GAAG,MAAM,CAAC,8BAA8B,CAAC;AACjD,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC3C,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAG1C,IAAA,OAAO;AAC6C,IAAA,KAAK;AAEhD,IAAA,SAAS;IACT,SAAS,GAA6B,MAAM;IAC5C,QAAQ,GAAW,OAAO;IAC1B,UAAU,GAAG,GAAG;IAChB,SAAS,GAAG,EAAE;AAEN,IAAA,OAAO,GAAG,CAAA,uBAAA,EAA0B,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IAClF,iBAAiB,GAAG,KAAK;AACzB,IAAA,MAAM;IACN,eAAe,GAAG,KAAK;AACvB,IAAA,eAAe;IACf,QAAQ,GAAG,KAAK;AAChB,IAAA,UAAU;IACV,MAAM,GAAG,KAAK;AACd,IAAA,UAAU;AACV,IAAA,SAAS;IAEjB,kBAAkB,GAAA;QAChB,IAAI,CAAC,IAAI,CAAC,OAAO;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC;QAC3F,IAAI,CAAC,IAAI,CAAC,KAAK;AACb,YAAA,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC;AAE5F,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;QAC9B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;QAE7C,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa;AAE5D,QAAA,SAAS,CAAC,cAAc,EAAE,YAAY;AACnC,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAEzC,QAAA,SAAS,CAAC,cAAc,EAAE,YAAY;AACnC,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAEzC,QAAA,SAAS,CAAa,cAAc,EAAE,OAAO;AAC1C,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;YACnB,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,YAAY,EAAE;AACrB,QAAA,CAAC,CAAC;AAEJ,QAAA,SAAS,CAAgB,cAAc,EAAE,SAAS;AAC/C,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;gBAC9C,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,YAAY,EAAE;YACrB;AAEA,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;gBAC1B,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACtB;AACF,QAAA,CAAC,CAAC;IACN;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,kBAAkB,EAAE;AACzB,QAAA,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;IAC5B;IAEO,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IACxB;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;QAC7B,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;IAC5B;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC9B,IAAI,IAAI,CAAC,QAAQ;YAAE;QACnB,IAAI,CAAC,aAAa,EAAE;IACtB;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;QAC3B,IAAI,IAAI,CAAC,QAAQ;YAAE;QACnB,IAAI,CAAC,eAAe,EAAE;IACxB;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;QAC5B,IAAI,IAAI,CAAC,QAAQ;YAAE;QACnB,IAAI,CAAC,aAAa,EAAE;IACtB;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YACnB;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACpB;QACF;AAEA,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;QACpB,IAAI,CAAC,gBAAgB,EAAE;IACzB;AAEQ,IAAA,YAAY,CAAC,MAA0B,EAAA;QAC7C,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;IACjF;IAEQ,aAAa,GAAA;QACnB,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,MAAK;YAC3C,IAAI,IAAI,CAAC,QAAQ;gBAAE;AACnB,YAAA,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,eAAe;gBAAE;AACpD,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;AAC3B,QAAA,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC;IACrB;IAEQ,cAAc,GAAA;QACpB,IAAI,IAAI,CAAC,SAAS;AAAE,YAAA,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AAC3D,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;IAC5B;IAEQ,eAAe,GAAA;QACrB,IAAI,IAAI,CAAC,UAAU;AAAE,YAAA,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AAC7D,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;IAC7B;AAEO,IAAA,IAAI,CAAC,MAA0B,EAAA;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE;QAClC,IAAI,MAAM,KAAK,OAAO;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AAE7C,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;QAE9B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa;AAC5D,QAAA,MAAM,UAAU,GAAG,cAAc,CAAC,qBAAqB,EAAE;AAEzD,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE;AACnD,QAAA,MAAM,aAAa,GAAG,gBAAgB,EAAE,qBAAqB,EAAE;AAC/D,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,KAAK,MAAM;QACxC,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,aAAa,CAAC;AAE9D,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC3B,aAAA,QAAQ;aACR,mBAAmB,CAAC,cAAc;aAClC,sBAAsB,CAAC,KAAK;aAC5B,QAAQ,CAAC,CAAC,MAAM;aAChB,kBAAkB,CAAC,cAAc;aACjC,kBAAkB,CAAC,OAAO;aAC1B,kBAAkB,CAAC,CAAC;AACpB,aAAA,aAAa,CAAC;AACb,YAAA,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;AAC3E,YAAA,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;AACxE,SAAA,CAAC;AAEJ,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,gBAAgB,CAAC;QAC1D;aAAO;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACpC,gBAAA,gBAAgB,EAAE,gBAAgB;gBAClC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE;gBAC1D,UAAU,EAAE,CAAC,kCAAkC,CAAC;AACjD,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC;AACF,iBAAA,WAAW;AACX,iBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;iBACxC,SAAS,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC;AAEA,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC;AAChD,QAAA,IAAI,CAAC,MAAM,KAAK,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC;QACjF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE;YAClC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YACnC,IAAI,CAAC,eAAe,EAAE;QACxB;AAEA,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;QAClB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;AAE5C,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,gBAAgB,EAAE;QACzB;aAAO;YACL,IAAI,CAAC,kBAAkB,EAAE;QAC3B;QAEA,IAAI,CAAC,eAAe,EAAE;IACxB;AAEO,IAAA,KAAK,CAAC,MAAoE,EAAA;QAC/E,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,eAAe,EAAE;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;QACrB,IAAI,CAAC,kBAAkB,EAAE;AAEzB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE;AAClC,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QAC1B;AAEA,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACnB,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;IAChD;IAEQ,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;QAC9B,IAAI,CAAC,kBAAkB,EAAE;QACzB,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;IAChD;IAEQ,eAAe,GAAA;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE;AAEtB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc;AAChD,QAAA,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO;AAE3B,QAAA,SAAS,CAAC,SAAS,EAAE,YAAY;AAC9B,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;AAEvC,QAAA,SAAS,CAAC,SAAS,EAAE,YAAY;AAC9B,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;AAEvC,QAAA,SAAS,CAAgB,SAAS,EAAE,SAAS;AAC1C,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;gBAC1B,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACpB,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE;YAChD;AACF,QAAA,CAAC,CAAC;IACN;IAEQ,gBAAgB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE;QACpB,IAAI,IAAI,CAAC,eAAe;YAAE;QAE1B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,aAAa;AAC7D,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc;AAEjD,QAAA,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS;YAAE;QAEnC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAa,QAAQ,EAAE,WAAW;AAC/D,aAAA,IAAI,CACH,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAC3B,MAAM,CAAC,CAAC,KAAK,KAAI;AACf,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,MAAqB;AAC9C,YAAA,IAAI,CAAC,UAAU;AAAE,gBAAA,OAAO,KAAK;YAC7B,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC;YACzD,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;AAClD,YAAA,OAAO,CAAC,aAAa,IAAI,CAAC,WAAW;QACvC,CAAC,CAAC,EACF,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aAEpC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3C;IAEQ,kBAAkB,GAAA;AACxB,QAAA,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE;AACnC,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS;IAClC;IAEQ,mBAAmB,GAAA;AACzB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS;AACnC,QAAA,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,SAAS;AACnC,QAAA,OAAO,YAAY,YAAY,UAAU,GAAG,YAAY,CAAC,aAAa,GAAG,YAAY;IACvF;IAEQ,cAAc,CAAC,UAAmB,EAAE,aAAuB,EAAA;AACjE,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;AAC7B,YAAA,OAAO,CAAC,UAAU,CAAC,IAAI;QACzB;QAEA,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,IAAI,aAAa,EAAE;AACnD,YAAA,OAAO,aAAa,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI;QAC7C;AAEA,QAAA,OAAO,CAAC;IACV;IAEQ,gBAAgB,CAAC,UAAmB,EAAE,aAAuB,EAAA;QACnE,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE;AAEtB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,eAAe,EAAE;AACtC,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;YACvD;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;AAC7B,YAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,eAAe,CAAC,WAAW;AAC1D,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AACzB,gBAAA,KAAK,EAAE,aAAa;AACpB,gBAAA,QAAQ,EAAE,aAAa;AACxB,aAAA,CAAC;YACF;QACF;QAEA,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,IAAI,aAAa,EAAE;AACnD,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;gBACzB,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,QAAQ,EAAE,aAAa,CAAC,KAAK;AAC9B,aAAA,CAAC;YACF;QACF;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzD;wGAvUW,sBAAsB,EAAA,IAAA,EAAA,EAAA,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,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAQnB,sCAAsC,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEtC,oCAAoC,gDC5CpD,6BACA,EAAA,MAAA,EAAA,CAAA,0hBAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;4FDiCa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,cACxB,IAAI,EAAA,OAAA,EACP,EAAE,EAAA,aAAA,EAGI,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,0hBAAA,CAAA,EAAA;;sBAUpC,YAAY;uBAAC,sCAAsC;;sBAEnD,YAAY;uBAAC,oCAAoC;;sBAEjD;;sBACA;;sBACA;;sBACA;;sBACA;;;ME5BU,iBAAiB,CAAA;IACG,QAAQ,GAAG,CAAC;IACZ,QAAQ,GAAG,CAAC;IAClC,UAAU,GAAG,IAAI;IACC,KAAK,GAA4B,EAAE;IACxC,SAAS,GAAG,yBAAyB;AACjD,IAAA,UAAU,GAAG,IAAI,YAAY,EAA+C;AAEtF,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;AAC9B,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC;AAE3D,QAAA,IAAI,KAAK,IAAI,GAAG,EAAE;YAChB,OAAO;AACL,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,QAAQ,EAAE,EAA6B;AACvC,gBAAA,IAAI,EAAE,EAA6B;aACpC;QACH;QAEA,MAAM,QAAQ,GAAG,CAAC;QAClB,MAAM,QAAQ,GAAG,CAAC;AAElB,QAAA,MAAM,SAAS,GAAG,GAAG,GAAG,QAAQ,GAAG,QAAQ;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC;QAExC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;AACrC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,QAAQ,GAAG,SAAS,CAAC,EAAE,KAAK,CAAC;AAC/D,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAE3D,QAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACjC;AACA,IAAA,IAAI,iBAAiB,GAAA;QACnB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,QAAQ;AAE1C,QAAA,MAAM,OAAO,GACX,OAAO,UAAU,CAAC,UAAU,KAAK,UAAU;AAC3C,YAAA,UAAU,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,OAAO;QAErD,OAAO,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ;IAC7D;AAEU,IAAA,iBAAiB,CAAC,EAAyB,EAAA;AACnD,QAAA,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,KAAK,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI;IACjE;AAEU,IAAA,oBAAoB,CAAC,EAAyB,EAAA;QACtD,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,IAAI,IAAI,IAAI,IAAI;IACtF;AAEU,IAAA,8BAA8B,CAAC,SAAiB,EAAA;QACxD,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;AAAE,YAAA,OAAO,IAAI;AAC3D,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;IAC7E;AAEU,IAAA,QAAQ,CAAC,IAA2B,EAAA;QAC5C,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM;AACrB,QAAA,IAAI,CAAC,EAAE,IAAI,KAAK,QAAQ;AAAE,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;IACpE;wGA5DW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtB9B,+rJA2HA,EAAA,MAAA,EAAA,CAAA,+qFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED1GY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,WAAW,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,2BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,yPAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAK1E,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,cAClB,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAA,eAAA,EAGrE,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+rJAAA,EAAA,MAAA,EAAA,CAAA,+qFAAA,CAAA,EAAA;;sBAG9C,KAAK;uBAAC,EAAE,KAAK,EAAE,WAAW,EAAE;;sBAC5B,KAAK;uBAAC,EAAE,KAAK,EAAE,WAAW,EAAE;;sBAC5B;;sBACA,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBACxB,WAAW;uBAAC,OAAO;;sBACnB;;;MEfU,kBAAkB,CAAA;AACpB,IAAA,MAAM;AAEN,IAAA,KAAK;AACL,IAAA,QAAQ;AAER,IAAA,KAAK;AACL,IAAA,QAAQ;AAER,IAAA,WAAW;AACX,IAAA,cAAc;AAEd,IAAA,IAAI;IACJ,QAAQ,GAAG,KAAK;IAEhB,KAAK,GAA+B,IAAI;IACxC,MAAM,GAAyB,SAAS;AAExC,IAAA,SAAS;AACT,IAAA,YAAY;AACZ,IAAA,UAAU;IACV,YAAY,GAAiB,QAAQ;IACrC,SAAS,GAAsB,IAAI;IACnC,SAAS,GAAG,IAAI;IAElB,MAAM,GAAG,KAAK;IACd,KAAK,GAAG,CAAC;IACT,QAAQ,GAAG,EAAE;IACb,OAAO,GAAG,EAAE;wGA5BR,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,4dCb/B,2PAUA,EAAA,MAAA,EAAA,CAAA,6EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDGa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAAA,UAAA,EACpB,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2PAAA,EAAA,MAAA,EAAA,CAAA,6EAAA,CAAA,EAAA;;sBAG9C;;sBAEA;;sBACA;;sBAEA;;sBACA;;sBAEA;;sBACA;;sBAEA;;sBACA;;sBAEA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;;MEnBU,YAAY,CAAA;IACd,IAAI,GAAG,KAAK;AACZ,IAAA,eAAe;IACf,WAAW,GAAG,KAAK;IACnB,IAAI,GAAsB,IAAI;IAC9B,OAAO,GAAiB,QAAQ;IAChC,KAAK,GAAoB,SAAS;IACV,UAAU,GAA4B,IAAI;IACrD,SAAS,GAAG,oBAAoB;IACrC,YAAY,GAAG,IAAI,GAAG,CAAqB;QAC1D,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,MAAM;QACN,SAAS;AACV,KAAA,CAAC;AAEF,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,aAAa,GAAG,cAAc,GAAG,CAAA,MAAA,EAAS,IAAI,CAAC,KAAK,EAAE;IACpE;AACA,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAA2B,CAAC;IACjE;AACA,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;IACvD;wGA1BW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjBzB,iYAeA,EAAA,MAAA,EAAA,CAAA,ysMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDHY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAKN,YAAY,EAAA,UAAA,EAAA,CAAA;kBARxB,SAAS;+BACE,eAAe,EAAA,UAAA,EACb,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,CAAC,EAAA,eAAA,EAGD,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,iYAAA,EAAA,MAAA,EAAA,CAAA,ysMAAA,CAAA,EAAA;;sBAG9C;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA,KAAK;uBAAC,EAAE,KAAK,EAAE,aAAa,EAAE;;sBAC9B,WAAW;uBAAC,OAAO;;;MEcT,cAAc,CAAA;AA0CI,IAAA,iBAAA;AAzCZ,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACxC,IAAA,OAAO,MAAM,GAAG,CAAC;IAEhB,WAAW,GAA8B,YAAY;IACrD,UAAU,GAA6B,SAAS;IAEhD,MAAM,GAAG,IAAI;IACb,WAAW,GAAG,IAAI;IAElB,WAAW,GAAkB,IAAI;IACjC,kBAAkB,GAAG,CAAC;IAEtB,mBAAmB,GAAG,IAAI;IAC1B,qBAAqB,GAAG,KAAK;IAC7B,SAAS,GAAG,KAAK;IAEjB,YAAY,GAAG,IAAI;IACnB,eAAe,GAAG,KAAK;AAEb,IAAA,iBAAiB,GAAG,IAAI,YAAY,EAAU;AACxC,IAAA,UAAU,GAAG,IAAI,YAAY,EAAU;AACnC,IAAA,cAAc,GAAG,IAAI,YAAY,EAAU;AACrD,IAAA,UAAU,GAAG,IAAI,YAAY,EAA6B;AAG5D,IAAA,UAAU;AAGV,IAAA,WAAW;IAErB,KAAK,GAAyB,EAAE;AAEtB,IAAA,GAAG,GAAG,cAAc,CAAC,MAAM,EAAE;IACtC,mBAAmB,GAAG,CAAC;AAE/B,IAAA,IAAW,YAAY,GAAA;QACrB,OAAO,IAAI,CAAC,cAAc,CACxB,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,IAAI,CAAC,mBAAmB,CACzE;IACH;AAEA,IAAA,WAAA,CAA6B,iBAAoC,EAAA;QAApC,IAAA,CAAA,iBAAiB,GAAjB,iBAAiB;IAAsB;IAEpE,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,kBAAkB;QAClD,IAAI,CAAC,SAAS,EAAE;AAEhB,QAAA,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YAChF,IAAI,CAAC,SAAS,EAAE;AAClB,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;AACzD,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,kBAAkB;QACpD;QAEA,IACE,OAAO,CAAC,aAAa,CAAC;YACtB,OAAO,CAAC,aAAa,CAAC;YACtB,OAAO,CAAC,YAAY,CAAC;AACrB,YAAA,OAAO,CAAC,QAAQ,CAAC,EACjB;YACA,IAAI,CAAC,SAAS,EAAE;QAClB;IACF;IAEO,IAAI,GAAA;AACT,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACpE,IAAI,MAAM,KAAK,IAAI;YAAE;AAErB,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC;AACtC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;IAC9B;IAEO,QAAQ,GAAA;AACb,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,MAAM,KAAK,IAAI;YAAE;AAErB,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC;AAC1C,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;IAClC;AAEO,IAAA,aAAa,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC;YAAE;AAC9C,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/C;AAEO,IAAA,iBAAiB,CAAC,KAAa,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;YAAE;AAC3C,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzC;IAEO,aAAa,CAAC,KAAoB,EAAE,KAAa,EAAA;AACtD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,KAAK,YAAY;AAEtD,QAAA,QAAQ,KAAK,CAAC,GAAG;AACf,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,CAAC,YAAY;oBAAE;gBACnB,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC;gBAClC;AAEF,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,CAAC,YAAY;oBAAE;gBACnB,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACnC;AAEF,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,YAAY;oBAAE;gBAClB,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC;gBAClC;AAEF,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,YAAY;oBAAE;gBAClB,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACnC;AAEF,YAAA,KAAK,MAAM;gBACT,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBACnB;AAEF,YAAA,KAAK,KAAK;gBACR,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBACvC;AAEF,YAAA;gBACE;;IAEN;AAEO,IAAA,SAAS,CAAC,KAAa,EAAA;AAC5B,QAAA,OAAO,KAAK,KAAK,IAAI,CAAC,YAAY;IACpC;AAEO,IAAA,WAAW,CAAC,KAAa,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,WAAW;IACpE;AAEO,IAAA,SAAS,CAAC,KAAa,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,SAAS;IAClE;IAEO,YAAY,CAAC,IAAwB,EAAE,KAAa,EAAA;QACzD,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK;AAEjC,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,WAAW;AACjD,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,SAAS;AACjD,QAAA,OAAO,SAAS;IAClB;IAEO,cAAc,CAAC,IAAwB,EAAE,KAAa,EAAA;QAC3D,OAAO;AACL,YAAA,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACnC,YAAA,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACvC,YAAA,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACnC,YAAA,YAAY,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS;AACvC,YAAA,UAAU,EAAE,IAAI,CAAC,MAAM,KAAK,OAAO;AACnC,YAAA,aAAa,EAAE,IAAI,CAAC,MAAM,KAAK,UAAU;AACzC,YAAA,WAAW,EAAE,IAAI,CAAC,MAAM,KAAK,QAAQ;AACrC,YAAA,cAAc,EAAE,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;SACrD;IACH;AAEO,IAAA,mBAAmB,CAAC,KAAa,EAAA;QACtC,OAAO;AACL,YAAA,cAAc,EAAE,KAAK,GAAG,IAAI,CAAC,YAAY;AACzC,YAAA,YAAY,EAAE,KAAK,KAAK,IAAI,CAAC,YAAY;SAC1C;IACH;IAEO,aAAa,CAAC,IAAwB,EAAE,KAAa,EAAA;AAC1D,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;AAAE,YAAA,OAAO,IAAI;AAE9C,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;AAAE,YAAA,OAAO,SAAS;AAC9C,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO;AAAE,YAAA,OAAO,aAAa;AACjD,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;AAAE,YAAA,OAAO,mBAAmB;AACzD,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,UAAU;AAE9C,QAAA,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI;IAC1B;IAEO,aAAa,CAAC,IAAwB,EAAE,KAAa,EAAA;AAC1D,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;AACjC,YAAA,OAAO,CAAA,EAAG,KAAK,GAAG,CAAC,GAAG;QACxB;QAEA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;IACnE;IAEO,QAAQ,CAAC,IAAwB,EAAE,KAAa,EAAA;QACrD,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;AAAE,YAAA,OAAO,KAAK;AAExE,QAAA,OAAO,OAAO,CACZ,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,KAAK,CAAC,CACpF;IACH;IAEO,gBAAgB,CAAC,IAAwB,EAAE,KAAa,EAAA;AAC7D,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,IAAI;AAC5C,QAAA,OAAO,CAAA,EAAG,KAAK,GAAG,CAAC,EAAE;IACvB;IAEO,qBAAqB,CAAC,IAAwB,EAAE,KAAa,EAAA;QAClE,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,UAAU;AAE3C,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO;AAAE,YAAA,OAAO,OAAO;AAC3C,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;AAAE,YAAA,OAAO,SAAS;QAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU;AAAE,YAAA,OAAO,SAAS;QAE5E,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC;QAC5C,IAAI,KAAK,KAAK,WAAW;AAAE,YAAA,OAAO,SAAS;QAC3C,IAAI,KAAK,KAAK,SAAS;AAAE,YAAA,OAAO,SAAS;AAEzC,QAAA,OAAO,SAAS;IAClB;AAEO,IAAA,uBAAuB,CAAC,IAAwB,EAAA;QACrD,OAAO,IAAI,CAAC,YAAY;IAC1B;IAEO,0BAA0B,CAAC,IAAwB,EAAE,KAAa,EAAA;AACvE,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO;AAAE,YAAA,OAAO,0BAA0B;AAC9D,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;AAAE,YAAA,OAAO,4BAA4B;AAClE,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;AAAE,YAAA,OAAO,2BAA2B;AAChE,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU;AAAE,YAAA,OAAO,6BAA6B;QAEpE,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC;QAE5C,IAAI,KAAK,KAAK,WAAW;AAAE,YAAA,OAAO,8BAA8B;QAChE,IAAI,KAAK,KAAK,SAAS;AAAE,YAAA,OAAO,+BAA+B;AAC/D,QAAA,OAAO,4BAA4B;IACrC;AAEO,IAAA,QAAQ,CAAC,IAAwB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,EAAE;IACzB;AAEO,IAAA,cAAc,CAAC,IAAwB,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,WAAW,IAAI,EAAE;IAC/B;IAEO,gBAAgB,CAAC,IAAwB,EAAE,KAAa,EAAA;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC;AAC5C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAA,EAAG,KAAK,GAAG,CAAC,EAAE;AAE3D,QAAA,IAAI,KAAK,KAAK,WAAW,EAAE;YACzB,OAAO,CAAA,EAAG,KAAK,CAAA,UAAA,CAAY;QAC7B;AAEA,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,OAAO,CAAA,EAAG,KAAK,CAAA,aAAA,CAAe;QAChC;AAEA,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;YAC5B,OAAO,CAAA,EAAG,KAAK,CAAA,OAAA,CAAS;QAC1B;AAEA,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;YAC9B,OAAO,CAAA,EAAG,KAAK,CAAA,SAAA,CAAW;QAC5B;AAEA,QAAA,OAAO,KAAK;IACd;AAEO,IAAA,YAAY,CAAC,KAAa,EAAA;AAC/B,QAAA,OAAO,KAAK;IACd;IAEQ,SAAS,GAAA;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE;QAE7C,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CACtC,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,IAAI,CAAC,mBAAmB,CACzE;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AACjC,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;YAClB,IAAI,CAAC,QAAQ,GAAG,CAAA,gBAAA,EAAmB,IAAI,CAAC,GAAG,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAE;YAC1D,IAAI,CAAC,OAAO,GAAG,CAAA,gBAAA,EAAmB,IAAI,CAAC,GAAG,CAAA,OAAA,EAAU,KAAK,CAAA,CAAE;AAC3D,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,KAAK,YAAY;AACtC,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;IACvC;IAEQ,iBAAiB,CAAC,KAAa,EAAE,MAAkC,EAAA;QACzE,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AAC7C,QAAA,IAAI,UAAU,KAAK,IAAI,CAAC,YAAY;YAAE;AAEtC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY;AAEvC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,mBAAmB,GAAG,UAAU;YACrC,IAAI,CAAC,SAAS,EAAE;QAClB;AAEA,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;AACvC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,aAAa;AACb,YAAA,YAAY,EAAE,UAAU;YACxB,MAAM;AACP,SAAA,CAAC;IACJ;AAEQ,IAAA,wBAAwB,CAAC,KAAa,EAAA;QAC5C,IAAI,CAAC,IAAI,CAAC,WAAW;AAAE,YAAA,OAAO,KAAK;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK;QAEzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,KAAK;AAEpD,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,IAAI;AAC5C,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,mBAAmB;QAE9D,IAAI,CAAC,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI;QAE7B,IAAI,CAAC,IAAI,CAAC,qBAAqB;AAAE,YAAA,OAAO,KAAK;QAC7C,IAAI,CAAC,IAAI,CAAC,SAAS;AAAE,YAAA,OAAO,KAAK,KAAK,IAAI,CAAC,YAAY,GAAG,CAAC;AAE3D,QAAA,OAAO,IAAI;IACb;AAEQ,IAAA,2BAA2B,CAAC,KAAa,EAAA;AAC/C,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK;QAEzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,KAAK;AAEvB,QAAA,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;IACnC;IAEQ,0BAA0B,CAAC,KAAa,EAAE,SAAiB,EAAA;AACjE,QAAA,IAAI,MAAM,GAAG,KAAK,GAAG,SAAS;AAE9B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAC/B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;AACtC,gBAAA,OAAO,MAAM;YACf;YACA,MAAM,IAAI,SAAS;QACrB;AAEA,QAAA,OAAO,IAAI;IACb;AAEQ,IAAA,cAAc,CAAC,IAAwB,EAAA;QAC7C,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;IAC/D;IAEQ,YAAY,GAAA;QAClB,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;IACpE;AAEQ,IAAA,UAAU,CAAC,KAAa,EAAA;QAC9B,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;IAChD;AAEQ,IAAA,cAAc,CAAC,KAAa,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,CAAC;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5D;IAEQ,mBAAmB,CAAC,KAAa,EAAE,SAAiB,EAAA;AAC1D,QAAA,IAAI,MAAM,GAAG,KAAK,GAAG,SAAS;AAE9B,QAAA,OAAO,MAAM,IAAI,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAChD,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE;AAC5C,gBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACxB;YACF;YACA,MAAM,IAAI,SAAS;QACrB;IACF;AAEQ,IAAA,WAAW,CAAC,KAAa,EAAA;AAC/B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,aAAa;QAC1D,MAAM,EAAE,KAAK,EAAE;IACjB;wGAhYW,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,MAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAyBR,kBAAkB,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChErC,2jHAsGA,85WDpEY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAA0B,YAAY,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAApC,sBAAsB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAKnC,cAAc,EAAA,UAAA,EAAA,CAAA;kBAR1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,UAAA,EACf,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,sBAAsB,EAAE,YAAY,CAAC,EAAA,eAAA,EAG5C,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2jHAAA,EAAA,MAAA,EAAA,CAAA,u2WAAA,CAAA,EAAA;;sBAM9C;;sBACA;;sBAEA;;sBACA;;sBAEA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBAEA;;sBACA,MAAM;uBAAC,MAAM;;sBACb,MAAM;uBAAC,UAAU;;sBACjB;;sBAEA,eAAe;uBAAC,kBAAkB;;sBAGlC,YAAY;uBAAC,YAAY;;;ME7Df,8BAA8B,CAAA;AAChC,IAAA,UAAU,GAA4B,MAAM,EAAC,UAAuB,EAAC;wGADnE,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAJ1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MCCY,4BAA4B,CAAA;AAC9B,IAAA,WAAW,GAAqB,MAAM,EAAC,WAAgB,EAAC;wGADtD,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oCAAoC;AAC9C,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;ACwBD,SAASA,OAAK,CAAC,CAAS,EAAE,GAAW,EAAE,GAAW,EAAA;AAChD,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACxC;AAEA,SAASC,WAAS,CAChB,MAAe,EACf,KAAc,EACd,SAAkC,EAClC,MAAc,EAAA;IAEd,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;IAE5C,QAAQ,SAAS;AACf,QAAA,KAAK,cAAc;AACjB,YAAA,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE;AACtD,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE;AAClE,QAAA,KAAK,YAAY;AACf,YAAA,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE;AAErE,QAAA,KAAK,WAAW;AACd,YAAA,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE;AAClE,QAAA,KAAK,KAAK;YACR,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE;AAC9E,QAAA,KAAK,SAAS;YACZ,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE;AAEjF,QAAA,KAAK,aAAa;AAChB,YAAA,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE;AACpD,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAClE,QAAA,KAAK,WAAW;AACd,YAAA,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE;AAEtE,QAAA,KAAK,YAAY;AACf,YAAA,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE;AACjE,QAAA,KAAK,MAAM;YACT,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/E,QAAA,KAAK,UAAU;YACb,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE;;AAEvF;AAEA,SAAS,aAAa,CAAC,CAA0B,EAAA;AAC/C,IAAA,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAA4B;AACxF,IAAA,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAA4B;AACrF,IAAA,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAA4B;AACtF,IAAA,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAA4B;AACvF,IAAA,OAAO,CAAC;AACV;SAEgB,sBAAsB,CACpC,UAAmB,EACnB,SAAkB,EAClB,aAAkD,EAAA;AAElD,IAAA,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU;AAC5B,IAAA,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW;AAE7B,IAAA,IAAI,OAAO,GAAG,aAAa,CAAC,SAAS;AAErC,IAAA,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,CAAS,KAAI;AACpC,QAAA,MAAM,GAAG,GAAG,aAAa,CAAC,eAAe;QACzC,MAAM,IAAI,GAAG,CAAC;QACd,MAAM,GAAG,GAAG,CAAC;AACb,QAAA,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK;AACjC,QAAA,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM;AAEnC,QAAA,OAAO,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE,GAAG,GAAG,IAAI,MAAM,IAAI,EAAE,GAAG,GAAG;AAC7E,IAAA,CAAC;AAED,IAAA,IAAI,GAAG,GAAGA,WAAS,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC;AAEzE,IAAA,IAAI,aAAa,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE;AACjD,QAAA,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;AACtC,QAAA,MAAM,UAAU,GAAGA,WAAS,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC;QAClF,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;YACpC,OAAO,GAAG,OAAO;YACjB,GAAG,GAAG,UAAU;QAClB;IACF;AAEA,IAAA,IAAI,aAAa,CAAC,SAAS,EAAE;AAC3B,QAAA,MAAM,GAAG,GAAG,aAAa,CAAC,eAAe;AACzC,QAAA,GAAG,CAAC,CAAC,GAAGD,OAAK,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC;AACrD,QAAA,GAAG,CAAC,CAAC,GAAGA,OAAK,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;IACxD;AAEA,IAAA,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE;AAC1D;;MCzFa,cAAc,CAAA;AACR,IAAA,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;AAC/B,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IAEvC,MAAM,GAAG,CAAC;IACV,UAAU,GAAG,EAAE;IACf,QAAQ,GAAG,IAAI;IACf,SAAS,GAAG,IAAI;IAChB,UAAU,GAAG,KAAK;IAClB,eAAe,GAAG,CAAC;IACnB,aAAa,GAAG,IAAI;IACpB,mBAAmB,GAAG,IAAI;IAC1B,aAAa,GAAwB,IAAI;IACzC,iBAAiB,GAAwB,IAAI;IAC7C,SAAS,GAA4B,cAAc;AAElD,IAAA,UAAU,GAAG,IAAI,YAAY,EAAW;AAEjC,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,oFAAC;AAC7B,IAAA,UAAU,GAAG,MAAM,CAAiB,IAAI,iFAAC;AAEjD,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;AAC9B,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE;AAC3B,QAAA,OAAO,OAAO,CAAC,KAAK,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE;AAC1D,IAAA,CAAC,6EAAC;IAEF,IAAa,IAAI,CAAC,CAAiB,EAAA;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB;AACA,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE;IAC1B;AAE4C,IAAA,QAAQ;AACN,IAAA,UAAU;IAEhD,GAAG,GAAG,CAAC;IACP,QAAQ,GAAG,KAAK;AAChB,IAAA,SAAS;AACT,IAAA,SAAS;AAEjB,IAAA,IACI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI;IACtC;AAEA,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,IAAI,IAAI,CAAC,MAAM,EAAE;gBAAE,IAAI,CAAC,IAAI,EAAE;;gBACzB,IAAI,CAAC,IAAI,EAAE;AAClB,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;AACnB,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAAE;YAEpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE;YAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE;AAEhD,YAAA,MAAM,aAAa,GAAG,CAAC,EAAgB,KAAI;gBACzC,IAAI,CAAC,IAAI,CAAC,mBAAmB;oBAAE;AAC/B,gBAAA,MAAM,CAAC,GAAG,EAAE,CAAC,MAAqB;gBAClC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,aAAa;gBAC3D,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS;oBAAE;gBAEzC,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACrD,MAAM,gBAAgB,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE9C,gBAAA,IAAI,CAAC,kBAAkB,IAAI,CAAC,gBAAgB,EAAE;AAC5C,oBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBACrB;AACF,YAAA,CAAC;AAED,YAAA,MAAM,SAAS,GAAG,CAAC,EAAiB,KAAI;gBACtC,IAAI,CAAC,IAAI,CAAC,aAAa;oBAAE;AACzB,gBAAA,IAAI,EAAE,CAAC,GAAG,KAAK,QAAQ;AAAE,oBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC9C,YAAA,CAAC;AAED,YAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC9D,YAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC7E,YAAA,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC1E,YAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAElE,SAAS,CAAC,MAAK;AACb,gBAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAC9C,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAW,CAAC;gBAC3D,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,aAAa,EAAE,IAAW,CAAC;gBACvE,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAW,CAAC;AACjE,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IACrD;IAEO,MAAM,GAAA;QACX,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC9B;AAEO,IAAA,OAAO,CAAC,IAAa,EAAA;AAC1B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE;QAC7B,IAAI,IAAI,KAAK,OAAO;YAAE;QACtB,IAAI,IAAI,CAAC,QAAQ;YAAE;AAEnB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1B,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,SAAS,EAAE;AAC1C,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;YAC9B;QACF;gBAAU;AACR,YAAA,cAAc,CAAC,OAAO,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;QAC/C;IACF;IAEQ,aAAa,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE;QAE1D,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC1C,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AAC3B,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO;AAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,sBAAsB;AAC1C,QAAA,IAAI,CAAC,SAAS,GAAG,CAAA,sBAAA,EAAyB,IAAI,CAAC,UAAU,IAAI,EAAE,CAAA,CAAE,CAAC,IAAI,EAAE;AAExE,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAAC;AAC7D,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,aAAa,EAAE;AAEpB,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS;AAAE,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACzD,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAE/B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;IACvB;IAEQ,IAAI,GAAA;QACV,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE;QAErB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE;AACjC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;IAC/B;IAEQ,IAAI,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE;QACrB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;IACvC;IAEQ,WAAW,GAAA;QACjB,IAAI,IAAI,CAAC,GAAG;AAAE,YAAA,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5C,QAAA,IAAI,CAAC,GAAG,GAAG,CAAC;AAEZ,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;AACtC,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AACxB,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAC5B;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AACvB,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAC5B;IACF;IAEQ,kBAAkB,CAAC,SAAS,GAAG,KAAK,EAAA;QAC1C,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE;QAEzC,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,UAAU,EAAE;YACjB;QACF;QAEA,IAAI,IAAI,CAAC,GAAG;YAAE;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,qBAAqB,CAAC,MAAK;AACpC,YAAA,IAAI,CAAC,GAAG,GAAG,CAAC;YACZ,IAAI,CAAC,UAAU,EAAE;AACnB,QAAA,CAAC,CAAC;IACJ;IAEQ,UAAU,GAAA;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,aAAa;AAC3D,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS;AAC3B,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI;YAAE;AAEzB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,IAAI,SAAS;AAChD,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,qBAAqB,EAAE;AACnD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAC;AAE7E,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,EAAE;YAC9B,MAAM,CAAC,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK;AAC/C,YAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY;YACnC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,CAAC,IAAI;YAC3B,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAA,EAAG,CAAC,IAAI;YAC9B,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAA,EAAG,CAAC,IAAI;QAChC;aAAO;AACL,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE;AACrB,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE;QAC1B;AAEA,QAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM;YAAE;AAE/C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,EAAE;QAE9C,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,sBAAsB,CAAC,UAAU,EAAE,SAAS,EAAE;YAC7D,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;AAC5B,SAAA,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,YAAA,EAAe,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;IACjF;wGAtNW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAiCX,4BAA4B,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAC5B,8BAA8B,gDChE9C,6BACA,EAAA,MAAA,EAAA,CAAA,0bAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;4FD6Ba,cAAc,EAAA,UAAA,EAAA,CAAA;kBAR1B,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,0bAAA,CAAA,EAAA;;sBAMpC;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBAUA;;sBAOA,YAAY;uBAAC,4BAA4B;;sBACzC,YAAY;uBAAC,8BAA8B;;sBAO3C,WAAW;uBAAC,gBAAgB;;;ME9ClB,WAAW,CAAA;IACb,IAAI,GAAa,IAAI;IACrB,QAAQ,GAAG,KAAK;IAChB,OAAO,GAAgB,WAAW;AACZ,IAAA,QAAQ;AACZ,IAAA,cAAc,GAAG,IAAI,YAAY,EAAU;AAC5D,IAAA,SAAS,GAAG,IAAI,YAAY,EAAkB;IAElC,SAAS,GAAG,mBAAmB;AACxB,IAAA,IAAI;AACxB,IAAA,OAAO,GAAG,MAAM,CAAgB,IAAI,8EAAC;IAE9C,kBAAkB,GAAA;QAChB,cAAc,CAAC,MAAK;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE,EAAE,EAAE;gBAC/B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC;YACjC;AACA,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE;AACnD,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE,EAAE,IAAI,IAAI,CAAC;YACtD;YACA,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpD,QAAA,CAAC,CAAC;IACJ;IAEQ,QAAQ,GAAA;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;AACvC,QAAA,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;AACpB,YAAA,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;YAClB,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC;QAC7C;IACF;AAEA,IAAA,QAAQ,CAAC,EAAU,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,EAAE;IAC7B;AAEA,IAAA,WAAW,CAAC,EAAU,EAAA;AACpB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;QAC1B,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,MAAM,EAAE;IACtC;AAEA,IAAA,SAAS,CAAC,EAAU,EAAE,IAAI,GAAG,IAAI,EAAA;AAC/B,QAAA,IAAI,CAAC,EAAE;YAAE;AACT,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;AAClB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;QAC7B;IACF;AAEA,IAAA,SAAS,CAAC,EAAiB,EAAA;QACzB,IAAI,IAAI,CAAC,QAAQ;YAAE;QAEnB,MAAM,IAAI,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC;YAAE;QAE5B,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE;QAElB,EAAE,CAAC,cAAc,EAAE;AAEnB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;QAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAClB,CAAC,EACD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAC1C;QACD,IAAI,IAAI,GAAG,GAAG;AAEd,QAAA,IAAI,EAAE,CAAC,GAAG,KAAK,WAAW;AAAE,YAAA,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;AACxE,QAAA,IAAI,EAAE,CAAC,GAAG,KAAK,YAAY;YAAE,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM;AAC3D,QAAA,IAAI,EAAE,CAAC,GAAG,KAAK,MAAM;YAAE,IAAI,GAAG,CAAC;AAC/B,QAAA,IAAI,EAAE,CAAC,GAAG,KAAK,KAAK;AAAE,YAAA,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;AAE5C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,MAAM,EAAE;IAClB;wGA/EW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,SAAA,EASL,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClC7B,6MAQA,4lCDYY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAKN,WAAW,EAAA,UAAA,EAAA,CAAA;kBARvB,SAAS;+BACE,cAAc,EAAA,UAAA,EACZ,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,CAAC,EAAA,eAAA,EAGD,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6MAAA,EAAA,MAAA,EAAA,CAAA,oiCAAA,CAAA,EAAA;;sBAG9C;;sBACA;;sBACA;;sBACA,KAAK;uBAAC,EAAE,KAAK,EAAE,WAAW,EAAE;;sBAC5B,MAAM;uBAAC,iBAAiB;;sBACxB;;sBAEA,WAAW;uBAAC,OAAO;;sBACnB,eAAe;uBAAC,UAAU;;;MEbhB,UAAU,CAAA;AASF,IAAA,UAAA;IARV,QAAQ,GAAG,KAAK;AAChB,IAAA,UAAU;AACQ,IAAA,EAAE;AAErB,IAAA,MAAM;IACN,gBAAgB,GAAG,KAAK;IAEhC,WAAA,CACmB,UAAmC,EACxC,MAAmB,EAAA;QADd,IAAA,CAAA,UAAU,GAAV,UAAU;AAG3B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACtB;AAEA,IAAA,UAAU,CAAC,MAAmB,EAAA;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACtB;AAEA,IAAA,YAAY,CAAC,QAAiB,EAAA;AAC5B,QAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ;IAClC;IAEA,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB;IAC/C;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE;IACvC;AAEA,IAAA,IACI,SAAS,GAAA;AACX,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,OAAO;YACL,aAAa;AACb,YAAA,MAAM,GAAG,WAAW,GAAG,EAAE;YACzB,IAAI,CAAC,WAAW,EAAE,GAAG,aAAa,GAAG,EAAE;YACvC,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,EAAE;AACjC;aACE,MAAM,CAAC,OAAO;aACd,IAAI,CAAC,GAAG,CAAC;IACd;IAE0B,IAAI,GAAG,KAAK;AAEtC,IAAA,IACI,QAAQ,GAAA;QACV,IAAI,IAAI,CAAC,WAAW,EAAE;YAAE,OAAO,CAAC,CAAC;AACjC,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnD;AAEA,IAAA,IACI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,OAAO;IAC1D;IAGA,OAAO,GAAA;QACL,IAAI,IAAI,CAAC,WAAW,EAAE;YAAE;QACxB,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC;IACvC;IAGA,OAAO,GAAA;QACL,IAAI,IAAI,CAAC,WAAW,EAAE;YAAE;QACxB,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IACnC;wGAnEW,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrBvB,0NASA,EAAA,MAAA,EAAA,CAAA,kvDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDOY,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAKT,UAAU,EAAA,UAAA,EAAA,CAAA;kBARtB,SAAS;+BACE,aAAa,EAAA,UAAA,EACX,IAAI,EAAA,OAAA,EACP,CAAC,UAAU,CAAC,EAAA,eAAA,EAGJ,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0NAAA,EAAA,MAAA,EAAA,CAAA,kvDAAA,CAAA,EAAA;;0BAY5C;;sBATF;;sBACA;;sBACA,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;sBA4BxB,WAAW;uBAAC,OAAO;;sBAanB,WAAW;uBAAC,WAAW;;sBAEvB,WAAW;uBAAC,eAAe;;sBAM3B,WAAW;uBAAC,oBAAoB;;sBAKhC,YAAY;uBAAC,OAAO;;sBAMpB,YAAY;uBAAC,OAAO;;;MElEV,qBAAqB,CAAA;IACsB,MAAM,GAAG,EAAE;AAEpC,IAAA,MAAM;IAC1B,QAAQ,GAAsB,MAAM;IACpC,UAAU,GAAuB,MAAM;IACX,IAAI,GAAG,IAAI;IACX,IAAI,GAAG,KAAK;IACU,UAAU,GAAG,IAAI;AAE5E,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE;AAEtB,QAAA,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;YACnB,IAAI,IAAI,CAAC,IAAI;gBAAE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ;;gBAC5D,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE;QACnD;IACF;AAEA,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IACxE;wGArBW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAwBzBC,eAAa,CAAA,EAAA,IAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAbA,eAAa,6CAAbA,eAAa,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1CtB,unBAkBA,EAAA,MAAA,EAAA,CAAA,i5CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDLY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAKN,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBARjC,SAAS;+BACE,yBAAyB,EAAA,UAAA,EACvB,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,CAAC,EAAA,eAAA,EAGD,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,unBAAA,EAAA,MAAA,EAAA,CAAA,i5CAAA,CAAA,EAAA;;sBAG9C,WAAW;uBAAC,8BAA8B;;sBAE1C,KAAK;uBAAC,EAAE,KAAK,EAAE,SAAS,EAAE;;sBAC1B;;sBACA;;sBACA,KAAK;uBAAC,EAAE,SAAS,EAAEA,eAAa,EAAE;;sBAClC,KAAK;uBAAC,EAAE,SAAS,EAAEA,eAAa,EAAE;;sBAClC,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAEA,eAAa,EAAE;;AAgB3D,SAASA,eAAa,CAAC,CAAM,EAAA;AAC3B,IAAA,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG;AACvE;;AEnCA,SAASH,OAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAA;AACpD,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC5C;AAEA,SAAS,gBAAgB,CAAC,QAAiC,EAAA;IACzD,QAAQ,QAAQ;AACd,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,QAAQ;AACjB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,KAAK;AACd,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,OAAO;AAChB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,MAAM;;AAEnB;AAEA,SAAS,SAAS,CAChB,MAAe,EACf,KAAc,EACd,QAAiC,EACjC,MAAc,EAAA;IAEd,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC;IACpD,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;IAEpD,QAAQ,QAAQ;AACd,QAAA,KAAK,KAAK;YACR,OAAO;AACL,gBAAA,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC;gBAClC,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM;aACtC;AAEH,QAAA,KAAK,QAAQ;YACX,OAAO;AACL,gBAAA,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC;AAClC,gBAAA,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM;aAC1B;AAEH,QAAA,KAAK,OAAO;YACV,OAAO;AACL,gBAAA,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM;AACxB,gBAAA,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;aACpC;AAEH,QAAA,KAAK,MAAM;YACT,OAAO;gBACL,CAAC,EAAE,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM;AACrC,gBAAA,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;aACpC;;AAEP;SAEgB,uBAAuB,CACrC,UAAmB,EACnB,SAAkB,EAClB,aAAmD,EAAA;AAEnD,IAAA,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU;AACvC,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW;AACzC,IAAA,MAAM,OAAO,GAAG,aAAa,CAAC,eAAe;AAE7C,IAAA,IAAI,eAAe,GAAG,aAAa,CAAC,QAAQ;AAC5C,IAAA,IAAI,QAAQ,GAAG,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC;AAEtF,IAAA,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,CAAS,KAAa;QAC7C,MAAM,IAAI,GAAG,CAAC;QACd,MAAM,GAAG,GAAG,CAAC;AACb,QAAA,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK;AACjC,QAAA,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM;QAEnC,QACE,IAAI,IAAI,OAAO;AACf,YAAA,GAAG,IAAI,OAAO;YACd,KAAK,IAAI,aAAa,GAAG,OAAO;AAChC,YAAA,MAAM,IAAI,cAAc,GAAG,OAAO;AAEtC,IAAA,CAAC;AAED,IAAA,IAAI,aAAa,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC3D,QAAA,MAAM,OAAO,GAAG,gBAAgB,CAAC,eAAe,CAAC;AACjD,QAAA,MAAM,eAAe,GAAG,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC;QAEvF,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE;YAC9C,eAAe,GAAG,OAAO;YACzB,QAAQ,GAAG,eAAe;QAC5B;IACF;AAEA,IAAA,IAAI,aAAa,CAAC,SAAS,EAAE;AAC3B,QAAA,QAAQ,CAAC,CAAC,GAAGA,OAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC;AAClF,QAAA,QAAQ,CAAC,CAAC,GAAGA,OAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC;IACtF;IAEA,OAAO;QACL,CAAC,EAAE,QAAQ,CAAC,CAAC;QACb,CAAC,EAAE,QAAQ,CAAC,CAAC;QACb,eAAe;KAChB;AACH;AAEM,SAAU,wBAAwB,CACtC,MAA+B,EAC/B,UAAwC,EACxC,OAAwC,EACxC,kBAA+D,EAAA;IAE/D,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,qBAAqB,EAAE;IAC/D,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,qBAAqB,EAAE;IAEhE,MAAM,MAAM,GAAG,uBAAuB,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC;IAEtE,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3C,IAAA,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC;AAC5C;;MCxGa,6BAA6B,CAAA;AACvB,IAAA,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;AAC/B,IAAA,QAAQ,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAEvD,IAAA,MAAM,CACJ,SAAkB,EAClB,OAAA,GAAyC,EAAE,EAAA;AAE3C,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,IAAI,kBAAkB,CAAC;QAEhE,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC1C,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE;AACZ,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO;AAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa;AAChC,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,aAAa;QACnC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,gCAAgC;QACtE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,MAAM;AAC1D,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,sBAAsB;AAE7C,QAAA,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE;YAC9B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE;QAC5C;AAEA,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAE/B,QAAA,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,EAAE;YAC9C,mBAAmB,EAAE,IAAI,CAAC,QAAQ;AAClC,YAAA,WAAW,EAAE,IAAI;AAClB,SAAA,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC;AAC7C,QAAA,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE;QAE9C,OAAO;YACL,EAAE;AACF,YAAA,WAAW,EAAE,IAAI;YACjB,YAAY;YAEZ,YAAY,CAAC,CAAS,EAAE,CAAS,EAAA;gBAC/B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,YAAA,EAAe,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;YACjF,CAAC;YAED,OAAO,EAAE,MAAW;gBAClB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC;gBAC7C,YAAY,CAAC,OAAO,EAAE;gBACtB,IAAI,CAAC,MAAM,EAAE;YACf,CAAC;SACF;IACH;AAEA,IAAA,UAAU,CAAI,OAA4C,EAAA;QACxD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE;QACzD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,qBAAqB,EAAE;AAExE,QAAA,MAAM,MAAM,GAAG,uBAAuB,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC;AAE9E,QAAA,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACnD,QAAA,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC;IACpD;AAEA,IAAA,mBAAmB,CAAC,SAAiB,EAAE,SAAiB,EAAE,GAAW,EAAA;AACnE,QAAA,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC;AAClC,QAAA,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC;QAElC,IAAI,GAAG,EAAE;YACP,oBAAoB,CAAC,GAAG,CAAC;QAC3B;IACF;AAEA,IAAA,cAAc,CAAI,UAAyC,EAAA;QACzD,UAAU,EAAE,OAAO,EAAE;IACvB;AAEQ,IAAA,QAAQ,CAAC,MAAc,EAAA;QAC7B,MAAM,MAAM,GACV,OAAO,MAAM,KAAK,WAAW,IAAI,YAAY,IAAI;AAC/C,cAAE,MAAM,CAAC,UAAU;AACnB,cAAE,CAAA,EAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE;AAE9D,QAAA,OAAO,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,MAAM,EAAE;IAC9B;wGAnFW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAA7B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,cAF5B,MAAM,EAAA,CAAA;;4FAEP,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCDY,uBAAuB,CAAA;AACzB,IAAA,QAAQ,GAAG,KAAK,CAA8B,IAAI,+EAAC;AACnD,IAAA,QAAQ,GAAG,KAAK,CAAyB,KAAK,+EAAC;AAC/C,IAAA,OAAO,GAAG,KAAK,CAAwB,SAAS,8EAAC;AACjD,IAAA,IAAI,GAAG,KAAK,CAAqB,IAAI,2EAAC;wGAJpC,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjBpC,maAeA,EAAA,MAAA,EAAA,CAAA,4zHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDHY,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAKf,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBARnC,SAAS;+BACE,4BAA4B,EAAA,UAAA,EAC1B,IAAI,EAAA,OAAA,EACP,CAAC,gBAAgB,CAAC,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,maAAA,EAAA,MAAA,EAAA,CAAA,4zHAAA,CAAA,EAAA;;;MEUpC,2BAA2B,CAAA;AACrB,IAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AACxD,IAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,IAAA,eAAe,GAAG,MAAM,CAAC,6BAA6B,CAAC;IAE/D,QAAQ,GAAG,KAAK,CAA8B,IAAI,gFACzD,KAAK,EAAE,sBAAsB,EAAA,CAC7B;IAEO,eAAe,GAAG,KAAK,CAAyB,KAAK,uFAC5D,KAAK,EAAE,kBAAkB,EAAA,CACzB;IAEO,cAAc,GAAG,KAAK,CAAwB,SAAS,sFAC9D,KAAK,EAAE,iBAAiB,EAAA,CACxB;IAEO,WAAW,GAAG,KAAK,CAAqB,IAAI,mFACnD,KAAK,EAAE,cAAc,EAAA,CACrB;IAEO,eAAe,GAAG,KAAK,CAAC,KAAK,uFACpC,KAAK,EAAE,kBAAkB,EAAA,CACzB;IAEO,gBAAgB,GAAG,KAAK,CAAC,GAAG,wFACnC,KAAK,EAAE,oBAAoB,EAAA,CAC3B;IAEO,gBAAgB,GAAG,KAAK,CAAC,GAAG,wFACnC,KAAK,EAAE,oBAAoB,EAAA,CAC3B;IAEO,aAAa,GAAG,KAAK,CAAC,CAAC,qFAC9B,KAAK,EAAE,gBAAgB,EAAA,CACvB;IAEO,eAAe,GAAG,KAAK,CAAC,IAAI,uFACnC,KAAK,EAAE,mBAAmB,EAAA,CAC1B;IAEO,gBAAgB,GAAG,KAAK,CAAC,IAAI,wFACpC,KAAK,EAAE,oBAAoB,EAAA,CAC3B;IAEO,sBAAsB,GAAG,KAAK,CAAC,CAAC,8FACvC,KAAK,EAAE,0BAA0B,EAAA,CACjC;AAEM,IAAA,UAAU;IACV,SAAS,GAAG,CAAC;IACb,SAAS,GAAG,CAAC;IACb,GAAG,GAAG,CAAC;IACP,gBAAgB,GAAG,KAAK;IACxB,cAAc,GAAG,KAAK;IACtB,cAAc,GAAG,KAAK;IAEb,QAAQ,GAAsB,EAAE;AAEjD,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;AAE1C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,MAAK;AAC5C,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;YAC5B,IAAI,CAAC,YAAY,EAAE;AACrB,QAAA,CAAC,CAAC,EACF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,MAAK;AAC5C,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;YAC7B,IAAI,CAAC,kBAAkB,EAAE;AAC3B,QAAA,CAAC,CAAC,EACF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAK;AACzC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;YAC1B,IAAI,CAAC,YAAY,EAAE;AACrB,QAAA,CAAC,CAAC,EACF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAK;AAC1C,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;YAC3B,IAAI,CAAC,kBAAkB,EAAE;AAC3B,QAAA,CAAC,CAAC,EACF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,KAAoB,KAAI;AAC7D,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;gBAC1B,IAAI,CAAC,IAAI,EAAE;YACb;QACF,CAAC,CAAC,EACF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,EAC3E,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,EAC3E,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,KAAoB,KAAI;AACjE,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;gBAC1B,IAAI,CAAC,IAAI,EAAE;YACb;QACF,CAAC,CAAC,CACH;QAED,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE;YAEtB,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,kBAAkB,EAAE;AAC3B,QAAA,CAAC,CAAC;IACJ;IAEQ,YAAY,GAAA;QAClB,IAAI,IAAI,CAAC,eAAe,EAAE;YAAE;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAAE;AAEtB,QAAA,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACvC,QAAA,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;QAEvC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,MAAK;YAC1C,IAAI,CAAC,IAAI,EAAE;AACb,QAAA,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC7B;IAEQ,kBAAkB,GAAA;AACxB,QAAA,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACvC,QAAA,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;QAEvC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,MAAK;AAC1C,YAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBAC1E,IAAI,CAAC,IAAI,EAAE;YACb;AACF,QAAA,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC7B;IAEQ,IAAI,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,EAAE;YAAE;AAC/C,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAAE;QAEtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,uBAAuB,EAAE;AACrE,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,MAAM,EAAE,gCAAgC;AACxC,YAAA,aAAa,EAAE,MAAM;AACtB,SAAA,CAAC;QAEF,IAAI,CAAC,gBAAgB,EAAE;QACvB,IAAI,CAAC,qBAAqB,EAAE;AAE5B,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CACxB,IAAI,CAAC,UAAU,CAAC,aAAa,EAC7B,kBAAkB,EAClB,IAAI,CAAC,UAAU,CAAC,EAAE,CACnB;QAED,qBAAqB,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAChD;IAEQ,qBAAqB,GAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE;AAEtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW;AAEzC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,MAAK;AAC7C,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,YAAA,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,QAAA,CAAC,CAAC,EACF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,MAAK;AAC7C,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;YAC3B,IAAI,CAAC,kBAAkB,EAAE;AAC3B,QAAA,CAAC,CAAC,EACF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAK;AAC1C,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,YAAA,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACzC,QAAA,CAAC,CAAC,EACF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,MAAK;AAC3C,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;YAC3B,IAAI,CAAC,kBAAkB,EAAE;QAC3B,CAAC,CAAC,CACH;IACH;IAEQ,IAAI,GAAA;AACV,QAAA,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC;AAClF,QAAA,IAAI,CAAC,GAAG,GAAG,CAAC;AAEZ,QAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,kBAAkB,CAAC;QAEhF,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;AACpD,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAE3B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;IAC7B;IAEQ,gBAAgB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE;AAEtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY;QAE1C,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3C,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;QAClD,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;AAE1C,QAAA,KAAK,CAAC,iBAAiB,CAAC,aAAa,EAAE;IACzC;IAEQ,kBAAkB,GAAA;QACxB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE;QACtB,IAAI,IAAI,CAAC,GAAG;YAAE;AAEd,QAAA,IAAI,CAAC,GAAG,GAAG,qBAAqB,CAAC,MAAK;AACpC,YAAA,IAAI,CAAC,GAAG,GAAG,CAAC;YACZ,IAAI,CAAC,UAAU,EAAE;AACnB,QAAA,CAAC,CAAC;IACJ;IAEQ,UAAU,GAAA;QAChB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE;QAEtB,wBAAwB,CACtB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,UAAU,EACf;AACE,YAAA,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE;AAChC,YAAA,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE;AAC5B,YAAA,eAAe,EAAE,IAAI,CAAC,sBAAsB,EAAE;AAC9C,YAAA,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE;AAChC,YAAA,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE;SACnC,EACD,CAAC,QAAQ,KAAI;YACX,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;YAC5D,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE;AACjE,QAAA,CAAC,CACF;IACH;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,IAAI,EAAE;AAEX,QAAA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnC,YAAA,OAAO,EAAE;QACX;IACF;wGAzOW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;ACFD,MAAMI,eAAa,GAAG,IAAI,GAAG,CAAqB;IAChD,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,OAAO;IACP,MAAM;IACN,UAAU;AACX,CAAA,CAAC;AACF,SAASC,eAAa,CAAC,CAAqB,EAAA;IAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;IAC1B,QAAQ,CAAC;AACP,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,GAAG;AACZ,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,0BAA0B;AACnC,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,oDAAoD;AAC7D,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,8EAA8E;AACvF,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,4BAA4B;AACrC,QAAA;AACE,YAAA,OAAO,CAAC;;AAEd;MAMa,sBAAsB,CAAA;AAChB,IAAA,UAAU,GAAG,MAAM,EAAC,UAAuB,EAAC;AAE5C,IAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,+EAAC;AACxB,IAAA,SAAS,GAAG,MAAM,CAAC,KAAK,gFAAC;AACzB,IAAA,SAAS,GAAG,MAAM,CAAC,KAAK,gFAAC;AACzB,IAAA,UAAU,GAAG,MAAM,CAAC,KAAK,iFAAC;AAC1B,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,oFAAC;AAC7B,IAAA,UAAU,GAAG,MAAM,CAAgB,IAAI,iFAAC;AACxC,IAAA,YAAY,GAAG,MAAM,CAAgB,IAAI,mFAAC;AAC1C,IAAA,KAAK,GAAG,MAAM,CAAoB,IAAI,4EAAC;AACvC,IAAA,QAAQ,GAAG,MAAM,CAAuB,OAAO,+EAAC;AAChD,IAAA,OAAO,GAAG,MAAM,CAA4B,IAAI,8EAAC;AACjD,IAAA,MAAM,GAAG,MAAM,CAAgC,SAAS,6EAAC;AAEzD,IAAA,QAAQ,GAAG,QAAQ,CAClC,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,+EAClE;IAED,IAAa,IAAI,CAAC,CAAoB,EAAA;AACpC,QAAA,IAAI,CAAC;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B;IACA,IAAa,OAAO,CAAC,CAAuB,EAAA;AAC1C,QAAA,IAAI,CAAC;AAAE,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B;IACA,IAAa,KAAK,CAAC,CAA0B,EAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE;QAE1C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC9B,QAAA,IAAID,eAAa,CAAC,GAAG,CAAC,KAA2B,CAAC,EAAE;AAClD,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAA2B,CAAC;AAC5C,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;QAC7B;aAAO;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;AACzB,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;QAC9B;IACF;IACA,IAAa,SAAS,CAAC,CAA4B,EAAA;AACjD,QAAA,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC5E,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;IAC5B;IACA,IAAa,MAAM,CAAC,CAAwC,EAAA;QAC1D,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG,CAAC;AAC7D,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IACzB;IACA,IAA4C,OAAO,CAAC,CAAU,EAAA;AAC5D,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB;IACA,IAA4C,QAAQ,CAAC,CAAU,EAAA;AAC7D,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB;IACA,IAA4C,QAAQ,CAAC,CAAU,EAAA;AAC7D,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB;IACA,IAA4C,SAAS,CAAC,CAAU,EAAA;AAC9D,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB;IACA,IAA4C,YAAY,CAAC,CAAU,EAAA;AACjE,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B;IAE6C,IAAI,GAAG,EAAE;AACtD,IAAA,IAAkC,QAAQ,GAAA;QACxC,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;IAC7E;AACA,IAAA,IAAmC,QAAQ,GAAA;AACzC,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,IAAI;IACxC;AACA,IAAA,IAAmC,QAAQ,GAAA;AACzC,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE;IACrB;AACA,IAAA,IAAoC,SAAS,GAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE;IACtB;AACA,IAAA,IAAkC,cAAc,GAAA;AAC9C,QAAA,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;QACjC,OAAO,QAAQ,KAAK,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IACtE;AACA,IAAA,IAAsC,WAAW,GAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;IACxB;AACA,IAAA,IAAuC,YAAY,GAAA;QACjD,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI;IACjF;AACA,IAAA,IAAwC,YAAY,GAAA;AAClD,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,GAAG,IAAI;IACzC;AACA,IAAA,IAAyC,aAAa,GAAA;AACpD,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,GAAG,MAAM,GAAG,IAAI;IAC1C;AACA,IAAA,IAAsC,gBAAgB,GAAA;AACpD,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI;IACpC;AACA,IAAA,IAAyC,aAAa,GAAA;AACpD,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,GAAG,MAAM,GAAG,IAAI;IAC1C;AACA,IAAA,IAA0C,cAAc,GAAA;AACtD,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI;IAClC;AACA,IAAA,IAA4C,gBAAgB,GAAA;AAC1D,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,GAAG,MAAM,GAAG,IAAI;IAC7C;AACA,IAAA,IAAkD,YAAY,GAAA;AAC5D,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,GAAGC,eAAa,CAAC,IAAI,CAAC,OAAO,EAAG,CAAC,GAAG,IAAI;IAC/D;AAEmC,IAAA,OAAO,CAAC,EAAS,EAAA;AAClD,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAAE;QACtB,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACvC,EAAE,CAAC,cAAc,EAAE;YACnB,EAAE,CAAC,wBAAwB,EAAE;QAC/B;IACF;wGAhHW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EA6Cb,gBAAgB,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAGhB,gBAAgB,sCAGhB,gBAAgB,CAAA,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAGhB,gBAAgB,CAAA,EAAA,YAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAGhB,gBAAgB,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,+BAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAzDzB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2CAA2C;AACrD,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;sBAoBE;;sBAGA;;sBAGA;;sBAYA;;sBAIA;;sBAIA,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAGrC,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAGrC,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAGrC,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAGrC,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAIrC,WAAW;uBAAC,qBAAqB;;sBACjC,WAAW;uBAAC,eAAe;;sBAG3B,WAAW;uBAAC,gBAAgB;;sBAG5B,WAAW;uBAAC,gBAAgB;;sBAG5B,WAAW;uBAAC,iBAAiB;;sBAG7B,WAAW;uBAAC,eAAe;;sBAI3B,WAAW;uBAAC,mBAAmB;;sBAG/B,WAAW;uBAAC,oBAAoB;;sBAGhC,WAAW;uBAAC,qBAAqB;;sBAGjC,WAAW;uBAAC,sBAAsB;;sBAGlC,WAAW;uBAAC,mBAAmB;;sBAG/B,WAAW;uBAAC,sBAAsB;;sBAGlC,WAAW;uBAAC,uBAAuB;;sBAGnC,WAAW;uBAAC,yBAAyB;;sBAGrC,WAAW;uBAAC,+BAA+B;;sBAI3C,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;ACvJ5B,MAAM,8BAA8B,GAA2C;IACpF,WAAW;IACX,UAAU;IACV,YAAY;IACZ,cAAc;IACd,aAAa;IACb,eAAe;;AAGV,MAAM,mCAAmC,GAA8B;AAC5E,IAAA,eAAe,EAAE,eAAe;AAChC,IAAA,eAAe,EAAE,KAAK;AACtB,IAAA,qBAAqB,EAAE,CAAC;AACxB,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,WAAW,EAAE,IAAI;AACjB,IAAA,YAAY,EAAE,KAAK;AACnB,IAAA,eAAe,EAAE,IAAI;AACrB,IAAA,gBAAgB,EAAE,uBAAuB;;MAG9B,2BAA2B,GAAG,IAAI,cAAc,CAC3D,6BAA6B,EAC7B;AACE,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,MAAM,mCAAmC;AACnD,CAAA;AAGH,SAAS,WAAW,CAAC,KAAA,GAAwC,EAAE,EAAA;IAC7D,OAAO;AACL,QAAA,GAAG,mCAAmC;AACtC,QAAA,GAAG,KAAK;KACT;AACH;AAEM,SAAU,2BAA2B,CACzC,KAAA,GAAwC,EAAE,EAAA;AAE1C,IAAA,OAAO,wBAAwB,CAAC;AAC9B,QAAA;AACE,YAAA,OAAO,EAAE,2BAA2B;AACpC,YAAA,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC;AAC7B,SAAA;AACF,KAAA,CAAC;AACJ;;MCxCa,8BAA8B,CAAA;AACxB,IAAA,kBAAkB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAChD,IAAA,kBAAkB,GAAG,MAAM,CAAC,2BAA2B,CAAC;AACxD,IAAA,iBAAiB,GAAG,MAAM,CAAC,iCAAiC,CAAC;IAE7D,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,EAAE;AAChF,QAAA,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;AACjD,KAAA,CAAC;AAEe,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;QACtC,IAAI,CAAC,UAAU,EAAE;QAEjB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAI,IAAI;AACtD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB;AAE1D,QAAA,OAAO,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,SAAS,EAAE;AAClC,IAAA,CAAC,6EAAC;IAEF,SAAS,CAAC,GAAW,EAAE,MAAiC,EAAA;QACtD,IAAI,CAAC,UAAU,EAAE;QAEjB,MAAM,aAAa,GACjB,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC;AAExF,QAAA,MAAM,QAAQ,GAAG,aAAa,GAAG,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,MAAM,EAAE,CAAA,CAAA,EAAI,GAAG,EAAE;QAChE,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC5D;IAEA,KAAK,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IAChC;IAEA,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;IACjC;IAEA,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;IACnC;IAEA,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;IACpC;IAEA,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;IACtC;IAEA,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;IACjC;IAEA,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;IACtC;IAEA,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;IACtC;IAEA,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;IACvC;AAEA,IAAA,SAAS,CAAC,OAAe,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;YACjC,OAAO;YACP,IAAI,EAAE,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;AACvF,SAAA,CAAC;IACJ;wGArEW,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAA9B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,cADjB,MAAM,EAAA,CAAA;;4FACnB,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAD1C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCOrB,0BAA0B,CAAA;AACpB,IAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAChC,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACvC,IAAA,MAAM,GAA8B,MAAM,CAAC,2BAA2B,CAAC;AAC/D,IAAA,kBAAkB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAExD,IAAA,UAAU,GAAG,MAAM,CAAC,KAAK,iFAAC;AAClB,IAAA,MAAM,GAAG,MAAM,CAA8B,EAAE,6EAAC;IAExD,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;IACrC,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;AACvF,IAAA,WAAW,GAAG,QAAQ,CAAC,MAC9B,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,kFAC7D;IAEO,QAAQ,GAAG,CAAC;IACH,UAAU,GAAkB,IAAI;AAEjD,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE;AAEzC,QAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;AACjC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC;QAEhE,MAAM,gBAAgB,GAAG,MAAK;AAC5B,YAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,KAAK,SAAS;AAErD,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KACvB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KACb,IAAI,CAAC,QAAQ,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,CACvE,CACF;AACH,QAAA,CAAC;AAED,QAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,gBAAgB,EAAE;AAC9D,YAAA,OAAO,EAAE,IAAI;AACd,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAK;AAC7B,YAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;AAC3B,gBAAA,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;YAC3C;AAEA,YAAA,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;AACpE,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,OAAO,CAAC,KAA6C,EAAA;AACnD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACjD;AAEA,IAAA,OAAO,CAAC,KAA6C,EAAA;AACnD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACjD;AAEA,IAAA,KAAK,CAAC,KAA6C,EAAA;AACjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC/C;AAEA,IAAA,IAAI,CAAC,KAA6C,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9C;AAEA,IAAA,IAAI,CAAC,KAA+B,EAAA;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AAErC,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAE9F,IAAI,CAAC,SAAS,EAAE;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;IAChC;AAEA,IAAA,iBAAiB,CAAC,QAAqC,EAAA;AACrD,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC;IACzE;AAEA,IAAA,QAAQ,CAAC,IAA+B,EAAA;QACtC,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,kBAAkB;IAC3E;AAEA,IAAA,OAAO,CAAC,EAAU,EAAA;QAChB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAI;AAC3B,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;AAC/B,gBAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KACpB,IAAI,CAAC,EAAE,KAAK;AACV,sBAAE;AACE,wBAAA,GAAG,IAAI;AACP,wBAAA,KAAK,EAAE,UAAU;AACjB,wBAAA,aAAa,EAAE,KAAK;AACpB,wBAAA,YAAY,EAAE,KAAK;AACnB,wBAAA,kBAAkB,EAAE,KAAK;AAC1B;sBACD,IAAI,CACT;YACH;AAEA,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;AAC/C,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE;IAClB;AAEA,IAAA,MAAM,CAAC,EAAU,EAAA;QACf,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACvE;IAEA,YAAY,GAAA;QACV,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC;IAClF;AAEA,IAAA,KAAK,CAAC,EAAU,EAAA;QACd,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IACxC;AAEA,IAAA,MAAM,CAAC,EAAU,EAAA;QACf,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACzC;AAEA,IAAA,eAAe,CAAC,EAAU,EAAA;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,OAAO;YAAE;AAEd,QAAA,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IACzD;IAEA,cAAc,CAAC,EAAU,EAAE,MAAe,EAAA;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,YAAY;YAAE;QAE5B,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;IAC3C;AAEA,IAAA,cAAc,CAAC,EAAU,EAAA;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,UAAU;YAAE;AAE1B,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KACvB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACjB,YAAA,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;gBAClB,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC9C;AAEA,YAAA,IACE,IAAI,CAAC,MAAM,CAAC,YAAY;AACxB,gBAAA,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;AAClC,gBAAA,IAAI,CAAC,KAAK,KAAK,SAAS,EACxB;gBACA,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC;AAEA,YAAA,OAAO,IAAI;QACb,CAAC,CAAC,CACH;IACH;IAEA,MAAM,CAAC,EAAU,EAAE,KAAwC,EAAA;AACzD,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KACvB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACjB,YAAA,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE;AAAE,gBAAA,OAAO,IAAI;YAE/B,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC;YACvD,MAAM,aAAa,GACjB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;AAC3B,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC;AAC9B,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC;YAEnC,MAAM,mBAAmB,GACvB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC;AACjC,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC;AACpC,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,mBAAmB,CAAC;AAEzC,YAAA,MAAM,QAAQ,GAAG,gBAAgB,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;YAE5E,MAAM,KAAK,GAAG;kBACV,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK;AACrF,kBAAE,IAAI,CAAC,KAAK;YAEd,MAAM,WAAW,GAAG;kBAChB,IAAI,CAAC,mBAAmB,CACtB,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,iBAAiB,EACvB,IAAI,CAAC,WAAW;AAEpB,kBAAE,IAAI,CAAC,WAAW;YAEpB,MAAM,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC;AAE9D,YAAA,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU;YAEhC,IAAI,qBAAqB,EAAE;gBACzB,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU;YAClD;iBAAO,IAAI,mBAAmB,EAAE;gBAC9B,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC;YAClD;YAEA,OAAO;AACL,gBAAA,GAAG,IAAI;gBACP,KAAK;gBACL,WAAW;AACX,gBAAA,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;AAC7B,gBAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;gBACzC,QAAQ;AACR,gBAAA,WAAW,EAAE,gBAAgB,IAAI,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW;gBACrE,UAAU;AACV,gBAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;AACzC,gBAAA,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS;AAC5C,gBAAA,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY;AACrD,gBAAA,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;AACtC,gBAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;AACzC,gBAAA,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;aAC9B;QACH,CAAC,CAAC,CACH;QAED,IAAI,CAAC,SAAS,EAAE;IAClB;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;IAC3B;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;IAC5B;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC;IAC3C;IAEQ,IAAI,GAAA;AACV,QAAA,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE;AAC7B,QAAA,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,GAAG;QAEnB,IAAI,eAAe,GAAG,KAAK;AAC3B,QAAA,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU;QAEpC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAI;YAC3B,MAAM,IAAI,GAAgC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAA+B;AACtF,gBAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;AAAE,oBAAA,OAAO,IAAI;gBACzC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI;AAAE,oBAAA,OAAO,IAAI;AAClE,gBAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAAE,oBAAA,OAAO,IAAI;AAEpC,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAEzD,gBAAA,IAAI,WAAW,KAAK,CAAC,EAAE;oBACrB,eAAe,GAAG,IAAI;AACtB,oBAAA,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AAEvB,oBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;wBAC/B,OAAO;AACL,4BAAA,GAAG,IAAI;AACP,4BAAA,WAAW,EAAE,CAAC;AACd,4BAAA,KAAK,EAAE,UAAU;AACjB,4BAAA,aAAa,EAAE,KAAK;AACpB,4BAAA,YAAY,EAAE,KAAK;AACnB,4BAAA,kBAAkB,EAAE,KAAK;yBAC1B;oBACH;AAEA,oBAAA,OAAO,IAAI;gBACb;gBAEA,OAAO;AACL,oBAAA,GAAG,IAAI;oBACP,WAAW;iBACZ;AACH,YAAA,CAAC,CAAC;AAEF,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;AAC/B,gBAAA,OAAO,IAAI;YACb;AAEA,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxD,QAAA,CAAC,CAAC;QAEF,IAAI,eAAe,EAAE;YACnB,IAAI,CAAC,SAAS,EAAE;QAClB;IACF;IAEQ,SAAS,GAAA;QACf,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAI;AAC3B,YAAA,IAAI,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;AAErB,YAAA,KAAK,MAAM,QAAQ,IAAI,8BAA8B,EAAE;gBACrD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAC9B,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CACjE,CAAC,MAAM;gBAER,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,GAAG,YAAY;gBAClE,IAAI,SAAS,IAAI,CAAC;oBAAE;gBAEpB,MAAM,MAAM,GAAG;AACZ,qBAAA,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ;AACtE,qBAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KACT,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS;AAEhF,qBAAA,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;gBAEtB,IAAI,CAAC,MAAM,CAAC,MAAM;oBAAE;AACpB,gBAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;AACxD,gBAAA,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;YAC5F;AAEA,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,YAAY,CAAC,KAA+B,EAAA;QAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,QAAQ;AAE5F,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,MAAM;QACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe;QAE9D,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QAE1F,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAC1C,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,iBAAiB,EACvB,IAAI,CACL;AAED,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC;QAE1E,OAAO;AACL,YAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE;YACnB,KAAK;YACL,WAAW;YACX,IAAI;YACJ,QAAQ;AACR,YAAA,KAAK,EAAE,QAAQ;YACf,QAAQ;YACR,WAAW,EAAE,QAAQ,IAAI,IAAI;YAC7B,UAAU;AACV,YAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;AACjC,YAAA,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;YAClC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU;AAC1D,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACtD,YAAA,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;AACxB,YAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB;IACH;AAEQ,IAAA,eAAe,CAAC,IAA6B,EAAA;AACnD,QAAA,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,GAAG,QAAQ,GAAG,WAAW;IACvE;AAEQ,IAAA,SAAS,CAAC,EAAU,EAAA;QAC1B,OAAO;YACL,EAAE;YACF,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,cAAc,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;AAC7C,YAAA,MAAM,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC;SAC1C;IACH;IAEQ,QAAQ,GAAA;QACd,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,UAAU,IAAI;QAC9C,OAAO,IAAI,IAAI,CAAA,GAAA,EAAM,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA,CAAE;IAC9E;AAEQ,IAAA,IAAI,CAAC,EAAU,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;IACrD;IAEQ,KAAK,CACX,EAAU,EACV,KAEC,EAAA;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KACvB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CACrE;IACH;AAEQ,IAAA,mBAAmB,CACzB,KAAyB,EACzB,GAAuB,EACvB,MAA2C,EAC3C,QAAgB,EAAA;QAEhB,IAAI,GAAG,EAAE;YACP,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;QACvD;AAEA,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,OAAO,QAAQ;QACjB;AAEA,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,mBAAmB,CACzB,KAAgC,EAChC,GAAuB,EACvB,MAA2C,EAC3C,QAAuB,EAAA;QAEvB,IAAI,GAAG,EAAE;YACP,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;QACvD;AAEA,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,OAAO,QAAQ;QACjB;QAEA,OAAO,KAAK,IAAI,IAAI;IACtB;IAEQ,MAAM,CAAmB,GAAM,EAAE,GAAgB,EAAA;QACvD,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;IAChC;wGAtaW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cADb,MAAM,EAAA,CAAA;;4FACnB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCErB,gCAAgC,CAAA;AACxB,IAAA,mBAAmB,GAAG,MAAM,CAAC,0BAA0B,CAAC;AACxD,IAAA,IAAI,GAAG,MAAM,CAAC,8BAA8B,CAAC;AAEvD,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,0EAA6B;AAClD,IAAA,IAAI,GAAG,KAAK,CAAqB,OAAO,2EAAC;AAEzC,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,6EAAC;AAEvE,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,IAAI,CAAC;AAC9C,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AACjD,IAAA,CAAC,kFAAC;AAEO,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW;QAEzC,IAAI,QAAQ,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,QAAQ,IAAI,CAAC;AAAE,YAAA,OAAO,CAAC;QACpE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,GAAG,QAAQ,IAAI,GAAG,CAAC,CAAC;AACjE,IAAA,CAAC,+EAAC;AAEO,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AACjC,QAAA,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI;AACtB,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,iBAAiB;AAC1B,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,mBAAmB;AAC5B,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,aAAa;AACtB,YAAA;AACE,gBAAA,OAAO,SAAS;;AAEtB,IAAA,CAAC,gFAAC;AAEiB,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACjD,QAAA,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC;QACtE,OAAO,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU;AACnD,IAAA,CAAC,sFAAC;IAEF,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;IACzD;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;IAC1D;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;IAClD;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,OAAO;YAAE;AAC7B,QAAA,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;IAC/D;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,OAAO;YAAE;AAC7B,QAAA,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;IAChE;IAEA,MAAM,SAAS,CAAC,MAAiC,EAAA;AAC/C,QAAA,MAAM,MAAM,CAAC,GAAG,GAAG;AACjB,YAAA,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE;AAClB,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI;AACtB,YAAA,OAAO,EAAE,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;AAC/D,YAAA,MAAM,EAAE,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC7D,MAAM,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;AAC1E,SAAA,CAAC;AAEF,QAAA,IAAI,MAAM,CAAC,YAAY,KAAK,KAAK,EAAE;AACjC,YAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAClD;IACF;AAEU,IAAA,kBAAkB,CAAC,MAAiC,EAAA;AAC5D,QAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;AACnB,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC;QACjE;AAEA,QAAA,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE;IAC3B;wGAlFW,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnB7C,g2GA0GA,EAAA,MAAA,EAAA,CAAA,u4GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED5FY,OAAO,oFAAE,sBAAsB,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,WAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAK9B,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAR5C,SAAS;+BACE,2BAA2B,EAAA,UAAA,EACzB,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,EAAE,sBAAsB,CAAC,EAAA,eAAA,EAGzB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,g2GAAA,EAAA,MAAA,EAAA,CAAA,u4GAAA,CAAA,EAAA;;;MEFpC,kCAAkC,CAAA;AAC1B,IAAA,mBAAmB,GAAG,MAAM,CAAC,0BAA0B,CAAC;AACxD,IAAA,IAAI,GAAG,MAAM,CAAC,8BAA8B,CAAC;IAEvB,QAAQ,GAAA;AAC/C,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAE;AACzC,YAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE;QACxC;IACF;wGARW,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kCAAkC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECf/C,kzCA4CA,EAAA,MAAA,EAAA,CAAA,ugDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDlCY,sBAAsB,mNAAE,gCAAgC,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAKvD,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAR9C,SAAS;+BACE,6BAA6B,EAAA,UAAA,EAC3B,IAAI,EAAA,OAAA,EACP,CAAC,sBAAsB,EAAE,gCAAgC,CAAC,EAAA,eAAA,EAGlD,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,kzCAAA,EAAA,MAAA,EAAA,CAAA,ugDAAA,CAAA,EAAA;;sBAM9C,YAAY;uBAAC,yBAAyB;;;MEH5B,gCAAgC,CAAA;AACxB,IAAA,mBAAmB,GAAG,MAAM,CAAC,0BAA0B,CAAC;IACxD,SAAS,GAAG,8BAA8B;AACpD,IAAA,UAAU,GAAG,KAAK,CAAC,IAAI,iFAAC;AAEjC,IAAA,iBAAiB,CAAC,QAAqC,EAAA;QACrD,OAAO,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,QAAQ,CAAC;IAC7D;wGAPW,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChB7C,iVAWA,EAAA,MAAA,EAAA,CAAA,qvBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDAY,gCAAgC,gGAAE,kCAAkC,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAKnE,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAR5C,SAAS;+BACE,2BAA2B,EAAA,UAAA,EACzB,IAAI,EAAA,OAAA,EACP,CAAC,gCAAgC,EAAE,kCAAkC,CAAC,EAAA,eAAA,EAG9D,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,iVAAA,EAAA,MAAA,EAAA,CAAA,qvBAAA,CAAA,EAAA;;;MECpC,mBAAmB,CAAA;AACrB,IAAA,IAAI,GAAG,KAAK,CAAC,EAAE,2EAAC;AAChB,IAAA,UAAU,GAAG,KAAK,CAAC,EAAE,iFAAC;AACtB,IAAA,IAAI,GAAG,KAAK,CAAqB,IAAI,2EAAC;AACtC,IAAA,QAAQ,GAAG,KAAK,CAAyB,KAAK,+EAAC;AAC/C,IAAA,OAAO,GAAG,KAAK,CAAwB,SAAS,8EAAC;wGAL/C,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,6sBCfhC,ydAmBA,EAAA,MAAA,EAAA,CAAA,muIAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDJa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAAA,UAAA,EACrB,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ydAAA,EAAA,MAAA,EAAA,CAAA,muIAAA,CAAA,EAAA;;;MEWpC,uBAAuB,CAAA;AACjB,IAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AACxD,IAAA,eAAe,GAAG,MAAM,CAAC,6BAA6B,CAAC;AACvD,IAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;IAEpC,IAAI,GAAG,KAAK,CAAC,EAAE,4EAAI,KAAK,EAAE,iBAAiB,EAAA,CAAG;IAE9C,eAAe,GAAG,KAAK,CAAyB,KAAK,uFAC5D,KAAK,EAAE,kBAAkB,EAAA,CACzB;IAEO,cAAc,GAAG,KAAK,CAAwB,SAAS,sFAC9D,KAAK,EAAE,iBAAiB,EAAA,CACxB;IAEO,WAAW,GAAG,KAAK,CAAqB,IAAI,mFACnD,KAAK,EAAE,cAAc,EAAA,CACrB;IAEO,iBAAiB,GAAG,KAAK,CAAC,EAAE,yFACnC,KAAK,EAAE,qBAAqB,EAAA,CAC5B;IAEO,eAAe,GAAG,KAAK,CAAC,KAAK,uFACpC,KAAK,EAAE,kBAAkB,EAAA,CACzB;IAEO,gBAAgB,GAAG,KAAK,CAAC,GAAG,wFACnC,KAAK,EAAE,oBAAoB,EAAA,CAC3B;IAEO,gBAAgB,GAAG,KAAK,CAAC,EAAE,wFAClC,KAAK,EAAE,oBAAoB,EAAA,CAC3B;IAEO,aAAa,GAAG,KAAK,CAAC,CAAC,qFAC9B,KAAK,EAAE,gBAAgB,EAAA,CACvB;IAEO,eAAe,GAAG,KAAK,CAAC,IAAI,uFACnC,KAAK,EAAE,mBAAmB,EAAA,CAC1B;IAEO,gBAAgB,GAAG,KAAK,CAAC,IAAI,wFACpC,KAAK,EAAE,oBAAoB,EAAA,CAC3B;IAEO,sBAAsB,GAAG,KAAK,CAAC,CAAC,8FACvC,KAAK,EAAE,0BAA0B,EAAA,CACjC;IAEO,UAAU,GAAG,KAAK,CAAC,EAAE,kFAC5B,KAAK,EAAE,aAAa,EAAA,CACpB;IAEO,aAAa,GAAG,KAAK,CAAsC,SAAS,qFAC3E,KAAK,EAAE,gBAAgB,EAAA,CACvB;AAEM,IAAA,UAAU;IACV,SAAS,GAAG,CAAC;IACb,SAAS,GAAG,CAAC;IACb,GAAG,GAAG,CAAC;IAEE,QAAQ,GAAsB,EAAE;AAEhC,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE;QAEpC,IAAI,GAAG,EAAE;AACP,YAAA,OAAO,GAAG;QACZ;AAEA,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE;AAC3B,IAAA,CAAC,mFAAC;AAEF,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;QAE1C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,EACnE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,EACnE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,EAChE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,EACjE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,KAAoB,KAAI;AAC7D,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;gBAC1B,IAAI,CAAC,IAAI,EAAE;YACb;AACF,QAAA,CAAC,CAAC,EACF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,EAC3E,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAC5E;QAED,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE;YAEtB,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,kBAAkB,EAAE;AAC3B,QAAA,CAAC,CAAC;IACJ;IAEQ,YAAY,GAAA;QAClB,IAAI,IAAI,CAAC,eAAe,EAAE;YAAE;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAAE;AAE1B,QAAA,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACvC,QAAA,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;QAEvC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,MAAK;YAC1C,IAAI,CAAC,IAAI,EAAE;AACb,QAAA,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC7B;IAEQ,YAAY,GAAA;AAClB,QAAA,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACvC,QAAA,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;QAEvC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,MAAK;YAC1C,IAAI,CAAC,IAAI,EAAE;AACb,QAAA,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC7B;IAEQ,IAAI,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,EAAE;YAAE;AAC/C,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAAE;QAE1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,mBAAmB,EAAE;AACjE,YAAA,QAAQ,EAAE,iBAAiB;AAC3B,YAAA,MAAM,EAAE,gCAAgC;AACxC,YAAA,aAAa,EAAE,MAAM;AACtB,SAAA,CAAC;QAEF,IAAI,CAAC,gBAAgB,EAAE;AAEvB,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CACxB,IAAI,CAAC,UAAU,CAAC,aAAa,EAC7B,kBAAkB,EAClB,IAAI,CAAC,UAAU,CAAC,EAAE,CACnB;QAED,qBAAqB,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAChD;IAEQ,IAAI,GAAA;AACV,QAAA,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC;AAClF,QAAA,IAAI,CAAC,GAAG,GAAG,CAAC;AAEZ,QAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,kBAAkB,CAAC;QAEhF,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;AACpD,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;IAC7B;IAEQ,gBAAgB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE;AAEtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY;QAE1C,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3C,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;QAClD,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAEtD,QAAA,KAAK,CAAC,iBAAiB,CAAC,aAAa,EAAE;IACzC;IAEQ,kBAAkB,GAAA;QACxB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE;QAEtB,IAAI,IAAI,CAAC,GAAG;YAAE;AAEd,QAAA,IAAI,CAAC,GAAG,GAAG,qBAAqB,CAAC,MAAK;AACpC,YAAA,IAAI,CAAC,GAAG,GAAG,CAAC;YACZ,IAAI,CAAC,UAAU,EAAE;AACnB,QAAA,CAAC,CAAC;IACJ;IAEQ,UAAU,GAAA;QAChB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE;AAEtB,QAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;AAC9B,YAAA,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa;YACrC,UAAU,EAAE,IAAI,CAAC,UAAU;AAC3B,YAAA,OAAO,EAAE;AACP,gBAAA,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE;AAChC,gBAAA,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE;AAC5B,gBAAA,eAAe,EAAE,IAAI,CAAC,sBAAsB,EAAE;AAC9C,gBAAA,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE;AAChC,gBAAA,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE;AACnC,aAAA;AACD,YAAA,kBAAkB,EAAE,CAAC,QAAQ,KAAI;gBAC/B,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;gBAC5D,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE;YACjE,CAAC;AACF,SAAA,CAAC;IACJ;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,IAAI,EAAE;AAEX,QAAA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnC,YAAA,OAAO,EAAE;QACX;IACF;wGA5MW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;ACZD,MAAMD,eAAa,GAAyC;IAC1D,SAAS;IACT,SAAS;IACT,SAAS;IACT,OAAO;IACP,SAAS;CACD;MASG,cAAc,CAAA;IACqB,MAAM,GAAG,EAAE;AAEhD,IAAA,KAAK;IACL,KAAK,GAAkB,IAAI;IAC3B,IAAI,GAAgB,SAAS;IAC7B,IAAI,GAAuB,IAAI;IAC/B,KAAK,GAAwB,IAAI;IACjC,KAAK,GAAwB,SAAS;IACtC,MAAM,GAAyB,QAAQ;IACvC,KAAK,GAA0B,SAAS;IACxC,WAAW,GAA8B,IAAI;IACjB,aAAa,GAAG,KAAK;AAE1D,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACvC;AACA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,SAAS;IAChC;AACA,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC;IAC5C;AACA,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IAC9D;AACA,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa;AAAE,YAAA,OAAO,IAAI;QAC5C,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;AAAE,YAAA,OAAO,IAAI;QACzD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC;IAClC;AACA,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,GAAG,aAAa,GAAG,QAAQ;IACnF;AACA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI;IACtD;AAEA,IAAA,IAAY,WAAW,GAAA;AACrB,QAAA,QAAQ,IAAI,CAAC,WAAW;AACtB,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,CAAC;AACV,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,EAAE;AACX,YAAA,KAAK,IAAI;AACT,YAAA;AACE,gBAAA,OAAO,EAAE;;IAEf;wGAhDW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAuDlBD,eAAa,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjFtB,k5DA2DA,EAAA,MAAA,EAAA,CAAA,+mJAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDjCa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,UAAA,EACf,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,k5DAAA,EAAA,MAAA,EAAA,CAAA,+mJAAA,CAAA,EAAA;;sBAG9C,WAAW;uBAAC,sBAAsB;;sBAElC;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA,KAAK;uBAAC,EAAE,SAAS,EAAEA,eAAa,EAAE;;AAuCrC,SAAS,aAAa,CAAC,CAAU,EAAA;AAC/B,IAAA,OAAOC,eAAa,CAAC,QAAQ,CAAC,CAA8B,CAAC;AAC/D;AAEA,SAASD,eAAa,CAAC,CAAM,EAAA;AAC3B,IAAA,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG;AACvE;AAEA,SAAS,KAAK,CAAC,CAAS,EAAE,GAAW,EAAE,GAAW,EAAA;AAChD,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACxC;AAIA,MAAM,WAAW,GAAG,IAAI,GAAG,EAAmB;AAE9C,SAAS,WAAW,CAAC,KAAa,EAAE,UAAU,GAAG,IAAI,EAAA;IACnD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;AACrC,IAAA,IAAI,MAAM;AAAE,QAAA,OAAO,MAAM;IAEzB,MAAM,GAAG,GAAY,EAAE;AACvB,IAAA,MAAM,IAAI,GAAG,GAAG,GAAG,KAAK;AACxB,IAAA,MAAM,IAAI,GAAG,CAAC,GAAG,UAAU;AAC3B,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAC9B,QAAA,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AAC3C,QAAA,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;QAC5B,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE;AAEA,IAAA,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC;AAC3B,IAAA,OAAO,GAAG;AACZ;;MErGa,+BAA+B,CAAA;AACjC,IAAA,WAAW,GAAG,MAAM,CAA6C,WAAW,CAAC;wGAD3E,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAJ3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uCAAuC;AACjD,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MCEY,6BAA6B,CAAA;AAC/B,IAAA,WAAW,GAAG,MAAM,CAA6C,WAAW,CAAC;wGAD3E,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAJzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qCAAqC;AAC/C,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MCqCY,eAAe,CAAA;AACT,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IAExC,KAAK,GAA0C,IAAI;AAC1C,IAAA,cAAc,GAAG,YAAY,CAAC,6BAA6B,qFAAC;AAC5D,IAAA,gBAAgB,GAAG,YAAY,CAAC,+BAA+B,uFAAC;AAExE,IAAA,WAAW,GAAG,KAAK,CAAC,CAAC,kFAAC;AAEtB,IAAA,KAAK,GAAG,KAAK,CAAwB,EAAE,4EAAC;AACxC,IAAA,MAAM,GAAG,KAAK,CAAwB,IAAI,6EAAC;AAC3C,IAAA,MAAM,GAAG,KAAK,CAAwB,MAAM,6EAAC;AAC7C,IAAA,UAAU,GAAG,KAAK,CAA4B,OAAO,iFAAC;AACtD,IAAA,gBAAgB,GAAG,KAAK,CAAkC,QAAQ,uFAAC;IAEnE,IAAI,GAAG,KAAK,CAAC,IAAI,4EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACnD,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,UAAU,GAAG,KAAK,CAAC,IAAI,kFAAI,SAAS,EAAE,eAAe,EAAA,CAAG;IACxD,YAAY,GAAG,KAAK,CAAC,GAAG,oFAAI,SAAS,EAAE,eAAe,EAAA,CAAG;IAEzD,YAAY,GAAG,KAAK,CAAC,IAAI,oFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAC3D,YAAY,GAAG,KAAK,CAAC,IAAI,oFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAC3D,0BAA0B,GAAG,KAAK,CAAC,IAAI,kGAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAEzE,QAAQ,GAAG,KAAK,CAAC,IAAI,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACvD,UAAU,GAAG,KAAK,CAAC,IAAI,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACzD,QAAQ,GAAG,KAAK,CAAC,IAAI,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEvD,IAAA,SAAS,GAAG,KAAK,CAAC,UAAU,gFAAC;AAC7B,IAAA,YAAY,GAAG,KAAK,CAAqB,SAAS,mFAAC;AAEnD,IAAA,aAAa,GAAG,KAAK,CAAC,gBAAgB,oFAAC;AACvC,IAAA,gBAAgB,GAAG,KAAK,CAAqB,SAAS,uFAAC;AAEvD,IAAA,SAAS,GAAG,KAAK,CAAC,YAAY,gFAAC;AAC/B,IAAA,YAAY,GAAG,KAAK,CAAqB,SAAS,mFAAC;AAEnD,IAAA,eAAe,GAAG,KAAK,CAAC,kBAAkB,sFAAC;AAC3C,IAAA,kBAAkB,GAAG,KAAK,CAAqB,SAAS,yFAAC;AAEzD,IAAA,cAAc,GAAG,KAAK,CAAC,aAAa,qFAAC;AACrC,IAAA,iBAAiB,GAAG,KAAK,CAAqB,SAAS,wFAAC;AAExD,IAAA,SAAS,GAAG,KAAK,CAAC,MAAM,gFAAC;AACzB,IAAA,YAAY,GAAG,KAAK,CAAqB,SAAS,mFAAC;AAEnD,IAAA,YAAY,GAAG,KAAK,CAAqC,IAAI,mFAAC;AAE9D,IAAA,QAAQ,GAAG,KAAK,CAAkD,SAAS,+EAAC;AAC5E,IAAA,UAAU,GAAG,KAAK,CAAkD,SAAS,iFAAC;AAE9E,IAAA,cAAc,GAAG,KAAK,CAA4B,SAAS,qFAAC;AAC5D,IAAA,gBAAgB,GAAG,KAAK,CAA4B,SAAS,uFAAC;IAE9D,WAAW,GAAG,MAAM,EAA8B;AAExC,IAAA,SAAS,GAAG,MAAM,CAAC,KAAK,gFAAC;AACzB,IAAA,MAAM,GAAG,MAAM,CAAC,KAAK,6EAAC;AAEtB,IAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,4EAAC;AAC3C,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,kFAAC;AAE9C,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,8EAAC;AAClD,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,6EAAC;AAEhE,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gFAAC;AAC1D,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,gFAAC;AAEzD,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AAC3C,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChE,IAAA,CAAC,gFAAC;AAEiB,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;QAChD,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACpF,IAAA,CAAC,qFAAC;AAEiB,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;QAClD,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,WAAW;AAC9D,IAAA,CAAC,uFAAC;AAEiB,IAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAK;QACpD,OAAO,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,WAAW;AAClE,IAAA,CAAC,yFAAC;AAEF,IAAA,IAAqC,UAAU,GAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE;IACtB;AAEA,IAAA,IAAqC,UAAU,GAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE;IACtB;AAEA,IAAA,IAAyC,cAAc,GAAA;AACrD,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE;IAC1B;AAEA,IAAA,IACI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,gBAAgB,EAAE;IAChC;AAEA,IAAA,WAAA,GAAA;AACE,QAAA,eAAe,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAE/C,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;YACnB,IAAI,CAAC,SAAS,EAAE;AAEhB,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBAAE;AAE5B,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;YAE5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;gBAAE;AAErC,YAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAEnB,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;AACnC,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE;AACxB,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE;YAE9B,IAAI,CAAC,GAAG,EAAE;gBACR,IAAI,GAAG,KAAK,CAAC;AAAE,oBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtC;YACF;AAEA,YAAA,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE;gBACjB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;YAC/B;AAEA,YAAA,IAAI,GAAG,GAAG,CAAC,EAAE;AACX,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;IACnD;AAEmB,IAAA,IAAI,GAAG,CACxB,KAAa,EACb,MAAA,GAA0C,KAAK,KACvC;AACR,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE;AAE3B,QAAA,IAAI,CAAC,MAAM;YAAE;AAEb,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC;QAEpD,IAAI,SAAS,KAAK,aAAa;YAAE;AAEjC,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;AAE/B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACpB,YAAA,KAAK,EAAE,SAAS;YAChB,aAAa;AACb,YAAA,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC;YAC7B,MAAM;AACP,SAAA,CAAC;QAEF,IAAI,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,0BAA0B,EAAE,EAAE;YAC9D,IAAI,CAAC,eAAe,EAAE;QACxB;AACF,IAAA,CAAC;IAEO,cAAc,CAAC,KAAa,EAAE,MAAc,EAAA;AAClD,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;YACf,OAAO,CAAC,CAAC,KAAK,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM;QAC7C;AAEA,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IACjD;AAEmB,IAAA,IAAI,GAAG,CAAC,MAAA,GAA0C,KAAK,KAAU;AAClF,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAAE;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC;AAC3C,IAAA,CAAC;AAEkB,IAAA,IAAI,GAAG,CAAC,MAAA,GAA0C,KAAK,KAAU;AAClF,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAAE;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC;AAC3C,IAAA,CAAC;IAEkB,KAAK,GAAG,MAAW;AACpC,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,IAAA,CAAC;IAEkB,MAAM,GAAG,MAAW;AACrC,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACxB,IAAA,CAAC;IAES,YAAY,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAAE;QAC1B,IAAI,CAAC,KAAK,EAAE;IACd;IAEU,YAAY,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAAE;QAC1B,IAAI,CAAC,MAAM,EAAE;IACf;IAEU,SAAS,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAAE;QAC1B,IAAI,CAAC,KAAK,EAAE;IACd;IAEU,UAAU,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAAE;QAC1B,IAAI,CAAC,MAAM,EAAE;IACf;AAEU,IAAA,eAAe,CAAC,KAAa,EAAA;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC;QAEhC,OAAO;AACL,YAAA,SAAS,EAAE,IAAI;YACf,IAAI;YAEJ,KAAK;AACL,YAAA,MAAM,EAAE,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE;YACpC,KAAK,EAAE,KAAK,KAAK,CAAC;YAClB,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;AAChC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AAEnB,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;YAE3B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YAEf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB;IACH;AAEU,IAAA,oBAAoB,CAAC,KAAa,EAAA;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE;AAEjD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE;AACrC,YAAA,OAAO,UAAU;QACnB;QAEA,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;AACtB,YAAA,GAAG,UAAU;SACd;IACH;AAEU,IAAA,sBAAsB,CAAC,KAAa,EAAA;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE;AAEnD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE;AACpC,YAAA,OAAO,UAAU;QACnB;QAEA,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;AACtB,YAAA,GAAG,UAAU;SACd;IACH;IAEU,IAAI,CAAC,IAAa,EAAE,GAAY,EAAA;AACxC,QAAA,MAAM,WAAW,GAAG,IAAI,EAAE,IAAI,EAAE;AAEhC,QAAA,IAAI,WAAW;AAAE,YAAA,OAAO,WAAW;AAEnC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE;QAEpC,IAAI,GAAG,IAAI,QAAQ;AAAE,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC;AAEzC,QAAA,OAAO,EAAE;IACX;AAEU,IAAA,OAAO,CAAC,IAAyB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;IACzC;AAEU,IAAA,aAAa,CAAC,IAAyB,EAAA;AAC/C,QAAA,QACE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;AAChC,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AAChD,YAAA,IAAI;IAER;IAEU,aAAa,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,UAAU;IACvE;IAEU,iBAAiB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,gBAAgB;IACrF;IAEU,aAAa,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,YAAY;IACzE;IAEU,mBAAmB,GAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,kBAAkB;IAC3F;AAEU,IAAA,YAAY,CAAC,KAAa,EAAA;AAClC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,aAAa;AACzF,QAAA,OAAO,GAAG,KAAK,CAAA,CAAA,EAAI,KAAK,GAAG,CAAC,EAAE;IAChC;IAEU,WAAW,CAAC,KAAa,EAAE,IAAyB,EAAA;AAC5D,QAAA,OAAO,IAAI,CAAC,EAAE,IAAI,KAAK;IACzB;AAEQ,IAAA,UAAU,CAAC,EAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;IAC3D;IAEQ,SAAS,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;QAC3B;AAEA,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;IACnB;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE;QAE9D,IAAI,CAAC,SAAS,EAAE;AAEhB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;QAE5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;YAAE;AAErC,QAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IACrB;AAGU,IAAA,SAAS,CAAC,EAAiB,EAAA;QACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE;AAE7C,QAAA,QAAQ,EAAE,CAAC,GAAG;AACZ,YAAA,KAAK,WAAW;gBACd,EAAE,CAAC,cAAc,EAAE;AACnB,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;gBACrB;AAEF,YAAA,KAAK,YAAY;gBACf,EAAE,CAAC,cAAc,EAAE;AACnB,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;gBACrB;AAEF,YAAA,KAAK,MAAM;gBACT,EAAE,CAAC,cAAc,EAAE;AACnB,gBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC;gBACxB;AAEF,YAAA,KAAK,KAAK;gBACR,EAAE,CAAC,cAAc,EAAE;AACnB,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,UAAU,CAAC;gBACvC;;IAEN;wGAjYW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,0BAAA,EAAA,EAAA,iBAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,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,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,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,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,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,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,6BAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIqB,6BAA6B,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAC3B,+BAA+B,gECjDlF,8kJAmIA,EAAA,MAAA,EAAA,CAAA,8xKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED5FY,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,sCAAA,EAAA,0BAAA,EAAA,2BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAKlC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;+BACE,kBAAkB,EAAA,UAAA,EAChB,IAAI,EAAA,OAAA,EACP,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,EAAA,eAAA,EAG7B,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8kJAAA,EAAA,MAAA,EAAA,CAAA,8xKAAA,CAAA,EAAA;AAMA,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,6BAA6B,kGAC3B,+BAA+B,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA;sBA+E/E,WAAW;uBAAC,kBAAkB;;sBAI9B,WAAW;uBAAC,kBAAkB;;sBAI9B,WAAW;uBAAC,sBAAsB;;sBAIlC,WAAW;uBAAC,6BAA6B;;sBAwQzC,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;;MEzYxB,uBAAuB,CAAA;AACzB,IAAA,KAAK;AACL,IAAA,WAAW;IACX,UAAU,GAAqB,OAAO;IACtC,OAAO,GAA8B,aAAa;wGAJhD,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXpC,yfAgBA,EAAA,MAAA,EAAA,CAAA,yiCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDVY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAKN,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBARnC,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,CAAC,EAAA,eAAA,EAGD,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,yfAAA,EAAA,MAAA,EAAA,CAAA,yiCAAA,CAAA,EAAA;;sBAG9C;;sBACA;;sBACA;;sBACA;;;MEKU,cAAc,CAAA;AAChB,IAAA,KAAK;IACL,KAAK,GAAG,KAAK;IACb,OAAO,GAAmB,MAAM;IAChC,OAAO,GAAmB,OAAO;IACjC,QAAQ,GAAoB,QAAQ;IACpC,WAAW,GAAuB,YAAY;IACtB,UAAU,GAAsB,QAAQ;IAEnD,SAAS,GAAG,sBAAsB;AACxD,IAAA,IAA0C,eAAe,GAAA;AACvD,QAAA,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU,GAAG,UAAU,GAAG,YAAY;IACpE;AAEA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY;IAC1D;wGAhBW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpB3B,weAkBA,EAAA,MAAA,EAAA,CAAA,2zFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDJY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAMN,cAAc,EAAA,UAAA,EAAA,CAAA;kBAT1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,UAAA,EACf,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,CAAC,EAAA,eAAA,EAGD,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAA,QAAA,EAAA,weAAA,EAAA,MAAA,EAAA,CAAA,2zFAAA,CAAA,EAAA;;sBAG1B;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA,KAAK;uBAAC,EAAE,KAAK,EAAE,aAAa,EAAE;;sBAE9B,WAAW;uBAAC,OAAO;;sBACnB,WAAW;uBAAC,uBAAuB;;;ME5BzB,wBAAwB,GAAG,IAAI,cAAc,CAAU,0BAA0B;;MCAjF,mBAAmB,GAAG,IAAI,cAAc,CAAU,qBAAqB;;MCCvE,gBAAgB,CAAA;AACV,IAAA,aAAa,GAAG,IAAI,OAAO,EAAgC;AAC3D,IAAA,aAAa,GAAG,IAAI,OAAO,EAAuB;AAE3D,IAAA,OAAO;AACP,IAAA,eAAe;AACf,IAAA,cAAc;IAEtB,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;IAC1C;IAEA,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;IAC1C;AAEA,IAAA,KAAK,CAAC,MAAgB,EAAA;AACpB,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB;AAEA,IAAA,aAAa,CAAC,OAAuC,EAAA;AACnD,QAAA,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;IACjC;AAEA,IAAA,YAAY,CAAC,MAAwC,EAAA;AACnD,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;IAC/B;AAEA,IAAA,cAAc,CAAC,EAA8B,EAAA;AAC3C,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;IACnB;AAEA,IAAA,sBAAsB,CAAC,EAAqD,EAAA;AAC1E,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;IAC3B;AAEA,IAAA,qBAAqB,CAAC,EAAsD,EAAA;AAC1E,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;IAC1B;AAEA,IAAA,WAAW,CAAC,MAAoC,EAAA;AAC9C,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;IACjC;AAEA,IAAA,YAAY,CAAC,MAAgB,EAAA;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC7B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;IAC/B;AACD;;MChBY,2BAA2B,CAAA;AACrB,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAE3B,IAAA,aAAa,GAAG,MAAM,CACrC,mBAAmB,CACwB;AAE5B,IAAA,SAAS,GACxB,MAAM,CAA2D,gBAAgB,CAAC;IAEjE,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;IAEvC,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,IAAI,IAAI;IACvD,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,cAAc,IAAI,IAAI;IAC3D,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,gBAAgB,IAAI,GAAG;IAC9D,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,oBAAoB,IAAI,GAAG;AAEtE,IAAA,OAAO,GAAG,MAAM,CAAC,KAAK,8EAAC;AACvB,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,oFAAC;AAC7B,IAAA,iBAAiB,GAAG,MAAM,CAAC,KAAK,wFAAC;IAEjC,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,uFAAC;AAG3D,IAAA,YAAY;AAEV,IAAA,gBAAgB,GAAG,MAAM,CAAC,MAAM,uFAAC;IAE5C,UAAU,GAAG,CAAC;AACd,IAAA,cAAc;IAEd,YAAY,GAAG,CAAC;IAChB,eAAe,GAAG,CAAC;AAEV,IAAA,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KACnD,QAAQ,CAAC,MAAM,CAAC;AACd,QAAA,SAAS,EAAE;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,wBAAwB;gBACjC,QAAQ,EAAE,IAAI,CAAC,IAAI;AACpB,aAAA;AACF,SAAA;QACD,MAAM,EAAE,IAAI,CAAC,QAAQ;AACtB,KAAA,CAAC,CACH;AAEkB,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;QAChD,OAAO,CAAA,aAAA,EAAgB,IAAI,CAAC,gBAAgB,EAAE,GAAG,GAAG,UAAU;AAChE,IAAA,CAAC,qFAAC;AAEiB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,kFAAC;AAE3D,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC5C,QAAA,OAAO,IAAI,CAAC,gBAAgB,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AAC1D,IAAA,CAAC,iFAAC;AAEiB,IAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAK;AACpD,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,oBAAoB,IAAI;AACzC,IAAA,CAAC,yFAAC;AAEF,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAK;AAC7B,YAAA,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;AAC1C,YAAA,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;AAE7C,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,gBAAA,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC;YACvC;AAEA,YAAA,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE;AACnC,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC;AACF,aAAA,WAAW;AACX,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;YACpB,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAqC,CAAC;AACtE,QAAA,CAAC,CAAC;QAEJ,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,OAAO,EAAE;YAEd,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,mBAAmB,EAAE;YAE1B,cAAc,CAAC,MAAK;gBAClB,IAAI,CAAC,uBAAuB,EAAE;gBAC9B,IAAI,CAAC,+BAA+B,EAAE;AACxC,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;QAEF,cAAc,CAAC,MAAK;YAClB,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,SAAS,CAAC;AAC9D,QAAA,CAAC,CAAC;IACJ;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACjF,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,+BAA+B,EAAE;AACxC,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,uBAAuB,EAAE;QAC9B,IAAI,CAAC,+BAA+B,EAAE;IACxC;AAEU,IAAA,YAAY,CAAC,KAAa,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;IAClC;IAEQ,MAAM,YAAY,CAAC,KAAmC,EAAA;QAC5D,QAAQ,KAAK;AACX,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;gBACtB;AAEF,YAAA,KAAK,MAAM;AACT,gBAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,UAAU,CAAC;gBAC5D;AAEF,YAAA,KAAK,MAAM;AACT,gBAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC;gBAC3D;AAEF,YAAA,KAAK,QAAQ;AACX,gBAAA,MAAM,IAAI,CAAC,MAAM,EAAE;gBACnB;;IAEN;AAEQ,IAAA,MAAM,QAAQ,CACpB,WAAmB,EACnB,SAAqC,EAAA;QAErC,IAAI,IAAI,CAAC,OAAO,EAAE;YAAE;QACpB,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE;AAEzD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE;AACzC,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;AAE7E,QAAA,IAAI,CAAC,QAAQ;YAAE;AAEf,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC;AAE7E,QAAA,IAAI,CAAC,QAAQ;YAAE;AAEf,QAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;IACnC;AAEQ,IAAA,MAAM,MAAM,GAAA;QAClB,IAAI,IAAI,CAAC,OAAO,EAAE;YAAE;AAEpB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE;AACrC,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC;AAEnE,QAAA,IAAI,CAAC,QAAQ;YAAE;QAEf,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;IACtD;IAEQ,MAAM,cAAc,CAC1B,OAAe,EACf,SAAqC,EACrC,SAAS,GAAG,OAAO,EAAA;QAEnB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAEhC,QAAA,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE;AACtB,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AAEtB,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;gBACpC,SAAS;gBACT,OAAO;gBACP,SAAS;AACV,aAAA,CAAC;YAEF,OAAO,MAAM,KAAK,KAAK;QACzB;gBAAU;AACR,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QACzB;IACF;AAEQ,IAAA,MAAM,cAAc,CAC1B,SAAiB,EACjB,OAAe,EACf,SAAqC,EAAA;QAErC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAElC,QAAA,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE;AACtB,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AAEtB,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;gBACpC,SAAS;gBACT,OAAO;gBACP,SAAS;AACV,aAAA,CAAC;YAEF,OAAO,MAAM,KAAK,KAAK;QACzB;gBAAU;AACR,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QACzB;IACF;IAEQ,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACtB,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;YAChC;QACF;QAEA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAEnD,QAAA,IAAI,aAAa,CAAC,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAC1B,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM;AAC7B,gBAAA,GAAG,MAAM;gBACT,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;aAC5C,CAAC,CAAC,CACJ;YACD;QACF;AAEA,QAAA,MAAM,UAAU,GACd,IAAI,CAAC,WAAW;AACd,cAAE;AACE,gBAAA,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,UAAU;AACnD,gBAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,cAAc;AAC3C,gBAAA,KAAK,EAAE,QAAQ;AACf,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE;AACzB;AACH,cAAE;AACE,gBAAA,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,QAAQ;AAC/C,gBAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY;AACzC,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE;aACzB;AAEP,QAAA,MAAM,WAAW,GACf,IAAI,CAAC,UAAU;AACb,cAAE;AACE,gBAAA,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,WAAW;AACpD,gBAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,cAAc;AAC3C,gBAAA,KAAK,EAAE,QAAQ;AACf,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;AACxB;AACH,cAAE;AACE,gBAAA,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,WAAW;AAClD,gBAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY;AACzC,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;aACxB;QAEP,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACzD;AAEQ,IAAA,kBAAkB,CACxB,IAAqD,EAAA;AAErD,QAAA,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AAClB,YAAA,OAAO,EAAE;QACX;AAEA,QAAA,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE;YACtC,OAAO,IAAI,CAAC,OAAO,CAAC;AAClB,gBAAA,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE;AAC9B,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;AACvB,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAC/B,gBAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;AAC9B,aAAA,CAAC;QACJ;QAEA,OAAO,IAAI,CAAC,OAAO;IACrB;IAEQ,uBAAuB,GAAA;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACtB,YAAA,OAAO,CAAC;QACV;QAEA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,IAAI,CAAC;QAEtD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5D;AAEQ,IAAA,eAAe,CAAC,WAAmB,EAAA;AACzC,QAAA,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;AAC1C,QAAA,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;AAE7C,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;AAEjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC;AAEtC,QAAA,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC;AACzC,QAAA,IAAI,CAAC,+BAA+B,CAAC,WAAW,CAAC;AAEjD,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,UAAU,CACvC,MAAK;AACH,gBAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,oBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;gBAClC;AACF,YAAA,CAAC,EACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAC1C;QACH;QAEA,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,UAAU,CAAC,MAAK;AAChD,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7B,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;AACnC,QAAA,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC;IAC/B;IAEQ,kBAAkB,GAAA;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAEhD,QAAA,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK;AACzB,QAAA,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ;AAE/B,QAAA,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW;AACrC,QAAA,MAAM,cAAc,GAAG,IAAI,EAAE,cAAc;AAE3C,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;AAC1B,YAAA,KAAK,EAAE,QAAQ,GAAG,SAAS,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AACjE,YAAA,QAAQ,EAAE,QAAQ,KAAK,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;YACvE,WAAW,EAAE,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW;AAEhE,YAAA,WAAW,EAAE,cAAc,GAAG,SAAS,IAAI,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;AACzF,YAAA,cAAc,EACZ,cAAc,KAAK,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;YACjF,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB;AACnF,SAAA,CAAC;IACJ;AAEQ,IAAA,+BAA+B,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAA;AACrE,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC;QACvC;AAEA,QAAA,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,MAAK;AAC3C,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC/B,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAA;AACvD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,aAAa;QAElE,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;YACjC;QACF;QAEA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QAE9C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI,CAAC;IAC1C;AAEQ,IAAA,uBAAuB,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAA;AAC7D,QAAA,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE;AAEjC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,aAAa;QAElE,IAAI,CAAC,OAAO,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;YACrD;QACF;AAEA,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,MAAK;AAC5C,YAAA,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC;AAC7C,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;IACtC;wGA1YW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAwBD,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5DjD,ojDA4CA,m6EDbY,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,sCAAA,EAAA,0BAAA,EAAA,2BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAKhB,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBARvC,SAAS;+BACE,gCAAgC,EAAA,UAAA,EAC9B,IAAI,EAAA,OAAA,EACP,CAAC,iBAAiB,CAAC,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ojDAAA,EAAA,MAAA,EAAA,CAAA,22EAAA,CAAA,EAAA;;sBA0B9C,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;;;ME7BtC,sBAAsB,CAAA;AAExB,IAAA,WAAW;AAEX,IAAA,KAAK;AACL,IAAA,QAAQ;AACR,IAAA,WAAW;AAEX,IAAA,WAAW;AACX,IAAA,cAAc;AACd,IAAA,iBAAiB;IAEjB,IAAI,GAAsB,IAAI;IAC9B,eAAe,GAAG,IAAI;AACtB,IAAA,UAAU;IACV,OAAO,GAAmC,EAAE;IAC5C,eAAe,GAAiC,KAAK;AAErD,IAAA,SAAS;AACT,IAAA,cAAc;AACd,IAAA,eAAe;AAEL,IAAA,UAAU,GAAG,IAAI,YAAY,EAAQ;AACrC,IAAA,WAAW,GAAG,IAAI,YAAY,EAAgC;AAExE,IAAA,OAAO,GAAG,CAAA,qBAAA,EAAwB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE;AACzE,IAAA,aAAa,GAAG,CAAA,2BAAA,EAA8B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE;AAE9F,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,QACE,CAAC,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,IAAI,CAAC,QAAQ;YACf,CAAC,CAAC,IAAI,CAAC,WAAW;YAClB,CAAC,CAAC,IAAI,CAAC,cAAc;YACrB,IAAI,CAAC,eAAe;IAExB;AAEA,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc;IACpD;AAEA,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;IAChC;AAEA,IAAA,IAAI,sBAAsB,GAAA;QACxB,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC,cAAc;AACnD,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,OAAO;AACpD,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAI,uBAAuB,GAAA;QACzB,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC,eAAe;AACrD,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC,aAAa;AACtE,QAAA,OAAO,IAAI;IACb;AAEU,IAAA,iBAAiB,CAAC,MAAoC,EAAA;AAC9D,QAAA,IAAI,MAAM,CAAC,IAAI,EAAE;YACf,OAAO,MAAM,CAAC,IAAI;QACpB;AAEA,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,OAAO,IAAI,CAAC,UAAU;QACxB;AAEA,QAAA,QAAQ,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,IAAI;AACP,gBAAA,OAAO,IAAI;AACb,YAAA,KAAK,IAAI;AACP,gBAAA,OAAO,IAAI;AACb,YAAA,KAAK,IAAI;AACT,YAAA,KAAK,IAAI;AACT,YAAA,KAAK,YAAY;AACf,gBAAA,OAAO,IAAI;;IAEjB;AAEU,IAAA,oBAAoB,CAAC,MAAoC,EAAA;AACjE,QAAA,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,OAAO,MAAM,CAAC,OAAO;QACvB;AAEA,QAAA,OAAO,OAAO;IAChB;AAEU,IAAA,kBAAkB,CAAC,MAAoC,EAAA;AAC/D,QAAA,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,OAAO,MAAM,CAAC,KAAK;QACrB;AAEA,QAAA,QAAQ,MAAM,CAAC,OAAO;AACpB,YAAA,KAAK,OAAO;AACZ,YAAA,KAAK,SAAS;AACd,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,SAAS;AAClB,YAAA;AACE,gBAAA,OAAO,SAAS;;IAEtB;wGApGW,sBAAsB,EAAA,IAAA,EAAA,EAAA,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,SAAA,EAAA,IAAA,EAAA,sBAAsB,ooBACC,gBAAgB,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChCpD,60FAiGA,EAAA,MAAA,EAAA,CAAA,20HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDvEY,sBAAsB,8MAAE,sBAAsB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAK7C,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;+BACE,0BAA0B,EAAA,UAAA,EACxB,IAAI,EAAA,OAAA,EACP,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,EAAA,eAAA,EAGxC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,60FAAA,EAAA,MAAA,EAAA,CAAA,20HAAA,CAAA,EAAA;;sBAG9C,SAAS;uBAAC,aAAa,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE;;sBAGjE;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBAEA;;sBACA;;;MElCU,oBAAoB,CAAA;AACd,IAAA,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACjD,IAAA,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;AAEhD,IAAA,IAAI,CACF,SAA2B,EAC3B,aAAA,GAA4D,EAAE,EAAA;AAE9D,QAAA,MAAM,SAAS,GAAG,IAAI,gBAAgB,EAAW;QAEjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC9C,QAAA,QAAQ,CAAC,SAAS,GAAG,yBAAyB;QAE9C,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;QAC1C,MAAM,aAAa,GAAG,CAAA,SAAA,EAAY,aAAa,CAAC,QAAQ,IAAI,QAAQ,CAAA,CAAE;AAEtE,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,qBAAqB,EAAE,aAAa,EAAE,aAAa,CAAC,UAAU,IAAI,EAAE;aACnF,MAAM,CAAC,OAAO;aACd,IAAI,CAAC,GAAG,CAAC;AAEZ,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AACnC,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAE/B,QAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;AACrC,YAAA,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,aAAa,CAAC,IAAI,EAAE;AAC9D,gBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE;AACnD,aAAA;YACD,MAAM,EAAE,IAAI,CAAC,mBAAmB;AACjC,SAAA,CAAC;AAEF,QAAA,MAAM,YAAY,GAAG,eAAe,EAAC,sBAA+B,GAAE;YACpE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;AAC7C,YAAA,WAAW,EAAE,IAAI;AAClB,SAAA,CAAC;QAEF,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC;QACnD,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC;QACzD,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC;QAC/D,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC;QAC/D,YAAY,CAAC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,cAAc,CAAC;QACrE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,EAAE,aAAa,CAAC,iBAAiB,CAAC;QAC3E,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC;QACzD,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC;QAC7D,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,UAAU,CAAC;QAC7D,YAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,eAAe,IAAI,KAAK,CAAC;QAChF,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,SAAS,CAAC;QAC3D,YAAY,CAAC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,cAAc,CAAC;QACrE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,eAAe,CAAC;AACvE,QAAA,YAAY,CAAC,QAAQ,CACnB,iBAAiB,EACjB,aAAa,CAAC,eAAe,IAAI,CAAC,aAAa,CAAC,YAAY,CAC7D;AAED,QAAA,SAAS,CAAC,sBAAsB,CAAC,CAAC,OAAO,KAAI;YAC3C,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC;AAC9C,YAAA,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE;AAChD,QAAA,CAAC,CAAC;AAEF,QAAA,SAAS,CAAC,qBAAqB,CAAC,CAAC,MAAM,KAAI;YACzC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;YAC5C,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC;YAClD,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC;YAExD,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC;YACxD,YAAY,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,cAAc,CAAC;YAC9D,YAAY,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAEpE,YAAA,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE;AAChD,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC;AAC7C,QAAA,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE;AAE9C,QAAA,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,EAAE;YAC5C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;AAC7C,YAAA,eAAe,EAAE,cAAc;AAChC,SAAA,CAAC;QAEF,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;AAC7D,QAAA,UAAU,CAAC,iBAAiB,CAAC,aAAa,EAAE;AAE5C,QAAA,MAAM,KAAK,GAAG,CAAC,MAAgB,KAAI;YACjC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC3C,UAAU,CAAC,OAAO,EAAE;YAEpB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC7C,YAAY,CAAC,OAAO,EAAE;YAEtB,QAAQ,CAAC,MAAM,EAAE;YACjB,IAAI,CAAC,MAAM,EAAE;YAEb,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC;YACxD,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,eAAe,EAAE,IAAI,CAAC;AAElE,YAAA,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC;AAChC,QAAA,CAAC;AAED,QAAA,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC;QAE/B,MAAM,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,IAAI,CAAC,aAAa,CAAC,YAAY;QAC9F,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,YAAY;QAEhF,MAAM,eAAe,GAAG,MAAK;YAC3B,IAAI,oBAAoB,EAAE;gBACxB,SAAS,CAAC,KAAK,EAAE;YACnB;AACF,QAAA,CAAC;AAED,QAAA,MAAM,SAAS,GAAG,CAAC,KAAoB,KAAI;YACzC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,aAAa,EAAE;gBAC3C,SAAS,CAAC,KAAK,EAAE;YACnB;AACF,QAAA,CAAC;QAED,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,eAAe,EAAE,IAAI,CAAC;QAC/D,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC;QAErD,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,MAAK;AAC9C,YAAA,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;gBAC/B,SAAS,CAAC,KAAK,EAAE;YACnB;AACF,QAAA,CAAC,CAAC;QAEF,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;AACrD,YAAA,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO;gBAAE;AAEvC,YAAA,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC;AAC7B,YAAA,IAAI,MAAM,CAAC,YAAY,IAAI,IAAI,EAAE;AAC/B,gBAAA,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAgB,CAAC;YAC1C;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,SAAS;IAClB;AAEA,IAAA,SAAS,CACP,aAAuD,EAAA;AAEvD,QAAA,OAAO,IAAI,CAAC,IAAI,CAId,2BAA2B,EAAE;AAC7B,YAAA,GAAG,aAAa;AAChB,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,eAAe,EAAE,aAAa,CAAC,eAAe,IAAI,eAAe;AACjE,YAAA,eAAe,EAAE,aAAa,CAAC,eAAe,IAAI,IAAI;AACvD,SAAA,CAAC;IACJ;wGAtJW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAApB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA;;4FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCbY,4BAA4B,CAAA;wGAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MCCY,4BAA4B,CAAA;wGAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MCyBY,aAAa,CAAA;AACP,IAAA,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;IAE9B,KAAK,GAAG,EAAE;IACV,QAAQ,GAAG,EAAE;IACb,UAAU,GAAG,EAAE;IACf,QAAQ,GAAG,IAAI;IACf,SAAS,GAAG,IAAI;IAChB,SAAS,GAAG,IAAI;IAChB,aAAa,GAAG,EAAE;IAClB,UAAU,GAAG,IAAI;IACjB,UAAU,GAAG,IAAI;IACjB,YAAY,GAAG,IAAI;IACnB,aAAa,GAAG,IAAI;IACpB,KAAK,GAAG,kBAAkB;IAC1B,IAAI,GAAsB,OAAO;IACjC,MAAM,GAAG,kBAAkB;IAC3B,mBAAmB,GAAG,IAAI;AAElB,IAAA,UAAU,GAAG,MAAM,CAAiB,IAAI,iFAAC;AACzC,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,oFAAC;IAE9C,IACI,IAAI,CAAC,KAAqB,EAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;IAC5B;AAEA,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE;IAC1B;AAES,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;AAC9B,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE;AAC3B,QAAA,OAAO,OAAO,CAAC,KAAK,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE;AAC1D,IAAA,CAAC,6EAAC;AAEQ,IAAA,UAAU,GAAG,IAAI,YAAY,EAAW;AAEN,IAAA,UAAU;AACV,IAAA,UAAU;AACV,IAAA,OAAO;AAE3C,IAAA,OAAO,GAAG,GAAG,CAAC;AACb,IAAA,GAAG,GAAG,CAAA,eAAA,EAAkB,EAAE,aAAa,CAAC,GAAG,EAAE;AAC9C,IAAA,OAAO,eAAe,GAAG,CAAC;AAC1B,IAAA,OAAO,gBAAgB,GAAG,EAAE;AAC3B,IAAA,OAAO,GAAG,CAAA,EAAG,IAAI,CAAC,GAAG,QAAQ;IAC9B,WAAW,GAAuB,IAAI;AACtC,IAAA,OAAO,oBAAoB,GAAG,EAAE;AAExC,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,IAAI;IAClB;AAEA,IAAA,IACI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI;IACtC;AAEA,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU;IAC1B;AAEA,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU;IAC1B;AAEA,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;AACnB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;YAE1B,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,MAAM,EAAE;YACf;iBAAO;gBACL,IAAI,CAAC,OAAO,EAAE;YAChB;AAEA,YAAA,MAAM,SAAS,GAAG,CAAC,EAAiB,KAAI;AACtC,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAAE;gBACpB,IAAI,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,GAAG,KAAK,QAAQ,EAAE;oBAC7C,EAAE,CAAC,cAAc,EAAE;AACnB,oBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBACrB;AACF,YAAA,CAAC;AAED,YAAA,MAAM,gBAAgB,GAAG,CAAC,EAAgB,KAAI;AAC5C,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAAE;gBACpB,IAAI,CAAC,IAAI,CAAC,mBAAmB;oBAAE;gBAC/B,IAAI,IAAI,CAAC,QAAQ;oBAAE;AAEnB,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa;AACzC,gBAAA,MAAM,CAAC,GAAG,EAAE,CAAC,MAAqB;AAClC,gBAAA,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;oBAAE;AAElB,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AAAE,oBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC7C,YAAA,CAAC;AAED,YAAA,MAAM,SAAS,GAAG,CAAC,EAAc,KAAI;AACnC,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAAE;gBACpB,IAAI,CAAC,IAAI,CAAC,SAAS;oBAAE;AAErB,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa;AACzC,gBAAA,MAAM,MAAM,GAAG,EAAE,CAAC,MAAqB;AACvC,gBAAA,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM;oBAAE;gBAEvB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBAC3B,IAAI,CAAC,UAAU,EAAE;gBACnB;AACF,YAAA,CAAC;AAED,YAAA,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClE,YAAA,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC7E,YAAA,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAElE,SAAS,CAAC,MAAK;gBACb,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC;gBACxD,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,aAAa,EAAE,gBAAgB,EAAE,IAAI,CAAC;gBACnE,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC;AAC1D,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;IAEA,MAAM,GAAA;QACJ,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC9B;AAEA,IAAA,OAAO,CAAC,IAAa,EAAA;AACnB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;QACzB,IAAI,IAAI,KAAK,GAAG;YAAE;AAElB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,SAAS,EAAE;AAC1C,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;QAC9B;IACF;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,IAAI,CAAC,mBAAmB;YAAE;AAC/B,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IACrB;AAEA,IAAA,cAAc,CAAC,EAAiB,EAAA;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE;AACrB,QAAA,IAAI,EAAE,CAAC,GAAG,KAAK,KAAK;YAAE;AAEtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa;AACzC,QAAA,IAAI,CAAC,KAAK;YAAE;QAEZ,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,MAAM;YAAE;AAExB,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE9B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAmC;AAE3D,QAAA,IAAI,EAAE,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,KAAK,EAAE;gBAC/B,EAAE,CAAC,cAAc,EAAE;gBACnB,IAAI,IAAI,EAAE;oBACR,IAAI,CAAC,KAAK,EAAE;gBACd;YACF;QACF;AAAO,aAAA,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,IAAI,EAAE;YACrC,EAAE,CAAC,cAAc,EAAE;YACnB,KAAK,CAAC,KAAK,EAAE;QACf;IACF;IAEQ,MAAM,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAmC;QACjE;QAEA,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,cAAc,EAAE;QAC1C,cAAc,CAAC,MAAK;YAClB,qBAAqB,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;AAChD,QAAA,CAAC,CAAC;IACJ;IAEQ,OAAO,GAAA;QACb,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,gBAAgB,EAAE;QAE5C,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE;AACtD,YAAA,cAAc,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC;QACnD;AACA,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;IACzB;IAEQ,UAAU,GAAA;AAChB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa;AACzC,QAAA,IAAI,CAAC,KAAK;YAAE;QAEZ,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AAC3C,QAAA,IAAI,UAAU,CAAC,MAAM,EAAE;AACrB,YAAA,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;YACrB;QACF;AAEA,QAAA,KAAK,CAAC,KAAK,IAAI;IACjB;AAEQ,IAAA,YAAY,CAAC,IAAiB,EAAA;QACpC,MAAM,QAAQ,GACZ,0IAA0I;AAE5I,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAc,QAAQ,CAAC,CAAC;AACpE,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,KAAI;AACvB,YAAA,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC;AAClC,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM;AACzE,YAAA,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO;YACpE,OAAO,OAAO,IAAI,KAAK;AACzB,QAAA,CAAC,CAAC;IACJ;IAEQ,cAAc,GAAA;AACpB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI;AAC1B,QAAA,IAAI,CAAC,IAAI;YAAE;AAEX,QAAA,IAAI,aAAa,CAAC,eAAe,KAAK,CAAC,EAAE;YACvC,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ;YACpD,aAAa,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY;YAE5D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC;AACxF,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ;AAC9B,YAAA,IAAI,UAAU;gBAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAA,EAAG,UAAU,IAAI;QAC7D;QAEA,aAAa,CAAC,eAAe,EAAE;IACjC;IAEQ,gBAAgB,GAAA;AACtB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI;AAC1B,QAAA,IAAI,CAAC,IAAI;YAAE;AAEX,QAAA,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,eAAe,GAAG,CAAC,CAAC;AAE9E,QAAA,IAAI,aAAa,CAAC,eAAe,KAAK,CAAC,EAAE;YACvC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAC,gBAAgB;YACpD,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,aAAa,CAAC,oBAAoB;QAC9D;IACF;wGAlPW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,8qBAsCV,4BAA4B,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAC5B,4BAA4B,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACZ,UAAU,6BCtE1C,o7CAoDA,EAAA,MAAA,EAAA,CAAA,osEAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDtBa,aAAa,EAAA,UAAA,EAAA,CAAA;kBATzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,UAAA,EACd,IAAI,EAAA,OAAA,EACP,EAAE,EAAA,eAAA,EAGM,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAA,QAAA,EAAA,o7CAAA,EAAA,MAAA,EAAA,CAAA,osEAAA,CAAA,EAAA;;sBAKrC;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAKA;;sBAcA;;sBAEA,YAAY;uBAAC,4BAA4B;;sBACzC,YAAY;uBAAC,4BAA4B;;sBACzC,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;;sBAUzC,WAAW;uBAAC,gBAAgB;;sBAK5B,WAAW;uBAAC,gBAAgB;;;ME/ElB,iCAAiC,CAAA;wGAAjC,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAjC,iCAAiC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAjC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAJ7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MCKY,mBAAmB,CAAA;wGAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,oICVhC,6BACA,EAAA,MAAA,EAAA,CAAA,mLAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDSa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;+BACE,uBAAuB,EAAA,UAAA,EACrB,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,mLAAA,CAAA,EAAA;;;MEK7B,kBAAkB,CAAA;IACpB,KAAK,GAAG,EAAE;IACV,QAAQ,GAAG,EAAE;IACb,MAAM,GAAG,KAAK;IACd,UAAU,GAAG,OAAO;IACpB,aAAa,GAAG,yBAAyB;AAExC,IAAA,KAAK,GAAG,IAAI,YAAY,EAAQ;AAE1C,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ;IAC5B;AAEA,IAAA,YAAY,CAAC,EAAc,EAAA;QACzB,EAAE,CAAC,cAAc,EAAE;QACnB,EAAE,CAAC,eAAe,EAAE;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;wGAjBW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,2BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb/B,0sBA8BA,EAAA,MAAA,EAAA,CAAA,s2BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EDvBY,sBAAsB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAMrB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAT9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAAA,UAAA,EACpB,IAAI,EAAA,OAAA,EACP,CAAC,sBAAsB,CAAC,EAAA,eAAA,EAGhB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAA,QAAA,EAAA,0sBAAA,EAAA,MAAA,EAAA,CAAA,s2BAAA,CAAA,EAAA;;sBAG3C;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;;MEdU,gCAAgC,CAAA;wGAAhC,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAJ5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MC8BY,kBAAkB,CAAA;IACpB,KAAK,GAAG,CAAC;IACT,QAAQ,GAAG,EAAE;IACb,QAAQ,GAAG,EAAE;IACb,QAAQ,GAAG,KAAK;IAChB,UAAU,GAAqB,OAAO;IACtC,MAAM,GAA6B,IAAI;IACvC,WAAW,GAAW,kBAAkB;IACxC,KAAK,GAAG,kCAAkC;IAC1C,KAAK,GAAG,kCAAkC;AAElC,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,oFAAC;AAC7B,IAAA,UAAU,GAAG,MAAM,CAAiB,IAAI,iFAAC;AACzC,IAAA,UAAU,GAAG,MAAM,CAA0C,IAAI,iFAAC;IAEnF,IAAa,IAAI,CAAC,CAAiB,EAAA;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB;AACA,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE;IAC1B;AAES,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;AAC9B,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE;AAC3B,QAAA,OAAO,OAAO,CAAC,KAAK,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE;AAC1D,IAAA,CAAC,6EAAC;AAEQ,IAAA,KAAK,GAAG,IAAI,YAAY,EAAQ;AAChC,IAAA,QAAQ,GAAG,IAAI,YAAY,EAAQ;AACnC,IAAA,UAAU,GAAG,IAAI,YAAY,EAAW;AAED,IAAA,UAAU;IAC3D,IAAoD,SAAS,CAC3D,CAA+C,EAAA;QAE/C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IAChC;AAES,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,+EAAC;AACvD,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU;IAC1B;AAEA,IAAA,OAAO,CAAC,IAAa,EAAA;QACnB,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE;YAAE;AAE5B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B,QAAA,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,SAAS;AAAE,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1E;IAEA,MAAM,GAAA;QACJ,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC9B;wGArDW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,2BAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA+Bf,iCAAiC,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACjC,gCAAgC,gDCnEhD,4jEA+EA,EAAA,MAAA,EAAA,CAAA,8nEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDtDI,sBAAsB,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,WAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,4BAA4B,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC5B,4BAA4B,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC5B,aAAa,0SAJb,sBAAsB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAWb,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAf9B,SAAS;+BACE,sBAAsB,EAAA,UAAA,EACpB,IAAI,EAAA,OAAA,EACP;wBACP,sBAAsB;wBACtB,sBAAsB;wBACtB,4BAA4B;wBAC5B,4BAA4B;wBAC5B,aAAa;qBACd,EAAA,eAAA,EAGgB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAA,QAAA,EAAA,4jEAAA,EAAA,MAAA,EAAA,CAAA,8nEAAA,CAAA,EAAA;;sBAG3C;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAMA;;sBAYA;;sBACA;;sBACA;;sBAEA,YAAY;uBAAC,iCAAiC;;sBAC9C,YAAY;uBAAC,gCAAgC;;;MErDnC,iBAAiB,CAAA;IACnB,KAAK,GAAG,EAAE;IACV,KAAK,GAAG,EAAE;IACV,QAAQ,GAAG,EAAE;IACb,QAAQ,GAAG,EAAE;IACb,QAAQ,GAAG,KAAK;IAChB,SAAS,GAAG,IAAI;IAChB,MAAM,GAAwB,IAAI;AAEjC,IAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;AACjC,IAAA,SAAS,GAAG,IAAI,YAAY,EAAQ;AAE9C,IAAA,aAAa,CAAC,EAAc,EAAA;QAC1B,EAAE,CAAC,cAAc,EAAE;QACnB,EAAE,CAAC,eAAe,EAAE;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ;AAAE,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACxC;wGAhBW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,0BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECd9B,stBAkCA,EAAA,MAAA,EAAA,CAAA,irDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,ED1BY,sBAAsB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAMrB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAT7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,UAAA,EACnB,IAAI,EAAA,OAAA,EACP,CAAC,sBAAsB,CAAC,EAAA,eAAA,EAGhB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAA,QAAA,EAAA,stBAAA,EAAA,MAAA,EAAA,CAAA,irDAAA,CAAA,EAAA;;sBAG1C;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBACA;;;MEhBU,oBAAoB,CAAA;IACtB,IAAI,GAAG,EAAE;IACT,OAAO,GAAG,CAAC;IACX,UAAU,GAAG,KAAK;IAClB,mBAAmB,GAAG,EAAE;IAE1B,SAAS,GAAA;QACd,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACvD;IACO,SAAS,GAAA;QACd,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAC1D;wGAXW,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,sMCRjC,8oBAiBA,EAAA,MAAA,EAAA,CAAA,uyBAAA,CAAA,EAAA,CAAA;;4FDTa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,cACtB,IAAI,EAAA,QAAA,EAAA,8oBAAA,EAAA,MAAA,EAAA,CAAA,uyBAAA,CAAA,EAAA;;sBAKf;;sBACA;;sBACA;;sBACA;;;MEFU,gBAAgB,CAAA;wGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,8HCV7B,6BACA,EAAA,MAAA,EAAA,CAAA,oKAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDSa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAR5B,SAAS;+BACE,oBAAoB,EAAA,UAAA,EAClB,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,oKAAA,CAAA,EAAA;;;MEF1B,oBAAoB,CAAA;AACH,IAAA,QAAA;AAA5B,IAAA,WAAA,CAA4B,QAA0B,EAAA;QAA1B,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAAqB;wGAD9C,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kCAAkC;AAC5C,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;MASY,sBAAsB,CAAA;AACL,IAAA,QAAA;AAA5B,IAAA,WAAA,CAA4B,QAA0B,EAAA;QAA1B,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAAqB;wGAD9C,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oCAAoC;AAC9C,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MCVY,kBAAkB,CAAA;AACZ,IAAA,QAAQ,GAAG,IAAI,GAAG,EAAkB;IAE9C,IAAI,CAAC,MAAM,GAAG,SAAS,EAAA;AAC5B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;AAC9C,QAAA,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;AAC/B,QAAA,OAAO,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,IAAI,EAAE;IAC5B;wGARW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cADL,MAAM,EAAA,CAAA;;4FACnB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCUrB,kBAAkB,CAAA;AACZ,IAAA,GAAG,GAAG,MAAM,CAAC,kBAAkB,CAAC;IACxC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAEpC,IAAA,KAAK;AACL,IAAA,KAAK;AACL,IAAA,MAAM;AACN,IAAA,OAAO;AACP,IAAA,QAAQ;AACR,IAAA,QAAQ;AACR,IAAA,SAAS;AACT,IAAA,eAAe;IACf,KAAK,GAAiB,OAAO;IACE,IAAI,GAAG,KAAK;IACZ,SAAS,GAAG,IAAI;IAChB,QAAQ,GAAG,KAAK;AAEpB,IAAA,OAAO;AACL,IAAA,SAAS;wGAlBpC,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAaT,gBAAgB,CAAA,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAChB,gBAAgB,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAChB,gBAAgB,CAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEtB,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACpB,sBAAsB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9BtC,EAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FDYa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,cACd,IAAI,EAAA,QAAA,EAAA,EAAA,EAAA;;sBAQf;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBACrC,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBACrC,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBAErC,YAAY;uBAAC,oBAAoB;;sBACjC,YAAY;uBAAC,sBAAsB;;;AE1BhC,SAAU,QAAQ,CAAC,MAAc,EAAA;IACrC,OAAO,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AAChD;;ACeA,MAAMC,eAAa,GAAG,IAAI,GAAG,CAAqB;IAChD,SAAS;IACT,SAAS;IACT,SAAS;IACT,OAAO;IACP,MAAM;AACP,CAAA,CAAC;MA0BW,eAAe,CAAA;AACjB,IAAA,aAAa,GAAG,KAAK,CAAU,KAAK,oFAAC;AACrC,IAAA,SAAS,GAAG,KAAK,CAAgB,IAAI,gFAAC;AACtC,IAAA,IAAI,GAAG,KAAK,CAAoB,IAAI,2EAAC;AACrC,IAAA,OAAO,GAAG,KAAK,CAAkB,QAAQ,8EAAC;AAC1C,IAAA,KAAK,GAAG,KAAK,CAAqB,SAAS,4EAAC;IAC5C,OAAO,GAAG,KAAK,CAAgB,IAAI,+EAAI,KAAK,EAAE,IAAI,EAAA,CAAG;AACrD,IAAA,UAAU,GAAG,KAAK,CAAqB,OAAO,iFAAC;AAC/C,IAAA,UAAU,GAAG,KAAK,CAA4B,IAAI,iFAAC;AAEnD,IAAA,OAAO,GAAG,MAAM,CAAC,KAAK,8EAAC;AACvB,IAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,+EAAC;IACxB,aAAa,GAAG,MAAM,EAAW;IACjC,mBAAmB,GAAG,MAAM,EAAW;AAG/B,IAAA,MAAM;AAEd,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACpC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,QAAQ;AAAE,YAAA,OAAO,IAAI;AAC7C,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AAC7C,QAAA,OAAO,CAAC,GAAG,IAAI,GAAG,KAAK,QAAQ,GAAG,IAAI,GAAG,GAAG;AAC9C,IAAA,CAAC,mFAAC;AACO,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAChC,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AAC7C,QAAA,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,QAAQ;AAAE,YAAA,OAAO,QAAQ;AAC7C,QAAA,OAAOA,eAAa,CAAC,GAAG,CAAC,GAAyB,CAAC,GAAI,GAA0B,GAAG,QAAQ;AAC9F,IAAA,CAAC,+EAAC;AACe,IAAA,MAAM,GAAG,QAAQ,CAAC,kBAAkB,CAAC;AAC7C,IAAA,EAAE,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,MAAM,yEAAC;AAClD,IAAA,GAAG,GAAG,QAAQ,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,0EAAC;AAE5D,IAAA,QAAQ,GAA6B,MAAK,EAAE,CAAC;AAC7C,IAAA,SAAS,GAAe,MAAK,EAAE,CAAC;AAExC,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,aAAa;AACrC,YAAA,IAAI,CAAC,EAAE;gBAAE;AACT,YAAA,EAAE,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;AACzC,QAAA,CAAC,CAAC;IACJ;AAEO,IAAA,cAAc,CAAC,IAAa,EAAA;QACjC,IAAI,IAAI,CAAC,aAAa,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;AAE9D,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,IAAI,CAAC,SAAS,EAAE;IAClB;IAEO,MAAM,GAAA;QACX,IAAI,CAAC,SAAS,EAAE;IAClB;AAEA,IAAA,UAAU,CAAC,KAAqB,EAAA;QAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3B;AACA,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AACA,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;IAC/B;AACA,IAAA,gBAAgB,CAAC,EAA4B,EAAA;AAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;wGAnEW,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,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,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,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,8BAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,8BAAA,EAAA,iCAAA,EAAA,gBAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,SAAA,EAlBf;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC9C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzCH,46BA+BA,EAAA,MAAA,EAAA,CAAA,+gHAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDsBa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAxB3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAChB,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC9C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EAAA,IAAA,EACK;AACJ,wBAAA,KAAK,EAAE,uBAAuB;AAC9B,wBAAA,kBAAkB,EAAE,QAAQ;AAC5B,wBAAA,mBAAmB,EAAE,YAAY;AACjC,wBAAA,qBAAqB,EAAE,WAAW;AAClC,wBAAA,wBAAwB,EAAE,cAAc;AACxC,wBAAA,gCAAgC,EAAE,OAAO;AACzC,wBAAA,sBAAsB,EAAE,4BAA4B;AACpD,wBAAA,mCAAmC,EAAE,gBAAgB;AACtD,qBAAA,EAAA,QAAA,EAAA,46BAAA,EAAA,MAAA,EAAA,CAAA,+gHAAA,CAAA,EAAA;;sBAiBA,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;AAuDvC,SAAS,YAAY,CACnB,CAAwC,EACxC,QAAuB,EAAA;AAEvB,IAAA,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3C,IAAA,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ;AAAE,QAAA,OAAO,QAAQ;AACzC,IAAA,IAAIA,eAAa,CAAC,GAAG,CAAC,CAAuB,CAAC;QAAE,OAAO,CAAA,oBAAA,EAAuB,CAAC,CAAA,CAAA,CAAG;AAClF,IAAA,OAAO,CAAC;AACV;;MEhFa,YAAY,CAAA;AACN,IAAA,UAAU,GAAe,MAAM,CAAC,UAAU,CAAC;IAEnD,MAAM,GAAG,CAAC;IACV,SAAS,GAAG,CAAC;IACb,QAAQ,GAAG,EAAE;IACb,SAAS,GAAG,CAAC;IACb,OAAO,GAAG,KAAK;IACf,IAAI,GAAkB,EAAE;IACxB,UAAU,GAAG,KAAK;IAClB,gBAAgB,GAAG,EAAE;IACrB,SAAS,GAAoB,EAAE;IAC/B,OAAO,GAAwB,MAAM;IACrC,cAAc,GAAG,gBAAgB;IACjC,eAAe,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACxC,YAAY,GAAG,wBAAwB;AAEtC,IAAA,UAAU,GAAG,IAAI,YAAY,EAAiB;AAC9C,IAAA,UAAU,GAAG,IAAI,YAAY,EAAqB;AAClD,IAAA,eAAe,GAAG,IAAI,YAAY,EAAmB;AAET,IAAA,WAAW;AACN,IAAA,SAAS;AAE3D,IAAA,WAAW,GAAG,MAAM,CAAC,KAAK,kFAAC;AAC3B,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,oFAAC;AAC7B,IAAA,SAAS,GAAG,MAAM,CAAgB,EAAE,gFAAC;AAC7B,IAAA,UAAU,GAAG,MAAM,CAAW,EAAE,iFAAC;AACzC,IAAA,OAAO,GAAG,MAAM,CAAuB,EAAE,8EAAC;AAClC,IAAA,YAAY,GAAG,MAAM,CAAkB,EAAE,mFAAC;AAC1C,IAAA,OAAO,GAAG,MAAM,CAAqB,IAAI,GAAG,EAAE,8EAAC;AAC/C,IAAA,QAAQ,GAAG,MAAM,CAAyB,EAAE,+EAAC;AAC7C,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,sFAAC;AAEtE,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;QACxC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,KAAK;AAC9B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE;AAClC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtC,IAAA,CAAC,uFAAC;AACO,IAAA,sBAAsB,GAAG,QAAQ,CAAC,MAAK;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,KAAK;AAC9B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE;AAClC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxC,QAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACxC,IAAA,CAAC,6FAAC;AACO,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,oFAAC;IAC1D,mBAAmB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,wBAAwB,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;IAEtE,KAAK,GAAkB,IAAI;AAC3B,IAAA,cAAc;AAEtB,IAAA,IAAI,UAAU,GAAA;QACZ,IAAI,CAAC,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,CAAC;QAC1B,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC;IAC3C;AAEA,IAAA,IAAI,QAAQ,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,CAAC;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC;IACpE;AAEA,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1E;IAEA,kBAAkB,GAAA;QAChB,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;AAEnC,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YAChF,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,eAAe,EAAE;AACxB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACtE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;AACzD,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,CAAC;AAElE,QAAA,MAAM,KAAK,GAAI,QAAgB,CAAC,KAAK;AACrC,QAAA,IAAI,KAAK,EAAE,KAAK,EAAE,IAAI;AAAE,YAAA,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAEtE,IAAI,CAAC,eAAe,EAAE;IACxB;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QACxD,IAAI,OAAO,CAAC,WAAW,CAAC;YAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;QAErE,IACE,OAAO,CAAC,SAAS,CAAC;YAClB,OAAO,CAAC,WAAW,CAAC;YACpB,OAAO,CAAC,WAAW,CAAC;YACpB,OAAO,CAAC,UAAU,CAAC;AACnB,YAAA,OAAO,CAAC,SAAS,CAAC,EAClB;YACA,IAAI,CAAC,eAAe,EAAE;QACxB;IACF;IAEQ,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACrD;IAEQ,eAAe,GAAA;QACrB,IAAI,IAAI,CAAC,OAAO;YAAE;AAElB,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;AAAE,YAAA,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;AACxD,QAAA,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC,MAAK;AACtC,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;YACjB,IAAI,CAAC,cAAc,EAAE;AACvB,QAAA,CAAC,CAAC;IACJ;IAEQ,cAAc,GAAA;AACpB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa;AAC1C,QAAA,IAAI,CAAC,IAAI;YAAE;AAEX,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE;AAElB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,KAAK,MAAM;QACtC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;AAC/B,QAAA,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ;QAE1C,MAAM,MAAM,GAAa,EAAE;AAE3B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AAEnB,YAAA,IAAI,GAAG,CAAC,KAAK,EAAE;AACb,gBAAA,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACd;YACF;YAEA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AACjC,YAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAClB,gBAAA,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM;gBAClB;YACF;YAEA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CACnC,CAAA,2CAAA,EAA8C,CAAC,CAAA,EAAA,CAAI,CACpD;AACD,YAAA,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAC1B,IAAI,CAAC,gBAAgB,CAAc,CAAA,oCAAA,EAAuC,CAAC,CAAA,EAAA,CAAI,CAAC,CACjF;AAED,YAAA,MAAM,OAAO,GAAG,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,GAAG,CAAC;YACxE,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC;AAEnD,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,EAAE,IAAI,CAAC;YACpD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;AACtC,YAAA,MAAM,YAAY,GAAG,KAAK,GAAG,cAAc;YAE3C,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;AAE7D,YAAA,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QACxD;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,gBAAgB,EAAE;IACzB;AAEQ,IAAA,sBAAsB,CAAC,IAAiB,EAAA;AAC9C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa;AAC1C,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,CAAC;QAEnB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAgB;AAEjD,QAAA,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AACjC,QAAA,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU;AAC7B,QAAA,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG;AACrB,QAAA,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ;AACjC,QAAA,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM;AAClC,QAAA,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa;AACjC,QAAA,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM;QAE7B,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAc,6BAA6B,CAAC;AAC/E,QAAA,IAAI,OAAO;AAAE,YAAA,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;QAE3C,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAc,gCAAgC,CAAC;QACxF,IAAI,aAAa,EAAE;AACjB,YAAA,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa;AACzC,YAAA,aAAa,CAAC,KAAK,CAAC,cAAc,GAAG,YAAY;QACnD;QAEA,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAc,6BAA6B,CAAC;QAC5E,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS;AAC/B,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM;AAC5B,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG;QAC3B;QAEA,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAc,6BAA6B,CAAC;QAC5E,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM;AAC5B,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS;AAC/B,YAAA,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM;AAChC,YAAA,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ;AAChC,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc;QACrC;QAEA,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAc,0BAA0B,CAAC;AAC5E,QAAA,IAAI,OAAO;AAAE,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa;AAEhD,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QACvB,MAAM,CAAC,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC,KAAK;QAC7C,KAAK,CAAC,MAAM,EAAE;AAEd,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACrB;AAEQ,IAAA,qBAAqB,CAAC,KAAoB,EAAA;QAChD,IAAI,GAAG,GAAG,CAAC;QACX,KAAK,MAAM,IAAI,IAAI,KAAK;AAAE,YAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC9E,QAAA,OAAO,GAAG;IACZ;AAEQ,IAAA,oBAAoB,CAAC,IAAiB,EAAA;AAC5C,QAAA,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC;QACpC,MAAM,GAAG,GACP,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,IAAI,GAAG,CAAC;QAE5F,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAc,6BAA6B,CAAC;QAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAc,uBAAuB,CAAC;AAExE,QAAA,MAAM,OAAO,GAAG,MAAM,EAAE,WAAW,IAAI,CAAC;QACxC,MAAM,QAAQ,GAAG,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,WAAW;QAEzD,MAAM,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,CAAC;AAC3B,QAAA,OAAO,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,QAAQ;IACvC;IAEQ,IAAI,CAAC,KAAa,EAAE,IAAiB,EAAA;AAC3C,QAAA,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE;AACtB,QAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;AACnB,YAAA,QACE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACpB,gBAAA,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC;AAE1E,QAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;AAClB,YAAA,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;QAClF,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9B,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;IACrC;IAEQ,gBAAgB,GAAA;AACtB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa;AAC1C,QAAA,IAAI,CAAC,IAAI;YAAE;QAEX,qBAAqB,CAAC,MAAK;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC;AACrD,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7B,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,KAAK,CAAC,CAAS,EAAE,GAAW,EAAE,GAAW,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACxC;AAEO,IAAA,gBAAgB,CAAC,CAAS,EAAA;QAC/B,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnC,QAAA,OAAO,IAAI,CAAC,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,eAAe,EAAE;IACxB;IAEO,aAAa,CAAC,EAAgB,EAAE,CAAS,EAAA;QAC9C,EAAE,CAAC,cAAc,EAAE;QACnB,EAAE,CAAC,eAAe,EAAE;AAEpB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa;AAC1C,QAAA,IAAI,CAAC,IAAI;YAAE;QAEX,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,UAAU;YAAE;AAEjB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,SAAS;YAAE;AAEzC,QAAA,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;QAEzF,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;QAC7D,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,IAAI;AACnE,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC;AAE5D,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC;QAChC,EAAE,CAAC,MAAsB,CAAC,iBAAiB,GAAG,EAAE,CAAC,SAAS,CAAC;AAE5D,QAAA,MAAM,MAAM,GAAG,CAAC,CAAe,KAAI;AACjC,YAAA,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM;AAC7B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC;AAC/D,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAA,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK;gBAAE;AACtB,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC;AAC3C,QAAA,CAAC;QAED,MAAM,OAAO,GAAG,MAAK;AACnB,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC;AACpC,YAAA,UAAU,CAAC,mBAAmB,CAAC,aAAa,EAAE,MAAM,CAAC;AACrD,YAAA,UAAU,CAAC,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC;AACpD,YAAA,UAAU,CAAC,mBAAmB,CAAC,eAAe,EAAE,OAAO,CAAC;AAC1D,QAAA,CAAC;AAED,QAAA,UAAU,CAAC,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC;AAClD,QAAA,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC;AACjD,QAAA,UAAU,CAAC,gBAAgB,CAAC,eAAe,EAAE,OAAO,CAAC;IACvD;AAEQ,IAAA,aAAa,CAAC,CAAS,EAAA;AAC7B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa;AAC1C,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,IAAI;QACtB,OAAO,IAAI,CAAC,aAAa,CAAc,8CAA8C,CAAC,CAAA,EAAA,CAAI,CAAC;IAC7F;IAEQ,UAAU,CAAC,CAAqB,EAAE,IAAiB,EAAA;QACzD,OAAO,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC;IACrD;IAEQ,YAAY,CAAC,CAAqB,EAAE,IAAiB,EAAA;QAC3D,IAAI,CAAC,CAAC,CAAC,KAAK;AAAE,YAAA,OAAO,IAAI;QACzB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;QACxF,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9B,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;IACtC;IAEQ,mBAAmB,CAAC,CAAS,EAAE,IAAiB,EAAA;AACtD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE;QAEjC,IAAI,QAAQ,GAAG,CAAC;AAEhB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,CAAC,KAAK,CAAC;gBAAE;AACb,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAEjB,YAAA,IAAI,CAAC,CAAC,KAAK,EAAE;gBACX,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC;AACrC,gBAAA,IAAI,EAAE,IAAI,IAAI,EAAE;oBACd,QAAQ,IAAI,EAAE;oBACd;gBACF;gBAEA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAClC,gBAAA,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,qBAAqB,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;gBACjE;YACF;AAEA,YAAA,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAC3B,YAAA,IAAI,MAAM,IAAI,IAAI,EAAE;gBAClB,QAAQ,IAAI,MAAM;gBAClB;YACF;AAEA,YAAA,IAAI,CAAC,CAAC,IAAI,EAAE;gBACV,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC;gBACpC;YACF;YAEA,QAAQ,IAAI,EAAE;QAChB;AAEA,QAAA,OAAO,QAAQ;IACjB;IAEO,SAAS,CAAC,GAAQ,EAAE,IAAa,EAAA;AACtC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,EAAE;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAC7B,IAAI,GAAG,GAAG,GAAG;AAEb,QAAA,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;YACrB,IAAI,GAAG,IAAI,IAAI;AAAE,gBAAA,OAAO,EAAE;AAC1B,YAAA,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QACd;QAEA,OAAO,GAAG,IAAI,EAAE;IAClB;AAEQ,IAAA,gBAAgB,CAAC,CAAS,EAAE,GAAW,EAAE,OAAe,EAAE,IAAiB,EAAA;AACjF,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC;QAElD,MAAM,MAAM,GAAG,CAAC;AAChB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;AAEvE,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjD;AAEO,IAAA,cAAc,CAAC,GAAkB,EAAA;QACtC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACb,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IACxB;AAEO,IAAA,gBAAgB,CAAC,GAAkB,EAAA;QACxC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AACpC,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AAChB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IACxB;AAEO,IAAA,iBAAiB,CAAC,OAAgB,EAAA;QACvC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;AAExC,QAAA,IAAI,OAAO;AAAE,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;AACvC,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEvC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3B,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;AAC1B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;IAChC;IAEO,SAAS,CAAC,GAAkB,EAAE,OAAgB,EAAA;QACnD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;AACxC,QAAA,IAAI,OAAO;AAAE,YAAA,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;;AACpB,YAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;QAEpB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3B,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;AAC1B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;IAChC;AAEO,IAAA,UAAU,CAAC,GAAkB,EAAA;QAClC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;IACxC;AAEO,IAAA,UAAU,CAAC,GAAuB,EAAA;QACvC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK;AACpC,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,SAAS;AAC1B,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;IACpD;IAEO,iBAAiB,CAAC,EAAc,EAAE,GAAuB,EAAA;QAC9D,EAAE,CAAC,eAAe,EAAE;QAEpB,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE;QAEnB,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK;AACpC,QAAA,IAAI,CAAC,GAAG;YAAE;AAEV,QAAA,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ;QACzB,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAEhC,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;AAEpD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;QAChD,IAAI,GAAG,KAAK,CAAC,CAAC;AAAE,YAAA,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;aACvE;AACH,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACrB,YAAA,IAAI,GAAG,CAAC,SAAS,KAAK,KAAK;AAAE,gBAAA,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE;;AACjE,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1B;QAEA,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B;AAEO,IAAA,QAAQ,CAAC,GAAuB,EAAA;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AAC9B,QAAA,IAAI,CAAC,CAAC;AAAE,YAAA,OAAO,MAAM;AACrB,QAAA,OAAO,CAAC,CAAC,SAAS,KAAK,KAAK,GAAG,WAAW,GAAG,YAAY;IAC3D;IAEO,SAAS,GAAA;AACd,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjE;IACO,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC/F;IACO,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACnB,YAAA,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YAC5D,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,SAAA,CAAC;IACJ;IACO,QAAQ,GAAA;QACb,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACnF;AACO,IAAA,cAAc,CAAC,IAAY,EAAA;AAChC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACxD;IAEQ,wBAAwB,GAAA;AAC9B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE;AAClC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa;AAE1C,QAAA,MAAM,KAAK,GAAG,CAAC,CAAqB,MAAM,IAAI,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/F,QAAA,MAAM,YAAY,GAAG,CAAC,CAAqB,KAAmB;AAC5D,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK;AAAE,gBAAA,OAAO,IAAI;YAClC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;AACxB,YAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;YACxF,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9B,YAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;AACtC,QAAA,CAAC;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;AACvD,YAAA,OAAO;AACJ,iBAAA,GAAG,CAAC,CAAC,CAAC,KAAI;gBACT,IAAI,CAAC,CAAC,KAAK;oBAAE,OAAO,CAAC,CAAC,KAAK;gBAC3B,IAAI,CAAC,CAAC,IAAI;AAAE,oBAAA,OAAO,UAAU,KAAK,CAAC,CAAC,CAAC,UAAU;AAC/C,gBAAA,IAAI,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE;AACtB,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC;oBACvC,OAAO,CAAA,YAAA,EAAe,GAAG,CAAA,GAAA,CAAK;gBAChC;AACA,gBAAA,OAAO,kBAAkB;AAC3B,YAAA,CAAC;iBACA,IAAI,CAAC,GAAG,CAAC;QACd;AAEA,QAAA,MAAM,SAAS,GAAG,IAAI,EAAE,WAAW,IAAI,CAAC;QAExC,MAAM,KAAK,GAAa,EAAE;AAC1B,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAE5E,IAAI,QAAQ,GAAG,CAAC;AAEhB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAEjB,YAAA,IAAI,CAAC,CAAC,KAAK,EAAE;AACX,gBAAA,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;AAC1B,gBAAA,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC;AAClB,gBAAA,QAAQ,IAAI,EAAE,IAAI,CAAC;gBACnB;YACF;AAEA,YAAA,IAAI,CAAC,CAAC,IAAI,EAAE;AACV,gBAAA,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;gBACZ;YACF;YAEA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACjC,MAAM,EAAE,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC1D,YAAA,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;YACb,QAAQ,IAAI,EAAE;QAChB;QAEA,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,OAAO;AACJ,iBAAA,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;gBACZ,IAAI,CAAC,CAAC,KAAK;oBAAE,OAAO,CAAC,CAAC,KAAK;gBAC3B,IAAI,CAAC,CAAC,IAAI;AAAE,oBAAA,OAAO,UAAU,KAAK,CAAC,CAAC,CAAC,UAAU;AAC/C,gBAAA,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI;AACxB,YAAA,CAAC;iBACA,IAAI,CAAC,GAAG,CAAC;QACd;AAEA,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;AACvD,QAAA,MAAM,KAAK,GAAG,QAAQ,GAAG,WAAW,IAAI,QAAQ,GAAG,CAAC,GAAG,WAAW,GAAG,QAAQ,GAAG,CAAC;AAEjF,QAAA,OAAO;AACJ,aAAA,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACZ,YAAA,IAAI,CAAC,CAAC,KAAK,EAAE;gBACX,OAAO,CAAC,CAAC,KAAK;YAChB;AAEA,YAAA,IAAI,CAAC,CAAC,IAAI,EAAE;AACV,gBAAA,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;gBACpB,OAAO,CAAA,OAAA,EAAU,GAAG,CAAA,QAAA,CAAU;YAChC;YAEA,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YACrD,OAAO,CAAA,EAAG,EAAE,CAAA,EAAA,CAAI;AAClB,QAAA,CAAC;aACA,IAAI,CAAC,GAAG,CAAC;IACd;wGAhkBW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,iCAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAqBN,kBAAkB,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxErC,kpMA+JA,EAAA,MAAA,EAAA,CAAA,g7KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED1HI,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,eAAe,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,WAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,IAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,oBAAoB,gIACpB,sBAAsB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAUb,YAAY,EAAA,UAAA,EAAA,CAAA;kBAlBxB,SAAS;+BACE,eAAe,EAAA,UAAA,EACb,IAAI,EAAA,OAAA,EACP;wBACP,WAAW;wBACX,eAAe;wBACf,gBAAgB;wBAChB,oBAAoB;wBACpB,sBAAsB;qBACvB,EAAA,eAAA,EAGgB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,KAAK,EAAE,oBAAoB;AAC3B,wBAAA,oBAAoB,EAAE,+BAA+B;AACtD,qBAAA,EAAA,QAAA,EAAA,kpMAAA,EAAA,MAAA,EAAA,CAAA,g7KAAA,CAAA,EAAA;;sBAKA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBAEA,eAAe;uBAAC,kBAAkB;;sBAClC,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;ME9C7B,mBAAmB,CAAA;AAMkB,IAAA,KAAA;AAL/B,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAEvC,IAAA,MAAM;AACY,IAAA,KAAK;AAEhC,IAAA,WAAA,CAAgD,KAAmB,EAAA;QAAnB,IAAA,CAAA,KAAK,GAAL,KAAK;IAAiB;IAEtE,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC;QAC5E;QAEA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE;AAChF,YAAA,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC;QAC1E;AAEA,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YACzB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;AACtC,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3E;IACF;AAEA,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;IAC3C;wGAzBW,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3BhC,ygDAkDA,EAAA,MAAA,EAAA,CAAA,+1EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED7BY,WAAW,mWAAE,eAAe,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,WAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,IAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAA0B,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAxC,sBAAsB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAMnD,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;+BACE,aAAa,EAAA,UAAA,EACX,IAAI,EAAA,OAAA,EACP,CAAC,WAAW,EAAE,eAAe,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,EAAA,eAAA,EAGhE,uBAAuB,CAAC,MAAM,QACzC,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAA,QAAA,EAAA,ygDAAA,EAAA,MAAA,EAAA,CAAA,+1EAAA,CAAA,EAAA;;0BAQtB;;0BAAY;;sBAHxB;;sBACA,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;MEzBd,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,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MCCY,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,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MCCY,oBAAoB,CAAA;wGAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MCWY,WAAW,CAAA;IACb,YAAY,GAAG,KAAK;IACpB,SAAS,GAA0B,WAAW;wGAF5C,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBxB,urBAoBA,EAAA,MAAA,EAAA,CAAA,6nCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDZY,OAAO,oFAAE,cAAc,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAQtB,WAAW,EAAA,UAAA,EAAA,CAAA;kBAXvB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAAA,UAAA,EACZ,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,EAAE,cAAc,CAAC,EAAA,eAAA,EAGjB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,KAAK,EAAE,mBAAmB;AAC3B,qBAAA,EAAA,QAAA,EAAA,urBAAA,EAAA,MAAA,EAAA,CAAA,6nCAAA,CAAA,EAAA;;sBAGA;;sBACA;;;MEZU,qCAAqC,CAAA;wGAArC,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAArC,qCAAqC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAArC,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBAJjD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mCAAmC;AAC7C,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MCCY,oCAAoC,CAAA;wGAApC,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApC,oCAAoC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAApC,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAJhD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kCAAkC;AAC5C,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MCCY,+BAA+B,CAAA;wGAA/B,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAJ3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MCMY,sBAAsB,CAAA;IACxB,KAAK,GAAG,EAAE;AACV,IAAA,QAAQ;AACR,IAAA,WAAW;IACX,IAAI,GAAgB,IAAI;wGAJtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXnC,gVAWA,EAAA,MAAA,EAAA,CAAA,8zBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDLY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAKN,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;+BACE,2BAA2B,EAAA,UAAA,EACzB,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,CAAC,EAAA,eAAA,EAGD,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,gVAAA,EAAA,MAAA,EAAA,CAAA,8zBAAA,CAAA,EAAA;;sBAG9C;;sBACA;;sBACA;;sBACA;;;METU,iCAAiC,CAAA;wGAAjC,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAjC,iCAAiC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAjC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAJ7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MCYY,iBAAiB,CAAA;IACnB,MAAM,GAAwB,OAAO;IACrC,OAAO,GAAsB,IAAI;AAEK,IAAA,SAAS;AACP,IAAA,WAAW;AAE5D,IAAA,cAAc;AAEd,IAAA,eAAe;wGATJ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAId,+BAA+B,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAC/B,iCAAiC,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACjC,oCAAoC,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEpC,qCAAqC,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzBrD,2qCAiCA,EAAA,MAAA,EAAA,CAAA,8wEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDrBY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAKN,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;+BACE,qBAAqB,EAAA,UAAA,EACnB,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,CAAC,EAAA,eAAA,EAGD,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2qCAAA,EAAA,MAAA,EAAA,CAAA,8wEAAA,CAAA,EAAA;;sBAG9C;;sBACA;;sBAEA,YAAY;uBAAC,+BAA+B;;sBAC5C,YAAY;uBAAC,iCAAiC;;sBAC9C,YAAY;uBAAC,oCAAoC;;sBAEjD,YAAY;uBAAC,qCAAqC;;;AErBrD,SAAS,aAAa,CAAC,CAAqB,EAAA;IAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;IAC1B,QAAQ,CAAC;AACP,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,GAAG;AACZ,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,0BAA0B;AACnC,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,oDAAoD;AAC7D,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,8EAA8E;AACvF,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,4BAA4B;AACrC,QAAA;AACE,YAAA,OAAO,CAAC;;AAEd;MAMa,oBAAoB,CAAA;IACvB,OAAO,GAA8B,IAAI;IAEjD,IAAa,MAAM,CAAC,CAAwC,EAAA;QAC1D,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG,CAAC;IAChE;IAEmD,IAAI,GAAG,EAAE;AAC5D,IAAA,IAAwD,WAAW,GAAA;AACjE,QAAA,OAAO,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI;IAC1D;wGAVW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,2BAAA,EAAA,WAAA,EAAA,qCAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;sBAIE;;sBAIA,WAAW;uBAAC,2BAA2B;;sBACvC,WAAW;uBAAC,qCAAqC;;;MCjBvC,mBAAmB,GAAG,IAAI,cAAc,CAAuB,qBAAqB;;ACMjG,MAAM,aAAa,GAAG,IAAI,GAAG,CAAqB;IAChD,SAAS;IACT,SAAS;IACT,SAAS;IACT,OAAO;IACP,MAAM;AACP,CAAA,CAAC;MA0BW,YAAY,CAAA;IACd,SAAS,GAAG,KAAK,CAAgB,IAAI,iFAAI,KAAK,EAAE,YAAY,EAAA,CAAG;IAC/D,OAAO,GAAG,KAAK,CAAgB,IAAI,+EAAI,KAAK,EAAE,IAAI,EAAA,CAAG;IACrD,SAAS,GAAG,KAAK,CAAgB,IAAI,iFAAI,KAAK,EAAE,MAAM,EAAA,CAAG;AACzD,IAAA,IAAI,GAAG,KAAK,CAAoB,IAAI,2EAAC;AACrC,IAAA,OAAO,GAAG,KAAK,CAAe,KAAK,8EAAC;AACpC,IAAA,UAAU,GAAG,KAAK,CAAkB,OAAO,iFAAC;AAC5C,IAAA,KAAK,GAAG,KAAK,CAAkB,SAAS,4EAAC;AACzC,IAAA,KAAK,GAAG,KAAK,CAAU,IAAI,4EAAC;IAC5B,YAAY,GAAG,KAAK,CAAU,KAAK,oFAAI,KAAK,EAAE,SAAS,EAAA,CAAG;IAC1D,aAAa,GAAG,KAAK,CAAU,KAAK,qFAAI,KAAK,EAAE,UAAU,EAAA,CAAG;IAE5D,aAAa,GAAG,MAAM,EAAW;AAGzB,IAAA,MAAM;IAEN,KAAK,GAAG,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACvD,IAAA,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC;AAClC,IAAA,QAAQ,GAAG,QAAQ,CAAC,oBAAoB,CAAC;AAEzC,IAAA,YAAY,GAAG,MAAM,CAAC,KAAK,mFAAC;AAC5B,IAAA,WAAW,GAAG,MAAM,CAAC,KAAK,kFAAC;AAEnC,IAAA,EAAE,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,MAAM,yEAAC;IAClD,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;AAE9E,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAChC,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE;AAC/E,IAAA,CAAC,+EAAC;AAEO,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;QAC/B,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AAC1D,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE;AAC5B,IAAA,CAAC,8EAAC;AAEO,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;QAChC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;AACnD,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;AACjC,IAAA,CAAC,+EAAC;AAEO,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACpC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,QAAQ;AAAE,YAAA,OAAO,IAAI;AAC7C,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AAC7C,QAAA,OAAO,CAAC,GAAG,IAAI,GAAG,KAAK,QAAQ,GAAG,IAAI,GAAG,GAAG;AAC9C,IAAA,CAAC,mFAAC;AAEO,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAChC,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AAC7C,QAAA,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,QAAQ;AAAE,YAAA,OAAO,QAAQ;AAC7C,QAAA,OAAO,aAAa,CAAC,GAAG,CAAC,GAAyB,CAAC,GAAI,GAA0B,GAAG,QAAQ;AAC9F,IAAA,CAAC,+EAAC;AAEM,IAAA,QAAQ,GAA6B,MAAK,EAAE,CAAC;AAC7C,IAAA,SAAS,GAAe,MAAK,EAAE,CAAC;AAExC,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,IAAI,IAAI,CAAC,KAAK;gBAAE;YAChB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;AAC5C,QAAA,CAAC,CAAC;IACJ;IAEO,cAAc,GAAA;QACnB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AAErB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE;AACjC,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AACvB,YAAA,IAAI,CAAC,UAAU;AAAE,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9C;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACvB,IAAI,CAAC,SAAS,EAAE;YAChB;QACF;AAEA,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,IAAI,CAAC,SAAS,EAAE;IAClB;AAEO,IAAA,eAAe,CAAC,KAAoB,EAAA;QACzC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AAErB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC;YACrC;QACF;AAEA,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YAC9C,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,cAAc,EAAE;QACvB;IACF;IAEO,MAAM,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YAC1B;QACF;QACA,IAAI,CAAC,SAAS,EAAE;IAClB;IAEO,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE;IACpC;AAEA,IAAA,UAAU,CAAC,KAAqB,EAAA;QAC9B,IAAI,IAAI,CAAC,KAAK;YAAE;QAChB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;IAChC;AAEA,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEA,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;IAClC;AAEA,IAAA,gBAAgB,CAAC,EAA4B,EAAA;AAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;wGA7HW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,8BAAA,EAAA,mBAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,gBAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,SAAA,EAlBZ;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,YAAY,CAAC;AAC3C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3CH,6oBAwBA,EAAA,MAAA,EAAA,CAAA,w8HAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FD+Ba,YAAY,EAAA,UAAA,EAAA,CAAA;kBAxBxB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,cACb,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,kBAAkB,CAAC;AAC3C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EAAA,IAAA,EACK;AACJ,wBAAA,KAAK,EAAE,oBAAoB;AAC3B,wBAAA,kBAAkB,EAAE,QAAQ;AAC5B,wBAAA,mBAAmB,EAAE,YAAY;AACjC,wBAAA,qBAAqB,EAAE,WAAW;AAClC,wBAAA,wBAAwB,EAAE,cAAc;AACxC,wBAAA,sBAAsB,EAAE,4BAA4B;AACpD,wBAAA,qBAAqB,EAAE,2BAA2B;AAClD,wBAAA,gCAAgC,EAAE,gBAAgB;AACnD,qBAAA,EAAA,QAAA,EAAA,6oBAAA,EAAA,MAAA,EAAA,CAAA,w8HAAA,CAAA,EAAA;;sBAgBA,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;MEnB1B,iBAAiB,CAAA;AACnB,IAAA,GAAG,GAAG,KAAK,CAAmB,IAAI,0EAAC;AACnC,IAAA,WAAW,GAAG,KAAK,CAAmB,MAAM,CAAC,EAAE,kFAAC;IAChD,SAAS,GAAG,KAAK,CAAgB,IAAI,iFAAI,KAAK,EAAE,MAAM,EAAA,CAAG;IACzD,aAAa,GAAG,KAAK,CAAU,KAAK,qFAAI,KAAK,EAAE,UAAU,EAAA,CAAG;AAC5D,IAAA,WAAW,GAAG,KAAK,CAAwB,UAAU,kFAAC;IACtD,SAAS,GAAG,KAAK,CAAgB,IAAI,iFAAI,KAAK,EAAE,YAAY,EAAA,CAAG;IAE/D,WAAW,GAAG,MAAM,EAAW;AAGvB,IAAA,WAAW;AAEX,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,QAAQ,GAAG,QAAQ,CAAC,qBAAqB,CAAC;AAC1C,IAAA,WAAW,GAAG,MAAM,CAAC,KAAK,kFAAC;AAC3B,IAAA,aAAa,GAAG,MAAM,CAAU,IAAI,oFAAC;AACrC,IAAA,aAAa,GAAG,MAAM,CAAC,CAAC,oFAAC;AAEjC,IAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,2EAAC;AACxD,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,+EAAC;AAErE,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AACnC,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE;QAC/C,QAAQ,KAAK;AACX,YAAA,KAAK,IAAI;AACP,gBAAA,OAAO,wBAAwB;AACjC,YAAA,KAAK,IAAI;AACP,gBAAA,OAAO,wBAAwB;AACjC,YAAA,KAAK,IAAI;AACP,gBAAA,OAAO,wBAAwB;AACjC,YAAA;AACE,gBAAA,OAAO,KAAK;;AAElB,IAAA,CAAC,kFAAC;AAEM,IAAA,QAAQ,GAA6B,MAAK,EAAE,CAAC;AAC7C,IAAA,SAAS,GAAe,MAAK,EAAE,CAAC;IAExC,kBAAkB,GAAA;QAChB,IAAI,CAAC,iBAAiB,EAAE;QAExB,IAAI,CAAC,WAAW,EAAE;AACf,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC9C;AAEO,IAAA,UAAU,CAAC,KAAc,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC;IACxD;AAEO,IAAA,MAAM,CAAC,KAAmB,EAAA;QAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE;YAAE;AAEzC,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE;QAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;AACjC,YAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AACxB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;QAClC;QAEA,IAAI,CAAC,SAAS,EAAE;QAChB,IAAI,CAAC,iBAAiB,EAAE;IAC1B;AAEO,IAAA,WAAW,CAAC,KAAmB,EAAA;QACpC,IAAI,CAAC,aAAa,EAAE;QAEpB,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE;YAAE,OAAO,CAAC,CAAC;AAElD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE;QACpC,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QAE9B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;AAErC,QAAA,OAAO,MAAM,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC;IAEO,aAAa,CAAC,KAAoB,EAAE,OAAqB,EAAA;QAC9D,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AAErB,QAAA,QAAQ,KAAK,CAAC,GAAG;AACf,YAAA,KAAK,YAAY;AACjB,YAAA,KAAK,WAAW;gBACd,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACtB;AACF,YAAA,KAAK,WAAW;AAChB,YAAA,KAAK,SAAS;gBACZ,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACtB;AACF,YAAA,KAAK,GAAG;AACR,YAAA,KAAK,OAAO;gBACV,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBACpB;AACF,YAAA;gBACE;;IAEN;IAEO,aAAa,GAAA;QAClB,IAAI,CAAC,SAAS,EAAE;IAClB;AAEA,IAAA,UAAU,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,iBAAiB,EAAE;IAC1B;AAEA,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEA,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;QAChC,IAAI,CAAC,iBAAiB,EAAE;IAC1B;AAEA,IAAA,gBAAgB,CAAC,EAA4B,EAAA;AAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;IAEQ,IAAI,CAAC,OAAqB,EAAE,SAAiB,EAAA;AACnD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE;QACpC,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE;QAErB,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;AAC5C,QAAA,MAAM,SAAS,GAAG,CAAC,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;AAC5E,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;AAE/B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,EAAE;IACd;IAEQ,aAAa,GAAA;QACnB,IAAI,CAAC,aAAa,EAAE;QACpB,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IACjF;IAEQ,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC;IACjD;wGAjJW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,YAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,8BAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,iCAAA,EAAA,eAAA,EAAA,EAAA,cAAA,EAAA,0BAAA,EAAA,EAAA,SAAA,EArBjB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AACjD,aAAA;SACF,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAqBiC,YAAY,iDC5DhD,kBACA,EAAA,MAAA,EAAA,CAAA,6PAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDiDa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBA3B7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,cACnB,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AAChD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AACjD,yBAAA;qBACF,EAAA,IAAA,EACK;AACJ,wBAAA,KAAK,EAAE,0BAA0B;AACjC,wBAAA,IAAI,EAAE,YAAY;AAClB,wBAAA,yBAAyB,EAAE,eAAe;AAC1C,wBAAA,sBAAsB,EAAE,4BAA4B;AACpD,wBAAA,mBAAmB,EAAE,qBAAqB;AAC1C,wBAAA,yBAAyB,EAAE,eAAe;AAC1C,wBAAA,mCAAmC,EAAE,eAAe;AACrD,qBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,6PAAA,CAAA,EAAA;;sBAYA,eAAe;uBAAC,UAAU,CAAC,MAAM,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;;;MEtD3D,6BAA6B,CAAA;wGAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAJzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MC+BY,qBAAqB,CAAA;AACf,IAAA,WAAW,GAAG,MAAM,CAA8B,mBAAmB,EAAE;AACtF,QAAA,QAAQ,EAAE,IAAI;AACf,KAAA,CAAC;IACe,wBAAwB,GAAG,MAAM,CAChD,iCAAiC,EACjC,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB;AACgB,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAEvC,IAAA,QAAQ,GAAG,KAAK,CAAuB,SAAS,+EAAC;AACjD,IAAA,QAAQ,GAAG,KAAK,CAAgB,IAAI,+EAAC;AACrC,IAAA,UAAU,GAAG,KAAK,CAAgC,IAAI,iFAAC;AACvD,IAAA,UAAU,GAAG,KAAK,CAA4B,KAAK,iFAAC;AACpD,IAAA,cAAc,GAAG,KAAK,CAAC,CAAC,qFAAC;AACzB,IAAA,YAAY,GAAG,KAAK,CAAC,EAAE,mFAAC;AAExB,IAAA,KAAK,GAAG,KAAK,CAAqB,QAAQ,4EAAC;IAC3C,SAAS,GAAG,KAAK,CAAgB,IAAI,iFAAI,KAAK,EAAE,YAAY,EAAA,CAAG;AAC/D,IAAA,UAAU,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,YAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,GAAG;IAGtE,SAAS,GAAG,8BAA8B;IAE5C,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,8EAAC;IAE5B,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,EAAE,eAAe,IAAI,OAAO;IAE5E,cAAc,GAAmB,IAAI,CAAC;UACnD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;AAC3C,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;SAC1C;AACH,UAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;IAEhB,eAAe,GAC9B,OAAO,IAAI,KAAK,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,IAAI,IAAI;AAE/F,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE;AACnC,YAAA,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,MAAK;gBAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,CAAC,EAAE,MAAM,CAAC;AAEV,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAK;AAC7B,gBAAA,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC;AACtC,YAAA,CAAC,CAAC;QACJ;IACF;AAES,IAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,yFAAC;AACpE,IAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,0FAAC;AACtE,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,uFAAC;AAEpE,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAK;QACzC,OAAO,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI;AAClE,IAAA,CAAC,wFAAC;AAEO,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAClC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,gBAAgB,IAAI,OAAO;QACtE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;AAC/B,IAAA,CAAC,iFAAC;AAEO,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAK;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,EAAE,OAAO,IAAI,IAAI;QAC9D,OAAO,CAAA,EAAG,OAAO,CAAA,wBAAA,CAA0B;AAC7C,IAAA,CAAC,wFAAC;AAEO,IAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAK;AAC3C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AAC9D,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;AAE3D,QAAA,IAAI,GAAG,IAAI,KAAK,EAAE;YAChB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;QAC9B;AAEA,QAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;AACvB,IAAA,CAAC,0FAAC;AAEO,IAAA,kBAAkB,GAAG,QAAQ,CAAqB,MAAK;QAC9D,IAAI,CAAC,OAAO,EAAE;QACd,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE;QACzC,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;AAC5C,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI;YACF,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AACjD,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,QAAQ,EAAE,QAAQ;AACnB,aAAA,CAAC;AAEF,YAAA,MAAM,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC;YACpF,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,KAAK,IAAI,EAAE;AAE1E,YAAA,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACtB,gBAAA,OAAO,IAAI;YACb;YAEA,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;YAEtD,OAAO;gBACL,IAAI;gBACJ,QAAQ;AACR,gBAAA,SAAS,EAAE,YAAY,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC;aACpD;QACH;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,IAAI;QACb;AACF,IAAA,CAAC,yFAAC;AAEO,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;AACxC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE;QACzC,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,IAAI,OAAO,CAAC,SAAS,EAAE;AACrB,YAAA,OAAO,IAAI;QACb;QAEA,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,EAAE;QACjD,OAAO,OAAO,CAAC,IAAI,GAAG,KAAK,IAAI,OAAO,CAAC,IAAI,IAAI,GAAG;AACpD,IAAA,CAAC,uFAAC;AAEO,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;AAC5C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE;QAE9B,IAAI,IAAI,KAAK,IAAI;AAAE,YAAA,OAAO,IAAI;QAC9B,IAAI,IAAI,KAAK,KAAK;AAAE,YAAA,OAAO,KAAK;AAEhC,QAAA,OAAO,IAAI,CAAC,gBAAgB,EAAE;AAChC,IAAA,CAAC,2FAAC;AAEO,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,mFAAC;AAExD,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM;AACrC,QAAA,CAAA,MAAA,EAAS,IAAI,CAAC,QAAQ,EAAE,CAAA,CAAE;QAC1B,IAAI,CAAC,oBAAoB,EAAE,GAAG,iBAAiB,GAAG,EAAE;AACrD,KAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;AAEO,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;QACjC,IAAI,IAAI,CAAC,UAAU,EAAE;AAAE,YAAA,OAAO,IAAI;QAElC,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE;AACjC,IAAA,CAAC,gFAAC;AAEO,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAK;QACzC,IAAI,IAAI,CAAC,UAAU,EAAE;AAAE,YAAA,OAAO,IAAI;QAElC,IAAI,CAAC,cAAc,EAAE;QACrB,OAAO,IAAI,CAAC,mBAAmB,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC/D,IAAA,CAAC,wFAAC;IAEM,iBAAiB,GAAA;AACvB,QAAA,MAAM,KAAK,GAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA,OAAA,EAAU,IAAI,CAAC,QAAQ,EAAE,CAAA,CAAE,CAAC,CAAC;AAErE,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,SAAS,EAAE;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC/D,IAAI,QAAQ,EAAE;AACZ,gBAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;YACtB;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;YAC/B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC1C;AAEA,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IAC1B;AAEQ,IAAA,gBAAgB,CAAC,KAAkB,EAAA;AACzC,QAAA,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE;AAC3C,YAAA,OAAO,IAAI;QACb;QAEA,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AACpC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAE3D,MAAM,QAAQ,GAAG,MAAM;AACvB,QAAA,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ;AAE5B,QAAA,IAAI,MAAM,GAAG,QAAQ,EAAE;AACrB,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;QACvC;AAEA,QAAA,IAAI,MAAM,GAAG,MAAM,EAAE;AACnB,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;gBAC3C,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;AACvC,aAAA,CAAC;QACJ;AAEA,QAAA,IAAI,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE;AACvB,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE;gBACzC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AACnC,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACvC,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,MAAM,EAAE,SAAS;AAClB,SAAA,CAAC;QAEF,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;AACtC,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE;AACxC,gBAAA,IAAI,EAAE,SAAS;AAChB,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;QAC/B,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;AAC5C,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE;AAC5C,gBAAA,IAAI,EAAE,SAAS;AAChB,aAAA,CAAC;QACJ;AAEA,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE;AACvC,YAAA,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AAC3B,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,MAAM,EAAE,SAAS;aAClB,CAAC;AACH,SAAA,CAAC;IACJ;IAEQ,UAAU,CAAC,KAAW,EAAE,OAAmC,EAAA;AACjE,QAAA,IAAI;AACF,YAAA,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC1E;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,KAAK,CAAC,cAAc,EAAE;QAC/B;IACF;IAEQ,SAAS,CAAC,GAAW,EAAE,MAAgC,EAAA;QAC7D,MAAM,OAAO,GAAG,CAAA,EAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE;AAEpD,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;AAC9D,YAAA,IAAI,UAAU,IAAI,UAAU,KAAK,OAAO,EAAE;AACxC,gBAAA,OAAO,UAAU;YACnB;QACF;QAEA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC;IAC5C;IAEQ,iBAAiB,CAAC,GAAW,EAAE,MAAgC,EAAA;AACrE,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAE7D,MAAM,IAAI,GAAG;AACX,cAAE;AACE,gBAAA,eAAe,EAAE,QAAQ;AACzB,gBAAA,gBAAgB,EAAE,SAAS;AAC3B,gBAAA,aAAa,EAAE,SAAS;AACxB,gBAAA,aAAa,EAAE,SAAS;AACxB,gBAAA,YAAY,EAAE,cAAc;AAC5B,gBAAA,UAAU,EAAE,0BAA0B;AACtC,gBAAA,cAAc,EAAE,aAAa;gBAC7B,qBAAqB,EAAE,YAAY,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA,IAAA,CAAM;gBACjE,mBAAmB,EAAE,YAAY,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA,EAAA,CAAI;gBAC3D,kBAAkB,EAAE,iBAAiB,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA,CAAE;gBAC7D,sBAAsB,EAAE,kBAAkB,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA,CAAE;gBAClE,iBAAiB,EAAE,YAAY,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA,CAAE;AACxD;AACH,cAAE;AACE,gBAAA,eAAe,EAAE,QAAQ;AACzB,gBAAA,gBAAgB,EAAE,SAAS;AAC3B,gBAAA,aAAa,EAAE,MAAM;AACrB,gBAAA,aAAa,EAAE,MAAM;AACrB,gBAAA,YAAY,EAAE,gBAAgB;AAC9B,gBAAA,UAAU,EAAE,6BAA6B;AACzC,gBAAA,cAAc,EAAE,eAAe;gBAC/B,qBAAqB,EAAE,QAAQ,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA,QAAA,CAAU;gBACjE,mBAAmB,EAAE,QAAQ,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA,MAAA,CAAQ;gBAC3D,kBAAkB,EAAE,iBAAiB,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA,CAAE;gBAC7D,sBAAsB,EAAE,qBAAqB,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA,CAAE;gBACrE,iBAAiB,EAAE,WAAW,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA,CAAE;aACvD;AAEL,QAAA,OAAO,IAAI,CAAC,GAAwB,CAAC,IAAI,GAAG;IAC9C;IAEQ,iBAAiB,CAAC,CAAO,EAAE,CAAO,EAAA;QACxC,QACE,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE;AACnC,YAAA,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;YAC7B,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;IAE/B;AAEQ,IAAA,mBAAmB,CAAC,OAAe,EAAA;AACzC,QAAA,QAAQ,OAAO,CAAC,WAAW,EAAE;AAC3B,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,CAAC;AACV,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,CAAC;AACV,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,CAAC;AACV,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,CAAC;AACV,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,CAAC;AACV,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,CAAC;AACV,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,CAAC;AACV,YAAA;gBACE,OAAO,CAAC,CAAC;;IAEf;AAEQ,IAAA,UAAU,CAAC,KAAc,EAAE,QAAgB,EAAE,GAAW,EAAE,GAAW,EAAA;AAC3E,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;AAC7B,QAAA,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AACzB,YAAA,OAAO,QAAQ;QACjB;QAEA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC;IAC1D;AAEQ,IAAA,SAAS,CAAC,KAAoC,EAAA;QACpD,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;AACjC,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,KAAK,YAAY,IAAI,EAAE;AACzB,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK;QACrD;AAEA,QAAA,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;AAC9B,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,MAAM;IACvD;AAEQ,IAAA,SAAS,CAAC,KAAc,EAAA;QAC9B,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;IACnC;wGAxVW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpClC,wkBAiBA,EAAA,MAAA,EAAA,CAAA,yvFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDcY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAKN,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBARjC,SAAS;+BACE,yBAAyB,EAAA,UAAA,EACvB,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,CAAC,EAAA,eAAA,EAGD,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,wkBAAA,EAAA,MAAA,EAAA,CAAA,yvFAAA,CAAA,EAAA;;sBAuB9C,WAAW;uBAAC,OAAO;;;ME1BT,aAAa,CAAA;AACf,IAAA,IAAI,GAAG,KAAK,CAAoB,IAAI,2EAAC;AACrC,IAAA,KAAK,GAAG,KAAK,CAAqB,QAAQ,4EAAC;AAC3C,IAAA,OAAO,GAAG,KAAK,CAAuB,MAAM,8EAAC;AAE7C,IAAA,GAAG,GAAG,KAAK,CAAgB,IAAI,0EAAC;AAChC,IAAA,GAAG,GAAG,KAAK,CAAgB,IAAI,0EAAC;AAChC,IAAA,IAAI,GAAG,KAAK,CAAgB,IAAI,2EAAC;AACjC,IAAA,QAAQ,GAAG,KAAK,CAAgB,IAAI,+EAAC;AAErC,IAAA,KAAK,GAAG,KAAK,CAA0B,SAAS,4EAAC;IACjD,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACvD,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE3D,IAAA,UAAU,GAAG,KAAK,CAA0B,QAAQ,iFAAC;IACrD,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAExD,IAAA,MAAM,GAAG,KAAK,CAA2B,IAAI,6EAAC;AAC9C,IAAA,SAAS,GAAG,KAAK,CAAyB,OAAO,gFAAC;IAElD,SAAS,GAAG,KAAK,CAAgB,IAAI,iFAAI,KAAK,EAAE,YAAY,EAAA,CAAG;AAC/D,IAAA,UAAU,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,YAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,GAAG;IAGtE,SAAS,GAAG,qBAAqB;AAEnC,IAAA,WAAW,GAAG,MAAM,CAAC,KAAK,kFAAC;IAE3B,YAAY,GAAG,IAAI,GAAG,CAA2B;QAChE,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,MAAM;AACP,KAAA,CAAC;AAEF,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,GAAG,EAAE;AACV,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7B,QAAA,CAAC,CAAC;IACJ;AAES,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,oFAAC;AAC1D,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,oFAAC;AAC1D,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,qFAAC;AAC5D,IAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,yFAAC;AACpE,IAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,0FAAC;AAEtE,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;AACxC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAC1C,QAAA,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE;AAEvD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE;AAClC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,EAAE;QAEpB,MAAM,KAAK,GAAG;aACX,KAAK,CAAC,KAAK;aACX,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;aACzB,MAAM,CAAC,OAAO,CAAC;QAElB,IAAI,CAAC,KAAK,CAAC,MAAM;AAAE,YAAA,OAAO,EAAE;AAC5B,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE;AAEjE,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;AACzC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;QAE5C,OAAO,CAAA,EAAG,KAAK,CAAA,EAAG,IAAI,EAAE,CAAC,WAAW,EAAE;AACxC,IAAA,CAAC,uFAAC;AAEO,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;QACjC,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,KAAK;AAEhC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,QAAA,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,SAAS;AAAE,YAAA,OAAO,KAAK;AAE/D,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACtD,IAAA,CAAC,gFAAC;AAEO,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;QAClC,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,KAAK;AAEhC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAExC,QAAA,IAAI,CAAC,QAAQ;AAAE,YAAA,OAAO,KAAK;QAC3B,IAAI,OAAO,KAAK,QAAQ;AAAE,YAAA,OAAO,IAAI;QACrC,IAAI,OAAO,KAAK,SAAS;AAAE,YAAA,OAAO,KAAK;AAEvC,QAAA,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;AAC1B,IAAA,CAAC,iFAAC;AAEO,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QACnC,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,KAAK;QAChC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAChD,IAAA,CAAC,kFAAC;AAEO,IAAA,aAAa,GAAG,QAAQ,CAC/B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAA8B,CAAC,oFACvE;AAEQ,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAClC,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,GAAG,cAAc,GAAG,CAAA,MAAA,EAAS,IAAI,CAAC,KAAK,EAAE,EAAE;AACxE,IAAA,CAAC,iFAAC;AAEO,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;AACxC,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;AAC3D,IAAA,CAAC,uFAAC;AAEO,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAE5C,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK;AACtB,kBAAE;kBACA,qCAAqC;QAC3C;QAEA,QAAQ,MAAM;AACZ,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,4BAA4B;AACrC,YAAA,KAAK,IAAI;AACP,gBAAA,OAAO,0BAA0B;AACnC,YAAA,KAAK,IAAI;AACP,gBAAA,OAAO,0BAA0B;AACnC,YAAA,KAAK,IAAI;AACP,gBAAA,OAAO,0BAA0B;AACnC,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,4BAA4B;AACrC,YAAA;AACE,gBAAA,OAAO,MAAM;;AAEnB,IAAA,CAAC,qFAAC;AAEO,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM;AACpC,QAAA,CAAA,KAAA,EAAQ,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE;AACrB,QAAA,CAAA,MAAA,EAAS,IAAI,CAAC,KAAK,EAAE,CAAA,CAAE;QACvB,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,WAAW,EAAE,GAAG,gBAAgB,GAAG,EAAE;QAC1C,IAAI,CAAC,QAAQ,EAAE,GAAG,aAAa,GAAG,EAAE;QACpC,IAAI,CAAC,OAAO,EAAE,GAAG,YAAY,GAAG,EAAE;QAClC,IAAI,CAAC,QAAQ,EAAE,GAAG,WAAW,GAAG,EAAE;AACnC,KAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;AAEO,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;QACvC,IAAI,IAAI,CAAC,UAAU,EAAE;AAAE,YAAA,OAAO,IAAI;AAElC,QAAA,QACE,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,QAAQ;AAEZ,IAAA,CAAC,sFAAC;AAEO,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;QAChC,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,OAAO,IAAI;AACrD,QAAA,OAAO,KAAK;AACd,IAAA,CAAC,+EAAC;IAEF,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;IAC7B;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;IAC5B;AAEQ,IAAA,SAAS,CAAC,KAAc,EAAA;QAC9B,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;IACnC;wGA7KW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/B1B,0gHAoGA,EAAA,MAAA,EAAA,CAAA,+wPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED1EY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAKN,aAAa,EAAA,UAAA,EAAA,CAAA;kBARzB,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,CAAC,EAAA,eAAA,EAGD,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0gHAAA,EAAA,MAAA,EAAA,CAAA,+wPAAA,CAAA,EAAA;;sBA0B9C,WAAW;uBAAC,OAAO;;;MEjBT,qBAAqB,CAAA;AACvB,IAAA,kBAAkB,GAAyB,MAAM,CAAC,mBAAmB,CAAC;AACtE,IAAA,IAAI,GAAG,KAAK,CAAoB,IAAI,2EAAC;AACrC,IAAA,KAAK,GAAG,KAAK,CAAqB,QAAQ,4EAAC;AAC3C,IAAA,OAAO,GAAG,KAAK,CAAuB,MAAM,8EAAC;AAE7C,IAAA,GAAG,GAAG,KAAK,CAAgB,IAAI,0EAAC;AAChC,IAAA,GAAG,GAAG,KAAK,CAAgB,IAAI,0EAAC;AAChC,IAAA,IAAI,GAAG,KAAK,CAAgB,IAAI,2EAAC;AACjC,IAAA,QAAQ,GAAG,KAAK,CAAgB,IAAI,+EAAC;AAErC,IAAA,KAAK,GAAG,KAAK,CAA0B,SAAS,4EAAC;IACjD,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACvD,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE3D,IAAA,UAAU,GAAG,KAAK,CAA0B,QAAQ,iFAAC;IACrD,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAExD,IAAA,MAAM,GAAG,KAAK,CAA2B,IAAI,6EAAC;AAC9C,IAAA,SAAS,GAAG,KAAK,CAAyB,OAAO,gFAAC;IAElD,SAAS,GAAG,KAAK,CAAgB,IAAI,iFAAI,KAAK,EAAE,YAAY,EAAA,CAAG;AAC/D,IAAA,UAAU,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,YAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,GAAG;AAEhF,IAAA,QAAQ,GAAG,KAAK,CAAuB,SAAS,+EAAC;AACjD,IAAA,iBAAiB,GAAG,KAAK,CAAgB,IAAI,wFAAC;AAC9C,IAAA,QAAQ,GAAG,KAAK,CAAgB,IAAI,+EAAC;AACrC,IAAA,UAAU,GAAG,KAAK,CAAgC,IAAI,iFAAC;AACvD,IAAA,UAAU,GAAG,KAAK,CAA4B,MAAM,iFAAC;AACrD,IAAA,cAAc,GAAG,KAAK,CAAC,CAAC,qFAAC;AACzB,IAAA,YAAY,GAAG,KAAK,CAAC,EAAE,mFAAC;AAExB,IAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAK;AAC1C,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CACtC,CAAA,kCAAA,EAAqC,IAAI,CAAC,QAAQ,EAAE,CAAA,CAAE,CACvD;AACH,IAAA,CAAC,yFAAC;wGArCS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtClC,2oCAuCA,EAAA,MAAA,EAAA,CAAA,sPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDVI,aAAa,gQACb,qBAAqB,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,OAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,uBAAuB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,6BAA6B,EAAA,QAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAMpB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAbjC,SAAS;+BACE,yBAAyB,EAAA,UAAA,EACvB,IAAI,EAAA,OAAA,EACP;wBACP,aAAa;wBACb,qBAAqB;wBACrB,uBAAuB;wBACvB,6BAA6B;qBAC9B,EAAA,eAAA,EAGgB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2oCAAA,EAAA,MAAA,EAAA,CAAA,sPAAA,CAAA,EAAA;;;MEdpC,kBAAkB,CAAA;AACpB,IAAA,KAAK,GAAG,KAAK,CAA2B,EAAE,4EAAC;IAC3C,GAAG,GAAG,KAAK,CAAC,CAAC,2EAAI,SAAS,EAAE,eAAe,EAAA,CAAG;IAC9C,YAAY,GAAG,KAAK,CAAC,KAAK,oFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE5D,IAAA,IAAI,GAAG,KAAK,CAAoB,IAAI,2EAAC;AACrC,IAAA,KAAK,GAAG,KAAK,CAAqB,QAAQ,4EAAC;AAC3C,IAAA,OAAO,GAAG,KAAK,CAA4B,IAAI,8EAAC;AAEhD,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACpC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;AACnC,IAAA,CAAC,mFAAC;AAEO,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC;AACtE,IAAA,CAAC,kFAAC;AAEO,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,qFAAC;wGAlBrD,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtB/B,wtCAwCA,EAAA,MAAA,EAAA,CAAA,g6EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDvBY,qBAAqB,oXAAE,aAAa,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,KAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,QAAA,EAAA,WAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAKnC,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;+BACE,sBAAsB,EAAA,UAAA,EACpB,IAAI,EAAA,OAAA,EACP,CAAC,qBAAqB,EAAE,aAAa,CAAC,EAAA,eAAA,EAG9B,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,wtCAAA,EAAA,MAAA,EAAA,CAAA,g6EAAA,CAAA,EAAA;;;MEiBpC,qBAAqB,CAAA;AACvB,IAAA,KAAK,GAAG,KAAK,CAA8B,EAAE,4EAAC;AAE9C,IAAA,IAAI,GAAG,KAAK,CAAoB,IAAI,2EAAC;AACrC,IAAA,KAAK,GAAG,KAAK,CAAqB,QAAQ,4EAAC;AAC3C,IAAA,OAAO,GAAG,KAAK,CAA4B,IAAI,8EAAC;IAEhD,UAAU,GAAG,KAAK,CAAC,CAAC,kFAAI,SAAS,EAAE,eAAe,EAAA,CAAG;AACrD,IAAA,SAAS,GAAG,KAAK,CAAiC,YAAY,gFAAC;IAE/D,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,aAAa,GAAG,KAAK,CAAC,IAAI,qFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE5D,IAAA,UAAU,GAAG,KAAK,CAAC,iBAAiB,iFAAC;AAE3B,IAAA,UAAU,GAAG,IAAI,YAAY,EAAoC;AACjE,IAAA,UAAU,GAAG,IAAI,YAAY,EAAW;AAE3D,IAAA,WAAW,CAAC,IAA+B,EAAE,KAAa,EAAE,OAAuB,EAAA;QACjF,IAAI,IAAI,CAAC,QAAQ;YAAE;QAEnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAErC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QACxB;IACF;wGA1BW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrClC,20DA2DA,EAAA,MAAA,EAAA,CAAA,ohEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDhCI,cAAc,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACd,8BAA8B,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC9B,4BAA4B,EAAA,QAAA,EAAA,oCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC5B,kBAAkB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,cAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,aAAa,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,KAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,QAAA,EAAA,WAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAMJ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAdjC,SAAS;+BACE,yBAAyB,EAAA,UAAA,EACvB,IAAI,EAAA,OAAA,EACP;wBACP,cAAc;wBACd,8BAA8B;wBAC9B,4BAA4B;wBAC5B,kBAAkB;wBAClB,aAAa;qBACd,EAAA,eAAA,EAGgB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,20DAAA,EAAA,MAAA,EAAA,CAAA,ohEAAA,CAAA,EAAA;;sBAiB9C;;sBACA;;;MEhCU,kBAAkB,GAAG,IAAI,cAAc,CAAsB,oBAAoB;;ACnB9F,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAkB;IAClD,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,OAAO;IACP,MAAM;AACP,CAAA,CAAC;AAEI,SAAU,mBAAmB,CACjC,KAAwC,EAAA;IAExC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AAC7C,IAAA,IAAI,CAAC,UAAU;AAAE,QAAA,OAAO,SAAS;AAEjC,IAAA,OAAO,kBAAkB,CAAC,GAAG,CAAC,UAA6B;AACzD,UAAG;UACD,QAAQ;AACd;AAEM,SAAU,sBAAsB,CAAC,KAAwC,EAAA;IAC7E,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AAC7C,IAAA,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,QAAQ;AAAE,QAAA,OAAO,IAAI;AAEvD,IAAA,OAAO,kBAAkB,CAAC,GAAG,CAAC,UAA6B,CAAC,GAAG,IAAI,GAAG,UAAU;AAClF;;ACzBM,SAAU,iBAAiB,CAAC,KAAyC,EAAA;AACzE,IAAA,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC;AAC5C,IAAA,IAAI,CAAC,UAAU;AAAE,QAAA,OAAO,IAAI;IAE5B,QAAQ,UAAU;AAChB,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,GAAG;AAEZ,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,0BAA0B;AAEnC,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,oDAAoD;AAE7D,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,8EAA8E;AAEvF,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,4BAA4B;AAErC,QAAA;AACE,YAAA,OAAO,UAAU;;AAEvB;AAEM,SAAU,kBAAkB,CAAC,KAAc,EAAA;IAC/C,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AACnC;;MCiBa,WAAW,CAAA;AACb,IAAA,IAAI,GAAG,KAAK,CAAW,IAAI,2EAAC;AAC5B,IAAA,WAAW,GAAG,KAAK,CAAkB,UAAU,kFAAC;AAChD,IAAA,MAAM,GAAG,KAAK,CAAyB,IAAI,6EAAC;AAE5C,IAAA,KAAK,GAAG,KAAK,CAAiB,SAAS,4EAAC;AACxC,IAAA,UAAU,GAAG,KAAK,CAAiB,SAAS,iFAAC;IAE7C,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACvD,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE3D,IAAA,SAAS,GAAG,KAAK,CAAgB,IAAI,gFAAC;AACtC,IAAA,iBAAiB,GAAG,KAAK,CAAgB,IAAI,wFAAC;AAE9C,IAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAK;QAC3C,OAAO,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,IAAI;AACrD,IAAA,CAAC,0FAAC;AAEO,IAAA,2BAA2B,GAAG,QAAQ,CAAC,MAAK;QACnD,OAAO,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,IAAI;AAC7D,IAAA,CAAC,kGAAC;AAEO,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,qFAAC;AAEjE,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,kFAAC;AAClE,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,+EAAC;wGA3B1D,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,0sEC9CxB,6xCAyCA,EAAA,MAAA,EAAA,CAAA,0sWAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDKa,WAAW,EAAA,UAAA,EAAA,CAAA;kBA5BvB,SAAS;+BACE,cAAc,EAAA,UAAA,EACZ,IAAI,EAAA,OAAA,EACP,EAAE,mBAGM,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,KAAK,EAAE,mBAAmB;AAE1B,wBAAA,kBAAkB,EAAE,QAAQ;AAC5B,wBAAA,yBAAyB,EAAE,eAAe;AAC1C,wBAAA,wBAAwB,EAAE,cAAc;AACxC,wBAAA,mBAAmB,EAAE,YAAY;AAEjC,wBAAA,sBAAsB,EAAE,4BAA4B;AACpD,wBAAA,qBAAqB,EAAE,2BAA2B;AAClD,wBAAA,yBAAyB,EAAE,+BAA+B;AAC1D,wBAAA,sBAAsB,EAAE,4BAA4B;AAEpD,wBAAA,sBAAsB,EAAE,4BAA4B;AAEpD,wBAAA,+BAA+B,EAAE,kBAAkB;AACnD,wBAAA,sCAAsC,EAAE,eAAe;AACvD,wBAAA,mCAAmC,EAAE,uBAAuB;AAC5D,wBAAA,4CAA4C,EAAE,+BAA+B;AAC9E,qBAAA,EAAA,QAAA,EAAA,6xCAAA,EAAA,MAAA,EAAA,CAAA,0sWAAA,CAAA,EAAA;;;MEiBU,oBAAoB,CAAA;AACtB,IAAA,KAAK,GAAG,KAAK,CAAU,IAAI,4EAAC;AAE5B,IAAA,IAAI,GAAG,KAAK,CAAoB,IAAI,2EAAC;AACrC,IAAA,KAAK,GAAG,KAAK,CAA0B,SAAS,4EAAC;AACjD,IAAA,WAAW,GAAG,KAAK,CAA2B,UAAU,kFAAC;AACzD,IAAA,MAAM,GAAG,KAAK,CAAkC,IAAI,6EAAC;AACrD,IAAA,UAAU,GAAG,KAAK,CAA0B,SAAS,iFAAC;AAEtD,IAAA,kBAAkB,GAAG,KAAK,CAAyB,MAAM,yFAAC;IAE1D,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEvD,IAAA,aAAa,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,CAAA,EAClC,KAAK,EAAE,UAAU;QACjB,SAAS,EAAE,gBAAgB,EAAA,CAC3B;AAEO,IAAA,aAAa,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,CAAA,EAClC,KAAK,EAAE,UAAU;QACjB,SAAS,EAAE,gBAAgB,EAAA,CAC3B;IAEO,cAAc,GAAG,MAAM,EAAW;IAClC,SAAS,GAAG,MAAM,EAAc;AAExB,IAAA,UAAU,GAAG,MAAM,EAAC,UAAuB,EAAC;IAC5C,KAAK,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAEtD,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,oFAAC;AAErC,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAChC,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE;AACzD,IAAA,CAAC,+EAAC;AAEO,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;QAChC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AAE1D,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE;AAC7B,IAAA,CAAC,+EAAC;AAEO,IAAA,YAAY,GAAG,QAAQ,CAAyB,MAAK;QAC5D,IAAI,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;AAEjD,QAAA,OAAO,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACvD,IAAA,CAAC,mFAAC;AAEO,IAAA,iBAAiB,GAAG,QAAQ,CAAiC,MAAK;AACzE,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE;QAE3C,IAAI,SAAS,KAAK,MAAM;AAAE,YAAA,OAAO,SAAS;AAE1C,QAAA,QAAQ,IAAI,CAAC,YAAY,EAAE;AACzB,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,OAAO;AAEhB,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,UAAU;AAEnB,YAAA,KAAK,MAAM;AACX,YAAA;AACE,gBAAA,OAAO,MAAM;;AAEnB,IAAA,CAAC,wFAAC;AAEO,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;QAChC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;AAEnD,QAAA,OAAO,CAAC;AACV,IAAA,CAAC,+EAAC;AAEO,IAAA,IAAI,GAAG,QAAQ,CAAC,MAAK;AAC5B,QAAA,QAAQ,IAAI,CAAC,YAAY,EAAE;AACzB,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,OAAO;AAEhB,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,UAAU;AAEnB,YAAA,KAAK,MAAM;AACX,YAAA;AACE,gBAAA,OAAO,QAAQ;;AAErB,IAAA,CAAC,2EAAC;AAEO,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AACnC,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,MAAM;AAAE,YAAA,OAAO,IAAI;AAE/C,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,OAAO;AAC3C,IAAA,CAAC,kFAAC;AAEO,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAChC,QAAA,OAAO,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AAC1C,IAAA,CAAC,+EAAC;AAEO,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACpC,QAAA,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AAC7C,IAAA,CAAC,mFAAC;AAEO,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AACjC,QAAA,OAAO,uBAAuB;AAChC,IAAA,CAAC,gFAAC;AAEO,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAK;AACzC,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,KAAK,MAAM;AAAE,YAAA,OAAO,IAAI;AAEpD,QAAA,OAAO,gCAAgC;AACzC,IAAA,CAAC,wFAAC;AAEF,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,IAAI,IAAI,CAAC,KAAK;gBAAE;YAEhB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AAC9C,QAAA,CAAC,CAAC;IACJ;IAEO,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE;IACvC;IAEO,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE;IAC7B;AAEO,IAAA,WAAW,CAAC,KAAiB,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE;AAErC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAE1B,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AAErB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAEhC,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;AAEzB,YAAA,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE,EAAE;gBAChC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3C;YAEA;QACF;AAEA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAEtC,QAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACrB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAChC;IACF;AAEO,IAAA,aAAa,CAAC,KAAoB,EAAA;QACvC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AAErB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC;YACrC;QACF;AAEA,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YAC9C,KAAK,CAAC,cAAc,EAAE;AAEtB,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAEtC,YAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACrB,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;YAChC;QACF;IACF;IAEQ,kBAAkB,GAAA;AACxB,QAAA,QAAQ,IAAI,CAAC,YAAY,EAAE;AACzB,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;AACzB,oBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC9B;AAEA,gBAAA,OAAO,IAAI,CAAC,aAAa,EAAE;AAE7B,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC;AAE5C,gBAAA,OAAO,IAAI,CAAC,aAAa,EAAE;AAE7B,YAAA,KAAK,MAAM;AACX,YAAA;AACE,gBAAA,OAAO,IAAI,CAAC,aAAa,EAAE;;IAEjC;AAEQ,IAAA,YAAY,CAAC,MAA0B,EAAA;AAC7C,QAAA,IAAI,EAAE,MAAM,YAAY,WAAW,CAAC;AAAE,YAAA,OAAO,KAAK;AAElD,QAAA,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CACrB,CAAC,4BAA4B,EAAE,wBAAwB,EAAE,6BAA6B,CAAC,CAAC,IAAI,CAC1F,GAAG,CACJ,CACF;IACH;wGAxMW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,cAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,8BAAA,EAAA,oBAAA,EAAA,8BAAA,EAAA,mBAAA,EAAA,6BAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,8BAAA,EAAA,eAAA,EAAA,YAAA,EAAA,uCAAA,EAAA,gBAAA,EAAA,EAAA,cAAA,EAAA,6BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7DjC,soFA4EA,EAAA,MAAA,EAAA,CAAA,snNAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED3CY,WAAW,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,aAAA,EAAA,QAAA,EAAA,OAAA,EAAA,YAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,WAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FA4BV,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBA/BhC,SAAS;+BACE,wBAAwB,EAAA,UAAA,EACtB,IAAI,EAAA,OAAA,EACP,CAAC,WAAW,CAAC,EAAA,eAAA,EAGL,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,KAAK,EAAE,6BAA6B;AAEpC,wBAAA,kBAAkB,EAAE,QAAQ;AAC5B,wBAAA,yBAAyB,EAAE,eAAe;AAC1C,wBAAA,sBAAsB,EAAE,4BAA4B;AACpD,wBAAA,sBAAsB,EAAE,4BAA4B;AACpD,wBAAA,qBAAqB,EAAE,2BAA2B;AAClD,wBAAA,wBAAwB,EAAE,cAAc;AACxC,wBAAA,mBAAmB,EAAE,YAAY;AACjC,wBAAA,uBAAuB,EAAE,qBAAqB;AAE9C,wBAAA,aAAa,EAAE,QAAQ;AACvB,wBAAA,qBAAqB,EAAE,eAAe;AACtC,wBAAA,sBAAsB,EAAE,4BAA4B;AACpD,wBAAA,iBAAiB,EAAE,YAAY;AAE/B,wBAAA,yCAAyC,EAAE,gBAAgB;AAE3D,wBAAA,SAAS,EAAE,qBAAqB;AAChC,wBAAA,WAAW,EAAE,uBAAuB;AACpC,wBAAA,QAAQ,EAAE,cAAc;AACzB,qBAAA,EAAA,QAAA,EAAA,soFAAA,EAAA,MAAA,EAAA,CAAA,snNAAA,CAAA,EAAA;;AA6MH,SAAS,mBAAmB,CAAC,SAAiC,EAAA;IAC5D,QAAQ,SAAS;AACf,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,QAAQ;AAEjB,QAAA,KAAK,UAAU;AACf,QAAA,KAAK,MAAM;AACX,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,UAAU;AAEnB,QAAA,KAAK,MAAM;AACX,QAAA;AACE,YAAA,OAAO,MAAM;;AAEnB;;MEhRa,gCAAgC,CAAA;IAElC,IAAI,GAAG,EAAE;wGAFP,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iCAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAJ5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;sBAEE,WAAW;uBAAC,iCAAiC;;;MCuBnC,gBAAgB,CAAA;AAClB,IAAA,OAAO,GAAG,KAAK,CAA0B,OAAO,8EAAC;AAEjD,IAAA,GAAG,GAAG,KAAK,CAAgB,IAAI,0EAAC;AAChC,IAAA,GAAG,GAAG,KAAK,CAAgB,IAAI,0EAAC;AAEhC,IAAA,KAAK,GAAG,KAAK,CAAwB,SAAS,4EAAC;AAC/C,IAAA,UAAU,GAAG,KAAK,CAA6B,OAAO,iFAAC;AAEvD,IAAA,KAAK,GAAG,KAAK,CAAwB,MAAM,4EAAC;AAC5C,IAAA,WAAW,GAAG,KAAK,CAAgB,IAAI,kFAAC;AAExC,IAAA,GAAG,GAAG,KAAK,CAAsB,OAAO,0EAAC;AACzC,IAAA,cAAc,GAAG,KAAK,CAAS,QAAQ,qFAAC;AAExC,IAAA,MAAM,GAAG,KAAK,CAAyB,SAAS,6EAAC;AACjD,IAAA,KAAK,GAAG,KAAK,CAAwB,QAAQ,4EAAC;AAC9C,IAAA,OAAO,GAAG,KAAK,CAA0B,IAAI,8EAAC;AAE9C,IAAA,MAAM,GAAG,KAAK,CAAgB,IAAI,6EAAC;AACnC,IAAA,SAAS,GAAG,KAAK,CAAgB,IAAI,gFAAC;AACtC,IAAA,SAAS,GAAG,KAAK,CAAgB,IAAI,gFAAC;AAEtC,IAAA,MAAM,GAAG,KAAK,CAAgB,IAAI,6EAAC;AACnC,IAAA,UAAU,GAAG,KAAK,CAAgB,IAAI,iFAAC;AACvC,IAAA,UAAU,GAAG,KAAK,CAAgB,IAAI,iFAAC;AACvC,IAAA,WAAW,GAAG,KAAK,CAAgB,IAAI,kFAAC;AAExC,IAAA,YAAY,GAAG,KAAK,CAAgB,IAAI,mFAAC;AACzC,IAAA,eAAe,GAAG,KAAK,CAAkC,SAAS,sFAAC;IAEnE,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACvD,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAExD,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,oFAAC;AACnE,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,oFAAC;AAEnE,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,uFAAC;AACzE,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,uFAAC;AACzE,IAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,0FAAC;AAC/E,IAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,0FAAC;AAE/E,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,2FAAC;AACjF,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,2FAAC;AACjF,IAAA,qBAAqB,GAAG,QAAQ,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,4FAAC;AAEnF,IAAA,qBAAqB,GAAG,QAAQ,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,4FAAC;AACnF,IAAA,sBAAsB,GAAG,QAAQ,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,6FAAC;AAErF,IAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAK;AAC3C,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;AACtE,IAAA,CAAC,0FAAC;AAEO,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AACjC,QAAA,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE;AAChF,IAAA,CAAC,gFAAC;wGAvDS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,giGC9B7B,q1DA6CA,EAAA,MAAA,EAAA,CAAA,0+BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDfa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAV5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,cAClB,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,KAAK,EAAE,yBAAyB;AACjC,qBAAA,EAAA,QAAA,EAAA,q1DAAA,EAAA,MAAA,EAAA,CAAA,0+BAAA,CAAA,EAAA;;AA4DH,SAAS,uBAAuB,CAAC,KAAc,EAAA;IAC7C,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AACnC;;ME9Ea,mBAAmB,CAAA;AACd,IAAA,IAAI;AACJ,IAAA,OAAO;AACP,IAAA,UAAU;wGAHf,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZhC,sPASA,EAAA,MAAA,EAAA,CAAA,6HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EDFY,sBAAsB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAKrB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;+BACE,qBAAqB,EAAA,UAAA,EACnB,IAAI,EAAA,OAAA,EACP,CAAC,sBAAsB,CAAC,EAAA,eAAA,EAGhB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,sPAAA,EAAA,MAAA,EAAA,CAAA,6HAAA,CAAA,EAAA;;sBAG9C;;sBACA;;sBACA;;;MEmEU,gBAAgB,CAAA;AAGlB,IAAA,aAAa,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,CAAA,EAClC,KAAK,EAAE,UAAU;QACjB,SAAS,EAAE,gBAAgB,EAAA,CAC3B;IACO,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACzD,aAAa,GAAG,KAAK,CAAC,KAAK,qFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE7D,IAAA,GAAG,GAAG,KAAK,CAAe,IAAI,0EAAC;AAC/B,IAAA,OAAO,GAAG,KAAK,CAAiB,IAAI,8EAAC;AACrC,IAAA,WAAW,GAAG,KAAK,CAAgB,IAAI,kFAAC;AACxC,IAAA,WAAW,GAAG,KAAK,CAAgB,IAAI,kFAAC;AAExC,IAAA,MAAM,GAAG,KAAK,CAAkB,OAAO,6EAAC;AACxC,IAAA,WAAW,GAAG,KAAK,CAAuB,UAAU,kFAAC;AACrD,IAAA,aAAa,GAAG,KAAK,CAAyB,QAAQ,oFAAC;AAEvD,IAAA,WAAW,GAAG,KAAK,CAA0B,MAAM,CAAC,EAAE,kFAAC;AACvD,IAAA,UAAU,GAAG,KAAK,CAAoB,gBAAgB,iFAAC;AAEvD,IAAA,gBAAgB,GAAG,KAAK,CAAC,mCAAmC,uFAAC;AAC7D,IAAA,mBAAmB,GAAG,KAAK,CAAC,sCAAsC,0FAAC;AACnE,IAAA,mBAAmB,GAAG,KAAK,CAAC,sCAAsC,0FAAC;IAEnE,iBAAiB,GAAG,MAAM,EAG/B;IACK,WAAW,GAAG,MAAM,EAAqB;AAGjC,IAAA,UAAU;AAEV,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAE/B,IAAA,UAAU,GAAG,MAAM,CAAC,KAAK,iFAAC;AAC1B,IAAA,YAAY,GAAG,MAAM,CAAC,CAAC,mFAAC;AACxB,IAAA,WAAW,GAAG,MAAM,CAAC,KAAK,kFAAC;AAC3B,IAAA,YAAY,GAAG,MAAM,CAAC,KAAK,mFAAC;AAC5B,IAAA,aAAa,GAAG,MAAM,CAAoB,IAAI,oFAAC;AAExD,IAAA,SAAS,GAAe,MAAK,EAAE,CAAC;AAChC,IAAA,QAAQ,GAAuC,MAAK,EAAE,CAAC;AACvD,IAAA,iBAAiB,GAAe,MAAK,EAAE,CAAC;AAEhD,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,aAAa,EAAE;YAEpB,IAAI,CAAC,iBAAiB,EAAE;AAC1B,QAAA,CAAC,CAAC;IACJ;IAEA,kBAAkB,GAAA;QAChB,IAAI,CAAC,gBAAgB,EAAE;QAEvB,IAAI,CAAC,UAAU,EAAE;AACd,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC7C;AAES,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AACnC,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE;QAE/C,QAAQ,KAAK;AACX,YAAA,KAAK,IAAI;AACP,gBAAA,OAAO,wBAAwB;AAEjC,YAAA,KAAK,IAAI;AACP,gBAAA,OAAO,wBAAwB;AAEjC,YAAA,KAAK,IAAI;AACP,gBAAA,OAAO,wBAAwB;AAEjC,YAAA;AACE,gBAAA,OAAO,KAAK;;AAElB,IAAA,CAAC,kFAAC;AAEO,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;QAChC,OAAO,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE;AACnD,IAAA,CAAC,+EAAC;AAEO,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AACjC,QAAA,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC1B,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,YAAY;AAErB,YAAA,KAAK,UAAU;AACf,YAAA,KAAK,MAAM;AACX,YAAA;AACE,gBAAA,OAAO,OAAO;;AAEpB,IAAA,CAAC,gFAAC;AAEO,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AACtC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE;AAElC,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,MAAM;QAC7C,IAAI,KAAK,IAAI,IAAI;AAAE,YAAA,OAAO,CAAC;AAE3B,QAAA,OAAO,CAAC;AACV,IAAA,CAAC,qFAAC;AAEO,IAAA,eAAe,GAAG,QAAQ,CAA2B,MAAK;QACjE,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,MAAM;AAAE,YAAA,OAAO,IAAI;AAEnE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE;AAEnC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,KAAK,CAAC;AAAE,YAAA,OAAO,UAAU;AAErD,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,UAAU,EAAE;AACvC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE;AAC9B,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE;AAE9B,YAAA,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG;AAAE,gBAAA,OAAO,aAAa;AACpD,YAAA,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG;AAAE,gBAAA,OAAO,aAAa;QACtD;AAEA,QAAA,OAAO,IAAI;AACb,IAAA,CAAC,sFAAC;AAEO,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACvC,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE;QAEtC,IAAI,eAAe,KAAK,IAAI;AAAE,YAAA,OAAO,eAAe;QAEpD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI;AAEpD,QAAA,QAAQ,IAAI,CAAC,UAAU,EAAE;AACvB,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,YAAY;AAErB,YAAA,KAAK,WAAW;AACd,gBAAA,OAAO,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE;AAEzC,YAAA,KAAK,gBAAgB;AACrB,YAAA;AACE,gBAAA,OAAO,YAAY,KAAK,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;;AAEvE,IAAA,CAAC,sFAAC;AAEO,IAAA,gBAAgB,GAAG,QAAQ,CAAqB,MAAK;AAC5D,QAAA,QAAQ,IAAI,CAAC,eAAe,EAAE;AAC5B,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,IAAI,CAAC,gBAAgB,EAAE;AAEhC,YAAA,KAAK,aAAa;AAChB,gBAAA,OAAO,IAAI,CAAC,mBAAmB,EAAE;AAEnC,YAAA,KAAK,aAAa;AAChB,gBAAA,OAAO,IAAI,CAAC,mBAAmB,EAAE;AAEnC,YAAA;AACE,gBAAA,OAAO,SAAS;;AAEtB,IAAA,CAAC,uFAAC;AAEO,IAAA,mBAAmB,GAAG,QAAQ,CAAuC,MAAK;AACjF,QAAA,QAAQ,IAAI,CAAC,eAAe,EAAE;AAC5B,YAAA,KAAK,aAAa;gBAChB,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,SAAS,EAAE;AAEjD,YAAA,KAAK,aAAa;gBAChB,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,SAAS,EAAE;AAEjD,YAAA;AACE,gBAAA,OAAO,SAAS;;AAEtB,IAAA,CAAC,0FAAC;AAEK,IAAA,UAAU,CAAC,KAAc,EAAA;AAC9B,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE;AAEzC,QAAA,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC1B,YAAA,KAAK,QAAQ;AACX,gBAAA,QACE,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;AAC5B,oBAAA,YAAY,KAAK,IAAI;oBACrB,IAAI,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,KAAU,CAAC;YAGhD,KAAK,UAAU,EAAE;AACf,gBAAA,MAAM,IAAI,GAAQ,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,GAAG,EAAE;AAEjE,gBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAU,CAAC,CAAC;YAClE;AAEA,YAAA,KAAK,MAAM;AACX,YAAA;AACE,gBAAA,OAAO,KAAK;;IAElB;AAEO,IAAA,QAAQ,CAAC,IAAgC,EAAA;QAC9C,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QAExC,IAAI,CAAC,aAAa,EAAE;AAEpB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC1B,gBAAA,MAAM,EAAE,UAAU;AAClB,gBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACpB,aAAA,CAAC;YACF;QACF;AAEA,QAAA,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC1B,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBACzB;AAEF,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;gBAC3B;AAEF,YAAA,KAAK,MAAM;AACX,YAAA;gBACE;;QAGJ,IAAI,CAAC,gBAAgB,EAAE;IACzB;AAEO,IAAA,WAAW,CAAC,IAAgC,EAAA;QACjD,IAAI,CAAC,YAAY,EAAE;QAEnB,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO,CAAC,CAAC;AACjD,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,MAAM;AAAE,YAAA,OAAO,CAAC;AAE7C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE;QAEnC,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QAE9B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;AAErC,QAAA,OAAO,MAAM,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC;IAEO,aAAa,CAAC,KAAoB,EAAE,OAAmC,EAAA;QAC5E,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AACrB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,MAAM;YAAE;AAErC,QAAA,QAAQ,KAAK,CAAC,GAAG;AACf,YAAA,KAAK,YAAY;AACjB,YAAA,KAAK,WAAW;gBACd,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBACrB;AAEF,YAAA,KAAK,WAAW;AAChB,YAAA,KAAK,SAAS;gBACZ,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACtB;AAEF,YAAA,KAAK,MAAM;gBACT,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,UAAU,EAAE;gBACjB;AAEF,YAAA,KAAK,KAAK;gBACR,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,SAAS,EAAE;gBAChB;AAEF,YAAA,KAAK,GAAG;AACR,YAAA,KAAK,OAAO;gBACV,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACtB;;IAEN;IAEO,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;QAC7B;QAEA,IAAI,CAAC,SAAS,EAAE;IAClB;AAEA,IAAA,UAAU,CAAC,KAAwB,EAAA;AACjC,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAEhF,IAAI,CAAC,gBAAgB,EAAE;IACzB;AAEA,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEA,IAAA,gBAAgB,CAAC,EAAsC,EAAA;AACrD,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;QAChC,IAAI,CAAC,gBAAgB,EAAE;IACzB;AAEA,IAAA,QAAQ,CAAC,CAAkB,EAAA;AACzB,QAAA,QAAQ,IAAI,CAAC,eAAe,EAAE;AAC5B,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;AAE3B,YAAA,KAAK,aAAa;gBAChB,OAAO;AACL,oBAAA,WAAW,EAAE;AACX,wBAAA,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE;AACvB,wBAAA,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE;AAC9B,qBAAA;iBACF;AAEH,YAAA,KAAK,aAAa;gBAChB,OAAO;AACL,oBAAA,WAAW,EAAE;AACX,wBAAA,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE;AACvB,wBAAA,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE;AAC9B,qBAAA;iBACF;AAEH,YAAA;AACE,gBAAA,OAAO,IAAI;;IAEjB;AAEA,IAAA,yBAAyB,CAAC,EAAc,EAAA;AACtC,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;IAC7B;AAEQ,IAAA,cAAc,CAAC,IAAgC,EAAA;AACrD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAO;AACnC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE;QAEzC,MAAM,eAAe,GACnB,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;AAC5B,YAAA,YAAY,KAAK,IAAI;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;AAE7C,QAAA,IAAI,eAAe;YAAE;AAErB,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;IACjC;AAEQ,IAAA,gBAAgB,CAAC,IAAgC,EAAA;AACvD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE;AACzC,QAAA,MAAM,OAAO,GAAQ,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE;AACzE,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAO;QAEnC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAE9E,QAAA,IAAI,KAAK,IAAI,CAAC,EAAE;AACd,YAAA,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACxB,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YAC7B;QACF;AAEA,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE;QAE9B,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE;AACxC,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC1B,gBAAA,MAAM,EAAE,aAAa;AACrB,gBAAA,KAAK,EAAE,SAAS;AACjB,aAAA,CAAC;YACF;QACF;AAEA,QAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;IAC/B;IAEQ,IAAI,CAAC,OAAmC,EAAE,SAAiB,EAAA;AACjE,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE;QAEnC,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE;QAErB,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;AAC5C,QAAA,MAAM,SAAS,GAAG,CAAC,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;AAC5E,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;AAE/B,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AAC7D,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACrB;QAEA,IAAI,CAAC,KAAK,EAAE;IACd;IAEQ,UAAU,GAAA;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AAEpC,QAAA,IAAI,CAAC,KAAK;YAAE;AAEZ,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AAC7D,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtB;QAEA,KAAK,CAAC,KAAK,EAAE;IACf;IAEQ,SAAS,GAAA;AACf,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE;QACnC,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE3B,QAAA,IAAI,CAAC,IAAI;YAAE;AAEX,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AAC7D,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACrB;QAEA,IAAI,CAAC,KAAK,EAAE;IACd;IAEQ,YAAY,GAAA;QAClB,IAAI,CAAC,YAAY,EAAE;QAEnB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9E;AAEQ,IAAA,eAAe,CAAC,KAAwB,EAAA;AAC9C,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AAEzB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,iBAAiB,EAAE;IAC1B;IAEQ,sBAAsB,CAC5B,KAAwB,EACxB,IAA4B,EAAA;QAE5B,QAAQ,IAAI;AACV,YAAA,KAAK,QAAQ;gBACX,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK;AAE1D,YAAA,KAAK,UAAU;gBACb,IAAI,KAAK,IAAI,IAAI;AAAE,oBAAA,OAAO,EAAE;AAE5B,gBAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC;AAE/C,YAAA,KAAK,MAAM;AACX,YAAA;AACE,gBAAA,OAAO,IAAI;;IAEjB;IAEQ,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC;IAChD;wGA9cW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,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,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,qCAAA,EAAA,oBAAA,EAAA,8BAAA,EAAA,oBAAA,EAAA,8BAAA,EAAA,gCAAA,EAAA,eAAA,EAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,EAAA,SAAA,EA9BhB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,gBAAgB,CAAC;AAC/C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,gBAAgB,CAAC;AAC/C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,gBAAgB,CAAC;AAChD,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAiDiC,oBAAoB,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpHxD,6jBAmBA,EAAA,MAAA,EAAA,CAAA,+mCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED6BY,mBAAmB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAkClB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBArC5B,SAAS;+BACE,oBAAoB,EAAA,UAAA,EAClB,IAAI,EAAA,OAAA,EACP,CAAC,mBAAmB,CAAC,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,sBAAsB,CAAC;AAC/C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,sBAAsB,CAAC;AAC/C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,sBAAsB,CAAC;AAChD,yBAAA;qBACF,EAAA,IAAA,EACK;AACJ,wBAAA,KAAK,EAAE,yBAAyB;AAEhC,wBAAA,oBAAoB,EAAE,UAAU;AAChC,wBAAA,yBAAyB,EAAE,eAAe;AAC1C,wBAAA,4BAA4B,EAAE,iBAAiB;AAE/C,wBAAA,qBAAqB,EAAE,mCAAmC;AAC1D,wBAAA,sBAAsB,EAAE,4BAA4B;AACpD,wBAAA,sBAAsB,EAAE,4BAA4B;AAEpD,wBAAA,kCAAkC,EAAE,eAAe;AACpD,qBAAA,EAAA,QAAA,EAAA,6jBAAA,EAAA,MAAA,EAAA,CAAA,+mCAAA,CAAA,EAAA;;sBAoCA,eAAe;uBAAC,UAAU,CAAC,MAAM,oBAAoB,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;;;ME7GnE,+BAA+B,CAAA;wGAA/B,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,kDAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,kDAAkD,EAAE;AACpE,iBAAA;;;MCIY,2BAA2B,CAAA;wGAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,8CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBARvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,8CAA8C;AACrD,wBAAA,mBAAmB,EAAE,MAAM;AAC5B,qBAAA;AACF,iBAAA;;;MCFY,2BAA2B,CAAA;wGAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,8CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,8CAA8C,EAAE;AAChE,iBAAA;;;MCCY,0BAA0B,CAAA;wGAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,6CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,6CAA6C,EAAE;AAC/D,iBAAA;;;MCCY,yBAAyB,CAAA;wGAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,4CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,4CAA4C,EAAE;AAC9D,iBAAA;;;MCCY,wBAAwB,CAAA;wGAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,2CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,2CAA2C,EAAE;AAC7D,iBAAA;;;MCCY,yBAAyB,CAAA;wGAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,4CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,4CAA4C,EAAE;AAC9D,iBAAA;;;MCCY,yBAAyB,CAAA;wGAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,4CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,4CAA4C,EAAE;AAC9D,iBAAA;;;ACGM,MAAM,4BAA4B,GAAG;IAC1C,yBAAyB;IACzB,2BAA2B;IAC3B,yBAAyB;IACzB,+BAA+B;IAC/B,wBAAwB;IACxB,yBAAyB;IACzB,2BAA2B;IAC3B,0BAA0B;;;ACbtB,SAAU,kBAAkB,CAAC,CAAS,EAAA;AAC1C,IAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;AAC/C,IAAA,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,MAAM,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AAC/D,IAAA,OAAO,CAAC;AACV;AAEM,SAAU,cAAc,CAAC,KAAuB,EAAE,IAAY,EAAA;IAClE,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM;IACxD,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM;IACpD,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;AACzE,IAAA,MAAM,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;AAC/B,IAAA,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC;AACnC;AAEM,SAAU,uBAAuB,CAAC,KAAuB,EAAE,SAAkB,EAAA;AACjF,IAAA,IAAI,CAAC,SAAS;QAAE;AAEhB,IAAA,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE;AAC3B,IAAA,MAAM,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC;AAEvC,IAAA,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM;AACpD,IAAA,IAAI,MAAM,IAAI,SAAS,EAAE;QACvB,IAAI,SAAS,KAAK,CAAC;AAAE,YAAA,KAAK,CAAC,KAAK,GAAG,SAAS;QAC5C;IACF;IAEA,IAAI,UAAU,GAAG,CAAC;IAClB,IAAI,GAAG,GAAG,EAAE;AACZ,IAAA,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE;AAC1B,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YACjB,IAAI,UAAU,IAAI,SAAS;gBAAE;AAC7B,YAAA,UAAU,EAAE;QACd;QACA,GAAG,IAAI,EAAE;IACX;AACA,IAAA,KAAK,CAAC,KAAK,GAAG,GAAG;AACnB;AAEM,SAAU,sBAAsB,CAAC,EAAc,EAAE,GAAwB,EAAA;AAC7E,IAAA,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;AACrD;AAEM,SAAU,kBAAkB,CAAC,EAAiB,EAAA;IAClD,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,MAAM;AAAE,QAAA,OAAO,KAAK;AAEvD,IAAA,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG;AAChB,IAAA,MAAM,cAAc,GAAG;QACrB,WAAW;QACX,QAAQ;QACR,KAAK;QACL,OAAO;QACP,QAAQ;QACR,WAAW;QACX,YAAY;QACZ,SAAS;QACT,WAAW;QACX,MAAM;QACN,KAAK;KACN;AACD,IAAA,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AAAE,QAAA,OAAO,KAAK;AAC5C,IAAA,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAAE,QAAA,OAAO,KAAK;IAChC,OAAO,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;AACtF;;SChEgB,qBAAqB,GAAA;AACnC,IAAA,MAAM,CAAC,GAAG,IAAI,GAAG,EAAoB;AACrC,IAAA,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,EAAE;AAC9B,QAAA,MAAM,IAAI,GAAG,qBAAqB,CAAC,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;QAC7B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACzB,QAAA,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;IAClB;AACA,IAAA,OAAO,CAAC;AACV;AAEM,SAAU,sBAAsB,CACpC,WAAmB,EACnB,YAA2B,EAC3B,KAA4B,EAC5B,kBAA6B,EAAA;IAE7B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE;IACzC,IAAI,CAAC,IAAI,CAAC,MAAM;AAAE,QAAA,OAAO,IAAI;IAE7B,MAAM,GAAG,GAAG,YAAY,EAAE,WAAW,EAAE,IAAI,IAAI;AAC/C,IAAA,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAAE,QAAA,OAAO,GAAG;AAEzC,IAAA,IAAI,WAAW,KAAK,GAAG,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,IAAI;AACpC,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,IAAI;IACtC;IAEA,MAAM,SAAS,GAAG,CAAC,kBAAkB,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AACxE,IAAA,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE;AACzB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAAE,YAAA,OAAO,CAAC;IAChC;AAEA,IAAA,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI;AACxB;AAEM,SAAU,4BAA4B,CAAC,YAAoB,EAAA;IAC/D,MAAM,IAAI,GAAG,UAAU,EAAE,SAAS,EAAE,QAAQ,IAAI,EAAE;AAClD,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;AACtD,IAAA,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,GAAG,MAAM,GAAG,YAAY;AACpD;;MCpCa,2BAA2B,GAAG,IAAI,cAAc,CAE3D,6BAA6B;;MCClB,0BAA0B,CAAA;AACrC,IAAA,QAAQ,GAAG,MAAM,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE;IAC3C,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,YAAY,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACzE,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAEvC,IAAA,SAAS,GAAG,MAAM,CAAU,KAAK,gFAAC;AAClC,IAAA,OAAO,GAAG,MAAM,CAAmB,IAAI,8EAAC;AACxC,IAAA,KAAK,GAAG,MAAM,CAA+B,IAAI,4EAAC;AAClD,IAAA,QAAQ,GAAG,MAAM,CAAkC,IAAI,+EAAC;AAEjE,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,YAAY,EAAE;AAChB,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,aAAA,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,EAAE;AACV,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,aAAA,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9C;AAEA,IAAA,gBAAgB,CAAC,GAAoC,EAAA;AACnD,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;IACxB;AAEA,IAAA,aAAa,CAAC,GAAiC,EAAA;AAC7C,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;IACrB;AAEA,IAAA,eAAe,CAAC,IAAsB,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;YAAE;AAC7B,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IACxB;IAEA,eAAe,GAAA;QACb,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,KAAK;IAC5C;IAEA,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE;IAC3B;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;IAC3B;wGA5CW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAA1B,0BAA0B,EAAA,CAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC;;sBAGE;;sBACA;;;MCJU,aAAa,GAAG,IAAI,cAAc,CAAkB,eAAe;;MCiBnE,kBAAkB,CAAA;AACZ,IAAA,EAAE,GAAG,MAAM,EAAC,UAAkD,EAAC;AAC/D,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAG3B,KAAK,GAAG,MAAM,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAEnC,IAAI,GAAG,EAAE;AAErD,IAAA,IAAqC,eAAe,GAAA;QAClD,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC;IAC1D;AAEA,IAAA,WAAA,GAAA;QACE,cAAc,CAAC,MAAK;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC9E,YAAA,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC;AAClC,QAAA,CAAC,CAAC;IACJ;wGAlBW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,SAAA,EAhBlB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;gBACtB,UAAU,EAAE,MAAsB;oBAChC,MAAM,EAAE,GAAG,MAAM,EAAC,UAAkD,EAAC,CAAC,aAAa;oBACnF,OAAO;AACL,wBAAA,OAAO,EAAE,EAAE;AACX,wBAAA,OAAO,EAAE,CAAC,IAAY,KAAI;4BACxB,IAAI,EAAE,YAAY,gBAAgB;AAAE,gCAAA,EAAE,CAAC,IAAI,GAAG,IAAI;wBACpD,CAAC;AACD,wBAAA,OAAO,EAAE,OAAO,EAAE,YAAY,gBAAgB,GAAG,EAAE,CAAC,IAAI,GAAG,UAAU,CAAC;qBACvE;gBACH,CAAC;AACF,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAEU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAnB9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8CAA8C;AACxD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;4BACtB,UAAU,EAAE,MAAsB;gCAChC,MAAM,EAAE,GAAG,MAAM,EAAC,UAAkD,EAAC,CAAC,aAAa;gCACnF,OAAO;AACL,oCAAA,OAAO,EAAE,EAAE;AACX,oCAAA,OAAO,EAAE,CAAC,IAAY,KAAI;wCACxB,IAAI,EAAE,YAAY,gBAAgB;AAAE,4CAAA,EAAE,CAAC,IAAI,GAAG,IAAI;oCACpD,CAAC;AACD,oCAAA,OAAO,EAAE,OAAO,EAAE,YAAY,gBAAgB,GAAG,EAAE,CAAC,IAAI,GAAG,UAAU,CAAC;iCACvE;4BACH,CAAC;AACF,yBAAA;AACF,qBAAA;AACF,iBAAA;;sBAKE;;sBAGA,WAAW;uBAAC,oBAAoB;;sBAEhC,WAAW;uBAAC,kBAAkB;;;MC4BpB,iBAAiB,CAAA;IAGX,KAAK,GAAG,MAAM,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC9D,IAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAEM,MAAM,GAAG,EAAE;AACtB,IAAA,QAAQ;IAE/C,IAAa,WAAW,CAAC,CAAqB,EAAA;AAC5C,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC;QACrB,IAAI,CAAC,wBAAwB,EAAE;IACjC;AACA,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY;IAC1B;IAES,MAAM,GAAgB,MAAM;AACD,IAAA,aAAa;IACZ,cAAc,GAAS,IAAI;AACvB,IAAA,kBAAkB;IAEnD,IAAI,GAAG,EAAE;AACT,IAAA,SAAS;AACT,IAAA,YAAY;IACV,SAAS,GAAG,KAAK;IACnB,GAAG,GAAuB,IAAI;IAC9B,SAAS,GAAkB,IAAI;IACtB,YAAY,GAAG,kBAAkB;AAC1C,IAAA,gBAAgB,GAAG,IAAI,GAAG,EAAoB;AAE9C,IAAA,QAAQ,GAA+B,MAAK,EAAE,CAAC;AAC/C,IAAA,SAAS,GAAe,MAAK,EAAE,CAAC;AAChC,IAAA,iBAAiB;AAEzB,IAAA,WAAA,GAAA;QACE,cAAc,CAAC,MAAK;YAClB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACpF,YAAA,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC;AACxC,QAAA,CAAC,CAAC;IACJ;IAEA,eAAe,GAAA;AACb,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,EAAE;YAAE;AACT,QAAA,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,EAAE;AAC/C,QAAA,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QAEvB,IAAI,IAAI,CAAC,IAAI;AAAE,YAAA,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI;AAEnC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;QAC7B,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,eAAe,EAAE;IACxB;IAEA,WAAW,GAAA;AACT,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;AAClB,QAAA,IAAI,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI;AACrB,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI;IACjB;AAEO,IAAA,UAAU,CAAC,KAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,IAAI,IAAI;AAC9B,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,EAAE;YAAE;QAET,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,IAAI,CAAC,IAAI,GAAG,EAAE;AACd,YAAA,EAAE,CAAC,KAAK,GAAG,EAAE;AACb,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAC3B;QACF;AACA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE;AACnC,QAAA,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,SAAS;QAChD,MAAM,MAAM,GAAG,0BAA0B,CAAC,KAAK,EAAE,EAAS,CAAC;AAC3D,QAAA,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,cAAc,EAAE,GAAG,KAAK;AACrD,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,EAAE,CAAC,KAAK,GAAG,IAAI;AAEf,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;IAC7B;AAEO,IAAA,gBAAgB,CAAC,EAA8B,EAAA;AACpD,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEO,IAAA,iBAAiB,CAAC,EAAc,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEO,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU;AAC3B,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;AAClB,QAAA,IAAI,EAAE;AAAE,YAAA,EAAE,CAAC,QAAQ,GAAG,UAAU;IAClC;IAEO,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;AAAE,YAAA,OAAO,IAAI;AACnC,QAAA,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE;IACvD;AAEO,IAAA,yBAAyB,CAAC,EAAc,EAAA;AAC7C,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;IAC7B;IAEU,OAAO,CAAC,MAAM,GAAG,KAAK,EAAA;AAC9B,QAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;IACjC;IAEU,MAAM,GAAA;QACd,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,EAAE;YAAE;QAET,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE;AAC1B,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;IAC9B;IAEU,OAAO,GAAA;AACf,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS;YAAE;QAC3B,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM;YAAE;AAEpC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,EAAE;AACvC,QAAA,IAAI,CAAC,IAAI;YAAE;AAEX,QAAA,MAAM,CAAC,GAAG,CAAA,CAAA,EAAI,IAAI,GAAG;AACrB,QAAA,EAAE,CAAC,KAAK,GAAG,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC;AAEb,QAAA,cAAc,CAAC,MAAM,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9D,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;IAC9B;AAEQ,IAAA,kBAAkB,CAAC,MAAe,EAAA;AACxC,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,EAAE;YAAE;QAET,MAAM,GAAG,GAAG,kBAAkB,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;AAC9C,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE;AAC3C,QAAA,MAAM,eAAe,GAAG,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,GAAG,SAAS;QAE7E,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG;cACjC,IAAI,SAAS;AACf,cAAE,IAAI,SAAS,CAAC,eAAsB,CAAC;QAEzC,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AAChC,QAAA,EAAE,CAAC,KAAK,GAAG,SAAS;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,SAAS;AAErB,QAAA,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE;QAC9B,IAAI,MAAM,EAAE,kBAAkB,IAAI,IAAI,CAAC,GAAG,EAAE;AAC1C,YAAA,MAAM,QAAQ,GAAG,sBAAsB,CACrC,MAAM,CAAC,kBAAkB,EACzB,YAAY,EACZ,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,kBAAkB,CACxB;AACD,YAAA,IAAI,QAAQ,IAAI,QAAQ,KAAK,YAAY,EAAE;AACzC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YACjC;QACF;AAEA,QAAA,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC;AAC3C,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;IAC/B;AAEQ,IAAA,gBAAgB,CAAC,MAAe,EAAA;AACtC,QAAA,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE;QAEpC,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,YAAA,IAAI,CAAC,MAAM;AAAE,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5B;QACF;AAEA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE;AACnC,QAAA,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,SAAS;AAEhD,QAAA,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG;AAC/B,cAAE,0BAA0B,CAAC,GAAG;AAChC,cAAE,0BAA0B,CAAC,GAAG,EAAE,EAAS,CAAC;AAE9C,QAAA,IAAI,MAAM,EAAE,OAAO,EAAE,EAAE;AACrB,YAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM;AAC9B,YAAA,IAAI,CAAC,MAAM;AAAE,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACrC;QACF;AAEA,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B;AAEQ,IAAA,IAAI,CAAC,CAAgB,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChB,QAAA,IAAI,CAAC,iBAAiB,IAAI;IAC5B;AAEQ,IAAA,gBAAgB,CAAC,EAAoB,EAAA;AAC3C,QAAA,MAAM,OAAO,GAA4B;AACvC,YAAA,cAAc,EAAE,4BAA4B,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC;AACzF,YAAA,gBAAgB,EAAE,KAAK;AACvB,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,eAAe,EAAE,YAAY;AAC7B,YAAA,SAAS,EAAE,MAAM,OAAO,kCAAkC,CAAC;SAC5D;AAED,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5D,IAAI,IAAI,EAAE,MAAM;AAAE,YAAA,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;AACjD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QACtE,IAAI,SAAS,EAAE,MAAM;AAAE,YAAA,OAAO,CAAC,oBAAoB,CAAC,GAAG,SAAS;QAChE,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,EAAE,EAAE,OAAO,CAA2B;QAC9D,IAAI,CAAC,wBAAwB,EAAE;IACjC;IAEQ,eAAe,GAAA;AACrB,QAAA,MAAM,MAAM,GAAQ,IAAI,CAAC,GAAU;AACnC,QAAA,MAAM,CAAC,GAAiC,MAAM,EAAE,OAAO;QAEvD,MAAM,GAAG,GAAG,MAAK;AACf,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE;AACnC,YAAA,IAAI,IAAI;AAAE,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACrC,IAAI,CAAC,iBAAiB,EAAE;AAC1B,QAAA,CAAC;QAED,IAAI,CAAC,EAAE,IAAI;AAAE,YAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;YACnB,cAAc,CAAC,GAAG,CAAC;IAC1B;AAEQ,IAAA,gBAAgB,CAAC,IAAY,EAAA;AACnC,QAAA,IAAI;YACD,IAAI,CAAC,GAAW,EAAE,UAAU,GAAG,IAAI,CAAC;QACvC;QAAE,MAAM,EAAC;IACX;IAEQ,iBAAiB,GAAA;QACvB,IAAI,CAAC,eAAe,EAAE;AACtB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;AAClB,QAAA,IAAI,EAAE;AAAE,YAAA,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC;IACrD;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACb,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;YAC1B;QACF;QAEA,MAAM,CAAC,GAAS,IAAI,CAAC,GAAW,CAAC,sBAAsB,IAAI;AAC3D,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;AAChD,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;AAEtE,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;AAEzB,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAK;YACtC,IAAI,CAAC,CAAC,EAAE,gBAAgB;AAAE,gBAAA,OAAO,SAAS;AAC1C,YAAA,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM;AAC9B,YAAA,MAAM,EAAE,GAAG,CAAC,CAAC,gBAAgB,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,GAAG,SAAS;AAChE,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,gBAAgB,IAAI,gBAAgB,GAAG,CAAC,EAAE;AAC5C,YAAA,IAAI,CAAC,SAAS,GAAG,UAAU,GAAG,gBAAgB;YAC9C;QACF;AAEA,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;QAClB,MAAM,EAAE,GAAG,EAAE,EAAE,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE;AAChD,QAAA,MAAM,QAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM;AAC/C,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,SAAS;IACtD;AAEQ,IAAA,cAAc,CAAC,EAAoB,EAAA;QACzC,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,aAAoB,CAAC;QAC7D,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC;QAC9C,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;QAC1C,EAAE,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC;IAC5D;AAEQ,IAAA,iBAAiB,CAAC,EAAoB,EAAA;QAC5C,EAAE,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,aAAoB,CAAC;QAChE,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC;QACjD,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;QAC7C,EAAE,CAAC,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC;IAC/D;IAEiB,eAAe,GAAG,MAAK;QACtC,IAAI,CAAC,iBAAiB,EAAE;AAExB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE;YAAE;QAErC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE;AAC1B,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;AAChC,IAAA,CAAC;AAEgB,IAAA,aAAa,GAAG,CAAC,EAAc,KAAI;AAClD,QAAA,IAAI,sBAAsB,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE;YACnE,EAAE,CAAC,cAAc,EAAE;QACrB;AACF,IAAA,CAAC;AAEgB,IAAA,SAAS,GAAG,CAAC,EAAiB,KAAI;QACjD,IAAI,kBAAkB,CAAC,EAAE,CAAC;YAAE,EAAE,CAAC,cAAc,EAAE;AACjD,IAAA,CAAC;AAEgB,IAAA,OAAO,GAAG,CAAC,EAAkB,KAAI;AAChD,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,EAAE;YAAE;AAET,QAAA,MAAM,IAAI,GAAG,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;AACpD,QAAA,IAAI,CAAC,IAAI;YAAE;AAEX,QAAA,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC;QAC1C,IAAI,SAAS,KAAK,IAAI;YAAE;QAExB,EAAE,CAAC,cAAc,EAAE;AACnB,QAAA,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC;QAE7B,cAAc,CAAC,MAAK;YAClB,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;AAChC,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC;IAEO,wBAAwB,GAAA;AAC9B,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,EAAE;YAAE;QAET,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE;AACpC,QAAA,IAAI,EAAE;YAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,CAAC;IAC3D;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI;YACF,MAAM,IAAI,GAAI,IAAI,CAAC,GAAW,EAAE,sBAAsB,IAAI;YAC1D,OAAQ,IAAI,EAAE,IAA2B,EAAE,WAAW,EAAE,IAAI,IAAI;QAClE;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,IAAI;QACb;IACF;IAEQ,mBAAmB,GAAA;AACzB,QAAA,IAAI;YACF,MAAM,IAAI,GAAI,IAAI,CAAC,GAAW,EAAE,sBAAsB,IAAI;AAC1D,YAAA,OAAQ,IAAI,EAAE,QAA+B,IAAI,IAAI;QACvD;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,IAAI;QACb;IACF;IAEQ,QAAQ,GAAA;QACd,OAAQ,UAAkB,CAAC,iBAAyC;IACtE;AAEQ,IAAA,IAAI,CAAI,EAAW,EAAA;AACzB,QAAA,IAAI;YACF,OAAO,EAAE,EAAE;QACb;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,SAAS;QAClB;IACF;AAEA,IAAA,IAAY,EAAE,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,aAAa,IAAI,IAAI;IAC7C;wGAhXW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,CAAA,gBAAA,EAAA,eAAA,CAAA,EAAA,cAAA,EAAA,CAAA,iBAAA,EAAA,gBAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,qBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,0BAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAdjB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3DH,wLAUA,qyEDkDY,kBAAkB,EAAA,QAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBApB7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,cACnB,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AAChD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AAChD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EAAA,OAAA,EACQ,CAAC,kBAAkB,CAAC,EAAA,QAAA,EAAA,wLAAA,EAAA,MAAA,EAAA,CAAA,6uEAAA,CAAA,EAAA;;sBAS5B,WAAW;uBAAC,0BAA0B;;sBACtC,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;sBAEpC;;sBAQA;;sBACA,KAAK;uBAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE;;sBACjC,KAAK;uBAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE;;sBAClC,KAAK;uBAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE;;;MEhD5B,wBAAwB,CAAA;IAC1B,SAAS,GAAG,CAAC;IACb,YAAY,GAAG,IAAI;IACnB,YAAY,GAAG,IAAI;IACnB,aAAa,GAAG,IAAI;IACpB,cAAc,GAAG,KAAK;IAE/B,IAAa,iBAAiB,CAAC,CAAM,EAAA;AACnC,QAAA,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,SAAS,IAAI;IACpB;IACA,IAAa,iBAAiB,CAAC,CAAM,EAAA;AACnC,QAAA,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,SAAS,IAAI;IACpB;IACA,IAAa,kBAAkB,CAAC,CAAM,EAAA;AACpC,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,SAAS,IAAI;IACpB;IACA,IAAa,cAAc,CAAC,CAAM,EAAA;QAChC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,SAAS,IAAI;IACpB;IACA,IAAa,mBAAmB,CAAC,CAAM,EAAA;AACrC,QAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,SAAS,IAAI;IACpB;AAEA,IAAA,IAA8B,IAAI,GAAA;AAChC,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,UAAU;IAC7C;IACgC,UAAU,GAAG,OAAO;IACL,MAAM,GAAG,EAAE;IACd,YAAY,GAAG,EAAE;IACzB,cAAc,GAAG,MAAM;IACzB,YAAY,GAAG,kBAAkB;IAEtC,KAAK,GAAG,MAAM,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC1E,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAEnC,IAAA,OAAO,GAA4B,MAAM,CAAC,KAAK,8EAAC;AAEjD,IAAA,SAAS;AAEjB,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC;QAClC,cAAc,CAAC,MAAK;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC9E,YAAA,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC;AAClC,QAAA,CAAC,CAAC;IACJ;IAEO,MAAM,GAAA;QACX,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACnC;AAEO,IAAA,QAAQ,CAAC,OAAwB,EAAA;QACtC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,CAAC;AAAE,YAAA,OAAO,IAAI;QAEnB,MAAM,MAAM,GAA4B,EAAE;AAE1C,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AAC/C,YAAA,MAAM,CAAC,SAAS,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;QAC/E;QACA,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAAE,YAAA,MAAM,CAAC,SAAS,GAAG,IAAI;QAClE,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAAE,YAAA,MAAM,CAAC,SAAS,GAAG,IAAI;QAClE,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAAE,YAAA,MAAM,CAAC,MAAM,GAAG,IAAI;QAC7D,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAAE,YAAA,MAAM,CAAC,OAAO,GAAG,IAAI;QAEpE,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,IAAI;IACxE;AAEO,IAAA,yBAAyB,CAAC,EAAc,EAAA;AAC7C,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;wGA3EW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,SAAA,EATxB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,wBAAwB,CAAC;AACvD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AACtF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAEU,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAZpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,8BAA8B,CAAC;AACvD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AACtF,qBAAA;AACF,iBAAA;;sBAEE;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBAIA;;sBAIA;;sBAIA;;sBAIA;;sBAKA,WAAW;uBAAC,WAAW;;sBAGvB,WAAW;uBAAC,iBAAiB;;sBAC7B,WAAW;uBAAC,uBAAuB;;sBACnC,WAAW;uBAAC,oBAAoB;;sBAChC,WAAW;uBAAC,qBAAqB;;sBACjC,WAAW;uBAAC,mBAAmB;;sBAE/B;;AAyCH,SAAS,aAAa,CAAC,CAAM,EAAA;AAC3B,IAAA,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG;AACvE;AAEA,SAAS,YAAY,CAAC,CAAM,EAAE,QAAgB,EAAA;AAC5C,IAAA,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACnB,IAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ;AAC1C;;MCpGa,qBAAqB,CAAA;IACN,IAAI,GAAG,OAAO;IACT,SAAS,GAAG,OAAO;IAClB,UAAU,GAAG,OAAO;IAClB,YAAY,GAAG,OAAO;IACZ,YAAY,GAAG,EAAE;IACzB,cAAc,GAAG,MAAM;IAC9B,KAAK,GAAG,MAAM,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC1E,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAE5C,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC;QAC/B,cAAc,CAAC,MAAK;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC9E,YAAA,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC;AAClC,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,QAAQ,CAAC,OAAwB,EAAA;AAC/B,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;AAC5C,QAAA,IAAI,CAAC,CAAC;AAAE,YAAA,OAAO,IAAI;QACnB,MAAM,EAAE,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,QAAA,OAAO,EAAE,GAAG,IAAI,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE;IAC3C;wGAvBW,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,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,SAAA,EALrB;AACT,YAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AAC7F,YAAA,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AACnF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAEU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBARjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0CAA0C;AACpD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AAC7F,wBAAA,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AACnF,qBAAA;AACF,iBAAA;;sBAEE,WAAW;uBAAC,WAAW;;sBACvB,WAAW;uBAAC,gBAAgB;;sBAC5B,WAAW;uBAAC,iBAAiB;;sBAC7B,WAAW;uBAAC,mBAAmB;;sBAC/B,WAAW;uBAAC,oBAAoB;;sBAChC,WAAW;uBAAC,qBAAqB;;sBACjC;;;MCpBU,6BAA6B,GAAG,IAAI,cAAc,CAC7D,+BAA+B;;MCOpB,cAAc,CAAA;AACR,IAAA,kBAAkB,GAAyB,MAAM,CAAC,mBAAmB,CAAC;IAE1C,aAAa,GAAG,EAAE;IAClC,KAAK,GAAG,MAAM,CACzC,6BAA6B,EAC7B,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB;AAES,IAAA,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,KAAK;IAEtD,MAAM,GAAA;AACd,QAAA,IAAI,CAAC,KAAK,EAAE,wBAAwB,EAAE;IACxC;AACA,IAAA,IAAc,aAAa,GAAA;QACzB,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,uCAAuC,CAAC;IACnF;AACA,IAAA,IAAc,aAAa,GAAA;QACzB,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,uCAAuC,CAAC;IACnF;wGAnBW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,0JCf3B,mVAaA,EAAA,MAAA,EAAA,CAAA,oqBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDEa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAAA,UAAA,EACvB,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mVAAA,EAAA,MAAA,EAAA,CAAA,oqBAAA,CAAA,EAAA;;sBAK9C,WAAW;uBAAC,qBAAqB;;sBACjC;;;METU,6BAA6B,CAAA;IACX,IAAI,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5C,KAAK,GAAG,MAAM,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE3F,IAAA,WAAA,GAAA;QACE,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;IACvD;wGANW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2FAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EACN,2FAA2F;AAC7F,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;sBAEE;;sBACA;;;MCNU,sBAAsB,CAAA;IACY,IAAI,GAAG,EAAE;wGAD3C,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;sBAEE,WAAW;uBAAC,qBAAqB;;;MCDvB,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,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MC8BY,SAAS,CAAA;AACD,IAAA,KAAK,GAAG,MAAM,CAAC,0BAA0B,CAAC;AACvB,IAAA,MAAM;AACN,IAAA,MAAM;IAE5B,IAAI,GAAY,EAAE;IAClB,KAAK,GAAY,EAAE;IACnB,OAAO,GAAY,EAAE;IACrB,QAAQ,GAAY,EAAE;IACtB,MAAM,GAA2B,IAAI;IACrC,UAAU,GAAsB,gBAAgB;IAChD,UAAU,GAA+B,QAAQ;AAEhD,IAAA,KAAK,GAAG,MAAM,CAAC,CAAC,4EAAC;AACzB,IAAA,cAAc,GAAG,KAAK,CAAS,EAAE,qFAAC;AAClC,IAAA,OAAO,GAAG,KAAK,CAAiB,IAAI,8EAAC;AACrC,IAAA,iBAAiB,GAAG,KAAK,CAAsC,SAAS,wFAAC;AAElF,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;YACnB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO;AACxC,YAAA,IAAI,CAAC,EAAE;gBAAE;AAET,YAAA,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,MAAK;AAClE,gBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACjC,YAAA,CAAC,CAAC;YAEF,SAAS,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;AACpC,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM;IACtB;AACA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM;IACtB;AAEQ,IAAA,iBAAiB,CAAC,MAA2B,EAAA;QACnD,IAAI,MAAM,CAAC,UAAU,CAAC;AAAE,YAAA,OAAO,gCAAgC;QAC/D,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC;AAAE,YAAA,OAAO,6BAA6B;AACnF,QAAA,OAAO,EAAE;IACX;AAEQ,IAAA,mBAAmB,CAAC,GAAQ,EAAA;QAClC,IAAI,GAAG,EAAE,SAAS;AAAE,YAAA,OAAO,0CAA0C;QACrE,IAAI,GAAG,EAAE,SAAS;AAAE,YAAA,OAAO,0CAA0C;QACrE,IAAI,GAAG,EAAE,SAAS;AAAE,YAAA,OAAO,0CAA0C;QACrE,IAAI,GAAG,EAAE,MAAM;AAAE,YAAA,OAAO,uCAAuC;QAC/D,IAAI,GAAG,EAAE,OAAO;AAAE,YAAA,OAAO,wCAAwC;AACjE,QAAA,OAAO,wCAAwC;IACjD;AAES,IAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,yFAAC;AAE5D,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;QACvC,IAAI,CAAC,KAAK,EAAE;AACZ,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;QAC9B,IAAI,OAAO,KAAK,IAAI;AAAE,YAAA,OAAO,OAAO;QACpC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AAC9B,QAAA,IAAI,CAAC,CAAC;AAAE,YAAA,OAAO,KAAK;AACpB,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ;AAAE,YAAA,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;AACpD,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,WAAW;AAAE,YAAA,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;AACnF,QAAA,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AAChD,IAAA,CAAC,sFAAC;AAEO,IAAA,WAAW,GAAG,QAAQ,CAAsC,MAAK;QACxE,IAAI,CAAC,KAAK,EAAE;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AAAE,YAAA,OAAO,SAAS;QAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE;QAC/C,IAAI,SAAS,EAAE;AACb,YAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE;QACjC;QAEA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM;AAC3C,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,SAAS;AAE7B,QAAA,IAAI,MAAM,CAAC,iBAAiB,CAAC,EAAE;AAC7B,YAAA,OAAO,MAAM,CAAC,iBAAiB,CAAC;QAClC;AAEA,QAAA,OAAO,SAAS;AAClB,IAAA,CAAC,kFAAC;AAEO,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;QAChC,IAAI,CAAC,KAAK,EAAE;AAEZ,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AAAE,YAAA,OAAO,EAAE;QAEtC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE;AAC/C,QAAA,IAAI,SAAS;AAAE,YAAA,OAAO,SAAS;QAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM;AAC3C,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,EAAE;QAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;AAC7C,QAAA,IAAI,MAAM;AAAE,YAAA,OAAO,MAAM;AAEzB,QAAA,IAAI,MAAM,CAAC,iBAAiB,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC5D;AAEA,QAAA,OAAO,4BAA4B;AACrC,IAAA,CAAC,+EAAC;AAEO,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;QACxC,IAAI,CAAC,KAAK,EAAE;QACZ,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AAC9B,QAAA,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ;AACtB,IAAA,CAAC,uFAAC;wGA9GS,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EANT;YACT,0BAA0B;AAC1B,YAAA,EAAE,OAAO,EAAE,6BAA6B,EAAE,WAAW,EAAE,0BAA0B,EAAE;SACpF,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAKa,sBAAsB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACtB,sBAAsB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtCtC,oqEAyEA,m5MD/CY,cAAc,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,sBAAsB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAS1D,SAAS,EAAA,UAAA,EAAA,CAAA;kBAZrB,SAAS;+BACE,oBAAoB,EAAA,UAAA,EAClB,IAAI,EAAA,OAAA,EACP,CAAC,cAAc,EAAE,mBAAmB,EAAE,sBAAsB,CAAC,EAAA,SAAA,EAG3D;wBACT,0BAA0B;AAC1B,wBAAA,EAAE,OAAO,EAAE,6BAA6B,EAAE,WAAW,EAAE,0BAA0B,EAAE;qBACpF,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,oqEAAA,EAAA,MAAA,EAAA,CAAA,21MAAA,CAAA,EAAA;;sBAI9C,YAAY;uBAAC,sBAAsB;;sBACnC,YAAY;uBAAC,sBAAsB;;sBAEnC;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;;MESU,aAAa,CAAA;AACP,IAAA,kBAAkB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAChD,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAEf,KAAK,GAAG,MAAM,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE/C,IAAA,OAAO;AACH,IAAA,WAAW;AACX,IAAA,WAAW;AACV,IAAA,YAAY;AAE7D,IAAA,IAAmC,QAAQ,GAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,IAAI;IACpC;AAEA,IAAA,IAAsC,WAAW,GAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,MAAM,GAAG,IAAI;IAC5C;AAEA,IAAA,IAAuC,YAAY,GAAA;QACjD,OAAO,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO;IACzC;AAEiB,IAAA,UAAU,GAAG,MAAM,CAAsB,EAAE,iFAAC;IAE7D,IAAa,KAAK,CAAC,CAAyC,EAAA;QAC1D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,EAAE;AAEjB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QACpC,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC;AAE7C,QAAA,IAAI,OAAO;AAAE,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;IACpC;IAEQ,SAAS,GAAG,KAAK;IAEzB,IAAa,QAAQ,CAAC,CAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC;AAElB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;QAEzB,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAAE,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAAE,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;IAClE;AAEA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;IACvB;AAES,IAAA,QAAQ;IACR,OAAO,GAAG,EAAE;IACZ,WAAW,GAAG,EAAE;IAChB,cAAc,GAAG,EAAE;IACnB,UAAU,GAAG,IAAI;IACjB,gBAAgB,GAAG,EAAE;IACrB,aAAa,GAAG,IAAI;IACpB,iBAAiB,GAAG,EAAE;IACtB,iBAAiB,GAAG,EAAE;IACtB,cAAc,GAAG,OAAO;IACxB,oBAAoB,GAAG,EAAE;IACzB,kBAAkB,GAAG,IAAI;AACzB,IAAA,WAAW;IACX,QAAQ,GAAG,wBAAwB;IACnC,gBAAgB,GAAqB,MAAM;AAEnC,IAAA,SAAS,GAAG,MAAM,CAAC,KAAK,gFAAC;IAE1C,IAAa,QAAQ,CAAC,CAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC;AAAE,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IAC7B;AAEA,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE;IACzB;AAES,IAAA,IAAI,GAAG,MAAM,CAAC,KAAK,2EAAC;AACpB,IAAA,UAAU,GAAG,MAAM,CAAC,EAAE,iFAAC;AACvB,IAAA,WAAW,GAAG,MAAM,CAAC,CAAC,kFAAC;AACvB,IAAA,SAAS,GAAG,MAAM,CAAC,KAAK,gFAAC;AAEjB,IAAA,MAAM,GAAG,MAAM,CAAM,IAAI,6EAAC;AAC1B,IAAA,MAAM,GAAG,MAAM,CAAe,EAAE,6EAAC;AAEzC,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;QACrC,MAAM,GAAG,GAAwB,EAAE;QACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC;AAE5C,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AAEvB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;AACrC,YAAA,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE;QAEA,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;AAC9D,IAAA,CAAC,oFAAC;AAEO,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AACjC,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC;AACjC,IAAA,CAAC,gFAAC;AAEO,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACpC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE;QAClC,IAAI,CAAC,KAAK,CAAC,MAAM;AAAE,YAAA,OAAO,EAAE;AAE5B,QAAA,OAAO;AACJ,aAAA,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;aAC9B,MAAM,CAAC,OAAO;AACd,aAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;AAClC,IAAA,CAAC,mFAAC;AAEO,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;QACpC,IAAI,IAAI,CAAC,YAAY,EAAE;AAAE,YAAA,OAAO,IAAI,CAAC,UAAU,EAAE;AACjD,QAAA,OAAO,EAAE;AACX,IAAA,CAAC,mFAAC;AAEO,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AACtC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC;AAEhC,QAAA,OAAO,GAAG,EAAE,EAAE,IAAI,IAAI;AACxB,IAAA,CAAC,qFAAC;AAEO,IAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAK;AAC3C,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC;AAAE,YAAA,OAAO,EAAE;AACvC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,CAAC;AAAE,YAAA,OAAO,EAAE;AAE3C,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;cACvB,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,cAAc,IAAI;AACtD,cAAE,IAAI,CAAC,cAAc,IAAI,EAAE;AAC/B,IAAA,CAAC,0FAAC;AAEO,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;AAC5C,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC;AAAE,YAAA,OAAO,EAAE;AACvC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,CAAC;AAAE,YAAA,OAAO,EAAE;AAE3C,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;cACvB,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,WAAW,IAAI;AAChD,cAAE,IAAI,CAAC,WAAW,IAAI,EAAE;AAC5B,IAAA,CAAC,2FAAC;AAEO,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AACjC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC;AAClD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AAC7D,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AACjC,IAAA,CAAC,gFAAC;AAEO,IAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,2EAAC;AAC5C,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,gFAAC;AACpD,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,oFAAC;AAC3D,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,mFAAC;AAC7D,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,+EAAC;IACpD,YAAY,GAAG,QAAQ,CAC9B,MAAM,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,KAAK,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CACjE;IACQ,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;AAEpF,IAAA,OAAO,GAAG,GAAG,CAAC;IAEd,aAAa,GAAG,CAAC;AACjB,IAAA,SAAS;AACT,IAAA,gBAAgB,GAAe,MAAK,EAAE,CAAC;AACvC,IAAA,eAAe,GAAqB,MAAK,EAAE,CAAC;IAC5C,iBAAiB,GAAiC,SAAS;IAEnE,YAAY,GAAuB,IAAI;AAEvB,IAAA,GAAG,GAAG,CAAA,eAAA,EAAkB,EAAE,aAAa,CAAC,GAAG,EAAE;AAE7D,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,UAAU,EAAE;QAEjB,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,mBAAmB,EAAE;AAC5B,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;YAE1B,IAAI,MAAM,EAAE;AACV,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,oBAAoB,EAAE;YAC7B;iBAAO;gBACL,IAAI,CAAC,gBAAgB,EAAE;AACvB,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,UAAU,EAAE;YACnB;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,oBAAoB,EAAE;IAC7B;IAEA,eAAe,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa;QAE/C,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,YAAY;gBACd;qBACE,OAAO,CAAC,qBAAqB;AAC9B,sBAAE,aAAa,CAAC,4BAA4B,CAAiB,IAAI,IAAI;QAC3E;AAEA,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa;AAE1C,QAAA,IAAI,CAAC,EAAE;YAAE;QACT,IAAI,OAAO,cAAc,KAAK,WAAW;YAAE;AAE3C,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;AAE1B,QAAA,IAAK,QAAgB,CAAC,KAAK,EAAE,KAAK,EAAE;AACjC,YAAA,QAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC1E;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC;IAC/D;AAEA,IAAA,UAAU,CAAC,GAAQ,EAAA;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1C;AAEA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;IAC3B;AAEA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;IAC5B;AAEA,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;IAChC;IAEQ,SAAS,CAAC,GAAY,EAAE,MAAY,EAAA;AAC1C,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,EAAE;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IACvD;AAEQ,IAAA,SAAS,CAAC,IAAuB,EAAA;QACvC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;QACvD,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE;IAC5C;AAEQ,IAAA,eAAe,CAAC,IAAuB,EAAA;QAC7C,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;AACnE,QAAA,OAAO,IAAI,CAAC,WAAW,IAAI,EAAE;IAC/B;AAEQ,IAAA,WAAW,CAAC,IAAuB,EAAA;QACzC,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3D,QAAA,OAAO,IAAI,CAAC,OAAO,IAAI,EAAE;IAC3B;AAEQ,IAAA,cAAc,CAAC,IAAuB,EAAA;QAC5C,OAAO;AACL,YAAA,IAAI,CAAC,UAAU;AACf,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AACpB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AAC1B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACtB,YAAA,IAAI,CAAC,QAAQ;AACb,YAAA,IAAI,CAAC,cAAc;AACnB,YAAA,IAAI,CAAC,UAAU;AAChB;aACE,MAAM,CAAC,OAAO;aACd,IAAI,CAAC,GAAG;AACR,aAAA,WAAW,EAAE;IAClB;IAEQ,YAAY,CAAC,CAAM,EAAE,CAAM,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;AACpC,YAAA,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;AAEpC,YAAA,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM;AAAE,gBAAA,OAAO,KAAK;AAEzC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClC,gBAAA,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAA,OAAO,KAAK;YAC1C;AAEA,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI;AAAE,YAAA,OAAO,IAAI;AACvC,QAAA,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI;AAAE,YAAA,OAAO,KAAK;QAExC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACtB;IAEQ,EAAE,CAAC,CAAM,EAAE,CAAM,EAAA;QACvB,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,QAAQ;AAAE,YAAA,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAEnE,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACxB;IAEQ,oBAAoB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS;YAAE;AAE1C,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE;AAC1D,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACrD;IACF;IAEQ,eAAe,CAAC,KAA0B,EAAE,GAAwB,EAAA;AAC1E,QAAA,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;AACrB,YAAA,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;AACrB,gBAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAEX,gBAAA,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE;oBACtB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC;gBACvC;YACF;AAAO,iBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;gBAC7B,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC;YACpC;QACF;IACF;IAEQ,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACjD;IAEO,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAAE;QAEvB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,CAAC,CAAC,GAAG,EAAE;AAEP,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAClB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,oBAAoB,EAAE;IAC7B;AAEQ,IAAA,aAAa,CAAC,IAAuB,EAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM;YAAE;AAE5B,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YACd,GAAG,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA;gBACE,KAAK,EAAE,IAAI,CAAC,aAAa;gBACzB,QAAQ,EAAE,IAAI,CAAC,gBAAgB;gBAC/B,KAAK,EAAE,IAAI,CAAC,QAAQ;AACrB,aAAA;AACF,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,oBAAoB,EAAE;IAC7B;IAEQ,WAAW,CAAC,KAA0B,EAAE,OAAe,EAAA;QAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAEzC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,KAAK;AAEvB,QAAA,MAAM,SAAS,GAAG,CAAC,EAAqB,KAAI;YAC1C,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC/C,QAAA,CAAC;AAED,QAAA,MAAM,IAAI,GAAG,CAAC,IAAyB,KAAyB;YAC9D,MAAM,GAAG,GAAwB,EAAE;AAEnC,YAAA,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;AACpB,gBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;AACxB,oBAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;oBACX;gBACF;AAEA,gBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;oBACtB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAEzB,oBAAA,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE;AACzC,wBAAA,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;oBAChC;oBAEA;gBACF;AAEA,gBAAA,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE;oBACtB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAE5B,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE;AACzD,wBAAA,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;oBACnC;gBACF;AAAO,qBAAA,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;AACvB,oBAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACb;YACF;AAEA,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;AAClC,QAAA,CAAC;AAED,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB;AAEQ,IAAA,eAAe,CAAC,KAA0B,EAAA;QAChD,MAAM,GAAG,GAAwB,EAAE;AAEnC,QAAA,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;AACrB,YAAA,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;gBACxB,IAAI,CAAC,GAAG,CAAC,MAAM;oBAAE;gBACjB,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,SAAS;oBAAE;YACtC;AAEA,YAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACb;QAEA,OAAO,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS;YAAE,GAAG,CAAC,KAAK,EAAE;AAC3D,QAAA,OAAO,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,SAAS;YAAE,GAAG,CAAC,GAAG,EAAE;AAE9D,QAAA,OAAO,GAAG;IACZ;AAEQ,IAAA,kBAAkB,CAAC,KAA0B,EAAA;QACnD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa;AAAE,YAAA,OAAO,KAAK;AAEvD,QAAA,MAAM,QAAQ,GAAG,CAAC,EAAqB,KAAI;AACzC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AACvB,YAAA,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;YAErC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAA,CAAC;AAED,QAAA,MAAM,cAAc,GAAG,CAAC,OAA4B,KAAI;YACtD,MAAM,KAAK,GAAwB,EAAE;YACrC,MAAM,MAAM,GAAwB,EAAE;AAEtC,YAAA,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;AACvB,gBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;AACrB,oBAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACf;AAAO,qBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;AAC7B,oBAAA,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChE;qBAAO;AACL,oBAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChB;YACF;YAEA,MAAM,GAAG,GAAwB,EAAE;YACnC,MAAM,GAAG,GAAwB,EAAE;AAEnC,YAAA,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE;AACtB,gBAAA,IAAI,QAAQ,CAAC,EAAE,CAAC,EAAE;AAChB,oBAAA,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACd;qBAAO;AACL,oBAAA,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACd;YACF;YAEA,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;AACpC,QAAA,CAAC;QAED,MAAM,GAAG,GAAwB,EAAE;QACnC,IAAI,GAAG,GAAwB,EAAE;QAEjC,MAAM,KAAK,GAAG,MAAK;YACjB,IAAI,CAAC,GAAG,CAAC,MAAM;gBAAE;YAEjB,GAAG,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YAChC,GAAG,GAAG,EAAE;AACV,QAAA,CAAC;AAED,QAAA,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;AACrB,YAAA,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;AACxB,gBAAA,KAAK,EAAE;AACP,gBAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACb;iBAAO;AACL,gBAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACb;QACF;AAEA,QAAA,KAAK,EAAE;AAEP,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;IAClC;AAEQ,IAAA,SAAS,CAAC,KAA0B,EAAA;QAC1C,MAAM,IAAI,GAAuB,EAAE;QACnC,IAAI,WAAW,GAAG,CAAC;AAEnB,QAAA,MAAM,QAAQ,GAAG,CAAC,EAAqB,KAAI;YACzC,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM;AACzC,YAAA,MAAM,UAAU,GAAG,CAAC,WAAW;AAC/B,YAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ;AAC9B,YAAA,MAAM,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK;YAE/D,IAAI,CAAC,IAAI,CAAC;AACR,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,GAAG,EAAE,CAAA,KAAA,EAAQ,WAAW,CAAA,CAAA,EAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA,CAAE;AACpE,gBAAA,EAAE,EAAE,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,KAAA,EAAQ,WAAW,CAAA,CAAE;gBACpC,WAAW;AACX,gBAAA,IAAI,EAAE,EAAE;gBACR,QAAQ;gBACR,QAAQ;gBACR,WAAW;gBACX,UAAU;AACX,aAAA,CAAC;AAEF,YAAA,WAAW,EAAE;AACf,QAAA,CAAC;AAED,QAAA,MAAM,IAAI,GAAG,CAAC,IAAyB,KAAI;AACzC,YAAA,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;AACpB,gBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;AACxB,oBAAA,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,IAAI,CAAC,MAAM,CAAA,CAAE,EAAE,CAAC;oBACzD;gBACF;AAEA,gBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;oBACtB,IAAI,CAAC,IAAI,CAAC;AACR,wBAAA,IAAI,EAAE,OAAO;AACb,wBAAA,GAAG,EAAE,CAAA,IAAA,EAAO,IAAI,CAAC,MAAM,CAAA,CAAA,EAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAA,CAAE;wBACxD,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACrB,qBAAA,CAAC;AAEF,oBAAA,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;oBACb;gBACF;gBAEA,QAAQ,CAAC,CAAC,CAAC;YACb;AACF,QAAA,CAAC;QAED,IAAI,CAAC,KAAK,CAAC;AAEX,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;AAEtD,QAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3B;AAEA,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AAEvB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;AACrC,YAAA,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3C;AAEA,QAAA,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC;IACvC;AAEQ,IAAA,QAAQ,CAAC,IAAS,EAAA;AACxB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AAEzB,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC;YAAE;AAElC,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;IAC5B;AAEA,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE;AAEpB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AACzB,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE;QAC9C,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAEnD,QAAA,IAAI,GAAG,IAAI,CAAC,EAAE;AACZ,YAAA,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACpB;aAAO;AACL,YAAA,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACjB;AAEA,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,oBAAoB,EAAE;IAC7B;AAEA,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,IAAI,IAAI,CAAC,QAAQ;YAAE;AAEnB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACtB;AAEA,IAAA,aAAa,CAAC,IAAuB,EAAA;QACnC,IAAI,IAAI,CAAC,QAAQ;YAAE;AAEnB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;AACzB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACxB;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,oBAAoB,EAAE;QAC7B;aAAO;AACL,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/B;IACF;IAEA,eAAe,GAAA;QACb,IAAI,IAAI,CAAC,QAAQ;YAAE;AAEnB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;AAChB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACrB;IACF;IAEA,UAAU,GAAA;QACR,IAAI,IAAI,CAAC,QAAQ;YAAE;AAEnB,QAAA,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;QAEzB,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACrB;AAEA,IAAA,cAAc,CAAC,CAAS,EAAA;QACtB,IAAI,IAAI,CAAC,QAAQ;YAAE;AAEnB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;AAChB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACrB;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB;AAEA,IAAA,gBAAgB,CAAC,EAAiB,EAAA;QAChC,IAAI,IAAI,CAAC,QAAQ;YAAE;AAEnB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;AAChB,YAAA,IAAI,EAAE,CAAC,GAAG,KAAK,WAAW,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,EAAE;gBAChD,EAAE,CAAC,cAAc,EAAE;AACnB,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;AACvB,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvB;YACF;YAEA,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;gBACtF,EAAE,CAAC,cAAc,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;AAC3B,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvB;YACF;YAEA;QACF;AAEA,QAAA,IACE,EAAE,CAAC,GAAG,KAAK,WAAW;YACtB,EAAE,CAAC,GAAG,KAAK,SAAS;YACpB,EAAE,CAAC,GAAG,KAAK,MAAM;YACjB,EAAE,CAAC,GAAG,KAAK,KAAK;YAChB,EAAE,CAAC,GAAG,KAAK,OAAO;AAClB,YAAA,EAAE,CAAC,GAAG,KAAK,QAAQ,EACnB;AACA,YAAA,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YACvB;QACF;AAEA,QAAA,IACE,CAAC,EAAE,CAAC,GAAG,KAAK,WAAW,IAAI,EAAE,CAAC,GAAG,KAAK,WAAW;YACjD,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,CAAC,IAAI,CAAC,UAAU,EAAE,EAClB;YACA,EAAE,CAAC,cAAc,EAAE;YACnB,IAAI,CAAC,MAAM,EAAE;QACf;IACF;AAEA,IAAA,cAAc,CAAC,EAAiB,EAAA;AAC9B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;QAE7B,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE;AAEnB,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;QAC5B,MAAM,KAAK,GAAG,CAAC,CAAS,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAE1D,QAAA,QAAQ,EAAE,CAAC,GAAG;AACZ,YAAA,KAAK,WAAW;gBACd,EAAE,CAAC,cAAc,EAAE;AACnB,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;gBACnD;AAEF,YAAA,KAAK,SAAS;gBACZ,EAAE,CAAC,cAAc,EAAE;AACnB,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;gBACnD;AAEF,YAAA,KAAK,MAAM;gBACT,EAAE,CAAC,cAAc,EAAE;AACnB,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvB;AAEF,YAAA,KAAK,KAAK;gBACR,EAAE,CAAC,cAAc,EAAE;AACnB,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;gBACzB;AAEF,YAAA,KAAK,OAAO;gBACV,EAAE,CAAC,cAAc,EAAE;AACnB,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC;gBAClD;YAEF,KAAK,YAAY,EAAE;gBACjB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAErC,gBAAA,IAAI,GAAG,EAAE,WAAW,EAAE;oBACpB,EAAE,CAAC,cAAc,EAAE;AACnB,oBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC9B;gBAEA;YACF;AAEA,YAAA,KAAK,QAAQ;gBACX,EAAE,CAAC,cAAc,EAAE;AACnB,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;gBACpB;;IAEN;IAEQ,mBAAmB,CAAC,KAAK,GAAG,KAAK,EAAA;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YACzB;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,OAAO,EAAE;AACrC,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YACxB;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,MAAM,EAAE;AACpC,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YACzB;QACF;AAEA,QAAA,MAAM,KAAK,GAAG,EAAE,IAAI,CAAC,aAAa;QAElC,qBAAqB,CAAC,MAAK;YACzB,qBAAqB,CAAC,MAAK;AACzB,gBAAA,IAAI,KAAK,KAAK,IAAI,CAAC,aAAa;oBAAE;AAElC,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACzB,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,WAAW,CAAC,MAAe,EAAA;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YACzB;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,OAAO,EAAE;AACrC,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YACxB;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,MAAM,EAAE;AACpC,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YACzB;QACF;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;YACxB,IAAI,IAAI,CAAC,SAAS,EAAE;AAAE,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YAC/C;QACF;AAEA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa;AAC5C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa;AAChD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa;AAEjD,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS;YAAE;AAErC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE;QAEhC,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,IAAI,CAAC,SAAS,EAAE;AAAE,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QACjD;AAEA,QAAA,MAAM,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC;AACrC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,IAAI;QAEnD,MAAM,UAAU,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK;AACxD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,GAAG,GAAG,UAAU,CAAC;QAElE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;AAE3C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE;QAEhC,MAAM,aAAa,GAAG,CAAC;QACvB,MAAM,UAAU,GAAG,CAAC;AAEpB,QAAA,MAAM,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa;AAE3F,QAAA,IAAI,IAAI,KAAK,OAAO,EAAE;AACpB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;QAC1B;IACF;AAEQ,IAAA,EAAE,CAAC,CAAS,EAAA;AAClB,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;AAElC,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACnC;IAEQ,oBAAoB,GAAA;QAC1B,qBAAqB,CAAC,MAAK;YACzB,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,IAAI;AAE3C,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI;YAC9C;AACF,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,iBAAiB,CAAC,CAAM,EAAA;QAC9B,IAAI,CAAC,IAAI,IAAI;AAAE,YAAA,OAAO,KAAK;QAE3B,IAAI,UAAU,GAAG,KAAK;AAEtB,QAAA,MAAM,IAAI,GAAG,CAAC,KAA0B,KAAI;AAC1C,YAAA,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;AACrB,gBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;AACtB,oBAAA,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;oBACb;gBACF;AAEA,gBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;oBACrB,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;AACvB,wBAAA,UAAU,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM;wBAChC;oBACF;AAEA,oBAAA,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE;AACtB,wBAAA,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAClB;gBACF;YACF;AACF,QAAA,CAAC;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AAEvB,QAAA,OAAO,UAAU;IACnB;AAEQ,IAAA,aAAa,CAAC,IAAS,EAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE;AAC3C,YAAA,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACrD;AAEA,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IACnD;IAEA,kBAAkB,GAAA;AAChB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE;AAElC,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,CAAC;QACzD;AAEA,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACjE;QAEA,OAAO,CAAA,EAAG,KAAK,CAAA,aAAA,CAAe;IAChC;IAEA,QAAQ,GAAG,CAAC,CAAS,EAAE,CAAmB,KAAK,CAAC,CAAC,GAAG;wGA13BzC,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,SAAA,EATb;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,aAAa,CAAC;AAC5C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAU6B,UAAU,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACN,UAAU,qGACV,UAAU,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACT,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjE/C,utOAmNA,EAAA,MAAA,EAAA,CAAA,0vLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED7KI,cAAc,oRACd,8BAA8B,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC9B,4BAA4B,EAAA,QAAA,EAAA,oCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAE5B,gBAAgB,uPADhB,sBAAsB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAcb,aAAa,EAAA,UAAA,EAAA,CAAA;kBArBzB,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EAAA,OAAA,EACP;wBACP,cAAc;wBACd,8BAA8B;wBAC9B,4BAA4B;wBAC5B,sBAAsB;wBACtB,gBAAgB;qBACjB,EAAA,SAAA,EAGU;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,mBAAmB,CAAC;AAC5C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,utOAAA,EAAA,MAAA,EAAA,CAAA,0vLAAA,CAAA,EAAA;;sBAO9C;;sBAEA,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;;sBACzC,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;;sBAC7C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;;sBAC7C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;;sBAE9C,WAAW;uBAAC,gBAAgB;;sBAI5B,WAAW;uBAAC,mBAAmB;;sBAI/B,WAAW;uBAAC,oBAAoB;;sBAMhC;;sBAaA;;sBAaA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAIA;;;AE7HH;;ACAA;;AAEG;;;;"}
|