1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-07 04:03:29 +00:00
Files
browser/libs/components/src/form-control/label.component.ts
Oscar Hinton 9efc31534b [PM-28231] Enable component-class-suffix (#17384)
* Enable component-class-suffix

* Rename file
2025-11-18 13:26:38 +01:00

44 lines
1.1 KiB
TypeScript

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;
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@Component({
selector: "bit-label",
templateUrl: "label.component.html",
imports: [CommonModule],
host: {
"[class]": "classList",
"[id]": "id()",
},
})
export class BitLabelComponent {
constructor(
private elementRef: ElementRef<HTMLInputElement>,
@Optional() private parentFormControl: FormControlComponent,
) {}
readonly classList = [
"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() ?? "";
}
readonly id = input(`bit-label-${nextId++}`);
get isInsideFormControl() {
return !!this.parentFormControl;
}
}