{"version":3,"file":"ngx-obelisco-example-nav.mjs","sources":["../../../projects/ngx-obelisco/nav/o-nav-horizontal/o-nav-horizontal.component.ts","../../../projects/ngx-obelisco/nav/o-nav-horizontal/o-nav-horizontal.component.html","../../../projects/ngx-obelisco/nav/o-nav-vertical/o-nav-vertical.component.ts","../../../projects/ngx-obelisco/nav/o-nav-vertical/o-nav-vertical.component.html","../../../projects/ngx-obelisco/nav/o-tabs/o-tabs.component.ts","../../../projects/ngx-obelisco/nav/o-tabs/o-tabs.component.html","../../../projects/ngx-obelisco/nav/o-nav.module.ts","../../../projects/ngx-obelisco/nav/ngx-obelisco-example-nav.ts"],"sourcesContent":["import { AfterViewInit, Component, ElementRef, Input, QueryList, Renderer2, ViewChildren } from '@angular/core';\r\nimport { NavHorizontalItems } from 'ngx-obelisco-example/core/models';\r\nimport { Sizes } from 'ngx-obelisco-example/core/models';\r\n\r\n@Component({\r\n  selector: 'o-nav-horizontal',\r\n  templateUrl: './o-nav-horizontal.component.html',\r\n  styleUrls: ['./o-nav-horizontal.component.scss']\r\n})\r\nexport class ONavHorizontalComponent implements AfterViewInit {\r\n  @Input() public navHorItems: NavHorizontalItems[] = [];\r\n  @Input() public isBordered: boolean = false;\r\n  @Input() public size: Sizes = 'md';\r\n  @Input() public exactRouteActive: boolean = false;\r\n  @Input() public customClasses: string = '';\r\n\r\n  @ViewChildren('navLink') public navLinks!: QueryList<ElementRef>;\r\n\r\n  constructor(private readonly renderer: Renderer2) {}\r\n\r\n  public ngAfterViewInit(): void {\r\n    const indexArr = this.navHorItems.map((_, i) => i);\r\n\r\n    this.navLinks.forEach((e, index) => {\r\n      if ((e.nativeElement.href === '' || !e.nativeElement.href) && indexArr.includes(index)) {\r\n        this.renderer.setAttribute(e.nativeElement, 'href', this.navHorItems[index].link!);\r\n      }\r\n    });\r\n  }\r\n\r\n  // public scrollToTop(): void {\r\n  //   window.scrollTo({ top: 0, behavior: 'smooth' });\r\n  // }\r\n}\r\n","<nav [ngClass]=\"customClasses\">\r\n  <ul class=\"nav flex-row nav-pills\">\r\n    <li class=\"nav-item\" *ngFor=\"let item of navHorItems; index as i\">\r\n      <a\r\n        #navLink\r\n        class=\"nav-link\"\r\n        [class.border-link]=\"isBordered\"\r\n        [class.disabled]=\"item.isDisabled\"\r\n        routerLinkActive=\"active\"\r\n        [routerLinkActiveOptions]=\"{ exact: exactRouteActive ? true : false }\"\r\n        [routerLink]=\"item.route\"\r\n        [ngClass]=\"size ? 'nav-link-' + size : ''\"\r\n      >\r\n        <div *ngIf=\"i === 0 && item.icon; else simpleTitle\" class=\"nav-icon\">\r\n          <i [class]=\"item.icon\"></i>\r\n          <span>{{ item.title }}</span>\r\n        </div>\r\n        <ng-template #simpleTitle>\r\n          <span>{{ item.title }}</span>\r\n        </ng-template>\r\n      </a>\r\n    </li>\r\n  </ul>\r\n</nav>\r\n<!-- (click)=\"scrollToTop()\" -->\r\n","import { Component, Input } from '@angular/core';\r\nimport { NavVerticalItems } from 'ngx-obelisco-example/core/models';\r\n\r\n@Component({\r\n  selector: 'o-nav-vertical',\r\n  templateUrl: './o-nav-vertical.component.html',\r\n  styleUrls: ['./o-nav-vertical.component.scss']\r\n})\r\nexport class ONavVerticalComponent {\r\n  @Input() public navVertItems: NavVerticalItems[] = [];\r\n  @Input() public exactRouteActive: boolean = false;\r\n  @Input() public customClasses: string = '';\r\n\r\n  public scrollToTop(): void {\r\n    window.scrollTo({ top: 0, behavior: 'smooth' });\r\n  }\r\n}\r\n","<nav [ngClass]=\"customClasses\">\r\n  <ul class=\"nav flex-column nav-pills nav-lg\">\r\n    <li class=\"nav-item\" *ngFor=\"let item of navVertItems; index as i\">\r\n      <a\r\n        *ngIf=\"item.children && item.children?.length !== 0; else templateChild\"\r\n        routerLinkActive=\"active-child\"\r\n        class=\"nav-link\"\r\n        [class.active-child]=\"navLink.isActive\"\r\n        #navLink=\"routerLinkActive\"\r\n        [class.disabled]=\"item.isDisabled\"\r\n        [routerLink]=\"item.route\"\r\n        (click)=\"scrollToTop()\"\r\n      >\r\n        <div class=\"nav-icon\">\r\n          <ng-container *ngIf=\"item.icon\">\r\n            <i *ngIf=\"item.icon.includes('bx')\" [ngClass]=\"item.icon\"></i>\r\n            <span *ngIf=\"!item.icon.includes('bx')\" class=\"material-icons-round\" aria-hidden=\"true\">{{\r\n              item.icon\r\n            }}</span>\r\n          </ng-container>\r\n          <span>{{ item.title }}</span>\r\n        </div>\r\n      </a>\r\n      <ng-template #templateChild>\r\n        <a\r\n          class=\"nav-link\"\r\n          [class.active]=\"navLinkSecondLevel.isActive\"\r\n          routerLinkActive=\"active\"\r\n          [routerLinkActiveOptions]=\"{ exact: exactRouteActive ? true : false }\"\r\n          #navLinkSecondLevel=\"routerLinkActive\"\r\n          [routerLink]=\"item.route\"\r\n          [class.disabled]=\"item.isDisabled\"\r\n          (click)=\"scrollToTop()\"\r\n        >\r\n          <div class=\"nav-icon\">\r\n            <ng-container *ngIf=\"item.icon\">\r\n              <i *ngIf=\"item.icon.includes('bx')\" [ngClass]=\"item.icon\"></i>\r\n              <span *ngIf=\"!item.icon.includes('bx')\" class=\"material-icons-round\" aria-hidden=\"true\">{{\r\n                item.icon\r\n              }}</span>\r\n            </ng-container>\r\n            <span>{{ item.title }}</span>\r\n          </div>\r\n        </a>\r\n      </ng-template>\r\n      <ul *ngFor=\"let secondItem of item.children; index as j\" class=\"nav flex-column nav-pills\">\r\n        <li class=\"nav-item\">\r\n          <a\r\n            *ngIf=\"secondItem.children && secondItem.children?.length !== 0; else templateChild\"\r\n            class=\"nav-link\"\r\n            [class.active-child]=\"navLinkSecondLevel.isActive\"\r\n            routerLinkActive=\"active-child\"\r\n            #navLinkSecondLevel=\"routerLinkActive\"\r\n            [routerLink]=\"secondItem.route\"\r\n            [class.disabled]=\"item.isDisabled\"\r\n            (click)=\"scrollToTop()\"\r\n          >\r\n            <div class=\"nav-icon\">\r\n              <ng-container *ngIf=\"secondItem.icon\">\r\n                <i *ngIf=\"secondItem.icon.includes('bx')\" [ngClass]=\"secondItem.icon\"></i>\r\n                <span *ngIf=\"!secondItem.icon.includes('bx')\" class=\"material-icons-round\" aria-hidden=\"true\">{{\r\n                  secondItem.icon\r\n                }}</span>\r\n              </ng-container>\r\n              <i class=\"bx bxs-info-circle\"></i>\r\n              <span>{{ secondItem.title }} </span>\r\n            </div>\r\n          </a>\r\n          <ng-template #templateChild>\r\n            <a\r\n              class=\"nav-link\"\r\n              [class.active]=\"navLinkSecondLevel.isActive\"\r\n              routerLinkActive=\"active\"\r\n              [routerLinkActiveOptions]=\"{ exact: exactRouteActive ? true : false }\"\r\n              #navLinkSecondLevel=\"routerLinkActive\"\r\n              [routerLink]=\"secondItem.route\"\r\n              [class.disabled]=\"item.isDisabled\"\r\n              (click)=\"scrollToTop()\"\r\n            >\r\n              <div class=\"nav-icon\">\r\n                <ng-container *ngIf=\"secondItem.icon\">\r\n                  <i *ngIf=\"secondItem.icon.includes('bx')\" [ngClass]=\"secondItem.icon\"></i>\r\n                  <span *ngIf=\"!secondItem.icon.includes('bx')\" class=\"material-icons-round\" aria-hidden=\"true\">{{\r\n                    secondItem.icon\r\n                  }}</span>\r\n                </ng-container>\r\n                <span>{{ secondItem.title }} </span>\r\n              </div>\r\n            </a>\r\n          </ng-template>\r\n          <ul *ngFor=\"let thirdItem of secondItem.children; index as z\" class=\"nav flex-column nav-pills\">\r\n            <li class=\"nav-item\">\r\n              <a\r\n                class=\"nav-link\"\r\n                [class.active]=\"navLinkThirdLevel.isActive\"\r\n                routerLinkActive=\"active\"\r\n                [routerLinkActiveOptions]=\"{ exact: exactRouteActive ? true : false }\"\r\n                #navLinkThirdLevel=\"routerLinkActive\"\r\n                [routerLink]=\"thirdItem.route\"\r\n                [class.disabled]=\"item.isDisabled\"\r\n                (click)=\"scrollToTop()\"\r\n              >\r\n                <div class=\"nav-icon\">\r\n                  <ng-container *ngIf=\"thirdItem.icon\">\r\n                    <i *ngIf=\"thirdItem.icon.includes('bx')\" [ngClass]=\"thirdItem.icon\"></i>\r\n                    <span *ngIf=\"!thirdItem.icon.includes('bx')\" class=\"material-icons-round\" aria-hidden=\"true\">{{\r\n                      thirdItem.icon\r\n                    }}</span>\r\n                  </ng-container>\r\n                  <span>{{ thirdItem.title }}</span>\r\n                </div>\r\n              </a>\r\n            </li>\r\n          </ul>\r\n        </li>\r\n      </ul>\r\n    </li>\r\n  </ul>\r\n</nav>\r\n","import {\r\n  Component,\r\n  Input,\r\n  ComponentRef,\r\n  ViewContainerRef,\r\n  Renderer2,\r\n  AfterViewInit,\r\n  ElementRef,\r\n  ViewChild,\r\n  HostListener,\r\n  ChangeDetectorRef,\r\n  OnDestroy\r\n} from '@angular/core';\r\nimport { Sizes, TabsProps } from 'ngx-obelisco-example/core/models';\r\n\r\n@Component({\r\n  selector: 'o-tabs',\r\n  templateUrl: './o-tabs.component.html',\r\n  styleUrls: ['./o-tabs.component.scss']\r\n})\r\nexport class OTabsComponent implements AfterViewInit, OnDestroy {\r\n  @Input() public navTabsItems: TabsProps[] = [];\r\n  @Input() public isFixedWidth: boolean = false;\r\n  @Input() public isItemsRounded: boolean = false;\r\n  @Input() public isItemsRoundedLight: boolean = false;\r\n  @Input() public size: Sizes = 'md';\r\n  @Input() public isSlidered: boolean = false;\r\n  @Input() public customClasses: string = '';\r\n\r\n  @ViewChild('tabContentContainer', { read: ViewContainerRef }) tabContentContainer!: ViewContainerRef;\r\n  @ViewChild('tabsList') tabsListRef!: ElementRef;\r\n\r\n  public activeTabComponentRef: ComponentRef<any> | null = null;\r\n  public activeTabIndex: number | null = null;\r\n  private isDragging = false;\r\n  private dragStartPositionX = 0;\r\n\r\n  constructor(\r\n    private viewContainerRef: ViewContainerRef,\r\n    private renderer: Renderer2,\r\n    private cdr: ChangeDetectorRef\r\n  ) {}\r\n\r\n  ngAfterViewInit() {\r\n    const initialActiveTabIndex = this.navTabsItems.findIndex((tab) => tab.isActive);\r\n    if (initialActiveTabIndex !== -1) {\r\n      this.activateTab(initialActiveTabIndex);\r\n    }\r\n\r\n    this.cdr.detectChanges();\r\n\r\n    // Agregar event listeners a los botones de flecha\r\n    const arrowIcons = this.tabsListRef.nativeElement.parentElement.querySelectorAll('.icon');\r\n    if (arrowIcons.length >= 2) {\r\n      arrowIcons[0].addEventListener('click', () => this.handleArrowClick('left'));\r\n      arrowIcons[1].addEventListener('click', () => this.handleArrowClick('right'));\r\n    }\r\n  }\r\n\r\n  handleArrowClick(direction: 'left' | 'right') {\r\n    const movementX = direction === 'left' ? -340 : 340;\r\n    const newScrollLeft = this.tabsListRef.nativeElement.scrollLeft + movementX;\r\n\r\n    this.tabsListRef.nativeElement.scrollTo({\r\n      left: newScrollLeft,\r\n      behavior: 'smooth'\r\n    });\r\n\r\n    this.handleIcons(newScrollLeft);\r\n  }\r\n\r\n  activateTab(tabIndex: number) {\r\n    if (!this.navTabsItems[tabIndex].isDisabled) {\r\n      if (this.activeTabIndex !== null) {\r\n        this.navTabsItems[this.activeTabIndex].isActive = false;\r\n      }\r\n\r\n      this.activeTabIndex = tabIndex;\r\n      this.navTabsItems[tabIndex].isActive = true;\r\n\r\n      if (this.activeTabComponentRef) {\r\n        this.activeTabComponentRef.destroy();\r\n      }\r\n\r\n      if (this.navTabsItems[tabIndex].child) {\r\n        this.activeTabComponentRef = this.viewContainerRef.createComponent(this.navTabsItems[tabIndex].child);\r\n      } else {\r\n        this.activeTabComponentRef = null;\r\n      }\r\n    }\r\n  }\r\n\r\n  handleTabClick(tabIndex: number, event: MouseEvent) {\r\n    this.activateTab(tabIndex);\r\n  }\r\n\r\n  handleTabKeyup(event: KeyboardEvent, tabIndex: number) {\r\n    if (event.key === 'Enter') {\r\n      this.activateTab(tabIndex);\r\n    }\r\n  }\r\n\r\n  // Función para el evento 'mousedown'\r\n  @HostListener('mousedown', ['$event'])\r\n  onMouseDown(event: MouseEvent) {\r\n    const target = event.target as HTMLElement;\r\n    if (target.classList.contains('material-icons-round')) {\r\n      return;\r\n    }\r\n\r\n    this.isDragging = true;\r\n    this.dragStartPositionX = event.clientX;\r\n    this.renderer.addClass(this.tabsListRef.nativeElement, 'dragging');\r\n\r\n    this.renderer.setStyle(this.tabsListRef.nativeElement, 'cursor', 'grabbing');\r\n    this.renderer.setStyle(document.body, 'user-select', 'none');\r\n  }\r\n\r\n  @HostListener('mouseleave')\r\n  onMouseLeave() {\r\n    if (this.isDragging) {\r\n      this.isDragging = false;\r\n      this.renderer.removeClass(this.tabsListRef.nativeElement, 'dragging');\r\n    }\r\n  }\r\n\r\n  @HostListener('mousemove', ['$event'])\r\n  onMouseMove(event: MouseEvent) {\r\n    if (this.isDragging) {\r\n      const movementX = event.clientX - this.dragStartPositionX;\r\n      this.dragStartPositionX = event.clientX;\r\n      this.renderer.setProperty(\r\n        this.tabsListRef.nativeElement,\r\n        'scrollLeft',\r\n        this.tabsListRef.nativeElement.scrollLeft - movementX\r\n      );\r\n      this.handleIcons(this.tabsListRef.nativeElement.scrollLeft);\r\n      event.preventDefault();\r\n    }\r\n  }\r\n\r\n  // Función para el evento 'mouseup'\r\n  @HostListener('mouseup')\r\n  onMouseUp() {\r\n    this.isDragging = false;\r\n    this.renderer.removeClass(this.tabsListRef.nativeElement, 'dragging');\r\n\r\n    this.renderer.removeStyle(this.tabsListRef.nativeElement, 'cursor');\r\n    this.renderer.removeStyle(document.body, 'user-select');\r\n  }\r\n\r\n  // Función para mostrar u ocultar las flechas de navegación\r\n  private handleIcons(scrollVal: number) {\r\n    const arrowIcons = this.tabsListRef.nativeElement.parentElement.querySelectorAll('.icon');\r\n    const maxScrollableWidth = this.tabsListRef.nativeElement.scrollWidth - this.tabsListRef.nativeElement.clientWidth;\r\n\r\n    if (arrowIcons[0]) {\r\n      arrowIcons[0].style.display = scrollVal <= 0 ? 'none' : 'flex';\r\n    }\r\n    if (arrowIcons[1]) {\r\n      arrowIcons[1].style.display = maxScrollableWidth - scrollVal <= 1 ? 'none' : 'flex';\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.activeTabComponentRef) {\r\n      this.activeTabComponentRef.destroy();\r\n    }\r\n  }\r\n}\r\n","<nav\r\n  [class.tabs-slider]=\"true\"\r\n  [class.px-0]=\"!isSlidered\"\r\n  [ngClass]=\"customClasses\"\r\n  aria-label=\"Navegación por pestañas\"\r\n>\r\n  <ul\r\n    #tabsList\r\n    class=\"nav nav-pills tabs\"\r\n    [class.nav-box]=\"isItemsRounded\"\r\n    [class.nav-box-bg]=\"isItemsRoundedLight\"\r\n    [class.fixedWidth]=\"isFixedWidth\"\r\n  >\r\n    <li class=\"nav-item\" *ngFor=\"let tab of navTabsItems; let i = index\">\r\n      <a\r\n        class=\"nav-link\"\r\n        [class.active]=\"i === activeTabIndex\"\r\n        [class.disabled]=\"tab.isDisabled\"\r\n        (click)=\"handleTabClick(i, $event)\"\r\n        [ngClass]=\"{\r\n          'nav-link-lg': size === 'lg',\r\n          'nav-link-sm': size === 'sm'\r\n        }\"\r\n        tabindex=\"0\"\r\n        (keyup)=\"handleTabKeyup($event, i)\"\r\n      >\r\n        <div class=\"nav-icon\">\r\n          <ng-container *ngIf=\"tab.icon\">\r\n            <ng-container *ngIf=\"tab.icon.includes('bx')\">\r\n              <i [ngClass]=\"tab.icon\"></i>\r\n            </ng-container>\r\n            <ng-container *ngIf=\"!tab.icon.includes('bx')\">\r\n              <span class=\"material-icons-round\" aria-hidden=\"true\">{{ tab.icon }}</span>\r\n            </ng-container>\r\n          </ng-container>\r\n          {{ tab.title }}\r\n          <ng-container *ngIf=\"tab.iconRight\">\r\n            <ng-container *ngIf=\"tab.icon && tab.icon.includes('bx')\">\r\n              <i [ngClass]=\"tab.icon\"></i>\r\n            </ng-container>\r\n            <ng-container *ngIf=\"tab.icon && !tab.icon.includes('bx')\">\r\n              <span class=\"material-icons-round\" aria-hidden=\"true\">{{ tab.icon }}</span>\r\n            </ng-container>\r\n          </ng-container>\r\n        </div>\r\n      </a>\r\n    </li>\r\n  </ul>\r\n\r\n  <div class=\"icons-container\" *ngIf=\"isSlidered\">\r\n    <button type=\"button\" class=\"right-left icon\" id=\"left\">\r\n      <span class=\"material-icons-round\" aria-hidden=\"true\">arrow_back_ios</span>\r\n    </button>\r\n    <button type=\"button\" class=\"right-left icon\" id=\"right\">\r\n      <span class=\"material-icons-round\" aria-hidden=\"true\">arrow_forward_ios</span>\r\n    </button>\r\n  </div>\r\n</nav>\r\n","import { RouterModule } from '@angular/router';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ONavHorizontalComponent } from './o-nav-horizontal/o-nav-horizontal.component';\r\nimport { ONavVerticalComponent } from './o-nav-vertical/o-nav-vertical.component';\r\nimport { OTabsComponent } from './o-tabs/o-tabs.component';\r\n\r\n@NgModule({\r\n  declarations: [ONavHorizontalComponent, ONavVerticalComponent, OTabsComponent],\r\n  imports: [CommonModule, RouterModule],\r\n  exports: [ONavHorizontalComponent, ONavVerticalComponent, OTabsComponent]\r\n})\r\nexport class ONavModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;MASa,uBAAuB,CAAA;AASlC,IAAA,WAAA,CAA6B,QAAmB,EAAA;QAAnB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QARhC,IAAW,CAAA,WAAA,GAAyB,EAAE,CAAC;QACvC,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAI,CAAA,IAAA,GAAU,IAAI,CAAC;QACnB,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;QAClC,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;KAIS;IAE7C,eAAe,GAAA;AACpB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAEnD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,KAAI;YACjC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACtF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAK,CAAC,CAAC;AACpF,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;;oHAnBU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,sSCTpC,+5BAyBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,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,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,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,CAAA,EAAA,CAAA,CAAA;2FDhBa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,+5BAAA,EAAA,CAAA;gGAKZ,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,IAAI,EAAA,CAAA;sBAAnB,KAAK;gBACU,gBAAgB,EAAA,CAAA;sBAA/B,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBAE0B,QAAQ,EAAA,CAAA;sBAAvC,YAAY;uBAAC,SAAS,CAAA;;;MERZ,qBAAqB,CAAA;AALlC,IAAA,WAAA,GAAA;QAMkB,IAAY,CAAA,YAAA,GAAuB,EAAE,CAAC;QACtC,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;QAClC,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;AAK5C,KAAA;IAHQ,WAAW,GAAA;AAChB,QAAA,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;KACjD;;kHAPU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,sKCRlC,y4KAuHA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,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,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,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,CAAA,EAAA,CAAA,CAAA;2FD/Ga,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,y4KAAA,EAAA,CAAA;8BAKV,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBACU,gBAAgB,EAAA,CAAA;sBAA/B,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;;;MESK,cAAc,CAAA;AAiBzB,IAAA,WAAA,CACU,gBAAkC,EAClC,QAAmB,EACnB,GAAsB,EAAA;QAFtB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QAnBhB,IAAY,CAAA,YAAA,GAAgB,EAAE,CAAC;QAC/B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAChC,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;QACrC,IAAI,CAAA,IAAA,GAAU,IAAI,CAAC;QACnB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;QAKpC,IAAqB,CAAA,qBAAA,GAA6B,IAAI,CAAC;QACvD,IAAc,CAAA,cAAA,GAAkB,IAAI,CAAC;QACpC,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAkB,CAAA,kBAAA,GAAG,CAAC,CAAC;KAM3B;IAEJ,eAAe,GAAA;AACb,QAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC;AACjF,QAAA,IAAI,qBAAqB,KAAK,CAAC,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;AACzC,SAAA;AAED,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;;AAGzB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC1F,QAAA,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;AAC1B,YAAA,UAAU,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7E,YAAA,UAAU,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/E,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,SAA2B,EAAA;AAC1C,QAAA,MAAM,SAAS,GAAG,SAAS,KAAK,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;QACpD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,GAAG,SAAS,CAAC;AAE5E,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC;AACtC,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;KACjC;AAED,IAAA,WAAW,CAAC,QAAgB,EAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE;AAC3C,YAAA,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;gBAChC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;AACzD,aAAA;AAED,YAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;YAE5C,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC9B,gBAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC;AACtC,aAAA;YAED,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE;AACrC,gBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;AACvG,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AACnC,aAAA;AACF,SAAA;KACF;IAED,cAAc,CAAC,QAAgB,EAAE,KAAiB,EAAA;AAChD,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC5B;IAED,cAAc,CAAC,KAAoB,EAAE,QAAgB,EAAA;AACnD,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;AACzB,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC5B,SAAA;KACF;;AAID,IAAA,WAAW,CAAC,KAAiB,EAAA;AAC3B,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;QAC3C,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;YACrD,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC;AACxC,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AAEnE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC7E,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;KAC9D;IAGD,YAAY,GAAA;QACV,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AACvE,SAAA;KACF;AAGD,IAAA,WAAW,CAAC,KAAiB,EAAA;QAC3B,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC;AAC1D,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,WAAW,CACvB,IAAI,CAAC,WAAW,CAAC,aAAa,EAC9B,YAAY,EACZ,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,GAAG,SAAS,CACtD,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC5D,KAAK,CAAC,cAAc,EAAE,CAAC;AACxB,SAAA;KACF;;IAID,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AAEtE,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;KACzD;;AAGO,IAAA,WAAW,CAAC,SAAiB,EAAA;AACnC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC1F,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC;AAEnH,QAAA,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,YAAA,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,IAAI,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC;AAChE,SAAA;AACD,QAAA,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;YACjB,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,kBAAkB,GAAG,SAAS,IAAI,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC;AACrF,SAAA;KACF;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC9B,YAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC;AACtC,SAAA;KACF;;2GApJU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;+FAAd,cAAc,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EASiB,gBAAgB,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7B5D,6tEA0DA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,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,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDtCa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,QAAQ,EAAA,QAAA,EAAA,6tEAAA,EAAA,CAAA;+JAKF,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBACU,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,mBAAmB,EAAA,CAAA;sBAAlC,KAAK;gBACU,IAAI,EAAA,CAAA;sBAAnB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBAEwD,mBAAmB,EAAA,CAAA;sBAAhF,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,qBAAqB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;gBACrC,WAAW,EAAA,CAAA;sBAAjC,SAAS;uBAAC,UAAU,CAAA;gBA0ErB,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAgBrC,YAAY,EAAA,CAAA;sBADX,YAAY;uBAAC,YAAY,CAAA;gBAS1B,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAiBrC,SAAS,EAAA,CAAA;sBADR,YAAY;uBAAC,SAAS,CAAA;;;MElIZ,UAAU,CAAA;;uGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAV,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,EAJN,YAAA,EAAA,CAAA,uBAAuB,EAAE,qBAAqB,EAAE,cAAc,CAAA,EAAA,OAAA,EAAA,CACnE,YAAY,EAAE,YAAY,CAC1B,EAAA,OAAA,EAAA,CAAA,uBAAuB,EAAE,qBAAqB,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA;wGAE7D,UAAU,EAAA,OAAA,EAAA,CAHX,YAAY,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA;2FAGzB,UAAU,EAAA,UAAA,EAAA,CAAA;kBALtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,uBAAuB,EAAE,qBAAqB,EAAE,cAAc,CAAC;AAC9E,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;AACrC,oBAAA,OAAO,EAAE,CAAC,uBAAuB,EAAE,qBAAqB,EAAE,cAAc,CAAC;AAC1E,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}