UNPKG

vuetify

Version:

Vue Material Component Framework

56 lines 1.47 kB
import { createVNode as _createVNode } from "vue"; // Composables import { createForm, makeFormProps } from "../../composables/form.mjs"; import { forwardRefs } from "../../composables/forwardRefs.mjs"; // Utilities import { ref } from 'vue'; import { genericComponent, useRender } from "../../util/index.mjs"; // Types export const VForm = genericComponent()({ name: 'VForm', props: { ...makeFormProps() }, emits: { 'update:modelValue': val => true, submit: e => true }, setup(props, _ref) { let { slots, emit } = _ref; const form = createForm(props); const formRef = ref(); function onReset(e) { e.preventDefault(); form.reset(); } function onSubmit(_e) { const e = _e; const ready = form.validate(); e.then = ready.then.bind(ready); e.catch = ready.catch.bind(ready); e.finally = ready.finally.bind(ready); emit('submit', e); if (!e.defaultPrevented) { ready.then(_ref2 => { let { valid } = _ref2; if (valid) { formRef.value?.submit(); } }); } e.preventDefault(); } useRender(() => _createVNode("form", { "ref": formRef, "class": "v-form", "novalidate": true, "onReset": onReset, "onSubmit": onSubmit }, [slots.default?.(form)])); return forwardRefs(form, formRef); } }); //# sourceMappingURL=VForm.mjs.map