{"version":3,"file":"primeng-tabview.mjs","sources":["../../src/app/components/tabview/tabview.ts","../../src/app/components/tabview/primeng-tabview.ts"],"sourcesContent":["import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n    AfterContentInit,\n    AfterViewChecked,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ContentChildren,\n    ElementRef,\n    EmbeddedViewRef,\n    EventEmitter,\n    Inject,\n    Input,\n    NgModule,\n    OnDestroy,\n    Output,\n    PLATFORM_ID,\n    QueryList,\n    TemplateRef,\n    ViewChild,\n    ViewContainerRef,\n    ViewEncapsulation,\n    forwardRef\n} from '@angular/core';\nimport { BlockableUI, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { DomHandler } from 'primeng/dom';\nimport { ChevronLeftIcon } from 'primeng/icons/chevronleft';\nimport { ChevronRightIcon } from 'primeng/icons/chevronright';\nimport { TimesIcon } from 'primeng/icons/times';\nimport { RippleModule } from 'primeng/ripple';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { Subscription } from 'rxjs';\nimport { TabViewChangeEvent, TabViewCloseEvent } from './tabview.interface';\n\nlet idx: number = 0;\n/**\n * TabPanel is a helper component for TabView component.\n * @group Components\n */\n@Component({\n    selector: 'p-tabPanel',\n    template: `\n        <div [attr.id]=\"id\" class=\"p-tabview-panel\" [hidden]=\"!selected\" role=\"tabpanel\" [attr.aria-hidden]=\"!selected\" [attr.aria-labelledby]=\"id + '-label'\" *ngIf=\"!closed\">\n            <ng-content></ng-content>\n            <ng-container *ngIf=\"contentTemplate && (cache ? loaded : selected)\">\n                <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n            </ng-container>\n        </div>\n    `,\n    host: {\n        class: 'p-element'\n    }\n})\nexport class TabPanel implements AfterContentInit, OnDestroy {\n    /**\n     * Defines if tab can be removed.\n     * @group Props\n     */\n    @Input() closable: boolean | undefined = false;\n    /**\n     * Inline style of the tab header.\n     * @group Props\n     */\n    @Input() headerStyle: { [klass: string]: any } | null | undefined;\n    /**\n     * Style class of the tab header.\n     * @group Props\n     */\n    @Input() headerStyleClass: string | undefined;\n    /**\n     * Whether a lazy loaded panel should avoid getting loaded again on reselection.\n     * @group Props\n     */\n    @Input() 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    @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n    closed: boolean = false;\n\n    view: EmbeddedViewRef<any> | null = null;\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    id: string = `p-tabpanel-${idx++}`;\n\n    contentTemplate: TemplateRef<any> | undefined;\n\n    headerTemplate: TemplateRef<any> | undefined;\n\n    leftIconTemplate: TemplateRef<any> | undefined;\n\n    rightIconTemplate: TemplateRef<any> | undefined;\n\n    closeIconTemplate: TemplateRef<any> | undefined;\n\n    tabView: TabView;\n\n    constructor(@Inject(forwardRef(() => TabView)) tabView: TabView, public viewContainer: ViewContainerRef, public cd: ChangeDetectorRef) {\n        this.tabView = tabView as TabView;\n    }\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    ngOnDestroy() {\n        this.view = null;\n    }\n}\n/**\n * TabView is a container component to group content with tabs.\n * @group Components\n */\n@Component({\n    selector: 'p-tabView',\n    template: `\n        <div [ngClass]=\"{ 'p-tabview p-component': true, 'p-tabview-scrollable': scrollable }\" [ngStyle]=\"style\" [class]=\"styleClass\">\n            <div class=\"p-tabview-nav-container\">\n                <button *ngIf=\"scrollable && !backwardIsDisabled\" #prevBtn class=\"p-tabview-nav-prev p-tabview-nav-btn p-link\" (click)=\"navBackward()\" type=\"button\" pRipple>\n                    <ChevronLeftIcon *ngIf=\"!previousIconTemplate\" />\n                    <ng-template *ngTemplateOutlet=\"previousIconTemplate\"></ng-template>\n                </button>\n                <div #content class=\"p-tabview-nav-content\" (scroll)=\"onScroll($event)\">\n                    <ul #navbar class=\"p-tabview-nav\" role=\"tablist\">\n                        <ng-template ngFor let-tab [ngForOf]=\"tabs\">\n                            <li role=\"presentation\" [ngClass]=\"{ 'p-highlight': tab.selected, 'p-disabled': tab.disabled }\" [ngStyle]=\"tab.headerStyle\" [class]=\"tab.headerStyleClass\" *ngIf=\"!tab.closed\">\n                                <a\n                                    role=\"tab\"\n                                    class=\"p-tabview-nav-link\"\n                                    [attr.id]=\"tab.id + '-label'\"\n                                    [attr.aria-selected]=\"tab.selected\"\n                                    [attr.aria-controls]=\"tab.id\"\n                                    [pTooltip]=\"tab.tooltip\"\n                                    [tooltipPosition]=\"tab.tooltipPosition\"\n                                    [attr.aria-selected]=\"tab.selected\"\n                                    [positionStyle]=\"tab.tooltipPositionStyle\"\n                                    [tooltipStyleClass]=\"tab.tooltipStyleClass\"\n                                    (click)=\"open($event, tab)\"\n                                    (keydown.enter)=\"open($event, tab)\"\n                                    pRipple\n                                    [attr.tabindex]=\"tab.disabled ? null : '0'\"\n                                >\n                                    <ng-container *ngIf=\"!tab.headerTemplate\">\n                                        <span class=\"p-tabview-left-icon\" [ngClass]=\"tab.leftIcon\" *ngIf=\"tab.leftIcon && !tab.leftIconTemplate\"></span>\n                                        <span *ngIf=\"tab.leftIconTemplate\" class=\"p-tabview-left-icon\">\n                                            <ng-template *ngTemplateOutlet=\"tab.leftIconTemplate\"></ng-template>\n                                        </span>\n                                        <span class=\"p-tabview-title\">{{ tab.header }}</span>\n                                        <span class=\"p-tabview-right-icon\" [ngClass]=\"tab.rightIcon\" *ngIf=\"tab.rightIcon && !tab.rightIconTemplate\"></span>\n                                        <span *ngIf=\"tab.rightIconTemplate\" class=\"p-tabview-right-icon\">\n                                            <ng-template *ngTemplateOutlet=\"tab.rightIconTemplate\"></ng-template>\n                                        </span>\n                                    </ng-container>\n                                    <ng-container *ngTemplateOutlet=\"tab.headerTemplate\"></ng-container>\n                                    <ng-container *ngIf=\"tab.closable\">\n                                        <TimesIcon *ngIf=\"!tab.closeIconTemplate\" [styleClass]=\"'p-tabview-close'\" (click)=\"close($event, tab)\" />\n                                        <span class=\"tab.closeIconTemplate\" *ngIf=\"p - tabview - close\"></span>\n                                        <ng-template *ngTemplateOutlet=\"tab.closeIconTemplate\"></ng-template>\n                                    </ng-container>\n                                </a>\n                            </li>\n                        </ng-template>\n                        <li #inkbar class=\"p-tabview-ink-bar\"></li>\n                    </ul>\n                </div>\n                <button *ngIf=\"scrollable && !forwardIsDisabled\" #nextBtn class=\"p-tabview-nav-next p-tabview-nav-btn p-link\" (click)=\"navForward()\" type=\"button\" pRipple>\n                    <ChevronRightIcon *ngIf=\"!nextIconTemplate\" />\n                    <ng-template *ngTemplateOutlet=\"nextIconTemplate\"></ng-template>\n                </button>\n            </div>\n            <div class=\"p-tabview-panels\">\n                <ng-content></ng-content>\n            </div>\n        </div>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    styleUrls: ['./tabview.css'],\n    host: {\n        class: 'p-element'\n    }\n})\nexport class TabView implements AfterContentInit, AfterViewChecked, OnDestroy, BlockableUI {\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() 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() 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     * 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    @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | 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    nextIconTemplate: TemplateRef<any> | undefined;\n\n    previousIconTemplate: TemplateRef<any> | undefined;\n\n    constructor(@Inject(PLATFORM_ID) private platformId: any, public el: ElementRef, public cd: ChangeDetectorRef) {}\n\n    ngAfterContentInit() {\n        this.initTabs();\n\n        this.tabChangesSubscription = (this.tabPanels as QueryList<TabPanel>).changes.subscribe((_) => {\n            this.initTabs();\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    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\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    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    }\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 (this.navbar) {\n            const tabHeader: HTMLElement | null = DomHandler.findSingle(this.navbar.nativeElement, 'li.p-highlight');\n\n            if (!tabHeader) {\n                return;\n            }\n\n            (this.inkbar as ElementRef).nativeElement.style.width = DomHandler.getWidth(tabHeader) + 'px';\n            (this.inkbar as ElementRef).nativeElement.style.left = DomHandler.getOffset(tabHeader).left - DomHandler.getOffset(this.navbar.nativeElement).left + 'px';\n        }\n    }\n\n    updateScrollBar(index: number) {\n        let tabHeader = (this.navbar as ElementRef).nativeElement.children[index];\n        tabHeader.scrollIntoView({ block: 'nearest' });\n    }\n\n    updateButtonState() {\n        const content = (this.content as ElementRef).nativeElement;\n        const { scrollLeft, scrollWidth } = content;\n        const width = DomHandler.getWidth(content);\n\n        this.backwardIsDisabled = scrollLeft === 0;\n        this.forwardIsDisabled = scrollLeft === scrollWidth - width;\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 + DomHandler.getWidth(el) : acc), 0);\n    }\n\n    navBackward() {\n        const content = (this.content as ElementRef).nativeElement;\n        const width = DomHandler.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 = DomHandler.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: [CommonModule, SharedModule, TooltipModule, RippleModule, TimesIcon, ChevronLeftIcon, ChevronRightIcon],\n    exports: [TabView, TabPanel, SharedModule],\n    declarations: [TabView, TabPanel]\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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"}