import { ViewportRuler } from '@angular/cdk/scrolling' ; import { AfterContentChecked , AfterContentInit , AfterViewInit , ChangeDetectionStrategy , ChangeDetectorRef , Component , ContentChildren , Directive , ElementRef , EventEmitter , Inject , NgZone , OnDestroy , Optional , Output , QueryList , ViewChild , ViewEncapsulation , } from '@angular/core' ; import { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations' ; import { SbbPaginatedTabHeader } from './paginated-tab-header' ; import { SbbTabLabelWrapper } from './tab-label-wrapper' ; docs-private @ Directive ( ) export abstract class _SbbTabHeaderBase extends SbbPaginatedTabHeader implements AfterContentChecked , AfterContentInit , AfterViewInit , OnDestroy { constructor ( elementRef , changeDetectorRef , viewportRuler , ngZone , @ Optional ( ) @ Inject ( ANIMATION_MODULE_TYPE ) animationMode ? ) { super ( elementRef , changeDetectorRef , viewportRuler , ngZone , animationMode ) ; } protected _itemSelected ( event ) { event . preventDefault ( ) ; } } docs-private @ Component ( { selector : 'sbb-tab-header' , templateUrl : 'tab-header.html' , styleUrls : [ 'tab-header.css' ] , inputs : [ 'selectedIndex' ] , encapsulation : ViewEncapsulation . None , changeDetection : ChangeDetectionStrategy . Default , host : { class : 'sbb-tab-header' , } , } ) export class SbbTabHeader extends _SbbTabHeaderBase { @ ContentChildren ( SbbTabLabelWrapper , { descendants : false } ) _items : QueryList < SbbTabLabelWrapper > ; @ ViewChild ( 'tabListContainer' , { static : true } ) _tabListContainer : ElementRef ; @ ViewChild ( 'tabList' , { static : true } ) _tabList : ElementRef ; @ Output ( ) override selectFocusedIndex : EventEmitter < number > = new EventEmitter < number > ( ) ; @ Output ( ) override indexFocused : EventEmitter < number > = new EventEmitter < number > ( ) ; constructor ( elementRef , changeDetectorRef , viewportRuler , ngZone , @ Optional ( ) @ Inject ( ANIMATION_MODULE_TYPE ) animationMode ? ) { super ( elementRef , changeDetectorRef , viewportRuler , ngZone , animationMode ) ; } }