123 lines
3.3 KiB
JavaScript
123 lines
3.3 KiB
JavaScript
|
import {
|
||
|
H as e,
|
||
|
I as a,
|
||
|
ae as r,
|
||
|
ad as t,
|
||
|
v as n,
|
||
|
J as o,
|
||
|
K as l,
|
||
|
aE as s,
|
||
|
bm as i,
|
||
|
Q as d,
|
||
|
} from "./index-476be0bb.js";
|
||
|
const [m, u] = e("form");
|
||
|
const c = d(
|
||
|
a({
|
||
|
name: m,
|
||
|
props: {
|
||
|
colon: Boolean,
|
||
|
disabled: Boolean,
|
||
|
readonly: Boolean,
|
||
|
showError: Boolean,
|
||
|
labelWidth: o,
|
||
|
labelAlign: String,
|
||
|
inputAlign: String,
|
||
|
scrollToError: Boolean,
|
||
|
validateFirst: Boolean,
|
||
|
submitOnEnter: l,
|
||
|
showErrorMessage: l,
|
||
|
errorMessageAlign: String,
|
||
|
validateTrigger: { type: [String, Array], default: "onBlur" },
|
||
|
},
|
||
|
emits: ["submit", "failed"],
|
||
|
setup(e, { emit: a, slots: o }) {
|
||
|
const { children: l, linkChildren: d } = r(i),
|
||
|
m = (e) => (e ? l.filter((a) => e.includes(a.name)) : l),
|
||
|
c = (a) => {
|
||
|
return "string" == typeof a
|
||
|
? ((e) => {
|
||
|
const a = l.find((a) => a.name === e);
|
||
|
return a
|
||
|
? new Promise((e, r) => {
|
||
|
a.validate().then((a) => {
|
||
|
a ? r(a) : e();
|
||
|
});
|
||
|
})
|
||
|
: Promise.reject();
|
||
|
})(a)
|
||
|
: e.validateFirst
|
||
|
? ((r = a),
|
||
|
new Promise((e, a) => {
|
||
|
const t = [];
|
||
|
m(r)
|
||
|
.reduce(
|
||
|
(e, a) =>
|
||
|
e.then(() => {
|
||
|
if (!t.length)
|
||
|
return a.validate().then((e) => {
|
||
|
e && t.push(e);
|
||
|
});
|
||
|
}),
|
||
|
Promise.resolve()
|
||
|
)
|
||
|
.then(() => {
|
||
|
t.length ? a(t) : e();
|
||
|
});
|
||
|
}))
|
||
|
: ((e) =>
|
||
|
new Promise((a, r) => {
|
||
|
const t = m(e);
|
||
|
Promise.all(t.map((e) => e.validate())).then((e) => {
|
||
|
(e = e.filter(Boolean)).length ? r(e) : a();
|
||
|
});
|
||
|
}))(a);
|
||
|
var r;
|
||
|
},
|
||
|
g = (e, a) => {
|
||
|
l.some((r) => r.name === e && (r.$el.scrollIntoView(a), !0));
|
||
|
},
|
||
|
h = () =>
|
||
|
l.reduce(
|
||
|
(e, a) => (void 0 !== a.name && (e[a.name] = a.formValue.value), e),
|
||
|
{}
|
||
|
),
|
||
|
f = () => {
|
||
|
const r = h();
|
||
|
c()
|
||
|
.then(() => a("submit", r))
|
||
|
.catch((t) => {
|
||
|
a("failed", { values: r, errors: t }),
|
||
|
e.scrollToError && t[0].name && g(t[0].name);
|
||
|
});
|
||
|
},
|
||
|
v = (e) => {
|
||
|
s(e), f();
|
||
|
};
|
||
|
return (
|
||
|
d({ props: e }),
|
||
|
t({
|
||
|
submit: f,
|
||
|
validate: c,
|
||
|
getValues: h,
|
||
|
scrollToField: g,
|
||
|
resetValidation: (e) => {
|
||
|
"string" == typeof e && (e = [e]);
|
||
|
m(e).forEach((e) => {
|
||
|
e.resetValidation();
|
||
|
});
|
||
|
},
|
||
|
getValidationStatus: () =>
|
||
|
l.reduce((e, a) => ((e[a.name] = a.getValidationStatus()), e), {}),
|
||
|
}),
|
||
|
() => {
|
||
|
var e;
|
||
|
return n("form", { class: u(), onSubmit: v }, [
|
||
|
null == (e = o.default) ? void 0 : e.call(o),
|
||
|
]);
|
||
|
}
|
||
|
);
|
||
|
},
|
||
|
})
|
||
|
);
|
||
|
export { c as F };
|