{"version":3,"file":"primeng-tabmenu.mjs","sources":["../../src/tabmenu/style/tabmenustyle.ts","../../src/tabmenu/tabmenu.ts","../../src/tabmenu/primeng-tabmenu.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n\n/* For PrimeNG */\n.p-tabmenu.p-component {\n    display: flex;\n    flex-direction: column;\n}\n\n.p-tabmenu-nav-container {\n    display: flex;\n    position: relative;\n}\n\n.p-tabmenu.p-tabmenu-scrollable .p-tabmenu-nav-container {\n    overflow: hidden;\n}\n\n.p-tabmenu-nav-content {\n    flex-grow: 1;\n    overflow-x: auto;\n    overflow-y: hidden;\n    scroll-behavior: smooth;\n    scrollbar-width: none;\n    overscroll-behavior: contain auto;\n}\n\n.p-tabmenu-nav {\n    padding: 0;\n    margin: 0;\n    list-style-type: none;\n    position: relative;\n    display: flex;\n    flex-wrap: nowrap;\n    background: ${dt('tabs.tablist.background')};\n    border-style: solid;\n    border-color: ${dt('tabs.tablist.border.color')};\n    border-width: ${dt('tabs.tablist.border.width')};\n}\n\n.p-tabmenuitem {\n    display: flex;\n    flex-shrink: 0;\n    cursor: pointer;\n    position: relative;\n    border-style: solid;\n    background: ${dt('tabs.tab.background')};\n    border-width: ${dt('tabs.tab.border.width')};\n    border-color: ${dt('tabs.tab.border.color')};\n    padding: ${dt('tabs.tab.padding')};\n    transition: background ${dt('tabs.transition.duration')}, border-color ${dt('tabs.transition.duration')}, color ${dt('tabs.transition.duration')}, outline-color ${dt('tabs.transition.duration')}, box-shadow ${dt('tabs.transition.duration')};\n    margin: ${dt('tabs.tab.margin')};\n    outline-color: transparent;\n}\n\n.p-tabmenuitem > .p-menuitem-link {\n    white-space: nowrap;\n    user-select: none;\n    flex-shrink: 0;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    text-decoration: none;\n    overflow: hidden;\n    position: relative;\n    gap: ${dt('tabs.tab.gap')};\n    color: ${dt('tabs.tab.color')};\n    font-weight: ${dt('tabs.tab.font.weight')};\n}\n\n.p-tabmenuitem.p-tabmenuitem-active .p-menuitem-link {\n    color: ${dt('tabs.tab.active.color')};\n}\n\n.p-tabmenuitem:not(.p-disabled):focus-visible {\n    z-index: 1;\n    box-shadow: ${dt('tabs.tab.focus.ring.shadow')};\n    outline: ${dt('tabs.tab.focus.ring.width')} ${dt('tabs.tab.focus.ring.style')} ${dt('tabs.tab.focus.ring.color')};\n    outline-offset: ${dt('tabs.tab.focus.ring.offset')};\n}\n\n.p-tabmenuitem:not(.p-tabmenuitem-active):not(.p-disabled):hover {\n    background: ${dt('tabs.tab.hover.background')};\n    border-color: ${dt('tabs.tab.hover.border.color')};\n    color: ${dt('tabs.tab.hover.color')};\n}\n\n.p-tabmenuitem-active {\n    background: ${dt('tabs.tab.active.background')};\n    border-color: ${dt('tabs.tab.active.border.color')};\n    color: ${dt('tabs.tab.active.color')};\n}\n\n.p-tabmenuitem-active-bar {\n    z-index: 1;\n    display: block;\n    position: absolute;\n    bottom: ${dt('tabs.active.bar.bottom')};\n    height: ${dt('tabs.active.bar.height')};\n    background: ${dt('tabs.active.bar.background')};\n    transition: 250ms cubic-bezier(0.35, 0, 0.25, 1);\n}\n\n.p-tabmenu-nav-button {\n    all: unset;\n    position: absolute !important;\n    flex-shrink: 0;\n    top: 0;\n    z-index: 2;\n    height: 100%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    background: ${dt('tabs.nav.button.background')};\n    color: ${dt('tabs.nav.button.color')};\n    width: ${dt('tabs.nav.button.width')};\n    transition: color ${dt('tabs.transition.duration')}, outline-color ${dt('tabs.transition.duration')}, box-shadow ${dt('tabs.transition.duration')};\n    box-shadow: ${dt('tabs.nav.button.shadow')};\n    outline-color: transparent;\n    cursor: pointer;\n}\n\n.p-tabmenu-nav-button:focus-visible {\n    z-index: 1;\n    box-shadow: ${dt('tabs.nav.button.focus.ring.shadow')};\n    outline: ${dt('tabs.nav.button.focus.ring.width')} ${dt('tabs.nav.button.focus.ring.style')} ${dt('tabs.nav.button.focus.ring.color')};\n    outline-offset: ${dt('tabs.nav.button.focus.ring.offset')};\n}\n\n.p-tabmenu-nav-button:hover {\n    color: ${dt('tabs.nav.button.hover.color')};\n}\n\n.p-tabmenu-nav-prev-button {\n    left: 0;\n}\n\n.p-tabmenu-nav-next-button {\n    right: 0;\n}`;\n\n@Injectable()\nexport class TabMenuStyle extends BaseStyle {\n    name = 'tabs';\n\n    theme = theme;\n}\n\n/**\n *\n * TabMenu is a navigation component that displays items as tab headers. Example below uses nested routes with TabMenu.\n *\n * [Live Demo](https://www.primeng.org/tabmenu/)\n *\n * @module tabmenustyle\n *\n */\nexport enum TabMenuClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-tabmenu',\n    /**\n     * Class name of the tablist element\n     */\n    tablist = 'p-tabmenu-tablist',\n    /**\n     * Class name of the item element\n     */\n    item = 'p-tabmenu-item',\n    /**\n     * Class name of the item link element\n     */\n    itemLink = 'p-tabmenu-item-link',\n    /**\n     * Class name of the item icon element\n     */\n    itemIcon = 'p-tabmenu-item-icon',\n    /**\n     * Class name of the item label element\n     */\n    itemLabel = 'p-tabmenu-item-label',\n    /**\n     * Class name of the inkbar element\n     */\n    inkbar = 'p-tabmenu-ink-bar'\n}\n\nexport interface TabMenuStyle extends BaseStyle {}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n    AfterContentInit,\n    AfterViewChecked,\n    AfterViewInit,\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    ContentChild,\n    ContentChildren,\n    ElementRef,\n    EventEmitter,\n    inject,\n    Input,\n    NgModule,\n    OnDestroy,\n    Output,\n    QueryList,\n    signal,\n    TemplateRef,\n    ViewChild,\n    ViewChildren,\n    ViewEncapsulation\n} from '@angular/core';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { findSingle, focus, getAttribute, getOffset, getWidth, resolve } from '@primeuix/utils';\nimport { MenuItem, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BadgeModule } from 'primeng/badge';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ChevronLeftIcon, ChevronRightIcon } from 'primeng/icons';\nimport { Ripple } from 'primeng/ripple';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { TabMenuStyle } from './style/tabmenustyle';\n\n/**\n * TabMenu is a navigation component that displays items as tab headers.\n * @group Components\n */\n@Component({\n    selector: 'p-tabMenu, p-tabmenu',\n    standalone: true,\n    imports: [CommonModule, RouterModule, Ripple, TooltipModule, ChevronLeftIcon, ChevronRightIcon, BadgeModule, SharedModule],\n    template: `\n        <div [ngClass]=\"{ 'p-tabmenu p-component': true, 'p-tabmenu-scrollable': scrollable }\" [ngStyle]=\"style\" [class]=\"styleClass\">\n            <div class=\"p-tabmenu-nav-container\">\n                <button *ngIf=\"scrollable && !backwardIsDisabled\" #prevBtn class=\"p-tabmenu-nav-prev-button p-tabmenu-nav-button\" (click)=\"navBackward()\" type=\"button\" role=\"navigation\" pRipple>\n                    <ChevronLeftIcon *ngIf=\"!previousIconTemplate && !_previousIconTemplate\" [attr.aria-hidden]=\"true\" />\n                    <ng-template *ngTemplateOutlet=\"previousIconTemplate || _previousIconTemplate\"></ng-template>\n                </button>\n                <div #content class=\"p-tabmenu-nav-content\" (scroll)=\"onScroll($event)\">\n                    <ul #navbar class=\"p-tabmenu-nav p-reset\" role=\"menubar\" [attr.aria-labelledby]=\"ariaLabelledBy\" [attr.aria-label]=\"ariaLabel\">\n                        <li\n                            #tab\n                            *ngFor=\"let item of focusableItems; let i = index\"\n                            role=\"menuitem\"\n                            [ngStyle]=\"item.style\"\n                            [class]=\"item.styleClass\"\n                            [attr.data-p-disabled]=\"disabled(item)\"\n                            [attr.data-p-highlight]=\"focusedItemInfo() === item\"\n                            (click)=\"itemClick($event, item)\"\n                            (keydown)=\"onKeydownItem($event, i, item)\"\n                            (focus)=\"onMenuItemFocus(item)\"\n                            [ngClass]=\"{\n                                'p-tabmenuitem': true,\n                                'p-disabled': getItemProp(item, 'disabled'),\n                                'p-tabmenuitem-active': isActive(item),\n                                'p-hidden': item.visible === false\n                            }\"\n                            pTooltip\n                            [tooltipOptions]=\"item.tooltipOptions\"\n                            pRipple\n                            [attr.aria-label]=\"getItemProp(item, 'label')\"\n                            [attr.tabindex]=\"disabled(item) ? -1 : 0\"\n                        >\n                            <a\n                                #tabLink\n                                *ngIf=\"!item.routerLink && !itemTemplate && !_itemTemplate\"\n                                class=\"p-menuitem-link\"\n                                role=\"presentation\"\n                                [attr.href]=\"getItemProp(item, 'url')\"\n                                [attr.id]=\"getItemProp(item, 'id')\"\n                                [attr.aria-disabled]=\"disabled(item)\"\n                                [target]=\"getItemProp(item, 'target')\"\n                                [tabindex]=\"-1\"\n                            >\n                                <ng-container>\n                                    <span class=\"p-menuitem-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon\" [ngStyle]=\"item.iconStyle\"></span>\n                                    <span class=\"p-menuitem-text\" *ngIf=\"item.escape !== false; else htmlLabel\">{{ getItemProp(item, 'label') }}</span>\n                                    <ng-template #htmlLabel><span class=\"p-menuitem-text\" [innerHTML]=\"getItemProp(item, 'label')\"></span></ng-template>\n                                    <p-badge *ngIf=\"item.badge\" [styleClass]=\"item.badgeStyleClass\" [value]=\"getItemProp(item, 'badge')\" size=\"small\" />\n                                </ng-container>\n                            </a>\n                            <a\n                                #tabLink\n                                *ngIf=\"item.routerLink && !itemTemplate && !_itemTemplate\"\n                                [routerLink]=\"item.routerLink\"\n                                [queryParams]=\"item.queryParams\"\n                                [routerLinkActive]=\"'p-menuitem-link-active'\"\n                                [routerLinkActiveOptions]=\"item.routerLinkActiveOptions || { exact: false }\"\n                                role=\"presentation\"\n                                class=\"p-menuitem-link\"\n                                [target]=\"item.target\"\n                                [attr.id]=\"getItemProp(item, 'id')\"\n                                [attr.aria-disabled]=\"disabled(item)\"\n                                [tabindex]=\"-1\"\n                                [fragment]=\"item.fragment\"\n                                [queryParamsHandling]=\"item.queryParamsHandling\"\n                                [preserveFragment]=\"item.preserveFragment\"\n                                [skipLocationChange]=\"item.skipLocationChange\"\n                                [replaceUrl]=\"item.replaceUrl\"\n                                [state]=\"item.state\"\n                            >\n                                <ng-container>\n                                    <span class=\"p-menuitem-icon\" [attr.aria-hidden]=\"true\" [ngClass]=\"item.icon\" *ngIf=\"item.icon\" [ngStyle]=\"item.iconStyle\"></span>\n                                    <span class=\"p-menuitem-text\" *ngIf=\"item.escape !== false; else htmlRouteLabel\">{{ getItemProp(item, 'label') }}</span>\n                                    <ng-template #htmlRouteLabel><span class=\"p-menuitem-text\" [innerHTML]=\"getItemProp(item, 'label')\"></span></ng-template>\n                                    <p-badge *ngIf=\"item.badge\" [styleClass]=\"item.badgeStyleClass\" [value]=\"getItemProp(item, 'badge')\" size=\"small\" />\n                                </ng-container>\n                            </a>\n                            <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, index: i }\"></ng-container>\n                        </li>\n                        <li #inkbar class=\"p-tabmenuitem-active-bar\" role=\"presentation\" [attr.data-pc-section]=\"'inkbar'\"></li>\n                    </ul>\n                </div>\n                <button *ngIf=\"scrollable && !forwardIsDisabled\" #nextBtn class=\"p-tabmenu-nav-next-button p-tabmenu-nav-button\" (click)=\"navForward()\" type=\"button\" role=\"navigation\" pRipple>\n                    <ChevronRightIcon *ngIf=\"!previousIconTemplate && !_previousIconTemplate\" [attr.aria-hidden]=\"true\" />\n                    <ng-template *ngTemplateOutlet=\"nextIconTemplate || _nextIconTemplate\"></ng-template>\n                </button>\n            </div>\n        </div>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    providers: [TabMenuStyle]\n})\nexport class TabMenu extends BaseComponent implements AfterViewInit, AfterContentInit, AfterViewChecked, OnDestroy {\n    /**\n     * An array of menuitems.\n     * @group Props\n     */\n    @Input() set model(value: MenuItem[] | undefined) {\n        this._model = value;\n        this._focusableItems = (this._model || []).reduce((result, item) => {\n            result.push(item);\n\n            return result;\n        }, []);\n    }\n    get model(): MenuItem[] | undefined {\n        return this._model;\n    }\n    /**\n     * Defines the default active menuitem\n     * @group Props\n     */\n    @Input() set activeItem(value: MenuItem | undefined) {\n        this._activeItem = value;\n        this.activeItemChange.emit(value);\n        this.tabChanged = true;\n    }\n\n    get activeItem(): MenuItem | undefined {\n        return this._activeItem;\n    }\n    /**\n     * When enabled displays buttons at each side of the tab headers to scroll the tab list.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) scrollable: boolean | undefined;\n    /**\n     * Defines if popup mode enabled.\n     */\n    @Input({ transform: booleanAttribute }) popup: boolean | undefined;\n    /**\n     * Inline style of the element.\n     * @group Props\n     */\n    @Input() style: { [klass: string]: any } | null | undefined;\n    /**\n     * Class of the element.\n     * @group Props\n     */\n    @Input() styleClass: string | undefined;\n    /**\n     * Defines a string value that labels an interactive element.\n     * @group Props\n     */\n    @Input() ariaLabel: string | undefined;\n    /**\n     * Identifier of the underlying input element.\n     * @group Props\n     */\n    @Input() ariaLabelledBy: string | undefined;\n    /**\n     * Event fired when a tab is selected.\n     * @param {MenuItem} item - Menu item.\n     * @group Emits\n     */\n    @Output() activeItemChange: EventEmitter<MenuItem> = new EventEmitter<MenuItem>();\n\n    @ViewChild('content') content: Nullable<ElementRef>;\n\n    @ViewChild('navbar') navbar: Nullable<ElementRef>;\n\n    @ViewChild('inkbar') inkbar: Nullable<ElementRef>;\n\n    @ViewChild('prevBtn') prevBtn: Nullable<ElementRef>;\n\n    @ViewChild('nextBtn') nextBtn: Nullable<ElementRef>;\n\n    @ViewChildren('tabLink') tabLink: Nullable<QueryList<ElementRef>>;\n\n    @ViewChildren('tab') tab: Nullable<QueryList<ElementRef>>;\n\n    /**\n     * Template of the menu item.\n     * @group Templates\n     */\n    @ContentChild('item', { descendants: false }) itemTemplate: Nullable<TemplateRef<any>>;\n    /**\n     * Template of the previous icon.\n     * @group Templates\n     */\n    @ContentChild('previousicon', { descendants: false }) previousIconTemplate: Nullable<TemplateRef<any>>;\n    /**\n     * Template of the next icon.\n     * @group Templates\n     */\n    @ContentChild('nexticon', { descendants: false }) nextIconTemplate: Nullable<TemplateRef<any>>;\n\n    @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n    _itemTemplate: TemplateRef<any> | undefined;\n\n    _nextIconTemplate: TemplateRef<any> | undefined;\n\n    _previousIconTemplate: TemplateRef<any> | undefined;\n\n    tabChanged: boolean | undefined;\n\n    backwardIsDisabled: boolean = true;\n\n    forwardIsDisabled: boolean = false;\n\n    private timerIdForInitialAutoScroll: any = null;\n\n    _focusableItems: MenuItem[] | undefined | any;\n\n    _model: MenuItem[] | undefined;\n\n    _activeItem: MenuItem | undefined;\n\n    focusedItemInfo = signal<any>(null);\n\n    router = inject(Router);\n\n    route = inject(ActivatedRoute);\n\n    _componentStyle = inject(TabMenuStyle);\n\n    get focusableItems() {\n        if (!this._focusableItems || !this._focusableItems.length) {\n            this._focusableItems = (this.model || []).reduce((result, item) => {\n                result.push(item);\n\n                return result;\n            }, []);\n        }\n        return this._focusableItems;\n    }\n\n    constructor() {\n        super();\n        console.log('TabMenu is deprecated as of v18. Use tabs component instead https://primeng.org/tabs#tabmenu');\n    }\n\n    ngAfterViewInit(): void {\n        if (isPlatformBrowser(this.platformId)) {\n            this.updateInkBar();\n            this.initAutoScrollForActiveItem();\n            this.initButtonState();\n        }\n    }\n\n    ngAfterViewChecked() {\n        if (isPlatformBrowser(this.platformId)) {\n            this.updateInkBar();\n            this.tabChanged = false;\n        }\n    }\n\n    ngAfterContentInit() {\n        this.templates?.forEach((item) => {\n            switch (item.getType()) {\n                case 'item':\n                    this._itemTemplate = item.template;\n                    break;\n\n                case 'nexticon':\n                    this._nextIconTemplate = item.template;\n                    break;\n\n                case 'previousicon':\n                    this._previousIconTemplate = item.template;\n                    break;\n\n                default:\n                    this._itemTemplate = item.template;\n                    break;\n            }\n        });\n    }\n\n    ngOnDestroy(): void {\n        this.clearAutoScrollHandler();\n        super.ngOnDestroy();\n    }\n\n    isActive(item: MenuItem) {\n        if (item.routerLink) {\n            const routerLink = Array.isArray(item.routerLink) ? item.routerLink : [item.routerLink];\n\n            return this.router.isActive(this.router.createUrlTree(routerLink, { relativeTo: this.route }).toString(), item.routerLinkActiveOptions?.exact ?? item.routerLinkActiveOptions ?? false);\n        }\n\n        return item === this.activeItem;\n    }\n\n    getItemProp(item: any, name: string): string {\n        return item ? resolve(item[name]) : undefined;\n    }\n\n    visible(item) {\n        return typeof item.visible === 'function' ? item.visible() : item.visible !== false;\n    }\n\n    disabled(item) {\n        return typeof item.disabled === 'function' ? item.disabled() : item.disabled;\n    }\n\n    onMenuItemFocus(item) {\n        this.focusedItemInfo.set(item);\n    }\n\n    itemClick(event: Event, item: MenuItem) {\n        if (item.disabled) {\n            event.preventDefault();\n            return;\n        }\n\n        if (!item.url && !item.routerLink) {\n            event.preventDefault();\n        }\n\n        if (item.command) {\n            item.command({\n                originalEvent: event,\n                item: item\n            });\n        }\n\n        this.activeItem = item;\n        this.activeItemChange.emit(item);\n        this.tabChanged = true;\n        this.cd.markForCheck();\n    }\n\n    onKeydownItem(event, index, item) {\n        let i = index;\n\n        let foundElement = {};\n        const tabs = this.tab.toArray();\n\n        switch (event.code) {\n            case 'ArrowRight':\n                foundElement = this.findNextItem(tabs, i);\n                i = foundElement['i'];\n                this.changeFocusedTab(event, foundElement['nextItem'], i);\n                break;\n\n            case 'ArrowLeft':\n                foundElement = this.findPrevItem(tabs, i);\n                i = foundElement['i'];\n                this.changeFocusedTab(event, foundElement['prevItem'], i);\n                break;\n\n            case 'End':\n                foundElement = this.findPrevItem(tabs, this.model.length);\n                i = foundElement['i'];\n                this.changeFocusedTab(event, foundElement['prevItem'], i);\n                event.preventDefault();\n                break;\n\n            case 'Home':\n                foundElement = this.findNextItem(tabs, -1);\n                i = foundElement['i'];\n                this.changeFocusedTab(event, foundElement['nextItem'], i);\n                event.preventDefault();\n                break;\n\n            case 'Space':\n            case 'Enter':\n                this.itemClick(event, item);\n                break;\n\n            case 'Tab':\n                this.onTabKeyDown(tabs);\n                break;\n\n            default:\n                break;\n        }\n\n        if (tabs[i] && tabs[index]) {\n            tabs[index].nativeElement.tabIndex = '-1';\n            tabs[i].nativeElement.tabIndex = '0';\n            tabs[i].nativeElement.focus();\n        }\n        this.cd.markForCheck();\n    }\n\n    onTabKeyDown(tabLinks) {\n        tabLinks.forEach((item) => {\n            item.nativeElement.tabIndex = getAttribute(item.nativeElement.parentElement, 'data-p-highlight') ? '0' : '-1';\n        });\n    }\n\n    changeFocusedTab(event: KeyboardEvent, element: HTMLLIElement, index: number) {\n        if (element) {\n            focus(element);\n            element.scrollIntoView({ block: 'nearest' });\n\n            this.itemClick(event, element);\n        }\n    }\n\n    findNextItem(items, index) {\n        let i = index + 1;\n\n        if (i >= items.length) {\n            return { nextItem: items[items.length], i: items.length };\n        }\n\n        let nextItem = items[i];\n\n        if (nextItem) return getAttribute(nextItem.nativeElement, 'data-p-disabled') ? this.findNextItem(items, i) : { nextItem: nextItem.nativeElement, i };\n        else return null;\n    }\n\n    findPrevItem(items, index) {\n        let i = index - 1;\n\n        if (i < 0) {\n            return { prevItem: items[0], i: 0 };\n        }\n\n        let prevItem = items[i];\n\n        if (prevItem) return getAttribute(prevItem.nativeElement, 'data-p-disabled') ? this.findPrevItem(items, i) : { prevItem: prevItem.nativeElement, i };\n        else return null;\n    }\n\n    updateInkBar() {\n        const tabHeader = findSingle(this.navbar?.nativeElement, 'li.p-tabmenu-active');\n        if (tabHeader) {\n            (this.inkbar as ElementRef).nativeElement.style.width = getWidth(tabHeader as any) + 'px';\n            (this.inkbar as ElementRef).nativeElement.style.left = <any>getOffset(tabHeader).left - <any>getOffset(this.navbar?.nativeElement).left + 'px';\n        }\n    }\n\n    getVisibleButtonWidths() {\n        return [this.prevBtn?.nativeElement, this.nextBtn?.nativeElement].reduce((acc, el) => (el ? acc + getWidth(el) : acc), 0);\n    }\n\n    updateButtonState() {\n        const content = this.content?.nativeElement;\n        const { scrollLeft, scrollWidth } = content;\n        const width = getWidth(content);\n\n        this.backwardIsDisabled = scrollLeft === 0;\n        this.forwardIsDisabled = parseInt(scrollLeft) === scrollWidth - width;\n    }\n\n    updateScrollBar(index: number): void {\n        const tabHeader = this.navbar?.nativeElement.children[index];\n\n        if (!tabHeader) {\n            return;\n        }\n\n        tabHeader.scrollIntoView({ block: 'nearest' });\n    }\n\n    onScroll(event: Event) {\n        this.scrollable && this.updateButtonState();\n\n        event.preventDefault();\n    }\n\n    navBackward() {\n        const content = this.content?.nativeElement;\n        const width = getWidth(content) - this.getVisibleButtonWidths();\n        const pos = content.scrollLeft - width;\n        content.scrollLeft = pos <= 0 ? 0 : pos;\n    }\n\n    navForward() {\n        const content = this.content?.nativeElement;\n        const width = getWidth(content) - this.getVisibleButtonWidths();\n        const pos = content.scrollLeft + width;\n        const lastPos = content.scrollWidth - width;\n        content.scrollLeft = pos >= lastPos ? lastPos : pos;\n    }\n\n    private initAutoScrollForActiveItem(): void {\n        if (!this.scrollable) {\n            return;\n        }\n\n        this.clearAutoScrollHandler();\n        // We have to wait for the rendering and then can scroll to element.\n        this.timerIdForInitialAutoScroll = setTimeout(() => {\n            const activeItem = (this.model as MenuItem[]).findIndex((menuItem) => this.isActive(menuItem));\n\n            if (activeItem !== -1) {\n                this.updateScrollBar(activeItem);\n            }\n        });\n    }\n\n    private clearAutoScrollHandler(): void {\n        if (this.timerIdForInitialAutoScroll) {\n            clearTimeout(this.timerIdForInitialAutoScroll);\n            this.timerIdForInitialAutoScroll = null;\n        }\n    }\n\n    private initButtonState(): void {\n        if (this.scrollable) {\n            // We have to wait for the rendering and then retrieve the actual size element from the DOM.\n            // in future `Promise.resolve` can be changed to `queueMicrotask` (if ie11 support will be dropped)\n            Promise.resolve().then(() => {\n                this.updateButtonState();\n                this.cd.markForCheck();\n            });\n        }\n    }\n}\n\n@NgModule({\n    imports: [TabMenu, SharedModule],\n    exports: [TabMenu, SharedModule]\n})\nexport class TabMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}