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

97.1% Statements 67/69
90.9% Branches 10/11
100% Functions 4/4
97.1% Lines 67/69

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 701x 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 1x 120x 120x 120x 120x 120x 120x 120x 120x 120x 120x 120x 120x 120x 120x 120x 32x 88x 120x 1x 1x 15x 15x 1x 1x 9x 9x 9x 9x     9x 1x  
/*******************************************************************************
 * Copyright bei
 * Entwicklungs- und Pflegeverbund für das gemeinsame Fachverfahren gefa
 *
 *******************************************************************************/
import {
  ChangeDetectionStrategy,
  Component,
  ElementRef,
  computed,
  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',
  ],
  changeDetection: ChangeDetectionStrategy.Default,
  standalone: false,
})
export class AppHeaderButtonComponent implements FocusableElementOwner {
  public type = input.required<AppHeaderButtonType>();
 
  public label = input.required<string>();
 
  public description = input('');
 
  public showBadge = input(false);
 
  public readonly onSelect = output<this>();
 
  public button = viewChild<ElementRef<HTMLButtonElement>>('button');
 
  public selected = input(false);
 
  protected computeTooltip = computed(() => {
    return this.description()
      ? '**' + this.label() + '** - ' + this.description()
      : this.label();
  });
 
  public _onClick(): void {
    this.onSelect.emit(this);
  }
 
  public focusChild(): boolean {
    const button = this.button();
    if (button) {
      button.nativeElement.focus();
      return true;
    }
    return false;
  }
}