UNPKG

@stimulus-library/controllers

Version:

A library of useful controllers for Stimulus

48 lines (47 loc) 1.3 kB
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, };