All files / lib/internal angular-directives.ts

100% Statements 42/42
100% Branches 0/0
100% Functions 0/0
100% Lines 42/42

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 431x 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  
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]',
  standalone: false,
})
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)
  standalone: false,
})
export class TemplateDirective {
  public template: TemplateRef<unknown>;
 
  constructor(private readonly templateRef: TemplateRef<unknown>) {
    this.template = this.templateRef;
  }
}