{"version":3,"file":"fundamental-ngx-core-tabs.mjs","sources":["../../../../libs/core/tabs/tab-utils/tab-directives.ts","../../../../libs/core/tabs/tab-item-expand/tab-item-expand.component.ts","../../../../libs/core/tabs/tab-item-expand/tab-item-expand.component.html","../../../../libs/core/tabs/tab-link/tab-link.directive.ts","../../../../libs/core/tabs/tab-item/tab-item.directive.ts","../../../../libs/core/tabs/tab-list.token.ts","../../../../libs/core/tabs/tab-panel/tab-panel.component.ts","../../../../libs/core/tabs/tab-panel/tab-panel.component.html","../../../../libs/core/tabs/tab-utils/tab-info.class.ts","../../../../libs/core/tabs/tab-list.component.ts","../../../../libs/core/tabs/tab-list.component.html","../../../../libs/core/tabs/tab-nav/tab-nav.component.ts","../../../../libs/core/tabs/tabs.module.ts","../../../../libs/core/tabs/fundamental-ngx-core-tabs.ts"],"sourcesContent":["import {\n    ChangeDetectionStrategy,\n    Component,\n    Directive,\n    ElementRef,\n    HostBinding,\n    Input,\n    OnChanges,\n    ViewEncapsulation\n} from '@angular/core';\nimport { CssClassBuilder, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent, IconFont } from '@fundamental-ngx/core/icon';\n\n/**\n * Directive used to identify the template which will populate the tab header.\n * Used to achieve complex headers that require more than a string.\n *\n * ```html\n * <fd-tab>\n *      <ng-template fd-tab-title>\n *          <fd-icon [glyph]=\"'delete'\"></fd-icon>\n *          <span>Tab Label</span>\n *      </ng-template>\n * </fd-tab>\n * ```\n */\n@Directive({\n    selector: '[fdTabTitleTemplate], [fd-tab-title-template]',\n    standalone: true\n})\nexport class TabTitleDirective {}\n\n/**\n * Directive for counter element, available in most of the modes on `tab` component\n */\n@Directive({\n    selector: '[fdTabCount], [fd-tab-count]',\n    standalone: true\n})\nexport class TabCountDirective {\n    /** @hidden */\n    @HostBinding('class.fd-tabs__count')\n    fdTabsCountClass = true;\n}\n\n/**\n * Directive for icon element, available in most of the modes on `tab` component\n */\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: '[fd-tab-icon]',\n    template: `\n        @if (icon) {\n            <fd-icon role=\"presentation\" [glyph]=\"icon\" [font]=\"iconFont\"></fd-icon>\n        }\n        <ng-content></ng-content>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    imports: [IconComponent]\n})\nexport class TabIconComponent implements CssClassBuilder, OnChanges {\n    /** Apply user custom styles */\n    @Input()\n    class: string;\n\n    /**\n     * The icon to include inside the element\n     * See the icon page for the list of icons.\n     */\n    @Input()\n    icon: string;\n\n    /** Icon font family */\n    @Input()\n    iconFont: IconFont = FD_DEFAULT_ICON_FONT_FAMILY;\n\n    /** @hidden */\n    constructor(public readonly elementRef: ElementRef) {}\n\n    /** @hidden CssClassBuilder interface implementation\n     * function must return single string\n     * function is responsible for order which css classes are applied\n     */\n    @applyCssClass\n    buildComponentCssClass(): string[] {\n        return ['fd-tabs__icon', this.class];\n    }\n\n    /** @hidden\n     * Function runs when component is initialized\n     * function should build component css class\n     * function should build css style\n     */\n    ngOnChanges(): void {\n        this.buildComponentCssClass();\n    }\n}\n\n@Directive({\n    selector: '[fdTabTag], [fd-tab-tag]',\n    host: {\n        class: 'fd-tabs__tag'\n    },\n    standalone: true\n})\nexport class TabTagDirective {}\n\n@Directive({\n    selector: '[fdTabLabel], [fd-tab-label]',\n    host: {\n        class: 'fd-tabs__label'\n    },\n    standalone: true\n})\nexport class TabLabelDirective {}\n\n@Directive({\n    selector: '[fdTabProcess], [fd-tab-process]',\n    host: {\n        class: 'fd-tabs__process'\n    },\n    standalone: true\n})\nexport class TabProcessDirective {}\n\n@Directive({\n    selector: '[fdTabHeader], [fd-tab-header]',\n    host: {\n        class: 'fd-tabs__header'\n    },\n    standalone: true\n})\nexport class TabHeaderDirective {}\n\n@Directive({\n    selector: '[fdTabCounterHeader], [fd-tab-counter-header]',\n    host: {\n        class: 'fd-tabs__counter-header'\n    },\n    standalone: true\n})\nexport class TabCounterHeaderDirective {}\n\n@Directive({\n    selector: '[fdTabProcessIcon], [fd-tab-process-icon]',\n    host: {\n        class: 'fd-tabs__process-icon'\n    },\n    standalone: true\n})\nexport class TabProcessIconDirective {}\n\n@Directive({\n    selector: '[fdTabSeparator], [fd-tab-separator]',\n    host: {\n        class: 'fd-tabs__separator'\n    },\n    standalone: true\n})\nexport class TabSeparatorDirective {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { TabTagDirective } from '../tab-utils/tab-directives';\n\n/**\n * Represents a list of tab-panels.\n */\n@Component({\n    selector: 'fd-item-expand',\n    templateUrl: './tab-item-expand.component.html',\n    styleUrl: './tab-item-expand.component.scss',\n    host: {\n        role: 'tab',\n        class: 'fd-tabs__item fd-tabs__item--overflow'\n    },\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [TabTagDirective, IconComponent, FdTranslatePipe]\n})\nexport class TabItemExpandComponent {}\n","<a class=\"fd-tabs__link\" role=\"tab\" [attr.tabindex]=\"0\">\n    <span fd-tab-tag>{{ ('coreTabs.tabListExpandButtonText' | fdTranslate)() }}</span>\n    <fd-icon glyph=\"slim-arrow-down\" [attr.aria-label]=\"('coreTabs.expandIconLabel' | fdTranslate)()\"></fd-icon>\n</a>\n","import { FocusableOption } from '@angular/cdk/a11y';\nimport { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { Directive, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';\nimport { AbstractFdNgxClass, KeyUtil } from '@fundamental-ngx/cdk/utils';\n\n/**\n * Tab link for nav mode\n *\n * ```html\n * <a fd-tab-link>\n *    link\n * </a>\n * ```\n */\n\n@Directive({\n    // eslint-disable-next-line @angular-eslint/directive-selector\n    selector: '[fd-tab-link]',\n    host: {\n        role: 'tab',\n        tabindex: '-1'\n    },\n    standalone: true\n})\nexport class TabLinkDirective extends AbstractFdNgxClass implements FocusableOption {\n    /** Whether the link is active */\n    @Input()\n    @HostBinding('attr.aria-selected')\n    active: boolean;\n\n    /**\n     * Only visual / accessibility thing on tab-nav mode\n     * RouterLink does not respect preventDefault/stopPropagation\n     */\n    @Input()\n    @HostBinding('attr.aria-disabled')\n    @HostBinding('class.is-disabled')\n    disabled: boolean;\n\n    /** Event Emitted always when, any keyboard event is dispatched on this element */\n    @Output()\n    readonly keyDown: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n    /** Event Emitted when item has been focused. */\n    @Output()\n    readonly focused = new EventEmitter<void>();\n\n    /** @hidden */\n    @HostListener('focus')\n    protected _onFocus(): void {\n        this.focused.emit();\n    }\n\n    /** @hidden */\n    @HostListener('keyup', ['$event'])\n    protected _onKeyUp(event: KeyboardEvent): void {\n        if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n            this.focused.emit();\n        }\n    }\n\n    /** @hidden */\n    _setProperties(): void {\n        this._addClassToElement('fd-tabs__link');\n        if (this.active) {\n            this._addClassToElement('is-selected');\n        }\n    }\n\n    /** @hidden */\n    focus(): void {\n        this.elementRef.nativeElement.focus();\n    }\n}\n","import { ContentChild, Directive, ElementRef, HostBinding, Input, OnChanges, OnInit } from '@angular/core';\nimport { CssClassBuilder, Nullable, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { TabLinkDirective } from '../tab-link/tab-link.directive';\n\nexport type TabItemState = 'success' | 'error' | 'warning' | 'information' | 'neutral';\n\n/**\n * Tab Item is optional wrapper for Tab link\n *\n * ```html\n * <div fd-tab-item>\n *    <a fd-tab-link>\n *        link\n *    </a>\n * </div>\n * ```\n */\n@Directive({\n    // eslint-disable-next-line @angular-eslint/directive-selector\n    selector: '[fd-tab-item]',\n    standalone: true\n})\nexport class TabItemDirective implements CssClassBuilder, OnChanges, OnInit {\n    /** Apply user custom styles */\n    @Input()\n    class = '';\n\n    /** Semantic type of the tab item */\n    @Input()\n    tabItemState: Nullable<TabItemState>;\n\n    /** This should be used only on `filterMode`. Flag should be enable for first item */\n    @Input()\n    header: boolean;\n\n    /** Disabled state for tab item */\n    @Input()\n    @HostBinding('attr.aria-disabled')\n    @HostBinding('class.is-disabled')\n    disabled = false;\n\n    /** Defines if there will be added fd-tabs__item class. Enabled by default. */\n    @Input()\n    fdTabItemClass = true;\n\n    /** @hidden */\n    @ContentChild(TabLinkDirective)\n    linkItem: TabLinkDirective;\n\n    /** @hidden */\n    constructor(public readonly elementRef: ElementRef) {}\n\n    /** @hidden */\n    @applyCssClass\n    buildComponentCssClass(): string[] {\n        return [\n            this.fdTabItemClass ? 'fd-tabs__item' : '',\n            this.header ? 'fd-tabs__item--header' : '',\n            this.tabItemState ? `fd-tabs__item--${this.tabItemState}` : '',\n            this.class\n        ];\n    }\n\n    /** @hidden */\n    ngOnChanges(): void {\n        this.buildComponentCssClass();\n    }\n\n    /** @hidden */\n    ngOnInit(): void {\n        this.buildComponentCssClass();\n    }\n}\n","import { InjectionToken } from '@angular/core';\nimport { TabListComponentInterface } from './tab-list-component.interface';\n\nexport const LIST_COMPONENT = new InjectionToken<TabListComponentInterface>('ListComponent');\n","import {\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ContentChild,\n    ElementRef,\n    EventEmitter,\n    Inject,\n    Input,\n    OnChanges,\n    Optional,\n    Output,\n    TemplateRef,\n    ViewEncapsulation\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Subject } from 'rxjs';\nimport { TabItemState } from '../tab-item/tab-item.directive';\nimport { TabListComponentInterface } from '../tab-list-component.interface';\nimport { LIST_COMPONENT } from '../tab-list.token';\nimport { TabTitleDirective } from '../tab-utils/tab-directives';\n\nlet tabPanelUniqueId = 0;\n\nexport class TabPanelStateChange {\n    /**\n     * Tab panel state change event\n     * @param target Tab panel that is being changed\n     * @param state New state of the tab panel\n     */\n    constructor(\n        public target: TabPanelComponent,\n        public state: boolean\n    ) {}\n}\n\n/**\n * Represents the body of a tab element. It also contains elements pertaining to the associated tab header.\n */\n@Component({\n    selector: 'fd-tab',\n    templateUrl: './tab-panel.component.html',\n    host: {\n        role: 'tabpanel',\n        class: 'fd-tabs__panel',\n        '[id]': '_panelId',\n        '[attr.aria-labelledby]': 'id',\n        '[class.is-expanded]': '_expandedClass'\n    },\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: []\n})\nexport class TabPanelComponent implements OnChanges {\n    /** Id of the tab. If none is provided, one will be generated. */\n    @Input()\n    id: string = 'fd-tab-panel' + tabPanelUniqueId++;\n\n    /** Aria-label of the tab. */\n    @Input()\n    ariaLabel: Nullable<string>;\n\n    /** Id of the element that labels the tab. */\n    @Input()\n    ariaLabelledBy: Nullable<string>;\n\n    /** The title of tab, depending on mode used, it will be placed in different position */\n    @Input()\n    title: Nullable<string>;\n\n    /** The count of tab, depending on mode used, it will be placed in different position */\n    @Input()\n    count: Nullable<string>;\n\n    /** Glyph icon, it can be used only on  */\n    @Input()\n    glyph: string;\n\n    /** Glyph icon, it can be used only on  */\n    @Input()\n    header = false;\n\n    /** Disabled state for tab item */\n    @Input()\n    disabled = false;\n\n    /** Semantic type of the tab item */\n    @Input()\n    tabState: Nullable<TabItemState>;\n\n    /** Event that is emitted when the tab panel has been opened. */\n    @Output()\n    opened = new EventEmitter<void>();\n\n    /** Event that is emitted when the tab panel has been closed. */\n    @Output()\n    closed = new EventEmitter<void>();\n\n    /** @hidden */\n    @ContentChild(TabTitleDirective, { read: TemplateRef })\n    titleTemplate: TemplateRef<any>;\n\n    /** @hidden Event that is emitted when the tab panel . */\n    _expandedStateChange = new Subject<TabPanelStateChange>();\n\n    /** @hidden */\n    _expandedClass = false;\n\n    /** @hidden */\n    _forcedVisibility = false;\n\n    /** @hidden Whether to display tab panel content */\n    private _expanded = false;\n\n    /** @hidden */\n    get _panelId(): string {\n        return this.id + '-panel';\n    }\n\n    /** @hidden */\n    constructor(\n        public elementRef: ElementRef,\n        private _changeDetRef: ChangeDetectorRef,\n        @Optional() @Inject(LIST_COMPONENT) private readonly _tabsComponent: TabListComponentInterface | null\n    ) {}\n\n    /** @hidden\n     * Thanks to OnPush change strategy detection on tab-list parent component,\n     * every change of any property should be reported. */\n    ngOnChanges(): void {\n        this._tabsComponent?.tabPanelPropertyChanged.next();\n    }\n\n    /** Whether tab panel content is expanded */\n    get expanded(): boolean {\n        return this._expanded;\n    }\n\n    /** Whether to expand tab panel content */\n    open(open: boolean): void {\n        this._expandedStateChange.next(new TabPanelStateChange(this, open));\n    }\n\n    /** @hidden Set new expand state */\n    _expand(expanded: boolean): void {\n        if (this._expanded !== expanded) {\n            this._expanded = expanded;\n\n            if (expanded) {\n                this.opened.emit();\n            } else {\n                this.closed.emit();\n            }\n\n            this._changeDetRef.detectChanges();\n\n            queueMicrotask(() => {\n                this._expandedClass = this.expanded;\n                this._changeDetRef.markForCheck();\n            });\n        }\n    }\n\n    /** @hidden */\n    _focusFirstFocusableElement(): void {\n        this.elementRef.nativeElement\n            .querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n            ?.focus({ preventScroll: true });\n    }\n}\n","@if (expanded) {\n    <ng-content></ng-content>\n}\n","import { TemplateRef } from '@angular/core';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { TabItemState } from '../tab-item/tab-item.directive';\nimport { TabPanelComponent } from '../tab-panel/tab-panel.component';\n\n/** @hidden */\nexport class TabInfo {\n    /** Whether the tab is active */\n    active: boolean;\n\n    /** @hidden Width of the tab header */\n    headerWidth: number;\n\n    /** Corresponding tab panel */\n    panel: TabPanelComponent;\n\n    /** @hidden */\n    constructor(tabPanel: TabPanelComponent) {\n        this.panel = tabPanel;\n        this.active = tabPanel.expanded;\n    }\n\n    /** Tab header title */\n    get title(): Nullable<string> {\n        return this.panel.title;\n    }\n\n    /** Whether the tab is disabled */\n    get disabled(): boolean {\n        return this.panel.disabled;\n    }\n\n    /** Whether the tab is tab header */\n    get isHeader(): boolean {\n        return this.panel.header;\n    }\n\n    /** @hidden */\n    get id(): Nullable<string> {\n        return this.panel.id;\n    }\n\n    /** @hidden */\n    get ariaLabel(): Nullable<string> {\n        return this.panel.ariaLabel;\n    }\n\n    /** @hidden */\n    get ariaLabelledBy(): Nullable<string> {\n        return this.panel.ariaLabelledBy;\n    }\n\n    /** @hidden */\n    get tabState(): Nullable<TabItemState> {\n        return this.panel.tabState;\n    }\n\n    /** @hidden */\n    get titleTemplate(): TemplateRef<any> {\n        return this.panel.titleTemplate;\n    }\n\n    /** @hidden */\n    get count(): Nullable<string> {\n        return this.panel.count;\n    }\n\n    /** @hidden */\n    get glyph(): string {\n        return this.panel.glyph;\n    }\n\n    /** @hidden */\n    get forcedVisibility(): boolean {\n        return this.panel._forcedVisibility;\n    }\n\n    /** @hidden */\n    get panelId(): string {\n        return this.panel._panelId;\n    }\n}\n","import { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { CdkScrollable } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n    AfterContentInit,\n    AfterViewInit,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ContentChildren,\n    DestroyRef,\n    ElementRef,\n    EventEmitter,\n    Input,\n    OnDestroy,\n    Output,\n    QueryList,\n    ViewChild,\n    ViewChildren,\n    ViewEncapsulation,\n    forwardRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KeyUtil, Nullable, scrollTop, warnOnce } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport {\n    MenuComponent,\n    MenuInteractiveComponent,\n    MenuItemComponent,\n    MenuTitleDirective,\n    MenuTriggerDirective\n} from '@fundamental-ngx/core/menu';\nimport {\n    OverflowExpandDirective,\n    OverflowItemRefDirective,\n    OverflowLayoutComponent,\n    OverflowLayoutFocusableItemDirective,\n    OverflowLayoutItemDirective\n} from '@fundamental-ngx/core/overflow-layout';\nimport { ScrollSpyDirective } from '@fundamental-ngx/core/scroll-spy';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { FD_TABLIST, TabList } from '@fundamental-ngx/core/shared';\nimport { Observable, Subject, Subscription, fromEvent, merge } from 'rxjs';\nimport { debounceTime, delay, filter, first, map, startWith, switchMap, tap } from 'rxjs/operators';\nimport { TabItemExpandComponent } from './tab-item-expand/tab-item-expand.component';\nimport { TabItemDirective } from './tab-item/tab-item.directive';\nimport { TabLinkDirective } from './tab-link/tab-link.directive';\nimport { TabListComponentInterface } from './tab-list-component.interface';\nimport { LIST_COMPONENT } from './tab-list.token';\nimport { TabPanelComponent } from './tab-panel/tab-panel.component';\nimport {\n    TabCountDirective,\n    TabCounterHeaderDirective,\n    TabHeaderDirective,\n    TabIconComponent,\n    TabLabelDirective,\n    TabProcessDirective,\n    TabProcessIconDirective,\n    TabSeparatorDirective,\n    TabTagDirective\n} from './tab-utils/tab-directives';\nimport { TabInfo } from './tab-utils/tab-info.class';\n\nexport type TabModes = 'icon-only' | 'process' | 'filter';\n\nexport type TabSizes = 's' | 'm' | 'l' | 'xl' | 'xxl';\n\n/**\n * Represents a list of tab-panels.\n * @deprecated\n * Use `@fundamental-ngx/platform/icon-tab-bar` instead\n */\n@Component({\n    selector: 'fd-tab-list',\n    templateUrl: './tab-list.component.html',\n    styleUrl: './tab-list.component.scss',\n    host: {\n        class: 'fd-tabs-custom'\n    },\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        contentDensityObserverProviders(),\n        {\n            provide: LIST_COMPONENT,\n            useExisting: TabListComponent\n        },\n        {\n            provide: FD_TABLIST,\n            useExisting: TabListComponent\n        }\n    ],\n    imports: [\n        OverflowLayoutComponent,\n        OverflowItemRefDirective,\n        TabItemDirective,\n        OverflowLayoutItemDirective,\n        TabLinkDirective,\n        OverflowLayoutFocusableItemDirective,\n        NgTemplateOutlet,\n        TabHeaderDirective,\n        TabCounterHeaderDirective,\n        TabLabelDirective,\n        TabIconComponent,\n        TabCountDirective,\n        TabProcessDirective,\n        TabTagDirective,\n        TabProcessIconDirective,\n        TabSeparatorDirective,\n        OverflowExpandDirective,\n        TabItemExpandComponent,\n        MenuTriggerDirective,\n        MenuComponent,\n        MenuItemComponent,\n        MenuInteractiveComponent,\n        ScrollSpyDirective,\n        CdkScrollable,\n        ScrollbarDirective,\n        MenuTitleDirective\n    ]\n})\nexport class TabListComponent\n    implements TabListComponentInterface, AfterContentInit, AfterViewInit, OnDestroy, TabList\n{\n    /** Size of tab, it's mostly about adding spacing on tab container, available sizes 's' | 'm' | 'l' | 'xl' | 'xxl' */\n    @Input()\n    size: TabSizes = 'm';\n\n    /**\n     * Whether user wants to use tab component in certain mode. Modes available:\n     * 'icon-only' | 'process' | 'filter'\n     */\n    @Input()\n    mode: TabModes;\n\n    /** Whether to move tabs overflowing in the tab bar to the dropdown */\n    @Input()\n    collapseOverflow = true;\n\n    /** Limits the maximum number of tabs visible in the tab bar in collapseOverflow mode.\n     * Other tabs will be moved to the collapsed tabs dropdown */\n    @Input()\n    maxVisibleTabs = Infinity;\n\n    /** Whether to open tab content one under another without collapsing */\n    @Input()\n    stackContent = false;\n\n    /** Maximum height of the content */\n    @Input()\n    maxContentHeight = '100%';\n\n    /** Whether to enable collapsing expanded tab on expanded tab click */\n    @Input()\n    collapsibleTabs = false;\n\n    /** Initially selected tab (by id). First not disabled one if not specified. */\n    @Input()\n    defaultTab: Nullable<string>;\n\n    /** Whether to try to keep selected tab (default value) on tabs change or to select default one (first if not specified). */\n    @Input()\n    selectDefaultOnTabsChange = false;\n\n    /** Whether to focus the first focusable element in a tab panel when using stacked tabs. */\n    @Input()\n    focusFirstFocusableElement = true;\n\n    /** Event emitted when the selected panel changes. */\n    @Output()\n    selectedTabChange = new EventEmitter<TabPanelComponent>();\n\n    /** Event emitted when the selected panel index changes. */\n    @Output()\n    selectedTabIndexChange = new EventEmitter<number>();\n\n    /** Event emitted when visible items count has been changed. */\n    @Output()\n    visibleItemsCount = new EventEmitter<number>();\n\n    /** Event emitted when hidden items count has been changed. */\n    @Output()\n    hiddenItemsCount = new EventEmitter<number>();\n\n    /** @hidden */\n    @ContentChildren(forwardRef(() => TabPanelComponent))\n    tabPanels: QueryList<TabPanelComponent>;\n\n    /** @hidden */\n    @ViewChildren(TabLinkDirective)\n    tabHeaderLinks: QueryList<TabLinkDirective>;\n\n    /** @hidden */\n    @ViewChildren(TabItemDirective)\n    tabHeaders: QueryList<TabItemDirective>;\n\n    /** @hidden */\n    @ViewChild(TabItemExpandComponent, { read: ElementRef })\n    overflowTrigger: ElementRef;\n\n    /** @hidden */\n    @ViewChild('headerContainer', { read: ElementRef })\n    headerContainer: ElementRef;\n\n    /** @hidden */\n    @ViewChild(ScrollbarDirective)\n    _scrollbar: ScrollbarDirective;\n\n    /** @hidden */\n    @ViewChild('menu', { read: MenuComponent })\n    menu: MenuComponent;\n\n    /** @hidden */\n    @ViewChild(OverflowLayoutComponent)\n    private _overflowLayout: OverflowLayoutComponent;\n\n    /** @hidden */\n    @ViewChild('scrollSpy', { read: ScrollSpyDirective })\n    private readonly _scrollSpy: Nullable<ScrollSpyDirective>;\n\n    /** @hidden */\n    get contentContainer(): ElementRef<HTMLElement> {\n        return this._scrollbar?.elementRef;\n    }\n\n    /** @hidden Collection of tabs in original order */\n    _tabArray: TabInfo[] = [];\n\n    /** @hidden Whether to disable scroll spy */\n    _disableScrollSpy = false;\n\n    /** @hidden */\n    _init = true;\n\n    /** @hidden */\n    _currentNumberOfTabs = 0;\n\n    /** Scrollable element reference. */\n    get scrollableElement(): Nullable<ElementRef> {\n        return this._scrollbar?.elementRef;\n    }\n\n    /** Event is thrown always when tab is selected by keyboard actions */\n    readonly tabSelected: Subject<number> = new Subject<number>();\n\n    /** Event is thrown always, when some property is changed */\n    readonly tabPanelPropertyChanged: Subject<void> = new Subject<void>();\n\n    /** @hidden */\n    private _subscriptions = new Subscription();\n\n    /** @hidden */\n    constructor(\n        private readonly _changeDetectorRef: ChangeDetectorRef,\n        readonly _contentDensityObserver: ContentDensityObserver,\n        private readonly _destroyRef: DestroyRef\n    ) {\n        warnOnce('TabListComponent is deprecated, use `@fundamental-ngx/platform/icon-tab-bar` instead');\n    }\n\n    /** @hidden */\n    ngAfterContentInit(): void {\n        this._setupTabPanelsChangeListeners();\n    }\n\n    /** @hidden */\n    ngAfterViewInit(): void {\n        this._initStackContentSubscription();\n        this._listenOnTabPanelsExpandedChange();\n        this._listenOnTabPanelsAndInitiallyExpandTabPanel();\n        this._listenOnPropertiesChange();\n    }\n\n    /** @hidden */\n    ngOnDestroy(): void {\n        this._subscriptions.unsubscribe();\n    }\n\n    /** @hidden */\n    _tabHeaderClickHandler(tabPanel: TabPanelComponent): void {\n        this._expandTab(tabPanel, !tabPanel.expanded);\n    }\n\n    /** @hidden */\n    _tabHeaderKeydownHandler(event: KeyboardEvent, tabPanel: TabPanelComponent): void {\n        if (!KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n            return;\n        }\n\n        event.preventDefault();\n        this._tabHeaderClickHandler(tabPanel);\n    }\n\n    /** @hidden */\n    _overflowingTabHeaderClickHandler(tabPanel: TabPanelComponent): void {\n        this._tabArray.forEach((tab) => {\n            tab.panel._forcedVisibility = tab.panel === tabPanel;\n        });\n\n        this._expandTab(tabPanel, true, false);\n\n        this._overflowLayout.triggerRecalculation();\n\n        this._detectChanges();\n    }\n\n    /** @hidden */\n    selectTab(id: Nullable<string>): void {\n        this.highlightActiveTab(id);\n    }\n\n    /** @hidden */\n    highlightActiveTab(id: Nullable<string>): void {\n        const tab = this._tabArray.find((_tab) => _tab.panel._panelId === id);\n        if (tab) {\n            const _tabWasActive = tab.active;\n            this._activateStackedTab(tab.panel, false);\n            if (!_tabWasActive) {\n                this._selectedTabChange(tab.panel);\n            }\n        }\n    }\n\n    /** @hidden */\n    _onTriggerKeydown(event: KeyboardEvent, menuRef: MenuComponent): void {\n        if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n            event.preventDefault();\n            menuRef.toggle();\n        }\n    }\n\n    /** @hidden */\n    private get _tabPanelsChange$(): Observable<TabPanelComponent[]> {\n        return this.tabPanels.changes.pipe(\n            startWith(this.tabPanels),\n            map((tabPanels) => tabPanels.toArray()),\n            takeUntilDestroyed(this._destroyRef)\n        );\n    }\n\n    /** @hidden */\n    private _detectChanges(): void {\n        if (this._changeDetectorRef && !this._changeDetectorRef['destroyed']) {\n            this._changeDetectorRef.detectChanges();\n        }\n    }\n\n    /** @hidden */\n    private _setupTabPanelsChangeListeners(): void {\n        this._listenOnTabPanelsAndUpdateStorageStructures();\n    }\n\n    /** @hidden Setup mechanisms required for handling the stacked content behavior */\n    private _initStackContentSubscription(): void {\n        this._tabPanelsChange$\n            .pipe(\n                filter(() => this.stackContent),\n                delay(0),\n                takeUntilDestroyed(this._destroyRef)\n            )\n            .subscribe(() =>\n                this._tabArray.filter((tab) => !tab.panel.disabled).forEach((tab) => tab.panel._expand(true))\n            );\n    }\n\n    /** @hidden */\n    private _listenOnTabPanelsAndUpdateStorageStructures(): void {\n        this._tabPanelsChange$\n            .pipe(\n                map((tabPanels) =>\n                    tabPanels.map((el) => this._tabArray?.find((tabInfo) => tabInfo.panel === el) || new TabInfo(el))\n                ),\n                tap((tabs) => (this._tabArray = tabs)),\n                delay(0),\n                takeUntilDestroyed(this._destroyRef)\n            )\n            .subscribe(() => {\n                if (this.stackContent && this._currentNumberOfTabs !== this._tabArray.length) {\n                    queueMicrotask(() => {\n                        this._scrollSpy?.onScroll(undefined, true);\n                        this._currentNumberOfTabs = this._tabArray.length;\n                    });\n                }\n            });\n    }\n\n    /** @hidden */\n    private _listenOnTabPanelsExpandedChange(): void {\n        this._tabPanelsChange$\n            .pipe(\n                map((tabPanels) => tabPanels.map((tab) => tab._expandedStateChange.asObservable())),\n                switchMap((tabPanels) => merge(...tabPanels)),\n                takeUntilDestroyed(this._destroyRef)\n            )\n            .subscribe((event) => {\n                this._tabArray.forEach((tab) => {\n                    tab.panel._forcedVisibility = tab.panel === event.target;\n                });\n                this._expandTab(event.target, event.state);\n                this._overflowLayout.triggerRecalculation();\n            });\n    }\n\n    /** @hidden */\n    private _listenOnTabPanelsAndInitiallyExpandTabPanel(): void {\n        this._tabPanelsChange$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n            const activeTab = this._tabArray.find((_tab) => _tab.active);\n            let tab: Nullable<TabInfo>;\n\n            if (!activeTab || this.selectDefaultOnTabsChange) {\n                if (this.defaultTab) {\n                    tab = this._tabArray.find((_tab) => !_tab.disabled && _tab.id === this.defaultTab);\n                }\n\n                if (!tab) {\n                    tab = this._tabArray.find((_tab) => !_tab.disabled);\n                }\n            }\n\n            if (tab && activeTab !== tab) {\n                this._expandTab(tab.panel, true);\n            }\n        });\n    }\n\n    /** @hidden */\n    private _listenOnPropertiesChange(): void {\n        merge(this.tabPanelPropertyChanged, this.tabPanels.changes)\n            .pipe(takeUntilDestroyed(this._destroyRef))\n            .subscribe(() => this._detectChanges());\n    }\n\n    /** @hidden */\n    private _activateStackedTab(tabPanel: TabPanelComponent, scroll = true): void {\n        if (scroll) {\n            this._scrollToPanel(tabPanel);\n        }\n        this._tabArray.forEach((tab) => {\n            tab.active = tab.panel === tabPanel;\n        });\n    }\n\n    /** @hidden */\n    private _activateExpandableTab(tabPanel: TabPanelComponent, expand: boolean): void {\n        const collapse = this.collapsibleTabs && !expand;\n\n        this._tabArray.forEach((tab) => {\n            const isActive = tab.panel === tabPanel && !collapse;\n\n            tab.panel._expand(isActive);\n            tab.active = isActive;\n        });\n    }\n\n    /** @hidden */\n    private _expandTab(tabPanel: TabPanelComponent, expand: boolean, detectChanges = true): void {\n        if (this.stackContent) {\n            this._activateStackedTab(tabPanel);\n        } else {\n            if (!this._canChangeExpandState(tabPanel, expand)) {\n                return;\n            }\n\n            this._activateExpandableTab(tabPanel, expand);\n        }\n\n        if (detectChanges) {\n            this._detectChanges();\n        }\n\n        this._selectedTabChange(tabPanel);\n    }\n\n    /** @hidden */\n    private _scrollToPanel(tabPanel: TabPanelComponent): void {\n        const panelElement = tabPanel.elementRef.nativeElement;\n        const containerElement = this.contentContainer.nativeElement;\n        const distanceToScroll = panelElement.offsetTop - containerElement.offsetTop;\n        const maximumScrollTop = containerElement.scrollHeight - containerElement.clientHeight;\n        const currentScrollPosition = Math.ceil(containerElement.scrollTop);\n\n        if (!(currentScrollPosition === maximumScrollTop && distanceToScroll > maximumScrollTop)) {\n            !this._init ? (this._disableScrollSpy = true) : (this._init = false);\n            fromEvent(containerElement, 'scroll')\n                .pipe(debounceTime(100), first(), takeUntilDestroyed(this._destroyRef))\n                .subscribe(() => (this._disableScrollSpy = false));\n            scrollTop(containerElement, distanceToScroll);\n        }\n\n        if (this.focusFirstFocusableElement) {\n            tabPanel._focusFirstFocusableElement();\n        }\n    }\n\n    /** @hidden Whether tab can be expanded/collapsed */\n    private _canChangeExpandState(tabPanel: TabPanelComponent, expand: boolean): boolean {\n        return !tabPanel.disabled && expand !== tabPanel.expanded && expand === false ? this.collapsibleTabs : true;\n    }\n\n    /** @hidden */\n    private _selectedTabChange(tabPanel: TabPanelComponent): void {\n        this.selectedTabChange.emit(tabPanel);\n\n        const index = this._tabArray.findIndex((tabInfo) => tabInfo.panel === tabPanel);\n        this.selectedTabIndexChange.emit(index);\n    }\n}\n","<div #headerContainer role=\"tablist\" class=\"fd-tabs\" [class]=\"(mode ? 'fd-tabs--' + mode : '') + (' fd-tabs--' + size)\">\n    <fd-overflow-layout\n        [maxVisibleItems]=\"maxVisibleTabs\"\n        [enableKeyboardNavigation]=\"true\"\n        navigationTrigger=\"keydown\"\n        (hiddenItemsCount)=\"hiddenItemsCount.emit($event)\"\n        (visibleItemsCount)=\"visibleItemsCount.emit($event)\"\n    >\n        @for (tab of _tabArray; track tab; let i = $index; let last = $last) {\n            <div\n                fd-tab-item\n                *fdOverflowItemRef=\"tab\"\n                fdOverflowLayoutItem\n                [forceVisibility]=\"tab.panel._forcedVisibility\"\n                [header]=\"tab.isHeader\"\n                [tabItemState]=\"tab.tabState\"\n            >\n                <a\n                    fd-tab-link\n                    role=\"tab\"\n                    [id]=\"tab.id\"\n                    [attr.aria-controls]=\"tab.panelId\"\n                    [attr.aria-label]=\"tab.ariaLabel || null\"\n                    [attr.aria-labelledby]=\"!tab.ariaLabel && tab.ariaLabelledBy ? tab.ariaLabelledBy : null\"\n                    fdOverflowLayoutFocusableItem\n                    [focusable]=\"tab.active\"\n                    [navigable]=\"!tab.disabled\"\n                    [active]=\"tab.active\"\n                    [disabled]=\"tab.disabled\"\n                    (keydown)=\"_tabHeaderKeydownHandler($event, tab.panel)\"\n                    (click)=\"_tabHeaderClickHandler(tab.panel)\"\n                >\n                    <ng-template [ngTemplateOutlet]=\"tab.titleTemplate || null\"></ng-template>\n                    @if (!tab.titleTemplate) {\n                        @switch (mode) {\n                            @case ('filter') {\n                                @if (tab.isHeader) {\n                                    <span fd-tab-header>\n                                        @if (tab.count) {\n                                            <span fd-tab-counter-header>{{ tab.count }}</span>\n                                        }\n                                        @if (tab.title) {\n                                            <span fd-tab-label>{{ tab.title }}</span>\n                                        }\n                                    </span>\n                                }\n                                @if (!tab.isHeader) {\n                                    <span fd-tab-icon [icon]=\"tab.glyph\">\n                                        <p fd-tab-count>{{ tab.count }}</p>\n                                    </span>\n                                    <span fd-tab-label>{{ tab.title }}</span>\n                                }\n                            }\n                            @case ('icon-only') {\n                                <span fd-tab-icon [icon]=\"tab.glyph\">\n                                    <p fd-tab-count>{{ tab.count }}</p>\n                                </span>\n                            }\n                            @case ('process') {\n                                @if (tab.glyph) {\n                                    <span fd-tab-icon [icon]=\"tab.glyph\"></span>\n                                }\n                                <div fd-tab-process>\n                                    @if (tab.count) {\n                                        <span fd-tab-label>{{ tab.count }}</span>\n                                    }\n                                    @if (tab.title) {\n                                        <span fd-tab-label>{{ tab.title }}</span>\n                                    }\n                                </div>\n                            }\n                            @default {\n                                @if (tab.count) {\n                                    <p fd-tab-count>{{ tab.count }}</p>\n                                }\n                                <span fd-tab-tag>{{ tab.title }}</span>\n                            }\n                        }\n                    }\n                </a>\n                @if (mode === 'process' && !last) {\n                    <div fd-tab-process-icon></div>\n                }\n            </div>\n            @if (tab.isHeader) {\n                <div fd-tab-separator></div>\n            }\n        }\n        <ng-container *fdOverflowExpand=\"let tabs; items: _tabArray\">\n            @if (tabs.length > 0) {\n                <fd-item-expand [fdMenuTrigger]=\"menu\" (keydown)=\"_onTriggerKeydown($event, menu)\"> </fd-item-expand>\n            }\n            <fd-menu #menu>\n                @for (tab of tabs; track tab) {\n                    <li fd-menu-item (onSelect)=\"_overflowingTabHeaderClickHandler(tab.item.panel)\">\n                        <div fd-menu-interactive>\n                            <ng-template\n                                [ngTemplateOutlet]=\"\n                                    !tab.item.titleTemplate && mode === 'icon-only'\n                                        ? iconOnlyTemplate\n                                        : tab.item.titleTemplate || textTitle\n                                \"\n                                [ngTemplateOutletContext]=\"{ $implicit: tab.item }\"\n                            ></ng-template>\n                        </div>\n                    </li>\n                }\n            </fd-menu>\n        </ng-container>\n    </fd-overflow-layout>\n</div>\n<div\n    class=\"fd-tabs__content\"\n    [style.max-height]=\"maxContentHeight\"\n    fdScrollSpy\n    #scrollSpy=\"fdScrollSpy\"\n    fd-scrollbar\n    [trackedTags]=\"['fd-tab']\"\n    [scrollSpyDisabled]=\"_disableScrollSpy\"\n    (spyChange)=\"highlightActiveTab($event?.id)\"\n>\n    <ng-content></ng-content>\n</div>\n<ng-template #textTitle let-tab>\n    <span fd-menu-title>{{ tab.title }}</span>\n</ng-template>\n<ng-template #iconOnlyTemplate let-tab>\n    <span fd-tab-icon [icon]=\"tab.glyph\">\n        <p fd-tab-count>{{ tab.count }}</p>\n    </span>\n</ng-template>\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport {\n    AfterContentInit,\n    ChangeDetectionStrategy,\n    Component,\n    ContentChildren,\n    DestroyRef,\n    ElementRef,\n    HostListener,\n    Input,\n    OnChanges,\n    OnDestroy,\n    OnInit,\n    QueryList,\n    ViewEncapsulation,\n    computed,\n    effect,\n    inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { CssClassBuilder, KeyUtil, RtlService, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { Subscription, merge } from 'rxjs';\nimport { TabItemDirective } from '../tab-item/tab-item.directive';\nimport { TabLinkDirective } from '../tab-link/tab-link.directive';\nimport { TabModes, TabSizes } from '../tab-list.component';\n\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: '[fd-tab-nav]',\n    template: ` <ng-content></ng-content>`,\n    providers: [contentDensityObserverProviders()],\n    styleUrl: './tab-nav.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TabNavComponent implements AfterContentInit, OnChanges, OnInit, OnDestroy, CssClassBuilder {\n    /** Apply user custom styles */\n    @Input()\n    class: string;\n\n    /**\n     * Whether user wants to use tab component in certain mode. Modes available:\n     * 'icon-only' | 'process' | 'filter'\n     */\n    @Input()\n    mode: TabModes;\n\n    /** Size of tab, it's mostly about adding spacing on tab container, available sizes 's' | 'm' | 'l' | 'xl' | 'xxl' */\n    @Input()\n    size: TabSizes = 'm';\n\n    /** @hidden */\n    @ContentChildren(TabLinkDirective, { descendants: true })\n    links: QueryList<TabLinkDirective>;\n\n    /** @hidden */\n    @ContentChildren(TabItemDirective, { descendants: true })\n    items: QueryList<TabItemDirective>;\n\n    /** @hidden */\n    protected readonly _dir = computed(() => (this._rtlService?.rtl() ? 'rtl' : 'ltr'));\n\n    /** @hidden */\n    private _subscriptions = new Subscription();\n\n    /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing)  */\n    private readonly _destroyRef = inject(DestroyRef);\n\n    /** @hidden */\n    private readonly _rtlService = inject(RtlService, { optional: true });\n\n    /** @hidden */\n    private readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n    /** @hidden */\n    private _keyboardEventsManager: FocusKeyManager<TabLinkDirective>;\n\n    /** @hidden */\n    constructor(public readonly elementRef: ElementRef) {\n        this._contentDensityObserver.subscribe();\n\n        // React to RTL changes for keyboard navigation\n        effect(() => {\n            const dir = this._dir();\n            if (this._keyboardEventsManager) {\n                this._keyboardEventsManager.withHorizontalOrientation(dir);\n            }\n        });\n    }\n\n    /** @hidden\n     * CssClassBuilder interface implementation\n     * function must return single string\n     * function is responsible for order which css classes are applied\n     */\n    @applyCssClass\n    buildComponentCssClass(): string[] {\n        return [`fd-tabs`, this.mode ? 'fd-tabs--' + this.mode : '', `fd-tabs--${this.size}`, this.class];\n    }\n\n    /** @hidden */\n    @HostListener('keyup', ['$event'])\n    protected _keyUpHandler(event: KeyboardEvent): void {\n        if (KeyUtil.isKeyCode(event, [LEFT_ARROW, RIGHT_ARROW])) {\n            this._keyboardEventsManager.onKeydown(event);\n        }\n    }\n\n    /** @hidden */\n    ngAfterContentInit(): void {\n        this._setupKeyManager();\n        this._refreshSubscription();\n        this._listenOnContentQueryListChange();\n    }\n\n    /** @hidden */\n    ngOnChanges(): void {\n        this.buildComponentCssClass();\n    }\n\n    /** @hidden */\n    ngOnInit(): void {\n        this.buildComponentCssClass();\n    }\n\n    /** @hidden */\n    ngOnDestroy(): void {\n        this._subscriptions.unsubscribe();\n        this._keyboardEventsManager?.destroy();\n    }\n\n    /** Function that gives possibility to get all the link directives, with and without nav__item wrapper */\n    get tabLinks(): TabLinkDirective[] {\n        let tabLinks: TabLinkDirective[] = [];\n        if (this.links) {\n            tabLinks = tabLinks.concat(this.links.map((link) => link));\n        }\n        if (this.items) {\n            tabLinks = tabLinks.concat(this.items.filter((item) => !!item.linkItem).map((item) => item.linkItem));\n        }\n        return tabLinks;\n    }\n\n    /**\n     * Function to select a new tab from an index.\n     * @param tabIndex Index of the tab to select.\n     */\n    selectTab(tabIndex: number): void {\n        this.tabLinks[tabIndex].elementRef.nativeElement.click();\n    }\n\n    /**\n     * @hidden\n     * Every time any of query is changed, ex. tab is removed or added\n     * reference to keydown subscriptions handler is renewed\n     */\n    private _listenOnContentQueryListChange(): void {\n        merge(this.links.changes, this.items.changes)\n            .pipe(takeUntilDestroyed(this._destroyRef))\n            .subscribe(() => this._refreshSubscription());\n    }\n\n    /** Whether any QueryList detects any changes */\n    private _refreshSubscription(): void {\n        this._subscriptions.unsubscribe();\n        this._subscriptions = new Subscription();\n        this._listenToFocusedLinks();\n\n        this.links.changes.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n            this._listenToFocusedLinks();\n        });\n    }\n\n    /** @hidden */\n    private _listenToFocusedLinks(): void {\n        const links = this.links.toArray();\n        links.forEach((link) => {\n            this._subscriptions.add(\n                link.focused.subscribe(() => {\n                    this._keyboardEventsManager.setActiveItem(links.findIndex((item) => item === link));\n                })\n            );\n        });\n    }\n\n    /** @hidden */\n    private _setupKeyManager(): void {\n        this._keyboardEventsManager?.destroy();\n        this._keyboardEventsManager = new FocusKeyManager(this.links).withWrap().withHorizontalOrientation(this._dir());\n    }\n}\n","import { NgModule } from '@angular/core';\n\nimport { TabListComponent } from './tab-list.component';\nimport { TabPanelComponent } from './tab-panel/tab-panel.component';\n\nimport { TabItemDirective } from './tab-item/tab-item.directive';\nimport { TabLinkDirective } from './tab-link/tab-link.directive';\nimport { TabNavComponent } from './tab-nav/tab-nav.component';\nimport {\n    TabCountDirective,\n    TabCounterHeaderDirective,\n    TabHeaderDirective,\n    TabIconComponent,\n    TabLabelDirective,\n    TabProcessDirective,\n    TabProcessIconDirective,\n    TabSeparatorDirective,\n    TabTagDirective,\n    TabTitleDirective\n} from './tab-utils/tab-directives';\n\nconst components = [\n    TabListComponent,\n    TabPanelComponent,\n    TabTitleDirective,\n    TabNavComponent,\n    TabItemDirective,\n    TabLinkDirective,\n    TabTagDirective,\n    TabIconComponent,\n    TabCountDirective,\n    TabLabelDirective,\n    TabProcessDirective,\n    TabHeaderDirective,\n    TabCounterHeaderDirective,\n    TabProcessIconDirective,\n    TabSeparatorDirective\n];\n\n/**\n * @deprecated\n * Use `@fundamental-ngx/platform/icon-tab-bar` instead\n */\n@NgModule({\n    imports: [...components],\n    exports: [...components]\n})\nexport class TabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}