@formhaus/core 0.13.2 → 0.14.0

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.
Files changed (63) hide show
  1. package/dist/{check-definition-DuLExofm.d.ts → check-definition-DyiWqhEV.d.ts} +3 -3
  2. package/dist/chunk-5WADJMJJ.js +2 -0
  3. package/dist/chunk-5WADJMJJ.js.map +1 -0
  4. package/dist/chunk-5YPOS62Y.js +3 -0
  5. package/dist/chunk-5YPOS62Y.js.map +1 -0
  6. package/dist/chunk-CW5ZWCSD.js +2 -0
  7. package/dist/chunk-CW5ZWCSD.js.map +1 -0
  8. package/dist/chunk-QMT7RJ4T.js +3 -0
  9. package/dist/chunk-QMT7RJ4T.js.map +1 -0
  10. package/dist/chunk-QVA6DLYS.js +2 -0
  11. package/dist/chunk-QVA6DLYS.js.map +1 -0
  12. package/dist/chunk-REIX6ART.js +2 -0
  13. package/dist/chunk-REIX6ART.js.map +1 -0
  14. package/dist/chunk-TMO47L42.js +5 -0
  15. package/dist/chunk-TMO47L42.js.map +1 -0
  16. package/dist/cloud.d.ts +3 -3
  17. package/dist/cloud.js +1 -1
  18. package/dist/{controller-Ds_kbXSU.d.ts → controller-BJVYkMHT.d.ts} +1 -1
  19. package/dist/default-messages-E-nZe4Tc.d.ts +10 -0
  20. package/dist/{definition-B4OIy_wH.d.ts → definition-o4Y0OY6y.d.ts} +53 -6
  21. package/dist/fix.d.ts +38 -0
  22. package/dist/fix.js +3 -0
  23. package/dist/fix.js.map +1 -0
  24. package/dist/i18n.d.ts +4 -3
  25. package/dist/i18n.js +1 -1
  26. package/dist/i18n.js.map +1 -1
  27. package/dist/{runtime-BN2PuKD7.d.ts → index-BNGgMIbC.d.ts} +20 -6
  28. package/dist/index.d.ts +67 -11
  29. package/dist/index.js +1 -1
  30. package/dist/internal.d.ts +27 -7
  31. package/dist/internal.js +1 -1
  32. package/dist/internal.js.map +1 -1
  33. package/dist/issues-Dua58e1J.d.ts +14 -0
  34. package/dist/server.d.ts +5 -5
  35. package/dist/server.iife.js +3 -3
  36. package/dist/server.iife.js.map +1 -1
  37. package/dist/server.js +1 -1
  38. package/dist/server.js.map +1 -1
  39. package/dist/{validate-field-ND_UxoJU.d.ts → validate-field-CRR6GQBA.d.ts} +2 -2
  40. package/fixtures/submissions/choices.json +6 -26
  41. package/fixtures/submissions/groups.json +649 -0
  42. package/fixtures/submissions/messages.json +4 -16
  43. package/fixtures/submissions/show-conditions.json +2 -7
  44. package/fixtures/submissions/skip-routes.json +1 -3
  45. package/fixtures/submissions/skip.json +3 -9
  46. package/fixtures/submissions/special-types.json +2 -6
  47. package/package.json +10 -6
  48. package/schema/form-definition.schema.json +380 -19
  49. package/schema/form-translation.schema.json +79 -1
  50. package/style.css +103 -82
  51. package/dist/chunk-35SAVPYL.js +0 -2
  52. package/dist/chunk-35SAVPYL.js.map +0 -1
  53. package/dist/chunk-4UCHIIVE.js +0 -2
  54. package/dist/chunk-4UCHIIVE.js.map +0 -1
  55. package/dist/chunk-76YV4J3Q.js +0 -3
  56. package/dist/chunk-76YV4J3Q.js.map +0 -1
  57. package/dist/chunk-J5TQSLO3.js +0 -3
  58. package/dist/chunk-J5TQSLO3.js.map +0 -1
  59. package/dist/chunk-PBTYUSZR.js +0 -2
  60. package/dist/chunk-PBTYUSZR.js.map +0 -1
  61. package/dist/chunk-RN5GQHKN.js +0 -5
  62. package/dist/chunk-RN5GQHKN.js.map +0 -1
  63. package/dist/default-messages-yS4QtrYi.d.ts +0 -23
