mirror of
https://github.com/bitwarden/browser
synced 2025-12-12 06:13:38 +00:00
54 lines
1.2 KiB
TypeScript
54 lines
1.2 KiB
TypeScript
import { Component, HostBinding, Input } from "@angular/core";
|
|
|
|
import { FormControlModule } from "../form-control/form-control.module";
|
|
|
|
import { RadioGroupComponent } from "./radio-group.component";
|
|
import { RadioInputComponent } from "./radio-input.component";
|
|
|
|
let nextId = 0;
|
|
|
|
@Component({
|
|
selector: "bit-radio-button",
|
|
templateUrl: "radio-button.component.html",
|
|
imports: [FormControlModule, RadioInputComponent],
|
|
})
|
|
export class RadioButtonComponent {
|
|
@HostBinding("attr.id") @Input() id = `bit-radio-button-${nextId++}`;
|
|
@HostBinding("class") get classList() {
|
|
return [this.block ? "tw-block" : "tw-inline-block", "tw-mb-1", "[&_bit-hint]:tw-mt-0"];
|
|
}
|
|
|
|
@Input() value: unknown;
|
|
@Input() disabled = false;
|
|
|
|
constructor(private groupComponent: RadioGroupComponent) {}
|
|
|
|
get inputId() {
|
|
return `${this.id}-input`;
|
|
}
|
|
|
|
get name() {
|
|
return this.groupComponent.name;
|
|
}
|
|
|
|
get selected() {
|
|
return this.groupComponent.selected === this.value;
|
|
}
|
|
|
|
get groupDisabled() {
|
|
return this.groupComponent.disabled;
|
|
}
|
|
|
|
get block() {
|
|
return this.groupComponent.block;
|
|
}
|
|
|
|
protected onInputChange() {
|
|
this.groupComponent.onInputChange(this.value);
|
|
}
|
|
|
|
protected onBlur() {
|
|
this.groupComponent.onBlur();
|
|
}
|
|
}
|