All files / lib/utils ng-directives.ts

80% Statements 28/35
100% Branches 1/1
50% Functions 1/2
80% Lines 28/35

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 361x 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  
import { Directive, TemplateRef, inject } from '@angular/core';
 
import { Item } from './util.types';
 
export interface IconTemplateContext {
  $implicit: Item;
}
 
/**
 * A directive allowing to tag template directives who get passed
 * an $implicit value which is that least of type Item
 */
@Directive({
  //eslint-disable-next-line @angular-eslint/directive-selector -- as ng-template is the prefix, data-gc is not needed for valid html rendering
  selector: 'ng-template[gc-icon]',
  standalone: false,
})
export class IconTemplateDirective {
  /**
   * @ignore
   */
  public readonly template = inject<TemplateRef<HTMLElement>>(TemplateRef);
 
  /**
   * @ignore
   */
  static ngTemplateContextGuard(
    // eslint-disable-next-line @typescript-eslint/no-unused-vars -- https://angular.dev/guide/directives/structural-directives#typing-the-directives-context
    dir: IconTemplateDirective,
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    ctx: unknown,
  ): ctx is IconTemplateContext {
    return true;
  }
}