UNPKG

@stimulus-library/controllers

Version:

A library of useful controllers for Stimulus

47 lines (46 loc) 1.46 kB
import { BaseController, requestReset, requestSubmit } from "@stimulus-library/utilities"; export class FormRcController extends BaseController { get _mode() { if (this.hasSubmitModeValue) { if (!["direct", "request"].includes(this.submitModeValue)) { throw new Error(`The modeValue provided '${this.submitModeValue}' is not one of the recognised configuration options`); } return this.submitModeValue; } else { return "request"; } } get form() { let form; if (this.hasFormSelectorValue) { form = document.querySelector(this.formSelectorValue); if (!form) { throw new Error(`Could not find a form on the page that matches selector '${this.formSelectorValue}'`); } } else { form = this.formTarget; } return form; } submit(event) { event === null || event === void 0 ? void 0 : event.preventDefault(); const el = this.form; if (this._mode == "request") { requestSubmit(el); } else { el.submit(); } } reset(event) { event === null || event === void 0 ? void 0 : event.preventDefault(); requestReset(this.form); } } FormRcController.targets = ["form"]; FormRcController.values = { formSelector: String, submitMode: String, };