mirror of
https://github.com/bitwarden/browser
synced 2026-02-07 12:13:45 +00:00
41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
// FIXME: Update this file to be type safe and remove this and next line
|
|
// @ts-strict-ignore
|
|
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],
|
|
})
|
|
export class BitLabel {
|
|
constructor(
|
|
private elementRef: ElementRef<HTMLInputElement>,
|
|
@Optional() private parentFormControl: FormControlComponent,
|
|
) {}
|
|
|
|
// TODO: Skipped for migration because:
|
|
// Accessor inputs cannot be migrated as they are too complex.
|
|
@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();
|
|
}
|
|
|
|
// TODO: Skipped for migration because:
|
|
// This input is used in combination with `@HostBinding` and migrating would
|
|
// break.
|
|
@HostBinding() @Input() id = `bit-label-${nextId++}`;
|
|
|
|
get isInsideFormControl() {
|
|
return !!this.parentFormControl;
|
|
}
|
|
}
|