import { ChangeDetectionStrategy, Component, ContentChildren, ElementRef, EventEmitter, HostBinding, Input, Output, QueryList, Renderer2 } from '@angular/core';
import { CommonModule } from '@angular/common';
import { fromEvent, Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { TabV4Component } from '../tab/tab-v4.component';
import * as i0 from "@angular/core";
const _c0 = ["*"];
export class TabsV4Component {
    get isPage() {
        return this.variant === 'page';
    }
    constructor(_element, _renderer) {
        this._element = _element;
        this._renderer = _renderer;
        this.variant = 'card';
        this.selectedChange = new EventEmitter();
        /** @internal */
        this.onDestroy$ = new Subject();
    }
    ngOnInit() {
        fromEvent(this._element.nativeElement, 'click').pipe(takeUntil(this.onDestroy$)).subscribe(this.onClick.bind(this));
    }
    ngOnDestroy() {
        this.onDestroy$.next();
        this.onDestroy$.complete();
    }
    onClick(event) {
        const clickedTabElement = event.target.closest('fusion-tab');
        if (clickedTabElement) {
            const selectedTabIndex = this.setSelectedAndGetIndex(clickedTabElement);
            this.selectedChange.emit({ index: selectedTabIndex, tabElement: clickedTabElement });
        }
    }
    setSelectedAndGetIndex(tabElementToSelect) {
        let selectedTabIndex;
        this.tabList.forEach((tab, idx) => {
            if (tab.selected) {
                tab.selected = false;
            }
            else if (tab.nativeElement === tabElementToSelect) {
                tab.selected = true;
                selectedTabIndex = idx;
            }
        });
        return selectedTabIndex;
    }
    static { this.ɵfac = function TabsV4Component_Factory(t) { return new (t || TabsV4Component)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2)); }; }
    static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TabsV4Component, selectors: [["fusion-tabs"]], contentQueries: function TabsV4Component_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
            i0.ɵɵcontentQuery(dirIndex, TabV4Component, 4);
        } if (rf & 2) {
            let _t;
            i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabList = _t);
        } }, hostAttrs: [1, "fusion-v4"], hostVars: 2, hostBindings: function TabsV4Component_HostBindings(rf, ctx) { if (rf & 2) {
            i0.ɵɵclassProp("fu-tabs-page", ctx.isPage);
        } }, inputs: { variant: "variant", testId: "testId" }, outputs: { selectedChange: "selectedChange" }, standalone: true, features: [i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function TabsV4Component_Template(rf, ctx) { if (rf & 1) {
            i0.ɵɵprojectionDef();
            i0.ɵɵprojection(0);
        } }, dependencies: [CommonModule], styles: [".fusion-v4[_ngcontent-%COMP%]{--background-default: #FFFFFF;--background-paper: hsl(0, 0%, 99%);--background-model-elevation: #FFFFFF;--background-backdrop: hsla(0, 0%, 0%, .11);--background-paper-elevation-0: hsl(0, 0%, 97.5%);--background-paper-elevation-1: hsl(0, 0%, 94.6%);--background-paper-elevation-2: hsl(0, 0%, 92%);--background-paper-elevation-3: hsl(0, 0%, 89.5%);--background-paper-elevation-4: hsl(0, 0%, 86.8%);--background-paper-elevation-5: hsl(0, 0%, 83%);--background-paper-elevation-6: hsl(0, 0%, 73.2%);--background-paper-elevation-7: hsl(0, 0%, 55.2%);--background-paper-elevation-8: hsl(0, 0%, 50.3%);--background-paper-elevation-9: hsl(0, 0%, 39.3%);--action-primary: hsl(0, 0%, 12.5%);--action-active: hsl(0, 0%, 50.3%);--action-hover: hsla(0, 0%, 0%, .05);--action-selected: hsl(0, 0%, 92%);--action-disabled: hsl(0, 0%, 87%);--action-disabled-background: hsl(0, 0%, 95%);--action-focus: hsl(0, 0%, 92%);--action-outlined-border: hsl(0, 0%, 73%);--default-light: hsl(0, 0%, 89.5%);--default-main: hsl(0, 0%, 94.51%);--default-dark: hsl(0, 0%, 92%);--default-outlined-border: hsl(0, 0%, 73.2%);--default-contrast-text: hsl(0, 0%, 12.5%);--default-button-contrast-text: hsl(0, 0%, 0%);--common-white: #FFFFFF;--common-black: #000000;--common-inverse-white: #FFFFFF;--common-inverse-black: #000000;--common-divider: hsl(0, 0%, 86.8%);--common-divider-elevation-0: hsl(0, 0%, 89%);--text-primary: hsl(0, 0%, 12.5%);--text-secondary: hsl(0, 0%, 39.3%);--text-disabled: hsl(0, 0%, 73.33%);--primary-lighter: hsl(209, 100%, 96.5%);--primary-light: hsl(209, 95%, 90.1%);--primary-main: hsl(206, 100%, 50%);--primary-main-8-p: hsla(206, 100%, 50%, .08);--primary-main-50-p: hsla(206, 100%, 50%, .5);--primary-dark: hsl(208, 93.5%, 47.4%);--primary-darker: hsl(211, 90%, 42%);--primary-outlined-border: hsl(206, 100%, 50%);--primary-contrast-text: hsl(216, 71%, 23%);--primary-button-contrast-text: hsl(0, 0%, 100%);--info-lighter: hsl(223, 98.4%, 97.1%);--info-light: hsl(224, 87.1%, 92%);--info-main: hsl(226, 70%, 55.5%);--info-main-8-p: hsla(226, 70%, 55.5%, .08);--info-main-50-p: hsla(226, 70%, 55.5%, .5);--info-dark: hsl(226, 58.6%, 51.3%);--info-darker: hsl(226, 55%, 45%);--info-outlined-border: hsl(226, 70%, 55.5%);--info-contrast-text: hsl(226, 50%, 24%);--info-button-contrast-text: hsl(0, 0%, 100%);--success-lighter: hsl(139, 55.2%, 94.5%);--success-light: hsl(141, 43.7%, 86%);--success-main: hsl(151, 55%, 41.5%);--success-main-8-p: hsla(151, 55%, 41.5%, .08);--success-main-50-p: hsla(151, 55%, 41.5%, .5);--success-dark: hsl(152, 57.5%, 37.6%);--success-darker: hsl(153, 67%, 28.5%);--success-outlined-border: hsl(151, 55%, 41.5%);--success-contrast-text: hsl(155, 40%, 16.5%);--success-button-contrast-text: hsl(0, 0%, 100%);--warning-lighter: hsl(45, 100%, 90.8%);--warning-light: hsl(40, 100%, 81.5%);--warning-main: hsl(42, 100%, 62%);--warning-main-8-p: hsla(42, 100%, 62%, .08);--warning-main-50-p: hsla(42, 100%, 62%, .5);--warning-dark: hsl(42, 100%, 55%);--warning-darker: hsl(25, 50%, 38%);--warning-outlined-border: hsl(42, 100%, 62%);--warning-contrast-text: hsl(25, 40%, 22%);--warning-button-contrast-text: hsl(24, 40%, 22%);--error-lighter: hsl(0, 100%, 96.8%);--error-light: hsl(0, 90.2%, 91.9%);--error-main: hsl(358, 75%, 59%);--error-main-8-p: hsla(358, 75%, 59%, .08);--error-main-50-p: hsla(358, 75%, 59%, .5);--error-dark: hsl(358, 67.4%, 54.6%);--error-darker: hsl(358, 65%, 47%);--error-outlined-border: hsl(358, 75%, 59%);--error-contrast-text: hsl(350, 63%, 24%);--error-button-contrast-text: hsl(0, 0%, 100%);--aba: #FFC134;--abb: #4F4FF5}[_nghost-%COMP%]{margin:0;padding:0;display:flex;align-items:center;box-sizing:border-box}.fu-tabs-page[_nghost-%COMP%]{gap:16px;border-bottom:1px solid var(--common-divider, hsl(0, 0%, 86.8%));box-sizing:border-box}"], changeDetection: 0 }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TabsV4Component, [{
        type: Component,
        args: [{ selector: 'fusion-tabs', standalone: true, imports: [CommonModule], host: { class: 'fusion-v4' }, template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, styles: [".fusion-v4{--background-default: #FFFFFF;--background-paper: hsl(0, 0%, 99%);--background-model-elevation: #FFFFFF;--background-backdrop: hsla(0, 0%, 0%, .11);--background-paper-elevation-0: hsl(0, 0%, 97.5%);--background-paper-elevation-1: hsl(0, 0%, 94.6%);--background-paper-elevation-2: hsl(0, 0%, 92%);--background-paper-elevation-3: hsl(0, 0%, 89.5%);--background-paper-elevation-4: hsl(0, 0%, 86.8%);--background-paper-elevation-5: hsl(0, 0%, 83%);--background-paper-elevation-6: hsl(0, 0%, 73.2%);--background-paper-elevation-7: hsl(0, 0%, 55.2%);--background-paper-elevation-8: hsl(0, 0%, 50.3%);--background-paper-elevation-9: hsl(0, 0%, 39.3%);--action-primary: hsl(0, 0%, 12.5%);--action-active: hsl(0, 0%, 50.3%);--action-hover: hsla(0, 0%, 0%, .05);--action-selected: hsl(0, 0%, 92%);--action-disabled: hsl(0, 0%, 87%);--action-disabled-background: hsl(0, 0%, 95%);--action-focus: hsl(0, 0%, 92%);--action-outlined-border: hsl(0, 0%, 73%);--default-light: hsl(0, 0%, 89.5%);--default-main: hsl(0, 0%, 94.51%);--default-dark: hsl(0, 0%, 92%);--default-outlined-border: hsl(0, 0%, 73.2%);--default-contrast-text: hsl(0, 0%, 12.5%);--default-button-contrast-text: hsl(0, 0%, 0%);--common-white: #FFFFFF;--common-black: #000000;--common-inverse-white: #FFFFFF;--common-inverse-black: #000000;--common-divider: hsl(0, 0%, 86.8%);--common-divider-elevation-0: hsl(0, 0%, 89%);--text-primary: hsl(0, 0%, 12.5%);--text-secondary: hsl(0, 0%, 39.3%);--text-disabled: hsl(0, 0%, 73.33%);--primary-lighter: hsl(209, 100%, 96.5%);--primary-light: hsl(209, 95%, 90.1%);--primary-main: hsl(206, 100%, 50%);--primary-main-8-p: hsla(206, 100%, 50%, .08);--primary-main-50-p: hsla(206, 100%, 50%, .5);--primary-dark: hsl(208, 93.5%, 47.4%);--primary-darker: hsl(211, 90%, 42%);--primary-outlined-border: hsl(206, 100%, 50%);--primary-contrast-text: hsl(216, 71%, 23%);--primary-button-contrast-text: hsl(0, 0%, 100%);--info-lighter: hsl(223, 98.4%, 97.1%);--info-light: hsl(224, 87.1%, 92%);--info-main: hsl(226, 70%, 55.5%);--info-main-8-p: hsla(226, 70%, 55.5%, .08);--info-main-50-p: hsla(226, 70%, 55.5%, .5);--info-dark: hsl(226, 58.6%, 51.3%);--info-darker: hsl(226, 55%, 45%);--info-outlined-border: hsl(226, 70%, 55.5%);--info-contrast-text: hsl(226, 50%, 24%);--info-button-contrast-text: hsl(0, 0%, 100%);--success-lighter: hsl(139, 55.2%, 94.5%);--success-light: hsl(141, 43.7%, 86%);--success-main: hsl(151, 55%, 41.5%);--success-main-8-p: hsla(151, 55%, 41.5%, .08);--success-main-50-p: hsla(151, 55%, 41.5%, .5);--success-dark: hsl(152, 57.5%, 37.6%);--success-darker: hsl(153, 67%, 28.5%);--success-outlined-border: hsl(151, 55%, 41.5%);--success-contrast-text: hsl(155, 40%, 16.5%);--success-button-contrast-text: hsl(0, 0%, 100%);--warning-lighter: hsl(45, 100%, 90.8%);--warning-light: hsl(40, 100%, 81.5%);--warning-main: hsl(42, 100%, 62%);--warning-main-8-p: hsla(42, 100%, 62%, .08);--warning-main-50-p: hsla(42, 100%, 62%, .5);--warning-dark: hsl(42, 100%, 55%);--warning-darker: hsl(25, 50%, 38%);--warning-outlined-border: hsl(42, 100%, 62%);--warning-contrast-text: hsl(25, 40%, 22%);--warning-button-contrast-text: hsl(24, 40%, 22%);--error-lighter: hsl(0, 100%, 96.8%);--error-light: hsl(0, 90.2%, 91.9%);--error-main: hsl(358, 75%, 59%);--error-main-8-p: hsla(358, 75%, 59%, .08);--error-main-50-p: hsla(358, 75%, 59%, .5);--error-dark: hsl(358, 67.4%, 54.6%);--error-darker: hsl(358, 65%, 47%);--error-outlined-border: hsl(358, 75%, 59%);--error-contrast-text: hsl(350, 63%, 24%);--error-button-contrast-text: hsl(0, 0%, 100%);--aba: #FFC134;--abb: #4F4FF5}:host{margin:0;padding:0;display:flex;align-items:center;box-sizing:border-box}:host.fu-tabs-page{gap:16px;border-bottom:1px solid var(--common-divider, hsl(0, 0%, 86.8%));box-sizing:border-box}\n"] }]
    }], () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], { variant: [{
            type: Input
        }], isPage: [{
            type: HostBinding,
            args: ['class.fu-tabs-page']
        }], selectedChange: [{
            type: Output
        }], tabList: [{
            type: ContentChildren,
            args: [TabV4Component]
        }], testId: [{
            type: Input
        }] }); })();
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TabsV4Component, { className: "TabsV4Component", filePath: "tabs/tabs-v4.component.ts", lineNumber: 30 }); })();
//# sourceMappingURL=data:application/json;base64, 