import { CommonModule } from "@angular/common"; import { Component, ElementRef, HostBinding, Input, Optional } from "@angular/core"; import { FormControlComponent } from "./form-control.component"; // Increments for each instance of this component let nextId = 0; @Component({ selector: "bit-label", standalone: true, templateUrl: "label.component.html", imports: [CommonModule], }) export class BitLabel { constructor( private elementRef: ElementRef, @Optional() private parentFormControl: FormControlComponent, ) {} @HostBinding("class") @Input() get classList() { return ["tw-inline-flex", "tw-gap-1", "tw-items-baseline", "tw-flex-row", "tw-min-w-0"]; } @HostBinding("title") get title() { return this.elementRef.nativeElement.textContent.trim(); } @HostBinding() @Input() id = `bit-label-${nextId++}`; get isInsideFormControl() { return !!this.parentFormControl; } }