@ojiepermana/angular 0.0.3 → 0.1.1
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/README.md +55 -9
- package/fesm2022/ojiepermana-angular-internal.mjs +433 -2
- package/fesm2022/ojiepermana-angular-internal.mjs.map +1 -1
- package/fesm2022/ojiepermana-angular-layout.mjs +52 -59
- package/fesm2022/ojiepermana-angular-layout.mjs.map +1 -1
- package/fesm2022/ojiepermana-angular-navigation-horizontal.mjs +721 -0
- package/fesm2022/ojiepermana-angular-navigation-horizontal.mjs.map +1 -0
- package/fesm2022/ojiepermana-angular-navigation-vertical.mjs +1647 -0
- package/fesm2022/ojiepermana-angular-navigation-vertical.mjs.map +1 -0
- package/fesm2022/ojiepermana-angular-navigation.mjs +472 -0
- package/fesm2022/ojiepermana-angular-navigation.mjs.map +1 -0
- package/fesm2022/ojiepermana-angular-shell.mjs +6 -1
- package/fesm2022/ojiepermana-angular-shell.mjs.map +1 -1
- package/fesm2022/ojiepermana-angular-theme-component.mjs +12 -26
- package/fesm2022/ojiepermana-angular-theme-component.mjs.map +1 -1
- package/fesm2022/ojiepermana-angular-theme-service.mjs +2 -6
- package/fesm2022/ojiepermana-angular-theme-service.mjs.map +1 -1
- package/fesm2022/ojiepermana-angular.mjs.map +1 -1
- package/layout/README.md +3 -3
- package/{theme/styles/layout → layout/src/component/horizontal}/horizontal.css +39 -26
- package/{theme/styles/layout → layout/src/component/vertical}/vertical.css +10 -12
- package/{theme/styles/layout/index.css → layout/src/layout.css} +0 -3
- package/navigation/README.md +301 -0
- package/navigation/horizontal/README.md +49 -0
- package/navigation/vertical/README.md +0 -0
- package/package.json +13 -1
- package/shell/README.md +5 -1
- package/styles/index.css +1 -1
- package/theme/README.md +3 -6
- package/theme/styles/adapters/material-ui/index.css +1 -5
- package/theme/styles/presets/styles/flat.css +3 -6
- package/theme/styles/presets/styles/glass.css +1 -7
- package/theme/styles/presets/styles/index.css +1 -1
- package/theme/styles/roles/index.css +18 -0
- package/theme/styles/tokens/foundation.css +4 -7
- package/types/ojiepermana-angular-internal.d.ts +65 -1
- package/types/ojiepermana-angular-layout.d.ts +1 -1
- package/types/ojiepermana-angular-navigation-horizontal.d.ts +81 -0
- package/types/ojiepermana-angular-navigation-vertical.d.ts +262 -0
- package/types/ojiepermana-angular-navigation.d.ts +228 -0
- package/types/ojiepermana-angular-shell.d.ts +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ojiepermana-angular-navigation-vertical.mjs","sources":["../../../projects/library/navigation/vertical/core/vertical-navigation.base.ts","../../../projects/library/navigation/vertical/types/basic.ts","../../../projects/library/navigation/vertical/types/divider.ts","../../../projects/library/navigation/vertical/types/spacer.ts","../../../projects/library/navigation/vertical/types/collapsable.ts","../../../projects/library/navigation/vertical/types/aside.ts","../../../projects/library/navigation/vertical/types/group.ts","../../../projects/library/navigation/vertical/core/vertical-navigation.shared.ts","../../../projects/library/navigation/vertical/default/default.ts","../../../projects/library/navigation/vertical/collapsible/collapsible.ts","../../../projects/library/navigation/vertical/index.ts","../../../projects/library/navigation/vertical/ojiepermana-angular-navigation-vertical.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n ViewChild,\n DOCUMENT,\n} from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter, ReplaySubject, Subject, takeUntil } from 'rxjs';\nimport {\n NavigationService,\n NavigationAsideItem,\n NavigationItem,\n VerticalNavigationAppearance,\n VerticalNavigationMode,\n VerticalNavigationPosition,\n shouldRenderNavigationItem,\n} from '@ojiepermana/angular/navigation';\nimport { trackNavigationTreeItem } from '@ojiepermana/angular/internal';\n\n@Directive()\nexport abstract class VerticalNavigationBaseComponent implements OnChanges, OnInit, AfterViewInit, OnDestroy {\n protected _changeDetectorRef = inject(ChangeDetectorRef);\n protected _document = inject(DOCUMENT);\n protected _elementRef = inject(ElementRef);\n protected _renderer2 = inject(Renderer2);\n protected _router = inject(Router);\n protected _navigationService = inject(NavigationService);\n\n @Input() autoCollapse = true;\n @Input() inner = false;\n @Input() mode: VerticalNavigationMode = 'side';\n @Input() navigation: NavigationItem[] = [];\n @Input() opened = true;\n @Input() position: VerticalNavigationPosition = 'left';\n @Input() transparentOverlay = false;\n\n @Output() readonly appearanceChanged = new EventEmitter<VerticalNavigationAppearance>();\n @Output() readonly modeChanged = new EventEmitter<VerticalNavigationMode>();\n @Output() readonly openedChanged = new EventEmitter<boolean>();\n @Output() readonly positionChanged = new EventEmitter<VerticalNavigationPosition>();\n\n @ViewChild('navigationContent') protected _navigationContentEl?: ElementRef;\n\n activeAsideItemId: string | null = null;\n onCollapsableItemCollapsed = new ReplaySubject<NavigationItem>(1);\n onCollapsableItemExpanded = new ReplaySubject<NavigationItem>(1);\n onRefreshed = new ReplaySubject<boolean>(1);\n\n protected _animationsEnabled = false;\n protected _asideOverlay: HTMLElement | null = null;\n protected _hovered = false;\n protected _mutationObserver?: MutationObserver;\n protected _overlay: HTMLElement | null = null;\n protected _pendingTimeouts: ReturnType<typeof setTimeout>[] = [];\n protected _unsubscribeAll = new Subject<void>();\n\n protected abstract _componentPrefix: string;\n protected abstract _asideWrapperClass: string;\n private readonly _overlayClickHandler = (): void => this.close();\n private readonly _asideOverlayClickHandler = (): void => this.closeAside();\n\n // Abstract input for appearance since it has different default values\n abstract appearance: VerticalNavigationAppearance;\n\n get hostClasses(): Record<string, boolean> {\n return {\n [`${this._componentPrefix}-animations-enabled`]: this._animationsEnabled,\n [`${this._componentPrefix}-appearance-${this.appearance}`]: true,\n [`${this._componentPrefix}-hover`]: this._hovered,\n [`${this._componentPrefix}-inner`]: this.inner,\n [`${this._componentPrefix}-mode-over`]: this.mode === 'over',\n [`${this._componentPrefix}-mode-side`]: this.mode === 'side',\n [`${this._componentPrefix}-opened`]: this.opened,\n [`${this._componentPrefix}-position-left`]: this.position === 'left',\n [`${this._componentPrefix}-position-right`]: this.position === 'right',\n };\n }\n\n get asideWrapperClass(): string {\n return this._asideWrapperClass;\n }\n\n activeAsideNavigationItem(): NavigationAsideItem | null {\n if (!this.activeAsideItemId) {\n return null;\n }\n\n const item = this._navigationService.getItem(this.activeAsideItemId, this.navigation);\n\n return item?.type === 'aside' ? item : null;\n }\n\n shouldRenderItem(item: NavigationItem): boolean {\n return shouldRenderNavigationItem(item);\n }\n\n onMouseenter(): void {\n this._enableAnimations();\n this._hovered = true;\n }\n\n onMouseleave(): void {\n this._enableAnimations();\n this._hovered = false;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if ('appearance' in changes) {\n this.appearanceChanged.emit(changes['appearance'].currentValue);\n }\n\n if ('mode' in changes) {\n const currentMode = changes['mode'].currentValue;\n const previousMode = changes['mode'].previousValue;\n\n this._disableAnimations();\n\n if (previousMode === 'over' && currentMode === 'side') {\n this._hideOverlay();\n }\n\n if (previousMode === 'side' && currentMode === 'over') {\n this.closeAside();\n if (this.opened) {\n this._showOverlay();\n }\n }\n\n this.modeChanged.emit(currentMode);\n\n this._setTimeout(() => {\n this._enableAnimations();\n }, 500);\n }\n\n if ('navigation' in changes) {\n this._changeDetectorRef.markForCheck();\n }\n\n if ('opened' in changes) {\n this._toggleOpened(changes['opened'].currentValue);\n }\n\n if ('position' in changes) {\n this.positionChanged.emit(changes['position'].currentValue);\n }\n }\n\n ngOnInit(): void {\n this._router.events\n .pipe(\n filter((event): event is NavigationEnd => event instanceof NavigationEnd),\n takeUntil(this._unsubscribeAll),\n )\n .subscribe(() => {\n if (this.mode === 'over' && this.opened) {\n this.close();\n }\n if (this.mode === 'side' && this.activeAsideItemId) {\n this.closeAside();\n }\n });\n }\n\n ngAfterViewInit(): void {\n this._mutationObserver = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n const mutationTarget = mutation.target as HTMLElement;\n if (mutation.attributeName === 'class') {\n if (mutationTarget.classList.contains('cdk-global-scrollblock')) {\n const top = parseInt(mutationTarget.style.top, 10);\n this._renderer2.setStyle(this._elementRef.nativeElement, 'margin-top', `${Math.abs(top)}px`);\n } else {\n this._renderer2.setStyle(this._elementRef.nativeElement, 'margin-top', null);\n }\n }\n });\n });\n this._mutationObserver.observe(this._document.documentElement, {\n attributes: true,\n attributeFilter: ['class'],\n });\n\n this._setTimeout(() => {\n if (!this._navigationContentEl) {\n return;\n }\n\n const activeItem = this._navigationContentEl.nativeElement.querySelector('.kit-navigation-item-active');\n\n if (activeItem) {\n activeItem.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }\n });\n }\n\n ngOnDestroy(): void {\n if (this._mutationObserver) {\n this._mutationObserver.disconnect();\n }\n\n // Clear all pending timeouts to prevent memory leaks\n for (const id of this._pendingTimeouts) {\n clearTimeout(id);\n }\n this._pendingTimeouts = [];\n\n // Remove overlays synchronously on destroy\n this._removeOverlayElement(this._overlay, this._overlayClickHandler);\n this._overlay = null;\n this._removeOverlayElement(this._asideOverlay, this._asideOverlayClickHandler);\n this._asideOverlay = null;\n\n this._unsubscribeAll.next();\n this._unsubscribeAll.complete();\n\n this.onCollapsableItemCollapsed.complete();\n this.onCollapsableItemExpanded.complete();\n this.onRefreshed.complete();\n }\n\n refresh(): void {\n this._changeDetectorRef.markForCheck();\n this.onRefreshed.next(true);\n }\n\n open(): void {\n if (this.opened) {\n return;\n }\n this._toggleOpened(true);\n }\n\n close(): void {\n if (!this.opened) {\n return;\n }\n this.closeAside();\n this._toggleOpened(false);\n }\n\n toggle(): void {\n if (this.opened) {\n this.close();\n } else {\n this.open();\n }\n }\n\n openAside(item: NavigationItem): void {\n if (item.disabled || !item.id) {\n return;\n }\n\n this.activeAsideItemId = item.id;\n this._showAsideOverlay();\n this._changeDetectorRef.markForCheck();\n }\n\n closeAside(): void {\n this.activeAsideItemId = null;\n this._hideAsideOverlay();\n this._changeDetectorRef.markForCheck();\n }\n\n toggleAside(item: NavigationItem): void {\n if (this.activeAsideItemId === item.id) {\n this.closeAside();\n } else {\n this.openAside(item);\n }\n }\n\n trackByFn(index: number, item: NavigationItem): string | number | undefined {\n return trackNavigationTreeItem(index, item);\n }\n\n protected _enableAnimations(): void {\n if (this._animationsEnabled) {\n return;\n }\n this._animationsEnabled = true;\n }\n\n protected _disableAnimations(): void {\n if (!this._animationsEnabled) {\n return;\n }\n this._animationsEnabled = false;\n }\n\n protected _showOverlay(): void {\n if (this._overlay) {\n return;\n }\n\n this._overlay = this._renderer2.createElement('div');\n\n if (this._overlay) {\n this._overlay.classList.add(`${this._componentPrefix}-overlay`);\n\n if (this.transparentOverlay) {\n this._overlay.classList.add(`${this._componentPrefix}-overlay-transparent`);\n }\n\n this._renderer2.setStyle(this._overlay, 'opacity', '0');\n\n this._renderer2.appendChild(this._elementRef.nativeElement.parentElement, this._overlay);\n\n this._overlay.addEventListener('click', this._overlayClickHandler);\n\n this._setTimeout(() => {\n if (this._overlay) {\n this._renderer2.setStyle(this._overlay, 'opacity', '1');\n }\n }, 10);\n }\n }\n\n protected _hideOverlay(): void {\n if (!this._overlay) {\n return;\n }\n\n this._renderer2.setStyle(this._overlay, 'opacity', '0');\n\n this._setTimeout(() => {\n if (this._overlay) {\n this._overlay.removeEventListener('click', this._overlayClickHandler);\n if (this._overlay.parentNode) {\n this._overlay.parentNode.removeChild(this._overlay);\n }\n this._overlay = null;\n }\n }, 300);\n }\n\n protected _showAsideOverlay(): void {\n if (this._asideOverlay) {\n return;\n }\n\n this._asideOverlay = this._renderer2.createElement('div');\n\n if (this._asideOverlay) {\n this._asideOverlay.classList.add(`${this._componentPrefix}-aside-overlay`);\n\n this._renderer2.setStyle(this._asideOverlay, 'opacity', '0');\n\n this._renderer2.appendChild(this._elementRef.nativeElement.parentElement, this._asideOverlay);\n\n this._asideOverlay.addEventListener('click', this._asideOverlayClickHandler);\n\n this._setTimeout(() => {\n if (this._asideOverlay) {\n this._renderer2.setStyle(this._asideOverlay, 'opacity', '1');\n }\n }, 10);\n }\n }\n\n protected _hideAsideOverlay(): void {\n if (!this._asideOverlay) {\n return;\n }\n\n this._renderer2.setStyle(this._asideOverlay, 'opacity', '0');\n\n this._setTimeout(() => {\n if (this._asideOverlay) {\n this._asideOverlay.removeEventListener('click', this._asideOverlayClickHandler);\n if (this._asideOverlay.parentNode) {\n this._asideOverlay.parentNode.removeChild(this._asideOverlay);\n }\n this._asideOverlay = null;\n }\n }, 300);\n }\n\n protected _setTimeout(fn: () => void, delay?: number): void {\n const id = setTimeout(() => {\n const index = this._pendingTimeouts.indexOf(id);\n if (index > -1) {\n this._pendingTimeouts.splice(index, 1);\n }\n fn();\n }, delay);\n this._pendingTimeouts.push(id);\n }\n\n private _removeOverlayElement(overlay: HTMLElement | null, clickHandler: () => void): void {\n if (!overlay) {\n return;\n }\n overlay.removeEventListener('click', clickHandler);\n if (overlay.parentNode) {\n overlay.parentNode.removeChild(overlay);\n }\n }\n\n protected _toggleOpened(open: boolean): void {\n this.opened = open;\n this._enableAnimations();\n\n if (this.mode === 'over') {\n if (this.opened) {\n this._showOverlay();\n } else {\n this._hideOverlay();\n }\n }\n\n this.openedChanged.emit(open);\n }\n}\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n Input,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { IsActiveMatchOptions, RouterLink, RouterLinkActive } from '@angular/router';\nimport { NavigationBasicItem, NavigationService, getNavigationItemAction } from '@ojiepermana/angular/navigation';\nimport { NavigationItemContent } from '@ojiepermana/angular/internal';\nimport { Subject, takeUntil } from 'rxjs';\nimport { VerticalNavigationBaseComponent } from '../core/vertical-navigation.base';\n\n@Component({\n selector: 'vertical-navigation-basic-item',\n template: `\n <!-- Item wrapper -->\n <div\n class=\"vertical-navigation-item-wrapper\"\n [class.vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\">\n <!-- Item with an internal link -->\n @if (item.link && !item.externalLink && !hasAction() && !item.disabled) {\n <a\n class=\"kit-navigation-item\"\n [ngClass]=\"{ 'kit-navigation-item-active-forced': item.active }\"\n [routerLink]=\"[item.link]\"\n [fragment]=\"item.fragment\"\n [preserveFragment]=\"item.preserveFragment ?? false\"\n [queryParams]=\"item.queryParams ?? null\"\n [queryParamsHandling]=\"item.queryParamsHandling ?? null\"\n [routerLinkActive]=\"'kit-navigation-item-active'\"\n [routerLinkActiveOptions]=\"isActiveMatchOptions\"\n [matTooltip]=\"item.tooltip || ''\"\n (click)=\"markActive()\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n }\n\n <!-- Item with an external link -->\n @if (item.link && item.externalLink && !hasAction() && !item.disabled) {\n <a\n class=\"kit-navigation-item\"\n [href]=\"item.link\"\n [target]=\"item.target || '_blank'\"\n [matTooltip]=\"item.tooltip || ''\"\n (click)=\"markActive()\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n }\n\n <!-- Item with a function -->\n @if (!item.link && hasAction() && !item.disabled) {\n <div\n class=\"kit-navigation-item\"\n [ngClass]=\"{ 'kit-navigation-item-active-forced': item.active }\"\n [matTooltip]=\"item.tooltip || ''\"\n role=\"button\"\n tabindex=\"0\"\n (click)=\"triggerAction()\"\n (keydown.enter)=\"triggerAction()\"\n (keydown.space)=\"$event.preventDefault(); triggerAction()\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n }\n\n <!-- Item with an internal link and function -->\n @if (item.link && !item.externalLink && hasAction() && !item.disabled) {\n <a\n class=\"kit-navigation-item\"\n [ngClass]=\"{ 'kit-navigation-item-active-forced': item.active }\"\n [routerLink]=\"[item.link]\"\n [fragment]=\"item.fragment\"\n [preserveFragment]=\"item.preserveFragment ?? false\"\n [queryParams]=\"item.queryParams ?? null\"\n [queryParamsHandling]=\"item.queryParamsHandling ?? null\"\n [routerLinkActive]=\"'kit-navigation-item-active'\"\n [routerLinkActiveOptions]=\"isActiveMatchOptions\"\n [matTooltip]=\"item.tooltip || ''\"\n (click)=\"triggerAction()\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n }\n\n <!-- Item with an external link and function -->\n @if (item.link && item.externalLink && hasAction() && !item.disabled) {\n <a\n class=\"kit-navigation-item\"\n [href]=\"item.link\"\n [target]=\"item.target || '_blank'\"\n [matTooltip]=\"item.tooltip || ''\"\n (click)=\"triggerAction()\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n }\n\n <!-- Item with no link and no function -->\n @if (!item.link && !hasAction() && !item.disabled) {\n <div\n class=\"kit-navigation-item\"\n [ngClass]=\"{ 'kit-navigation-item-active-forced': item.active }\"\n [matTooltip]=\"item.tooltip || ''\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n }\n\n <!-- Item is disabled -->\n @if (item.disabled) {\n <div class=\"kit-navigation-item kit-navigation-item-disabled\" [matTooltip]=\"item.tooltip || ''\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n }\n </div>\n\n <!-- Item template -->\n <ng-template #itemTemplate>\n <navigation-item-content [item]=\"item\" variant=\"vertical\"></navigation-item-content>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass, NgTemplateOutlet, RouterLink, RouterLinkActive, NavigationItemContent, MatTooltipModule],\n})\nexport class VerticalNavigationBasicItemComponent implements OnInit, OnDestroy {\n private _changeDetectorRef = inject(ChangeDetectorRef);\n private _navigationComponent = inject(VerticalNavigationBaseComponent);\n private _navigationService = inject(NavigationService);\n\n @Input() item!: NavigationBasicItem;\n\n isActiveMatchOptions: IsActiveMatchOptions = {\n paths: 'subset',\n queryParams: 'subset',\n fragment: 'ignored',\n matrixParams: 'ignored',\n };\n\n private _unsubscribeAll = new Subject<void>();\n\n /**\n * On init\n */\n ngOnInit(): void {\n // Set the \"isActiveMatchOptions\" either from item's\n // \"isActiveMatchOptions\" or the equivalent form of\n // item's \"exactMatch\" option\n this.isActiveMatchOptions =\n this.item.isActiveMatchOptions ??\n (this.item.exactMatch\n ? { paths: 'exact', queryParams: 'exact', fragment: 'ignored', matrixParams: 'ignored' }\n : { paths: 'subset', queryParams: 'subset', fragment: 'ignored', matrixParams: 'ignored' });\n\n // Subscribe to onRefreshed on the navigation component\n this._navigationComponent.onRefreshed.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next();\n this._unsubscribeAll.complete();\n }\n\n hasAction(): boolean {\n return !!getNavigationItemAction(this.item);\n }\n\n markActive(): void {\n if (!this.item.id) {\n return;\n }\n\n this._navigationService.setActiveItem(this.item.id);\n }\n\n triggerAction(): void {\n this.markActive();\n getNavigationItemAction(this.item)?.(this.item);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'vertical-navigation-divider-item',\n template: '<div class=\"vertical-navigation-divider\"></div>',\n styles: [\n `\n .vertical-navigation-divider {\n height: 1px;\n margin: 12px 16px;\n background: rgb(var(--border));\n }\n `,\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VerticalNavigationDividerItemComponent {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'vertical-navigation-spacer-item',\n template: '<div class=\"vertical-navigation-spacer\"></div>',\n styles: [\n `\n .vertical-navigation-spacer {\n flex: 1 1 auto;\n min-height: 24px;\n }\n `,\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VerticalNavigationSpacerItemComponent {}\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n inject,\n Input,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { NavigationEnd, Router } from '@angular/router';\nimport {\n NavigationCollapsableItem,\n NavigationItem,\n NavigationService,\n isNavigationRoutableItem,\n shouldRenderNavigationItem,\n} from '@ojiepermana/angular/navigation';\nimport {\n NavigationItemContent,\n NavigationTreeOutlet,\n hasActiveNavigationDescendant,\n isNavigationTreeDescendant,\n trackNavigationTreeItem,\n} from '@ojiepermana/angular/internal';\nimport { VerticalNavigationBasicItemComponent } from './basic';\nimport { VerticalNavigationAsideItemComponent } from './aside';\nimport { VerticalNavigationDividerItemComponent } from './divider';\nimport { VerticalNavigationSpacerItemComponent } from './spacer';\nimport { Subject, filter, takeUntil } from 'rxjs';\nimport { VerticalNavigationBaseComponent } from '../core/vertical-navigation.base';\n\n@Component({\n selector: 'vertical-navigation-collapsable-item',\n template: `\n <div\n class=\"vertical-navigation-item-wrapper\"\n [class.vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\">\n <div\n class=\"kit-navigation-item\"\n [ngClass]=\"{\n 'kit-navigation-item-disabled': item.disabled,\n 'kit-navigation-item-expanded': isExpanded,\n }\"\n [matTooltip]=\"item.tooltip || ''\"\n role=\"button\"\n tabindex=\"0\"\n (click)=\"toggleCollapsable()\"\n (keydown.enter)=\"toggleCollapsable()\"\n (keydown.space)=\"$event.preventDefault(); toggleCollapsable()\">\n <navigation-item-content [item]=\"item\" variant=\"vertical\"></navigation-item-content>\n <!-- State dot -->\n <span class=\"kit-navigation-item-dot\" aria-hidden=\"true\"></span>\n </div>\n </div>\n\n <!-- Children (with CSS transition instead of animation) -->\n <div\n class=\"kit-navigation-item-children\"\n [class.kit-navigation-item-children-expanded]=\"!isCollapsed\"\n [class.kit-navigation-item-children-collapsed]=\"isCollapsed\">\n @if (!isCollapsed) {\n <navigation-tree-outlet\n [items]=\"item.children\"\n [data]=\"treeTemplateData\"\n [branchTemplate]=\"branchItem\"\n [leafTemplate]=\"leafItem\"\n [groupTemplate]=\"groupItem\"\n [dividerTemplate]=\"dividerItem\"\n [spacerTemplate]=\"spacerItem\"\n [trackByFn]=\"treeTrackByFn\"\n [shouldRenderItemFn]=\"treeShouldRenderItemFn\" />\n }\n </div>\n\n <ng-template #branchItem let-child let-data=\"data\">\n @if (child.type === 'aside') {\n <vertical-navigation-aside-item [item]=\"child\" [autoCollapse]=\"data?.['autoCollapse'] === true\">\n </vertical-navigation-aside-item>\n } @else {\n <vertical-navigation-collapsable-item [item]=\"child\" [autoCollapse]=\"data?.['autoCollapse'] !== false\">\n </vertical-navigation-collapsable-item>\n }\n </ng-template>\n\n <ng-template #leafItem let-child>\n <vertical-navigation-basic-item [item]=\"child\"></vertical-navigation-basic-item>\n </ng-template>\n\n <ng-template #groupItem let-child let-data=\"data\">\n <div\n class=\"vertical-navigation-item-wrapper\"\n [class.vertical-navigation-item-has-subtitle]=\"!!child.subtitle\"\n [ngClass]=\"child.classes?.wrapper\">\n <div class=\"kit-navigation-group-header\">\n <navigation-item-content [item]=\"child\" variant=\"vertical-group\"></navigation-item-content>\n </div>\n </div>\n </ng-template>\n\n <ng-template #dividerItem>\n <vertical-navigation-divider-item></vertical-navigation-divider-item>\n </ng-template>\n\n <ng-template #spacerItem>\n <vertical-navigation-spacer-item></vertical-navigation-spacer-item>\n </ng-template>\n `,\n styles: [\n `\n /* Collapsable item CSS transitions (NO Angular animations) */\n\n .kit-navigation-item-dot {\n margin-left: auto;\n width: 0.5rem;\n height: 0.5rem;\n flex-shrink: 0;\n border-radius: 9999px;\n background: #9ca3af;\n opacity: 0.85;\n transition:\n background-color 180ms ease,\n transform 180ms ease,\n opacity 180ms ease;\n }\n\n .kit-navigation-item:hover .kit-navigation-item-dot {\n opacity: 1;\n }\n\n .kit-navigation-item.kit-navigation-item-expanded .kit-navigation-item-dot {\n background: #16a34a;\n opacity: 1;\n transform: scale(1.1);\n }\n\n .kit-navigation-item-children {\n overflow: hidden;\n max-height: 0;\n opacity: 0;\n transition:\n max-height 300ms cubic-bezier(0.25, 0.8, 0.25, 1),\n opacity 300ms cubic-bezier(0.25, 0.8, 0.25, 1);\n }\n\n .kit-navigation-item-children-expanded {\n max-height: 2000px;\n opacity: 1;\n }\n\n .kit-navigation-item-children-collapsed {\n max-height: 0;\n opacity: 0;\n }\n `,\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgClass,\n MatTooltipModule,\n NavigationItemContent,\n NavigationTreeOutlet,\n forwardRef(() => VerticalNavigationAsideItemComponent),\n VerticalNavigationBasicItemComponent,\n forwardRef(() => VerticalNavigationCollapsableItemComponent),\n VerticalNavigationDividerItemComponent,\n VerticalNavigationSpacerItemComponent,\n ],\n host: {\n '[class.vertical-navigation-item-collapsed]': 'isCollapsed',\n '[class.vertical-navigation-item-expanded]': 'isExpanded',\n },\n})\nexport class VerticalNavigationCollapsableItemComponent implements OnInit, OnDestroy {\n private _changeDetectorRef = inject(ChangeDetectorRef);\n private _navigationComponent = inject(VerticalNavigationBaseComponent);\n private _navigationService = inject(NavigationService);\n private _router = inject(Router);\n\n @Input() autoCollapse = true;\n @Input() item!: NavigationCollapsableItem;\n\n isCollapsed = true;\n readonly treeTrackByFn = trackNavigationTreeItem;\n readonly treeShouldRenderItemFn = shouldRenderNavigationItem;\n\n get isExpanded(): boolean {\n return !this.isCollapsed;\n }\n\n private _unsubscribeAll = new Subject<void>();\n\n /**\n * On init\n */\n ngOnInit(): void {\n if (this._shouldExpand()) {\n this.expand();\n }\n // Otherwise...\n else {\n // If the autoCollapse is on, collapse...\n if (this.autoCollapse) {\n this.collapse();\n }\n }\n\n // Listen for the onCollapsableItemCollapsed from the service\n this._navigationComponent.onCollapsableItemCollapsed\n .pipe(takeUntil(this._unsubscribeAll))\n .subscribe((collapsedItem: NavigationItem) => {\n // Check if the collapsed item is null\n if (collapsedItem === null) {\n return;\n }\n\n // Collapse if this is a children of the collapsed item\n if (this._isChildrenOf(collapsedItem, this.item)) {\n this.collapse();\n }\n });\n\n // Listen for the onCollapsableItemExpanded from the service if the autoCollapse is on\n if (this.autoCollapse) {\n this._navigationComponent.onCollapsableItemExpanded\n .pipe(takeUntil(this._unsubscribeAll))\n .subscribe((expandedItem: NavigationItem) => {\n // Check if the expanded item is null\n if (expandedItem === null) {\n return;\n }\n\n // Check if this is a parent of the expanded item\n if (this._isChildrenOf(this.item, expandedItem)) {\n return;\n }\n\n // Check if this has a children with a matching url with the current active url\n if (this._hasActiveChild(this.item)) {\n return;\n }\n\n // Check if this is the expanded item\n if (this.item === expandedItem) {\n return;\n }\n\n // If none of the above conditions are matched, collapse this item\n this.collapse();\n });\n }\n\n // Attach a listener to the NavigationEnd event\n this._router.events\n .pipe(\n filter((event): event is NavigationEnd => event instanceof NavigationEnd),\n takeUntil(this._unsubscribeAll),\n )\n .subscribe(() => {\n if (this._shouldExpand()) {\n this.expand();\n }\n // Otherwise...\n else {\n // If the autoCollapse is on, collapse...\n if (this.autoCollapse) {\n this.collapse();\n }\n }\n });\n\n // Subscribe to onRefreshed on the navigation component\n this._navigationComponent.onRefreshed.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next();\n this._unsubscribeAll.complete();\n }\n\n /**\n * Collapse\n */\n collapse(): void {\n // Return if the item is disabled\n if (this.item.disabled) {\n return;\n }\n\n // Return if the item is already collapsed\n if (this.isCollapsed) {\n return;\n }\n\n // Collapse it\n this.isCollapsed = true;\n if (this.item.id) {\n this._navigationService.collapseItem(this.item.id);\n }\n\n // Mark for check\n this._changeDetectorRef.markForCheck();\n\n // Execute the observable\n this._navigationComponent.onCollapsableItemCollapsed.next(this.item);\n }\n\n /**\n * Expand\n */\n expand(): void {\n // Return if the item is disabled\n if (this.item.disabled) {\n return;\n }\n\n // Return if the item is already expanded\n if (!this.isCollapsed) {\n return;\n }\n\n // Expand it\n this.isCollapsed = false;\n if (this.item.id) {\n this._navigationService.expandItem(this.item.id);\n }\n\n // Mark for check\n this._changeDetectorRef.markForCheck();\n\n // Execute the observable\n this._navigationComponent.onCollapsableItemExpanded.next(this.item);\n }\n\n /**\n * Toggle collapsable\n */\n toggleCollapsable(): void {\n // Toggle collapse/expand\n if (this.isCollapsed) {\n this.expand();\n } else {\n this.collapse();\n }\n }\n\n /**\n * Track by function for ngFor loops\n */\n trackByFn(index: number, item: NavigationItem): string | number | undefined {\n return trackNavigationTreeItem(index, item);\n }\n\n shouldRenderItem(item: NavigationItem): boolean {\n return shouldRenderNavigationItem(item);\n }\n\n get treeTemplateData(): { autoCollapse: boolean } {\n return { autoCollapse: this.autoCollapse };\n }\n\n /**\n * Check if the given item has the given url in one of its children\n */\n private _hasActiveChild(item: NavigationItem): boolean {\n return hasActiveNavigationDescendant(\n item,\n (child) =>\n isNavigationRoutableItem(child) && !!child.link && this._router.isActive(child.link, child.exactMatch || false),\n );\n }\n\n private _shouldExpand(): boolean {\n return this._hasActiveChild(this.item) || (!!this.item.id && this._navigationService.isItemExpanded(this.item.id));\n }\n\n /**\n * Check if this is a children of the given item\n */\n private _isChildrenOf(parent: NavigationItem, item: NavigationItem): boolean {\n return isNavigationTreeDescendant(parent, item);\n }\n}\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { NavigationAsideItem, NavigationItem, shouldRenderNavigationItem } from '@ojiepermana/angular/navigation';\nimport {\n NavigationItemContent,\n NavigationTreeOutlet,\n hasActiveNavigationDescendant,\n trackNavigationTreeItem,\n} from '@ojiepermana/angular/internal';\nimport { VerticalNavigationBasicItemComponent } from './basic';\nimport { VerticalNavigationCollapsableItemComponent } from './collapsable';\nimport { VerticalNavigationDividerItemComponent } from './divider';\nimport { VerticalNavigationSpacerItemComponent } from './spacer';\nimport { Subject, filter, takeUntil } from 'rxjs';\nimport { VerticalNavigationBaseComponent } from '../core/vertical-navigation.base';\n\n@Component({\n selector: 'vertical-navigation-aside-item',\n template: `\n <div\n class=\"vertical-navigation-item-wrapper\"\n [class.vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\">\n <div\n class=\"kit-navigation-item\"\n [ngClass]=\"{\n 'kit-navigation-item-active': active,\n 'kit-navigation-item-disabled': item.disabled,\n 'kit-navigation-item-active-forced': item.active,\n }\"\n [matTooltip]=\"item.tooltip || ''\">\n <navigation-item-content [item]=\"item\" variant=\"vertical\"></navigation-item-content>\n </div>\n </div>\n\n <!-- Children -->\n @if (!skipChildren) {\n <div class=\"kit-navigation-item-children\">\n <navigation-tree-outlet\n [items]=\"item.children\"\n [data]=\"treeTemplateData\"\n [branchTemplate]=\"branchItem\"\n [leafTemplate]=\"leafItem\"\n [groupTemplate]=\"groupItem\"\n [dividerTemplate]=\"dividerItem\"\n [spacerTemplate]=\"spacerItem\"\n [trackByFn]=\"treeTrackByFn\"\n [shouldRenderItemFn]=\"treeShouldRenderItemFn\" />\n </div>\n }\n\n <ng-template #branchItem let-child let-data=\"data\">\n @if (child.type === 'aside') {\n <vertical-navigation-aside-item [item]=\"child\" [autoCollapse]=\"data?.['autoCollapse'] === true\">\n </vertical-navigation-aside-item>\n } @else {\n <vertical-navigation-collapsable-item [item]=\"child\" [autoCollapse]=\"data?.['autoCollapse'] !== false\">\n </vertical-navigation-collapsable-item>\n }\n </ng-template>\n\n <ng-template #leafItem let-child>\n <vertical-navigation-basic-item [item]=\"child\"></vertical-navigation-basic-item>\n </ng-template>\n\n <ng-template #groupItem let-child>\n <div\n class=\"vertical-navigation-item-wrapper\"\n [class.vertical-navigation-item-has-subtitle]=\"!!child.subtitle\"\n [ngClass]=\"child.classes?.wrapper\">\n <div class=\"kit-navigation-group-header\">\n <navigation-item-content [item]=\"child\" variant=\"vertical-group\"></navigation-item-content>\n </div>\n </div>\n </ng-template>\n\n <ng-template #dividerItem>\n <vertical-navigation-divider-item></vertical-navigation-divider-item>\n </ng-template>\n\n <ng-template #spacerItem>\n <vertical-navigation-spacer-item></vertical-navigation-spacer-item>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgClass,\n MatTooltipModule,\n NavigationItemContent,\n NavigationTreeOutlet,\n VerticalNavigationBasicItemComponent,\n forwardRef(() => VerticalNavigationCollapsableItemComponent),\n VerticalNavigationDividerItemComponent,\n VerticalNavigationSpacerItemComponent,\n ],\n})\nexport class VerticalNavigationAsideItemComponent implements OnChanges, OnInit, OnDestroy {\n private _changeDetectorRef = inject(ChangeDetectorRef);\n private _navigationComponent = inject(VerticalNavigationBaseComponent);\n private _router = inject(Router);\n\n @Input() activeItemId?: string | null;\n @Input() autoCollapse = true;\n @Input() item!: NavigationAsideItem;\n @Input() skipChildren = false;\n\n active = false;\n readonly treeTrackByFn = trackNavigationTreeItem;\n readonly treeShouldRenderItemFn = shouldRenderNavigationItem;\n\n private _unsubscribeAll = new Subject<void>();\n\n /**\n * On changes\n */\n ngOnChanges(changes: SimpleChanges): void {\n // Active item id\n if ('activeItemId' in changes) {\n // Mark if active\n this._markIfActive();\n }\n }\n\n /**\n * On init\n */\n ngOnInit(): void {\n // Mark if active\n this._markIfActive();\n\n // Attach a listener to the NavigationEnd event\n this._router.events\n .pipe(\n filter((event): event is NavigationEnd => event instanceof NavigationEnd),\n takeUntil(this._unsubscribeAll),\n )\n .subscribe(() => {\n // Mark if active\n this._markIfActive();\n });\n\n // Subscribe to onRefreshed on the navigation component\n this._navigationComponent.onRefreshed.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next();\n this._unsubscribeAll.complete();\n }\n\n /**\n * Track by function for ngFor loops\n */\n trackByFn(index: number, item: NavigationItem): string | number | undefined {\n return trackNavigationTreeItem(index, item);\n }\n\n shouldRenderItem(item: NavigationItem): boolean {\n return shouldRenderNavigationItem(item);\n }\n\n get treeTemplateData(): { autoCollapse: boolean } {\n return { autoCollapse: this.autoCollapse };\n }\n\n /**\n * Check if the given item has the given url in one of its children\n */\n private _hasActiveChild(item: NavigationItem): boolean {\n return hasActiveNavigationDescendant(\n item,\n (child) => child.type === 'basic' && !!child.link && this._router.isActive(child.link, child.exactMatch || false),\n );\n }\n\n /**\n * Decide and mark if the item is active\n */\n private _markIfActive(): void {\n // Check if the activeItemId is equals to this item id\n this.active = this.activeItemId === this.item.id;\n\n // If the aside has a children that is active, always mark it as active\n if (this._hasActiveChild(this.item)) {\n this.active = true;\n }\n\n // Mark for check\n this._changeDetectorRef.markForCheck();\n }\n}\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n inject,\n Input,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NavigationGroupItem, NavigationItem, shouldRenderNavigationItem } from '@ojiepermana/angular/navigation';\nimport { NavigationItemContent, NavigationTreeOutlet, trackNavigationTreeItem } from '@ojiepermana/angular/internal';\nimport { VerticalNavigationAsideItemComponent } from './aside';\nimport { VerticalNavigationBasicItemComponent } from './basic';\nimport { VerticalNavigationCollapsableItemComponent } from './collapsable';\nimport { VerticalNavigationDividerItemComponent } from './divider';\nimport { VerticalNavigationSpacerItemComponent } from './spacer';\nimport { Subject, takeUntil } from 'rxjs';\nimport { VerticalNavigationBaseComponent } from '../core/vertical-navigation.base';\n\n@Component({\n selector: 'vertical-navigation-group-item',\n template: `\n <!-- Item wrapper -->\n <div\n class=\"vertical-navigation-item-wrapper\"\n [class.vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\">\n <div class=\"kit-navigation-group-header\">\n <navigation-item-content [item]=\"item\" variant=\"vertical-group\"></navigation-item-content>\n </div>\n </div>\n\n <navigation-tree-outlet\n [items]=\"item.children\"\n [data]=\"treeTemplateData\"\n [branchTemplate]=\"branchItem\"\n [leafTemplate]=\"leafItem\"\n [groupTemplate]=\"groupItem\"\n [dividerTemplate]=\"dividerItem\"\n [spacerTemplate]=\"spacerItem\"\n [trackByFn]=\"treeTrackByFn\"\n [shouldRenderItemFn]=\"treeShouldRenderItemFn\" />\n\n <ng-template #branchItem let-child let-data=\"data\">\n @if (child.type === 'aside') {\n <vertical-navigation-aside-item [item]=\"child\" [autoCollapse]=\"data?.['autoCollapse'] === true\">\n </vertical-navigation-aside-item>\n } @else {\n <vertical-navigation-collapsable-item [item]=\"child\" [autoCollapse]=\"data?.['autoCollapse'] !== false\">\n </vertical-navigation-collapsable-item>\n }\n </ng-template>\n\n <ng-template #leafItem let-child>\n <vertical-navigation-basic-item [item]=\"child\"></vertical-navigation-basic-item>\n </ng-template>\n\n <ng-template #groupItem let-child>\n <div\n class=\"vertical-navigation-item-wrapper\"\n [class.vertical-navigation-item-has-subtitle]=\"!!child.subtitle\"\n [ngClass]=\"child.classes?.wrapper\">\n <div class=\"kit-navigation-group-header\">\n <navigation-item-content [item]=\"child\" variant=\"vertical-group\"></navigation-item-content>\n </div>\n </div>\n </ng-template>\n\n <ng-template #dividerItem>\n <vertical-navigation-divider-item></vertical-navigation-divider-item>\n </ng-template>\n\n <ng-template #spacerItem>\n <vertical-navigation-spacer-item></vertical-navigation-spacer-item>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgClass,\n NavigationItemContent,\n NavigationTreeOutlet,\n forwardRef(() => VerticalNavigationAsideItemComponent),\n VerticalNavigationBasicItemComponent,\n forwardRef(() => VerticalNavigationCollapsableItemComponent),\n VerticalNavigationDividerItemComponent,\n VerticalNavigationSpacerItemComponent,\n ],\n})\nexport class VerticalNavigationGroupItemComponent implements OnInit, OnDestroy {\n private _changeDetectorRef = inject(ChangeDetectorRef);\n private _navigationComponent = inject(VerticalNavigationBaseComponent);\n\n @Input() autoCollapse = true;\n @Input() item!: NavigationGroupItem;\n\n private _unsubscribeAll = new Subject<void>();\n readonly treeTrackByFn = trackNavigationTreeItem;\n readonly treeShouldRenderItemFn = shouldRenderNavigationItem;\n\n /**\n * On init\n */\n ngOnInit(): void {\n // Subscribe to onRefreshed on the navigation component\n this._navigationComponent.onRefreshed.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next();\n this._unsubscribeAll.complete();\n }\n\n /**\n * Track by function for ngFor loops\n */\n trackByFn(index: number, item: NavigationItem): string | number | undefined {\n return trackNavigationTreeItem(index, item);\n }\n\n shouldRenderItem(item: NavigationItem): boolean {\n return shouldRenderNavigationItem(item);\n }\n\n get treeTemplateData(): { autoCollapse: boolean } {\n return { autoCollapse: this.autoCollapse };\n }\n}\n","import { forwardRef, Provider } from '@angular/core';\nimport { VerticalNavigationAsideItemComponent } from '../types/aside';\nimport { VerticalNavigationBasicItemComponent } from '../types/basic';\nimport { VerticalNavigationCollapsableItemComponent } from '../types/collapsable';\nimport { VerticalNavigationDividerItemComponent } from '../types/divider';\nimport { VerticalNavigationGroupItemComponent } from '../types/group';\nimport { VerticalNavigationSpacerItemComponent } from '../types/spacer';\nimport { VerticalNavigationBaseComponent } from './vertical-navigation.base';\n\nexport const VERTICAL_NAVIGATION_TEMPLATE = `\n <div class=\"vertical-navigation-wrapper\">\n <div class=\"vertical-navigation-header\">\n <ng-content select=\"[verticalNavigationHeader]\"></ng-content>\n </div>\n\n <div class=\"vertical-navigation-content\" #navigationContent>\n <div class=\"vertical-navigation-content-header\">\n <ng-content select=\"[verticalNavigationContentHeader]\"></ng-content>\n </div>\n\n @for (item of navigation; track trackByFn($index, item)) {\n @if (shouldRenderItem(item)) {\n @switch (item.type) {\n @case ('aside') {\n <vertical-navigation-aside-item\n [item]=\"item\"\n [activeItemId]=\"activeAsideItemId\"\n [autoCollapse]=\"autoCollapse\"\n [skipChildren]=\"true\"\n (click)=\"toggleAside(item)\"\n >\n </vertical-navigation-aside-item>\n }\n\n @case ('basic') {\n <vertical-navigation-basic-item [item]=\"item\">\n </vertical-navigation-basic-item>\n }\n\n @case ('collapsable') {\n <vertical-navigation-collapsable-item\n [item]=\"item\"\n [autoCollapse]=\"autoCollapse\"\n >\n </vertical-navigation-collapsable-item>\n }\n\n @case ('divider') {\n <vertical-navigation-divider-item></vertical-navigation-divider-item>\n }\n\n @case ('group') {\n <vertical-navigation-group-item\n [item]=\"item\"\n [autoCollapse]=\"autoCollapse\"\n >\n </vertical-navigation-group-item>\n }\n\n @case ('spacer') {\n <vertical-navigation-spacer-item></vertical-navigation-spacer-item>\n }\n }\n }\n }\n\n <div class=\"vertical-navigation-content-footer\">\n <ng-content select=\"[verticalNavigationContentFooter]\"></ng-content>\n </div>\n </div>\n\n <div class=\"vertical-navigation-footer\">\n <ng-content select=\"[verticalNavigationFooter]\"></ng-content>\n </div>\n </div>\n\n @if (activeAsideNavigationItem(); as activeAsideItem) {\n <div [class]=\"asideWrapperClass\">\n <vertical-navigation-aside-item\n [item]=\"activeAsideItem\"\n [autoCollapse]=\"autoCollapse\"\n >\n </vertical-navigation-aside-item>\n </div>\n }\n`;\n\nexport const VERTICAL_NAVIGATION_IMPORTS = [\n VerticalNavigationAsideItemComponent,\n VerticalNavigationBasicItemComponent,\n VerticalNavigationCollapsableItemComponent,\n VerticalNavigationDividerItemComponent,\n VerticalNavigationGroupItemComponent,\n VerticalNavigationSpacerItemComponent,\n];\n\nexport const VERTICAL_NAVIGATION_HOST = {\n '[class]': 'hostClasses',\n '[style.visibility]': 'opened ? \"visible\" : \"hidden\"',\n '(mouseenter)': 'onMouseenter()',\n '(mouseleave)': 'onMouseleave()',\n} as const;\n\nexport function provideVerticalNavigationComponent<T>(component: new (...args: never[]) => T): Provider {\n return {\n provide: VerticalNavigationBaseComponent,\n useExisting: forwardRef(() => component),\n };\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport { VerticalNavigationAppearance } from '@ojiepermana/angular/navigation';\nimport { VerticalNavigationBaseComponent } from '../core/vertical-navigation.base';\nimport {\n provideVerticalNavigationComponent,\n VERTICAL_NAVIGATION_HOST,\n VERTICAL_NAVIGATION_IMPORTS,\n VERTICAL_NAVIGATION_TEMPLATE,\n} from '../core/vertical-navigation.shared';\n\n@Component({\n selector: 'vertical-navigation',\n template: VERTICAL_NAVIGATION_TEMPLATE,\n styleUrls: ['./default.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'verticalNavigationDefault',\n imports: VERTICAL_NAVIGATION_IMPORTS,\n host: VERTICAL_NAVIGATION_HOST,\n providers: [provideVerticalNavigationComponent(VerticalNavigationDefaultComponent)],\n})\nexport class VerticalNavigationDefaultComponent\n extends VerticalNavigationBaseComponent\n implements OnChanges, OnInit, AfterViewInit, OnDestroy\n{\n protected _componentPrefix = 'vertical-navigation';\n protected _asideWrapperClass = 'vertical-navigation-aside-wrapper';\n @Input() override appearance: VerticalNavigationAppearance = 'default';\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport {\n NavigationItem,\n VerticalNavigationAppearance,\n VerticalNavigationMode,\n VerticalNavigationPosition,\n} from '@ojiepermana/angular/navigation';\nimport { VerticalNavigationDefaultComponent } from '../default/default';\n\n@Component({\n selector: 'vertical-navigation-collapsible',\n imports: [VerticalNavigationDefaultComponent],\n template: `\n <vertical-navigation\n #navigationInstance\n [autoCollapse]=\"autoCollapse\"\n [appearance]=\"renderedAppearance\"\n [inner]=\"inner\"\n [mode]=\"mode\"\n [navigation]=\"navigation\"\n [opened]=\"opened\"\n [position]=\"position\"\n [transparentOverlay]=\"transparentOverlay\"\n (appearanceChanged)=\"appearanceChanged.emit(appearance)\"\n (modeChanged)=\"modeChanged.emit($event)\"\n (openedChanged)=\"openedChanged.emit($event)\"\n (positionChanged)=\"positionChanged.emit($event)\">\n <ng-content select=\"[verticalNavigationHeader]\"></ng-content>\n <ng-content select=\"[verticalNavigationContentHeader]\"></ng-content>\n <ng-content select=\"[verticalNavigationContentFooter]\"></ng-content>\n <ng-content select=\"[verticalNavigationFooter]\"></ng-content>\n </vertical-navigation>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'verticalNavigationCollapsible',\n})\nexport class VerticalNavigationCollapsibleComponent {\n @ViewChild('navigationInstance') private navigationComponent?: VerticalNavigationDefaultComponent;\n\n @Input() autoCollapse = true;\n @Input() appearance: VerticalNavigationAppearance = 'collapsible';\n @Input() inner = false;\n @Input() mode: VerticalNavigationMode = 'side';\n @Input() navigation: NavigationItem[] = [];\n @Input() opened = true;\n @Input() position: VerticalNavigationPosition = 'left';\n @Input() transparentOverlay = false;\n\n @Output() readonly appearanceChanged = new EventEmitter<VerticalNavigationAppearance>();\n @Output() readonly modeChanged = new EventEmitter<VerticalNavigationMode>();\n @Output() readonly openedChanged = new EventEmitter<boolean>();\n @Output() readonly positionChanged = new EventEmitter<VerticalNavigationPosition>();\n\n protected readonly renderedAppearance: VerticalNavigationAppearance = 'default';\n\n refresh(): void {\n this.navigationComponent?.refresh();\n }\n\n open(): void {\n this.navigationComponent?.open();\n }\n\n close(): void {\n this.navigationComponent?.close();\n }\n\n toggle(): void {\n this.navigationComponent?.toggle();\n }\n}\n","/**\n * Vertical Navigation Components barrel export\n */\nexport * from './default/default';\nexport * from './collapsible/collapsible';\n\n// Vertical navigation types/sub-components\nexport * from './types/aside';\nexport * from './types/basic';\nexport * from './types/collapsable';\nexport * from './types/divider';\nexport * from './types/group';\nexport * from './types/spacer';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.VerticalNavigationAsideItemComponent","i2.VerticalNavigationBasicItemComponent","i3.VerticalNavigationCollapsableItemComponent","i4.VerticalNavigationDividerItemComponent","i5.VerticalNavigationGroupItemComponent","i6.VerticalNavigationSpacerItemComponent"],"mappings":";;;;;;;;;;MA+BsB,+BAA+B,CAAA;AACzC,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9C,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,IAAA,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;AAC9B,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AACxB,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAE/C,YAAY,GAAG,IAAI;IACnB,KAAK,GAAG,KAAK;IACb,IAAI,GAA2B,MAAM;IACrC,UAAU,GAAqB,EAAE;IACjC,MAAM,GAAG,IAAI;IACb,QAAQ,GAA+B,MAAM;IAC7C,kBAAkB,GAAG,KAAK;AAEhB,IAAA,iBAAiB,GAAG,IAAI,YAAY,EAAgC;AACpE,IAAA,WAAW,GAAG,IAAI,YAAY,EAA0B;AACxD,IAAA,aAAa,GAAG,IAAI,YAAY,EAAW;AAC3C,IAAA,eAAe,GAAG,IAAI,YAAY,EAA8B;AAEzC,IAAA,oBAAoB;IAE9D,iBAAiB,GAAkB,IAAI;AACvC,IAAA,0BAA0B,GAAG,IAAI,aAAa,CAAiB,CAAC,CAAC;AACjE,IAAA,yBAAyB,GAAG,IAAI,aAAa,CAAiB,CAAC,CAAC;AAChE,IAAA,WAAW,GAAG,IAAI,aAAa,CAAU,CAAC,CAAC;IAEjC,kBAAkB,GAAG,KAAK;IAC1B,aAAa,GAAuB,IAAI;IACxC,QAAQ,GAAG,KAAK;AAChB,IAAA,iBAAiB;IACjB,QAAQ,GAAuB,IAAI;IACnC,gBAAgB,GAAoC,EAAE;AACtD,IAAA,eAAe,GAAG,IAAI,OAAO,EAAQ;IAI9B,oBAAoB,GAAG,MAAY,IAAI,CAAC,KAAK,EAAE;IAC/C,yBAAyB,GAAG,MAAY,IAAI,CAAC,UAAU,EAAE;AAK1E,IAAA,IAAI,WAAW,GAAA;QACb,OAAO;YACL,CAAC,CAAA,EAAG,IAAI,CAAC,gBAAgB,qBAAqB,GAAG,IAAI,CAAC,kBAAkB;YACxE,CAAC,CAAA,EAAG,IAAI,CAAC,gBAAgB,CAAA,YAAA,EAAe,IAAI,CAAC,UAAU,CAAA,CAAE,GAAG,IAAI;YAChE,CAAC,CAAA,EAAG,IAAI,CAAC,gBAAgB,QAAQ,GAAG,IAAI,CAAC,QAAQ;YACjD,CAAC,CAAA,EAAG,IAAI,CAAC,gBAAgB,QAAQ,GAAG,IAAI,CAAC,KAAK;YAC9C,CAAC,CAAA,EAAG,IAAI,CAAC,gBAAgB,CAAA,UAAA,CAAY,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM;YAC5D,CAAC,CAAA,EAAG,IAAI,CAAC,gBAAgB,CAAA,UAAA,CAAY,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM;YAC5D,CAAC,CAAA,EAAG,IAAI,CAAC,gBAAgB,SAAS,GAAG,IAAI,CAAC,MAAM;YAChD,CAAC,CAAA,EAAG,IAAI,CAAC,gBAAgB,CAAA,cAAA,CAAgB,GAAG,IAAI,CAAC,QAAQ,KAAK,MAAM;YACpE,CAAC,CAAA,EAAG,IAAI,CAAC,gBAAgB,CAAA,eAAA,CAAiB,GAAG,IAAI,CAAC,QAAQ,KAAK,OAAO;SACvE;IACH;AAEA,IAAA,IAAI,iBAAiB,GAAA;QACnB,OAAO,IAAI,CAAC,kBAAkB;IAChC;IAEA,yBAAyB,GAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAC3B,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC;AAErF,QAAA,OAAO,IAAI,EAAE,IAAI,KAAK,OAAO,GAAG,IAAI,GAAG,IAAI;IAC7C;AAEA,IAAA,gBAAgB,CAAC,IAAoB,EAAA;AACnC,QAAA,OAAO,0BAA0B,CAAC,IAAI,CAAC;IACzC;IAEA,YAAY,GAAA;QACV,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;IACtB;IAEA,YAAY,GAAA;QACV,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;IACvB;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,YAAY,IAAI,OAAO,EAAE;AAC3B,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC;QACjE;AAEA,QAAA,IAAI,MAAM,IAAI,OAAO,EAAE;YACrB,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,YAAY;YAChD,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa;YAElD,IAAI,CAAC,kBAAkB,EAAE;YAEzB,IAAI,YAAY,KAAK,MAAM,IAAI,WAAW,KAAK,MAAM,EAAE;gBACrD,IAAI,CAAC,YAAY,EAAE;YACrB;YAEA,IAAI,YAAY,KAAK,MAAM,IAAI,WAAW,KAAK,MAAM,EAAE;gBACrD,IAAI,CAAC,UAAU,EAAE;AACjB,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;oBACf,IAAI,CAAC,YAAY,EAAE;gBACrB;YACF;AAEA,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AAElC,YAAA,IAAI,CAAC,WAAW,CAAC,MAAK;gBACpB,IAAI,CAAC,iBAAiB,EAAE;YAC1B,CAAC,EAAE,GAAG,CAAC;QACT;AAEA,QAAA,IAAI,YAAY,IAAI,OAAO,EAAE;AAC3B,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;QACxC;AAEA,QAAA,IAAI,QAAQ,IAAI,OAAO,EAAE;YACvB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC;QACpD;AAEA,QAAA,IAAI,UAAU,IAAI,OAAO,EAAE;AACzB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC;QAC7D;IACF;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,OAAO,CAAC;AACV,aAAA,IAAI,CACH,MAAM,CAAC,CAAC,KAAK,KAA6B,KAAK,YAAY,aAAa,CAAC,EACzE,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;aAEhC,SAAS,CAAC,MAAK;YACd,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;gBACvC,IAAI,CAAC,KAAK,EAAE;YACd;YACA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAClD,IAAI,CAAC,UAAU,EAAE;YACnB;AACF,QAAA,CAAC,CAAC;IACN;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAAS,KAAI;AAC1D,YAAA,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AAC7B,gBAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAqB;AACrD,gBAAA,IAAI,QAAQ,CAAC,aAAa,KAAK,OAAO,EAAE;oBACtC,IAAI,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE;AAC/D,wBAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;wBAClD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,YAAY,EAAE,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,EAAA,CAAI,CAAC;oBAC9F;yBAAO;AACL,wBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC;oBAC9E;gBACF;AACF,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE;AAC7D,YAAA,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,CAAC,OAAO,CAAC;AAC3B,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAK;AACpB,YAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAC9B;YACF;AAEA,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,aAAa,CAAC,6BAA6B,CAAC;YAEvG,IAAI,UAAU,EAAE;AACd,gBAAA,UAAU,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YACpE;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE;QACrC;;AAGA,QAAA,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACtC,YAAY,CAAC,EAAE,CAAC;QAClB;AACA,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;;QAG1B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC;AACpE,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;QACpB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,yBAAyB,CAAC;AAC9E,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AAEzB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AAC3B,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;AAE/B,QAAA,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE;AAC1C,QAAA,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE;AACzC,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;IAC7B;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AACtC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf;QACF;AACA,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IAC1B;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB;QACF;QACA,IAAI,CAAC,UAAU,EAAE;AACjB,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;IAC3B;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,KAAK,EAAE;QACd;aAAO;YACL,IAAI,CAAC,IAAI,EAAE;QACb;IACF;AAEA,IAAA,SAAS,CAAC,IAAoB,EAAA;QAC5B,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YAC7B;QACF;AAEA,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE;QAChC,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;IACxC;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;QAC7B,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;IACxC;AAEA,IAAA,WAAW,CAAC,IAAoB,EAAA;QAC9B,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,EAAE,EAAE;YACtC,IAAI,CAAC,UAAU,EAAE;QACnB;aAAO;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QACtB;IACF;IAEA,SAAS,CAAC,KAAa,EAAE,IAAoB,EAAA;AAC3C,QAAA,OAAO,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC;IAC7C;IAEU,iBAAiB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B;QACF;AACA,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;IAChC;IAEU,kBAAkB,GAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B;QACF;AACA,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;IACjC;IAEU,YAAY,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB;QACF;QAEA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;AAEpD,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,gBAAgB,CAAA,QAAA,CAAU,CAAC;AAE/D,YAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,gBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,gBAAgB,CAAA,oBAAA,CAAsB,CAAC;YAC7E;AAEA,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC;AAEvD,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC;YAExF,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC;AAElE,YAAA,IAAI,CAAC,WAAW,CAAC,MAAK;AACpB,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,oBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC;gBACzD;YACF,CAAC,EAAE,EAAE,CAAC;QACR;IACF;IAEU,YAAY,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB;QACF;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC;AAEvD,QAAA,IAAI,CAAC,WAAW,CAAC,MAAK;AACpB,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC;AACrE,gBAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;oBAC5B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACrD;AACA,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;YACtB;QACF,CAAC,EAAE,GAAG,CAAC;IACT;IAEU,iBAAiB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB;QACF;QAEA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;AAEzD,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,gBAAgB,CAAA,cAAA,CAAgB,CAAC;AAE1E,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,GAAG,CAAC;AAE5D,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC;YAE7F,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,yBAAyB,CAAC;AAE5E,YAAA,IAAI,CAAC,WAAW,CAAC,MAAK;AACpB,gBAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,oBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,GAAG,CAAC;gBAC9D;YACF,CAAC,EAAE,EAAE,CAAC;QACR;IACF;IAEU,iBAAiB,GAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB;QACF;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,GAAG,CAAC;AAE5D,QAAA,IAAI,CAAC,WAAW,CAAC,MAAK;AACpB,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,yBAAyB,CAAC;AAC/E,gBAAA,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;oBACjC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC/D;AACA,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI;YAC3B;QACF,CAAC,EAAE,GAAG,CAAC;IACT;IAEU,WAAW,CAAC,EAAc,EAAE,KAAc,EAAA;AAClD,QAAA,MAAM,EAAE,GAAG,UAAU,CAAC,MAAK;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;AAC/C,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACxC;AACA,YAAA,EAAE,EAAE;QACN,CAAC,EAAE,KAAK,CAAC;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;IAChC;IAEQ,qBAAqB,CAAC,OAA2B,EAAE,YAAwB,EAAA;QACjF,IAAI,CAAC,OAAO,EAAE;YACZ;QACF;AACA,QAAA,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC;AAClD,QAAA,IAAI,OAAO,CAAC,UAAU,EAAE;AACtB,YAAA,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC;QACzC;IACF;AAEU,IAAA,aAAa,CAAC,IAAa,EAAA;AACnC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;QAClB,IAAI,CAAC,iBAAiB,EAAE;AAExB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACxB,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,YAAY,EAAE;YACrB;iBAAO;gBACL,IAAI,CAAC,YAAY,EAAE;YACrB;QACF;AAEA,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/B;uGAzYoB,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBADpD;;sBASE;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBACA;;sBAEA,SAAS;uBAAC,mBAAmB;;;MC4EnB,oCAAoC,CAAA;AACvC,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9C,IAAA,oBAAoB,GAAG,MAAM,CAAC,+BAA+B,CAAC;AAC9D,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAE7C,IAAA,IAAI;AAEb,IAAA,oBAAoB,GAAyB;AAC3C,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,YAAY,EAAE,SAAS;KACxB;AAEO,IAAA,eAAe,GAAG,IAAI,OAAO,EAAQ;AAE7C;;AAEG;IACH,QAAQ,GAAA;;;;AAIN,QAAA,IAAI,CAAC,oBAAoB;YACvB,IAAI,CAAC,IAAI,CAAC,oBAAoB;AAC9B,iBAAC,IAAI,CAAC,IAAI,CAAC;AACT,sBAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS;AACtF,sBAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;;AAG/F,QAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;;AAEzF,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AACxC,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;IACH,WAAW,GAAA;;AAET,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AAC3B,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;IACjC;IAEA,SAAS,GAAA;QACP,OAAO,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7C;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACjB;QACF;QAEA,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACrD;IAEA,aAAa,GAAA;QACX,IAAI,CAAC,UAAU,EAAE;QACjB,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IACjD;uGA5DW,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oCAAoC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA5GrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuGT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAGS,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,oOAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,qBAAqB,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAE/F,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBA9GhD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuGT,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,OAAO,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,gBAAgB,CAAC;AAC5G,iBAAA;;sBAME;;;MCpHU,sCAAsC,CAAA;uGAAtC,sCAAsC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sCAAsC,4FAbvC,iDAAiD,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2FAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAahD,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBAflD,SAAS;+BACE,kCAAkC,EAAA,QAAA,EAClC,iDAAiD,EAAA,aAAA,EAU5C,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,2FAAA,CAAA,EAAA;;;MCCpC,qCAAqC,CAAA;uGAArC,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qCAAqC,2FAZtC,gDAAgD,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8DAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAY/C,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBAdjD,SAAS;+BACE,iCAAiC,EAAA,QAAA,EACjC,gDAAgD,EAAA,aAAA,EAS3C,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,8DAAA,CAAA,EAAA;;;MCoKpC,0CAA0C,CAAA;AAC7C,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9C,IAAA,oBAAoB,GAAG,MAAM,CAAC,+BAA+B,CAAC;AAC9D,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9C,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;IAEvB,YAAY,GAAG,IAAI;AACnB,IAAA,IAAI;IAEb,WAAW,GAAG,IAAI;IACT,aAAa,GAAG,uBAAuB;IACvC,sBAAsB,GAAG,0BAA0B;AAE5D,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,CAAC,IAAI,CAAC,WAAW;IAC1B;AAEQ,IAAA,eAAe,GAAG,IAAI,OAAO,EAAQ;AAE7C;;AAEG;IACH,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACxB,IAAI,CAAC,MAAM,EAAE;QACf;;aAEK;;AAEH,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,QAAQ,EAAE;YACjB;QACF;;QAGA,IAAI,CAAC,oBAAoB,CAAC;AACvB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;AACpC,aAAA,SAAS,CAAC,CAAC,aAA6B,KAAI;;AAE3C,YAAA,IAAI,aAAa,KAAK,IAAI,EAAE;gBAC1B;YACF;;YAGA,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;gBAChD,IAAI,CAAC,QAAQ,EAAE;YACjB;AACF,QAAA,CAAC,CAAC;;AAGJ,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,oBAAoB,CAAC;AACvB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;AACpC,iBAAA,SAAS,CAAC,CAAC,YAA4B,KAAI;;AAE1C,gBAAA,IAAI,YAAY,KAAK,IAAI,EAAE;oBACzB;gBACF;;gBAGA,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE;oBAC/C;gBACF;;gBAGA,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACnC;gBACF;;AAGA,gBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE;oBAC9B;gBACF;;gBAGA,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,CAAC,CAAC;QACN;;QAGA,IAAI,CAAC,OAAO,CAAC;AACV,aAAA,IAAI,CACH,MAAM,CAAC,CAAC,KAAK,KAA6B,KAAK,YAAY,aAAa,CAAC,EACzE,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;aAEhC,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;gBACxB,IAAI,CAAC,MAAM,EAAE;YACf;;iBAEK;;AAEH,gBAAA,IAAI,IAAI,CAAC,YAAY,EAAE;oBACrB,IAAI,CAAC,QAAQ,EAAE;gBACjB;YACF;AACF,QAAA,CAAC,CAAC;;AAGJ,QAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;;AAEzF,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AACxC,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;IACH,WAAW,GAAA;;AAET,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AAC3B,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;IACjC;AAEA;;AAEG;IACH,QAAQ,GAAA;;AAEN,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACtB;QACF;;AAGA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB;QACF;;AAGA,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YAChB,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD;;AAGA,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;;QAGtC,IAAI,CAAC,oBAAoB,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACtE;AAEA;;AAEG;IACH,MAAM,GAAA;;AAEJ,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACtB;QACF;;AAGA,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB;QACF;;AAGA,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YAChB,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD;;AAGA,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;;QAGtC,IAAI,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACrE;AAEA;;AAEG;IACH,iBAAiB,GAAA;;AAEf,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,MAAM,EAAE;QACf;aAAO;YACL,IAAI,CAAC,QAAQ,EAAE;QACjB;IACF;AAEA;;AAEG;IACH,SAAS,CAAC,KAAa,EAAE,IAAoB,EAAA;AAC3C,QAAA,OAAO,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC;IAC7C;AAEA,IAAA,gBAAgB,CAAC,IAAoB,EAAA;AACnC,QAAA,OAAO,0BAA0B,CAAC,IAAI,CAAC;IACzC;AAEA,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;IAC5C;AAEA;;AAEG;AACK,IAAA,eAAe,CAAC,IAAoB,EAAA;AAC1C,QAAA,OAAO,6BAA6B,CAClC,IAAI,EACJ,CAAC,KAAK,KACJ,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,CAClH;IACH;IAEQ,aAAa,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpH;AAEA;;AAEG;IACK,aAAa,CAAC,MAAsB,EAAE,IAAoB,EAAA;AAChE,QAAA,OAAO,0BAA0B,CAAC,MAAM,EAAE,IAAI,CAAC;IACjD;uGAvNW,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1C,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0CAA0C,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,0CAAA,EAAA,aAAA,EAAA,yCAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA7I3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0ET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,mrBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAmEU,0CAA0C,CAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAfnD,OAAO,CAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MACP,gBAAgB,uWAChB,qBAAqB,CAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MACrB,oBAAoB,CAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MACH,oCAAoC,CAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MACrD,oCAAoC,CAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAEpC,sCAAsC,kGACtC,qCAAqC,CAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAO5B,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBA/ItD,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sCAAsC,EAAA,QAAA,EACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0ET,EAAA,CAAA,EAAA,aAAA,EAiDc,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC;wBACP,OAAO;wBACP,gBAAgB;wBAChB,qBAAqB;wBACrB,oBAAoB;AACpB,wBAAA,UAAU,CAAC,MAAM,oCAAoC,CAAC;wBACtD,oCAAoC;AACpC,wBAAA,UAAU,CAAC,MAAK,0CAA2C,CAAC;wBAC5D,sCAAsC;wBACtC,qCAAqC;qBACtC,EAAA,IAAA,EACK;AACJ,wBAAA,4CAA4C,EAAE,aAAa;AAC3D,wBAAA,2CAA2C,EAAE,YAAY;AAC1D,qBAAA,EAAA,MAAA,EAAA,CAAA,mrBAAA,CAAA,EAAA;;sBAQA;;sBACA;;;MC1EU,oCAAoC,CAAA;AACvC,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9C,IAAA,oBAAoB,GAAG,MAAM,CAAC,+BAA+B,CAAC;AAC9D,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AAEvB,IAAA,YAAY;IACZ,YAAY,GAAG,IAAI;AACnB,IAAA,IAAI;IACJ,YAAY,GAAG,KAAK;IAE7B,MAAM,GAAG,KAAK;IACL,aAAa,GAAG,uBAAuB;IACvC,sBAAsB,GAAG,0BAA0B;AAEpD,IAAA,eAAe,GAAG,IAAI,OAAO,EAAQ;AAE7C;;AAEG;AACH,IAAA,WAAW,CAAC,OAAsB,EAAA;;AAEhC,QAAA,IAAI,cAAc,IAAI,OAAO,EAAE;;YAE7B,IAAI,CAAC,aAAa,EAAE;QACtB;IACF;AAEA;;AAEG;IACH,QAAQ,GAAA;;QAEN,IAAI,CAAC,aAAa,EAAE;;QAGpB,IAAI,CAAC,OAAO,CAAC;AACV,aAAA,IAAI,CACH,MAAM,CAAC,CAAC,KAAK,KAA6B,KAAK,YAAY,aAAa,CAAC,EACzE,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;aAEhC,SAAS,CAAC,MAAK;;YAEd,IAAI,CAAC,aAAa,EAAE;AACtB,QAAA,CAAC,CAAC;;AAGJ,QAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;;AAEzF,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AACxC,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;IACH,WAAW,GAAA;;AAET,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AAC3B,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;IACjC;AAEA;;AAEG;IACH,SAAS,CAAC,KAAa,EAAE,IAAoB,EAAA;AAC3C,QAAA,OAAO,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC;IAC7C;AAEA,IAAA,gBAAgB,CAAC,IAAoB,EAAA;AACnC,QAAA,OAAO,0BAA0B,CAAC,IAAI,CAAC;IACzC;AAEA,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;IAC5C;AAEA;;AAEG;AACK,IAAA,eAAe,CAAC,IAAoB,EAAA;AAC1C,QAAA,OAAO,6BAA6B,CAClC,IAAI,EACJ,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,CAClH;IACH;AAEA;;AAEG;IACK,aAAa,GAAA;;AAEnB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;;QAGhD,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;QACpB;;AAGA,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;IACxC;uGApGW,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oCAAoC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA/ErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAcU,oCAAoC,CAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAV7C,OAAO,CAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MACP,gBAAgB,uWAChB,qBAAqB,CAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MACrB,oBAAoB,CAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MACpB,oCAAoC,CAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MACnB,0CAA0C,CAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAC3D,sCAAsC,kGACtC,qCAAqC,CAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAG5B,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAjFhD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiET,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,OAAO,EAAE;wBACP,OAAO;wBACP,gBAAgB;wBAChB,qBAAqB;wBACrB,oBAAoB;wBACpB,oCAAoC;AACpC,wBAAA,UAAU,CAAC,MAAM,0CAA0C,CAAC;wBAC5D,sCAAsC;wBACtC,qCAAqC;AACtC,qBAAA;AACF,iBAAA;;sBAME;;sBACA;;sBACA;;sBACA;;;MC3BU,oCAAoC,CAAA;AACvC,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9C,IAAA,oBAAoB,GAAG,MAAM,CAAC,+BAA+B,CAAC;IAE7D,YAAY,GAAG,IAAI;AACnB,IAAA,IAAI;AAEL,IAAA,eAAe,GAAG,IAAI,OAAO,EAAQ;IACpC,aAAa,GAAG,uBAAuB;IACvC,sBAAsB,GAAG,0BAA0B;AAE5D;;AAEG;IACH,QAAQ,GAAA;;AAEN,QAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;;AAEzF,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AACxC,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;IACH,WAAW,GAAA;;AAET,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AAC3B,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;IACjC;AAEA;;AAEG;IACH,SAAS,CAAC,KAAa,EAAE,IAAoB,EAAA;AAC3C,QAAA,OAAO,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC;IAC7C;AAEA,IAAA,gBAAgB,CAAC,IAAoB,EAAA;AACnC,QAAA,OAAO,0BAA0B,CAAC,IAAI,CAAC;IACzC;AAEA,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;IAC5C;uGA5CW,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oCAAoC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EApErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAIC,OAAO,CAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MACP,qBAAqB,CAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MACrB,oBAAoB,CAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MACH,oCAAoC,CAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MACrD,oCAAoC,CAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MACnB,0CAA0C,CAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAC3D,sCAAsC,kGACtC,qCAAqC,CAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAG5B,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAtEhD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDT,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,OAAO,EAAE;wBACP,OAAO;wBACP,qBAAqB;wBACrB,oBAAoB;AACpB,wBAAA,UAAU,CAAC,MAAM,oCAAoC,CAAC;wBACtD,oCAAoC;AACpC,wBAAA,UAAU,CAAC,MAAM,0CAA0C,CAAC;wBAC5D,sCAAsC;wBACtC,qCAAqC;AACtC,qBAAA;AACF,iBAAA;;sBAKE;;sBACA;;;ACxFI,MAAM,4BAA4B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4E3C;AAEM,MAAM,2BAA2B,GAAG;IACzC,oCAAoC;IACpC,oCAAoC;IACpC,0CAA0C;IAC1C,sCAAsC;IACtC,oCAAoC;IACpC,qCAAqC;CACtC;AAEM,MAAM,wBAAwB,GAAG;AACtC,IAAA,SAAS,EAAE,aAAa;AACxB,IAAA,oBAAoB,EAAE,+BAA+B;AACrD,IAAA,cAAc,EAAE,gBAAgB;AAChC,IAAA,cAAc,EAAE,gBAAgB;CACxB;AAEJ,SAAU,kCAAkC,CAAI,SAAsC,EAAA;IAC1F,OAAO;AACL,QAAA,OAAO,EAAE,+BAA+B;AACxC,QAAA,WAAW,EAAE,UAAU,CAAC,MAAM,SAAS,CAAC;KACzC;AACH;;AC9EM,MAAO,kCACX,SAAQ,+BAA+B,CAAA;IAG7B,gBAAgB,GAAG,qBAAqB;IACxC,kBAAkB,GAAG,mCAAmC;IAChD,UAAU,GAAiC,SAAS;uGAN3D,kCAAkC,EAAA,IAAA,EAAA,IAAA,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,QAAA,EAAA,IAAA,EAAA,kCAAkC,kSAFlC,CAAC,kCAAkC,CAAC,kCAAkC,CAAC,CAAC,EAAA,QAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,u7EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,28gBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,oCAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oCAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0CAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oCAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qCAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAExE,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAX9C,SAAS;+BACE,qBAAqB,EAAA,QAAA,EACrB,4BAA4B,EAAA,aAAA,EAEvB,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,YACrC,2BAA2B,EAAA,OAAA,EAC5B,2BAA2B,EAAA,IAAA,EAC9B,wBAAwB,aACnB,CAAC,kCAAkC,oCAAoC,CAAC,EAAA,MAAA,EAAA,CAAA,28gBAAA,CAAA,EAAA;;sBAQlF;;;MCAU,sCAAsC,CAAA;AACR,IAAA,mBAAmB;IAEnD,YAAY,GAAG,IAAI;IACnB,UAAU,GAAiC,aAAa;IACxD,KAAK,GAAG,KAAK;IACb,IAAI,GAA2B,MAAM;IACrC,UAAU,GAAqB,EAAE;IACjC,MAAM,GAAG,IAAI;IACb,QAAQ,GAA+B,MAAM;IAC7C,kBAAkB,GAAG,KAAK;AAEhB,IAAA,iBAAiB,GAAG,IAAI,YAAY,EAAgC;AACpE,IAAA,WAAW,GAAG,IAAI,YAAY,EAA0B;AACxD,IAAA,aAAa,GAAG,IAAI,YAAY,EAAW;AAC3C,IAAA,eAAe,GAAG,IAAI,YAAY,EAA8B;IAEhE,kBAAkB,GAAiC,SAAS;IAE/E,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,mBAAmB,EAAE,OAAO,EAAE;IACrC;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,mBAAmB,EAAE,IAAI,EAAE;IAClC;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE;IACnC;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,mBAAmB,EAAE,MAAM,EAAE;IACpC;uGAjCW,sCAAsC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sCAAsC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,+BAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAxBvC;;;;;;;;;;;;;;;;;;;;AAoBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EArBS,kCAAkC,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAyBjC,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBA3BlD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iCAAiC;oBAC3C,OAAO,EAAE,CAAC,kCAAkC,CAAC;AAC7C,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;AAoBT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,QAAQ,EAAE,+BAA+B;AAC1C,iBAAA;;sBAEE,SAAS;uBAAC,oBAAoB;;sBAE9B;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBACA;;;ACnDH;;AAEG;;ACFH;;AAEG;;;;"}
|