@stimulus-library/controllers
Version:
A library of useful controllers for Stimulus
33 lines (32 loc) • 856 B
JavaScript
import { BaseController } from "@stimulus-library/utilities";
export class CheckboxEnableInputsController extends BaseController {
connect() {
this.toggle();
}
toggle() {
if (this.hasEnablerTarget && this.enablerTarget.checked) {
this.enable();
}
else {
this.disable();
}
}
disable() {
const shouldClear = this.hasClearValue && this.clearValue;
this.enableTargets.forEach((el, _) => {
if (shouldClear) {
el.value = "";
}
el.disabled = true;
});
}
enable() {
this.enableTargets.forEach((el, _) => {
el.disabled = false;
});
}
}
CheckboxEnableInputsController.targets = ["enabler", "enable"];
CheckboxEnableInputsController.values = {
clear: Boolean,
};