UNPKG

@stimulus-components/rails-nested-form

Version:

A Stimulus controller to create new fields on the fly to populate your Rails relationship.

34 lines (33 loc) 1.16 kB
import { Controller } from "@hotwired/stimulus"; const _RailsNestedForm = class _RailsNestedForm extends Controller { add(e) { e.preventDefault(); const content = this.templateTarget.innerHTML.replace(/NEW_RECORD/g, (/* @__PURE__ */ new Date()).getTime().toString()); this.targetTarget.insertAdjacentHTML("beforebegin", content); const event = new CustomEvent("rails-nested-form:add", { bubbles: !0 }); this.element.dispatchEvent(event); } remove(e) { e.preventDefault(); const wrapper = e.target.closest(this.wrapperSelectorValue); if (wrapper.dataset.newRecord === "true") wrapper.remove(); else { wrapper.style.display = "none"; const input = wrapper.querySelector("input[name*='_destroy']"); input.value = "1"; } const event = new CustomEvent("rails-nested-form:remove", { bubbles: !0 }); this.element.dispatchEvent(event); } }; _RailsNestedForm.targets = ["target", "template"], _RailsNestedForm.values = { wrapperSelector: { type: String, default: ".nested-form-wrapper" } }; let RailsNestedForm = _RailsNestedForm; export { RailsNestedForm as default };