@stimulus-library/controllers
Version:
A library of useful controllers for Stimulus
35 lines (34 loc) • 1.02 kB
JavaScript
import { signalEventName } from "./events";
import { SignalBaseController } from "./base_controller";
export class SignalActionController extends SignalBaseController {
get predicateString() {
return this.whenValue;
}
_onSignal(payload) {
const value = payload.value;
if (!this.hasWhenValue) {
this.dispatchEvent(this.el, signalEventName(this.nameValue, "match"));
return;
}
if (this.predicatesMatch(value)) {
this.dispatchEvent(this.el, signalEventName(this.nameValue, "match"), {
detail: {
element: this.el,
value,
},
});
}
else {
this.dispatchEvent(this.el, signalEventName(this.nameValue, "no-match"), {
detail: {
element: this.el,
value,
},
});
}
}
}
SignalActionController.values = {
name: String,
when: String,
};