{"version":3,"file":"ironsource-fusion-ui-components-tabs.mjs","sources":["../../../projects/fusion-ui/components/tabs/v3/tab/tab.component.ts","../../../projects/fusion-ui/components/tabs/v3/tabs/tabs.component.ts","../../../projects/fusion-ui/components/tabs/v3/tabs.module.ts","../../../projects/fusion-ui/components/tabs/ironsource-fusion-ui-components-tabs.ts"],"sourcesContent":["import {AfterViewInit, Component, ElementRef, Input, Renderer2} from '@angular/core';\n\nconst ATTRIBUTE_SELECTED = 'tab-selected';\nconst ATTRIBUTE_DISABLED = 'tab-disabled';\n\n@Component({\n    selector: 'fusion-tab',\n    template: '<div class=\"fu-tab-content\"><ng-content></ng-content></div>',\n    styleUrls: ['./tab.component.scss']\n})\nexport class TabComponent implements AfterViewInit {\n    @Input() set selected(value: boolean) {\n        this.toggleSelected(value);\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    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 {Component, ContentChildren, ElementRef, EventEmitter, OnDestroy, OnInit, Output, QueryList, Renderer2} from '@angular/core';\nimport {fromEvent, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {TabSelectedEventData} from './tabs.entities';\nimport {TabComponent} from '../tab/tab.component';\n\n@Component({\n    selector: 'fusion-tabs',\n    template: '<ng-content></ng-content>',\n    styleUrls: ['./tabs.component.scss']\n})\nexport class TabsComponent implements OnInit, OnDestroy {\n    @Output() selectedChange = new EventEmitter<TabSelectedEventData>();\n    /** @internal */\n    @ContentChildren(TabComponent) tabList: QueryList<TabComponent>;\n    /** @internal */\n    onDestroy$ = new Subject<void>();\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: TabComponent, 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","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TabsComponent} from './tabs/tabs.component';\nimport {TabComponent} from './tab/tab.component';\n\n@NgModule({\n    declarations: [TabsComponent, TabComponent],\n    exports: [TabsComponent, TabComponent],\n    imports: [CommonModule]\n})\nexport class TabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0"],"mappings":"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"}