Files
logapi_nuxt/.output/server/chunks/build/VForm-C-FITV-x.mjs
2025-06-16 09:14:36 +07:00

63 lines
1.6 KiB
JavaScript

import { ref, createVNode } from 'vue';
import { t as propsFactory, v as makeComponentProps, aU as makeFormProps, l as genericComponent, aV as createForm, o as useRender, a4 as forwardRefs } from './server.mjs';
const makeVFormProps = propsFactory({
...makeComponentProps(),
...makeFormProps()
}, "VForm");
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) => {
var _a;
let {
valid
} = _ref2;
if (valid) {
(_a = formRef.value) == null ? void 0 : _a.submit();
}
});
}
e.preventDefault();
}
useRender(() => {
var _a;
return createVNode("form", {
"ref": formRef,
"class": ["v-form", props.class],
"style": props.style,
"novalidate": true,
"onReset": onReset,
"onSubmit": onSubmit
}, [(_a = slots.default) == null ? void 0 : _a.call(slots, form)]);
});
return forwardRefs(form, formRef);
}
});
export { VForm as V };
//# sourceMappingURL=VForm-C-FITV-x.mjs.map