{"version":3,"file":"ngx-bootstrap-tabs.mjs","sources":["../../../../src/tabs/ng-transclude.directive.ts","../../../../src/tabs/tabset.config.ts","../../../../src/tabs/tabset.component.ts","../../../../src/tabs/tabset.component.html","../../../../src/tabs/tab.directive.ts","../../../../src/tabs/tab-heading.directive.ts","../../../../src/tabs/tabs.module.ts","../../../../src/tabs/ngx-bootstrap-tabs.ts"],"sourcesContent":["import { Directive, TemplateRef, ViewContainerRef, input, effect } from '@angular/core';\n\n@Directive({\n    selector: '[ngTransclude]',\n    standalone: true\n})\nexport class NgTranscludeDirective {\n  viewRef: ViewContainerRef;\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  protected _ngTransclude?: TemplateRef<any>;\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  ngTransclude = input<TemplateRef<any> | undefined>();\n\n  constructor(viewRef: ViewContainerRef) {\n    this.viewRef = viewRef;\n    \n    effect(() => {\n      const templateRef = this.ngTransclude();\n      this._ngTransclude = templateRef;\n      if (templateRef) {\n        this.viewRef.createEmbeddedView(templateRef);\n      }\n    });\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TabsetConfig {\n  /** provides default navigation context class: 'tabs' or 'pills' */\n  type = 'tabs';\n  /** provides possibility to set keyNavigations enable or disable, by default is enable */\n  isKeysAllowed = true;\n  /** aria label for tab list */\n  ariaLabel = 'Tabs';\n}\n","import { Component, HostBinding, OnDestroy, Renderer2, ElementRef, input, effect } from '@angular/core';\n\nimport { TabDirective } from './tab.directive';\nimport { TabsetConfig } from './tabset.config';\nimport { NgTranscludeDirective } from './ng-transclude.directive';\nimport { NgClass } from '@angular/common';\n// todo: add active event to tab\n// todo: fix? mixing static and dynamic tabs position tabs in order of creation\n@Component({\n    selector: 'tabset',\n    templateUrl: './tabset.component.html',\n    styleUrls: ['./tabs.scss'],\n    standalone: true,\n    imports: [NgClass, NgTranscludeDirective]\n})\nexport class TabsetComponent implements OnDestroy {\n  /** if true tabs will be placed vertically */\n  vertical = input<boolean>(false);\n\n  /** if true tabs fill the container and have a consistent width */\n  justified = input<boolean>(false);\n\n  /** navigation context class: 'tabs' or 'pills' */\n  type = input<string>(this._config.type);\n\n  get isKeysAllowed(): boolean {\n    return this._isKeysAllowed;\n  }\n\n  set isKeysAllowed(value: boolean) {\n    this._isKeysAllowed = value;\n  }\n\n  @HostBinding('class.tab-container') clazz = true;\n\n  tabs: TabDirective[] = [];\n  classMap: { [key: string]: boolean } = {};\n\n  /** aria label for tab list */\n  ariaLabel = 'Tabs';\n\n  protected isDestroyed = false;\n  protected _isKeysAllowed = true;\n  private defaultActivationScheduled = false;\n\n  constructor(\n    private _config: TabsetConfig,\n    private renderer: Renderer2,\n    private elementRef: ElementRef\n  ) {\n    this._isKeysAllowed = _config.isKeysAllowed;\n    this.ariaLabel = _config.ariaLabel;\n\n    // Watch for input changes and update class map\n    effect(() => {\n      const _ = [this.vertical(), this.justified(), this.type()];\n      this.setClassMap();\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.isDestroyed = true;\n  }\n\n  addTab(tab: TabDirective): void {\n    // If tab has a tabOrder, insert it in the correct position\n    if (tab.tabOrder !== undefined) {\n      this.insertTabByOrder(tab);\n    } else {\n      // Default behavior - add to end\n      this.tabs.push(tab);\n    }\n\n    // Activation logic\n    // - If the newly added tab is already active, set it active again to leverage\n    //   TabDirective's setter which will deactivate others.\n    // - Otherwise, schedule a single deferred default-first activation if none active.\n    if (tab.active) {\n      tab.active = true;\n      return;\n    }\n\n    if (!this.defaultActivationScheduled) {\n      this.defaultActivationScheduled = true;\n      // Defer default activation to avoid racing template-driven [active] inputs\n      Promise.resolve().then(() => {\n        this.defaultActivationScheduled = false;\n        // Guard in case the tabset changed meanwhile\n        if (!this.tabs.length) {\n          return;\n        }\n        if (this.tabs.some((t: TabDirective) => !!t.active)) {\n          return;\n        }\n        const firstEnabled = this.tabs.find((t: TabDirective) => !t.disabled);\n        if (firstEnabled) {\n          firstEnabled.active = true;\n        }\n      });\n    }\n  }\n\n  private insertTabByOrder(tab: TabDirective): void {\n    let insertIndex = this.tabs.length; // Default to end\n\n    // Find the correct position to insert the ordered tab\n    for (let i = 0; i < this.tabs.length; i++) {\n      const existingTab = this.tabs[i];\n\n      // If the existing tab has an order and the new tab's order is less than it\n      if (existingTab.tabOrder !== undefined &&\n          tab.tabOrder !== undefined &&\n          tab.tabOrder < existingTab.tabOrder) {\n        insertIndex = i;\n        break;\n      }\n\n      // If we reach an unordered tab, we want to insert before it\n      // (ordered tabs should come before unordered tabs)\n      if (existingTab.tabOrder === undefined) {\n        insertIndex = i;\n        break;\n      }\n    }\n\n    // Insert at the found position\n    this.tabs.splice(insertIndex, 0, tab);\n  }\n\n  removeTab(\n    tab: TabDirective,\n    options = { reselect: true, emit: true }\n  ): void {\n    const index = this.tabs.indexOf(tab);\n    if (index === -1 || this.isDestroyed) {\n      return;\n    }\n    // Select a new tab if the tab to be removed is selected and not destroyed\n    if (options.reselect && tab.active && this.hasAvailableTabs(index)) {\n      const newActiveIndex = this.getClosestTabIndex(index);\n      this.tabs[newActiveIndex].active = true;\n    }\n    if (options.emit) {\n      tab.removed.emit(tab);\n    }\n    this.tabs.splice(index, 1);\n    if (tab.elementRef.nativeElement.parentNode) {\n      this.renderer.removeChild(\n        tab.elementRef.nativeElement.parentNode,\n        tab.elementRef.nativeElement\n      );\n    }\n  }\n\n    keyNavActions(event: KeyboardEvent, index: number) {\n    if (!this.isKeysAllowed) {\n      return;\n    }\n    const list: HTMLElement[] = Array.from(this.elementRef.nativeElement.querySelectorAll('.nav-link'));\n    // const activeElList = list.filter((el: HTMLElement) => !el.classList.contains('disabled'));\n    if (event.keyCode === 13 || event.key === 'Enter' || event.keyCode === 32 || event.key === 'Space') {\n      event.preventDefault();\n      const currentTab = list[(index) % list.length];\n      currentTab.click();\n\n      return;\n    }\n\n    if (event.keyCode === 39 || event.key === 'RightArrow') {\n      let nextTab: HTMLElement;\n      let shift = 1;\n\n      do {\n        nextTab = list[(index + shift) % list.length];\n\n        shift++;\n      } while (nextTab.classList.contains('disabled'));\n\n      nextTab.focus();\n\n      return;\n    }\n\n    if (event.keyCode === 37 || event.key === 'LeftArrow') {\n      let previousTab: HTMLElement;\n      let shift = 1;\n      let i = index;\n\n      do {\n        if ((i - shift) < 0) {\n          i = list.length - 1;\n          previousTab = list[i];\n          shift = 0;\n        } else {\n          previousTab = list[i - shift];\n        }\n\n        shift++;\n      } while (previousTab.classList.contains('disabled'));\n\n      previousTab.focus();\n\n      return;\n    }\n\n    if (event.keyCode === 36 || event.key === 'Home') {\n      event.preventDefault();\n\n      let firstTab: HTMLElement;\n      let shift = 0;\n\n      do {\n        firstTab = list[shift % list.length];\n\n        shift++;\n      } while (firstTab.classList.contains('disabled'));\n\n      firstTab.focus();\n\n      return;\n    }\n\n    if (event.keyCode === 35 || event.key === 'End') {\n      event.preventDefault();\n\n      let lastTab: HTMLElement;\n      let shift = 1;\n      let i = index;\n\n      do {\n        if ((i - shift) < 0) {\n          i = list.length - 1;\n          lastTab = list[i];\n          shift = 0;\n        } else {\n          lastTab = list[i - shift];\n        }\n\n        shift++;\n      } while (lastTab.classList.contains('disabled'));\n\n      lastTab.focus();\n\n      return;\n    }\n\n    if (event.keyCode === 46 || event.key === 'Delete') {\n      if (this.tabs[index].removable) {\n        this.removeTab(this.tabs[index]);\n\n        if (list[index + 1]) {\n          list[(index + 1) % list.length].focus();\n\n          return;\n        }\n\n        if (list[list.length - 1]) {\n          list[0].focus();\n        }\n      }\n    }\n  }\n\n  protected getClosestTabIndex(index: number): number {\n    const tabsLength = this.tabs.length;\n    if (!tabsLength) {\n      return -1;\n    }\n\n    for (let step = 1; step <= tabsLength; step += 1) {\n      const prevIndex = index - step;\n      const nextIndex = index + step;\n      if (this.tabs[prevIndex] && !this.tabs[prevIndex].disabled) {\n        return prevIndex;\n      }\n      if (this.tabs[nextIndex] && !this.tabs[nextIndex].disabled) {\n        return nextIndex;\n      }\n    }\n\n    return -1;\n  }\n\n  protected hasAvailableTabs(index: number): boolean {\n    const tabsLength = this.tabs.length;\n    if (!tabsLength) {\n      return false;\n    }\n\n    for (let i = 0; i < tabsLength; i += 1) {\n      if (!this.tabs[i].disabled && i !== index) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  protected setClassMap(): void {\n    this.classMap = {\n      'nav-stacked': this.vertical(),\n      'flex-column': this.vertical(),\n      'nav-justified': this.justified(),\n      [`nav-${this.type()}`]: true\n    };\n  }\n}\n","<ul class=\"nav\" [ngClass]=\"classMap\"\n    (click)=\"$event.preventDefault()\"\n    [attr.aria-label]=\"ariaLabel\"\n    role=\"tablist\">\n  @for (tabz of tabs; track tabz; let i = $index) {\n    <li [ngClass]=\"['nav-item', tabz._customClass || '']\"\n      [class.active]=\"tabz.active\" [class.disabled]=\"tabz.disabled\" (keydown)=\"keyNavActions($event, i)\">\n      <a href=\"javascript:void(0);\" class=\"nav-link\" role=\"tab\"\n        [attr.aria-controls]=\"tabz.id ? tabz.id : ''\"\n        [attr.aria-selected]=\"!!tabz.active\"\n        [attr.id]=\"tabz.id ? tabz.id + '-link' : ''\"\n        [class.active]=\"tabz.active\" [class.disabled]=\"tabz.disabled\"\n        (click)=\"tabz.active = true\">\n        <span [ngTransclude]=\"tabz.headingRef\">{{ tabz.heading() }}</span>\n        @if (tabz.removable) {\n          <span (click)=\"$event.preventDefault(); removeTab(tabz);\" class=\"bs-remove-tab\"> &#10060;</span>\n        }\n      </a>\n    </li>\n  }\n</ul>\n<div class=\"tab-content\">\n  <ng-content></ng-content>\n</div>\n","import {\n  ChangeDetectorRef,\n  Directive,\n  HostBinding,\n  TemplateRef,\n  OnInit,\n  OnDestroy,\n  ElementRef,\n  Renderer2,\n  input,\n  output,\n  effect\n} from '@angular/core';\nimport { TabsetComponent } from './tabset.component';\n\n@Directive({\n    selector: 'tab, [tab]', exportAs: 'tab',\n    standalone: true\n})\nexport class TabDirective implements OnInit, OnDestroy {\n  /** tab header text */\n  heading = input<string | undefined>();\n  /** tab id. The same id with suffix '-link' will be added to the corresponding &lt;li&gt; element  */\n  @HostBinding('attr.id')\n  id?: string;\n\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  idInput = input<string | undefined>(undefined, { alias: 'id' });\n  /** if true tab can not be activated */\n  disabled = false;\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  disabledInput = input<boolean>(false, { alias: 'disabled' });\n  /** if true tab can be removable, additional button will appear */\n  removable = false;\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  removableInput = input<boolean>(false, { alias: 'removable' });\n  /** tab order for sorting when using dynamic tabs with *ngIf */\n  tabOrder?: number;\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  tabOrderInput = input<number | undefined>(undefined, { alias: 'tabOrder' });\n  /** if set, will be added to the tab's class attribute. Multiple classes are supported. */\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  customClassInput = input<string | undefined>(undefined, { alias: 'customClass' });\n  /** tab active state - can be set via input */\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  activeInput = input<boolean | undefined>(undefined, { alias: 'active' });\n\n  /** tab active state toggle */\n  @HostBinding('class.active')\n  get active(): boolean | undefined {\n    return this._active;\n  }\n\n  set active(active: boolean | undefined) {\n    if (this._active === active) {\n      return;\n    }\n    if ((this.disabled && active) || !active) {\n      if (this._active && !active) {\n        this.deselect.emit(this);\n        this._active = active;\n        this._cdr.markForCheck();\n      }\n\n      return;\n    }\n\n    this._active = active;\n    this._cdr.markForCheck();\n    this.selectTab.emit(this);\n    this.tabset.tabs.forEach((tab: TabDirective) => {\n      if (tab !== this) {\n        tab.active = false;\n      }\n    });\n  }\n\n  /** fired when tab became active, $event:Tab equals to selected instance of Tab component */\n  selectTab = output<TabDirective>();\n  /** fired when tab became inactive, $event:Tab equals to deselected instance of Tab component */\n  deselect = output<TabDirective>();\n  /** fired before tab will be removed, $event:Tab equals to instance of removed tab */\n  removed = output<TabDirective>();\n\n  @HostBinding('class.tab-pane') addClass = true;\n  @HostBinding('attr.role') role = 'tabpanel';\n  @HostBinding('attr.aria-labelledby') get ariaLabelledby(): string {\n    return this.id ? `${this.id}-link` : '';\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  headingRef?: TemplateRef<any>;\n  tabset: TabsetComponent;\n  protected _active? = false;\n  _customClass = '';\n\n  constructor(\n    tabset: TabsetComponent,\n    public elementRef: ElementRef,\n    public renderer: Renderer2,\n    private _cdr: ChangeDetectorRef\n  ) {\n    this.tabset = tabset;\n\n    // Watch for id input changes\n    effect(() => {\n      const idValue = this.idInput();\n      if (idValue !== undefined) {\n        this.id = idValue;\n      }\n    });\n\n    // Watch for disabled input changes\n    effect(() => {\n      this.disabled = this.disabledInput();\n    });\n\n    // Watch for removable input changes\n    effect(() => {\n      this.removable = this.removableInput();\n    });\n\n    // Watch for tabOrder input changes\n    effect(() => {\n      this.tabOrder = this.tabOrderInput();\n    });\n\n    // Watch for customClass input changes\n    effect(() => {\n      const customClass = this.customClassInput();\n\n      if (this._customClass) {\n        this._customClass.split(' ').forEach((cssClass: string) => {\n          this.renderer.removeClass(this.elementRef.nativeElement, cssClass);\n        });\n      }\n\n      this._customClass = customClass ? customClass.trim() : '';\n\n      if (this._customClass) {\n        this._customClass.split(' ').forEach((cssClass: string) => {\n          this.renderer.addClass(this.elementRef.nativeElement, cssClass);\n        });\n      }\n    });\n\n    // Watch for active input changes\n    effect(() => {\n      const activeValue = this.activeInput();\n      if (activeValue !== undefined) {\n        this.active = activeValue;\n      }\n    });\n  }\n\n  ngOnInit(): void {\n    this.removable = !!this.removableInput();\n    this.tabOrder = this.tabOrderInput();\n    this.disabled = this.disabledInput();\n    // Add tab to tabset after input properties are set\n    this.tabset.addTab(this);\n  }\n\n  ngOnDestroy(): void {\n    this.tabset.removeTab(this, { reselect: false, emit: false });\n  }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\nimport { TabDirective } from './tab.directive';\n\n/** Should be used to mark <ng-template> element as a template for tab heading */\n@Directive({\n    selector: '[tabHeading]',\n    standalone: true\n})\nexport class TabHeadingDirective {\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  templateRef?: TemplateRef<any>;\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  constructor(templateRef: TemplateRef<any>, tab: TabDirective) {\n    tab.headingRef = templateRef;\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgTranscludeDirective } from './ng-transclude.directive';\nimport { TabHeadingDirective } from './tab-heading.directive';\nimport { TabDirective } from './tab.directive';\nimport { TabsetComponent } from './tabset.component';\n\n@NgModule({\n    imports: [CommonModule, NgTranscludeDirective,\n        TabDirective,\n        TabsetComponent,\n        TabHeadingDirective],\n    exports: [\n        TabDirective,\n        TabsetComponent,\n        TabHeadingDirective,\n        NgTranscludeDirective\n    ]\n})\nexport class TabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TabsetConfig","i1.TabsetComponent","i1.TabDirective"],"mappings":"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"}