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 | 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 | 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; } } |