@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.
@@ -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 };