UNPKG

vuetify

Version:

Vue Material Component Framework

60 lines 1.68 kB
import { createVNode as _createVNode } from "vue"; // Composables import { makeComponentProps } from "../../composables/component.js"; import { createForm, makeFormProps } from "../../composables/form.js"; import { forwardRefs } from "../../composables/forwardRefs.js"; // Utilities import { ref } from 'vue'; import { genericComponent, propsFactory, useRender } from "../../util/index.js"; // Types export const makeVFormProps = propsFactory({ ...makeComponentProps(), ...makeFormProps() }, 'VForm'); export const VForm = genericComponent()({ name: 'VForm', props: makeVFormProps(), 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', props.class], "style": props.style, "novalidate": true, "onReset": onReset, "onSubmit": onSubmit }, [slots.default?.(form)])); return forwardRefs(form, formRef); } }); //# sourceMappingURL=VForm.js.map