Aam-Digital/ndb-core

View on GitHub
src/app/core/admin/building-blocks/admin-tabs/admin-tab-template.directive.ts

Summary

Maintainability
A
0 mins
Test Coverage
F
50%
import { Directive, Input } from "@angular/core";

// following guide from https://medium.com/@thomas.laforge/ngtemplateoutlet-type-checking-5d2dcb07a2c6
// to ensure typing of ng-template context

interface AdminTabTemplateContext<T> {
  $implicit: T;
  index: number;
}

@Directive({
  selector: "ng-template[appAdminTabTemplate]",
  standalone: true,
})
export class AdminTabTemplateDirective<T> {
  @Input("appAdminTabTemplate") tabs!: T[];

  static ngTemplateContextGuard<TContext>(
    dir: AdminTabTemplateDirective<TContext>,
    ctx: unknown,
  ): ctx is AdminTabTemplateContext<TContext> {
    return true;
  }
}