@uides/stepwise 2.2.1 → 2.2.3

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 (229) hide show
  1. package/CHANGELOG.md +11 -2
  2. package/generators/extractStepwisePossibleValues.d.mts +1 -0
  3. package/index.js +1 -1
  4. package/package.json +1 -1
  5. package/schemas/action.d.ts +48 -168
  6. package/schemas/action.js +34 -47
  7. package/schemas/field/afm/index.d.ts +158 -6
  8. package/schemas/field/afm/index.js +6 -9
  9. package/schemas/field/amka/index.d.ts +152 -8
  10. package/schemas/field/amka/index.js +3 -7
  11. package/schemas/field/attachment/index.d.ts +184 -16
  12. package/schemas/field/attachment/index.js +9 -22
  13. package/schemas/field/captcha/index.d.ts +156 -2
  14. package/schemas/field/captcha/index.js +6 -9
  15. package/schemas/field/choice/index.d.ts +188 -15
  16. package/schemas/field/choice/index.js +4 -9
  17. package/schemas/field/common.d.ts +92 -40
  18. package/schemas/field/common.js +78 -11
  19. package/schemas/field/date/index.d.ts +152 -38
  20. package/schemas/field/date/index.js +6 -33
  21. package/schemas/field/doc_subtitle/index.d.ts +158 -5
  22. package/schemas/field/doc_subtitle/index.js +5 -6
  23. package/schemas/field/doc_title/index.d.ts +154 -8
  24. package/schemas/field/doc_title/index.js +5 -12
  25. package/schemas/field/dynamically-filled-text/index.d.ts +170 -33
  26. package/schemas/field/dynamically-filled-text/index.js +6 -23
  27. package/schemas/field/email/index.d.ts +152 -8
  28. package/schemas/field/email/index.js +5 -9
  29. package/schemas/field/fillable-string/index.d.ts +156 -12
  30. package/schemas/field/fillable-string/index.js +4 -10
  31. package/schemas/field/five-block-date/index.d.ts +156 -2
  32. package/schemas/field/five-block-date/index.js +5 -4
  33. package/schemas/field/hidden/index.d.ts +161 -14
  34. package/schemas/field/hidden/index.js +7 -15
  35. package/schemas/field/hierarchical-selector/index.d.ts +176 -37
  36. package/schemas/field/hierarchical-selector/index.js +5 -21
  37. package/schemas/field/iban/index.d.ts +168 -6
  38. package/schemas/field/iban/index.js +3 -3
  39. package/schemas/field/image/index.d.ts +168 -16
  40. package/schemas/field/image/index.js +7 -23
  41. package/schemas/field/index.d.ts +2 -7
  42. package/schemas/field/index.js +8 -15
  43. package/schemas/field/int/index.d.ts +152 -8
  44. package/schemas/field/int/index.js +5 -9
  45. package/schemas/field/intl_mobile_phone/index.d.ts +156 -3
  46. package/schemas/field/intl_mobile_phone/index.js +5 -5
  47. package/schemas/field/lab-results/index.d.ts +156 -3
  48. package/schemas/field/lab-results/index.js +6 -6
  49. package/schemas/field/mobile_phone/index.d.ts +158 -5
  50. package/schemas/field/mobile_phone/index.js +5 -6
  51. package/schemas/field/multiple-choice/index.d.ts +180 -12
  52. package/schemas/field/multiple-choice/index.js +3 -8
  53. package/schemas/field/password/index.d.ts +156 -2
  54. package/schemas/field/password/index.js +5 -5
  55. package/schemas/field/pdf-image/index.d.ts +152 -14
  56. package/schemas/field/pdf-image/index.js +6 -18
  57. package/schemas/field/postal_code/index.d.ts +156 -4
  58. package/schemas/field/postal_code/index.js +6 -8
  59. package/schemas/field/preference-multiple-choice/index.d.ts +211 -17
  60. package/schemas/field/preference-multiple-choice/index.js +5 -9
  61. package/schemas/field/qrcode/index.d.ts +168 -19
  62. package/schemas/field/qrcode/index.js +6 -18
  63. package/schemas/field/quote/index.d.ts +170 -11
  64. package/schemas/field/quote/index.js +4 -12
  65. package/schemas/field/radio-choice/index.d.ts +172 -9
  66. package/schemas/field/radio-choice/index.js +4 -10
  67. package/schemas/field/rate/index.d.ts +150 -8
  68. package/schemas/field/rate/index.js +4 -7
  69. package/schemas/field/recipient/index.d.ts +158 -5
  70. package/schemas/field/recipient/index.js +5 -9
  71. package/schemas/field/redirect/index.d.ts +156 -6
  72. package/schemas/field/redirect/index.js +6 -9
  73. package/schemas/field/refcode/index.d.ts +168 -16
  74. package/schemas/field/refcode/index.js +6 -20
  75. package/schemas/field/string/index.d.ts +226 -65
  76. package/schemas/field/string/index.js +5 -54
  77. package/schemas/field/text/index.d.ts +170 -33
  78. package/schemas/field/text/index.js +5 -30
  79. package/schemas/field/three-block-date/index.d.ts +176 -12
  80. package/schemas/field/three-block-date/index.js +4 -10
  81. package/schemas/field/url/index.d.ts +204 -0
  82. package/schemas/field/url/index.js +16 -0
  83. package/schemas/fieldset/component-params.d.ts +9 -41
  84. package/schemas/fieldset/component-params.js +5 -29
  85. package/schemas/fieldset/display-components.d.ts +16 -244
  86. package/schemas/fieldset/display-components.js +6 -19
  87. package/schemas/fieldset/enums.d.ts +0 -22
  88. package/schemas/fieldset/enums.js +1 -15
  89. package/schemas/fieldset/index.d.ts +9 -93
  90. package/schemas/index.d.ts +1 -1
  91. package/schemas/index.js +1 -1
  92. package/schemas/step.d.ts +7 -0
  93. package/schemas/step.js +2 -1
  94. package/schemas/{template/template.d.ts → template.d.ts} +47 -23
  95. package/schemas/template.js +26 -0
  96. package/src/generators/actions-possible-values/document-anon-create.json +19 -0
  97. package/src/generators/actions-possible-values/document-backstep.json +19 -0
  98. package/src/generators/actions-possible-values/document-create-new.json +43 -0
  99. package/src/generators/actions-possible-values/document-create.json +20 -0
  100. package/src/generators/actions-possible-values/document-dismiss.json +36 -0
  101. package/src/generators/actions-possible-values/document-download-pdf.json +69 -0
  102. package/src/generators/actions-possible-values/document-email.json +42 -0
  103. package/src/generators/actions-possible-values/document-resend-otp.json +30 -0
  104. package/src/generators/actions-possible-values/document-revoke.json +46 -0
  105. package/src/generators/actions-possible-values/document-share.json +29 -0
  106. package/src/generators/actions-possible-values/document-sms.json +38 -0
  107. package/src/generators/actions-possible-values/document-temporary-save.json +28 -0
  108. package/src/generators/actions-possible-values/document-update.json +111 -0
  109. package/src/generators/actions-possible-values/entity-forward.json +31 -0
  110. package/src/generators/actions-possible-values/entity-reply.json +31 -0
  111. package/src/generators/actions-possible-values/entity-send-message.json +34 -0
  112. package/src/generators/actions-possible-values/hidden.json +22 -0
  113. package/src/generators/actions-possible-values/link.json +43 -0
  114. package/src/generators/extractStepwisePossibleValues.mjs +139 -0
  115. package/src/generators/fields-possible-values/afm.json +94 -0
  116. package/src/generators/fields-possible-values/amka.json +26 -0
  117. package/src/generators/fields-possible-values/attachment.json +89 -0
  118. package/src/generators/fields-possible-values/captcha.json +16 -0
  119. package/src/generators/fields-possible-values/choice.json +432 -0
  120. package/src/generators/fields-possible-values/date.json +57 -0
  121. package/src/generators/fields-possible-values/doc_subtitle.json +26 -0
  122. package/src/generators/fields-possible-values/doc_title.json +63 -0
  123. package/src/generators/fields-possible-values/dynamically-filled-text.json +47 -0
  124. package/src/generators/fields-possible-values/email.json +65 -0
  125. package/src/generators/fields-possible-values/fillable-string.json +47 -0
  126. package/src/generators/fields-possible-values/five-block-date.json +23 -0
  127. package/src/generators/fields-possible-values/hidden.json +140 -0
  128. package/src/generators/fields-possible-values/hierarchical-selector.json +84 -0
  129. package/src/generators/fields-possible-values/iban.json +35 -0
  130. package/src/generators/fields-possible-values/image.json +37 -0
  131. package/src/generators/fields-possible-values/int.json +52 -0
  132. package/src/generators/fields-possible-values/intl_mobile_phone.json +32 -0
  133. package/src/generators/fields-possible-values/lab-results.json +19 -0
  134. package/src/generators/fields-possible-values/mobile_phone.json +45 -0
  135. package/src/generators/fields-possible-values/multiple-choice.json +128 -0
  136. package/src/generators/fields-possible-values/password.json +20 -0
  137. package/src/generators/fields-possible-values/pdf-image.json +70 -0
  138. package/src/generators/fields-possible-values/postal_code.json +32 -0
  139. package/src/generators/fields-possible-values/preference-multiple-choice.json +53 -0
  140. package/src/generators/fields-possible-values/qrcode.json +75 -0
  141. package/src/generators/fields-possible-values/quote.json +71 -0
  142. package/src/generators/fields-possible-values/radio-choice.json +209 -0
  143. package/src/generators/fields-possible-values/rate.json +26 -0
  144. package/src/generators/fields-possible-values/recipient.json +46 -0
  145. package/src/generators/fields-possible-values/redirect.json +22 -0
  146. package/src/generators/fields-possible-values/refcode.json +89 -0
  147. package/src/generators/fields-possible-values/string.json +778 -0
  148. package/src/generators/fields-possible-values/text.json +105 -0
  149. package/src/generators/fields-possible-values/three-block-date.json +83 -0
  150. package/src/generators/fields-possible-values/url.json +23 -0
  151. package/src/generators/fieldsets-possible-values/form.json +311 -0
  152. package/src/generators/fieldsets-possible-values/hidden.json +107 -0
  153. package/src/generators/fieldsets-possible-values/unknown.json +69 -0
  154. package/src/generators/fieldsets-possible-values/values-list.json +364 -0
  155. package/src/schemas/action.ts +44 -58
  156. package/src/schemas/field/afm/index.ts +8 -6
  157. package/src/schemas/field/amka/index.ts +7 -9
  158. package/src/schemas/field/attachment/index.ts +9 -23
  159. package/src/schemas/field/captcha/index.ts +8 -3
  160. package/src/schemas/field/choice/index.ts +7 -5
  161. package/src/schemas/field/common.spec.ts +0 -3
  162. package/src/schemas/field/common.ts +115 -53
  163. package/src/schemas/field/date/index.ts +8 -24
  164. package/src/schemas/field/doc_subtitle/index.ts +7 -4
  165. package/src/schemas/field/doc_title/index.ts +7 -14
  166. package/src/schemas/field/dynamically-filled-text/index.ts +7 -15
  167. package/src/schemas/field/email/index.ts +7 -9
  168. package/src/schemas/field/fillable-string/index.ts +7 -11
  169. package/src/schemas/field/five-block-date/index.ts +7 -2
  170. package/src/schemas/field/hidden/index.ts +15 -40
  171. package/src/schemas/field/hierarchical-selector/index.ts +8 -18
  172. package/src/schemas/field/iban/index.ts +7 -3
  173. package/src/schemas/field/image/index.ts +8 -10
  174. package/src/schemas/field/index.ts +8 -33
  175. package/src/schemas/field/int/index.ts +7 -9
  176. package/src/schemas/field/intl_mobile_phone/index.ts +7 -3
  177. package/src/schemas/field/lab-results/index.ts +7 -3
  178. package/src/schemas/field/mobile_phone/index.ts +7 -4
  179. package/src/schemas/field/multiple-choice/index.ts +7 -5
  180. package/src/schemas/field/password/index.ts +8 -3
  181. package/src/schemas/field/pdf-image/index.ts +8 -12
  182. package/src/schemas/field/postal_code/index.ts +8 -5
  183. package/src/schemas/field/preference-multiple-choice/index.ts +8 -7
  184. package/src/schemas/field/qrcode/index.ts +7 -10
  185. package/src/schemas/field/quote/index.ts +8 -8
  186. package/src/schemas/field/radio-choice/index.ts +7 -5
  187. package/src/schemas/field/rate/index.ts +7 -8
  188. package/src/schemas/field/recipient/index.ts +7 -4
  189. package/src/schemas/field/redirect/index.ts +7 -6
  190. package/src/schemas/field/refcode/index.ts +7 -21
  191. package/src/schemas/field/string/index.ts +7 -42
  192. package/src/schemas/field/text/index.ts +8 -16
  193. package/src/schemas/field/three-block-date/index.ts +7 -6
  194. package/src/schemas/field/url/index.ts +24 -0
  195. package/src/schemas/fieldset/component-params.ts +4 -20
  196. package/src/schemas/fieldset/display-components.ts +5 -36
  197. package/src/schemas/fieldset/enums.ts +0 -38
  198. package/src/schemas/step.ts +1 -0
  199. package/src/schemas/{template/template-base.ts → template.ts} +30 -6
  200. package/src/utils/index.ts +69 -2
  201. package/utils/index.js +28 -2
  202. package/schemas/field/consent-content/index.d.ts +0 -68
  203. package/schemas/field/consent-content/index.js +0 -19
  204. package/schemas/field/image-crop/index.d.ts +0 -59
  205. package/schemas/field/image-crop/index.js +0 -19
  206. package/schemas/field/landline_phone/index.d.ts +0 -48
  207. package/schemas/field/landline_phone/index.js +0 -14
  208. package/schemas/field/link/index.d.ts +0 -50
  209. package/schemas/field/link/index.js +0 -16
  210. package/schemas/field/phone/index.d.ts +0 -48
  211. package/schemas/field/phone/index.js +0 -14
  212. package/schemas/field/url-param/index.d.ts +0 -57
  213. package/schemas/field/url-param/index.js +0 -14
  214. package/schemas/template/index.d.ts +0 -2
  215. package/schemas/template/index.js +0 -2
  216. package/schemas/template/template-base.d.ts +0 -53
  217. package/schemas/template/template-base.js +0 -15
  218. package/schemas/template/template-source.d.ts +0 -50
  219. package/schemas/template/template-source.js +0 -14
  220. package/schemas/template/template.js +0 -22
  221. package/src/schemas/field/consent-content/index.ts +0 -28
  222. package/src/schemas/field/image-crop/index.ts +0 -25
  223. package/src/schemas/field/landline_phone/index.ts +0 -18
  224. package/src/schemas/field/link/index.ts +0 -20
  225. package/src/schemas/field/phone/index.ts +0 -18
  226. package/src/schemas/field/url-param/index.ts +0 -23
  227. package/src/schemas/template/index.ts +0 -2
  228. package/src/schemas/template/template-source.ts +0 -88
  229. package/src/schemas/template/template.ts +0 -49