@@ -0,0 +1,649 @@
1
+ {
2
+ "name": "groups",
3
+ "definition": {
4
+ "formatVersion": "1.1",
5
+ "id": "groups",
6
+ "title": "Groups",
7
+ "submit": {
8
+ "label": "Submit"
9
+ },
10
+ "fields": [
11
+ {
12
+ "key": "company",
13
+ "type": "checkbox",
14
+ "label": "Company"
15
+ },
16
+ {
17
+ "key": "billing",
18
+ "type": "section",
19
+ "title": "Billing",
20
+ "show": [
21
+ {
22
+ "field": "company",
23
+ "eq": true
24
+ }
25
+ ],
26
+ "fields": [
27
+ {
28
+ "key": "street",
29
+ "type": "text",
30
+ "label": "Street",
31
+ "validation": {
32
+ "required": true
33
+ }
34
+ }
35
+ ]
36
+ },
37
+ {
38
+ "key": "people",
39
+ "type": "group",
40
+ "label": "People",
41
+ "validation": {
42
+ "required": true,
43
+ "maxLength": 2
44
+ },
45
+ "fields": [
46
+ {
47
+ "key": "name",
48
+ "type": "text",
49
+ "label": "Name",
50
+ "validation": {
51
+ "required": true
52
+ }
53
+ },
54
+ {
55
+ "key": "age",
56
+ "type": "number",
57
+ "label": "Age",
58
+ "validation": {
59
+ "min": 18
60
+ }
61
+ },
62
+ {
63
+ "key": "diet",
64
+ "type": "select",
65
+ "label": "Diet",
66
+ "options": [
67
+ {
68
+ "value": "none",
69
+ "label": "None"
70
+ },
71
+ {
72
+ "value": "other",
73
+ "label": "Other"
74
+ }
75
+ ]
76
+ },
77
+ {
78
+ "key": "note",
79
+ "type": "text",
80
+ "label": "Note",
81
+ "show": [
82
+ {
83
+ "field": "diet",
84
+ "eq": "other"
85
+ }
86
+ ],
87
+ "validation": {
88
+ "required": true
89
+ }
90
+ },
91
+ {
92
+ "key": "vat",
93
+ "type": "text",
94
+ "label": "VAT",
95
+ "show": [
96
+ {
97
+ "field": "company",
98
+ "eq": true
99
+ }
100
+ ]
101
+ }
102
+ ]
103
+ }
104
+ ]
105
+ },
106
+ "cases": [
107
+ {
108
+ "name": "accepts items and drops unknown item keys",
109
+ "input": {
110
+ "values": {
111
+ "people": [
112
+ {
113
+ "name": " Ada ",
114
+ "age": "30",
115
+ "extra": 1
116
+ },
117
+ {
118
+ "name": "Bo",
119
+ "diet": "other",
120
+ "note": "Vegan"
121
+ }
122
+ ]
123
+ },
124
+ "skippedSteps": []
125
+ },
126
+ "expected": {
127
+ "values": {
128
+ "people": [
129
+ {
130
+ "name": "Ada",
131
+ "age": 30
132
+ },
133
+ {
134
+ "name": "Bo",
135
+ "diet": "other",
136
+ "note": "Vegan"
137
+ }
138
+ ]
139
+ },
140
+ "errors": {}
141
+ }
142
+ },
143
+ {
144
+ "name": "drops item fields hidden by item and outer conditions",
145
+ "input": {
146
+ "values": {
147
+ "people": [
148
+ {
149
+ "name": "Ada",
150
+ "diet": "none",
151
+ "note": "x",
152
+ "vat": "NL1"
153
+ }
154
+ ]
155
+ },
156
+ "skippedSteps": []
157
+ },
158
+ "expected": {
159
+ "values": {
160
+ "people": [
161
+ {
162
+ "name": "Ada",
163
+ "diet": "none"
164
+ }
165
+ ]
166
+ },
167
+ "errors": {}
168
+ }
169
+ },
170
+ {
171
+ "name": "keeps item fields shown by outer fields and section fields",
172
+ "input": {
173
+ "values": {
174
+ "company": true,
175
+ "street": "Main",
176
+ "people": [
177
+ {
178
+ "name": "Ada",
179
+ "vat": "NL1"
180
+ }
181
+ ]
182
+ },
183
+ "skippedSteps": []
184
+ },
185
+ "expected": {
186
+ "values": {
187
+ "company": true,
188
+ "street": "Main",
189
+ "people": [
190
+ {
191
+ "name": "Ada",
192
+ "vat": "NL1"
193
+ }
194
+ ]
195
+ },
196
+ "errors": {}
197
+ }
198
+ },
199
+ {
200
+ "name": "reports item errors by path",
201
+ "input": {
202
+ "values": {
203
+ "people": [
204
+ {
205
+ "age": 12
206
+ },
207
+ {
208
+ "name": "Bo",
209
+ "diet": "other"
210
+ }
211
+ ]
212
+ },
213
+ "skippedSteps": []
214
+ },
215
+ "expected": {
216
+ "values": {
217
+ "people": [
218
+ {
219
+ "age": 12
220
+ },
221
+ {
222
+ "name": "Bo",
223
+ "diet": "other"
224
+ }
225
+ ]
226
+ },
227
+ "errors": {
228
+ "people.0.name": "This field is required",
229
+ "people.0.age": "Must be at least 18",
230
+ "people.1.note": "This field is required"
231
+ }
232
+ }
233
+ },
234
+ {
235
+ "name": "reports type errors of item fields by path",
236
+ "input": {
237
+ "values": {
238
+ "people": [
239
+ {
240
+ "name": 5,
241
+ "age": "old",
242
+ "diet": "fish"
243
+ }
244
+ ]
245
+ },
246
+ "skippedSteps": []
247
+ },
248
+ "expected": {
249
+ "values": {
250
+ "people": [{}]
251
+ },
252
+ "errors": {
253
+ "people.0.name": "Must be text",
254
+ "people.0.age": "Enter a number",
255
+ "people.0.diet": "Select one of the available options"
256
+ }
257
+ }
258
+ },
259
+ {
260
+ "name": "reports a missing group as required",
261
+ "input": {
262
+ "values": {},
263
+ "skippedSteps": []
264
+ },
265
+ "expected": {
266
+ "values": {},
267
+ "errors": {
268
+ "people": "This field is required"
269
+ }
270
+ }
271
+ },
272
+ {
273
+ "name": "reports an empty list as required",
274
+ "input": {
275
+ "values": {
276
+ "people": []
277
+ },
278
+ "skippedSteps": []
279
+ },
280
+ "expected": {
281
+ "values": {
282
+ "people": []
283
+ },
284
+ "errors": {
285
+ "people": "This field is required"
286
+ }
287
+ }
288
+ },
289
+ {
290
+ "name": "reports too many items",
291
+ "input": {
292
+ "values": {
293
+ "people": [
294
+ {
295
+ "name": "A"
296
+ },
297
+ {
298
+ "name": "B"
299
+ },
300
+ {
301
+ "name": "C"
302
+ }
303
+ ]
304
+ },
305
+ "skippedSteps": []
306
+ },
307
+ "expected": {
308
+ "values": {},
309
+ "errors": {
310
+ "people": "Must be at most 2 items"
311
+ }
312
+ }
313
+ },
314
+ {
315
+ "name": "rejects a value that is not a list of objects",
316
+ "input": {
317
+ "values": {
318
+ "people": ["Ada"]
319
+ },
320
+ "skippedSteps": []
321
+ },
322
+ "expected": {
323
+ "values": {},
324
+ "errors": {
325
+ "people": "Invalid value"
326
+ }
327
+ }
328
+ },
329
+ {
330
+ "name": "rejects more items than maxLength without checking them",
331
+ "input": {
332
+ "values": {
333
+ "people": [
334
+ {
335
+ "name": "A"
336
+ },
337
+ {
338
+ "name": "A"
339
+ },
340
+ {
341
+ "name": "A"
342
+ },
343
+ {
344
+ "name": "A"
345
+ },
346
+ {
347
+ "name": "A"
348
+ },
349
+ {
350
+ "name": "A"
351
+ },
352
+ {
353
+ "name": "A"
354
+ },
355
+ {
356
+ "name": "A"
357
+ },
358
+ {
359
+ "name": "A"
360
+ },
361
+ {
362
+ "name": "A"
363
+ },
364
+ {
365
+ "name": "A"
366
+ },
367
+ {
368
+ "name": "A"
369
+ },
370
+ {
371
+ "name": "A"
372
+ },
373
+ {
374
+ "name": "A"
375
+ },
376
+ {
377
+ "name": "A"
378
+ },
379
+ {
380
+ "name": "A"
381
+ },
382
+ {
383
+ "name": "A"
384
+ },
385
+ {
386
+ "name": "A"
387
+ },
388
+ {
389
+ "name": "A"
390
+ },
391
+ {
392
+ "name": "A"
393
+ },
394
+ {
395
+ "name": "A"
396
+ },
397
+ {
398
+ "name": "A"
399
+ },
400
+ {
401
+ "name": "A"
402
+ },
403
+ {
404
+ "name": "A"
405
+ },
406
+ {
407
+ "name": "A"
408
+ },
409
+ {
410
+ "name": "A"
411
+ },
412
+ {
413
+ "name": "A"
414
+ },
415
+ {
416
+ "name": "A"
417
+ },
418
+ {
419
+ "name": "A"
420
+ },
421
+ {
422
+ "name": "A"
423
+ },
424
+ {
425
+ "name": "A"
426
+ },
427
+ {
428
+ "name": "A"
429
+ },
430
+ {
431
+ "name": "A"
432
+ },
433
+ {
434
+ "name": "A"
435
+ },
436
+ {
437
+ "name": "A"
438
+ },
439
+ {
440
+ "name": "A"
441
+ },
442
+ {
443
+ "name": "A"
444
+ },
445
+ {
446
+ "name": "A"
447
+ },
448
+ {
449
+ "name": "A"
450
+ },
451
+ {
452
+ "name": "A"
453
+ },
454
+ {
455
+ "name": "A"
456
+ },
457
+ {
458
+ "name": "A"
459
+ },
460
+ {
461
+ "name": "A"
462
+ },
463
+ {
464
+ "name": "A"
465
+ },
466
+ {
467
+ "name": "A"
468
+ },
469
+ {
470
+ "name": "A"
471
+ },
472
+ {
473
+ "name": "A"
474
+ },
475
+ {
476
+ "name": "A"
477
+ },
478
+ {
479
+ "name": "A"
480
+ },
481
+ {
482
+ "name": "A"
483
+ },
484
+ {
485
+ "name": "A"
486
+ },
487
+ {
488
+ "name": "A"
489
+ },
490
+ {
491
+ "name": "A"
492
+ },
493
+ {
494
+ "name": "A"
495
+ },
496
+ {
497
+ "name": "A"
498
+ },
499
+ {
500
+ "name": "A"
501
+ },
502
+ {
503
+ "name": "A"
504
+ },
505
+ {
506
+ "name": "A"
507
+ },
508
+ {
509
+ "name": "A"
510
+ },
511
+ {
512
+ "name": "A"
513
+ },
514
+ {
515
+ "name": "A"
516
+ },
517
+ {
518
+ "name": "A"
519
+ },
520
+ {
521
+ "name": "A"
522
+ },
523
+ {
524
+ "name": "A"
525
+ },
526
+ {
527
+ "name": "A"
528
+ },
529
+ {
530
+ "name": "A"
531
+ },
532
+ {
533
+ "name": "A"
534
+ },
535
+ {
536
+ "name": "A"
537
+ },
538
+ {
539
+ "name": "A"
540
+ },
541
+ {
542
+ "name": "A"
543
+ },
544
+ {
545
+ "name": "A"
546
+ },
547
+ {
548
+ "name": "A"
549
+ },
550
+ {
551
+ "name": "A"
552
+ },
553
+ {
554
+ "name": "A"
555
+ },
556
+ {
557
+ "name": "A"
558
+ },
559
+ {
560
+ "name": "A"
561
+ },
562
+ {
563
+ "name": "A"
564
+ },
565
+ {
566
+ "name": "A"
567
+ },
568
+ {
569
+ "name": "A"
570
+ },
571
+ {
572
+ "name": "A"
573
+ },
574
+ {
575
+ "name": "A"
576
+ },
577
+ {
578
+ "name": "A"
579
+ },
580
+ {
581
+ "name": "A"
582
+ },
583
+ {
584
+ "name": "A"
585
+ },
586
+ {
587
+ "name": "A"
588
+ },
589
+ {
590
+ "name": "A"
591
+ },
592
+ {
593
+ "name": "A"
594
+ },
595
+ {
596
+ "name": "A"
597
+ },
598
+ {
599
+ "name": "A"
600
+ },
601
+ {
602
+ "name": "A"
603
+ },
604
+ {
605
+ "name": "A"
606
+ },
607
+ {
608
+ "name": "A"
609
+ },
610
+ {
611
+ "name": "A"
612
+ },
613
+ {
614
+ "name": "A"
615
+ },
616
+ {
617
+ "name": "A"
618
+ },
619
+ {
620
+ "name": "A"
621
+ },
622
+ {
623
+ "name": "A"
624
+ },
625
+ {
626
+ "name": "A"
627
+ },
628
+ {
629
+ "name": "A"
630
+ },
631
+ {
632
+ "name": "A"
633
+ },
634
+ {
635
+ "name": "A"
636
+ }
637
+ ]
638
+ },
639
+ "skippedSteps": []
640
+ },
641
+ "expected": {
642
+ "values": {},
643
+ "errors": {
644
+ "people": "Must be at most 2 items"
645
+ }
646
+ }
647
+ }
648
+ ]
649
+ }
@@ -80,11 +80,7 @@
80
80
  "name": "А",
