{"version":3,"file":"primeng-tabview.mjs","sources":["../../src/tabview/style/tabsstyle.ts","../../src/tabview/tabview.ts","../../src/tabview/primeng-tabview.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-tabs {\n    display: flex;\n    flex-direction: column;\n}\n\n.p-tablist {\n    display: flex;\n    position: relative;\n}\n\n.p-tabs-scrollable > .p-tablist {\n    overflow: hidden;\n}\n\n.p-tablist-viewport {\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-tablist-viewport::-webkit-scrollbar {\n    display: none;\n}\n\n.p-tablist-tab-list {\n    position: relative;\n    display: flex;\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-tablist-content {\n    flex-grow: 1;\n}\n\n.p-tablist-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-tablist-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-tablist-nav-button:hover {\n    color: ${dt('tabs.nav.button.hover.color')};\n}\n\n.p-tablist-prev-button {\n    left: 0;\n}\n\n.p-tablist-next-button {\n    right: 0;\n}\n\n.p-tab {\n    display: flex;\n    align-items: center;\n    flex-shrink: 0;\n    cursor: pointer;\n    user-select: none;\n    position: relative;\n    border-style: solid;\n    white-space: nowrap;\n    gap: ${dt('tabs.tab.gap')};\n    background: ${dt('tabs.tab.background')};\n    border-width: ${dt('tabs.tab.border.width')};\n    border-color: ${dt('tabs.tab.border.color')};\n    color: ${dt('tabs.tab.color')};\n    padding: ${dt('tabs.tab.padding')};\n    font-weight: ${dt('tabs.tab.font.weight')};\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-tab: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-tab:not(.p-tab-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-tab-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-tabpanels {\n    background: ${dt('tabs.tabpanel.background')};\n    color: ${dt('tabs.tabpanel.color')};\n    padding: ${dt('tabs.tabpanel.padding')};\n    outline: 0 none;\n}\n\n.p-tabpanel:focus-visible {\n    box-shadow: ${dt('tabs.tabpanel.focus.ring.shadow')};\n    outline: ${dt('tabs.tabpanel.focus.ring.width')} ${dt('tabs.tabpanel.focus.ring.style')} ${dt('tabs.tabpanel.focus.ring.color')};\n    outline-offset: ${dt('tabs.tabpanel.focus.ring.offset')};\n}\n\n.p-tablist-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\nconst classes = {\n    root: ({ props }) => [\n        'p-tabs p-component',\n        {\n            'p-tabs-scrollable': props.scrollable\n        }\n    ]\n};\n\n@Injectable()\nexport class TabsStyle extends BaseStyle {\n    name = 'tabs';\n\n    theme = theme;\n\n    classes = classes;\n}\n\n/**\n *\n * Tabs facilitates seamless switching between different views.\n *\n * [Live Demo](https://www.primeng.org/tabs/)\n *\n * @module tabsstyle\n *\n */\n\nexport enum TabsClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-tabs',\n    /**\n     * Class name of the wrapper element\n     */\n    list = 'p-tablist',\n    /**\n     * Class name of the content element\n     */\n    content = 'p-tablist-content',\n    /**\n     * Class name of the tab list element\n     */\n    tablist = 'p-tablist-tab-list',\n    /**\n     * Class name of the tab list element\n     */\n    tab = 'p-tab',\n    /**\n     * Class name of the inkbar element\n     */\n    inkbar = 'p-tablist-active-bar',\n    /**\n     * Class name of the navigation buttons\n     */\n    button = 'p-tablist-nav-button',\n    /**\n     * Class name of the tab panels wrapper\n     */\n    tabpanels = 'p-tabpanels',\n    /**\n     * Class name of the tab panel element\n     */\n    tabpanel = 'p-tabs-panel'\n}\n\nexport interface TabsStyle extends BaseStyle {}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n    AfterContentInit,\n    AfterViewChecked,\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    ContentChild,\n    ContentChildren,\n    ElementRef,\n    EventEmitter,\n    forwardRef,\n    HostBinding,\n    inject,\n    Input,\n    NgModule,\n    numberAttribute,\n    OnDestroy,\n    Output,\n    QueryList,\n    TemplateRef,\n    ViewChild,\n    ViewEncapsulation\n} from '@angular/core';\nimport { find, findSingle, focus, getAttribute, getOffset, getOuterWidth, getWidth, uuid } from '@primeuix/utils';\nimport { BlockableUI, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ChevronLeftIcon, ChevronRightIcon, TimesIcon } from 'primeng/icons';\nimport { Ripple } from 'primeng/ripple';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { Subscription } from 'rxjs';\nimport { TabsStyle } from './style/tabsstyle';\nimport { TabViewChangeEvent, TabViewCloseEvent } from './tabview.interface';\n\n/**\n * TabPanel is a helper component for TabView component.\n * @group Components\n */\n@Component({\n    selector: 'p-tabPanel, p-tabpanel',\n    standalone: true,\n    imports: [CommonModule, SharedModule],\n    template: `\n        <div\n            *ngIf=\"!closed\"\n            class=\"p-tabview-panel\"\n            role=\"tabpanel\"\n            [hidden]=\"!selected\"\n            [attr.id]=\"tabView.getTabContentId(id)\"\n            [attr.aria-hidden]=\"!selected\"\n            [attr.aria-labelledby]=\"tabView.getTabHeaderActionId(id)\"\n            [attr.data-pc-name]=\"'tabpanel'\"\n        >\n            <ng-content></ng-content>\n            <ng-container *ngIf=\"(contentTemplate || _contentTemplate) && (cache ? loaded : selected)\">\n                <ng-container *ngTemplateOutlet=\"contentTemplate || _contentTemplate\"></ng-container>\n            </ng-container>\n        </div>\n    `,\n\n    providers: [TabsStyle]\n})\nexport class TabPanel extends BaseComponent implements AfterContentInit, OnDestroy {\n    /**\n     * Defines if tab can be removed.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) closable: boolean | undefined = false;\n    /**\n     * Inline style of the tab header.\n     * @group Props\n     */\n    @Input() get headerStyle(): { [klass: string]: any } | null | undefined {\n        return this._headerStyle;\n    }\n    set headerStyle(headerStyle: { [klass: string]: any } | null | undefined) {\n        this._headerStyle = headerStyle;\n        this.tabView.cd.markForCheck();\n    }\n    /**\n     * Style class of the tab header.\n     * @group Props\n     */\n    @Input() get headerStyleClass(): string | undefined {\n        return this._headerStyleClass;\n    }\n    set headerStyleClass(headerStyleClass: string | undefined) {\n        this._headerStyleClass = headerStyleClass;\n        this.tabView.cd.markForCheck();\n    }\n    /**\n     * Whether a lazy loaded panel should avoid getting loaded again on reselection.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) cache: boolean | undefined = true;\n    /**\n     * Advisory information to display in a tooltip on hover.\n     * @group Props\n     */\n    @Input() tooltip: string | undefined;\n    /**\n     * Position of the tooltip.\n     * @group Props\n     */\n    @Input() tooltipPosition: 'top' | 'bottom' | 'left' | 'right' | undefined = 'top';\n    /**\n     * Type of CSS position.\n     * @group Props\n     */\n    @Input() tooltipPositionStyle: string | undefined = 'absolute';\n    /**\n     * Style class of the tooltip.\n     * @group Props\n     */\n    @Input() tooltipStyleClass: string | undefined;\n    /**\n     * Defines if tab is active.\n     * @defaultValue false\n     * @group Props\n     */\n    @Input() get selected(): boolean {\n        return !!this._selected;\n    }\n    set selected(val: boolean) {\n        this._selected = val;\n\n        if (!this.loaded) {\n            this.cd.detectChanges();\n        }\n\n        if (val) this.loaded = true;\n    }\n    /**\n     * When true, tab cannot be activated.\n     * @defaultValue false\n     * @group Props\n     */\n    @Input() get disabled(): boolean {\n        return !!this._disabled;\n    }\n    set disabled(disabled: boolean) {\n        this._disabled = disabled;\n        this.tabView.cd.markForCheck();\n    }\n    /**\n     * Title of the tabPanel.\n     * @group Props\n     */\n    @Input() get header(): string {\n        return this._header;\n    }\n    set header(header: string) {\n        this._header = header;\n\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.tabView.updateInkBar();\n            this.tabView.cd.markForCheck();\n        });\n    }\n    /**\n     * Left icon of the tabPanel.\n     * @group Props\n     * @deprecated since v15.4.2, use `lefticon` template instead.\n     */\n    @Input() get leftIcon(): string {\n        return this._leftIcon;\n    }\n    set leftIcon(leftIcon: string) {\n        this._leftIcon = leftIcon;\n        this.tabView.cd.markForCheck();\n    }\n    /**\n     * Left icon of the tabPanel.\n     * @group Props\n     * @deprecated since v15.4.2, use `righticon` template instead.\n     */\n    @Input() get rightIcon(): string | undefined {\n        return this._rightIcon;\n    }\n    set rightIcon(rightIcon: string | undefined) {\n        this._rightIcon = rightIcon;\n        this.tabView.cd.markForCheck();\n    }\n\n    closed: boolean = false;\n\n    _headerStyle: { [klass: string]: any } | null | undefined;\n\n    _headerStyleClass: string | undefined;\n\n    _selected: boolean | undefined;\n\n    _disabled: boolean | undefined;\n\n    _header!: string;\n\n    _leftIcon!: string;\n\n    _rightIcon: string | undefined = undefined;\n\n    loaded: boolean = false;\n\n    public id: string | undefined = uuid('pn_id_');\n\n    @ContentChild('content') contentTemplate: TemplateRef<any> | undefined;\n\n    @ContentChild('header') headerTemplate: TemplateRef<any> | undefined;\n\n    @ContentChild('lefticon') leftIconTemplate: TemplateRef<any> | undefined;\n\n    @ContentChild('righticon') rightIconTemplate: TemplateRef<any> | undefined;\n\n    @ContentChild('closeicon') closeIconTemplate: TemplateRef<any> | undefined;\n\n    @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n    tabView: TabView = inject(forwardRef(() => TabView)) as TabView;\n\n    _componentStyle = inject(TabsStyle);\n\n    _headerTemplate: TemplateRef<any> | undefined;\n\n    _contentTemplate: TemplateRef<any> | undefined;\n\n    _rightIconTemplate: TemplateRef<any> | undefined;\n\n    _leftIconTemplate: TemplateRef<any> | undefined;\n\n    _closeIconTemplate: TemplateRef<any> | undefined;\n\n    ngAfterContentInit() {\n        (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n            switch (item.getType()) {\n                case 'header':\n                    this._headerTemplate = item.template;\n                    break;\n\n                case 'content':\n                    this._contentTemplate = item.template;\n                    break;\n\n                case 'righticon':\n                    this._rightIconTemplate = item.template;\n                    break;\n\n                case 'lefticon':\n                    this._leftIconTemplate = item.template;\n                    break;\n\n                case 'closeicon':\n                    this._closeIconTemplate = item.template;\n                    break;\n\n                default:\n                    this._contentTemplate = item.template;\n                    break;\n            }\n        });\n    }\n}\n/**\n * TabView is a container component to group content with tabs.\n * @group Components\n */\n@Component({\n    selector: 'p-tabView, p-tabview',\n    standalone: true,\n    imports: [CommonModule, SharedModule, TooltipModule, Ripple, TimesIcon, ChevronLeftIcon, ChevronRightIcon],\n    template: `\n        <div #elementToObserve class=\"p-tablist\">\n            <button\n                *ngIf=\"scrollable && !backwardIsDisabled && autoHideButtons\"\n                #prevBtn\n                class=\"p-tablist-prev-button p-tablist-nav-button\"\n                (click)=\"navBackward()\"\n                [attr.tabindex]=\"tabindex\"\n                [attr.aria-label]=\"prevButtonAriaLabel\"\n                type=\"button\"\n                pRipple\n            >\n                <ChevronLeftIcon *ngIf=\"!previousIconTemplate && !_previousIconTemplate\" [attr.aria-hidden]=\"true\" />\n                <ng-template *ngTemplateOutlet=\"previousIconTemplate && _previousIconTemplate\"></ng-template>\n            </button>\n            <div #content class=\"p-tablist-content\" [ngClass]=\"{ 'p-tablist-viewport': scrollable }\" (scroll)=\"onScroll($event)\" [attr.data-pc-section]=\"'navcontent'\">\n                <div #navbar class=\"p-tablist-tab-list\" role=\"tablist\" [attr.data-pc-section]=\"'nav'\">\n                    @for (tab of tabs; track tab; let i = $index) {\n                        @if (!tab.closed) {\n                            <button\n                                [ngClass]=\"{\n                                    'p-tab': true,\n                                    'p-tab-active': tab.selected,\n                                    'p-disabled': tab.disabled\n                                }\"\n                                [attr.role]=\"'tab'\"\n                                [class]=\"tab.headerStyleClass\"\n                                [ngStyle]=\"tab.headerStyle\"\n                                [pTooltip]=\"tab.tooltip\"\n                                [tooltipPosition]=\"tab.tooltipPosition\"\n                                [positionStyle]=\"tab.tooltipPositionStyle\"\n                                [tooltipStyleClass]=\"tab.tooltipStyleClass\"\n                                [attr.id]=\"getTabHeaderActionId(tab.id)\"\n                                [attr.aria-controls]=\"getTabContentId(tab.id)\"\n                                [attr.aria-selected]=\"tab.selected\"\n                                [attr.tabindex]=\"tab.disabled || !tab.selected ? '-1' : tabindex\"\n                                [attr.aria-disabled]=\"tab.disabled\"\n                                [disabled]=\"tab.disabled\"\n                                [attr.data-pc-index]=\"i\"\n                                [attr.data-p-disabled]=\"tab.disabled\"\n                                [attr.data-pc-section]=\"'headeraction'\"\n                                [attr.data-p-active]=\"tab.selected\"\n                                (click)=\"open($event, tab)\"\n                                (keydown)=\"onTabKeyDown($event, tab)\"\n                                pRipple\n                            >\n                                @if (tab.headerTemplate || tab._headerTemplate) {\n                                    <ng-container *ngTemplateOutlet=\"tab.headerTemplate || tab._headerTemplate\"></ng-container>\n                                } @else {\n                                    @if (tab.leftIconTemplate || tab._leftIconTemplate) {\n                                        <ng-template *ngTemplateOutlet=\"tab.leftIconTemplate || tab._leftIconTemplate\"></ng-template>\n                                    } @else if (tab.leftIcon && !tab.leftIconTemplate && !tab._leftIconTemplate) {\n                                        <span class=\"p-tabview-left-icon\" [ngClass]=\"tab.leftIcon\"></span>\n                                    }\n                                    {{ tab.header }}\n                                    @if (tab.rightIconTemplate || tab._rightIconTemplate) {\n                                        <ng-template *ngTemplateOutlet=\"tab.rightIconTemplate || tab._rightIconTemplate\"></ng-template>\n                                    } @else if (tab.rightIcon && !tab.rightIconTemplate && !tab._rightIconTemplate) {\n                                        <span class=\"p-tabview-right-icon\" [ngClass]=\"tab.rightIcon\"></span>\n                                    }\n                                    @if (tab.closable) {\n                                        @if (tab.closeIconTemplate || tab._closeIconTemplate) {\n                                            <ng-template *ngTemplateOutlet=\"tab.closeIconTemplate || tab._closeIconTemplate\"></ng-template>\n                                        } @else {\n                                            <TimesIcon (click)=\"close($event, tab)\" />\n                                        }\n                                    }\n                                }\n                            </button>\n                            <span #inkbar class=\"p-tablist-active-bar\" role=\"presentation\" [attr.aria-hidden]=\"true\" [attr.data-pc-section]=\"'inkbar'\"></span>\n                        }\n                    }\n                </div>\n            </div>\n            <button *ngIf=\"scrollable && !forwardIsDisabled && buttonVisible\" #nextBtn [attr.tabindex]=\"tabindex\" [attr.aria-label]=\"nextButtonAriaLabel\" class=\"p-tablist-next-button p-tablist-nav-button\" (click)=\"navForward()\" type=\"button\" pRipple>\n                @if (nextIconTemplate || _nextIconTemplate) {\n                    <ng-template *ngTemplateOutlet=\"nextIconTemplate || _nextIconTemplate\"></ng-template>\n                } @else {\n                    <ChevronRightIcon [attr.aria-hidden]=\"true\" />\n                }\n            </button>\n        </div>\n        <div class=\"p-tabpanels\">\n            <ng-content></ng-content>\n        </div>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class.p-tabs]': 'true',\n        '[class.p-tabs-scrollable]': 'scrollable',\n        '[class.p-component]': 'true',\n        '[attr.data-pc-name]': '\"tabview\"'\n    },\n    providers: [TabsStyle]\n})\nexport class TabView extends BaseComponent implements AfterContentInit, AfterViewChecked, OnDestroy, BlockableUI {\n    @HostBinding('class') get hostClass() {\n        return this.styleClass;\n    }\n\n    @HostBinding('style') get hostStyle() {\n        return this.style;\n    }\n    /**\n     * Inline style of the component.\n     * @group Props\n     */\n    @Input() style: { [klass: string]: any } | null | undefined;\n    /**\n     * Style class of the component.\n     * @group Props\n     */\n    @Input() styleClass: string | undefined;\n    /**\n     * Whether tab close is controlled at onClose event or not.\n     * @defaultValue false\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) controlClose: boolean | undefined;\n    /**\n     * When enabled displays buttons at each side of the tab headers to scroll the tab list.\n     * @defaultValue false\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) scrollable: boolean | undefined;\n    /**\n     * Index of the active tab to change selected tab programmatically.\n     * @group Props\n     */\n    @Input() get activeIndex(): number {\n        return this._activeIndex;\n    }\n    set activeIndex(val: number) {\n        this._activeIndex = val;\n        if (this.preventActiveIndexPropagation) {\n            this.preventActiveIndexPropagation = false;\n            return;\n        }\n\n        if (this.tabs && this.tabs.length && this._activeIndex != null && this.tabs.length > this._activeIndex) {\n            (this.findSelectedTab() as TabPanel).selected = false;\n            this.tabs[this._activeIndex].selected = true;\n            this.tabChanged = true;\n\n            this.updateScrollBar(val);\n        }\n    }\n    /**\n     * When enabled, the focused tab is activated.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) selectOnFocus: boolean = false;\n    /**\n     * Used to define a string aria label attribute the forward navigation button.\n     * @group Props\n     */\n    @Input() nextButtonAriaLabel: string | undefined;\n    /**\n     * Used to define a string aria label attribute the backward navigation button.\n     * @group Props\n     */\n    @Input() prevButtonAriaLabel: string | undefined;\n    /**\n     * When activated, navigation buttons will automatically hide or show based on the available space within the container.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) autoHideButtons: boolean = true;\n    /**\n     * Index of the element in tabbing order.\n     * @group Props\n     */\n    @Input({ transform: numberAttribute }) tabindex: number = 0;\n    /**\n     * Callback to invoke on tab change.\n     * @param {TabViewChangeEvent} event - Custom tab change event\n     * @group Emits\n     */\n    @Output() onChange: EventEmitter<TabViewChangeEvent> = new EventEmitter<TabViewChangeEvent>();\n    /**\n     * Callback to invoke on tab close.\n     * @param {TabViewCloseEvent} event - Custom tab close event\n     * @group Emits\n     */\n    @Output() onClose: EventEmitter<TabViewCloseEvent> = new EventEmitter<TabViewCloseEvent>();\n    /**\n     * Callback to invoke on the active tab change.\n     * @param {number} index - New active index\n     * @group Emits\n     */\n    @Output() activeIndexChange: EventEmitter<number> = new EventEmitter<number>();\n\n    @ViewChild('content') content?: ElementRef<HTMLDivElement>;\n\n    @ViewChild('navbar') navbar?: ElementRef<HTMLUListElement>;\n\n    @ViewChild('prevBtn') prevBtn?: ElementRef;\n\n    @ViewChild('nextBtn') nextBtn?: ElementRef;\n\n    @ViewChild('inkbar') inkbar?: ElementRef;\n\n    @ContentChildren(TabPanel) tabPanels: QueryList<TabPanel> | undefined;\n\n    initialized: boolean | undefined;\n\n    tabs!: TabPanel[];\n\n    _activeIndex!: number;\n\n    preventActiveIndexPropagation!: boolean;\n\n    tabChanged: boolean | undefined;\n\n    backwardIsDisabled: boolean = true;\n\n    forwardIsDisabled: boolean = false;\n\n    private tabChangesSubscription!: Subscription;\n\n    resizeObserver: Nullable<ResizeObserver>;\n\n    container: HTMLDivElement | undefined;\n\n    list: HTMLUListElement | undefined;\n\n    buttonVisible: boolean;\n\n    @ViewChild('elementToObserve') elementToObserve: ElementRef;\n\n    @ContentChild('previousicon') previousIconTemplate: TemplateRef<any> | undefined;\n\n    @ContentChild('nexticon') nextIconTemplate: TemplateRef<any> | undefined;\n\n    _previousIconTemplate: TemplateRef<any> | undefined;\n\n    _nextIconTemplate: TemplateRef<any> | undefined;\n\n    _componentStyle = inject(TabsStyle);\n\n    @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n    ngOnInit() {\n        super.ngOnInit();\n        console.log('TabView component is deprecated as of v18. Use Tabs component instead.');\n    }\n\n    ngAfterContentInit() {\n        this.initTabs();\n        this.tabChangesSubscription = (this.tabPanels as QueryList<TabPanel>).changes.subscribe((_) => {\n            this.initTabs();\n            this.refreshButtonState();\n        });\n\n        (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n            switch (item.getType()) {\n                case 'previousicon':\n                    this._previousIconTemplate = item.template;\n                    break;\n\n                case 'nexticon':\n                    this._nextIconTemplate = item.template;\n                    break;\n            }\n        });\n    }\n\n    ngAfterViewInit() {\n        super.ngAfterViewInit();\n        if (isPlatformBrowser(this.platformId)) {\n            if (this.autoHideButtons) {\n                this.bindResizeObserver();\n            }\n        }\n    }\n\n    bindResizeObserver() {\n        this.container = <any>findSingle(this.el.nativeElement, '[data-pc-section=\"navcontent\"]');\n        this.list = <any>findSingle(this.el.nativeElement, '[data-pc-section=\"nav\"]');\n\n        this.resizeObserver = new ResizeObserver(() => {\n            if (this.list.offsetWidth >= this.container.offsetWidth) {\n                this.buttonVisible = true;\n            } else {\n                this.buttonVisible = false;\n            }\n            this.updateButtonState();\n            this.cd.detectChanges();\n        });\n        this.resizeObserver.observe(this.container);\n    }\n\n    unbindResizeObserver() {\n        this.resizeObserver.unobserve(this.elementToObserve.nativeElement);\n        this.resizeObserver = null;\n    }\n\n    ngAfterViewChecked() {\n        if (isPlatformBrowser(this.platformId)) {\n            if (this.tabChanged) {\n                this.updateInkBar();\n                this.tabChanged = false;\n            }\n        }\n    }\n\n    ngOnDestroy(): void {\n        if (this.tabChangesSubscription) {\n            this.tabChangesSubscription.unsubscribe();\n        }\n\n        if (this.resizeObserver) {\n            this.unbindResizeObserver();\n        }\n\n        super.ngOnDestroy();\n    }\n\n    getTabHeaderActionId(tabId) {\n        return `${tabId}_header_action`;\n    }\n\n    getTabContentId(tabId) {\n        return `${tabId}_content`;\n    }\n\n    initTabs(): void {\n        this.tabs = (this.tabPanels as QueryList<TabPanel>).toArray();\n        let selectedTab: TabPanel = this.findSelectedTab() as TabPanel;\n        if (!selectedTab && this.tabs.length) {\n            if (this.activeIndex != null && this.tabs.length > this.activeIndex) this.tabs[this.activeIndex].selected = true;\n            else this.tabs[0].selected = true;\n\n            this.tabChanged = true;\n        }\n\n        this.cd.markForCheck();\n    }\n\n    onTabKeyDown(event: KeyboardEvent, tab: TabPanel): void {\n        switch (event.code) {\n            case 'ArrowLeft':\n                this.onTabArrowLeftKey(event);\n                break;\n\n            case 'ArrowRight':\n                this.onTabArrowRightKey(event);\n                break;\n\n            case 'Home':\n                this.onTabHomeKey(event);\n                break;\n\n            case 'End':\n                this.onTabEndKey(event);\n                break;\n\n            case 'PageDown':\n                this.onTabEndKey(event);\n                break;\n\n            case 'PageUp':\n                this.onTabHomeKey(event);\n                break;\n\n            case 'Enter':\n            case 'Space':\n                this.open(event, tab);\n                break;\n\n            default:\n                break;\n        }\n    }\n\n    onTabArrowLeftKey(event: KeyboardEvent) {\n        const prevHeaderAction = this.findPrevHeaderAction(<HTMLElement>event.currentTarget);\n        const index = getAttribute(prevHeaderAction, 'data-pc-index');\n\n        prevHeaderAction ? this.changeFocusedTab(event, prevHeaderAction, index) : this.onTabEndKey(event);\n        event.preventDefault();\n    }\n\n    onTabArrowRightKey(event: KeyboardEvent) {\n        const nextHeaderAction = this.findNextHeaderAction(<HTMLElement>event.currentTarget);\n\n        const index = getAttribute(nextHeaderAction, 'data-pc-index');\n        nextHeaderAction ? this.changeFocusedTab(event, nextHeaderAction, index) : this.onTabHomeKey(event);\n        event.preventDefault();\n    }\n\n    onTabHomeKey(event: KeyboardEvent) {\n        const firstHeaderAction = this.findFirstHeaderAction();\n        const index = getAttribute(firstHeaderAction, 'data-pc-index');\n\n        this.changeFocusedTab(event, firstHeaderAction, index);\n        event.preventDefault();\n    }\n\n    onTabEndKey(event: KeyboardEvent) {\n        const lastHeaderAction = this.findLastHeaderAction();\n        const index = getAttribute(lastHeaderAction, 'data-pc-index');\n\n        this.changeFocusedTab(event, lastHeaderAction, index);\n        event.preventDefault();\n    }\n\n    changeFocusedTab(event: KeyboardEvent, element: any, index: number) {\n        if (element) {\n            focus(element);\n            element.scrollIntoView({ block: 'nearest' });\n\n            if (this.selectOnFocus) {\n                const tab = this.tabs[index];\n                this.open(event, tab);\n            }\n        }\n    }\n\n    findNextHeaderAction(tabElement: any, selfCheck = false) {\n        const headerElement = selfCheck ? tabElement : tabElement.nextElementSibling;\n\n        return headerElement ? (getAttribute(headerElement, 'data-p-disabled') || getAttribute(headerElement, 'data-pc-section') === 'inkbar' ? this.findNextHeaderAction(headerElement) : headerElement) : null;\n    }\n\n    findPrevHeaderAction(tabElement: any, selfCheck = false) {\n        const headerElement = selfCheck ? tabElement : tabElement.previousElementSibling;\n\n        return headerElement ? (getAttribute(headerElement, 'data-p-disabled') || getAttribute(headerElement, 'data-pc-section') === 'inkbar' ? this.findPrevHeaderAction(headerElement) : headerElement) : null;\n    }\n\n    findFirstHeaderAction() {\n        const firstEl = this.navbar.nativeElement.firstElementChild;\n        return this.findNextHeaderAction(firstEl, true);\n    }\n\n    findLastHeaderAction() {\n        const lastEl = this.navbar.nativeElement.lastElementChild;\n        const lastHeaderAction = getAttribute(lastEl, 'data-pc-section') === 'inkbar' ? lastEl.previousElementSibling : lastEl;\n        return this.findPrevHeaderAction(lastHeaderAction, true);\n    }\n\n    open(event: Event, tab: TabPanel) {\n        if (tab.disabled) {\n            if (event) {\n                event.preventDefault();\n            }\n            return;\n        }\n\n        if (!tab.selected) {\n            let selectedTab: TabPanel = this.findSelectedTab() as TabPanel;\n            if (selectedTab) {\n                selectedTab.selected = false;\n            }\n\n            this.tabChanged = true;\n            tab.selected = true;\n            let selectedTabIndex = this.findTabIndex(tab);\n            this.preventActiveIndexPropagation = true;\n            this.activeIndexChange.emit(selectedTabIndex);\n            this.onChange.emit({ originalEvent: event, index: selectedTabIndex });\n\n            this.updateScrollBar(selectedTabIndex);\n        }\n\n        if (event) {\n            event.preventDefault();\n        }\n    }\n\n    close(event: Event, tab: TabPanel) {\n        if (this.controlClose) {\n            this.onClose.emit({\n                originalEvent: event,\n                index: this.findTabIndex(tab),\n                close: () => {\n                    this.closeTab(tab);\n                }\n            });\n        } else {\n            this.closeTab(tab);\n            this.onClose.emit({\n                originalEvent: event,\n                index: this.findTabIndex(tab)\n            });\n        }\n        event.stopPropagation();\n    }\n\n    closeTab(tab: TabPanel) {\n        if (tab.disabled) {\n            return;\n        }\n        if (tab.selected) {\n            this.tabChanged = true;\n            tab.selected = false;\n            for (let i = 0; i < this.tabs.length; i++) {\n                let tabPanel = this.tabs[i];\n                if (!tabPanel.closed && !tab.disabled) {\n                    tabPanel.selected = true;\n                    break;\n                }\n            }\n        }\n\n        tab.closed = true;\n    }\n\n    findSelectedTab(): TabPanel | null {\n        for (let i = 0; i < this.tabs.length; i++) {\n            if (this.tabs[i].selected) {\n                return this.tabs[i];\n            }\n        }\n        return null;\n    }\n\n    findTabIndex(tab: TabPanel) {\n        let index = -1;\n        for (let i = 0; i < this.tabs.length; i++) {\n            if (this.tabs[i] == tab) {\n                index = i;\n                break;\n            }\n        }\n        return index;\n    }\n\n    getBlockableElement(): HTMLElement {\n        return this.el.nativeElement.children[0];\n    }\n\n    updateInkBar() {\n        if (isPlatformBrowser(this.platformId)) {\n            if (this.navbar) {\n                const tabHeader: HTMLElement | null = <any>findSingle(this.navbar.nativeElement, '[data-pc-section=\"headeraction\"][data-p-active=\"true\"]');\n\n                if (!tabHeader) {\n                    return;\n                }\n\n                (this.inkbar as ElementRef).nativeElement.style.width = getOuterWidth(tabHeader) + 'px';\n                (this.inkbar as ElementRef).nativeElement.style.left = <any>getOffset(tabHeader).left - <any>getOffset(this.navbar.nativeElement).left + 'px';\n            }\n        }\n    }\n\n    updateScrollBar(index: number) {\n        let tabHeader = find(this.navbar.nativeElement, '[data-pc-section=\"headeraction\"]')[index];\n\n        if (tabHeader) {\n            tabHeader.scrollIntoView({ block: 'nearest' });\n        }\n    }\n\n    updateButtonState() {\n        const content = (this.content as ElementRef).nativeElement;\n        const { scrollLeft, scrollWidth } = content;\n        const width = getWidth(content);\n\n        this.backwardIsDisabled = scrollLeft === 0;\n        this.forwardIsDisabled = Math.round(scrollLeft) === scrollWidth - width;\n    }\n\n    refreshButtonState() {\n        this.container = <any>findSingle(this.el.nativeElement, '[data-pc-section=\"navcontent\"]');\n        this.list = <any>findSingle(this.el.nativeElement, '[data-pc-section=\"nav\"]');\n        if (this.list.offsetWidth >= this.container.offsetWidth) {\n            if (this.list.offsetWidth >= this.container.offsetWidth) {\n                this.buttonVisible = true;\n            } else {\n                this.buttonVisible = false;\n            }\n            this.updateButtonState();\n            this.cd.markForCheck();\n        }\n    }\n\n    onScroll(event: Event) {\n        this.scrollable && this.updateButtonState();\n\n        event.preventDefault();\n    }\n\n    getVisibleButtonWidths() {\n        return [this.prevBtn?.nativeElement, this.nextBtn?.nativeElement].reduce((acc, el) => (el ? acc + getWidth(el) : acc), 0);\n    }\n\n    navBackward() {\n        const content = (this.content as ElementRef).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 as ElementRef).nativeElement;\n        const width = getWidth(content) - this.getVisibleButtonWidths();\n        const pos = content.scrollLeft + width;\n        const lastPos = content.scrollWidth - width;\n\n        content.scrollLeft = pos >= lastPos ? lastPos : pos;\n    }\n}\n\n@NgModule({\n    imports: [TabView, TabPanel, SharedModule],\n    exports: [TabView, TabPanel, SharedModule]\n})\nexport class TabViewModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}