@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,7 +1,14 @@
1
1
  import * as v from 'valibot';
2
2
  declare const ChoiceSchema: v.StrictObjectSchema<{
3
- readonly 'user-input-mode': v.PicklistSchema<["noinput", "optional", "required"], undefined>;
4
- readonly display: v.SchemaWithPipe<readonly [v.RecordSchema<v.StringSchema<undefined>, v.AnySchema, undefined>, v.RawCheckAction<import("../common.js").DisplayType<v.ObjectSchema<{
3
+ readonly attribute: v.NullishSchema<v.AnySchema, undefined>;
4
+ readonly sources: v.NullishSchema<v.AnySchema, undefined>;
5
+ readonly 'value-constructor': v.NullishSchema<v.AnySchema, undefined>;
6
+ readonly datatype: v.NullishSchema<v.AnySchema, undefined>;
7
+ readonly 'is-display-field': v.NullishSchema<v.AnySchema, undefined>;
8
+ readonly 'default-on-empty': v.NullishSchema<v.AnySchema, undefined>;
9
+ } & {
10
+ 'user-input-mode': v.PicklistSchema<["noinput", "optional", "required"], undefined>;
11
+ display: v.SchemaWithPipe<readonly [v.RecordSchema<v.StringSchema<undefined>, v.AnySchema, undefined>, v.RawCheckAction<import("../common.js").DisplayType<v.ObjectSchema<{
5
12
  readonly title: v.NullishSchema<v.StringSchema<undefined>, undefined>;
6
13
  readonly title_md: v.NullishSchema<v.NumberSchema<undefined>, undefined>;
7
14
  readonly value_md: v.NullishSchema<v.NumberSchema<undefined>, undefined>;
@@ -17,9 +24,43 @@ declare const ChoiceSchema: v.StrictObjectSchema<{
17
24
  readonly choices: v.NullishSchema<v.UnionSchema<[v.StringSchema<undefined>, v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>], undefined>, undefined>;
18
25
  readonly 'choices-order': v.NullishSchema<v.StringSchema<undefined>, undefined>;
19
26
  readonly 'component-params': v.NullishSchema<v.StrictObjectSchema<{
20
- readonly autocomplete: v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
21
- readonly 'legacy-mode': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
22
- readonly 'format-title': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
27
+ readonly coordinates: v.NullishSchema<v.AnySchema, undefined>;
28
+ readonly 'later-pages': v.NullishSchema<v.AnySchema, undefined>;
29
+ readonly fontSize: v.NullishSchema<v.AnySchema, undefined>;
30
+ readonly fontName: v.NullishSchema<v.AnySchema, undefined>;
31
+ readonly leading: v.NullishSchema<v.AnySchema, undefined>;
32
+ readonly textColor: v.NullishSchema<v.AnySchema, undefined>;
33
+ readonly backColor: v.NullishSchema<v.AnySchema, undefined>;
34
+ readonly bold: v.NullishSchema<v.AnySchema, undefined>;
35
+ readonly format: v.NullishSchema<v.AnySchema, undefined>;
36
+ readonly emph: v.NullishSchema<v.AnySchema, undefined>;
37
+ readonly ignore_emph: v.NullishSchema<v.AnySchema, undefined>;
38
+ readonly cell_valign: v.NullishSchema<v.AnySchema, undefined>;
39
+ readonly position: v.NullishSchema<v.AnySchema, undefined>;
40
+ readonly attachment_retrieval: v.NullishSchema<v.AnySchema, undefined>;
41
+ } & {
42
+ autocomplete: v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
43
+ 'legacy-mode': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
44
+ 'format-title': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
45
+ }, undefined> | v.LooseObjectSchema<{
46
+ readonly coordinates: v.NullishSchema<v.AnySchema, undefined>;
47
+ readonly 'later-pages': v.NullishSchema<v.AnySchema, undefined>;
48
+ readonly fontSize: v.NullishSchema<v.AnySchema, undefined>;
49
+ readonly fontName: v.NullishSchema<v.AnySchema, undefined>;
50
+ readonly leading: v.NullishSchema<v.AnySchema, undefined>;
51
+ readonly textColor: v.NullishSchema<v.AnySchema, undefined>;
52
+ readonly backColor: v.NullishSchema<v.AnySchema, undefined>;
53
+ readonly bold: v.NullishSchema<v.AnySchema, undefined>;
54
+ readonly format: v.NullishSchema<v.AnySchema, undefined>;
55
+ readonly emph: v.NullishSchema<v.AnySchema, undefined>;
56
+ readonly ignore_emph: v.NullishSchema<v.AnySchema, undefined>;
57
+ readonly cell_valign: v.NullishSchema<v.AnySchema, undefined>;
58
+ readonly position: v.NullishSchema<v.AnySchema, undefined>;
59
+ readonly attachment_retrieval: v.NullishSchema<v.AnySchema, undefined>;
60
+ } & {
61
+ autocomplete: v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
62
+ 'legacy-mode': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
63
+ 'format-title': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
23
64
  }, undefined>, undefined>;
24
65
  }, undefined>, v.ObjectSchema<{
25
66
  readonly title: v.NullishSchema<v.StringSchema<undefined>, undefined>;
@@ -37,9 +78,109 @@ declare const ChoiceSchema: v.StrictObjectSchema<{
37
78
  readonly choices: v.NullishSchema<v.UnionSchema<[v.StringSchema<undefined>, v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>], undefined>, undefined>;
38
79
  readonly 'choices-order': v.NullishSchema<v.StringSchema<undefined>, undefined>;
39
80
  readonly 'component-params': v.NullishSchema<v.StrictObjectSchema<{
40
- readonly autocomplete: v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
41
- readonly 'legacy-mode': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
42
- readonly 'format-title': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
81
+ readonly coordinates: v.NullishSchema<v.AnySchema, undefined>;
82
+ readonly 'later-pages': v.NullishSchema<v.AnySchema, undefined>;
83
+ readonly fontSize: v.NullishSchema<v.AnySchema, undefined>;
84
+ readonly fontName: v.NullishSchema<v.AnySchema, undefined>;
85
+ readonly leading: v.NullishSchema<v.AnySchema, undefined>;
86
+ readonly textColor: v.NullishSchema<v.AnySchema, undefined>;
87
+ readonly backColor: v.NullishSchema<v.AnySchema, undefined>;
88
+ readonly bold: v.NullishSchema<v.AnySchema, undefined>;
89
+ readonly format: v.NullishSchema<v.AnySchema, undefined>;
90
+ readonly emph: v.NullishSchema<v.AnySchema, undefined>;
91
+ readonly ignore_emph: v.NullishSchema<v.AnySchema, undefined>;
92
+ readonly cell_valign: v.NullishSchema<v.AnySchema, undefined>;
93
+ readonly position: v.NullishSchema<v.AnySchema, undefined>;
94
+ readonly attachment_retrieval: v.NullishSchema<v.AnySchema, undefined>;
95
+ } & {
96
+ autocomplete: v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
97
+ 'legacy-mode': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
98
+ 'format-title': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
99
+ }, undefined> | v.LooseObjectSchema<{
100
+ readonly coordinates: v.NullishSchema<v.AnySchema, undefined>;
101
+ readonly 'later-pages': v.NullishSchema<v.AnySchema, undefined>;
102
+ readonly fontSize: v.NullishSchema<v.AnySchema, undefined>;
103
+ readonly fontName: v.NullishSchema<v.AnySchema, undefined>;
104
+ readonly leading: v.NullishSchema<v.AnySchema, undefined>;
105
+ readonly textColor: v.NullishSchema<v.AnySchema, undefined>;
106
+ readonly backColor: v.NullishSchema<v.AnySchema, undefined>;
107
+ readonly bold: v.NullishSchema<v.AnySchema, undefined>;
108
+ readonly format: v.NullishSchema<v.AnySchema, undefined>;
109
+ readonly emph: v.NullishSchema<v.AnySchema, undefined>;
110
+ readonly ignore_emph: v.NullishSchema<v.AnySchema, undefined>;
111
+ readonly cell_valign: v.NullishSchema<v.AnySchema, undefined>;
112
+ readonly position: v.NullishSchema<v.AnySchema, undefined>;
113
+ readonly attachment_retrieval: v.NullishSchema<v.AnySchema, undefined>;
114
+ } & {
115
+ autocomplete: v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
116
+ 'legacy-mode': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
117
+ 'format-title': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
118
+ }, undefined>, undefined>;
119
+ }, undefined>>>]>;
120
+ 'default-value': v.NullishSchema<v.StringSchema<undefined>, undefined>;
121
+ 'choices-source-fn': v.NullishSchema<v.StringSchema<undefined>, undefined>;
122
+ }, undefined> | v.LooseObjectSchema<{
123
+ readonly attribute: v.NullishSchema<v.AnySchema, undefined>;
124
+ readonly sources: v.NullishSchema<v.AnySchema, undefined>;
125
+ readonly 'value-constructor': v.NullishSchema<v.AnySchema, undefined>;
126
+ readonly datatype: v.NullishSchema<v.AnySchema, undefined>;
127
+ readonly 'is-display-field': v.NullishSchema<v.AnySchema, undefined>;
128
+ readonly 'default-on-empty': v.NullishSchema<v.AnySchema, undefined>;
129
+ } & {
130
+ 'user-input-mode': v.PicklistSchema<["noinput", "optional", "required"], undefined>;
131
+ display: v.SchemaWithPipe<readonly [v.RecordSchema<v.StringSchema<undefined>, v.AnySchema, undefined>, v.RawCheckAction<import("../common.js").DisplayType<v.ObjectSchema<{
132
+ readonly title: v.NullishSchema<v.StringSchema<undefined>, undefined>;
133
+ readonly title_md: v.NullishSchema<v.NumberSchema<undefined>, undefined>;
134
+ readonly value_md: v.NullishSchema<v.NumberSchema<undefined>, undefined>;
135
+ readonly hint: v.NullishSchema<v.StringSchema<undefined>, undefined>;
136
+ readonly hint_md: v.NullishSchema<v.StringSchema<undefined>, undefined>;
137
+ readonly template_hint: v.NullishSchema<v.StringSchema<undefined>, undefined>;
138
+ readonly example: v.NullishSchema<v.StringSchema<undefined>, undefined>;
139
+ readonly layout: v.NullishSchema<v.StrictObjectSchema<{
140
+ readonly md: v.StringSchema<undefined>;
141
+ }, undefined>, undefined>;
142
+ } & {
143
+ readonly component: v.LiteralSchema<"choice", undefined>;
144
+ readonly choices: v.NullishSchema<v.UnionSchema<[v.StringSchema<undefined>, v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>], undefined>, undefined>;
145
+ readonly 'choices-order': v.NullishSchema<v.StringSchema<undefined>, undefined>;
146
+ readonly 'component-params': v.NullishSchema<v.StrictObjectSchema<{
147
+ readonly coordinates: v.NullishSchema<v.AnySchema, undefined>;
148
+ readonly 'later-pages': v.NullishSchema<v.AnySchema, undefined>;
149
+ readonly fontSize: v.NullishSchema<v.AnySchema, undefined>;
150
+ readonly fontName: v.NullishSchema<v.AnySchema, undefined>;
151
+ readonly leading: v.NullishSchema<v.AnySchema, undefined>;
152
+ readonly textColor: v.NullishSchema<v.AnySchema, undefined>;
153
+ readonly backColor: v.NullishSchema<v.AnySchema, undefined>;
154
+ readonly bold: v.NullishSchema<v.AnySchema, undefined>;
155
+ readonly format: v.NullishSchema<v.AnySchema, undefined>;
156
+ readonly emph: v.NullishSchema<v.AnySchema, undefined>;
157
+ readonly ignore_emph: v.NullishSchema<v.AnySchema, undefined>;
158
+ readonly cell_valign: v.NullishSchema<v.AnySchema, undefined>;
159
+ readonly position: v.NullishSchema<v.AnySchema, undefined>;
160
+ readonly attachment_retrieval: v.NullishSchema<v.AnySchema, undefined>;
161
+ } & {
162
+ autocomplete: v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
163
+ 'legacy-mode': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
164
+ 'format-title': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
165
+ }, undefined> | v.LooseObjectSchema<{
166
+ readonly coordinates: v.NullishSchema<v.AnySchema, undefined>;
167
+ readonly 'later-pages': v.NullishSchema<v.AnySchema, undefined>;
168
+ readonly fontSize: v.NullishSchema<v.AnySchema, undefined>;
169
+ readonly fontName: v.NullishSchema<v.AnySchema, undefined>;
170
+ readonly leading: v.NullishSchema<v.AnySchema, undefined>;
171
+ readonly textColor: v.NullishSchema<v.AnySchema, undefined>;
172
+ readonly backColor: v.NullishSchema<v.AnySchema, undefined>;
173
+ readonly bold: v.NullishSchema<v.AnySchema, undefined>;
174
+ readonly format: v.NullishSchema<v.AnySchema, undefined>;
175
+ readonly emph: v.NullishSchema<v.AnySchema, undefined>;
176
+ readonly ignore_emph: v.NullishSchema<v.AnySchema, undefined>;
177
+ readonly cell_valign: v.NullishSchema<v.AnySchema, undefined>;
178
+ readonly position: v.NullishSchema<v.AnySchema, undefined>;
179
+ readonly attachment_retrieval: v.NullishSchema<v.AnySchema, undefined>;
180
+ } & {
181
+ autocomplete: v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
182
+ 'legacy-mode': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
183
+ 'format-title': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
43
184
  }, undefined>, undefined>;
44
185
  }, undefined>, v.ObjectSchema<{
45
186
  readonly title: v.NullishSchema<v.StringSchema<undefined>, undefined>;
@@ -57,15 +198,47 @@ declare const ChoiceSchema: v.StrictObjectSchema<{
57
198
  readonly choices: v.NullishSchema<v.UnionSchema<[v.StringSchema<undefined>, v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>], undefined>, undefined>;
58
199
  readonly 'choices-order': v.NullishSchema<v.StringSchema<undefined>, undefined>;
59
200
  readonly 'component-params': v.NullishSchema<v.StrictObjectSchema<{
60
- readonly autocomplete: v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
61
- readonly 'legacy-mode': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
62
- readonly 'format-title': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
201
+ readonly coordinates: v.NullishSchema<v.AnySchema, undefined>;
202
+ readonly 'later-pages': v.NullishSchema<v.AnySchema, undefined>;
203
+ readonly fontSize: v.NullishSchema<v.AnySchema, undefined>;
204
+ readonly fontName: v.NullishSchema<v.AnySchema, undefined>;
205
+ readonly leading: v.NullishSchema<v.AnySchema, undefined>;
206
+ readonly textColor: v.NullishSchema<v.AnySchema, undefined>;
207
+ readonly backColor: v.NullishSchema<v.AnySchema, undefined>;
208
+ readonly bold: v.NullishSchema<v.AnySchema, undefined>;
209
+ readonly format: v.NullishSchema<v.AnySchema, undefined>;
210
+ readonly emph: v.NullishSchema<v.AnySchema, undefined>;
211
+ readonly ignore_emph: v.NullishSchema<v.AnySchema, undefined>;
212
+ readonly cell_valign: v.NullishSchema<v.AnySchema, undefined>;
213
+ readonly position: v.NullishSchema<v.AnySchema, undefined>;
214
+ readonly attachment_retrieval: v.NullishSchema<v.AnySchema, undefined>;
215
+ } & {
216
+ autocomplete: v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
217
+ 'legacy-mode': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
218
+ 'format-title': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
219
+ }, undefined> | v.LooseObjectSchema<{
220
+ readonly coordinates: v.NullishSchema<v.AnySchema, undefined>;
221
+ readonly 'later-pages': v.NullishSchema<v.AnySchema, undefined>;
222
+ readonly fontSize: v.NullishSchema<v.AnySchema, undefined>;
223
+ readonly fontName: v.NullishSchema<v.AnySchema, undefined>;
224
+ readonly leading: v.NullishSchema<v.AnySchema, undefined>;
225
+ readonly textColor: v.NullishSchema<v.AnySchema, undefined>;
226
+ readonly backColor: v.NullishSchema<v.AnySchema, undefined>;
227
+ readonly bold: v.NullishSchema<v.AnySchema, undefined>;
228
+ readonly format: v.NullishSchema<v.AnySchema, undefined>;
229
+ readonly emph: v.NullishSchema<v.AnySchema, undefined>;
230
+ readonly ignore_emph: v.NullishSchema<v.AnySchema, undefined>;
231
+ readonly cell_valign: v.NullishSchema<v.AnySchema, undefined>;
232
+ readonly position: v.NullishSchema<v.AnySchema, undefined>;
233
+ readonly attachment_retrieval: v.NullishSchema<v.AnySchema, undefined>;
234
+ } & {
235
+ autocomplete: v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
236
+ 'legacy-mode': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
237
+ 'format-title': v.NullishSchema<v.BooleanSchema<undefined>, undefined>;
63
238
  }, undefined>, undefined>;
64
239
  }, undefined>>>]>;
65
- readonly 'default-value': v.NullishSchema<v.StringSchema<undefined>, undefined>;
66
- readonly 'choices-source-fn': v.NullishSchema<v.StringSchema<undefined>, undefined>;
67
- readonly attribute: v.NullishSchema<v.StringSchema<undefined>, undefined>;
68
- readonly datatype: v.NullishSchema<v.PicklistSchema<["choice", "string"], undefined>, undefined>;
240
+ 'default-value': v.NullishSchema<v.StringSchema<undefined>, undefined>;
241
+ 'choices-source-fn': v.NullishSchema<v.StringSchema<undefined>, undefined>;
69
242
  }, undefined>;
70
243
  export type ChoiceType = v.InferOutput<typeof ChoiceSchema>;
71
244
  export type ChoiceSchemaType = v.GenericSchema<ChoiceType>;
@@ -1,5 +1,5 @@
1
1
  import { boolean as external_valibot_boolean, literal, nullish, picklist, record, strictObject, string, union } from "valibot";
2
- import { createFieldDisplay } from "../common.js";
2
+ import { createComponentParams, createFieldDisplay, createFieldSchema } from "../common.js";
3
3
  const ChoiceDisplaySchema = createFieldDisplay(strictObject({
4
4
  component: literal('choice'),
5
5
  choices: nullish(union([
@@ -7,13 +7,13 @@ const ChoiceDisplaySchema = createFieldDisplay(strictObject({
7
7
  record(string(), string())
8
8
  ])),
9
9
  'choices-order': nullish(string()),
10
- 'component-params': nullish(strictObject({
10
+ 'component-params': nullish(createComponentParams({
11
11
  autocomplete: nullish(external_valibot_boolean()),
12
12
  'legacy-mode': nullish(external_valibot_boolean()),
13
13
  'format-title': nullish(external_valibot_boolean())
14
14
  }))
15
15
  }));
16
- const ChoiceSchema = strictObject({
16
+ const ChoiceSchema = createFieldSchema({
17
17
  'user-input-mode': picklist([
18
18
  'noinput',
19
19
  'optional',
@@ -21,12 +21,7 @@ const ChoiceSchema = strictObject({
21
21
  ]),
22
22
  display: ChoiceDisplaySchema,
23
23
  'default-value': nullish(string()),
24
- 'choices-source-fn': nullish(string()),
25
- attribute: nullish(string()),
26
- datatype: nullish(picklist([
27
- 'choice',
28
- 'string'
29
- ]))
24
+ 'choices-source-fn': nullish(string())
30
25
  });
31
26
  const choice = ChoiceSchema;
32
27
  export { choice as default };
@@ -1,38 +1,13 @@
1
1
  import * as v from 'valibot';
2
2
  import { DisplayLang } from '../common.js';
3
- export declare const DisplayModeAndLangSchema: v.SchemaWithPipe<readonly [v.RecordSchema<v.PicklistSchema<["default", "web", "pdf"], undefined>, v.SchemaWithPipe<readonly [v.RecordSchema<v.PicklistSchema<["default", "el", "en", "fr"], undefined>, v.AnySchema, undefined>, v.CheckAction<{
4
- default?: any;
5
- el?: any;
6
- en?: any;
7
- fr?: any;
8
- }, "At least one display lang must be defined.">]>, undefined>, v.CheckAction<{
9
- default?: {
10
- default?: any;
11
- el?: any;
12
- en?: any;
13
- fr?: any;
14
- } | undefined;
15
- web?: {
16
- default?: any;
17
- el?: any;
18
- en?: any;
19
- fr?: any;
20
- } | undefined;
21
- pdf?: {
22
- default?: any;
23
- el?: any;
24
- en?: any;
25
- fr?: any;
26
- } | undefined;
27
- }, "At least one display mode must be defined.">]>;
3
+ export declare const DisplayModeAndLangSchema: v.SchemaWithPipe<readonly [v.RecordSchema<v.StringSchema<undefined>, v.AnySchema, undefined>, v.RawCheckAction<Record<string, unknown>>]>;
28
4
  type AnyGenericSchema = v.GenericSchema<unknown, unknown>;
29
- export interface DisplayType<DefaultDisplaySchema extends AnyGenericSchema, WebDisplaySchema extends AnyGenericSchema = AnyGenericSchema, PdfDisplaySchema extends AnyGenericSchema = AnyGenericSchema> {
5
+ export interface DisplayType<DefaultDisplaySchema extends AnyGenericSchema, WebDisplaySchema extends AnyGenericSchema = AnyGenericSchema> {
30
6
  default?: Partial<Record<DisplayLang, v.InferOutput<DefaultDisplaySchema> | (unknown & Record<never, never>)>>;
31
7
  web?: Partial<Record<DisplayLang, v.InferOutput<WebDisplaySchema> | (unknown & Record<never, never>)>>;
32
- pdf?: Partial<Record<DisplayLang, v.InferOutput<PdfDisplaySchema> | (unknown & Record<never, never>)>>;
33
8
  }
34
9
  /**
35
- * Creates a field display schema with specified default and PDF display properties.
10
+ * Creates a field display schema with specified default display properties.
36
11
  *
37
12
  * Defaults are:
38
13
  * - title
@@ -45,18 +20,7 @@ export interface DisplayType<DefaultDisplaySchema extends AnyGenericSchema, WebD
45
20
  * - md
46
21
  * - example
47
22
  */
48
- export declare function createFieldDisplay<D extends v.ObjectEntries, P extends v.ObjectEntries = never>(DefaultDisplay: v.StrictObjectSchema<D, undefined> | v.LooseObjectSchema<D, undefined>, PdfDisplay?: v.StrictObjectSchema<P, undefined> | v.LooseObjectSchema<P, undefined>): v.SchemaWithPipe<readonly [v.RecordSchema<v.StringSchema<undefined>, v.AnySchema, undefined>, v.RawCheckAction<DisplayType<v.ObjectSchema<{
49
- readonly title: v.NullishSchema<v.StringSchema<undefined>, undefined>;
50
- readonly title_md: v.NullishSchema<v.NumberSchema<undefined>, undefined>;
51
- readonly value_md: v.NullishSchema<v.NumberSchema<undefined>, undefined>;
52
- readonly hint: v.NullishSchema<v.StringSchema<undefined>, undefined>;
53
- readonly hint_md: v.NullishSchema<v.StringSchema<undefined>, undefined>;
54
- readonly template_hint: v.NullishSchema<v.StringSchema<undefined>, undefined>;
55
- readonly example: v.NullishSchema<v.StringSchema<undefined>, undefined>;
56
- readonly layout: v.NullishSchema<v.StrictObjectSchema<{
57
- readonly md: v.StringSchema<undefined>;
58
- }, undefined>, undefined>;
59
- } & D, undefined>, v.ObjectSchema<{
23
+ export declare function createFieldDisplay<D extends v.ObjectEntries>(DefaultDisplay: v.StrictObjectSchema<D, undefined> | v.LooseObjectSchema<D, undefined>): v.SchemaWithPipe<readonly [v.RecordSchema<v.StringSchema<undefined>, v.AnySchema, undefined>, v.RawCheckAction<DisplayType<v.ObjectSchema<{
60
24
  readonly title: v.NullishSchema<v.StringSchema<undefined>, undefined>;
61
25
  readonly title_md: v.NullishSchema<v.NumberSchema<undefined>, undefined>;
62
26
  readonly value_md: v.NullishSchema<v.NumberSchema<undefined>, undefined>;
@@ -79,4 +43,92 @@ export declare function createFieldDisplay<D extends v.ObjectEntries, P extends
79
43
  readonly md: v.StringSchema<undefined>;
80
44
  }, undefined>, undefined>;
81
45
  } & D, undefined>>>]>;
46
+ export declare const COMMON_FIELD_ATTRS: {
47
+ readonly attribute: v.NullishSchema<v.AnySchema, undefined>;
48
+ readonly sources: v.NullishSchema<v.AnySchema, undefined>;
49
+ readonly 'value-constructor': v.NullishSchema<v.AnySchema, undefined>;
50
+ readonly datatype: v.NullishSchema<v.AnySchema, undefined>;
51
+ readonly 'is-display-field': v.NullishSchema<v.AnySchema, undefined>;
52
+ readonly 'default-on-empty': v.NullishSchema<v.AnySchema, undefined>;
53
+ };
54
+ /**
55
+ * Creates a field schema with common attributes pre-applied.
56
+ *
57
+ * Common attributes are backend-related concerns that the UI does not use, mostly related to PDF.
58
+ * Per-field entries override common ones.
59
+ *
60
+ * @param entries - Field-specific entries.
61
+ * @param mode - `'strict'` (default) or `'loose'` object schema.
62
+ */
63
+ export declare function createFieldSchema<E extends v.ObjectEntries>(entries: E, mode?: 'strict' | 'loose'): v.StrictObjectSchema<{
64
+ readonly attribute: v.NullishSchema<v.AnySchema, undefined>;
65
+ readonly sources: v.NullishSchema<v.AnySchema, undefined>;
66
+ readonly 'value-constructor': v.NullishSchema<v.AnySchema, undefined>;
67
+ readonly datatype: v.NullishSchema<v.AnySchema, undefined>;
68
+ readonly 'is-display-field': v.NullishSchema<v.AnySchema, undefined>;
69
+ readonly 'default-on-empty': v.NullishSchema<v.AnySchema, undefined>;
70
+ } & E, undefined> | v.LooseObjectSchema<{
71
+ readonly attribute: v.NullishSchema<v.AnySchema, undefined>;
72
+ readonly sources: v.NullishSchema<v.AnySchema, undefined>;
73
+ readonly 'value-constructor': v.NullishSchema<v.AnySchema, undefined>;
74
+ readonly datatype: v.NullishSchema<v.AnySchema, undefined>;
75
+ readonly 'is-display-field': v.NullishSchema<v.AnySchema, undefined>;
76
+ readonly 'default-on-empty': v.NullishSchema<v.AnySchema, undefined>;
77
+ } & E, undefined>;
78
+ export declare const COMMON_COMPONENT_PARAMS_ATTRS: {
79
+ readonly coordinates: v.NullishSchema<v.AnySchema, undefined>;
80
+ readonly 'later-pages': v.NullishSchema<v.AnySchema, undefined>;
81
+ readonly fontSize: v.NullishSchema<v.AnySchema, undefined>;
82
+ readonly fontName: v.NullishSchema<v.AnySchema, undefined>;
83
+ readonly leading: v.NullishSchema<v.AnySchema, undefined>;
84
+ readonly textColor: v.NullishSchema<v.AnySchema, undefined>;
85
+ readonly backColor: v.NullishSchema<v.AnySchema, undefined>;
86
+ readonly bold: v.NullishSchema<v.AnySchema, undefined>;
87
+ readonly format: v.NullishSchema<v.AnySchema, undefined>;
88
+ readonly emph: v.NullishSchema<v.AnySchema, undefined>;
89
+ readonly ignore_emph: v.NullishSchema<v.AnySchema, undefined>;
90
+ readonly cell_valign: v.NullishSchema<v.AnySchema, undefined>;
91
+ readonly position: v.NullishSchema<v.AnySchema, undefined>;
92
+ readonly attachment_retrieval: v.NullishSchema<v.AnySchema, undefined>;
93
+ };
94
+ /**
95
+ * Creates a `component-params` schema with common attributes pre-applied.
96
+ *
97
+ * Common attributes are backend-related concerns that the UI does not use, mostly related to PDF.
98
+ * Per-field entries override common ones.
99
+ *
100
+ * @param entries - Field-specific entries.
101
+ * @param mode - `'strict'` (default) or `'loose'` object schema.
102
+ */
103
+ export declare function createComponentParams<E extends v.ObjectEntries>(entries: E, mode?: 'strict' | 'loose'): v.StrictObjectSchema<{
104
+ readonly coordinates: v.NullishSchema<v.AnySchema, undefined>;
105
+ readonly 'later-pages': v.NullishSchema<v.AnySchema, undefined>;
106
+ readonly fontSize: v.NullishSchema<v.AnySchema, undefined>;
107
+ readonly fontName: v.NullishSchema<v.AnySchema, undefined>;
108
+ readonly leading: v.NullishSchema<v.AnySchema, undefined>;
109
+ readonly textColor: v.NullishSchema<v.AnySchema, undefined>;
110
+ readonly backColor: v.NullishSchema<v.AnySchema, undefined>;
111
+ readonly bold: v.NullishSchema<v.AnySchema, undefined>;
112
+ readonly format: v.NullishSchema<v.AnySchema, undefined>;
113
+ readonly emph: v.NullishSchema<v.AnySchema, undefined>;
114
+ readonly ignore_emph: v.NullishSchema<v.AnySchema, undefined>;
115
+ readonly cell_valign: v.NullishSchema<v.AnySchema, undefined>;
116
+ readonly position: v.NullishSchema<v.AnySchema, undefined>;
117
+ readonly attachment_retrieval: v.NullishSchema<v.AnySchema, undefined>;
118
+ } & E, undefined> | v.LooseObjectSchema<{
119
+ readonly coordinates: v.NullishSchema<v.AnySchema, undefined>;
120
+ readonly 'later-pages': v.NullishSchema<v.AnySchema, undefined>;
121
+ readonly fontSize: v.NullishSchema<v.AnySchema, undefined>;
122
+ readonly fontName: v.NullishSchema<v.AnySchema, undefined>;
123
+ readonly leading: v.NullishSchema<v.AnySchema, undefined>;
124
+ readonly textColor: v.NullishSchema<v.AnySchema, undefined>;
125
+ readonly backColor: v.NullishSchema<v.AnySchema, undefined>;
126
+ readonly bold: v.NullishSchema<v.AnySchema, undefined>;
127
+ readonly format: v.NullishSchema<v.AnySchema, undefined>;
128
+ readonly emph: v.NullishSchema<v.AnySchema, undefined>;
129
+ readonly ignore_emph: v.NullishSchema<v.AnySchema, undefined>;
130
+ readonly cell_valign: v.NullishSchema<v.AnySchema, undefined>;
131
+ readonly position: v.NullishSchema<v.AnySchema, undefined>;
132
+ readonly attachment_retrieval: v.NullishSchema<v.AnySchema, undefined>;
133
+ } & E, undefined>;
82
134
  export {};
@@ -1,18 +1,41 @@
1
1
  import { any, check, looseObject, nullish, number, pipe, rawCheck, record, safeParse, strictObject, string } from "valibot";
2
- import { DisplayLangSchema, DisplayModeSchema } from "../common.js";
3
2
  import { resolveDisplay } from "../resolve.js";
4
3
  import { isFailureDataset } from "../../utils/index.js";
5
- const FieldDisplayLangSchema = pipe(record(DisplayLangSchema, any()), check((val)=>{
4
+ const KNOWN_DISPLAY_MODES = [
5
+ 'default',
6
+ 'web',
7
+ 'pdf'
8
+ ];
9
+ const FieldDisplayLangSchema = pipe(record(string(), any()), check((val)=>{
6
10
  if (!val) return false;
7
11
  if (0 === Object.keys(val).length) return false;
8
12
  return true;
9
13
  }, 'At least one display lang must be defined.'));
10
- const DisplayModeAndLangSchema = pipe(record(DisplayModeSchema, FieldDisplayLangSchema), check((val)=>{
11
- if (!val) return false;
12
- if (0 === Object.keys(val).length) return false;
13
- return true;
14
- }, 'At least one display mode must be defined.'));
15
- function createFieldDisplay(DefaultDisplay, PdfDisplay) {
14
+ const DisplayModeAndLangSchema = pipe(record(string(), any()), rawCheck(({ dataset, addIssue })=>{
15
+ if (isFailureDataset(dataset)) return;
16
+ const val = dataset.value;
17
+ if (!val || 0 === Object.keys(val).length) return void addIssue({
18
+ message: 'At least one display mode must be defined.'
19
+ });
20
+ for (const [key, value] of Object.entries(val)){
21
+ if (!KNOWN_DISPLAY_MODES.includes(key)) continue;
22
+ const result = safeParse(FieldDisplayLangSchema, value);
23
+ if (result.issues) result.issues.forEach((issue)=>{
24
+ addIssue({
25
+ message: issue.message,
26
+ path: issue.path,
27
+ input: issue.input,
28
+ expected: issue.expected ?? void 0,
29
+ received: issue.received
30
+ });
31
+ });
32
+ }
33
+ }));
34
+ const VALIDATED_DISPLAY_MODES = [
35
+ 'default',
36
+ 'web'
37
+ ];
38
+ function createFieldDisplay(DefaultDisplay) {
16
39
  const baseObjectSchema = isLooseObject(DefaultDisplay) ? looseObject : strictObject;
17
40
  const defaultDisplayContent = baseObjectSchema({
18
41
  ...FieldDisplayModeBaseSchema.entries,
@@ -22,8 +45,8 @@ function createFieldDisplay(DefaultDisplay, PdfDisplay) {
22
45
  const DisplaySchema = pipe(record(string(), any()), rawCheck(({ addIssue, dataset })=>{
23
46
  if (isFailureDataset(dataset)) return;
24
47
  const display = dataset.value;
25
- DisplayModeSchema.options.forEach((displayMode)=>{
26
- if (!(displayMode in display && display[displayMode]) || 'pdf' === displayMode) return;
48
+ VALIDATED_DISPLAY_MODES.forEach((displayMode)=>{
49
+ if (!(displayMode in display && display[displayMode])) return;
27
50
  Object.keys(display[displayMode]).forEach((displayLang)=>{
28
51
  const resolvedDisplay = resolveDisplay(displayMode, displayLang, display);
29
52
  const displaySchema = defaultDisplaySchema;
@@ -60,4 +83,48 @@ const FieldDisplayModeBaseSchema = strictObject({
60
83
  md: string()
61
84
  }))
62
85
  });
63
- export { DisplayModeAndLangSchema, createFieldDisplay };
86
+ const COMMON_FIELD_ATTRS = {
87
+ attribute: nullish(any()),
88
+ sources: nullish(any()),
89
+ 'value-constructor': nullish(any()),
90
+ datatype: nullish(any()),
91
+ 'is-display-field': nullish(any()),
92
+ 'default-on-empty': nullish(any())
93
+ };
94
+ function createFieldSchema(entries, mode = 'strict') {
95
+ if ('strict' === mode) return strictObject({
96
+ ...COMMON_FIELD_ATTRS,
97
+ ...entries
98
+ });
99
+ return looseObject({
100
+ ...COMMON_FIELD_ATTRS,
101
+ ...entries
102
+ });
103
+ }
104
+ const COMMON_COMPONENT_PARAMS_ATTRS = {
105
+ coordinates: nullish(any()),
106
+ 'later-pages': nullish(any()),
107
+ fontSize: nullish(any()),
108
+ fontName: nullish(any()),
109
+ leading: nullish(any()),
110
+ textColor: nullish(any()),
111
+ backColor: nullish(any()),
112
+ bold: nullish(any()),
113
+ format: nullish(any()),
114
+ emph: nullish(any()),
115
+ ignore_emph: nullish(any()),
116
+ cell_valign: nullish(any()),
117
+ position: nullish(any()),
118
+ attachment_retrieval: nullish(any())
119
+ };
120
+ function createComponentParams(entries, mode = 'strict') {
121
+ if ('strict' === mode) return strictObject({
122
+ ...COMMON_COMPONENT_PARAMS_ATTRS,
123
+ ...entries
124
+ });
125
+ return looseObject({
126
+ ...COMMON_COMPONENT_PARAMS_ATTRS,
127
+ ...entries
128
+ });
129
+ }
130
+ export { COMMON_COMPONENT_PARAMS_ATTRS, COMMON_FIELD_ATTRS, DisplayModeAndLangSchema, createComponentParams, createFieldDisplay, createFieldSchema };