All files / lib/app-header/app-header-button app-header-button.component.ts

100% Statements 63/63
100% Branches 9/9
100% Functions 5/5
100% Lines 63/63

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 641x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 78x 78x 78x 78x 78x 78x 78x 78x 78x 78x 78x 78x 78x 78x 78x 78x 78x 1x 1x 15x 15x 1x 1x 1x 1x 1x 1x  
/*******************************************************************************
 * Copyright bei
 * Entwicklungs- und Pflegeverbund für das gemeinsame Fachverfahren gefa
 *
 *******************************************************************************/
import {
  Component,
  ElementRef,
  EventEmitter,
  Input,
  Output,
  ViewChild,
} from '@angular/core';
 
import { FocusableElementOwner } from '../../utils/util.types';
 
export type AppHeaderButtonType =
  | 'menu'
  | 'search'
  | 'calendar'
  | 'notifications'
  | 'person'
  | 'help';
 
@Component({
  selector: 'gc-app-header-button',
  templateUrl: './app-header-button.component.html',
  styleUrls: [
    './../../utils/styles/reset-button.css',
    './app-header-button.component.css',
  ],
  standalone: false,
})
export class AppHeaderButtonComponent implements FocusableElementOwner {
  @Input({ required: true })
  public type!: AppHeaderButtonType;
 
  @Input()
  public label = '';
 
  @Input()
  public description = '';
 
  @Input()
  public showBadge = false;
 
  @Output()
  public readonly onSelect: EventEmitter<this> = new EventEmitter<this>();
 
  @ViewChild('button')
  public button!: ElementRef<HTMLButtonElement>;
 
  public selected = false;
 
  public _onClick(): void {
    this.onSelect.emit(this);
  }
 
  public focusChild(): boolean {
    this.button.nativeElement.focus();
    return true;
  }
}