@stimulus-library/controllers
Version:
A library of useful controllers for Stimulus
48 lines (47 loc) • 1.3 kB
JavaScript
import { signalEventName } from "./events";
import { SignalBaseController } from "./base_controller";
export class SignalDisableController extends SignalBaseController {
get predicateString() {
return this.whenValue;
}
disable() {
this.el.setAttribute("disabled", "true");
}
enable() {
this.el.removeAttribute("disabled");
}
_onSignal(payload) {
const value = payload.value;
if (this.whenValue == "default") {
if (value == "") {
this.disable();
}
else {
this.enable();
}
return;
}
if (this.predicatesMatch(value)) {
this.dispatchEvent(this.el, signalEventName(this.nameValue, "disable"), {
detail: {
predicate: this.whenValue,
value,
},
});
this.disable();
}
else {
this.dispatchEvent(this.el, signalEventName(this.nameValue, "enable"), {
detail: {
predicate: this.whenValue,
value,
},
});
this.enable();
}
}
}
SignalDisableController.values = {
name: String,
when: String,
};