UNPKG

comic-plus

Version:

<p align="center"> <img width="200px" src="./logo.png"/> </p>

31 lines (30 loc) 727 B
import { inject, computed } from "vue"; import { FORMITEM_PROVIDE } from "../components/form/src/type.mjs"; function flattenArray(a) { let n = []; a.forEach((o) => { if (Array.isArray(o)) { n = n.concat(flattenArray(o)); } else { n.push(o); } }); return Array.from(new Set(n)); } function useItemValidate() { const validate = inject(FORMITEM_PROVIDE, void 0); const validateTriggers = computed(() => { return flattenArray((validate == null ? void 0 : validate.trigger) ?? []); }); const itemValidate = function(trigger) { if (validate && validateTriggers.value.includes(trigger)) { validate.fn(); } }; return { itemValidate }; } export { useItemValidate };