81
81
  "email": "",
82
82
  "age": 16,
83
- "topics": [
84
- "news",
85
- "events",
86
- "jobs"
87
- ]
83
+ "topics": ["news", "events", "jobs"]
88
84
  },
89
85
  "skippedSteps": []
90
86
  },
@@ -93,11 +89,7 @@
93
89
  "name": "А",
94
90
  "email": "",
95
91
  "age": 16,
96
- "topics": [
97
- "news",
98
- "events",
99
- "jobs"
100
- ]
92
+ "topics": ["news", "events", "jobs"]
101
93
  },
102
94
  "errors": {
103
95
  "name": "Минимум 2 символов",
@@ -133,9 +125,7 @@
133
125
  "name": "Аня",
134
126
  "email": "anya@example.com",
135
127
  "age": 30,
136
- "topics": [
137
- "news"
138
- ]
128
+ "topics": ["news"]
139
129
  },
140
130
  "skippedSteps": []
141
131
  },
@@ -144,9 +134,7 @@
144
134
  "name": "Аня",
145
135
  "email": "anya@example.com",
146
136
  "age": 30,
147
- "topics": [
148
- "news"
149
- ]
137
+ "topics": ["news"]
150
138
  },
151
139
  "errors": {}
152
140
  }
@@ -51,9 +51,7 @@
51
51
  "show": [
52
52
  {
53
53
  "field": "country",
54
- "in": [
55
- "us"
56
- ]
54
+ "in": ["us"]
57
55
  }
58
56
  ],
59
57
  "validation": {
@@ -67,10 +65,7 @@
67
65
  "show": [
68
66
  {
69
67
  "field": "country",
70
- "notIn": [
71
- "us",
72
- "jp"
73
- ]
68
+ "notIn": ["us", "jp"]
74
69
  }
75
70
  ],
76
71
  "validation": {