import { FocusKeyManager } from "@angular/cdk/a11y"; import { coerceNumberProperty } from "@angular/cdk/coercion"; import { AfterContentChecked, AfterContentInit, AfterViewInit, Component, ContentChildren, EventEmitter, Input, OnDestroy, Output, QueryList, ViewChildren, } from "@angular/core"; import { Subject, takeUntil } from "rxjs"; import { TabListItemDirective } from "../shared/tab-list-item.directive"; import { TabComponent } from "./tab.component"; /** Used to generate unique ID's for each tab component */ let nextId = 0; @Component({ selector: "bit-tab-group", templateUrl: "./tab-group.component.html", }) export class TabGroupComponent implements AfterContentChecked, AfterContentInit, AfterViewInit, OnDestroy { private readonly _groupId: number; private readonly destroy$ = new Subject(); private _indexToSelect: number | null = 0; /** * Aria label for the tab list menu */ @Input() label = ""; /** * Keep the content of off-screen tabs in the DOM. * Useful for keeping