{"version":3,"file":"novo-elements-elements-tabs.mjs","sources":["../../../projects/novo-elements/src/elements/tabs/Tabs.ts","../../../projects/novo-elements/src/elements/tabs/Tabs.module.ts","../../../projects/novo-elements/src/elements/tabs/novo-elements-elements-tabs.ts"],"sourcesContent":["// NG2\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n  AfterContentChecked,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostBinding,\n  Input,\n  OnInit,\n  Optional,\n  Output,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { Router, RouterLink } from '@angular/router';\nimport { BooleanInput } from 'novo-elements/utils';\n\n@Component({\n    selector: 'novo-nav',\n    template: '<ng-content></ng-content>',\n    styleUrls: ['./tab-nav.scss'],\n    standalone: false,\n})\nexport class NovoNavElement implements AfterContentChecked {\n  @Input()\n  theme: string = '';\n  @Input()\n  direction: string = '';\n  @Input()\n  outlet: any;\n  @Input()\n  router: string;\n  @HostBinding('class.condensed')\n  @Input()\n  @BooleanInput()\n  condensed: boolean = false;\n\n  items: Array<any> = [];\n\n  /** The index of the active tab. */\n  @Input()\n  get selectedIndex(): number | null {\n    return this._selectedIndex;\n  }\n  set selectedIndex(value: number | null) {\n    this._indexToSelect = coerceNumberProperty(value, null);\n  }\n  private _selectedIndex: number | null = null;\n  /** The tab index that should be selected after the content has been checked. */\n  private _indexToSelect: number | null = 0;\n  /** Output to enable support for two-way binding on `[(selectedIndex)]` */\n  @Output() readonly selectedIndexChange: EventEmitter<number> = new EventEmitter<number>();\n\n  ngAfterContentChecked() {\n    // Don't clamp the `indexToSelect` immediately in the setter because it can happen that\n    // the amount of tabs changes before the actual change detection runs.\n    const indexToSelect = (this._indexToSelect = this._clampTabIndex(this._indexToSelect));\n    if (this._selectedIndex !== indexToSelect) {\n      const isFirstRun = this._selectedIndex == null;\n      // Changing these values after change detection has run\n      // since the checked content may contain references to them.\n      Promise.resolve().then(() => {\n        this._deactivateAllItems(this.items);\n        this._activateSelectedItem(indexToSelect);\n        this._showActiveContent(indexToSelect);\n        if (!isFirstRun) {\n          this.selectedIndexChange.emit(indexToSelect);\n        }\n      });\n\n      this._selectedIndex = indexToSelect;\n    }\n  }\n\n  select(item) {\n    const indexToSelect = this.items.indexOf(item);\n    // Deactivate all other tabs\n    this._deactivateAllItems(this.items);\n    this._activateSelectedItem(indexToSelect);\n    this._showActiveContent(indexToSelect);\n    this.selectedIndexChange.emit(indexToSelect);\n  }\n\n  add(item) {\n    if (this.items.length === 0) {\n      item.active = true;\n      // item.selected.next();\n    }\n    this.items.push(item);\n  }\n\n  private _activateSelectedItem(indexToSelect: number) {\n    const item = this.items[indexToSelect];\n    if (item) {\n      item.active = true;\n    }\n  }\n\n  private _showActiveContent(indexToSelect: number) {\n    if (this.outlet) {\n      this.outlet.show(indexToSelect);\n    }\n  }\n\n  private _deactivateAllItems(items: Array<any>) {\n    items.forEach((t) => {\n      if (t.active === true) {\n        // t.deselected.next();\n      }\n      t.active = false;\n    });\n  }\n\n  /** Clamps the given index to the bounds of 0 and the tabs length. */\n  private _clampTabIndex(index: number | null): number {\n    return Math.min(this.items.length - 1, Math.max(index || 0, 0));\n  }\n}\n\n@Component({\n    selector: 'novo-tab',\n    host: {\n        '(click)': 'select()',\n        '[class.active]': 'active',\n        '[class.disabled]': 'disabled',\n        '[attr.role]': '\"tab\"',\n    },\n    template: `\n    <div #tablink class=\"novo-tab-link\">\n      <ng-content></ng-content>\n    </div>\n    <span class=\"indicator\"></span>\n  `,\n    styleUrls: ['./tab.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class NovoTabElement {\n  @HostBinding('attr.role')\n  public role = 'tab';\n\n  @Input()\n  active: boolean = false;\n\n  @Input()\n  color: string;\n\n  @Input()\n  @BooleanInput()\n  disabled: boolean = false;\n\n  @Output()\n  activeChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n  onlyText = true;\n  @HostBinding('class.text-only')\n  get hb_textOnly() {\n    return this.onlyText;\n  }\n\n  @ViewChild('tablink')\n  tablink;\n\n  nav: any;\n\n  constructor(nav: NovoNavElement, private el: ElementRef, private cdr: ChangeDetectorRef) {\n    this.nav = nav;\n    this.nav.add(this);\n    const tablink = el.nativeElement.querySelector('.novo-tab-link');\n    if (tablink) {\n      for (let i = 0; i < tablink.childNodes.length; i++) {\n        if (tablink.childNodes[i].nodeType !== Node.TEXT_NODE) {\n          this.onlyText = false;\n        }\n      }\n    }\n  }\n\n  select() {\n    if (!this.disabled) {\n      this.activeChange.emit(true);\n      this.nav.select(this);\n    }\n    this.cdr.detectChanges();\n  }\n}\n\n@Component({\n    selector: 'novo-tab-button',\n    host: {\n        '(click)': 'select()',\n        '[class.active]': 'active',\n        '[class.disabled]': 'disabled',\n    },\n    template: '<ng-content></ng-content>',\n    styleUrls: ['./tab-button.scss'],\n    standalone: false,\n})\nexport class NovoTabButtonElement {\n  @HostBinding('attr.role')\n  public role = 'tab';\n  @Input()\n  active: boolean = false;\n  @Input()\n  disabled: boolean = false;\n\n  nav: any;\n\n  constructor(nav: NovoNavElement) {\n    this.nav = nav;\n    this.nav.add(this);\n  }\n\n  select() {\n    if (!this.disabled) {\n      this.nav.select(this);\n    }\n  }\n}\n\n@Component({\n    selector: 'novo-tab-link',\n    host: {\n        '(click)': 'select()',\n        '[class.active]': 'active',\n        '[class.disabled]': 'disabled',\n    },\n    template: `\n    <div class=\"novo-tab-link\">\n      <ng-content></ng-content>\n    </div>\n    <span class=\"indicator\"></span>\n  `,\n    styleUrls: ['./tab.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false,\n})\nexport class NovoTabLinkElement implements OnInit {\n  @HostBinding('attr.role')\n  public role = 'tab';\n  @Input()\n  active: boolean = false;\n  @Input()\n  disabled: boolean = false;\n  @Input()\n  spy: string;\n\n  nav: any;\n\n  constructor(nav: NovoNavElement, private router: Router, private cdr: ChangeDetectorRef, @Optional() private link?: RouterLink) {\n    this.nav = nav;\n    this.nav.add(this);\n  }\n\n  ngOnInit(): void {\n    if (this.isLinkActive(this.link)) {\n      this.nav.select(this);\n    }\n  }\n\n  select() {\n    if (!this.disabled) {\n      this.nav.select(this);\n      if (this.spy) {\n        const el = document.querySelector(`#${this.spy}`);\n        el?.scrollIntoView(true);\n      }\n    }\n  }\n\n  private isLinkActive(link: RouterLink) {\n    return link && link.urlTree ? this.router.isActive(link.urlTree, false) : false;\n  }\n}\n\n@Component({\n    selector: 'novo-nav-outlet',\n    template: '<ng-content></ng-content>',\n    styleUrls: ['./tab-outlet.scss'],\n    encapsulation: ViewEncapsulation.None,\n    standalone: false,\n})\nexport class NovoNavOutletElement {\n  items: Array<any> = [];\n\n  show(index) {\n    const item = this.items[index];\n\n    /**\n     * Deactivates other tab items\n     * @param items - deactivated items\n     */\n    function _deactivateAllItems(items) {\n      items.forEach((t) => {\n        if (t.active === true) {\n          // t.deselected.next();\n        }\n        t.active = false;\n      });\n    }\n\n    _deactivateAllItems(this.items);\n    item.active = true;\n  }\n\n  add(item) {\n    if (this.items.length === 0) {\n      item.active = true;\n    }\n    this.items.push(item);\n  }\n}\n\n@Component({\n    selector: 'novo-nav-content',\n    host: {\n        '[class.active]': 'active',\n    },\n    template: '<ng-content></ng-content>',\n    styleUrls: ['./tab-content.scss'],\n    encapsulation: ViewEncapsulation.None,\n    standalone: false,\n})\nexport class NovoNavContentElement {\n  @Input()\n  active: boolean = false;\n\n  constructor(outlet: NovoNavOutletElement) {\n    outlet.add(this);\n  }\n}\n\n@Component({\n    selector: 'novo-nav-header',\n    host: {\n        '[class.active]': 'active',\n        '(click)': 'show($event)',\n    },\n    template: '<ng-content></ng-content>',\n    styleUrls: ['./tab-header.scss'],\n    standalone: false,\n})\nexport class NovoNavHeaderElement {\n  @HostBinding('attr.role')\n  public role = 'tabpanel';\n  @Input()\n  active: boolean = false;\n  @Input('for')\n  forElement: any;\n  outlet: any;\n\n  constructor(outlet: NovoNavOutletElement) {\n    this.active = this.active || false;\n    this.outlet = outlet;\n  }\n\n  show(event?: any) {\n    try {\n      const INDEX = this.outlet.items.indexOf(this.forElement);\n      if (INDEX > -1) {\n        this.outlet.show(INDEX);\n      }\n    } catch (err) {\n      // do nothing\n    }\n  }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n// APP\nimport {\n  NovoNavContentElement,\n  NovoNavElement,\n  NovoNavHeaderElement,\n  NovoNavOutletElement,\n  NovoTabButtonElement,\n  NovoTabElement,\n  NovoTabLinkElement,\n} from './Tabs';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [\n    NovoNavElement,\n    NovoTabElement,\n    NovoTabButtonElement,\n    NovoTabLinkElement,\n    NovoNavOutletElement,\n    NovoNavContentElement,\n    NovoNavHeaderElement,\n  ],\n  exports: [\n    NovoNavElement,\n    NovoTabElement,\n    NovoTabButtonElement,\n    NovoTabLinkElement,\n    NovoNavOutletElement,\n    NovoNavContentElement,\n    NovoNavHeaderElement,\n  ],\n})\nexport class NovoTabModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}