All files / lib/internal angular-directives.ts

100% Statements 40/40
100% Branches 10/10
100% Functions 7/7
100% Lines 40/40

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 411x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 329x 329x 329x 329x 329x 329x 1x 1x 329x 329x 329x 1x 1x 1x 1x 1x 1x 1x 1x 1x 135765x 135765x 1x  
import {
  AfterContentInit,
  Directive,
  EventEmitter,
  Output,
  TemplateRef,
} from '@angular/core';
 
/**
 * Directive to execute code once a node with *ngIf is attached in the DOM
 * Usage:
 * ```
 * <div *ngIf="my_condition" (data-gc-after-if)="_handleAttach()">
 *   <!-- -->
 * </div>
 * ```
 */
@Directive({
  selector: '[data-gc-after-if]',
})
export class AfterIfDirective implements AfterContentInit {
  @Output('data-gc-after-if')
  public readonly after: EventEmitter<void> = new EventEmitter<void>();
 
  public ngAfterContentInit(): void {
    // timeout helps prevent unexpected change errors
    setTimeout(() => this.after.next());
  }
}
 
@Directive({
  selector: 'ng-template', // eslint-disable-line @angular-eslint/directive-selector -- targets Angular builtin component (i.e. target not part of the library)
})
export class TemplateDirective {
  public template: TemplateRef<unknown>;
 
  constructor(private readonly templateRef: TemplateRef<unknown>) {
    this.template = this.templateRef;
  }
}