{"version":3,"file":"clr-angular-layout-tabs.mjs","sources":["../../../projects/angular/layout/tabs/enums/tabs-layout.enum.ts","../../../projects/angular/layout/tabs/providers/tabs.service.ts","../../../projects/angular/layout/tabs/tab-content.ts","../../../projects/angular/layout/tabs/tabs-id.provider.ts","../../../projects/angular/layout/tabs/tab-link.directive.ts","../../../projects/angular/layout/tabs/tab.ts","../../../projects/angular/layout/tabs/tab-action.directive.ts","../../../projects/angular/layout/tabs/tab-overflow-content.ts","../../../projects/angular/layout/tabs/tabs.ts","../../../projects/angular/layout/tabs/tabs-actions.ts","../../../projects/angular/layout/tabs/chocolate/tabs-willy-wonka.ts","../../../projects/angular/layout/tabs/chocolate/active-oompa-loompa.ts","../../../projects/angular/layout/tabs/tabs.module.ts","../../../projects/angular/layout/tabs/index.ts","../../../projects/angular/layout/tabs/clr-angular-layout-tabs.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport enum TabsLayout {\n  HORIZONTAL = 'horizontal',\n  VERTICAL = 'vertical',\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable, ViewContainerRef } from '@angular/core';\n\nimport { TabsLayout } from '../enums/tabs-layout.enum';\nimport { ClrTab } from '../tab';\n\n@Injectable()\nexport class TabsService {\n  layout: TabsLayout | string = TabsLayout.HORIZONTAL;\n  tabContentViewContainer: ViewContainerRef;\n\n  private _children: ClrTab[] = [];\n\n  get children() {\n    return this._children;\n  }\n\n  get activeTab() {\n    return this.children.find((tab: ClrTab) => {\n      return tab.active;\n    });\n  }\n\n  get overflowTabs() {\n    if (this.layout === TabsLayout.VERTICAL) {\n      return [];\n    } else {\n      return this.children.filter((tab: ClrTab) => tab.tabLink.inOverflow === true);\n    }\n  }\n\n  register(tab: ClrTab) {\n    this._children.push(tab);\n  }\n\n  unregister(tab: ClrTab) {\n    const index = this.children.indexOf(tab);\n    if (index > -1) {\n      this.children.splice(index, 1);\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, EmbeddedViewRef, Inject, Input, OnDestroy, TemplateRef, ViewChild } from '@angular/core';\nimport { IF_ACTIVE_ID, IfActiveService } from '@clr/angular/utils';\n\nimport { TabsService } from './providers/tabs.service';\n\nlet nbTabContentComponents = 0;\n\n@Component({\n  selector: 'clr-tab-content',\n  template: `\n    <ng-template #tabContentProjectedRef>\n      <section\n        [id]=\"tabContentId\"\n        role=\"tabpanel\"\n        class=\"tab-content\"\n        [class.active]=\"active\"\n        [hidden]=\"!active\"\n        [attr.aria-labelledby]=\"ariaLabelledBy\"\n        [attr.aria-hidden]=\"!active\"\n      >\n        <ng-content></ng-content>\n      </section>\n    </ng-template>\n  `,\n  standalone: false,\n})\nexport class ClrTabContent implements OnDestroy {\n  @Input('id') tabContentId: string;\n\n  private viewRef: EmbeddedViewRef<ClrTabContent>;\n\n  constructor(\n    public ifActiveService: IfActiveService,\n    @Inject(IF_ACTIVE_ID) public id: number,\n    private tabsService: TabsService\n  ) {\n    if (!this.tabContentId) {\n      this.tabContentId = 'clr-tab-content-' + nbTabContentComponents++;\n    }\n  }\n\n  get active() {\n    return this.ifActiveService.current === this.id;\n  }\n\n  get ariaLabelledBy(): string {\n    return this.tabsService.children.find(tab => tab.tabLink.id === this.id)?.tabLink?.tabLinkId;\n  }\n\n  // The template must be applied on the top-down phase of view-child initialization to prevent\n  // components in the content from initializing before a content container exists.\n  // Some child components need their container for sizing calculations.\n  @ViewChild('tabContentProjectedRef', { static: true })\n  private set templateRef(value: TemplateRef<ClrTabContent>) {\n    this.viewRef = this.tabsService.tabContentViewContainer.createEmbeddedView(value);\n  }\n\n  ngOnDestroy(): void {\n    const index = this.tabsService.tabContentViewContainer.indexOf(this.viewRef);\n    if (index > -1) {\n      this.tabsService.tabContentViewContainer.remove(index);\n    }\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { InjectionToken } from '@angular/core';\n\nlet nbTabsComponent = 0;\n\nexport const TABS_ID = new InjectionToken<number>('TABS_ID');\n\nexport function tokenFactory() {\n  return 'clr-tabs-' + nbTabsComponent++;\n}\n\nexport const TABS_ID_PROVIDER = {\n  provide: TABS_ID,\n  useFactory: tokenFactory,\n};\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive, ElementRef, HostBinding, HostListener, Inject, Input, ViewContainerRef } from '@angular/core';\nimport { IF_ACTIVE_ID, IfActiveService, TemplateRefContainer } from '@clr/angular/utils';\n\nimport { TabsLayout } from './enums/tabs-layout.enum';\nimport { TabsService } from './providers/tabs.service';\nimport { TABS_ID } from './tabs-id.provider';\n\nlet nbTabLinkComponents = 0;\n\n@Directive({\n  selector: '[clrTabLink]',\n  host: {\n    '[class.btn]': 'true',\n    role: 'tab',\n    type: 'button',\n  },\n  standalone: false,\n})\nexport class ClrTabLink {\n  @Input('id') @HostBinding('id') tabLinkId: string;\n\n  templateRefContainer: TemplateRefContainer;\n\n  private _inOverflow: boolean;\n\n  constructor(\n    public ifActiveService: IfActiveService,\n    @Inject(IF_ACTIVE_ID) readonly id: number,\n    public el: ElementRef<HTMLElement>,\n    viewContainerRef: ViewContainerRef,\n    private tabsService: TabsService,\n    @Inject(TABS_ID) public tabsId: number\n  ) {\n    if (!this.tabLinkId) {\n      this.tabLinkId = 'clr-tab-link-' + nbTabLinkComponents++;\n    }\n\n    // Tab links can be rendered in one of two places: in the main area or inside the overflow dropdown menu.\n    // Here, we create a container so that its template can be used to create embeddedView on the fly.\n    // See TabsService's renderView() method and how it's used in Tabs class for an example.\n    this.templateRefContainer = viewContainerRef.createComponent(TemplateRefContainer, {\n      projectableNodes: [[el.nativeElement]],\n    }).instance;\n  }\n\n  @Input('clrTabLinkInOverflow')\n  get inOverflow(): boolean {\n    return this._inOverflow && this.tabsService.layout !== TabsLayout.VERTICAL;\n  }\n  set inOverflow(inOverflow) {\n    this._inOverflow = inOverflow;\n  }\n\n  @HostBinding('class.btn-link')\n  @HostBinding('class.nav-link')\n  get addLinkClasses() {\n    return !this.inOverflow;\n  }\n\n  @HostBinding('attr.aria-controls')\n  get ariaControls(): string {\n    return this.tabsService.children.find(tab => tab.tabLink === this)?.tabContent?.tabContentId;\n  }\n\n  @HostBinding('class.active')\n  @HostBinding('attr.aria-selected')\n  get active() {\n    return this.ifActiveService.current === this.id;\n  }\n\n  @HostBinding('attr.tabindex')\n  get tabindex(): 0 | -1 {\n    return this.active ? 0 : -1;\n  }\n\n  @HostListener('click')\n  activate() {\n    this.ifActiveService.current = this.id;\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, ContentChild, Inject } from '@angular/core';\nimport { IF_ACTIVE_ID, IF_ACTIVE_ID_PROVIDER, IfActiveService } from '@clr/angular/utils';\n\nimport { TabsService } from './providers/tabs.service';\nimport { ClrTabContent } from './tab-content';\nimport { ClrTabLink } from './tab-link.directive';\n\n@Component({\n  selector: 'clr-tab',\n  template: `<ng-content></ng-content>`,\n  providers: [IF_ACTIVE_ID_PROVIDER],\n  standalone: false,\n})\nexport class ClrTab {\n  @ContentChild(ClrTabLink, { static: true }) tabLink: ClrTabLink;\n  @ContentChild(ClrTabContent, { static: true }) tabContent: ClrTabContent;\n\n  constructor(\n    public ifActiveService: IfActiveService,\n    @Inject(IF_ACTIVE_ID) public id: number,\n    private tabsService: TabsService\n  ) {\n    tabsService.register(this);\n  }\n\n  get active() {\n    return this.ifActiveService.current === this.id;\n  }\n\n  ngOnDestroy() {\n    this.tabsService.unregister(this);\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[clrTabAction]',\n  host: {\n    tabindex: '0',\n  },\n  standalone: false,\n})\nexport class ClrTabAction {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component } from '@angular/core';\n\n@Component({\n  selector: 'clr-tab-overflow-content',\n  template: `<ng-content></ng-content>`,\n  host: {\n    '[class.dropdown-menu]': 'true',\n  },\n  standalone: false,\n})\nexport class ClrTabOverflowContent {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport {\n  AfterContentInit,\n  Component,\n  ContentChildren,\n  ElementRef,\n  HostBinding,\n  Inject,\n  Input,\n  OnDestroy,\n  QueryList,\n  ViewChild,\n  ViewContainerRef,\n} from '@angular/core';\nimport { ClrPopoverHostDirective, ClrPopoverService } from '@clr/angular/popover/common';\nimport { ClrCommonStringsService, ClrKeyFocus, IfActiveService } from '@clr/angular/utils';\nimport { Subscription } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\n\nimport { TabsLayout } from './enums/tabs-layout.enum';\nimport { TabsService } from './providers/tabs.service';\nimport { ClrTab } from './tab';\nimport { ClrTabAction } from './tab-action.directive';\nimport { ClrTabLink } from './tab-link.directive';\nimport { ClrTabOverflowContent } from './tab-overflow-content';\nimport { TABS_ID, TABS_ID_PROVIDER } from './tabs-id.provider';\n@Component({\n  selector: 'clr-tabs',\n  template: `\n    <ul\n      class=\"nav\"\n      role=\"tablist\"\n      [clrKeyFocus]=\"tabLinkElements\"\n      clrDirection=\"both\"\n      (clrFocusChange)=\"toggleOverflowOnPosition($event)\"\n      (focusout)=\"resetKeyFocusCurrentToActive($event)\"\n    >\n      <!--tab links-->\n      @for (link of tabLinkDirectives; track link) {\n        @if (link.tabsId === tabsId && !link.inOverflow) {\n          <li role=\"presentation\" class=\"nav-item\">\n            <ng-container [ngTemplateOutlet]=\"link.templateRefContainer.template\"></ng-container>\n          </li>\n        }\n      }\n      @if (tabsService.overflowTabs.length > 0) {\n        <div class=\"tabs-overflow bottom-right\" role=\"presentation\" [class.open]=\"popoverService.open\">\n          <li role=\"application\" class=\"nav-item\">\n            <button\n              #tabOverflowTrigger\n              class=\"btn btn-link nav-link dropdown-toggle\"\n              type=\"button\"\n              aria-hidden=\"true\"\n              [attr.tabindex]=\"activeTabInOverflow && !popoverService.open ? 0 : -1\"\n              [class.active]=\"activeTabInOverflow\"\n              [class.open]=\"popoverService.open\"\n              (mousedown)=\"_mousedown = true\"\n              (focus)=\"openOverflowOnFocus()\"\n              (click)=\"toggleOverflowOnClick()\"\n              [attr.title]=\"commonStrings.keys.more\"\n            >\n              <cds-icon\n                shape=\"ellipsis-horizontal\"\n                [status]=\"popoverService.open ? 'info' : null\"\n                [attr.title]=\"commonStrings.keys.more\"\n              ></cds-icon>\n            </button>\n          </li>\n          <!--tab links in overflow menu-->\n          @if (popoverService.open) {\n            <clr-tab-overflow-content\n              (document:keydown.escape)=\"closeOnEscapeKey()\"\n              (document:click)=\"closeOnOutsideClick($event, tabOverflowTrigger)\"\n              (focusout)=\"closeOnFocusOut($event)\"\n            >\n              @for (link of tabLinkDirectives; track link) {\n                @if (link.tabsId === tabsId && link.inOverflow) {\n                  <ng-container [ngTemplateOutlet]=\"link.templateRefContainer.template\"></ng-container>\n                }\n              }\n            </clr-tab-overflow-content>\n          }\n        </div>\n      }\n      <ng-content select=\"clr-tabs-actions\"></ng-content>\n    </ul>\n    <ng-container #tabContentViewContainer></ng-container>\n  `,\n  providers: [IfActiveService, TabsService, TABS_ID_PROVIDER],\n  hostDirectives: [ClrPopoverHostDirective],\n  standalone: false,\n})\nexport class ClrTabs implements AfterContentInit, OnDestroy {\n  tabLinkElements: HTMLElement[] = [];\n\n  // in order to check focus is triggered by click\n  // we are using this _mousedown flag\n  _mousedown = false;\n\n  @ViewChild(ClrKeyFocus, { static: true }) keyFocus: ClrKeyFocus;\n\n  @ContentChildren(ClrTabAction, { read: ElementRef, descendants: true }) tabsActions: QueryList<ElementRef>;\n  @ContentChildren(ClrTab) private tabs: QueryList<ClrTab>;\n\n  private subscriptions: Subscription[] = [];\n  private _tabOverflowEl: HTMLElement;\n  private _tabLinkDirectives: ClrTabLink[] = [];\n\n  constructor(\n    public ifActiveService: IfActiveService,\n    public popoverService: ClrPopoverService,\n    public tabsService: TabsService,\n    @Inject(TABS_ID) public tabsId: number,\n    public commonStrings: ClrCommonStringsService\n  ) {}\n\n  @Input('clrLayout')\n  get layout(): TabsLayout | string {\n    return this.tabsService.layout;\n  }\n  set layout(layout: TabsLayout | string) {\n    if (\n      Object.keys(TabsLayout)\n        .map(key => {\n          return (TabsLayout as Record<string, any>)[key];\n        })\n        .indexOf(layout) >= 0\n    ) {\n      this.tabsService.layout = layout;\n    }\n  }\n\n  get tabLinkDirectives(): ClrTabLink[] {\n    return this._tabLinkDirectives;\n  }\n\n  get activeTabInOverflow() {\n    return this.tabsService.overflowTabs.indexOf(this.tabsService.activeTab) > -1;\n  }\n\n  get activeTabPosition() {\n    return this._tabLinkDirectives.findIndex(link => link.active);\n  }\n\n  get isCurrentInOverflow() {\n    return this.keyFocus.current >= this.overflowPosition;\n  }\n\n  @HostBinding('class.tabs-vertical')\n  get isVertical() {\n    return this.layout === TabsLayout.VERTICAL;\n  }\n\n  @ViewChild(ClrTabOverflowContent, { read: ElementRef })\n  set tabOverflowEl(value: ElementRef<HTMLElement>) {\n    this._tabOverflowEl = value && value.nativeElement;\n    if (this.popoverService.open && value) {\n      // only when tab overflow view element is registered,\n      // we need to move the focus to the first item\n      this.keyFocus.focusCurrent();\n    }\n  }\n\n  private get overflowPosition() {\n    return this._tabLinkDirectives.filter(link => !link.inOverflow).length;\n  }\n\n  @ViewChild('tabContentViewContainer', { static: true, read: ViewContainerRef })\n  private set tabContentViewContainer(value: ViewContainerRef) {\n    this.tabsService.tabContentViewContainer = value;\n  }\n\n  ngAfterContentInit() {\n    this.subscriptions.push(this.listenForTabLinkChanges());\n    this.subscriptions.push(this.listedForTabsActionsChanges());\n\n    if (typeof this.ifActiveService.current === 'undefined' && this.tabLinkDirectives[0]) {\n      this.tabLinkDirectives[0].activate();\n    }\n\n    // set initial current position\n    this.keyFocus.current = this.activeTabPosition;\n  }\n\n  ngOnDestroy() {\n    this.subscriptions.forEach(sub => {\n      sub.unsubscribe();\n    });\n  }\n\n  toggleOverflowOnPosition(position: number) {\n    // we need to check current position to determine\n    // whether we need to open the tab overflow or not\n    this.popoverService.open = position >= this.overflowPosition;\n  }\n\n  resetKeyFocusCurrentToActive(event: FocusEvent) {\n    const keyFocusContainsFocus = this.keyFocus.nativeElement.contains(event.relatedTarget as HTMLElement);\n    if (!keyFocusContainsFocus && this.keyFocus.current !== this.activeTabPosition) {\n      this.keyFocus.current = this.activeTabPosition;\n    }\n  }\n\n  toggleOverflowOnClick() {\n    if (this.isCurrentInOverflow && this.popoverService.open) {\n      this.keyFocus.moveTo(this.overflowPosition - 1);\n    } else {\n      this.keyFocus.moveTo(this.overflowPosition);\n    }\n\n    // once click handler completes running,\n    // reset the _mousedown flag\n    this._mousedown = false;\n  }\n\n  openOverflowOnFocus() {\n    // This method should be called only on keyboard generated focus\n    // when the active tab is in the overflow\n    if (!this._mousedown && !this.popoverService.open) {\n      this.keyFocus.moveTo(this.activeTabPosition);\n    }\n  }\n\n  closeOnFocusOut(event: FocusEvent) {\n    if (\n      !this._tabOverflowEl.contains(event.relatedTarget as HTMLElement) &&\n      this.popoverService.open &&\n      !this._mousedown\n    ) {\n      this.popoverService.open = false;\n\n      // if the focus is out of overflow and lands on the active tab link\n      // which is currently visible, set the key focus current to activeTabPosition\n      if (this.tabLinkElements[this.activeTabPosition] === event.relatedTarget) {\n        this.keyFocus.current = this.activeTabPosition;\n      }\n    }\n  }\n\n  closeOnEscapeKey() {\n    // Move current to the last visible focusable item\n    this.keyFocus.moveTo(this.overflowPosition - 1);\n  }\n\n  closeOnOutsideClick(event: Event, tabOverflowTrigger: HTMLElement) {\n    // Exit early if the event target is the trigger element itself or element that's inside the trigger element.\n    // This is because we have another handler on the tabOverflowTrigger element itself.\n    // As this handler method is on the document level so the event bubbles up to it and conflicts\n    // with the tabOverflowTrigger handler resulting in opening the tab overflow and closing it right away consecutively.\n    const isTabsAction = this.tabsActions.some(action =>\n      (action.nativeElement as HTMLElement).contains(event.target as HTMLElement)\n    );\n    if (\n      event.target === tabOverflowTrigger ||\n      tabOverflowTrigger.contains(event.target as HTMLElement) ||\n      isTabsAction\n    ) {\n      return;\n    }\n\n    // Move current to the last visible focusable item\n    if (!this._tabOverflowEl.contains(event.target as HTMLElement) && this.isCurrentInOverflow) {\n      this.keyFocus.moveTo(this.overflowPosition - 1);\n    }\n  }\n\n  private setTabLinkElements() {\n    this._tabLinkDirectives = this.tabs.map(tab => tab.tabLink);\n    this.tabLinkElements = this._tabLinkDirectives.map(tab => tab.el.nativeElement);\n    if (this.tabsActions && this.tabsActions) {\n      this.tabLinkElements.push(...this.tabsActions.map(action => action.nativeElement));\n    }\n  }\n\n  private listenForTabLinkChanges() {\n    return this.tabs.changes\n      .pipe(startWith(this.tabs.map(tab => tab.tabLink)))\n      .subscribe(() => this.setTabLinkElements());\n  }\n\n  private listedForTabsActionsChanges() {\n    return this.tabsActions.changes.subscribe(() => this.setTabLinkElements());\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, HostBinding, Input } from '@angular/core';\n\nexport type ClrTabsActionsPosition = 'left' | 'right';\n\n@Component({\n  selector: 'clr-tabs-actions',\n  template: `\n    <div class=\"tabs-actions-wrapper\">\n      <ng-content></ng-content>\n    </div>\n  `,\n  host: {\n    '[class.tabs-actions]': 'true',\n  },\n  standalone: false,\n})\nexport class ClrTabsActions {\n  @Input()\n  @HostBinding('attr.position')\n  position: ClrTabsActionsPosition = 'right';\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Directive } from '@angular/core';\nimport { WillyWonka } from '@clr/angular/utils';\n\n@Directive({\n  selector: 'clr-tabs',\n  standalone: false,\n})\nexport class TabsWillyWonka extends WillyWonka {}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { ChangeDetectorRef, Directive, Inject, Optional } from '@angular/core';\nimport { IF_ACTIVE_ID, IfActiveService, OompaLoompa } from '@clr/angular/utils';\n\nimport { TabsWillyWonka } from './tabs-willy-wonka';\n\n@Directive({\n  selector: '[clrTabLink], clr-tab-content',\n  standalone: false,\n})\nexport class ActiveOompaLoompa extends OompaLoompa {\n  private ifActive: IfActiveService;\n  private id: number;\n\n  constructor(\n    cdr: ChangeDetectorRef,\n    @Optional() willyWonka: TabsWillyWonka,\n    @Inject(IF_ACTIVE_ID) id: number,\n    ifActive: IfActiveService\n  ) {\n    if (!willyWonka) {\n      throw new Error('clrTabLink and clr-tab-content should only be used inside of a clr-tabs');\n    }\n    super(cdr, willyWonka);\n    this.ifActive = ifActive;\n    this.id = id;\n  }\n\n  get flavor() {\n    return this.ifActive.current === this.id;\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { ClarityIcons, ClrIcon, ellipsisHorizontalIcon } from '@clr/angular/icon';\nimport { ClrConditionalModule, ClrKeyFocusModule, ClrTemplateRefModule } from '@clr/angular/utils';\n\nimport { ActiveOompaLoompa } from './chocolate/active-oompa-loompa';\nimport { TabsWillyWonka } from './chocolate/tabs-willy-wonka';\nimport { ClrTab } from './tab';\nimport { ClrTabAction } from './tab-action.directive';\nimport { ClrTabContent } from './tab-content';\nimport { ClrTabLink } from './tab-link.directive';\nimport { ClrTabOverflowContent } from './tab-overflow-content';\nimport { ClrTabs } from './tabs';\nimport { ClrTabsActions } from './tabs-actions';\n\nexport const CLR_TABS_DIRECTIVES: Type<any>[] = [\n  ClrTabContent,\n  ClrTab,\n  ClrTabs,\n  ClrTabOverflowContent,\n  ClrTabLink,\n  ClrTabAction,\n  ClrTabsActions,\n  TabsWillyWonka,\n  ActiveOompaLoompa,\n];\n\n@NgModule({\n  imports: [CommonModule, ClrConditionalModule, ClrIcon, ClrTemplateRefModule, ClrKeyFocusModule],\n  declarations: [CLR_TABS_DIRECTIVES],\n  exports: [CLR_TABS_DIRECTIVES, ClrConditionalModule],\n})\nexport class ClrTabsModule {\n  constructor() {\n    ClarityIcons.addIcons(ellipsisHorizontalIcon);\n  }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './tabs';\nexport * from './tabs-actions';\nexport * from './tab';\nexport * from './tab-content';\nexport * from './tab-overflow-content';\nexport * from './tab-link.directive';\nexport * from './tab-action.directive';\nexport * from './tabs.module';\nexport * from './tabs-actions';\nexport * from './chocolate/tabs-willy-wonka';\nexport * from './chocolate/active-oompa-loompa';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.TabsService","i6.ClrTabOverflowContent","i2"],"mappings":"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"}