1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-08 20:50:28 +00:00
Files
browser/libs/components/src/form-control/label.component.ts
Will Martin 827c4c0301 [PM-15847] libs/components strict migration (#15738)
This PR migrates `libs/components` to use strict TypeScript.

- Remove `@ts-strict-ignore` from each file in `libs/components` and resolved any new compilation errors
- Converted ViewChild and ContentChild decorators to use the new signal-based queries using the [Angular signal queries migration](https://angular.dev/reference/migrations/signal-queries)
  - Made view/content children `required` where appropriate, eliminating the need for additional null checking. This helped simplify the strict migration.

---

Co-authored-by: Vicki League <vleague@bitwarden.com>
2025-08-18 15:36:45 -04:00

42 lines
967 B
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;
@Component({
selector: "bit-label",
templateUrl: "label.component.html",
imports: [CommonModule],
host: {
"[class]": "classList",
"[id]": "id()",
},
})
export class BitLabel {
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;
}
}