{"version":3,"file":"ironsource-fusion-ui-components-tabs-v4.mjs","sources":["../../../projects/fusion-ui/components/tabs/v4/tab/tab-v4.component.ts","../../../projects/fusion-ui/components/tabs/v4/tabs/tabs-v4.component.ts","../../../projects/fusion-ui/components/tabs/v4/ironsource-fusion-ui-components-tabs-v4.ts"],"sourcesContent":["import {AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, Input, Renderer2} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {GenericPipe} from '@ironsource/fusion-ui/pipes/generic';\n\nconst ATTRIBUTE_SELECTED = 'tab-selected';\nconst ATTRIBUTE_DISABLED = 'tab-disabled';\n\n@Component({\n    selector: 'fusion-tab',\n    standalone: true,\n    imports: [CommonModule, GenericPipe],\n    host: {class: 'fusion-v4'},\n    template: '<div class=\"fu-tab-content\" [attr.data-testid]=\"testId\"><ng-content></ng-content></div>',\n    styleUrls: ['./tab-v4.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TabV4Component implements AfterViewInit {\n    @Input() set selected(value: boolean) {\n        this.toggleSelected(value);\n    }\n\n    @Input() testId: string;\n\n    @Input() set disabled(value: boolean) {\n        this.toggleDisabled(value);\n    }\n\n    // need it for using @ContentChildren in tabs component\n    get nativeElement(): HTMLElement {\n        return this._element.nativeElement;\n    }\n\n    get selected(): boolean {\n        return this.nativeElement.hasAttribute(ATTRIBUTE_SELECTED);\n    }\n\n    constructor(private _element: ElementRef, private _renderer: Renderer2) {}\n\n    ngAfterViewInit() {\n        const tabsElement = this._element.nativeElement.closest('fusion-tabs');\n        if (tabsElement && (tabsElement.classList.contains('fu-size-xl') || tabsElement.classList.contains('fu-size-lg'))) {\n            this.setIconAloneClass();\n        }\n    }\n\n    private setIconAloneClass() {\n        const element = this._element.nativeElement.querySelector('.fu-tab-content');\n        if (element.querySelector('.fu-tab-icon') && !element.textContent.trim().length) {\n            this._renderer.addClass(element, 'fu-icon-alone');\n        }\n    }\n\n    private toggleSelected(isSelected: boolean): void {\n        const elementNative = this._element.nativeElement;\n        if (isSelected) {\n            this._renderer.setAttribute(elementNative, ATTRIBUTE_SELECTED, '');\n        } else {\n            this._renderer.removeAttribute(elementNative, ATTRIBUTE_SELECTED);\n        }\n    }\n\n    private toggleDisabled(isDisabled: boolean): void {\n        const elementNative = this._element.nativeElement;\n        if (isDisabled) {\n            this._renderer.setAttribute(elementNative, ATTRIBUTE_DISABLED, '');\n        } else {\n            this._renderer.removeAttribute(elementNative, ATTRIBUTE_DISABLED);\n        }\n    }\n}\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    ContentChildren,\n    ElementRef,\n    EventEmitter,\n    HostBinding,\n    Input,\n    OnDestroy,\n    OnInit,\n    Output,\n    QueryList,\n    Renderer2\n} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TabV4SelectedEventData} from './tabs-v4.entities';\nimport {fromEvent, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {TabV4Component} from '../tab/tab-v4.component';\n\n@Component({\n    selector: 'fusion-tabs',\n    standalone: true,\n    imports: [CommonModule],\n    host: {class: 'fusion-v4'},\n    template: '<ng-content></ng-content>',\n    styleUrls: ['./tabs-v4.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TabsV4Component implements OnInit, OnDestroy {\n    @Input() variant: 'card' | 'page' = 'card';\n\n    @HostBinding('class.fu-tabs-page') get isPage(): boolean {\n        return this.variant === 'page';\n    }\n\n    @Output() selectedChange = new EventEmitter<TabV4SelectedEventData>();\n    /** @internal */\n    @ContentChildren(TabV4Component) tabList: QueryList<TabV4Component>;\n    /** @internal */\n    onDestroy$ = new Subject<void>();\n    @Input() testId: string;\n\n    constructor(private _element: ElementRef, private _renderer: Renderer2) {}\n\n    ngOnInit(): void {\n        fromEvent(this._element.nativeElement, 'click').pipe(takeUntil(this.onDestroy$)).subscribe(this.onClick.bind(this));\n    }\n\n    ngOnDestroy() {\n        this.onDestroy$.next();\n        this.onDestroy$.complete();\n    }\n\n    private onClick(event) {\n        const clickedTabElement: HTMLElement = event.target.closest('fusion-tab');\n        if (clickedTabElement) {\n            const selectedTabIndex = this.setSelectedAndGetIndex(clickedTabElement);\n            this.selectedChange.emit({index: selectedTabIndex, tabElement: clickedTabElement});\n        }\n    }\n\n    private setSelectedAndGetIndex(tabElementToSelect: HTMLElement): number {\n        let selectedTabIndex;\n        this.tabList.forEach((tab: TabV4Component, idx) => {\n            if (tab.selected) {\n                tab.selected = false;\n            } else if (tab.nativeElement === tabElementToSelect) {\n                tab.selected = true;\n                selectedTabIndex = idx;\n            }\n        });\n        return selectedTabIndex;\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0"],"mappings":"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"}