{"version":3,"file":"tstdl-angular-host-class.mjs","sources":["../../../../projects/tstdl/angular/host-class/source/host-class.directive.ts","../../../../projects/tstdl/angular/host-class/tstdl-angular-host-class.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\nimport { ChangeDetectorRef, Directive, type DoCheck, ElementRef, Input, Renderer2, type Signal, computed, effect, inject, isSignal, signal } from '@angular/core';\nimport type { Record } from '@tstdl/base/types';\nimport { type ValueOrProvider, resolveValueOrProvider } from '@tstdl/base/utils';\n\nexport type HostClassInput = string | string[] | Set<string> | Record<string> | null | undefined;\n\n@Directive({\n  selector: '[tslHostClass]',\n  standalone: true\n})\nexport class TslHostClass implements DoCheck {\n  readonly #ngClass = new NgClass(inject(ElementRef), inject(Renderer2));\n  readonly #changeDetector = inject(ChangeDetectorRef);\n  readonly #classes = signal<HostClassInput>(null);\n\n  @Input()\n  get classes(): HostClassInput {\n    return this.#classes();\n  }\n\n  set classes(classes: HostClassInput) {\n    this.#classes.set(classes);\n  }\n\n  constructor() {\n    effect(() => {\n      this.#ngClass.ngClass = this.#classes();\n      this.#ngClass.ngDoCheck();\n      this.#changeDetector.markForCheck();\n    });\n  }\n\n  ngDoCheck(): void {\n    this.#ngClass.ngDoCheck();\n  }\n}\n\nexport function hostClass(classes: ValueOrProvider<HostClassInput> | Signal<HostClassInput>): TslHostClass {\n  const instance = new TslHostClass();\n  const inputSignal = isSignal(classes) ? classes as Signal<HostClassInput> : computed(() => resolveValueOrProvider(classes));\n\n  effect(() => (instance.classes = inputSignal()));\n\n  return instance;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAWa,YAAY,CAAA;AACd,IAAA,QAAQ,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;AAC7D,IAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC3C,IAAA,QAAQ,GAAG,MAAM,CAAiB,IAAI,+EAAC;AAEhD,IAAA,IACI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;IACxB;IAEA,IAAI,OAAO,CAAC,OAAuB,EAAA;AACjC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;IAC5B;AAEA,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE;AACvC,YAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;AACzB,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;AACrC,QAAA,CAAC,CAAC;IACJ;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;IAC3B;8GAxBW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE;AACb,iBAAA;;sBAME;;AAsBG,SAAU,SAAS,CAAC,OAAiE,EAAA;AACzF,IAAA,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE;IACnC,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAiC,GAAG,QAAQ,CAAC,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAE3H,IAAA,MAAM,CAAC,OAAO,QAAQ,CAAC,OAAO,GAAG,WAAW,EAAE,CAAC,CAAC;AAEhD,IAAA,OAAO,QAAQ;AACjB;;AC7CA;;AAEG;;;;"}