@@ -1,51 +1,26 @@
1
1
  import * as v from 'valibot';
2
- import { createFieldDisplay } from '@uides/stepwise/schemas/field/common';
2
+ import {
3
+ createComponentParams,
4
+ createFieldDisplay,
5
+ createFieldSchema,
6
+ } from '@uides/stepwise/schemas/field/common';
3
7
 
4
8
  const HiddenDisplaySchema = createFieldDisplay(
5
9
  v.looseObject({
6
10
  component: v.literal('hidden'),
7
- 'component-params': v.nullish(v.object({})),
8
- // choices: v.nullish(v.record(v.string())),
9
- // 'choices-order': v.nullish(v.string()),
10
- // 'component-params': v.nullish(
11
- // v.strictObject({
12
- // bold: v.nullish(v.boolean()),
13
- // cell_valign: v.nullish(v.picklist(['BOTTOM', 'MIDDLE', 'TOP'])),
14
- // coordinates: v.nullish(v.array(v.nullable(v.number()))),
15
- // country: v.nullish(v.literal('gr')),
16
- // dependencies: v.nullish(v.record(v.string())),
17
- // 'dependencies-error-message': v.nullish(v.string()),
18
- // dataset: Dataset,
19
- // enforceUppercase: v.nullish(v.boolean()),
20
- // filetype: v.nullish(v.picklist(['pdf', 'pdf-for-mark'])),
21
- // 'file-max-size': v.nullish(v.number()),
22
- // fontSize: v.nullish(v.number()),
23
- // format: v.nullish(v.literal('plaintext')),
24
- // 'format-title': v.nullish(v.boolean()),
25
- // level: v.nullish(v.literal('Q')),
26
- // mode: v.nullish(v.picklist(['warning', 'info'])),
27
- // position: v.nullish(v.picklist(['left', 'right', 'center', 'justify'])),
28
- // size: v.nullish(v.number()),
29
- // textColor: v.nullish(v.string()),
30
- // 'later-pages': v.nullish(v.boolean()),
31
- // 'legacy-mode': v.nullish(v.boolean()),
32
- // })
33
- // ),
11
+ 'component-params': v.nullish(createComponentParams({}, 'loose')),
34
12
  })
35
13
  );
