All files / lib/content-tile content-tile.component.ts

100% Statements 72/72
100% Branches 3/3
100% Functions 2/2
100% Lines 72/72

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 731x 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 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 16x 16x 16x 1x 1x 1x 2x 2x 1x  
/*******************************************************************************
 * Copyright bei
 * Entwicklungs- und Pflegeverbund für das gemeinsame Fachverfahren gefa
 *
 *******************************************************************************/
import { Component, Input, TemplateRef } from '@angular/core';
 
import { badgeListAsString } from '../utils/internal-utils';
import { BadgeItem } from '../utils/util.types';
 
import { BadgeItemTemplateContext } from '../badge-list/badge-list.component';
import {
  DynamicHeadingLevelPassthroughService,
  DynamicHeadingLevelService,
} from '../dynamic-heading/dynamic-heading-level.service';
 
let UNIQUE_ID = 0;
 
/**
 * Content Tile component that renders it's content in a white container with shadow.
 * If in interactive mode it can act similar to an Accordion.
 */
@Component({
  selector: 'gc-content-tile',
  templateUrl: './content-tile.component.html',
  styleUrls: ['./content-tile.component.css'],
  providers: [DynamicHeadingLevelService],
  viewProviders: [
    {
      provide: DynamicHeadingLevelService,
      useClass: DynamicHeadingLevelPassthroughService,
    },
  ],
})
export class ContentTileComponent {
  /**
   * Title shown in the header
   */
  @Input()
  public label = '';
 
  /**
   * Control if the section is interactive.
   */
  @Input()
  public interactive = false;
 
  /**
   * Badge items to display in the header
   */
  @Input()
  public badgeItems: readonly BadgeItem[] = [];
 
  /**
   * Icon provider for badge
   */
  @Input()
  public badgeIconProvider?: TemplateRef<BadgeItemTemplateContext>;
 
  /** @ignore */
  public readonly _noninteractiveHeaderId;
 
  constructor() {
    this._noninteractiveHeaderId =
      'gc-content-tile-header-' + (UNIQUE_ID++).toString();
  }
 
  /** @ignore */
  protected _badgeScreenReaderText(): string {
    return ' - ' + badgeListAsString(this.badgeItems);
  }
}