v-required
Version:
Componente Vue 3 para validação reativa de formulários, facilitando a criação de formulários dinâmicos e interativos com regras de validação personalizáveis.
38 lines (37 loc) • 1.42 kB
JavaScript
function a(e, r, u = !1) {
if (r === void 0)
throw new Error("v-required precisa de um parâmetro, no mínimo o list");
if (typeof r != "object")
throw new Error("v-required precisa receber um objeto como parâmetro");
if (!("list" in r))
throw new Error("v-required precisa do parâmetro list no objeto");
if (!Array.isArray(r.list))
throw new Error("v-required precisa que o parâmetro list seja um array");
let o;
u ? (o = document.createElement("span"), e.appendChild(o), o.classList.add("v-required-span"), e.classList.add("style-custom-v-required-default")) : o = e.querySelector(".v-required-span");
let i = !1;
if (!("activeError" in r) || r.activeError) {
const s = r.list;
for (let t = 0; t < s.length; t++)
if ("condition" in s[t]) {
if (s[t].condition) {
i = !0, o && (o.innerHTML = s[t].message, e.classList.add("style-custom-v-required-error"));
break;
}
} else throw new Error(
"v-required precisa que todos os erros de list, tenham uma condition"
);
i || o && (o.innerHTML = "", e.classList.remove("style-custom-v-required-error"));
} else "activeError" in r && !r.activeError && o && (o.innerHTML = "", e.classList.remove("style-custom-v-required-error"));
}
const c = {
mounted(e, r) {
a(e, r.value, !0);
},
updated(e, r) {
a(e, r.value);
}
};
export {
c as vRequired
};