@vanstack/solid-ark 0.0.37 → 0.0.39
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/data-table/index.mjs +6 -2
- package/dist/data-table/type.d.ts +1 -1
- package/dist/form/index.mjs +1 -1
- package/dist/form-jqVwcqEp.js +1166 -0
- package/package.json +2 -2
- package/dist/FormDatePicker-Cazd9kkD.js +0 -434
- package/dist/FormSelect-BDZATc3u.js +0 -103
- package/dist/form/components/FieldSkeleton.d.ts +0 -1
- package/dist/form-D59udNG7.js +0 -658
|
@@ -0,0 +1,1166 @@
|
|
|
1
|
+
import "./solid-ark.css";
|
|
2
|
+
import { Index as e, Portal as t, className as n, createComponent as r, delegateEvents as i, effect as a, insert as o, memo as s, setAttribute as c, style as l, template as u } from "solid-js/web";
|
|
3
|
+
import { For as d, Index as f, Show as p, createEffect as m, createMemo as h, createSignal as g, createUniqueId as _, mergeProps as v, on as y, onCleanup as b } from "solid-js";
|
|
4
|
+
import { Field as x } from "@ark-ui/solid/field";
|
|
5
|
+
import { createForm as ee } from "@tanstack/solid-form";
|
|
6
|
+
import { Checkbox as S } from "@ark-ui/solid/checkbox";
|
|
7
|
+
import { DatePicker as C, useDatePicker as w } from "@ark-ui/solid/date-picker";
|
|
8
|
+
import { CalendarDate as T, CalendarDateTime as E, endOfWeek as te, parseDate as ne, startOfWeek as D } from "@internationalized/date";
|
|
9
|
+
import { RadioGroup as O } from "@ark-ui/solid/radio-group";
|
|
10
|
+
import { Select as k, createListCollection as A } from "@ark-ui/solid/select";
|
|
11
|
+
import { Switch as j } from "@ark-ui/solid/switch";
|
|
12
|
+
import { deepEqual as M } from "fast-equals";
|
|
13
|
+
//#region src/form/components/FormCheckbox.tsx
|
|
14
|
+
var N = /*#__PURE__*/ u("<svg class=van-form-check-icon fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=3 viewBox=\"0 0 24 24\"><path d=\"M5 12l5 5l10 -10\">");
|
|
15
|
+
function re(e) {
|
|
16
|
+
return r(S.Root, {
|
|
17
|
+
get checked() {
|
|
18
|
+
return e.value ?? !1;
|
|
19
|
+
},
|
|
20
|
+
class: "van-form-checkbox-root",
|
|
21
|
+
get id() {
|
|
22
|
+
return e.controlId;
|
|
23
|
+
},
|
|
24
|
+
onCheckedChange: (t) => e.onChange(t.checked === !0),
|
|
25
|
+
get children() {
|
|
26
|
+
return [
|
|
27
|
+
r(S.Control, {
|
|
28
|
+
class: "van-form-checkbox-control",
|
|
29
|
+
get children() {
|
|
30
|
+
return r(S.Indicator, {
|
|
31
|
+
class: "van-form-checkbox-indicator",
|
|
32
|
+
get children() {
|
|
33
|
+
return N();
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}),
|
|
38
|
+
s(() => s(() => !!e.label)() && r(S.Label, {
|
|
39
|
+
class: "van-form-checkbox-label",
|
|
40
|
+
get children() {
|
|
41
|
+
return e.label;
|
|
42
|
+
}
|
|
43
|
+
})),
|
|
44
|
+
r(S.HiddenInput, {})
|
|
45
|
+
];
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//#endregion
|
|
50
|
+
//#region src/form/components/FormCheckboxGroup.tsx
|
|
51
|
+
var ie = /*#__PURE__*/ u("<svg class=van-form-check-icon fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=3 viewBox=\"0 0 24 24\"><path d=\"M5 12l5 5l10 -10\">");
|
|
52
|
+
function ae(t) {
|
|
53
|
+
return r(S.Group, {
|
|
54
|
+
class: "van-form-checkbox-group",
|
|
55
|
+
get id() {
|
|
56
|
+
return t.controlId;
|
|
57
|
+
},
|
|
58
|
+
onValueChange: (e) => t.onChange(e),
|
|
59
|
+
value: () => Array.isArray(t.value) ? t.value : [],
|
|
60
|
+
get children() {
|
|
61
|
+
return r(e, {
|
|
62
|
+
get each() {
|
|
63
|
+
return t.field.options;
|
|
64
|
+
},
|
|
65
|
+
children: (e) => r(S.Root, {
|
|
66
|
+
class: "van-form-checkbox-root",
|
|
67
|
+
get id() {
|
|
68
|
+
return `${t.controlId}-item-${e().value}`;
|
|
69
|
+
},
|
|
70
|
+
get ids() {
|
|
71
|
+
return {
|
|
72
|
+
hiddenInput: `${t.controlId}-${e().value}`,
|
|
73
|
+
label: `${t.controlId}-${e().value}-label`
|
|
74
|
+
};
|
|
75
|
+
},
|
|
76
|
+
get value() {
|
|
77
|
+
return e().value;
|
|
78
|
+
},
|
|
79
|
+
get children() {
|
|
80
|
+
return [
|
|
81
|
+
r(S.Control, {
|
|
82
|
+
class: "van-form-checkbox-control",
|
|
83
|
+
get children() {
|
|
84
|
+
return r(S.Indicator, {
|
|
85
|
+
class: "van-form-checkbox-indicator",
|
|
86
|
+
get children() {
|
|
87
|
+
return ie();
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}),
|
|
92
|
+
r(S.Label, {
|
|
93
|
+
class: "van-form-checkbox-label",
|
|
94
|
+
get children() {
|
|
95
|
+
return e().label;
|
|
96
|
+
}
|
|
97
|
+
}),
|
|
98
|
+
r(S.HiddenInput, {})
|
|
99
|
+
];
|
|
100
|
+
}
|
|
101
|
+
})
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
//#endregion
|
|
107
|
+
//#region src/form/components/FormDatePicker.tsx
|
|
108
|
+
var oe = /*#__PURE__*/ u("<svg fill=none height=14 stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 viewBox=\"0 0 24 24\"width=14 xmlns=http://www.w3.org/2000/svg><path d=\"M18 6 6 18\"></path><path d=\"m6 6 12 12\">"), se = /*#__PURE__*/ u("<svg fill=none height=16 stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 viewBox=\"0 0 24 24\"width=16 xmlns=http://www.w3.org/2000/svg><path d=\"M8 2v4\"></path><path d=\"M16 2v4\"></path><rect height=18 rx=2 width=18 x=3 y=4></rect><path d=\"M3 10h18\">"), ce = /*#__PURE__*/ u("<svg fill=none height=16 stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 viewBox=\"0 0 24 24\"width=16 xmlns=http://www.w3.org/2000/svg><path d=\"m15 18-6-6 6-6\">"), le = /*#__PURE__*/ u("<svg fill=none height=16 stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 viewBox=\"0 0 24 24\"width=16 xmlns=http://www.w3.org/2000/svg><path d=\"m9 18 6-6-6-6\">"), ue = /*#__PURE__*/ u("<div class=van-form-date-days>"), de = /*#__PURE__*/ u("<span class=van-form-date-icon>"), fe = /*#__PURE__*/ u("<input aria-label=选择时间 class=van-form-date-time type=time>"), pe = [
|
|
109
|
+
"sun",
|
|
110
|
+
"mon",
|
|
111
|
+
"tue",
|
|
112
|
+
"wed",
|
|
113
|
+
"thu",
|
|
114
|
+
"fri",
|
|
115
|
+
"sat"
|
|
116
|
+
];
|
|
117
|
+
function P(e) {
|
|
118
|
+
return String(e).padStart(2, "0");
|
|
119
|
+
}
|
|
120
|
+
function F(e) {
|
|
121
|
+
return "hour" in e ? e : {
|
|
122
|
+
hour: 0,
|
|
123
|
+
minute: 0
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
function I(e) {
|
|
127
|
+
if (!e) return "";
|
|
128
|
+
let t = F(e);
|
|
129
|
+
return `${P(t.hour)}:${P(t.minute)}`;
|
|
130
|
+
}
|
|
131
|
+
function L(e, t) {
|
|
132
|
+
switch (t) {
|
|
133
|
+
case "datetime": {
|
|
134
|
+
let t = F(e);
|
|
135
|
+
return `${e.year}-${P(e.month)}-${P(e.day)} ${P(t.hour)}:${P(t.minute)}`;
|
|
136
|
+
}
|
|
137
|
+
case "month": return `${e.year}-${P(e.month)}`;
|
|
138
|
+
case "year": return String(e.year);
|
|
139
|
+
default: return `${e.year}-${P(e.month)}-${P(e.day)}`;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
function R(e, t) {
|
|
143
|
+
switch (t) {
|
|
144
|
+
case "datetime": {
|
|
145
|
+
let t = F(e);
|
|
146
|
+
return Date.UTC(e.year, e.month - 1, e.day, t.hour, t.minute);
|
|
147
|
+
}
|
|
148
|
+
case "month": return Date.UTC(e.year, e.month - 1, 1);
|
|
149
|
+
case "year": return Date.UTC(e.year, 0, 1);
|
|
150
|
+
default: return Date.UTC(e.year, e.month - 1, e.day);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
function z(e, t, n, r) {
|
|
154
|
+
let i = e.filter((e) => e != null);
|
|
155
|
+
if (r) return n === "timestamp" ? i.map((e) => R(e, t)) : i.map((e) => L(e, t));
|
|
156
|
+
let a = i[0];
|
|
157
|
+
return a == null ? void 0 : n === "timestamp" ? R(a, t) : L(a, t);
|
|
158
|
+
}
|
|
159
|
+
function B(e, t, n, r) {
|
|
160
|
+
return (r && Array.isArray(e) ? e : [e]).map((e) => me(e, t, n)).filter((e) => e != null);
|
|
161
|
+
}
|
|
162
|
+
function me(e, t, n) {
|
|
163
|
+
if (!(e == null || e === "")) {
|
|
164
|
+
if (n === "timestamp" && typeof e == "number") return he(e, t);
|
|
165
|
+
if (typeof e == "string") try {
|
|
166
|
+
switch (t) {
|
|
167
|
+
case "datetime": {
|
|
168
|
+
let t = /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2})$/.exec(e);
|
|
169
|
+
return t ? new E(Number(t[1]), Number(t[2]), Number(t[3]), Number(t[4]), Number(t[5])) : void 0;
|
|
170
|
+
}
|
|
171
|
+
case "month": {
|
|
172
|
+
let t = /^(\d{4})-(\d{2})$/.exec(e);
|
|
173
|
+
return t ? new T(Number(t[1]), Number(t[2]), 1) : void 0;
|
|
174
|
+
}
|
|
175
|
+
case "year": {
|
|
176
|
+
let t = Number(e);
|
|
177
|
+
return Number.isInteger(t) ? new T(t, 1, 1) : void 0;
|
|
178
|
+
}
|
|
179
|
+
default: return ne(e);
|
|
180
|
+
}
|
|
181
|
+
} catch {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
function he(e, t) {
|
|
187
|
+
let n = new Date(e), r = n.getUTCFullYear(), i = n.getUTCMonth() + 1, a = n.getUTCDate();
|
|
188
|
+
switch (t) {
|
|
189
|
+
case "datetime": return new E(r, i, a, n.getUTCHours(), n.getUTCMinutes());
|
|
190
|
+
case "month": return new T(r, i, 1);
|
|
191
|
+
case "year": return new T(r, 1, 1);
|
|
192
|
+
default: return new T(r, i, a);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
function ge() {
|
|
196
|
+
return oe();
|
|
197
|
+
}
|
|
198
|
+
function _e() {
|
|
199
|
+
return se();
|
|
200
|
+
}
|
|
201
|
+
function ve() {
|
|
202
|
+
return ce();
|
|
203
|
+
}
|
|
204
|
+
function ye() {
|
|
205
|
+
return le();
|
|
206
|
+
}
|
|
207
|
+
function V() {
|
|
208
|
+
return r(C.ViewControl, {
|
|
209
|
+
class: "van-form-date-view-control",
|
|
210
|
+
get children() {
|
|
211
|
+
return [
|
|
212
|
+
r(C.PrevTrigger, {
|
|
213
|
+
class: "van-form-date-nav-trigger",
|
|
214
|
+
get children() {
|
|
215
|
+
return r(ve, {});
|
|
216
|
+
}
|
|
217
|
+
}),
|
|
218
|
+
r(C.ViewTrigger, {
|
|
219
|
+
class: "van-form-date-view-trigger",
|
|
220
|
+
get children() {
|
|
221
|
+
return r(C.RangeText, {});
|
|
222
|
+
}
|
|
223
|
+
}),
|
|
224
|
+
r(C.NextTrigger, {
|
|
225
|
+
class: "van-form-date-nav-trigger",
|
|
226
|
+
get children() {
|
|
227
|
+
return r(ye, {});
|
|
228
|
+
}
|
|
229
|
+
})
|
|
230
|
+
];
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
function be(e) {
|
|
235
|
+
return r(C.Context, { children: (t) => {
|
|
236
|
+
let n = e.dual ? h(() => t().getOffset({ months: 1 })) : null, i = (n, i, a = !1, o = !1) => r(C.Table, {
|
|
237
|
+
class: "van-form-date-table",
|
|
238
|
+
get children() {
|
|
239
|
+
return [r(C.TableHead, {
|
|
240
|
+
class: "van-form-date-table-head",
|
|
241
|
+
get children() {
|
|
242
|
+
return r(C.TableRow, {
|
|
243
|
+
class: "van-form-date-table-row",
|
|
244
|
+
get children() {
|
|
245
|
+
return [s(() => a && r(C.WeekNumberHeaderCell, {
|
|
246
|
+
class: "van-form-date-week-header",
|
|
247
|
+
children: "#"
|
|
248
|
+
})), r(f, {
|
|
249
|
+
get each() {
|
|
250
|
+
return t().weekDays;
|
|
251
|
+
},
|
|
252
|
+
children: (e) => r(C.TableHeader, {
|
|
253
|
+
class: "van-form-date-table-header",
|
|
254
|
+
get children() {
|
|
255
|
+
return e().narrow;
|
|
256
|
+
}
|
|
257
|
+
})
|
|
258
|
+
})];
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
}), r(C.TableBody, {
|
|
263
|
+
class: "van-form-date-table-body",
|
|
264
|
+
get children() {
|
|
265
|
+
return r(f, {
|
|
266
|
+
each: n,
|
|
267
|
+
children: (n, c) => r(C.TableRow, {
|
|
268
|
+
class: "van-form-date-table-row",
|
|
269
|
+
get children() {
|
|
270
|
+
return [s(() => a && r(C.WeekNumberCell, {
|
|
271
|
+
class: "van-form-date-week-cell",
|
|
272
|
+
get week() {
|
|
273
|
+
return n();
|
|
274
|
+
},
|
|
275
|
+
weekIndex: c,
|
|
276
|
+
get children() {
|
|
277
|
+
return t().getWeekNumber(n());
|
|
278
|
+
}
|
|
279
|
+
})), r(f, {
|
|
280
|
+
get each() {
|
|
281
|
+
return n();
|
|
282
|
+
},
|
|
283
|
+
children: (t) => r(C.TableCell, {
|
|
284
|
+
class: "van-form-date-cell",
|
|
285
|
+
get value() {
|
|
286
|
+
return t();
|
|
287
|
+
},
|
|
288
|
+
visibleRange: i,
|
|
289
|
+
get children() {
|
|
290
|
+
return r(C.TableCellTrigger, {
|
|
291
|
+
class: "van-form-date-cell-trigger",
|
|
292
|
+
get id() {
|
|
293
|
+
return o ? `${e.controlId}-offset-${t().toString()}` : void 0;
|
|
294
|
+
},
|
|
295
|
+
get children() {
|
|
296
|
+
return t().day;
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
})
|
|
301
|
+
})];
|
|
302
|
+
}
|
|
303
|
+
})
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
})];
|
|
307
|
+
}
|
|
308
|
+
});
|
|
309
|
+
return r(C.View, {
|
|
310
|
+
get class() {
|
|
311
|
+
return `van-form-date-view${e.dual ? " van-form-date-view-dual" : ""}`;
|
|
312
|
+
},
|
|
313
|
+
view: "day",
|
|
314
|
+
get children() {
|
|
315
|
+
return [r(V, {}), s(() => s(() => !!e.dual)() ? (() => {
|
|
316
|
+
var r = ue();
|
|
317
|
+
return o(r, () => i(t().weeks, void 0, e.showWeekNumbers), null), o(r, () => n && i(n().weeks, n().visibleRange, !1, !0), null), r;
|
|
318
|
+
})() : i(t().weeks, void 0, e.showWeekNumbers))];
|
|
319
|
+
}
|
|
320
|
+
});
|
|
321
|
+
} });
|
|
322
|
+
}
|
|
323
|
+
function H() {
|
|
324
|
+
return r(C.Context, { children: (e) => r(C.View, {
|
|
325
|
+
class: "van-form-date-view",
|
|
326
|
+
view: "month",
|
|
327
|
+
get children() {
|
|
328
|
+
return [r(V, {}), r(C.Table, {
|
|
329
|
+
class: "van-form-date-table",
|
|
330
|
+
get children() {
|
|
331
|
+
return r(C.TableBody, {
|
|
332
|
+
class: "van-form-date-table-body",
|
|
333
|
+
get children() {
|
|
334
|
+
return r(f, {
|
|
335
|
+
get each() {
|
|
336
|
+
return e().getMonthsGrid({
|
|
337
|
+
columns: 4,
|
|
338
|
+
format: "short"
|
|
339
|
+
});
|
|
340
|
+
},
|
|
341
|
+
children: (e) => r(C.TableRow, {
|
|
342
|
+
class: "van-form-date-table-row",
|
|
343
|
+
get children() {
|
|
344
|
+
return r(f, {
|
|
345
|
+
get each() {
|
|
346
|
+
return e();
|
|
347
|
+
},
|
|
348
|
+
children: (e) => r(C.TableCell, {
|
|
349
|
+
class: "van-form-date-cell",
|
|
350
|
+
get value() {
|
|
351
|
+
return e().value;
|
|
352
|
+
},
|
|
353
|
+
get children() {
|
|
354
|
+
return r(C.TableCellTrigger, {
|
|
355
|
+
class: "van-form-date-cell-trigger",
|
|
356
|
+
get children() {
|
|
357
|
+
return e().label;
|
|
358
|
+
}
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
})
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
})
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
})];
|
|
370
|
+
}
|
|
371
|
+
}) });
|
|
372
|
+
}
|
|
373
|
+
function U() {
|
|
374
|
+
return r(C.Context, { children: (e) => r(C.View, {
|
|
375
|
+
class: "van-form-date-view",
|
|
376
|
+
view: "year",
|
|
377
|
+
get children() {
|
|
378
|
+
return [r(V, {}), r(C.Table, {
|
|
379
|
+
class: "van-form-date-table",
|
|
380
|
+
get children() {
|
|
381
|
+
return r(C.TableBody, {
|
|
382
|
+
class: "van-form-date-table-body",
|
|
383
|
+
get children() {
|
|
384
|
+
return r(f, {
|
|
385
|
+
get each() {
|
|
386
|
+
return e().getYearsGrid({ columns: 4 });
|
|
387
|
+
},
|
|
388
|
+
children: (e) => r(C.TableRow, {
|
|
389
|
+
class: "van-form-date-table-row",
|
|
390
|
+
get children() {
|
|
391
|
+
return r(f, {
|
|
392
|
+
get each() {
|
|
393
|
+
return e();
|
|
394
|
+
},
|
|
395
|
+
children: (e) => r(C.TableCell, {
|
|
396
|
+
class: "van-form-date-cell",
|
|
397
|
+
get value() {
|
|
398
|
+
return e().value;
|
|
399
|
+
},
|
|
400
|
+
get children() {
|
|
401
|
+
return r(C.TableCellTrigger, {
|
|
402
|
+
class: "van-form-date-cell-trigger",
|
|
403
|
+
get children() {
|
|
404
|
+
return e().label;
|
|
405
|
+
}
|
|
406
|
+
});
|
|
407
|
+
}
|
|
408
|
+
})
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
})
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
})];
|
|
417
|
+
}
|
|
418
|
+
}) });
|
|
419
|
+
}
|
|
420
|
+
function xe(e) {
|
|
421
|
+
let n = () => e.field.mode ?? "date", i = () => e.field.range === !0 || n() === "week", c = () => e.field.valueType ?? "string", [l, u] = g(null), d = h(() => l() || B(e.value, n(), c(), i())), f, p = (t) => {
|
|
422
|
+
if (n() === "week") {
|
|
423
|
+
let n = t.value.find((e) => e != null);
|
|
424
|
+
if (!n) {
|
|
425
|
+
e.onChange([]);
|
|
426
|
+
return;
|
|
427
|
+
}
|
|
428
|
+
let r = pe[e.field.startOfWeek ?? 1] ?? "mon", i = e.field.locale ?? "zh-CN", a = D(n, i, r), o = te(n, i, r);
|
|
429
|
+
e.onChange(c() === "timestamp" ? [R(a, "week"), R(o, "week")] : [L(a, "week"), L(o, "week")]), f?.().setOpen(!1);
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
432
|
+
if (i()) {
|
|
433
|
+
if (t.value.length === 0) {
|
|
434
|
+
u(null), e.onChange([]);
|
|
435
|
+
return;
|
|
436
|
+
}
|
|
437
|
+
if (t.value.length < 2 || t.value[0] === null || t.value[0] === void 0 || t.value[1] === null || t.value[1] === void 0) {
|
|
438
|
+
u(t.value.filter((e) => e != null));
|
|
439
|
+
return;
|
|
440
|
+
}
|
|
441
|
+
u(null), e.onChange(z(t.value, n(), c(), !0));
|
|
442
|
+
return;
|
|
443
|
+
}
|
|
444
|
+
e.onChange(z(t.value, n(), c(), !1));
|
|
445
|
+
}, m = w(() => ({
|
|
446
|
+
closeOnSelect: n() !== "datetime" && void 0,
|
|
447
|
+
defaultView: n() === "year" ? "year" : n() === "month" ? "month" : void 0,
|
|
448
|
+
format: (e) => L(e, n()),
|
|
449
|
+
id: e.controlId,
|
|
450
|
+
ids: { trigger: e.controlId },
|
|
451
|
+
locale: e.field.locale ?? "zh-CN",
|
|
452
|
+
maxView: n() === "year" ? "year" : n() === "month" ? "month" : void 0,
|
|
453
|
+
minView: n() === "year" ? "year" : n() === "month" ? "month" : void 0,
|
|
454
|
+
numOfMonths: i() && n() === "date" ? 2 : void 0,
|
|
455
|
+
onOpenChange: (t) => {
|
|
456
|
+
t.open || u(null), e.onBlur();
|
|
457
|
+
},
|
|
458
|
+
onValueChange: p,
|
|
459
|
+
outsideDaySelectable: e.field.outsideDaySelectable ?? !0,
|
|
460
|
+
selectionMode: i() ? "range" : "single",
|
|
461
|
+
showWeekNumbers: n() === "week",
|
|
462
|
+
startOfWeek: e.field.startOfWeek ?? (n() === "week" ? 1 : void 0),
|
|
463
|
+
value: d()
|
|
464
|
+
}));
|
|
465
|
+
return f = m, r(C.RootProvider, {
|
|
466
|
+
value: m,
|
|
467
|
+
get children() {
|
|
468
|
+
return [r(C.Control, {
|
|
469
|
+
class: "van-form-date-control",
|
|
470
|
+
get children() {
|
|
471
|
+
return [r(C.Trigger, {
|
|
472
|
+
class: "van-form-date-trigger",
|
|
473
|
+
get children() {
|
|
474
|
+
return [r(C.ValueText, {
|
|
475
|
+
class: "van-form-date-value",
|
|
476
|
+
get placeholder() {
|
|
477
|
+
return e.field.placeholder ?? "请选择";
|
|
478
|
+
},
|
|
479
|
+
separator: " ~ "
|
|
480
|
+
}), (() => {
|
|
481
|
+
var e = de();
|
|
482
|
+
return o(e, r(_e, {})), e;
|
|
483
|
+
})()];
|
|
484
|
+
}
|
|
485
|
+
}), s(() => s(() => e.field.clearable === !0)() && r(C.ClearTrigger, {
|
|
486
|
+
class: "van-form-date-clear",
|
|
487
|
+
get children() {
|
|
488
|
+
return r(ge, {});
|
|
489
|
+
}
|
|
490
|
+
}))];
|
|
491
|
+
}
|
|
492
|
+
}), r(t, { get children() {
|
|
493
|
+
return r(C.Positioner, {
|
|
494
|
+
class: "van-form-date-positioner",
|
|
495
|
+
get children() {
|
|
496
|
+
return r(C.Content, {
|
|
497
|
+
get class() {
|
|
498
|
+
return `van-form-date-content${n() === "week" ? " van-form-date-week-mode" : ""}`;
|
|
499
|
+
},
|
|
500
|
+
get children() {
|
|
501
|
+
return [s(() => s(() => n() === "year")() ? r(U, {}) : s(() => n() === "month")() ? r(H, {}) : [
|
|
502
|
+
r(be, {
|
|
503
|
+
get controlId() {
|
|
504
|
+
return e.controlId;
|
|
505
|
+
},
|
|
506
|
+
get dual() {
|
|
507
|
+
return s(() => e.field.range === !0)() && n() === "date";
|
|
508
|
+
},
|
|
509
|
+
get showWeekNumbers() {
|
|
510
|
+
return n() === "week";
|
|
511
|
+
}
|
|
512
|
+
}),
|
|
513
|
+
r(H, {}),
|
|
514
|
+
r(U, {})
|
|
515
|
+
]), s(() => s(() => n() === "datetime")() && r(C.Context, { children: (e) => (() => {
|
|
516
|
+
var t = fe();
|
|
517
|
+
return t.$$input = (t) => {
|
|
518
|
+
let [n, r] = t.currentTarget.value.split(":").map(Number);
|
|
519
|
+
e().setTime({
|
|
520
|
+
hour: n,
|
|
521
|
+
minute: r
|
|
522
|
+
});
|
|
523
|
+
}, a(() => t.value = I(e().value[0])), t;
|
|
524
|
+
})() }))];
|
|
525
|
+
}
|
|
526
|
+
});
|
|
527
|
+
}
|
|
528
|
+
});
|
|
529
|
+
} })];
|
|
530
|
+
}
|
|
531
|
+
});
|
|
532
|
+
}
|
|
533
|
+
i(["input"]);
|
|
534
|
+
//#endregion
|
|
535
|
+
//#region src/form/components/useDebouncedValue.ts
|
|
536
|
+
function W(e) {
|
|
537
|
+
let [t, n] = g(e.value() ?? ""), r, i = (t) => {
|
|
538
|
+
if (n(t), (e.debounce ?? 0) > 0) {
|
|
539
|
+
clearTimeout(r), r = setTimeout(() => {
|
|
540
|
+
r = void 0, e.onChange(t);
|
|
541
|
+
}, e.debounce);
|
|
542
|
+
return;
|
|
543
|
+
}
|
|
544
|
+
e.onChange(t);
|
|
545
|
+
}, a = () => {
|
|
546
|
+
r !== void 0 && (clearTimeout(r), r = void 0, t() !== e.value() && e.onChange(t()));
|
|
547
|
+
};
|
|
548
|
+
return m(y(() => e.value(), (e) => n(e ?? ""))), b(() => clearTimeout(r)), {
|
|
549
|
+
local: t,
|
|
550
|
+
handleInput: i,
|
|
551
|
+
handleBlur: () => {
|
|
552
|
+
a(), e.onBlur();
|
|
553
|
+
},
|
|
554
|
+
handleClear: () => {
|
|
555
|
+
clearTimeout(r), r = void 0, n(""), e.onChange("");
|
|
556
|
+
}
|
|
557
|
+
};
|
|
558
|
+
}
|
|
559
|
+
//#endregion
|
|
560
|
+
//#region src/form/components/FormInput.tsx
|
|
561
|
+
var Se = /*#__PURE__*/ u("<svg fill=none height=14 stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 viewBox=\"0 0 24 24\"width=14 xmlns=http://www.w3.org/2000/svg><path d=\"M18 6 6 18\"></path><path d=\"m6 6 12 12\">"), Ce = /*#__PURE__*/ u("<button aria-label=清空 type=button>"), we = /*#__PURE__*/ u("<div class=van-form-input-group>"), Te = /*#__PURE__*/ u("<span class=\"van-form-input-addon van-form-input-addon-prefix\">"), G = /*#__PURE__*/ u("<span class=\"van-form-input-addon van-form-input-addon-suffix\">");
|
|
562
|
+
function Ee() {
|
|
563
|
+
return Se();
|
|
564
|
+
}
|
|
565
|
+
function De(e) {
|
|
566
|
+
let { local: t, handleInput: i, handleBlur: c, handleClear: l } = W({
|
|
567
|
+
value: () => e.value,
|
|
568
|
+
debounce: e.field.debounce,
|
|
569
|
+
onChange: e.onChange,
|
|
570
|
+
onBlur: e.onBlur
|
|
571
|
+
}), u, d = r(x.Input, {
|
|
572
|
+
get autocomplete() {
|
|
573
|
+
return e.field.autocomplete;
|
|
574
|
+
},
|
|
575
|
+
class: "van-form-input",
|
|
576
|
+
onBlur: c,
|
|
577
|
+
onInput: (e) => i(e.currentTarget.value),
|
|
578
|
+
get placeholder() {
|
|
579
|
+
return e.field.placeholder;
|
|
580
|
+
},
|
|
581
|
+
ref: (e) => {
|
|
582
|
+
u = e;
|
|
583
|
+
},
|
|
584
|
+
get type() {
|
|
585
|
+
return e.field.type ?? "text";
|
|
586
|
+
},
|
|
587
|
+
get value() {
|
|
588
|
+
return t();
|
|
589
|
+
}
|
|
590
|
+
}), f = e.field.prefix !== void 0 || e.field.suffix !== void 0, m = e.field.clearable === !0;
|
|
591
|
+
return !f && !m ? d : (() => {
|
|
592
|
+
var i = we();
|
|
593
|
+
return o(i, (() => {
|
|
594
|
+
var t = s(() => e.field.prefix !== void 0);
|
|
595
|
+
return () => t() && (() => {
|
|
596
|
+
var t = Te();
|
|
597
|
+
return o(t, () => e.field.prefix), t;
|
|
598
|
+
})();
|
|
599
|
+
})(), null), o(i, d, null), o(i, r(p, {
|
|
600
|
+
get when() {
|
|
601
|
+
return m && t() !== "";
|
|
602
|
+
},
|
|
603
|
+
get children() {
|
|
604
|
+
var t = Ce();
|
|
605
|
+
return t.$$click = () => {
|
|
606
|
+
l(), u?.focus();
|
|
607
|
+
}, o(t, r(Ee, {})), a(() => n(t, `van-form-input-clear${e.field.suffix === void 0 ? "" : " van-form-input-clear-before-suffix"}`)), t;
|
|
608
|
+
}
|
|
609
|
+
}), null), o(i, (() => {
|
|
610
|
+
var t = s(() => e.field.suffix !== void 0);
|
|
611
|
+
return () => t() && (() => {
|
|
612
|
+
var t = G();
|
|
613
|
+
return o(t, () => e.field.suffix), t;
|
|
614
|
+
})();
|
|
615
|
+
})(), null), i;
|
|
616
|
+
})();
|
|
617
|
+
}
|
|
618
|
+
i(["click"]);
|
|
619
|
+
//#endregion
|
|
620
|
+
//#region src/form/components/FormRadio.tsx
|
|
621
|
+
function Oe(t) {
|
|
622
|
+
let n = h(() => t.field.options.map((e) => e.value));
|
|
623
|
+
return r(O.Root, {
|
|
624
|
+
class: "van-form-radio-group",
|
|
625
|
+
get id() {
|
|
626
|
+
return t.controlId;
|
|
627
|
+
},
|
|
628
|
+
ids: { itemHiddenInput: (e) => e === t.field.options[0]?.value ? t.controlId : `radio-${t.controlId}-${e}` },
|
|
629
|
+
onValueChange: (e) => t.onChange(e.value ?? ""),
|
|
630
|
+
get value() {
|
|
631
|
+
return t.value ?? "";
|
|
632
|
+
},
|
|
633
|
+
get children() {
|
|
634
|
+
return r(e, {
|
|
635
|
+
get each() {
|
|
636
|
+
return n();
|
|
637
|
+
},
|
|
638
|
+
children: (e) => {
|
|
639
|
+
let n = t.field.options.find((t) => t.value === e());
|
|
640
|
+
return r(O.Item, {
|
|
641
|
+
class: "van-form-radio-item",
|
|
642
|
+
get value() {
|
|
643
|
+
return e();
|
|
644
|
+
},
|
|
645
|
+
get children() {
|
|
646
|
+
return [
|
|
647
|
+
r(O.ItemControl, { class: "van-form-radio-control" }),
|
|
648
|
+
r(O.ItemText, {
|
|
649
|
+
class: "van-form-radio-text",
|
|
650
|
+
get children() {
|
|
651
|
+
return n?.label ?? e();
|
|
652
|
+
}
|
|
653
|
+
}),
|
|
654
|
+
r(O.ItemHiddenInput, {})
|
|
655
|
+
];
|
|
656
|
+
}
|
|
657
|
+
});
|
|
658
|
+
}
|
|
659
|
+
});
|
|
660
|
+
}
|
|
661
|
+
});
|
|
662
|
+
}
|
|
663
|
+
//#endregion
|
|
664
|
+
//#region src/form/components/FormSelect.tsx
|
|
665
|
+
var ke = /*#__PURE__*/ u("<svg fill=none height=14 stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 viewBox=\"0 0 24 24\"width=14 xmlns=http://www.w3.org/2000/svg><path d=\"M18 6 6 18\"></path><path d=\"m6 6 12 12\">"), Ae = /*#__PURE__*/ u("<svg fill=none height=16 stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 viewBox=\"0 0 24 24\"width=16 xmlns=http://www.w3.org/2000/svg><path d=\"m7 15 5 5 5-5\"></path><path d=\"m7 9 5-5 5 5\">"), je = /*#__PURE__*/ u("<div class=van-form-select-empty>暂无数据");
|
|
666
|
+
function Me() {
|
|
667
|
+
return ke();
|
|
668
|
+
}
|
|
669
|
+
function Ne(n) {
|
|
670
|
+
let i = h(() => A({ items: n.field.options.map((e) => ({
|
|
671
|
+
label: e.label,
|
|
672
|
+
value: e.value
|
|
673
|
+
})) }));
|
|
674
|
+
return r(k.Root, {
|
|
675
|
+
get collection() {
|
|
676
|
+
return i();
|
|
677
|
+
},
|
|
678
|
+
get id() {
|
|
679
|
+
return n.controlId;
|
|
680
|
+
},
|
|
681
|
+
onOpenChange: () => n.onBlur(),
|
|
682
|
+
onValueChange: (e) => n.onChange(e.value?.[0] ?? ""),
|
|
683
|
+
get value() {
|
|
684
|
+
return s(() => !!n.value)() ? [n.value] : [];
|
|
685
|
+
},
|
|
686
|
+
get children() {
|
|
687
|
+
return [
|
|
688
|
+
r(k.Control, {
|
|
689
|
+
class: "van-form-select-control",
|
|
690
|
+
get children() {
|
|
691
|
+
return [
|
|
692
|
+
r(k.Trigger, {
|
|
693
|
+
class: "van-form-select-trigger",
|
|
694
|
+
get children() {
|
|
695
|
+
return r(k.ValueText, {
|
|
696
|
+
class: "van-form-select-value",
|
|
697
|
+
get placeholder() {
|
|
698
|
+
return n.field.placeholder ?? "请选择";
|
|
699
|
+
}
|
|
700
|
+
});
|
|
701
|
+
}
|
|
702
|
+
}),
|
|
703
|
+
s(() => s(() => n.field.clearable === !0)() && r(k.ClearTrigger, {
|
|
704
|
+
class: "van-form-select-clear",
|
|
705
|
+
get children() {
|
|
706
|
+
return r(Me, {});
|
|
707
|
+
}
|
|
708
|
+
})),
|
|
709
|
+
r(k.Indicator, {
|
|
710
|
+
class: "van-form-select-indicator",
|
|
711
|
+
get children() {
|
|
712
|
+
return Ae();
|
|
713
|
+
}
|
|
714
|
+
})
|
|
715
|
+
];
|
|
716
|
+
}
|
|
717
|
+
}),
|
|
718
|
+
r(t, { get children() {
|
|
719
|
+
return r(k.Positioner, {
|
|
720
|
+
class: "van-form-select-positioner",
|
|
721
|
+
get children() {
|
|
722
|
+
return r(k.Content, {
|
|
723
|
+
class: "van-form-select-content",
|
|
724
|
+
get children() {
|
|
725
|
+
return r(p, {
|
|
726
|
+
get fallback() {
|
|
727
|
+
return r(e, {
|
|
728
|
+
get each() {
|
|
729
|
+
return n.field.options;
|
|
730
|
+
},
|
|
731
|
+
children: (e) => r(k.Item, {
|
|
732
|
+
class: "van-form-select-item",
|
|
733
|
+
get item() {
|
|
734
|
+
return e();
|
|
735
|
+
},
|
|
736
|
+
get children() {
|
|
737
|
+
return r(k.ItemText, { get children() {
|
|
738
|
+
return e().label;
|
|
739
|
+
} });
|
|
740
|
+
}
|
|
741
|
+
})
|
|
742
|
+
});
|
|
743
|
+
},
|
|
744
|
+
get when() {
|
|
745
|
+
return n.field.options.length === 0;
|
|
746
|
+
},
|
|
747
|
+
get children() {
|
|
748
|
+
return je();
|
|
749
|
+
}
|
|
750
|
+
});
|
|
751
|
+
}
|
|
752
|
+
});
|
|
753
|
+
}
|
|
754
|
+
});
|
|
755
|
+
} }),
|
|
756
|
+
r(k.HiddenSelect, {})
|
|
757
|
+
];
|
|
758
|
+
}
|
|
759
|
+
});
|
|
760
|
+
}
|
|
761
|
+
//#endregion
|
|
762
|
+
//#region src/form/components/FormSwitch.tsx
|
|
763
|
+
function Pe(e) {
|
|
764
|
+
return r(j.Root, {
|
|
765
|
+
get checked() {
|
|
766
|
+
return e.value ?? !1;
|
|
767
|
+
},
|
|
768
|
+
class: "van-form-switch-root",
|
|
769
|
+
get id() {
|
|
770
|
+
return e.controlId;
|
|
771
|
+
},
|
|
772
|
+
onCheckedChange: (t) => e.onChange(t.checked),
|
|
773
|
+
get children() {
|
|
774
|
+
return [
|
|
775
|
+
r(j.Control, {
|
|
776
|
+
class: "van-form-switch-control",
|
|
777
|
+
get children() {
|
|
778
|
+
return r(j.Thumb, { class: "van-form-switch-thumb" });
|
|
779
|
+
}
|
|
780
|
+
}),
|
|
781
|
+
s(() => s(() => !!e.label)() && r(j.Label, {
|
|
782
|
+
class: "van-form-switch-label",
|
|
783
|
+
get children() {
|
|
784
|
+
return e.label;
|
|
785
|
+
}
|
|
786
|
+
})),
|
|
787
|
+
r(j.HiddenInput, {})
|
|
788
|
+
];
|
|
789
|
+
}
|
|
790
|
+
});
|
|
791
|
+
}
|
|
792
|
+
//#endregion
|
|
793
|
+
//#region src/form/components/FormTextarea.tsx
|
|
794
|
+
function Fe(e) {
|
|
795
|
+
let { local: t, handleInput: n, handleBlur: i } = W({
|
|
796
|
+
value: () => e.value,
|
|
797
|
+
debounce: e.field.debounce,
|
|
798
|
+
onChange: e.onChange,
|
|
799
|
+
onBlur: e.onBlur
|
|
800
|
+
});
|
|
801
|
+
return r(x.Textarea, {
|
|
802
|
+
class: "van-form-textarea",
|
|
803
|
+
onBlur: i,
|
|
804
|
+
onInput: (e) => n(e.currentTarget.value),
|
|
805
|
+
get placeholder() {
|
|
806
|
+
return e.field.placeholder;
|
|
807
|
+
},
|
|
808
|
+
get rows() {
|
|
809
|
+
return e.field.rows ?? 4;
|
|
810
|
+
},
|
|
811
|
+
get value() {
|
|
812
|
+
return t();
|
|
813
|
+
}
|
|
814
|
+
});
|
|
815
|
+
}
|
|
816
|
+
//#endregion
|
|
817
|
+
//#region src/form/components/utils.ts
|
|
818
|
+
function K(e, t) {
|
|
819
|
+
return e.fieldType === t;
|
|
820
|
+
}
|
|
821
|
+
function Ie(e) {
|
|
822
|
+
if (e != null) return typeof e == "number" ? `${e}px` : e;
|
|
823
|
+
}
|
|
824
|
+
function Le(e) {
|
|
825
|
+
return ({ value: t }) => t == null || t === "" || Array.isArray(t) && t.length === 0 ? `${e ?? ""}必填` : void 0;
|
|
826
|
+
}
|
|
827
|
+
//#endregion
|
|
828
|
+
//#region src/form/components/FieldRenderer.tsx
|
|
829
|
+
function Re(e) {
|
|
830
|
+
return K(e.field, "input") ? r(De, {
|
|
831
|
+
get field() {
|
|
832
|
+
return e.field;
|
|
833
|
+
},
|
|
834
|
+
get onBlur() {
|
|
835
|
+
return e.onBlur;
|
|
836
|
+
},
|
|
837
|
+
onChange: (t) => e.onChange(t),
|
|
838
|
+
get value() {
|
|
839
|
+
return e.value;
|
|
840
|
+
}
|
|
841
|
+
}) : K(e.field, "textarea") ? r(Fe, {
|
|
842
|
+
get field() {
|
|
843
|
+
return e.field;
|
|
844
|
+
},
|
|
845
|
+
get onBlur() {
|
|
846
|
+
return e.onBlur;
|
|
847
|
+
},
|
|
848
|
+
onChange: (t) => e.onChange(t),
|
|
849
|
+
get value() {
|
|
850
|
+
return e.value;
|
|
851
|
+
}
|
|
852
|
+
}) : K(e.field, "select") ? r(Ne, {
|
|
853
|
+
get controlId() {
|
|
854
|
+
return e.controlId;
|
|
855
|
+
},
|
|
856
|
+
get field() {
|
|
857
|
+
return e.field;
|
|
858
|
+
},
|
|
859
|
+
get onBlur() {
|
|
860
|
+
return e.onBlur;
|
|
861
|
+
},
|
|
862
|
+
onChange: (t) => e.onChange(t),
|
|
863
|
+
get value() {
|
|
864
|
+
return e.value;
|
|
865
|
+
}
|
|
866
|
+
}) : K(e.field, "datePicker") ? r(xe, {
|
|
867
|
+
get controlId() {
|
|
868
|
+
return e.controlId;
|
|
869
|
+
},
|
|
870
|
+
get field() {
|
|
871
|
+
return e.field;
|
|
872
|
+
},
|
|
873
|
+
get onBlur() {
|
|
874
|
+
return e.onBlur;
|
|
875
|
+
},
|
|
876
|
+
onChange: (t) => e.onChange(t),
|
|
877
|
+
get value() {
|
|
878
|
+
return e.value;
|
|
879
|
+
}
|
|
880
|
+
}) : K(e.field, "checkbox") ? r(re, {
|
|
881
|
+
get controlId() {
|
|
882
|
+
return e.controlId;
|
|
883
|
+
},
|
|
884
|
+
get label() {
|
|
885
|
+
return e.field.label;
|
|
886
|
+
},
|
|
887
|
+
onChange: (t) => e.onChange(t),
|
|
888
|
+
get value() {
|
|
889
|
+
return e.value;
|
|
890
|
+
}
|
|
891
|
+
}) : K(e.field, "switch") ? r(Pe, {
|
|
892
|
+
get controlId() {
|
|
893
|
+
return e.controlId;
|
|
894
|
+
},
|
|
895
|
+
get label() {
|
|
896
|
+
return e.field.label;
|
|
897
|
+
},
|
|
898
|
+
onChange: (t) => e.onChange(t),
|
|
899
|
+
get value() {
|
|
900
|
+
return e.value;
|
|
901
|
+
}
|
|
902
|
+
}) : K(e.field, "radio") ? r(Oe, {
|
|
903
|
+
get controlId() {
|
|
904
|
+
return e.controlId;
|
|
905
|
+
},
|
|
906
|
+
get field() {
|
|
907
|
+
return e.field;
|
|
908
|
+
},
|
|
909
|
+
onChange: (t) => e.onChange(t),
|
|
910
|
+
get value() {
|
|
911
|
+
return e.value;
|
|
912
|
+
}
|
|
913
|
+
}) : K(e.field, "checkbox-group") ? r(ae, {
|
|
914
|
+
get controlId() {
|
|
915
|
+
return e.controlId;
|
|
916
|
+
},
|
|
917
|
+
get field() {
|
|
918
|
+
return e.field;
|
|
919
|
+
},
|
|
920
|
+
onChange: (t) => e.onChange(t),
|
|
921
|
+
get value() {
|
|
922
|
+
return e.value;
|
|
923
|
+
}
|
|
924
|
+
}) : null;
|
|
925
|
+
}
|
|
926
|
+
//#endregion
|
|
927
|
+
//#region src/form/patch.ts
|
|
928
|
+
function q(e) {
|
|
929
|
+
return J(e) || e === "" ? void 0 : Number(e);
|
|
930
|
+
}
|
|
931
|
+
function ze(e) {
|
|
932
|
+
return J(e) || e === "" ? 0 : Number(e);
|
|
933
|
+
}
|
|
934
|
+
function J(e) {
|
|
935
|
+
return e == null;
|
|
936
|
+
}
|
|
937
|
+
function Y(e) {
|
|
938
|
+
return Array.isArray(e) ? [...e].sort() : [];
|
|
939
|
+
}
|
|
940
|
+
function X(e) {
|
|
941
|
+
return e && typeof e == "object" && !Array.isArray(e) ? e : {};
|
|
942
|
+
}
|
|
943
|
+
function Z(e) {
|
|
944
|
+
return typeof e == "object" && !!e && !Array.isArray(e);
|
|
945
|
+
}
|
|
946
|
+
function Be(e, t, n) {
|
|
947
|
+
let r = {};
|
|
948
|
+
for (let i of n) {
|
|
949
|
+
let { name: n, valueType: a } = i, o = e[n], s = t[n], c;
|
|
950
|
+
c = a === "number" ? M(q(o), q(s)) : Array.isArray(o) || Array.isArray(s) ? M(Y(o), Y(s)) : Z(o) || Z(s) ? M(X(o), X(s)) : M(J(o) ? "" : o, J(s) ? "" : s), c || (r[n] = a === "number" ? ze(s) : s);
|
|
951
|
+
}
|
|
952
|
+
return {
|
|
953
|
+
patch: r,
|
|
954
|
+
changed: Object.keys(r).length > 0
|
|
955
|
+
};
|
|
956
|
+
}
|
|
957
|
+
//#endregion
|
|
958
|
+
//#region src/form/Form.tsx
|
|
959
|
+
var Ve = /*#__PURE__*/ u("<form>"), He = /*#__PURE__*/ u("<div class=van-form-field><div class=van-form-loading-wrap>"), Ue = /*#__PURE__*/ u("<span aria-hidden=true class=van-form-required>*"), We = /*#__PURE__*/ u("<div class=van-form-loading-wrap>");
|
|
960
|
+
function Q(e) {
|
|
961
|
+
return typeof e == "string" ? e : e && typeof e == "object" && "message" in e ? String(e.message) : String(e);
|
|
962
|
+
}
|
|
963
|
+
function Ge(e) {
|
|
964
|
+
let t = e.required === !0 && !e.rule ? Le(e.label) : e.rule;
|
|
965
|
+
if (t) return {
|
|
966
|
+
onChange: typeof t == "function" ? (e) => t({
|
|
967
|
+
value: e.value,
|
|
968
|
+
getValue: (t) => e.fieldApi.form.getFieldValue(t)
|
|
969
|
+
}) : t,
|
|
970
|
+
...e.validateListenTo?.length ? { onChangeListenTo: e.validateListenTo } : {}
|
|
971
|
+
};
|
|
972
|
+
}
|
|
973
|
+
function $(e, t) {
|
|
974
|
+
return typeof e.show == "function" ? e.show(t) : e.show !== !1;
|
|
975
|
+
}
|
|
976
|
+
function Ke(e, t) {
|
|
977
|
+
let n = new Set(t.filter((t) => !$(t, e)).map((e) => e.name));
|
|
978
|
+
return Object.fromEntries(Object.entries(e).filter(([e]) => !n.has(e)));
|
|
979
|
+
}
|
|
980
|
+
function qe(e, t) {
|
|
981
|
+
return e.filter((e) => $(e, t));
|
|
982
|
+
}
|
|
983
|
+
function Je(e) {
|
|
984
|
+
let t = v({ values: {} }, e), i = t.values, u = _(), f = (e) => `${u}-${e}`, g = (e) => {
|
|
985
|
+
let n = Ke(e, t.fields);
|
|
986
|
+
if (t.patch) {
|
|
987
|
+
let { patch: r, changed: a } = Be(i, n, qe(t.fields, e));
|
|
988
|
+
return {
|
|
989
|
+
values: n,
|
|
990
|
+
patch: r,
|
|
991
|
+
changed: a
|
|
992
|
+
};
|
|
993
|
+
}
|
|
994
|
+
return { values: n };
|
|
995
|
+
}, b = ee(() => ({
|
|
996
|
+
defaultValues: i,
|
|
997
|
+
onSubmit: async ({ value: e }) => {
|
|
998
|
+
let { values: n, patch: r, changed: i } = g(e);
|
|
999
|
+
await t.onSubmit?.(r === void 0 ? { value: n } : {
|
|
1000
|
+
value: n,
|
|
1001
|
+
patch: r,
|
|
1002
|
+
changed: i
|
|
1003
|
+
});
|
|
1004
|
+
},
|
|
1005
|
+
onSubmitInvalid: ({ value: e, formApi: n }) => {
|
|
1006
|
+
if (!t.onSubmitInvalid) return;
|
|
1007
|
+
let r = {}, i = n.state.fieldMeta;
|
|
1008
|
+
for (let [e, t] of Object.entries(i)) {
|
|
1009
|
+
let n = (t?.errors ?? []).map(Q).filter(Boolean);
|
|
1010
|
+
n.length > 0 && (r[e] = n);
|
|
1011
|
+
}
|
|
1012
|
+
t.onSubmitInvalid({
|
|
1013
|
+
value: e,
|
|
1014
|
+
errors: r
|
|
1015
|
+
});
|
|
1016
|
+
}
|
|
1017
|
+
}));
|
|
1018
|
+
t.ref?.({
|
|
1019
|
+
validate: async () => (await b.validateAllFields("change"), b.state.canSubmit),
|
|
1020
|
+
validateAndGetFieldValues: async () => (await b.validateAllFields("change"), b.state.canSubmit ? g(b.state.values) : !1),
|
|
1021
|
+
reset: () => b.reset(),
|
|
1022
|
+
getFieldValues: () => g(b.state.values),
|
|
1023
|
+
setFieldValues: (e) => {
|
|
1024
|
+
for (let [t, n] of Object.entries(e)) b.setFieldValue(t, n);
|
|
1025
|
+
},
|
|
1026
|
+
getFieldValue: (e) => b.getFieldValue(e),
|
|
1027
|
+
setFieldValue: (e, t) => b.setFieldValue(e, t)
|
|
1028
|
+
});
|
|
1029
|
+
let S = b.useStore((e) => e.values), C = h(() => t.fields.filter((e) => !e.hidden && $(e, S()))), w = b.useStore((e) => e.isSubmitting), T = b.useStore((e) => e.values), E = b.setFieldValue;
|
|
1030
|
+
return m(y(() => t.values, (e) => {
|
|
1031
|
+
for (let [t, n] of Object.entries(e ?? {})) b.state.values[t] !== n && E(t, n);
|
|
1032
|
+
}, { defer: !0 })), m(y(T, (e) => t.onValuesChange?.(e), { defer: !0 })), (() => {
|
|
1033
|
+
var e = Ve();
|
|
1034
|
+
return e.addEventListener("submit", (e) => {
|
|
1035
|
+
e.preventDefault(), e.stopPropagation(), b.handleSubmit();
|
|
1036
|
+
}), o(e, r(d, {
|
|
1037
|
+
get each() {
|
|
1038
|
+
return C();
|
|
1039
|
+
},
|
|
1040
|
+
children: (e) => r(b.Field, {
|
|
1041
|
+
get name() {
|
|
1042
|
+
return e.name;
|
|
1043
|
+
},
|
|
1044
|
+
get validators() {
|
|
1045
|
+
return Ge(e);
|
|
1046
|
+
},
|
|
1047
|
+
children: (n) => {
|
|
1048
|
+
let i = n(), u = h(() => (n().state.meta.errors ?? []).map(Q).filter(Boolean)), m = h(() => n().state.value), g = Ie(e.fieldWidth), _ = g ? { width: g } : void 0;
|
|
1049
|
+
return e.control ? (() => {
|
|
1050
|
+
var n = He(), r = n.firstChild;
|
|
1051
|
+
return o(r, () => e.control({
|
|
1052
|
+
value: m,
|
|
1053
|
+
onChange: (e) => i.handleChange(e),
|
|
1054
|
+
onBlur: () => i.handleBlur(),
|
|
1055
|
+
error: u,
|
|
1056
|
+
id: f(e.name)
|
|
1057
|
+
})), a((e) => {
|
|
1058
|
+
var i = _, a = t.loading ? "" : void 0, o = t.loading || void 0;
|
|
1059
|
+
return e.e = l(n, i, e.e), a !== e.t && c(r, "data-loading", e.t = a), o !== e.a && (r.inert = e.a = o), e;
|
|
1060
|
+
}, {
|
|
1061
|
+
e: void 0,
|
|
1062
|
+
t: void 0,
|
|
1063
|
+
a: void 0
|
|
1064
|
+
}), n;
|
|
1065
|
+
})() : r(x.Root, {
|
|
1066
|
+
class: "van-form-field",
|
|
1067
|
+
get id() {
|
|
1068
|
+
return f(e.name);
|
|
1069
|
+
},
|
|
1070
|
+
get invalid() {
|
|
1071
|
+
return u().length > 0;
|
|
1072
|
+
},
|
|
1073
|
+
style: _,
|
|
1074
|
+
get children() {
|
|
1075
|
+
return [
|
|
1076
|
+
r(p, {
|
|
1077
|
+
get when() {
|
|
1078
|
+
return s(() => !!(e.label && e.fieldType !== "checkbox" && e.fieldType !== "checkbox-group"))() && e.fieldType !== "switch";
|
|
1079
|
+
},
|
|
1080
|
+
get children() {
|
|
1081
|
+
return r(x.Label, {
|
|
1082
|
+
class: "van-form-label",
|
|
1083
|
+
get children() {
|
|
1084
|
+
return [r(p, {
|
|
1085
|
+
get when() {
|
|
1086
|
+
return e.required === !0;
|
|
1087
|
+
},
|
|
1088
|
+
get children() {
|
|
1089
|
+
return Ue();
|
|
1090
|
+
}
|
|
1091
|
+
}), s(() => s(() => !!e.renderLabel)() ? e.renderLabel(e.label) : e.label)];
|
|
1092
|
+
}
|
|
1093
|
+
});
|
|
1094
|
+
}
|
|
1095
|
+
}),
|
|
1096
|
+
(() => {
|
|
1097
|
+
var n = We();
|
|
1098
|
+
return o(n, r(Re, {
|
|
1099
|
+
get controlId() {
|
|
1100
|
+
return f(e.name);
|
|
1101
|
+
},
|
|
1102
|
+
field: e,
|
|
1103
|
+
onBlur: () => i.handleBlur(),
|
|
1104
|
+
onChange: (e) => i.handleChange(e),
|
|
1105
|
+
get value() {
|
|
1106
|
+
return m();
|
|
1107
|
+
}
|
|
1108
|
+
})), a((e) => {
|
|
1109
|
+
var r = t.loading ? "" : void 0, i = t.loading || void 0;
|
|
1110
|
+
return r !== e.e && c(n, "data-loading", e.e = r), i !== e.t && (n.inert = e.t = i), e;
|
|
1111
|
+
}, {
|
|
1112
|
+
e: void 0,
|
|
1113
|
+
t: void 0
|
|
1114
|
+
}), n;
|
|
1115
|
+
})(),
|
|
1116
|
+
r(p, {
|
|
1117
|
+
get when() {
|
|
1118
|
+
return e.helperText;
|
|
1119
|
+
},
|
|
1120
|
+
get children() {
|
|
1121
|
+
return r(x.HelperText, {
|
|
1122
|
+
class: "van-form-helper",
|
|
1123
|
+
get children() {
|
|
1124
|
+
return e.helperText;
|
|
1125
|
+
}
|
|
1126
|
+
});
|
|
1127
|
+
}
|
|
1128
|
+
}),
|
|
1129
|
+
r(p, {
|
|
1130
|
+
get when() {
|
|
1131
|
+
return u().length > 0;
|
|
1132
|
+
},
|
|
1133
|
+
get children() {
|
|
1134
|
+
return s(() => !!e.renderError)() ? r(x.ErrorText, {
|
|
1135
|
+
class: "van-form-error",
|
|
1136
|
+
get children() {
|
|
1137
|
+
return e.renderError(u());
|
|
1138
|
+
}
|
|
1139
|
+
}) : r(d, {
|
|
1140
|
+
get each() {
|
|
1141
|
+
return u();
|
|
1142
|
+
},
|
|
1143
|
+
children: (e) => r(x.ErrorText, {
|
|
1144
|
+
class: "van-form-error",
|
|
1145
|
+
children: e
|
|
1146
|
+
})
|
|
1147
|
+
});
|
|
1148
|
+
}
|
|
1149
|
+
})
|
|
1150
|
+
];
|
|
1151
|
+
}
|
|
1152
|
+
});
|
|
1153
|
+
}
|
|
1154
|
+
})
|
|
1155
|
+
}), null), o(e, () => t.children?.({ isSubmitting: w() }), null), a((r) => {
|
|
1156
|
+
var i = t.loading ?? !1, a = `van-form-form ${t.className ?? ""}`, o = t.size ?? "default";
|
|
1157
|
+
return i !== r.e && c(e, "aria-busy", r.e = i), a !== r.t && n(e, r.t = a), o !== r.a && c(e, "data-size", r.a = o), r;
|
|
1158
|
+
}, {
|
|
1159
|
+
e: void 0,
|
|
1160
|
+
t: void 0,
|
|
1161
|
+
a: void 0
|
|
1162
|
+
}), e;
|
|
1163
|
+
})();
|
|
1164
|
+
}
|
|
1165
|
+
//#endregion
|
|
1166
|
+
export { Je as t };
|