36
14
 
37
- const HiddenSchema = v.looseObject({
38
- 'user-input-mode': v.picklist(['noinput', 'optional', 'required', 'display']),
39
- display: HiddenDisplaySchema,
40
- datatype: v.nullish(v.string()),
41
- sources: v.nullish(v.string()),
42
- 'value-constructor': v.nullish(v.string()),
43
- value: v.nullish(v.string()),
44
- attribute: v.nullish(v.string()),
45
- 'default-value': v.nullish(v.string()),
46
- 'is-display-field': v.nullish(v.boolean()),
47
- 'default-on-empty': v.nullish(v.string()),
48
- });
15
+ const HiddenSchema = createFieldSchema(
16
+ {
17
+ 'user-input-mode': v.picklist(['noinput', 'required']),
18
+ display: HiddenDisplaySchema,
19
+ value: v.nullish(v.string()),
20
+ 'default-value': v.nullish(v.string()),
21
+ },
22
+ 'loose'
23
+ );
49
24
 
50
25
  export type HiddenType = v.InferOutput<typeof HiddenSchema>;
51
26
  export type HiddenSchemaType = v.GenericSchema<HiddenType>;
@@ -1,35 +1,25 @@
1
1
  import * as v from 'valibot';
2
- import { createFieldDisplay } from '@uides/stepwise/schemas/field/common';
2
+ import {
3
+ createComponentParams,
4
+ createFieldDisplay,
5
+ createFieldSchema,
6
+ } from '@uides/stepwise/schemas/field/common';
3
7
 
