@volverjs/form-vue 1.0.0-beta.1 → 1.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es.js +390 -349
- package/dist/index.umd.js +1 -1
- package/dist/src/VvForm.d.ts +40 -27
- package/dist/src/enums.d.ts +4 -1
- package/dist/src/index.d.ts +116 -78
- package/dist/src/types.d.ts +4 -1
- package/package.json +14 -14
- package/src/VvForm.ts +99 -60
- package/src/VvFormField.ts +1 -1
- package/src/VvFormTemplate.ts +1 -0
- package/src/VvFormWrapper.ts +1 -1
- package/src/enums.ts +3 -0
- package/src/index.ts +14 -6
- package/src/types.ts +4 -1
package/dist/index.es.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import {
|
|
3
|
-
import { ZodObject as K, ZodDefault as ue, ZodNullable as
|
|
4
|
-
function
|
|
1
|
+
import { defineComponent as z, computed as k, onMounted as D, onBeforeUnmount as j, inject as U, toRefs as P, watch as I, unref as B, provide as M, readonly as S, resolveComponent as O, defineAsyncComponent as F, h as w, ref as C, toRaw as E, isProxy as ee, withModifiers as re, getCurrentInstance as te } from "vue";
|
|
2
|
+
import { watchIgnorable as ae, throttleFilter as ne } from "@vueuse/core";
|
|
3
|
+
import { ZodObject as K, ZodDefault as ue, ZodNullable as le, ZodSchema as se, ZodArray as ie, ZodEffects as fe, ZodOptional as oe } from "zod";
|
|
4
|
+
function R(e) {
|
|
5
5
|
return Array.isArray(e);
|
|
6
6
|
}
|
|
7
|
-
function
|
|
7
|
+
function de(e) {
|
|
8
8
|
return typeof e < "u";
|
|
9
9
|
}
|
|
10
|
-
function
|
|
10
|
+
function q(e) {
|
|
11
11
|
return e === null;
|
|
12
12
|
}
|
|
13
13
|
function H(e) {
|
|
@@ -16,62 +16,62 @@ function H(e) {
|
|
|
16
16
|
function Q(e) {
|
|
17
17
|
return typeof e == "string";
|
|
18
18
|
}
|
|
19
|
-
function
|
|
19
|
+
function G(e) {
|
|
20
20
|
return typeof e > "u";
|
|
21
21
|
}
|
|
22
|
-
const
|
|
23
|
-
function
|
|
24
|
-
const
|
|
22
|
+
const ve = /^[0-9]+$/, ce = ["__proto__", "prototype", "constructor"];
|
|
23
|
+
function L(e, l, t) {
|
|
24
|
+
const o = de(t) ? t : void 0;
|
|
25
25
|
if (!H(e) || !Q(l))
|
|
26
|
-
return
|
|
27
|
-
const
|
|
28
|
-
if (
|
|
29
|
-
for (const r of
|
|
26
|
+
return o;
|
|
27
|
+
const u = Y(l);
|
|
28
|
+
if (u.length !== 0) {
|
|
29
|
+
for (const r of u) {
|
|
30
30
|
if (r === "*")
|
|
31
31
|
continue;
|
|
32
|
-
const
|
|
33
|
-
return
|
|
32
|
+
const a = function(s) {
|
|
33
|
+
return s.map((f) => G(f) || q(f) ? f : R(f) ? a(f) : f[r]);
|
|
34
34
|
};
|
|
35
|
-
if (
|
|
35
|
+
if (R(e) && !ve.test(r) ? e = a(e) : e = e[r], G(e) || q(e))
|
|
36
36
|
break;
|
|
37
37
|
}
|
|
38
|
-
return
|
|
38
|
+
return G(e) ? o : e;
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
function
|
|
41
|
+
function X(e, l, t) {
|
|
42
42
|
if (!H(e) || !Q(l))
|
|
43
43
|
return;
|
|
44
|
-
const
|
|
45
|
-
if (
|
|
44
|
+
const o = Y(l);
|
|
45
|
+
if (o.length === 0)
|
|
46
46
|
return;
|
|
47
|
-
const
|
|
48
|
-
for (let r = 0; r <
|
|
49
|
-
const
|
|
50
|
-
if (r ===
|
|
51
|
-
e[
|
|
47
|
+
const u = o.length;
|
|
48
|
+
for (let r = 0; r < u; r++) {
|
|
49
|
+
const a = o[r];
|
|
50
|
+
if (r === u - 1) {
|
|
51
|
+
e[a] = t;
|
|
52
52
|
return;
|
|
53
53
|
}
|
|
54
|
-
if (
|
|
55
|
-
const
|
|
56
|
-
for (const
|
|
57
|
-
|
|
54
|
+
if (a === "*" && R(e)) {
|
|
55
|
+
const s = o.slice(r + 1).join(".");
|
|
56
|
+
for (const f of e)
|
|
57
|
+
X(f, s, t);
|
|
58
58
|
return;
|
|
59
59
|
}
|
|
60
|
-
|
|
60
|
+
G(e[a]) && (e[a] = {}), e = e[a];
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
-
function
|
|
63
|
+
function Y(e) {
|
|
64
64
|
const l = e.split(/[.]|(?:\[(\d|\*)\])/).filter((t) => !!t);
|
|
65
|
-
return l.some((t) =>
|
|
65
|
+
return l.some((t) => ce.indexOf(t) !== -1) ? [] : l;
|
|
66
66
|
}
|
|
67
|
-
var
|
|
68
|
-
const
|
|
69
|
-
name: "
|
|
67
|
+
var d = /* @__PURE__ */ ((e) => (e.text = "text", e.number = "number", e.email = "email", e.password = "password", e.tel = "tel", e.url = "url", e.search = "search", e.date = "date", e.time = "time", e.datetimeLocal = "datetime-local", e.month = "month", e.week = "week", e.color = "color", e.select = "select", e.checkbox = "checkbox", e.radio = "radio", e.textarea = "textarea", e.radioGroup = "radioGroup", e.checkboxGroup = "checkboxGroup", e.combobox = "combobox", e.custom = "custom", e))(d || {}), x = /* @__PURE__ */ ((e) => (e.invalid = "invalid", e.valid = "valid", e.submitting = "submitting", e.updated = "updated", e.unknown = "unknown", e))(x || {});
|
|
68
|
+
const me = (e, l, t, o) => z({
|
|
69
|
+
name: "VvFormField",
|
|
70
70
|
props: {
|
|
71
71
|
type: {
|
|
72
72
|
type: String,
|
|
73
|
-
validator: (
|
|
74
|
-
default:
|
|
73
|
+
validator: (u) => Object.values(d).includes(u),
|
|
74
|
+
default: d.custom
|
|
75
75
|
},
|
|
76
76
|
is: {
|
|
77
77
|
type: [Object, String],
|
|
@@ -100,227 +100,239 @@ const ce = (e, l, t, f) => W({
|
|
|
100
100
|
},
|
|
101
101
|
emits: ["invalid", "valid", "update:formData", "update:modelValue"],
|
|
102
102
|
expose: ["invalid", "invalidLabel", "errors"],
|
|
103
|
-
setup(
|
|
104
|
-
const
|
|
103
|
+
setup(u, { slots: r, emit: a }) {
|
|
104
|
+
const s = k({
|
|
105
105
|
get() {
|
|
106
|
-
if (
|
|
107
|
-
return
|
|
108
|
-
Object(
|
|
109
|
-
String(
|
|
106
|
+
if (n != null && n.formData)
|
|
107
|
+
return L(
|
|
108
|
+
Object(n.formData.value),
|
|
109
|
+
String(u.name)
|
|
110
110
|
);
|
|
111
111
|
},
|
|
112
|
-
set(
|
|
113
|
-
|
|
114
|
-
Object(
|
|
115
|
-
String(
|
|
116
|
-
|
|
117
|
-
),
|
|
118
|
-
newValue:
|
|
119
|
-
formData:
|
|
112
|
+
set(i) {
|
|
113
|
+
n != null && n.formData && (X(
|
|
114
|
+
Object(n.formData.value),
|
|
115
|
+
String(u.name),
|
|
116
|
+
i
|
|
117
|
+
), a("update:modelValue", {
|
|
118
|
+
newValue: s.value,
|
|
119
|
+
formData: n == null ? void 0 : n.formData
|
|
120
120
|
}));
|
|
121
121
|
}
|
|
122
122
|
});
|
|
123
123
|
D(() => {
|
|
124
|
-
|
|
124
|
+
s.value === void 0 && u.defaultValue !== void 0 && (s.value = u.defaultValue);
|
|
125
125
|
}), j(() => {
|
|
126
|
-
|
|
126
|
+
y(), V();
|
|
127
127
|
});
|
|
128
|
-
const
|
|
129
|
-
|
|
130
|
-
const
|
|
131
|
-
if (
|
|
132
|
-
return
|
|
133
|
-
}),
|
|
134
|
-
var
|
|
135
|
-
return (
|
|
136
|
-
}),
|
|
137
|
-
|
|
138
|
-
|
|
128
|
+
const f = U(l, void 0);
|
|
129
|
+
f && f.fields.value.add(u.name);
|
|
130
|
+
const n = U(e), { props: c, name: b } = P(u), m = k(() => {
|
|
131
|
+
if (n != null && n.errors.value)
|
|
132
|
+
return L(n.errors.value, String(u.name));
|
|
133
|
+
}), v = k(() => {
|
|
134
|
+
var i;
|
|
135
|
+
return (i = m.value) == null ? void 0 : i._errors;
|
|
136
|
+
}), h = k(() => m.value !== void 0), y = I(h, () => {
|
|
137
|
+
h.value ? (a("invalid", v.value), f && f.errors.value.set(
|
|
138
|
+
u.name,
|
|
139
139
|
{
|
|
140
|
-
_errors:
|
|
140
|
+
_errors: v.value
|
|
141
141
|
}
|
|
142
|
-
)) : (
|
|
143
|
-
|
|
142
|
+
)) : (a("valid", s.value), f && f.errors.value.delete(
|
|
143
|
+
u.name
|
|
144
144
|
));
|
|
145
|
-
}),
|
|
146
|
-
() =>
|
|
145
|
+
}), V = I(
|
|
146
|
+
() => n == null ? void 0 : n.formData,
|
|
147
147
|
() => {
|
|
148
|
-
|
|
148
|
+
a("update:formData", n == null ? void 0 : n.formData);
|
|
149
149
|
},
|
|
150
150
|
{ deep: !0 }
|
|
151
|
-
),
|
|
152
|
-
|
|
153
|
-
},
|
|
154
|
-
let
|
|
155
|
-
return typeof
|
|
156
|
-
(
|
|
151
|
+
), g = (i) => {
|
|
152
|
+
s.value = i;
|
|
153
|
+
}, p = k(() => {
|
|
154
|
+
let i = c.value;
|
|
155
|
+
return typeof i == "function" && (i = i(n == null ? void 0 : n.formData)), Object.keys(i).reduce(
|
|
156
|
+
(_, $) => (_[$] = B(i[$]), _),
|
|
157
157
|
{}
|
|
158
158
|
);
|
|
159
|
-
}),
|
|
160
|
-
...
|
|
161
|
-
name:
|
|
162
|
-
invalid:
|
|
163
|
-
valid:
|
|
164
|
-
type: ((
|
|
159
|
+
}), A = k(() => ({
|
|
160
|
+
...p.value,
|
|
161
|
+
name: p.value.name ?? u.name,
|
|
162
|
+
invalid: h.value,
|
|
163
|
+
valid: u.showValid ? !!(!h.value && s.value) : void 0,
|
|
164
|
+
type: ((i) => {
|
|
165
165
|
if ([
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
].includes(
|
|
180
|
-
return
|
|
181
|
-
})(
|
|
182
|
-
invalidLabel:
|
|
183
|
-
modelValue:
|
|
184
|
-
"onUpdate:modelValue":
|
|
166
|
+
d.text,
|
|
167
|
+
d.number,
|
|
168
|
+
d.email,
|
|
169
|
+
d.password,
|
|
170
|
+
d.tel,
|
|
171
|
+
d.url,
|
|
172
|
+
d.search,
|
|
173
|
+
d.date,
|
|
174
|
+
d.time,
|
|
175
|
+
d.datetimeLocal,
|
|
176
|
+
d.month,
|
|
177
|
+
d.week,
|
|
178
|
+
d.color
|
|
179
|
+
].includes(i))
|
|
180
|
+
return i;
|
|
181
|
+
})(u.type),
|
|
182
|
+
invalidLabel: v.value,
|
|
183
|
+
modelValue: s.value,
|
|
184
|
+
"onUpdate:modelValue": g
|
|
185
185
|
}));
|
|
186
186
|
return M(t, {
|
|
187
|
-
name:
|
|
188
|
-
errors:
|
|
189
|
-
}), { component:
|
|
190
|
-
if (
|
|
187
|
+
name: S(b),
|
|
188
|
+
errors: S(m)
|
|
189
|
+
}), { component: k(() => {
|
|
190
|
+
if (u.type === d.custom)
|
|
191
191
|
return {
|
|
192
192
|
render() {
|
|
193
|
-
var
|
|
194
|
-
return ((
|
|
195
|
-
modelValue:
|
|
196
|
-
onUpdate:
|
|
197
|
-
submit:
|
|
198
|
-
validate:
|
|
199
|
-
invalid:
|
|
200
|
-
invalidLabel:
|
|
201
|
-
formData:
|
|
202
|
-
formErrors:
|
|
203
|
-
errors:
|
|
193
|
+
var i;
|
|
194
|
+
return ((i = r.default) == null ? void 0 : i.call(r, {
|
|
195
|
+
modelValue: s.value,
|
|
196
|
+
onUpdate: g,
|
|
197
|
+
submit: n == null ? void 0 : n.submit,
|
|
198
|
+
validate: n == null ? void 0 : n.validate,
|
|
199
|
+
invalid: h.value,
|
|
200
|
+
invalidLabel: v.value,
|
|
201
|
+
formData: n == null ? void 0 : n.formData.value,
|
|
202
|
+
formErrors: n == null ? void 0 : n.errors.value,
|
|
203
|
+
errors: m.value
|
|
204
204
|
})) ?? r.defalut;
|
|
205
205
|
}
|
|
206
206
|
};
|
|
207
|
-
if (!((
|
|
208
|
-
let
|
|
209
|
-
switch (
|
|
210
|
-
case
|
|
211
|
-
|
|
207
|
+
if (!((o == null ? void 0 : o.lazyLoad) ?? u.lazyLoad)) {
|
|
208
|
+
let i;
|
|
209
|
+
switch (u.type) {
|
|
210
|
+
case d.select:
|
|
211
|
+
i = O("VvSelect");
|
|
212
212
|
break;
|
|
213
|
-
case
|
|
214
|
-
|
|
213
|
+
case d.checkbox:
|
|
214
|
+
i = O("VvCheckbox");
|
|
215
215
|
break;
|
|
216
|
-
case
|
|
217
|
-
|
|
216
|
+
case d.radio:
|
|
217
|
+
i = O("VvRadio");
|
|
218
218
|
break;
|
|
219
|
-
case
|
|
220
|
-
|
|
219
|
+
case d.textarea:
|
|
220
|
+
i = O("VvTextarea");
|
|
221
221
|
break;
|
|
222
|
-
case
|
|
223
|
-
|
|
222
|
+
case d.radioGroup:
|
|
223
|
+
i = O("VvRadioGroup");
|
|
224
224
|
break;
|
|
225
|
-
case
|
|
226
|
-
|
|
225
|
+
case d.checkboxGroup:
|
|
226
|
+
i = O("VvCheckboxGroup");
|
|
227
227
|
break;
|
|
228
|
-
case
|
|
229
|
-
|
|
228
|
+
case d.combobox:
|
|
229
|
+
i = O("VvCombobox");
|
|
230
230
|
break;
|
|
231
231
|
default:
|
|
232
|
-
|
|
232
|
+
i = O("VvInputText");
|
|
233
233
|
}
|
|
234
|
-
if (typeof
|
|
235
|
-
return
|
|
234
|
+
if (typeof i != "string")
|
|
235
|
+
return i;
|
|
236
236
|
console.warn(
|
|
237
|
-
`[form-vue warn]: ${
|
|
237
|
+
`[form-vue warn]: ${i} not found, the component will be loaded asynchronously. To avoid this warning, please set "lazyLoad" option.`
|
|
238
238
|
);
|
|
239
239
|
}
|
|
240
240
|
return F(async () => {
|
|
241
|
-
switch (
|
|
242
|
-
case
|
|
241
|
+
switch (o != null && o.sideEffects && await Promise.resolve(o.sideEffects(u.type)), u.type) {
|
|
242
|
+
case d.textarea:
|
|
243
243
|
return import("@volverjs/ui-vue/vv-textarea");
|
|
244
|
-
case
|
|
244
|
+
case d.radio:
|
|
245
245
|
return import("@volverjs/ui-vue/vv-radio");
|
|
246
|
-
case
|
|
246
|
+
case d.radioGroup:
|
|
247
247
|
return import("@volverjs/ui-vue/vv-radio-group");
|
|
248
|
-
case
|
|
248
|
+
case d.checkbox:
|
|
249
249
|
return import("@volverjs/ui-vue/vv-checkbox");
|
|
250
|
-
case
|
|
250
|
+
case d.checkboxGroup:
|
|
251
251
|
return import("@volverjs/ui-vue/vv-checkbox-group");
|
|
252
|
-
case
|
|
252
|
+
case d.select:
|
|
253
253
|
return import("@volverjs/ui-vue/vv-select");
|
|
254
|
-
case
|
|
254
|
+
case d.combobox:
|
|
255
255
|
return import("@volverjs/ui-vue/vv-combobox");
|
|
256
256
|
}
|
|
257
257
|
return import("@volverjs/ui-vue/vv-input-text");
|
|
258
258
|
});
|
|
259
|
-
}), hasProps:
|
|
259
|
+
}), hasProps: A, invalid: h };
|
|
260
260
|
},
|
|
261
261
|
render() {
|
|
262
|
-
return this.is ?
|
|
262
|
+
return this.is ? w(this.is, this.hasProps, this.$slots) : this.type === d.custom ? w(this.component, null, this.$slots) : w(this.component, this.hasProps, this.$slots);
|
|
263
263
|
}
|
|
264
264
|
}), J = (e, l = {}) => {
|
|
265
265
|
const t = (r) => {
|
|
266
|
-
let
|
|
267
|
-
for (;
|
|
268
|
-
|
|
269
|
-
return
|
|
270
|
-
},
|
|
266
|
+
let a = r;
|
|
267
|
+
for (; a instanceof fe; )
|
|
268
|
+
a = a.innerType();
|
|
269
|
+
return a instanceof oe && (a = a._def.innerType), a;
|
|
270
|
+
}, o = t(e);
|
|
271
271
|
return {
|
|
272
|
-
...(
|
|
272
|
+
...(o instanceof K ? o._def.unknownKeys === "passthrough" : !1) ? l : {},
|
|
273
273
|
...Object.fromEntries(
|
|
274
|
-
Object.entries(
|
|
275
|
-
([r,
|
|
276
|
-
const
|
|
277
|
-
let
|
|
278
|
-
if (
|
|
279
|
-
return [r,
|
|
280
|
-
if (
|
|
281
|
-
const
|
|
282
|
-
if (
|
|
283
|
-
return [r,
|
|
274
|
+
Object.entries(o.shape).map(
|
|
275
|
+
([r, a]) => {
|
|
276
|
+
const s = l[r];
|
|
277
|
+
let f = t(a), n;
|
|
278
|
+
if (f instanceof ue && (n = f._def.defaultValue(), f = f._def.innerType), s === null && f instanceof le)
|
|
279
|
+
return [r, s];
|
|
280
|
+
if (f instanceof se) {
|
|
281
|
+
const c = a.safeParse(s);
|
|
282
|
+
if (c.success)
|
|
283
|
+
return [r, c.data ?? n];
|
|
284
284
|
}
|
|
285
|
-
if (
|
|
286
|
-
const
|
|
287
|
-
if (
|
|
285
|
+
if (f instanceof ie && Array.isArray(s) && s.length) {
|
|
286
|
+
const c = t(f._def.type);
|
|
287
|
+
if (c instanceof K)
|
|
288
288
|
return [
|
|
289
289
|
r,
|
|
290
|
-
|
|
291
|
-
(
|
|
292
|
-
|
|
293
|
-
|
|
290
|
+
s.map(
|
|
291
|
+
(b) => J(
|
|
292
|
+
c,
|
|
293
|
+
b && typeof b == "object" ? b : void 0
|
|
294
294
|
)
|
|
295
|
-
) ??
|
|
295
|
+
) ?? n
|
|
296
296
|
];
|
|
297
297
|
}
|
|
298
|
-
return
|
|
298
|
+
return f instanceof K ? [
|
|
299
299
|
r,
|
|
300
300
|
J(
|
|
301
|
-
|
|
302
|
-
|
|
301
|
+
f,
|
|
302
|
+
s && typeof s == "object" ? s : n
|
|
303
303
|
)
|
|
304
|
-
] : [r,
|
|
304
|
+
] : [r, n];
|
|
305
305
|
}
|
|
306
306
|
)
|
|
307
307
|
)
|
|
308
308
|
};
|
|
309
|
-
},
|
|
310
|
-
const
|
|
311
|
-
|
|
309
|
+
}, he = (e, l, t, o) => {
|
|
310
|
+
const u = C(), r = C(), a = C(), s = async (m = a.value) => {
|
|
311
|
+
const v = await e.safeParseAsync(m);
|
|
312
|
+
return v.success ? (u.value = void 0, r.value = x.valid, a.value = v.data, !0) : (u.value = v.error.format(), r.value = x.invalid, !1);
|
|
313
|
+
}, f = async () => await s() ? (r.value = x.submitting, !0) : !1, { ignoreUpdates: n, stop: c } = ae(
|
|
314
|
+
a,
|
|
315
|
+
() => {
|
|
316
|
+
r.value = x.updated;
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
deep: !0,
|
|
320
|
+
eventFilter: ne((t == null ? void 0 : t.updateThrottle) ?? 500)
|
|
321
|
+
}
|
|
322
|
+
), b = z({
|
|
323
|
+
name: "VvForm",
|
|
312
324
|
props: {
|
|
325
|
+
continuosValidation: {
|
|
326
|
+
type: Boolean,
|
|
327
|
+
default: !1
|
|
328
|
+
},
|
|
313
329
|
modelValue: {
|
|
314
330
|
type: Object,
|
|
315
331
|
default: () => ({})
|
|
316
332
|
},
|
|
317
|
-
|
|
318
|
-
type:
|
|
319
|
-
default:
|
|
320
|
-
},
|
|
321
|
-
continuosValidation: {
|
|
322
|
-
type: Boolean,
|
|
323
|
-
default: !1
|
|
333
|
+
tag: {
|
|
334
|
+
type: String,
|
|
335
|
+
default: "form"
|
|
324
336
|
},
|
|
325
337
|
template: {
|
|
326
338
|
type: [Array, Function],
|
|
@@ -329,98 +341,118 @@ const ce = (e, l, t, f) => W({
|
|
|
329
341
|
},
|
|
330
342
|
emits: ["invalid", "valid", "submit", "update:modelValue"],
|
|
331
343
|
expose: ["submit", "validate", "errors", "status", "valid", "invalid"],
|
|
332
|
-
setup(
|
|
333
|
-
|
|
344
|
+
setup(m, { emit: v }) {
|
|
345
|
+
a.value = J(
|
|
334
346
|
e,
|
|
335
|
-
|
|
336
|
-
),
|
|
337
|
-
() =>
|
|
338
|
-
(
|
|
339
|
-
if (
|
|
340
|
-
const
|
|
341
|
-
|
|
347
|
+
E(m.modelValue)
|
|
348
|
+
), I(
|
|
349
|
+
() => m.modelValue,
|
|
350
|
+
(y) => {
|
|
351
|
+
if (y) {
|
|
352
|
+
const V = ee(y) ? E(y) : y;
|
|
353
|
+
a.value = typeof (V == null ? void 0 : V.clone) == "function" ? V.clone() : JSON.parse(JSON.stringify(V));
|
|
342
354
|
}
|
|
343
355
|
},
|
|
344
356
|
{ deep: !0 }
|
|
345
|
-
),
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
throttle: (t == null ? void 0 : t.updateThrottle) ?? s.updateThrottle
|
|
357
|
+
), I(r, async (y) => {
|
|
358
|
+
var V, g, p, A, W;
|
|
359
|
+
if (y === x.invalid) {
|
|
360
|
+
const i = E(
|
|
361
|
+
u.value
|
|
362
|
+
);
|
|
363
|
+
v("invalid", i), (V = t == null ? void 0 : t.onInvalid) == null || V.call(t, i);
|
|
364
|
+
return;
|
|
354
365
|
}
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
366
|
+
if (y === x.valid) {
|
|
367
|
+
const i = E(a.value);
|
|
368
|
+
v("valid", i), (g = t == null ? void 0 : t.onValid) == null || g.call(t, i), v("update:modelValue", i), (p = t == null ? void 0 : t.onUpdate) == null || p.call(t, i);
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
if (y === x.submitting) {
|
|
372
|
+
const i = E(a.value);
|
|
373
|
+
v("submit", i), (A = t == null ? void 0 : t.onSubmit) == null || A.call(t, i);
|
|
374
|
+
}
|
|
375
|
+
if (y === x.updated) {
|
|
376
|
+
if ((u.value || t != null && t.continuosValidation || m.continuosValidation) && await s(), !a.value || !m.modelValue || JSON.stringify(a.value) !== JSON.stringify(m.modelValue)) {
|
|
377
|
+
const i = E(
|
|
378
|
+
a.value
|
|
379
|
+
);
|
|
380
|
+
v("update:modelValue", i), (W = t == null ? void 0 : t.onUpdate) == null || W.call(t, i);
|
|
381
|
+
}
|
|
382
|
+
r.value === x.updated && (r.value = x.unknown);
|
|
383
|
+
}
|
|
384
|
+
});
|
|
385
|
+
const h = k(() => r.value === x.invalid);
|
|
364
386
|
return M(l, {
|
|
365
|
-
formData:
|
|
366
|
-
submit:
|
|
367
|
-
validate:
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
387
|
+
formData: a,
|
|
388
|
+
submit: f,
|
|
389
|
+
validate: s,
|
|
390
|
+
ignoreUpdates: n,
|
|
391
|
+
stopUpdatesWatch: c,
|
|
392
|
+
errors: S(u),
|
|
393
|
+
status: S(r),
|
|
394
|
+
invalid: h
|
|
371
395
|
}), {
|
|
372
|
-
formData:
|
|
373
|
-
submit:
|
|
374
|
-
validate:
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
396
|
+
formData: a,
|
|
397
|
+
submit: f,
|
|
398
|
+
validate: s,
|
|
399
|
+
ignoreUpdates: n,
|
|
400
|
+
stopUpdatesWatch: c,
|
|
401
|
+
errors: S(u),
|
|
402
|
+
status: S(r),
|
|
403
|
+
invalid: h
|
|
378
404
|
};
|
|
379
405
|
},
|
|
380
406
|
render() {
|
|
381
|
-
const
|
|
382
|
-
var
|
|
383
|
-
return ((
|
|
407
|
+
const m = () => {
|
|
408
|
+
var v, h;
|
|
409
|
+
return ((h = (v = this.$slots) == null ? void 0 : v.default) == null ? void 0 : h.call(v, {
|
|
384
410
|
formData: this.formData,
|
|
385
411
|
submit: this.submit,
|
|
386
412
|
validate: this.validate,
|
|
413
|
+
ignoreUpdates: this.ignoreUpdates,
|
|
414
|
+
stopUpdatesWatch: this.stopUpdatesWatch,
|
|
387
415
|
errors: this.errors,
|
|
388
416
|
status: this.status,
|
|
389
417
|
invalid: this.invalid
|
|
390
418
|
})) ?? this.$slots.default;
|
|
391
419
|
};
|
|
392
|
-
return
|
|
393
|
-
|
|
420
|
+
return w(
|
|
421
|
+
this.tag,
|
|
394
422
|
{
|
|
395
423
|
onSubmit: re(this.submit, ["prevent"])
|
|
396
424
|
},
|
|
397
|
-
(this.template ?? (t == null ? void 0 : t.template)) &&
|
|
398
|
-
|
|
399
|
-
|
|
425
|
+
(this.template ?? (t == null ? void 0 : t.template)) && o ? [
|
|
426
|
+
w(
|
|
427
|
+
o,
|
|
400
428
|
{
|
|
401
429
|
schema: this.template ?? (t == null ? void 0 : t.template)
|
|
402
430
|
},
|
|
403
431
|
{
|
|
404
|
-
default:
|
|
432
|
+
default: m
|
|
405
433
|
}
|
|
406
434
|
)
|
|
407
435
|
] : {
|
|
408
|
-
default:
|
|
436
|
+
default: m
|
|
409
437
|
}
|
|
410
438
|
);
|
|
411
439
|
}
|
|
412
440
|
});
|
|
413
441
|
return {
|
|
414
|
-
errors:
|
|
442
|
+
errors: u,
|
|
415
443
|
status: r,
|
|
416
|
-
formData:
|
|
444
|
+
formData: a,
|
|
445
|
+
validate: s,
|
|
446
|
+
submit: f,
|
|
447
|
+
ignoreUpdates: n,
|
|
448
|
+
stopUpdatesWatch: c,
|
|
417
449
|
/**
|
|
418
450
|
* An hack to add types to the default slot
|
|
419
451
|
*/
|
|
420
|
-
VvForm:
|
|
452
|
+
VvForm: b
|
|
421
453
|
};
|
|
422
|
-
},
|
|
423
|
-
name: "
|
|
454
|
+
}, be = (e, l) => z({
|
|
455
|
+
name: "VvFormWrapper",
|
|
424
456
|
props: {
|
|
425
457
|
name: {
|
|
426
458
|
type: String,
|
|
@@ -433,51 +465,51 @@ const ce = (e, l, t, f) => W({
|
|
|
433
465
|
},
|
|
434
466
|
emits: ["invalid", "valid"],
|
|
435
467
|
expose: ["fields", "invalid"],
|
|
436
|
-
setup(
|
|
437
|
-
const r =
|
|
468
|
+
setup(o, { emit: u }) {
|
|
469
|
+
const r = U(e), a = U(l, void 0), s = C(/* @__PURE__ */ new Set()), f = C(/* @__PURE__ */ new Map()), { name: n } = P(o);
|
|
438
470
|
M(l, {
|
|
439
|
-
name:
|
|
440
|
-
errors:
|
|
441
|
-
fields:
|
|
442
|
-
}),
|
|
443
|
-
|
|
444
|
-
(
|
|
445
|
-
|
|
446
|
-
|
|
471
|
+
name: S(n),
|
|
472
|
+
errors: f,
|
|
473
|
+
fields: s
|
|
474
|
+
}), I(
|
|
475
|
+
s,
|
|
476
|
+
(b) => {
|
|
477
|
+
a != null && a.fields && b.forEach((m) => {
|
|
478
|
+
a == null || a.fields.value.add(m);
|
|
447
479
|
});
|
|
448
480
|
},
|
|
449
481
|
{ deep: !0 }
|
|
450
|
-
),
|
|
451
|
-
() => new Map(
|
|
452
|
-
(
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
}), Array.from(
|
|
456
|
-
const
|
|
457
|
-
|
|
482
|
+
), I(
|
|
483
|
+
() => new Map(f.value),
|
|
484
|
+
(b, m) => {
|
|
485
|
+
a != null && a.errors && (Array.from(m.keys()).forEach((v) => {
|
|
486
|
+
a.errors.value.delete(v);
|
|
487
|
+
}), Array.from(b.keys()).forEach((v) => {
|
|
488
|
+
const h = b.get(v);
|
|
489
|
+
h && a.errors.value.set(v, h);
|
|
458
490
|
}));
|
|
459
491
|
},
|
|
460
492
|
{ deep: !0 }
|
|
461
493
|
);
|
|
462
|
-
const
|
|
463
|
-
return
|
|
464
|
-
|
|
494
|
+
const c = k(() => r != null && r.invalid.value ? f.value.size > 0 : !1);
|
|
495
|
+
return I(c, () => {
|
|
496
|
+
c.value ? u("invalid") : u("valid");
|
|
465
497
|
}), {
|
|
466
498
|
formData: r == null ? void 0 : r.formData,
|
|
467
499
|
errors: r == null ? void 0 : r.errors,
|
|
468
500
|
submit: r == null ? void 0 : r.submit,
|
|
469
501
|
validate: r == null ? void 0 : r.validate,
|
|
470
|
-
invalid:
|
|
471
|
-
fields:
|
|
472
|
-
fieldsErrors:
|
|
502
|
+
invalid: c,
|
|
503
|
+
fields: s,
|
|
504
|
+
fieldsErrors: f
|
|
473
505
|
};
|
|
474
506
|
},
|
|
475
507
|
render() {
|
|
476
|
-
var
|
|
477
|
-
return this.tag ?
|
|
508
|
+
var o, u;
|
|
509
|
+
return this.tag ? w(this.tag, null, {
|
|
478
510
|
default: () => {
|
|
479
|
-
var r,
|
|
480
|
-
return ((
|
|
511
|
+
var r, a;
|
|
512
|
+
return ((a = (r = this.$slots).default) == null ? void 0 : a.call(r, {
|
|
481
513
|
invalid: this.invalid,
|
|
482
514
|
formData: this.formData,
|
|
483
515
|
submit: this.submit,
|
|
@@ -486,7 +518,7 @@ const ce = (e, l, t, f) => W({
|
|
|
486
518
|
fieldsErrors: this.fieldsErrors
|
|
487
519
|
})) ?? this.$slots.defalut;
|
|
488
520
|
}
|
|
489
|
-
}) : ((
|
|
521
|
+
}) : ((u = (o = this.$slots).default) == null ? void 0 : u.call(o, {
|
|
490
522
|
invalid: this.invalid,
|
|
491
523
|
formData: this.formData,
|
|
492
524
|
submit: this.submit,
|
|
@@ -496,74 +528,75 @@ const ce = (e, l, t, f) => W({
|
|
|
496
528
|
})) ?? this.$slots.defalut;
|
|
497
529
|
}
|
|
498
530
|
}), ye = (e, l) => {
|
|
499
|
-
const t =
|
|
531
|
+
const t = z({
|
|
532
|
+
name: "VvFormTemplate",
|
|
500
533
|
props: {
|
|
501
534
|
schema: {
|
|
502
535
|
type: [Array, Function],
|
|
503
536
|
required: !0
|
|
504
537
|
}
|
|
505
538
|
},
|
|
506
|
-
setup(
|
|
507
|
-
const r =
|
|
539
|
+
setup(o, { slots: u }) {
|
|
540
|
+
const r = U(e);
|
|
508
541
|
if (r != null && r.formData)
|
|
509
542
|
return () => {
|
|
510
|
-
var
|
|
511
|
-
const
|
|
512
|
-
let
|
|
513
|
-
const
|
|
514
|
-
const
|
|
515
|
-
vvIs:
|
|
516
|
-
vvName:
|
|
517
|
-
vvSlots:
|
|
518
|
-
vvChildren:
|
|
519
|
-
vvIf:
|
|
520
|
-
vvElseIf:
|
|
521
|
-
vvType:
|
|
522
|
-
vvDefaultValue:
|
|
523
|
-
vvShowValid:
|
|
524
|
-
vvContent:
|
|
525
|
-
|
|
526
|
-
} =
|
|
527
|
-
if (
|
|
528
|
-
if (typeof
|
|
543
|
+
var n;
|
|
544
|
+
const a = typeof o.schema == "function" ? o.schema(r) : o.schema;
|
|
545
|
+
let s;
|
|
546
|
+
const f = a.reduce((c, b) => {
|
|
547
|
+
const m = typeof b == "function" ? b(r) : b, {
|
|
548
|
+
vvIs: v,
|
|
549
|
+
vvName: h,
|
|
550
|
+
vvSlots: y,
|
|
551
|
+
vvChildren: V,
|
|
552
|
+
vvIf: g,
|
|
553
|
+
vvElseIf: p,
|
|
554
|
+
vvType: A,
|
|
555
|
+
vvDefaultValue: W,
|
|
556
|
+
vvShowValid: i,
|
|
557
|
+
vvContent: _,
|
|
558
|
+
...$
|
|
559
|
+
} = m;
|
|
560
|
+
if (g !== void 0) {
|
|
561
|
+
if (typeof g == "string" ? s = !!L(
|
|
529
562
|
Object(r.formData.value),
|
|
530
|
-
|
|
531
|
-
) : typeof
|
|
532
|
-
return
|
|
533
|
-
} else if (
|
|
534
|
-
if (
|
|
563
|
+
g
|
|
564
|
+
) : typeof g == "function" ? s = B(g(r)) : s = B(g), !s)
|
|
565
|
+
return c;
|
|
566
|
+
} else if (p !== void 0 && s !== void 0) {
|
|
567
|
+
if (s || (typeof p == "string" ? s = !!L(
|
|
535
568
|
Object(r.formData.value),
|
|
536
|
-
|
|
537
|
-
) : typeof
|
|
538
|
-
return
|
|
569
|
+
p
|
|
570
|
+
) : typeof p == "function" ? s = B(p(r)) : s = B(p), !s))
|
|
571
|
+
return c;
|
|
539
572
|
} else
|
|
540
|
-
|
|
541
|
-
const Z =
|
|
542
|
-
schema:
|
|
573
|
+
s = void 0;
|
|
574
|
+
const Z = V ? w(t, {
|
|
575
|
+
schema: V
|
|
543
576
|
}) : void 0;
|
|
544
|
-
return
|
|
545
|
-
|
|
577
|
+
return h ? (c.push(
|
|
578
|
+
w(
|
|
546
579
|
l,
|
|
547
580
|
{
|
|
548
|
-
name:
|
|
549
|
-
is:
|
|
550
|
-
type:
|
|
551
|
-
defaultValue:
|
|
552
|
-
showValid:
|
|
553
|
-
props:
|
|
581
|
+
name: h,
|
|
582
|
+
is: v,
|
|
583
|
+
type: A,
|
|
584
|
+
defaultValue: W,
|
|
585
|
+
showValid: i,
|
|
586
|
+
props: $
|
|
554
587
|
},
|
|
555
|
-
|
|
588
|
+
y ?? Z ?? _
|
|
556
589
|
)
|
|
557
|
-
),
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
590
|
+
), c) : v ? (c.push(
|
|
591
|
+
w(
|
|
592
|
+
v,
|
|
593
|
+
$,
|
|
594
|
+
y ?? Z ?? _
|
|
562
595
|
)
|
|
563
|
-
),
|
|
596
|
+
), c) : (V && c.push(Z), c);
|
|
564
597
|
}, []);
|
|
565
|
-
return
|
|
566
|
-
(
|
|
598
|
+
return f.push(
|
|
599
|
+
(n = u == null ? void 0 : u.default) == null ? void 0 : n.call(u, {
|
|
567
600
|
formData: r == null ? void 0 : r.formData.value,
|
|
568
601
|
submit: r == null ? void 0 : r.submit,
|
|
569
602
|
validate: r == null ? void 0 : r.validate,
|
|
@@ -571,58 +604,66 @@ const ce = (e, l, t, f) => W({
|
|
|
571
604
|
status: r == null ? void 0 : r.status.value,
|
|
572
605
|
invalid: r == null ? void 0 : r.invalid.value
|
|
573
606
|
})
|
|
574
|
-
),
|
|
607
|
+
), f;
|
|
575
608
|
};
|
|
576
609
|
}
|
|
577
610
|
});
|
|
578
611
|
return t;
|
|
579
|
-
},
|
|
580
|
-
const t = Symbol(),
|
|
612
|
+
}, N = (e, l = {}) => {
|
|
613
|
+
const t = Symbol(), o = Symbol(), u = Symbol(), r = be(
|
|
581
614
|
t,
|
|
582
|
-
|
|
583
|
-
),
|
|
615
|
+
o
|
|
616
|
+
), a = me(
|
|
584
617
|
t,
|
|
585
|
-
|
|
586
|
-
|
|
618
|
+
o,
|
|
619
|
+
u,
|
|
587
620
|
l
|
|
588
|
-
),
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
621
|
+
), s = ye(t, a), {
|
|
622
|
+
VvForm: f,
|
|
623
|
+
errors: n,
|
|
624
|
+
status: c,
|
|
625
|
+
formData: b,
|
|
626
|
+
validate: m,
|
|
627
|
+
submit: v,
|
|
628
|
+
ignoreUpdates: h,
|
|
629
|
+
stopUpdatesWatch: y
|
|
630
|
+
} = he(e, t, l, s);
|
|
594
631
|
return {
|
|
595
|
-
VvForm:
|
|
632
|
+
VvForm: f,
|
|
596
633
|
VvFormWrapper: r,
|
|
597
|
-
VvFormField:
|
|
598
|
-
VvFormTemplate:
|
|
634
|
+
VvFormField: a,
|
|
635
|
+
VvFormTemplate: s,
|
|
599
636
|
formInjectionKey: t,
|
|
600
|
-
formWrapperInjectionKey:
|
|
601
|
-
formFieldInjectionKey:
|
|
602
|
-
errors:
|
|
603
|
-
status:
|
|
604
|
-
formData:
|
|
637
|
+
formWrapperInjectionKey: o,
|
|
638
|
+
formFieldInjectionKey: u,
|
|
639
|
+
errors: n,
|
|
640
|
+
status: c,
|
|
641
|
+
formData: b,
|
|
642
|
+
validate: m,
|
|
643
|
+
submit: v,
|
|
644
|
+
ignoreUpdates: h,
|
|
645
|
+
stopUpdatesWatch: y
|
|
605
646
|
};
|
|
606
|
-
},
|
|
647
|
+
}, T = Symbol(), xe = (e) => {
|
|
607
648
|
let l = {};
|
|
608
|
-
return e.schema && (l =
|
|
649
|
+
return e.schema && (l = N(e.schema, e)), {
|
|
609
650
|
...l,
|
|
610
|
-
install(t, { global:
|
|
611
|
-
t.provide(
|
|
651
|
+
install(t, { global: o = !1 } = {}) {
|
|
652
|
+
t.provide(T, e), o && (t.config.globalProperties.$vvForm = e, l != null && l.VvForm && t.component("VvForm", l.VvForm), l != null && l.VvFormWrapper && t.component("VvFormWrapper", l.VvFormWrapper), l != null && l.VvFormField && t.component("VvFormField", l.VvFormField), l != null && l.VvFormTemplate && t.component("VvFormTemplate", l.VvFormTemplate));
|
|
612
653
|
}
|
|
613
654
|
};
|
|
614
|
-
}, ke = (e, l = {}) => te() ?
|
|
655
|
+
}, ke = (e, l = {}) => te() ? N(
|
|
615
656
|
e,
|
|
616
657
|
{
|
|
617
|
-
...
|
|
658
|
+
...U(T, {}),
|
|
618
659
|
...l
|
|
619
660
|
}
|
|
620
|
-
) :
|
|
661
|
+
) : N(e, l), we = (e, l = {}) => N(e, l);
|
|
621
662
|
export {
|
|
622
|
-
|
|
663
|
+
d as FormFieldType,
|
|
623
664
|
xe as createForm,
|
|
624
665
|
J as defaultObjectBySchema,
|
|
625
666
|
we as formFactory,
|
|
626
|
-
|
|
667
|
+
T as pluginInjectionKey,
|
|
627
668
|
ke as useForm
|
|
628
669
|
};
|