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

100% Statements 79/79
100% Branches 4/4
100% Functions 4/4
100% Lines 79/79

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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 801x 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 78x 78x 78x 78x 78x 78x 78x 78x 78x 78x 78x 78x 78x 78x 78x 78x 1x 1x 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 {
  AfterViewInit,
  Component,
  ElementRef,
  EventEmitter,
  Input,
  Output,
  ViewChild,
} from '@angular/core';
 
import { FocusableElementOwner } from '../../utils/util.types';
 
import { TooltipComponent } from '../../internal/tooltip/tooltip.component';
 
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',
  ],
})
export class AppHeaderButtonComponent
  implements AfterViewInit, 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>;
 
  @ViewChild('tooltip')
  private tooltip?: TooltipComponent;
 
  public selected = false;
 
  ngAfterViewInit(): void {
    if (
      this.tooltip !== undefined &&
      this.tooltip.tooltipOwner !== this.button
    ) {
      this.tooltip.tooltipOwner = this.button;
    }
  }
 
  public _onClick(): void {
    this.onSelect.emit(this);
  }
 
  public focusChild(): boolean {
    this.button.nativeElement.focus();
    return true;
  }
}