{"version":3,"file":"obelisco-angular-nav.mjs","sources":["../../../projects/obelisco-angular/nav/o-nav-horizontal/o-nav-horizontal.component.ts","../../../projects/obelisco-angular/nav/o-nav-horizontal/o-nav-horizontal.component.html","../../../projects/obelisco-angular/nav/o-nav-vertical/o-nav-vertical.component.ts","../../../projects/obelisco-angular/nav/o-nav-vertical/o-nav-vertical.component.html","../../../projects/obelisco-angular/nav/o-tabs/o-tabs.component.ts","../../../projects/obelisco-angular/nav/o-tabs/o-tabs.component.html","../../../projects/obelisco-angular/nav/o-nav.module.ts","../../../projects/obelisco-angular/nav/obelisco-angular-nav.ts"],"sourcesContent":["import {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  Input,\n  QueryList,\n  Renderer2,\n  ViewChildren,\n} from '@angular/core';\nimport { NavHorizontalItems } from 'obelisco-angular/core/models';\nimport { Sizes } from 'obelisco-angular/core/models';\n\n@Component({\n  selector: 'o-nav-horizontal',\n  templateUrl: './o-nav-horizontal.component.html',\n  styleUrls: ['./o-nav-horizontal.component.scss'],\n})\nexport class ONavHorizontalComponent implements AfterViewInit {\n  @Input() public navHorItems: NavHorizontalItems[] = [];\n  @Input() public isBordered: boolean = false;\n  @Input() public size: Sizes = 'md';\n  @Input() public exactRouteActive: boolean = false;\n  @Input() public customClasses: string = '';\n\n  @ViewChildren('navLink') public navLinks!: QueryList<ElementRef>;\n\n  constructor(private readonly renderer: Renderer2) {}\n\n  public ngAfterViewInit(): void {\n    const indexArr = this.navHorItems.map((_, i) => i);\n\n    this.navLinks.forEach((e, index) => {\n      if (\n        (e.nativeElement.href === '' || !e.nativeElement.href) &&\n        indexArr.includes(index)\n      ) {\n        this.renderer.setAttribute(\n          e.nativeElement,\n          'href',\n          this.navHorItems[index].link!\n        );\n      }\n    });\n  }\n\n  // public scrollToTop(): void {\n  //   window.scrollTo({ top: 0, behavior: 'smooth' });\n  // }\n}\n","<nav [ngClass]=\"customClasses\">\n  <ul class=\"nav flex-row nav-pills\">\n    <li class=\"nav-item\" *ngFor=\"let item of navHorItems; index as i\">\n      <a\n        #navLink\n        class=\"nav-link\"\n        [class.border-link]=\"isBordered\"\n        [class.disabled]=\"item.isDisabled\"\n        routerLinkActive=\"active\"\n        [routerLinkActiveOptions]=\"{ exact: exactRouteActive ? true : false }\"\n        [routerLink]=\"item.route\"\n        [ngClass]=\"size ? 'nav-link-' + size : ''\"\n      >\n        <div *ngIf=\"i === 0 && item.icon; else simpleTitle\" class=\"nav-icon\">\n          <i [class]=\"item.icon\"></i>\n          <span>{{ item.title }}</span>\n        </div>\n        <ng-template #simpleTitle>\n          <span>{{ item.title }}</span>\n        </ng-template>\n      </a>\n    </li>\n  </ul>\n</nav>\n<!-- (click)=\"scrollToTop()\" -->\n","import { Component, Input } from '@angular/core';\nimport { NavVerticalItems } from 'obelisco-angular/core/models';\n\n@Component({\n  selector: 'o-nav-vertical',\n  templateUrl: './o-nav-vertical.component.html',\n  styleUrls: ['./o-nav-vertical.component.scss'],\n})\nexport class ONavVerticalComponent {\n  @Input() public navVertItems: NavVerticalItems[] = [];\n  @Input() public exactRouteActive: boolean = false;\n  @Input() public customClasses: string = '';\n\n  public scrollToTop(): void {\n    window.scrollTo({ top: 0, behavior: 'smooth' });\n  }\n}\n","<nav [ngClass]=\"customClasses\">\n  <ul class=\"nav flex-column nav-pills nav-lg\">\n    <li class=\"nav-item\" *ngFor=\"let item of navVertItems; index as i\">\n      <a\n        *ngIf=\"item.children && item.children?.length !== 0; else templateChild\"\n        routerLinkActive=\"active-child\"\n        class=\"nav-link\"\n        [class.active-child]=\"navLink.isActive\"\n        #navLink=\"routerLinkActive\"\n        [class.disabled]=\"item.isDisabled\"\n        [routerLink]=\"item.route\"\n        (click)=\"scrollToTop()\"\n      >\n        <div class=\"nav-icon\">\n          <ng-container *ngIf=\"item.icon\">\n            <i *ngIf=\"item.icon.includes('bx')\" [ngClass]=\"item.icon\"></i>\n            <span *ngIf=\"!item.icon.includes('bx')\" class=\"material-symbols-rounded o-icon\" aria-hidden=\"true\">{{\n              item.icon\n            }}</span>\n          </ng-container>\n          <span>{{ item.title }}</span>\n        </div>\n      </a>\n      <ng-template #templateChild>\n        <a\n          class=\"nav-link\"\n          [class.active]=\"navLinkSecondLevel.isActive\"\n          routerLinkActive=\"active\"\n          [routerLinkActiveOptions]=\"{ exact: exactRouteActive ? true : false }\"\n          #navLinkSecondLevel=\"routerLinkActive\"\n          [routerLink]=\"item.route\"\n          [class.disabled]=\"item.isDisabled\"\n          (click)=\"scrollToTop()\"\n        >\n          <div class=\"nav-icon\">\n            <ng-container *ngIf=\"item.icon\">\n              <i *ngIf=\"item.icon.includes('bx')\" [ngClass]=\"item.icon\"></i>\n              <span *ngIf=\"!item.icon.includes('bx')\" class=\"material-symbols-rounded o-icon\" aria-hidden=\"true\">{{\n                item.icon\n              }}</span>\n            </ng-container>\n            <span>{{ item.title }}</span>\n          </div>\n        </a>\n      </ng-template>\n      <ul *ngFor=\"let secondItem of item.children; index as j\" class=\"nav flex-column nav-pills\">\n        <li class=\"nav-item\">\n          <a\n            *ngIf=\"secondItem.children && secondItem.children?.length !== 0; else templateChild\"\n            class=\"nav-link\"\n            [class.active-child]=\"navLinkSecondLevel.isActive\"\n            routerLinkActive=\"active-child\"\n            #navLinkSecondLevel=\"routerLinkActive\"\n            [routerLink]=\"secondItem.route\"\n            [class.disabled]=\"item.isDisabled\"\n            (click)=\"scrollToTop()\"\n          >\n            <div class=\"nav-icon\">\n              <ng-container *ngIf=\"secondItem.icon\">\n                <i *ngIf=\"secondItem.icon.includes('bx')\" [ngClass]=\"secondItem.icon\"></i>\n                <span *ngIf=\"!secondItem.icon.includes('bx')\" class=\"material-symbols-rounded o-icon\" aria-hidden=\"true\">{{\n                  secondItem.icon\n                }}</span>\n              </ng-container>\n              <i class=\"bx bxs-info-circle\"></i>\n              <span>{{ secondItem.title }} </span>\n            </div>\n          </a>\n          <ng-template #templateChild>\n            <a\n              class=\"nav-link\"\n              [class.active]=\"navLinkSecondLevel.isActive\"\n              routerLinkActive=\"active\"\n              [routerLinkActiveOptions]=\"{ exact: exactRouteActive ? true : false }\"\n              #navLinkSecondLevel=\"routerLinkActive\"\n              [routerLink]=\"secondItem.route\"\n              [class.disabled]=\"item.isDisabled\"\n              (click)=\"scrollToTop()\"\n            >\n              <div class=\"nav-icon\">\n                <ng-container *ngIf=\"secondItem.icon\">\n                  <i *ngIf=\"secondItem.icon.includes('bx')\" [ngClass]=\"secondItem.icon\"></i>\n                  <span *ngIf=\"!secondItem.icon.includes('bx')\" class=\"material-symbols-rounded o-icon\" aria-hidden=\"true\">{{\n                    secondItem.icon\n                  }}</span>\n                </ng-container>\n                <span>{{ secondItem.title }} </span>\n              </div>\n            </a>\n          </ng-template>\n          <ul *ngFor=\"let thirdItem of secondItem.children; index as z\" class=\"nav flex-column nav-pills\">\n            <li class=\"nav-item\">\n              <a\n                class=\"nav-link\"\n                [class.active]=\"navLinkThirdLevel.isActive\"\n                routerLinkActive=\"active\"\n                [routerLinkActiveOptions]=\"{ exact: exactRouteActive ? true : false }\"\n                #navLinkThirdLevel=\"routerLinkActive\"\n                [routerLink]=\"thirdItem.route\"\n                [class.disabled]=\"item.isDisabled\"\n                (click)=\"scrollToTop()\"\n              >\n                <div class=\"nav-icon\">\n                  <ng-container *ngIf=\"thirdItem.icon\">\n                    <i *ngIf=\"thirdItem.icon.includes('bx')\" [ngClass]=\"thirdItem.icon\"></i>\n                    <span *ngIf=\"!thirdItem.icon.includes('bx')\" class=\"material-symbols-rounded o-icon\" aria-hidden=\"true\">{{\n                      thirdItem.icon\n                    }}</span>\n                  </ng-container>\n                  <span>{{ thirdItem.title }}</span>\n                </div>\n              </a>\n            </li>\n          </ul>\n        </li>\n      </ul>\n    </li>\n  </ul>\n</nav>\n","import {\n  Component,\n  Input,\n  ComponentRef,\n  ViewContainerRef,\n  Renderer2,\n  AfterViewInit,\n  ElementRef,\n  ViewChild,\n  HostListener,\n  ChangeDetectorRef,\n  OnDestroy,\n} from '@angular/core';\nimport { Sizes, TabsProps } from 'obelisco-angular/core/models';\n\n@Component({\n  selector: 'o-tabs',\n  templateUrl: './o-tabs.component.html',\n  styleUrls: ['./o-tabs.component.scss'],\n})\nexport class OTabsComponent implements AfterViewInit, OnDestroy {\n  @Input() public navTabsItems: TabsProps[] = [];\n  @Input() public isFixedWidth: boolean = false;\n  @Input() public isItemsRounded: boolean = false;\n  @Input() public isItemsRoundedLight: boolean = false;\n  @Input() public size: Sizes = 'md';\n  @Input() public isSlidered: boolean = false;\n  @Input() public customClasses: string = '';\n\n  @ViewChild('tabContentContainer', { read: ViewContainerRef })\n  tabContentContainer!: ViewContainerRef;\n  @ViewChild('tabsList') tabsListRef!: ElementRef;\n\n  public activeTabComponentRef: ComponentRef<any> | null = null;\n  public activeTabIndex: number | null = null;\n  private isDragging = false;\n  private dragStartPositionX = 0;\n\n  constructor(\n    private viewContainerRef: ViewContainerRef,\n    private renderer: Renderer2,\n    private cdr: ChangeDetectorRef\n  ) {}\n\n  ngAfterViewInit() {\n    const initialActiveTabIndex = this.navTabsItems.findIndex(\n      (tab) => tab.isActive\n    );\n    if (initialActiveTabIndex !== -1) {\n      this.activateTab(initialActiveTabIndex);\n    }\n\n    this.cdr.detectChanges();\n\n    // Agregar event listeners a los botones de flecha\n    const arrowIcons =\n      this.tabsListRef.nativeElement.parentElement.querySelectorAll('.icon');\n    if (arrowIcons.length >= 2) {\n      arrowIcons[0].addEventListener('click', () =>\n        this.handleArrowClick('left')\n      );\n      arrowIcons[1].addEventListener('click', () =>\n        this.handleArrowClick('right')\n      );\n    }\n  }\n\n  handleArrowClick(direction: 'left' | 'right') {\n    const movementX = direction === 'left' ? -340 : 340;\n    const newScrollLeft = this.tabsListRef.nativeElement.scrollLeft + movementX;\n\n    this.tabsListRef.nativeElement.scrollTo({\n      left: newScrollLeft,\n      behavior: 'smooth',\n    });\n\n    this.handleIcons(newScrollLeft);\n  }\n\n  activateTab(tabIndex: number) {\n    if (!this.navTabsItems[tabIndex].isDisabled) {\n      if (this.activeTabIndex !== null) {\n        this.navTabsItems[this.activeTabIndex].isActive = false;\n      }\n\n      this.activeTabIndex = tabIndex;\n      this.navTabsItems[tabIndex].isActive = true;\n\n      if (this.activeTabComponentRef) {\n        this.activeTabComponentRef.destroy();\n      }\n\n      if (this.navTabsItems[tabIndex].child) {\n        this.activeTabComponentRef = this.viewContainerRef.createComponent(\n          this.navTabsItems[tabIndex].child\n        );\n      } else {\n        this.activeTabComponentRef = null;\n      }\n    }\n  }\n\n  handleTabClick(tabIndex: number, event: MouseEvent) {\n    this.activateTab(tabIndex);\n  }\n\n  handleTabKeyup(event: KeyboardEvent, tabIndex: number) {\n    if (event.key === 'Enter') {\n      this.activateTab(tabIndex);\n    }\n  }\n\n  // Función para el evento 'mousedown'\n  @HostListener('mousedown', ['$event'])\n  onMouseDown(event: MouseEvent) {\n    const target = event.target as HTMLElement;\n    if (target.classList.contains('material-symbols-rounded o-icon')) {\n      return;\n    }\n\n    this.isDragging = true;\n    this.dragStartPositionX = event.clientX;\n    this.renderer.addClass(this.tabsListRef.nativeElement, 'dragging');\n\n    this.renderer.setStyle(\n      this.tabsListRef.nativeElement,\n      'cursor',\n      'grabbing'\n    );\n    this.renderer.setStyle(document.body, 'user-select', 'none');\n  }\n\n  @HostListener('mouseleave')\n  onMouseLeave() {\n    if (this.isDragging) {\n      this.isDragging = false;\n      this.renderer.removeClass(this.tabsListRef.nativeElement, 'dragging');\n    }\n  }\n\n  @HostListener('mousemove', ['$event'])\n  onMouseMove(event: MouseEvent) {\n    if (this.isDragging) {\n      const movementX = event.clientX - this.dragStartPositionX;\n      this.dragStartPositionX = event.clientX;\n      this.renderer.setProperty(\n        this.tabsListRef.nativeElement,\n        'scrollLeft',\n        this.tabsListRef.nativeElement.scrollLeft - movementX\n      );\n      this.handleIcons(this.tabsListRef.nativeElement.scrollLeft);\n      event.preventDefault();\n    }\n  }\n\n  // Función para el evento 'mouseup'\n  @HostListener('mouseup')\n  onMouseUp() {\n    this.isDragging = false;\n    this.renderer.removeClass(this.tabsListRef.nativeElement, 'dragging');\n\n    this.renderer.removeStyle(this.tabsListRef.nativeElement, 'cursor');\n    this.renderer.removeStyle(document.body, 'user-select');\n  }\n\n  // Función para mostrar u ocultar las flechas de navegación\n  private handleIcons(scrollVal: number) {\n    const arrowIcons =\n      this.tabsListRef.nativeElement.parentElement.querySelectorAll('.icon');\n    const maxScrollableWidth =\n      this.tabsListRef.nativeElement.scrollWidth -\n      this.tabsListRef.nativeElement.clientWidth;\n\n    if (arrowIcons[0]) {\n      arrowIcons[0].style.display = scrollVal <= 0 ? 'none' : 'flex';\n    }\n    if (arrowIcons[1]) {\n      arrowIcons[1].style.display =\n        maxScrollableWidth - scrollVal <= 1 ? 'none' : 'flex';\n    }\n  }\n\n  ngOnDestroy(): void {\n    if (this.activeTabComponentRef) {\n      this.activeTabComponentRef.destroy();\n    }\n  }\n}\n","<nav\n  [class.tabs-slider]=\"true\"\n  [class.px-0]=\"!isSlidered\"\n  [ngClass]=\"customClasses\"\n  aria-label=\"Navegación por pestañas\"\n>\n  <ul\n    #tabsList\n    class=\"nav nav-pills tabs\"\n    [class.nav-box]=\"isItemsRounded\"\n    [class.nav-box-bg]=\"isItemsRoundedLight\"\n    [class.fixedWidth]=\"isFixedWidth\"\n  >\n    <li class=\"nav-item\" *ngFor=\"let tab of navTabsItems; let i = index\">\n      <a\n        class=\"nav-link\"\n        [class.active]=\"i === activeTabIndex\"\n        [class.disabled]=\"tab.isDisabled\"\n        (click)=\"handleTabClick(i, $event)\"\n        [ngClass]=\"{\n          'nav-link-lg': size === 'lg',\n          'nav-link-sm': size === 'sm'\n        }\"\n        tabindex=\"0\"\n        (keyup)=\"handleTabKeyup($event, i)\"\n      >\n        <div class=\"nav-icon\">\n          <ng-container *ngIf=\"tab.icon\">\n            <ng-container *ngIf=\"tab.icon.includes('bx')\">\n              <i [ngClass]=\"tab.icon\"></i>\n            </ng-container>\n            <ng-container *ngIf=\"!tab.icon.includes('bx')\">\n              <span class=\"material-symbols-rounded o-icon\" aria-hidden=\"true\">{{ tab.icon }}</span>\n            </ng-container>\n          </ng-container>\n          {{ tab.title }}\n          <ng-container *ngIf=\"tab.iconRight\">\n            <ng-container *ngIf=\"tab.icon && tab.icon.includes('bx')\">\n              <i [ngClass]=\"tab.icon\"></i>\n            </ng-container>\n            <ng-container *ngIf=\"tab.icon && !tab.icon.includes('bx')\">\n              <span class=\"material-symbols-rounded o-icon\" aria-hidden=\"true\">{{ tab.icon }}</span>\n            </ng-container>\n          </ng-container>\n        </div>\n      </a>\n    </li>\n  </ul>\n\n  <div class=\"icons-container\" *ngIf=\"isSlidered\">\n    <button type=\"button\" class=\"right-left icon\" id=\"left\">\n      <span class=\"material-symbols-rounded o-icon\" aria-hidden=\"true\">arrow_back_ios</span>\n    </button>\n    <button type=\"button\" class=\"right-left icon\" id=\"right\">\n      <span class=\"material-symbols-rounded o-icon\" aria-hidden=\"true\">arrow_forward_ios</span>\n    </button>\n  </div>\n</nav>\n","import { RouterModule } from '@angular/router';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ONavHorizontalComponent } from './o-nav-horizontal/o-nav-horizontal.component';\nimport { ONavVerticalComponent } from './o-nav-vertical/o-nav-vertical.component';\nimport { OTabsComponent } from './o-tabs/o-tabs.component';\n\n@NgModule({\n  declarations: [ONavHorizontalComponent, ONavVerticalComponent, OTabsComponent],\n  imports: [CommonModule, RouterModule],\n  exports: [ONavHorizontalComponent, ONavVerticalComponent, OTabsComponent]\n})\nexport class ONavModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}