UNPKG

on-codemerge

Version:

A WYSIWYG editor for on-codemerge is a user-friendly interface that allows users to edit and view their code in real time, exactly as it will appear in the final product

49 lines (48 loc) 2.39 kB
import { createContainer as s, createLabel as h, createButton as m, createFileInput as x, createCheckbox as g, createSelectField as A, createTextarea as k, createInputField as L } from "../../../utils/helpers.mjs"; class S { createField(f) { var b; const { type: c, label: t, options: e, validation: r } = f, l = s("form-field"), u = h(t, e == null ? void 0 : e.id); let a = null; switch (c) { case "text": case "email": case "password": case "number": case "color": case "date": case "time": case "range": a = L(c, e == null ? void 0 : e.placeholder, e == null ? void 0 : e.value); break; case "textarea": a = k(e == null ? void 0 : e.placeholder, e == null ? void 0 : e.value); break; case "select": a = A( ((b = e == null ? void 0 : e.options) == null ? void 0 : b.map((d) => ({ value: d, label: d }))) || [], e == null ? void 0 : e.value ), e != null && e.multiple && a.setAttribute("multiple", "true"); break; case "checkbox": case "radio": a = g(t, (e == null ? void 0 : e.value) === "true"), e != null && e.name && a.setAttribute("name", e.name); break; case "file": a = x(e == null ? void 0 : e.multiple); break; case "button": case "submit": case "reset": a = m(t, () => { }, c); break; default: return null; } return e != null && e.autocomplete && (a == null || a.setAttribute("autocomplete", e.autocomplete)), e != null && e.readonly && (a == null || a.setAttribute("readonly", "true")), e != null && e.disabled && (a == null || a.setAttribute("disabled", "true")), r != null && r.pattern && (a == null || a.setAttribute("pattern", r.pattern)), r != null && r.minLength && (a == null || a.setAttribute("minlength", r.minLength.toString())), r != null && r.maxLength && (a == null || a.setAttribute("maxlength", r.maxLength.toString())), r != null && r.min && (a == null || a.setAttribute("min", r.min.toString())), r != null && r.max && (a == null || a.setAttribute("max", r.max.toString())), e != null && e.className && (a == null || a.classList.add(e.className)), e != null && e.id && (a == null || a.setAttribute("id", e.id)), l.appendChild(u), a && l.appendChild(a), l; } } export { S as FieldBuilder };