4
8
  const HierarchicalSelectorDisplaySchema = createFieldDisplay(
5
9
  v.strictObject({
6
10
  component: v.literal('hierarchical-selector'),
7
11
  'component-params': v.nullish(
8
- v.strictObject({
12
+ createComponentParams({
9
13
  dataset: v.nullish(v.string()),
10
14
  'dataset-filter-field': v.nullish(v.string()),
11
- format: v.nullish(v.literal('plaintext')),
12
- initial_loading_levels: v.nullish(v.number()),
13
- multiplicity: v.nullish(v.number()),
14
- multiplicityLabels: v.nullish(
15
- v.strictObject({
16
- addItem: v.nullish(v.string()),
17
- empty: v.nullish(v.string()),
18
- emptyValueDisplay: v.nullish(v.string()),
19
- })
20
- ),
21
15
  })
22
16
  ),
23
17
  })
24
18
  );
25
19
 
26
- const HierarchicalSelectorSchema = v.strictObject({
27
- 'user-input-mode': v.picklist(['noinput', 'optional', 'required']),
20
+ const HierarchicalSelectorSchema = createFieldSchema({
21
+ 'user-input-mode': v.picklist(['noinput', 'required']),
28
22
  display: HierarchicalSelectorDisplaySchema,
29
- attribute: v.nullish(v.string()),
30
- sources: v.nullish(v.string()),
31
- 'value-constructor': v.nullish(v.string()),
32
- datatype: v.nullish(v.picklist(['entity_recipient', 'string'])),
33
23
  'dataset-source-fn': v.nullish(v.string()),
34
24
  });
35
25
 
@@ -1,18 +1,22 @@
1
1
  import * as v from 'valibot';
2
- import { createFieldDisplay } from '@uides/stepwise/schemas/field/common';
2
+ import {
3
+ createComponentParams,
4
+ createFieldDisplay,
5
+ createFieldSchema,
6
+ } from '@uides/stepwise/schemas/field/common';
3
7
 
4
8
  const IbanDisplaySchema = createFieldDisplay(
5
9
  v.strictObject({
6
10
  component: v.literal('iban'),
7
11
  'component-params': v.nullish(
8
- v.strictObject({
12
+ createComponentParams({
9
13
  country: v.literal('gr'),
10
14
  })
11
15
  ),
12
16
  })
13
17
  );
14
18
 
15
- const IbanSchema = v.strictObject({
19
+ const IbanSchema = createFieldSchema({
16
20
  'user-input-mode': v.picklist(['noinput', 'optional', 'required']),
17
21
  display: IbanDisplaySchema,
18
22
  'default-value': v.nullish(v.string()),
@@ -1,27 +1,25 @@
1
1
  import * as v from 'valibot';
2
- import { createFieldDisplay } from '@uides/stepwise/schemas/field/common';
2
+ import {
3
+ createComponentParams,
4
+ createFieldDisplay,
5
+ createFieldSchema,
6
+ } from '@uides/stepwise/schemas/field/common';
3
7
 
4
8
  const ImageDisplaySchema = createFieldDisplay(
5
9
  v.strictObject({
6
10
  component: v.literal('image'),
7
11
  'component-params': v.nullish(
8
- v.strictObject({
12
+ createComponentParams({
9
13
  attachment_retrieval: v.nullish(v.picklist(['content', 'content-uri'])),
10
- position: v.nullish(v.picklist(['left', 'right', 'center', 'justify'])),
11
- coordinates: v.nullish(v.array(v.nullable(v.number()))),
12
14
  })
13
15
  ),
14
16
  })
15
17
  );
16
18
 
17
- const ImageSchema = v.strictObject({
18
- 'user-input-mode': v.picklist(['noinput', 'required', 'display']),
19
+ const ImageSchema = createFieldSchema({
20
+ 'user-input-mode': v.picklist(['noinput']),
19
21
  display: ImageDisplaySchema,
20
- datatype: v.nullish(v.picklist(['attachment', 'string'])),
21
- attribute: v.nullish(v.string()),
22
22
  value: v.nullish(v.string()),
23
- 'value-constructor': v.nullish(v.string()),
24
- sources: v.nullish(v.string()),
25
23
  });
26
24
 
27
25
  export type ImageType = v.InferOutput<typeof ImageSchema>;
@@ -1,5 +1,5 @@
1
1
  import * as v from 'valibot';
2
- import { DisplayLang, DisplayModeSchema } from '@uides/stepwise/schemas/common';
2
+ import { DisplayLang } from '@uides/stepwise/schemas/common';
3
3
  import Afm, { AfmType } from '@uides/stepwise/schemas/field/afm';
4
4
  import Amka, { AmkaType } from '@uides/stepwise/schemas/field/amka';
5
5
  import Attachment, {
@@ -8,9 +8,6 @@ import Attachment, {
8
8
  import Captcha, { CaptchaType } from '@uides/stepwise/schemas/field/captcha';
9
9
  import Choice, { ChoiceType } from '@uides/stepwise/schemas/field/choice';
10
10
  import { DisplayModeAndLangSchema } from '@uides/stepwise/schemas/field/common';
11
- import ConsentContent, {
12
- ConsentContentType,
13
- } from '@uides/stepwise/schemas/field/consent-content';
14
11
  import DateField, { DateType } from '@uides/stepwise/schemas/field/date';
15
12
  import DocSubtitle, {
16
13
  DocSubtitleType,
@@ -34,9 +31,6 @@ import HierarchicalSelector, {
34
31
  } from '@uides/stepwise/schemas/field/hierarchical-selector';
35
32
  import Iban, { IbanType } from '@uides/stepwise/schemas/field/iban';
36
33
  import Image, { ImageType } from '@uides/stepwise/schemas/field/image';
37
- import ImageCrop, {
38
- ImageCropType,
39
- } from '@uides/stepwise/schemas/field/image-crop';
40
34
  import Int, { IntType } from '@uides/stepwise/schemas/field/int';
41
35
  import IntlMobilePhone, {
42
36
  IntlMobilePhoneType,
@@ -44,10 +38,6 @@ import IntlMobilePhone, {
44
38
  import LabResults, {
45
39
  LabResultsType,
46
40
  } from '@uides/stepwise/schemas/field/lab-results';
47
- import LandlinePhone, {
48
- LandlinePhoneType,
49
- } from '@uides/stepwise/schemas/field/landline_phone';
50
- import Link, { LinkType } from '@uides/stepwise/schemas/field/link';
51
41
  import MobilePhone, {
52
42
  MobilePhoneType,
53
43
  } from '@uides/stepwise/schemas/field/mobile_phone';
@@ -58,7 +48,6 @@ import Password, { PasswordType } from '@uides/stepwise/schemas/field/password';
58
48
  import PdfImage, {
59
49
  PdfImageType,
60
50
  } from '@uides/stepwise/schemas/field/pdf-image';
61
- import Phone, { PhoneType } from '@uides/stepwise/schemas/field/phone';
62
51
  import PostalCode, {
63
52
  PostalCodeType,
64
53
  } from '@uides/stepwise/schemas/field/postal_code';
@@ -81,9 +70,7 @@ import Text, { TextType } from '@uides/stepwise/schemas/field/text';
81
70
  import ThreeBlockDate, {
82
71
  ThreeBlockDateType,
83
72
  } from '@uides/stepwise/schemas/field/three-block-date';
84
- import UrlParam, {
85
- UrlParamType,
86
- } from '@uides/stepwise/schemas/field/url-param';
73
+ import Url, { UrlType } from '@uides/stepwise/schemas/field/url';
87
74
  import { resolveDisplay } from '@uides/stepwise/schemas/resolve';
88
75
  import { isFailureDataset } from '@uides/stepwise/utils';
89
76
 
@@ -93,7 +80,6 @@ const allFieldSchemas = {
93
80
  attachment: Attachment,
94
81
  captcha: Captcha,
95
82
  choice: Choice,
96
- 'consent-content': ConsentContent,
97
83
  date: DateField,
98
84
  doc_title: DocTitle,
99
85
  doc_subtitle: DocSubtitle,
@@ -105,17 +91,13 @@ const allFieldSchemas = {
105
91
  'hierarchical-selector': HierarchicalSelector,
106
92
  iban: Iban,
107
93
  image: Image,
108
- 'image-crop': ImageCrop,
109
94
  int: Int,
110
95
  intl_mobile_phone: IntlMobilePhone,
111
96
  'lab-results': LabResults,
112
- landline_phone: LandlinePhone,
113
- link: Link,
114
97
  mobile_phone: MobilePhone,
115
98
  'multiple-choice': MultipleChoice,
116
99
  password: Password,
117
100
  'pdf-image': PdfImage,
118
- phone: Phone,
119
101
  postal_code: PostalCode,
120
102
  'preference-multiple-choice': PreferenceMultipleChoice,
121
103
  qrcode: Qrcode,
@@ -128,11 +110,13 @@ const allFieldSchemas = {
128
110
  string: StringField,
129
111
  text: Text,
130
112
  'three-block-date': ThreeBlockDate,
131
- 'url-param': UrlParam,
113
+ url: Url,
132
114
  };
133
115
 
134
116
  export const ComponentSchema = v.picklist(Object.keys(allFieldSchemas));
135
117
 
118
+ const VALIDATED_DISPLAY_MODES = ['default', 'web'] as const;
119
+
136
120
  const FieldSchema = v.pipe(
137
121
  v.record(v.string(), v.any()),
138
122
  v.rawCheck<Field>(({ dataset, addIssue }) => {
@@ -170,12 +154,8 @@ const FieldSchema = v.pipe(
170
154
  });
171
155
  });
172
156
  }
173
- DisplayModeSchema.options.forEach((displayMode) => {
174
- if (
175
- !(display && display[displayMode]) ||
176
- displayMode === 'pdf' // TODO: Add PDF validation
177
- )
178
- return;
157
+ VALIDATED_DISPLAY_MODES.forEach((displayMode) => {
158
+ if (!(display && display[displayMode])) return;
179
159
  Object.keys(display[displayMode] as NonNullable<unknown>).forEach(
180
160
  (displayLang) => {
181
161
  const resolvedDisplay = resolveDisplay(
@@ -256,7 +236,6 @@ export type Field =
256
236
  | AttachmentType
257
237
  | CaptchaType
258
238
  | ChoiceType
259
- | ConsentContentType
260
239
  | DateType
261
240
  | DocSubtitleType
262
241
  | DocTitleType
@@ -268,17 +247,13 @@ export type Field =
268
247
  | HierarchicalSelectorType
269
248
  | IbanType
270
249
  | ImageType
271
- | ImageCropType
272
250
  | IntType
273
251
  | IntlMobilePhoneType
274
252
  | LabResultsType
275
- | LandlinePhoneType
276
- | LinkType
277
253
  | MobilePhoneType
278
254
  | MultipleChoiceType
279
255
  | PasswordType
280
256
  | PdfImageType
281
- | PhoneType
282
257
  | PostalCodeType
283
258
  | PreferenceMultipleChoiceType
284
259
  | QrcodeType
@@ -291,7 +266,7 @@ export type Field =
291
266
  | StringType
292
267
  | TextType
293
268
  | ThreeBlockDateType
294
- | UrlParamType;
269
+ | UrlType;
295
270
 
296
271
  export type Fields = Record<string, Field>;
297
272
 
@@ -1,23 +1,21 @@
1
1
  import * as v from 'valibot';
2
- import { createFieldDisplay } from '@uides/stepwise/schemas/field/common';
2
+ import {
3
+ createComponentParams,
4
+ createFieldDisplay,
5
+ createFieldSchema,
6
+ } from '@uides/stepwise/schemas/field/common';
3
7
 
4
8
  const IntDisplaySchema = createFieldDisplay(
5
9
  v.strictObject({
6
10
  component: v.literal('int'),
7
- 'component-params': v.nullish(
8
- v.strictObject({
9
- enforceUppercase: v.boolean(),
10
- })
11
- ),
11
+ 'component-params': v.nullish(createComponentParams({})),
12
12
  })
13
13
  );
14
14
 
15
- const IntSchema = v.strictObject({
15
+ const IntSchema = createFieldSchema({
16
16
  'user-input-mode': v.picklist(['noinput', 'optional', 'required']),
17
17
  display: IntDisplaySchema,
18
18
  'default-value': v.nullish(v.string()),
19
- attribute: v.nullish(v.string()),
20
- datatype: v.nullish(v.literal('int')),
21
19
  });
22
20
 
23
21
  export type IntType = v.InferOutput<typeof IntSchema>;
@@ -1,15 +1,19 @@
1
1
  import * as v from 'valibot';
2
- import { createFieldDisplay } from '@uides/stepwise/schemas/field/common';
2
+ import {
3
+ createComponentParams,
4
+ createFieldDisplay,
5
+ createFieldSchema,
6
+ } from '@uides/stepwise/schemas/field/common';
3
7
 
4
8
  const IntlMobilePhoneDisplaySchema = createFieldDisplay(
5
9
  v.strictObject({
6
10
  component: v.literal('intl_mobile_phone'),
11
+ 'component-params': v.nullish(createComponentParams({})),
7
12
  })
8
13
  );
9
14
 
10
- const IntlMobilePhoneSchema = v.strictObject({
15
+ const IntlMobilePhoneSchema = createFieldSchema({
11
16
  'user-input-mode': v.picklist(['noinput', 'required']),
12
- attribute: v.nullish(v.string()),
13
17
  display: IntlMobilePhoneDisplaySchema,
14
18
  });
15
19
 
@@ -1,16 +1,20 @@
1
1
  import * as v from 'valibot';
2
- import { createFieldDisplay } from '@uides/stepwise/schemas/field/common';
2
+ import {
3
+ createComponentParams,
4
+ createFieldDisplay,
5
+ createFieldSchema,
6
+ } from '@uides/stepwise/schemas/field/common';
3
7
 
4
8
  const LabResultsDisplaySchema = createFieldDisplay(
5
9
  v.strictObject({
6
10
  component: v.literal('lab-results'),
11
+ 'component-params': v.nullish(createComponentParams({})),
7
12
  })
8
13
  );
9
14
 
10
- const LabResultsSchema = v.strictObject({
15
+ const LabResultsSchema = createFieldSchema({
11
16
  'user-input-mode': v.literal('noinput'),
12
17
  display: LabResultsDisplaySchema,
13
- attribute: v.nullish(v.string()),
14
18
  });
15
19
 
16
20
  export type LabResultsType = v.InferOutput<typeof LabResultsSchema>;
@@ -1,18 +1,21 @@
1
1
  import * as v from 'valibot';
2
- import { createFieldDisplay } from '@uides/stepwise/schemas/field/common';
2
+ import {
3
+ createComponentParams,
4
+ createFieldDisplay,
5
+ createFieldSchema,
6
+ } from '@uides/stepwise/schemas/field/common';
3
7
 
4
8
  const MobilePhoneDisplaySchema = createFieldDisplay(
5
9
  v.strictObject({
6
10
  component: v.literal('mobile_phone'),
11
+ 'component-params': v.nullish(createComponentParams({})),
7
12
  })
8
13
  );
9
14
 
10
- const MobilePhoneSchema = v.strictObject({
15
+ const MobilePhoneSchema = createFieldSchema({
11
16
  'user-input-mode': v.picklist(['noinput', 'optional', 'required']),
12
- attribute: v.nullish(v.string()),
13
17
  display: MobilePhoneDisplaySchema,
14
18
  'default-value': v.nullish(v.string()),
15
- datatype: v.nullish(v.literal('mobile_phone')),
16
19
  });
17
20
 
18
21
  export type MobilePhoneType = v.InferOutput<typeof MobilePhoneSchema>;
@@ -1,5 +1,9 @@
1
1
  import * as v from 'valibot';
2
- import { createFieldDisplay } from '@uides/stepwise/schemas/field/common';
2
+ import {
3
+ createComponentParams,
4
+ createFieldDisplay,
5
+ createFieldSchema,
6
+ } from '@uides/stepwise/schemas/field/common';
3
7
 
4
8
  const MultipleChoiceDisplaySchema = createFieldDisplay(
5
9
  v.strictObject({
@@ -7,7 +11,7 @@ const MultipleChoiceDisplaySchema = createFieldDisplay(
7
11
  choices: v.nullish(v.record(v.string(), v.string())),
8
12
  'choices-order': v.nullish(v.string()),
9
13
  'component-params': v.nullish(
10
- v.strictObject({
14
+ createComponentParams({
11
15
  'legacy-mode': v.nullish(v.boolean()),
12
16
  showcase: v.nullish(v.picklist(['comma_separated', 'one_per_line'])),
13
17
  })
@@ -15,12 +19,10 @@ const MultipleChoiceDisplaySchema = createFieldDisplay(
15
19
  })
16
20
  );
17
21
 
18
- const MultipleChoiceSchema = v.strictObject({
22
+ const MultipleChoiceSchema = createFieldSchema({
19
23
  'user-input-mode': v.picklist(['noinput', 'optional', 'required']),
20
24
  display: MultipleChoiceDisplaySchema,
21
25
  'default-value': v.nullish(v.string()),
22
- attribute: v.nullish(v.string()),
23
- datatype: v.nullish(v.picklist(['multiple-choice', 'string'])),
24
26
  'choices-source-fn': v.nullish(v.string()),
25
27
  });
26
28
 
@@ -1,14 +1,19 @@
1
1
  import * as v from 'valibot';
2
- import { createFieldDisplay } from '@uides/stepwise/schemas/field/common';
2
+ import {
3
+ createComponentParams,
4
+ createFieldDisplay,
5
+ createFieldSchema,
6
+ } from '@uides/stepwise/schemas/field/common';
3
7
 
4
8
  const PasswordDisplaySchema = createFieldDisplay(
5
9
  v.strictObject({
6
10
  component: v.literal('password'),
11
+ 'component-params': v.nullish(createComponentParams({})),
7
12
  })
8
13
  );
9
14
 
10
- const PasswordSchema = v.strictObject({
11
- 'user-input-mode': v.picklist(['noinput', 'required', 'optional']),
15
+ const PasswordSchema = createFieldSchema({
16
+ 'user-input-mode': v.picklist(['noinput', 'optional']),
12
17
  display: PasswordDisplaySchema,
13
18
  });
14
19
 
@@ -1,25 +1,21 @@
1
1
  import * as v from 'valibot';
2
- import { createFieldDisplay } from '@uides/stepwise/schemas/field/common';
2
+ import {
3
+ createComponentParams,
4
+ createFieldDisplay,
5
+ createFieldSchema,
6
+ } from '@uides/stepwise/schemas/field/common';
3
7
 
4
8
  const PdfImageDisplaySchema = createFieldDisplay(
5
9
  v.strictObject({
6
10
  component: v.literal('pdf-image'),
7
- 'component-params': v.nullish(
8
- v.strictObject({
9
- coordinates: v.array(v.nullable(v.number())),
10
- position: v.nullish(v.picklist(['left', 'right', 'center', 'justify'])),
11
- 'later-pages': v.nullish(v.boolean()),
12
- })
13
- ),
11
+ 'component-params': v.nullish(createComponentParams({})),
14
12
  })
15
13
  );
16
14
 
17
- const PdfImageSchema = v.strictObject({
15
+ const PdfImageSchema = createFieldSchema({
18
16
  display: PdfImageDisplaySchema,
19
17
  value: v.nullish(v.string()),
20
- 'user-input-mode': v.picklist(['noinput', 'display']),
21
- datatype: v.nullish(v.literal('string')),
22
- attribute: v.nullish(v.string()),
18
+ 'user-input-mode': v.picklist(['noinput']),
23
19
  });
24
20
 
25
21
  export type PdfImageType = v.InferOutput<typeof PdfImageSchema>;
@@ -1,17 +1,20 @@
1
1
  import * as v from 'valibot';
2
- import { createFieldDisplay } from '@uides/stepwise/schemas/field/common';
2
+ import {
3
+ createComponentParams,
4
+ createFieldDisplay,
5
+ createFieldSchema,
6
+ } from '@uides/stepwise/schemas/field/common';
3
7
 
4
8
  const PostalCodeDisplaySchema = createFieldDisplay(
5
9
  v.strictObject({
6
10
  component: v.literal('postal_code'),
11
+ 'component-params': v.nullish(createComponentParams({})),
7
12
  })
8
13
  );
9
14
 
10
- const PostalCodeSchema = v.strictObject({
11
- 'user-input-mode': v.picklist(['noinput', 'optional', 'required']),
15
+ const PostalCodeSchema = createFieldSchema({
16
+ 'user-input-mode': v.picklist(['noinput', 'required']),
12
17
  display: PostalCodeDisplaySchema,
13
- datatype: v.nullish(v.literal('postal_code')),
14
- attribute: v.nullish(v.string()),
15
18
  });
16
19
 
17
20
  export type PostalCodeType = v.InferOutput<typeof PostalCodeSchema>;
@@ -1,5 +1,9 @@
1
1
  import * as v from 'valibot';
2
- import { createFieldDisplay } from '@uides/stepwise/schemas/field/common';
2
+ import {
3
+ createComponentParams,
4
+ createFieldDisplay,
5
+ createFieldSchema,
6
+ } from '@uides/stepwise/schemas/field/common';
3
7
 
4
8
  const PreferenceMultipleChoiceDisplaySchema = createFieldDisplay(
5
9
  v.strictObject({
@@ -7,7 +11,7 @@ const PreferenceMultipleChoiceDisplaySchema = createFieldDisplay(
7
11
  choices: v.nullish(v.record(v.string(), v.string())),
8
12
  'choices-order': v.nullish(v.string()),
9
13
  'component-params': v.nullish(
10
- v.strictObject({
14
+ createComponentParams({
11
15
  min: v.nullish(v.number()),
12
16
  max: v.nullish(v.number()),
13
17
  labels: v.nullish(
@@ -16,7 +20,6 @@ const PreferenceMultipleChoiceDisplaySchema = createFieldDisplay(
16
20
  addItem: v.nullish(v.string()),
17
21
  addTitle: v.nullish(v.string()),
18
22
  submitAdd: v.nullish(v.string()),
19
- itemTitle: v.nullish(v.string()),
20
23
  })
21
24
  ),
22
25
  })
@@ -24,11 +27,9 @@ const PreferenceMultipleChoiceDisplaySchema = createFieldDisplay(
24
27
  })
25
28
  );
26
29
 
27
- const PreferenceMultipleChoiceSchema = v.strictObject({
28
- 'user-input-mode': v.picklist(['noinput', 'optional', 'required']),
30
+ const PreferenceMultipleChoiceSchema = createFieldSchema({
31
+ 'user-input-mode': v.picklist(['noinput', 'optional']),
29
32
  display: PreferenceMultipleChoiceDisplaySchema,
30
- attribute: v.nullish(v.string()),
31
- datatype: v.nullish(v.literal('preference-multiple-choice')),
32
33
  'choices-source-fn': v.nullish(v.string()),
33
34
  });
34
35
 
@@ -1,28 +1,25 @@
1
1
  import * as v from 'valibot';
2
- import { createFieldDisplay } from '@uides/stepwise/schemas/field/common';
2
+ import {
3
+ createComponentParams,
4
+ createFieldDisplay,
5
+ createFieldSchema,
6
+ } from '@uides/stepwise/schemas/field/common';
3
7
 
4
8
  const QrcodeDisplaySchema = createFieldDisplay(
5
9
  v.strictObject({
6
10
  component: v.literal('qrcode'),
7
11
  'component-params': v.nullish(
8
- v.strictObject({
9
- coordinates: v.nullish(v.array(v.nullable(v.number()))),
10
- position: v.nullish(v.picklist(['left', 'right', 'center', 'justify'])),
12
+ createComponentParams({
11
13
  size: v.nullish(v.number()),
12
- 'later-pages': v.nullish(v.boolean()),
13
14
  })
14
15
  ),
15
16
  })
16
17
  );
17
18
 
18
- const QrcodeSchema = v.strictObject({
19
+ const QrcodeSchema = createFieldSchema({
19
20
  'user-input-mode': v.picklist(['noinput', 'display']),
20
21
  display: QrcodeDisplaySchema,
21
- attribute: v.nullish(v.string()),
22
- sources: v.nullish(v.string()),
23
22
  value: v.nullish(v.string()),
24
- 'value-constructor': v.nullish(v.string()),
25
- 'is-display-field': v.nullish(v.boolean()),
26
23
  });
27
24
 
28
25
  export type QrcodeType = v.InferOutput<typeof QrcodeSchema>;
@@ -1,26 +1,26 @@
1
1
  import * as v from 'valibot';
2
- import { createFieldDisplay } from '@uides/stepwise/schemas/field/common';
2
+ import {
3
+ createComponentParams,
4
+ createFieldDisplay,
5
+ createFieldSchema,
6
+ } from '@uides/stepwise/schemas/field/common';
3
7
 
4
8
  const QuoteDisplaySchema = createFieldDisplay(
5
9
  v.strictObject({
6
10
  component: v.literal('quote'),
7
11
  'component-params': v.nullish(
8
- v.strictObject({
12
+ createComponentParams({
9
13
  mode: v.picklist(['error', 'info', 'warning']),
10
14
  })
11
15
  ),
12
16
  })
13
17
  );
14
18
 
15
- const QuoteSchema = v.strictObject({
16
- 'user-input-mode': v.picklist(['noinput', 'display']),
19
+ const QuoteSchema = createFieldSchema({
20
+ 'user-input-mode': v.picklist(['display']),
17
21
  display: QuoteDisplaySchema,
18
22
  value: v.nullish(v.string()),
19
- sources: v.nullish(v.string()),
20
- 'value-constructor': v.nullish(v.string()),
21
23
  safe: v.nullish(v.boolean()),
22
- attribute: v.nullish(v.literal('chosen_auto:insurance1_error')),
23
- datatype: v.nullish(v.picklist(['quote', 'string'])),
24
24
  });
25
25
 
26
26
  export type QuoteType = v.InferOutput<typeof QuoteSchema>;