@fieldia/core 0.9.2 → 0.11.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 (235) hide show
  1. package/README.md +199 -0
  2. package/package.json +1 -1
  3. package/schema/page.schema.json +1837 -94
  4. package/src/index.d.mts +1 -0
  5. package/src/index.d.ts +1 -0
  6. package/src/index.js +4 -1
  7. package/src/index.js.map +1 -1
  8. package/src/index.mjs +1 -0
  9. package/src/index.mjs.map +1 -1
  10. package/src/lib/expression/evaluator.d.mts +6 -5
  11. package/src/lib/expression/evaluator.d.ts +6 -5
  12. package/src/lib/expression/evaluator.js +37 -22
  13. package/src/lib/expression/evaluator.js.map +1 -1
  14. package/src/lib/expression/evaluator.mjs +32 -18
  15. package/src/lib/expression/evaluator.mjs.map +1 -1
  16. package/src/lib/expression/expression.d.mts +21 -0
  17. package/src/lib/expression/expression.d.ts +21 -0
  18. package/src/lib/expression/expression.js +29 -0
  19. package/src/lib/expression/expression.js.map +1 -0
  20. package/src/lib/expression/expression.mjs +26 -0
  21. package/src/lib/expression/expression.mjs.map +1 -0
  22. package/src/lib/expression/extractFieldNames.js +6 -1
  23. package/src/lib/expression/extractFieldNames.js.map +1 -1
  24. package/src/lib/expression/extractFieldNames.mjs +6 -1
  25. package/src/lib/expression/extractFieldNames.mjs.map +1 -1
  26. package/src/lib/expression/functions.d.mts +35 -0
  27. package/src/lib/expression/functions.d.ts +35 -0
  28. package/src/lib/expression/functions.js +129 -0
  29. package/src/lib/expression/functions.js.map +1 -0
  30. package/src/lib/expression/functions.mjs +124 -0
  31. package/src/lib/expression/functions.mjs.map +1 -0
  32. package/src/lib/expression/modifier.d.mts +3 -1
  33. package/src/lib/expression/modifier.d.ts +3 -1
  34. package/src/lib/expression/modifier.js +4 -27
  35. package/src/lib/expression/modifier.js.map +1 -1
  36. package/src/lib/expression/modifier.mjs +3 -26
  37. package/src/lib/expression/modifier.mjs.map +1 -1
  38. package/src/lib/expression/operations.d.mts +25 -0
  39. package/src/lib/expression/operations.d.ts +25 -0
  40. package/src/lib/expression/operations.js +81 -0
  41. package/src/lib/expression/operations.js.map +1 -0
  42. package/src/lib/expression/operations.mjs +72 -0
  43. package/src/lib/expression/operations.mjs.map +1 -0
  44. package/src/lib/expression/order.d.mts +11 -0
  45. package/src/lib/expression/order.d.ts +11 -0
  46. package/src/lib/expression/order.js +36 -0
  47. package/src/lib/expression/order.js.map +1 -0
  48. package/src/lib/expression/order.mjs +33 -0
  49. package/src/lib/expression/order.mjs.map +1 -0
  50. package/src/lib/expression/parser.d.mts +34 -4
  51. package/src/lib/expression/parser.d.ts +34 -4
  52. package/src/lib/expression/parser.js +72 -6
  53. package/src/lib/expression/parser.js.map +1 -1
  54. package/src/lib/expression/parser.mjs +72 -6
  55. package/src/lib/expression/parser.mjs.map +1 -1
  56. package/src/lib/expression/reads.d.mts +8 -0
  57. package/src/lib/expression/reads.d.ts +8 -0
  58. package/src/lib/expression/reads.js +48 -0
  59. package/src/lib/expression/reads.js.map +1 -0
  60. package/src/lib/expression/reads.mjs +44 -0
  61. package/src/lib/expression/reads.mjs.map +1 -0
  62. package/src/lib/expression/tokenizer.d.mts +7 -6
  63. package/src/lib/expression/tokenizer.d.ts +7 -6
  64. package/src/lib/expression/tokenizer.js +28 -18
  65. package/src/lib/expression/tokenizer.js.map +1 -1
  66. package/src/lib/expression/tokenizer.mjs +28 -18
  67. package/src/lib/expression/tokenizer.mjs.map +1 -1
  68. package/src/lib/format/actions.d.mts +692 -0
  69. package/src/lib/format/actions.d.ts +692 -0
  70. package/src/lib/format/actions.js +53 -0
  71. package/src/lib/format/actions.js.map +1 -0
  72. package/src/lib/format/actions.mjs +50 -0
  73. package/src/lib/format/actions.mjs.map +1 -0
  74. package/src/lib/format/field.d.mts +686 -5
  75. package/src/lib/format/field.d.ts +686 -5
  76. package/src/lib/format/field.js +117 -13
  77. package/src/lib/format/field.js.map +1 -1
  78. package/src/lib/format/field.mjs +116 -12
  79. package/src/lib/format/field.mjs.map +1 -1
  80. package/src/lib/format/layout.d.mts +1130 -22
  81. package/src/lib/format/layout.d.ts +1130 -22
  82. package/src/lib/format/layout.js +67 -5
  83. package/src/lib/format/layout.js.map +1 -1
  84. package/src/lib/format/layout.mjs +66 -4
  85. package/src/lib/format/layout.mjs.map +1 -1
  86. package/src/lib/format/layout.types.d.mts +2 -1
  87. package/src/lib/format/layout.types.d.ts +2 -1
  88. package/src/lib/format/names.d.mts +1 -1
  89. package/src/lib/format/names.d.ts +1 -1
  90. package/src/lib/format/names.js +1 -0
  91. package/src/lib/format/names.js.map +1 -1
  92. package/src/lib/format/names.mjs +1 -0
  93. package/src/lib/format/names.mjs.map +1 -1
  94. package/src/lib/format/page.d.mts +1007 -7
  95. package/src/lib/format/page.d.ts +1007 -7
  96. package/src/lib/format/page.js +28 -0
  97. package/src/lib/format/page.js.map +1 -1
  98. package/src/lib/format/page.mjs +28 -0
  99. package/src/lib/format/page.mjs.map +1 -1
  100. package/src/lib/format/part-look.d.mts +36 -0
  101. package/src/lib/format/part-look.d.ts +36 -0
  102. package/src/lib/format/part-look.js +23 -0
  103. package/src/lib/format/part-look.js.map +1 -0
  104. package/src/lib/format/part-look.mjs +20 -0
  105. package/src/lib/format/part-look.mjs.map +1 -0
  106. package/src/lib/format/references.d.mts +33 -1
  107. package/src/lib/format/references.d.ts +33 -1
  108. package/src/lib/format/references.js +227 -10
  109. package/src/lib/format/references.js.map +1 -1
  110. package/src/lib/format/references.mjs +227 -10
  111. package/src/lib/format/references.mjs.map +1 -1
  112. package/src/lib/format/translate.d.mts +20 -0
  113. package/src/lib/format/translate.d.ts +20 -0
  114. package/src/lib/format/translate.js +79 -21
  115. package/src/lib/format/translate.js.map +1 -1
  116. package/src/lib/format/translate.mjs +76 -21
  117. package/src/lib/format/translate.mjs.map +1 -1
  118. package/src/lib/record/check.d.mts +19 -1
  119. package/src/lib/record/check.d.ts +19 -1
  120. package/src/lib/record/check.js +84 -21
  121. package/src/lib/record/check.js.map +1 -1
  122. package/src/lib/record/check.mjs +82 -21
  123. package/src/lib/record/check.mjs.map +1 -1
  124. package/src/lib/record/compute.d.mts +24 -0
  125. package/src/lib/record/compute.d.ts +24 -0
  126. package/src/lib/record/compute.js +107 -0
  127. package/src/lib/record/compute.js.map +1 -0
  128. package/src/lib/record/compute.mjs +103 -0
  129. package/src/lib/record/compute.mjs.map +1 -0
  130. package/src/lib/record/data-source.d.mts +14 -2
  131. package/src/lib/record/data-source.d.ts +14 -2
  132. package/src/lib/record/data-source.js.map +1 -1
  133. package/src/lib/record/data-source.mjs.map +1 -1
  134. package/src/lib/record/env.d.mts +9 -0
  135. package/src/lib/record/env.d.ts +9 -0
  136. package/src/lib/record/env.js +28 -0
  137. package/src/lib/record/env.js.map +1 -0
  138. package/src/lib/record/env.mjs +25 -0
  139. package/src/lib/record/env.mjs.map +1 -0
  140. package/src/lib/record/form.d.mts +110 -18
  141. package/src/lib/record/form.d.ts +110 -18
  142. package/src/lib/record/form.js +497 -72
  143. package/src/lib/record/form.js.map +1 -1
  144. package/src/lib/record/form.mjs +497 -72
  145. package/src/lib/record/form.mjs.map +1 -1
  146. package/src/lib/record/inputs.d.mts +5 -0
  147. package/src/lib/record/inputs.d.ts +5 -0
  148. package/src/lib/record/inputs.js +47 -0
  149. package/src/lib/record/inputs.js.map +1 -0
  150. package/src/lib/record/inputs.mjs +44 -0
  151. package/src/lib/record/inputs.mjs.map +1 -0
  152. package/src/lib/record/limits.d.mts +13 -0
  153. package/src/lib/record/limits.d.ts +13 -0
  154. package/src/lib/record/limits.js +45 -0
  155. package/src/lib/record/limits.js.map +1 -0
  156. package/src/lib/record/limits.mjs +41 -0
  157. package/src/lib/record/limits.mjs.map +1 -0
  158. package/src/lib/record/locales/all.d.mts +7 -0
  159. package/src/lib/record/locales/all.d.ts +7 -0
  160. package/src/lib/record/locales/all.js +13 -0
  161. package/src/lib/record/locales/all.js.map +1 -0
  162. package/src/lib/record/locales/all.mjs +10 -0
  163. package/src/lib/record/locales/all.mjs.map +1 -0
  164. package/src/lib/record/locales/ar.d.mts +3 -0
  165. package/src/lib/record/locales/ar.d.ts +3 -0
  166. package/src/lib/record/locales/ar.js +55 -0
  167. package/src/lib/record/locales/ar.js.map +1 -0
  168. package/src/lib/record/locales/ar.mjs +52 -0
  169. package/src/lib/record/locales/ar.mjs.map +1 -0
  170. package/src/lib/record/locales/de.d.mts +3 -0
  171. package/src/lib/record/locales/de.d.ts +3 -0
  172. package/src/lib/record/locales/de.js +55 -0
  173. package/src/lib/record/locales/de.js.map +1 -0
  174. package/src/lib/record/locales/de.mjs +52 -0
  175. package/src/lib/record/locales/de.mjs.map +1 -0
  176. package/src/lib/record/locales/fr.d.mts +3 -0
  177. package/src/lib/record/locales/fr.d.ts +3 -0
  178. package/src/lib/record/locales/fr.js +55 -0
  179. package/src/lib/record/locales/fr.js.map +1 -0
  180. package/src/lib/record/locales/fr.mjs +52 -0
  181. package/src/lib/record/locales/fr.mjs.map +1 -0
  182. package/src/lib/record/memory-data-source.d.mts +3 -0
  183. package/src/lib/record/memory-data-source.d.ts +3 -0
  184. package/src/lib/record/memory-data-source.js +8 -0
  185. package/src/lib/record/memory-data-source.js.map +1 -1
  186. package/src/lib/record/memory-data-source.mjs +8 -0
  187. package/src/lib/record/memory-data-source.mjs.map +1 -1
  188. package/src/lib/record/messages.d.mts +46 -0
  189. package/src/lib/record/messages.d.ts +46 -0
  190. package/src/lib/record/messages.js +58 -101
  191. package/src/lib/record/messages.js.map +1 -1
  192. package/src/lib/record/messages.mjs +58 -101
  193. package/src/lib/record/messages.mjs.map +1 -1
  194. package/src/lib/record/rules.d.mts +33 -0
  195. package/src/lib/record/rules.d.ts +33 -0
  196. package/src/lib/record/rules.js +83 -0
  197. package/src/lib/record/rules.js.map +1 -0
  198. package/src/lib/record/rules.mjs +79 -0
  199. package/src/lib/record/rules.mjs.map +1 -0
  200. package/src/lib/record/run.d.mts +169 -0
  201. package/src/lib/record/run.d.ts +169 -0
  202. package/src/lib/record/run.js +350 -0
  203. package/src/lib/record/run.js.map +1 -0
  204. package/src/lib/record/run.mjs +345 -0
  205. package/src/lib/record/run.mjs.map +1 -0
  206. package/src/lib/record/score.d.mts +16 -0
  207. package/src/lib/record/score.d.ts +16 -0
  208. package/src/lib/record/score.js +35 -0
  209. package/src/lib/record/score.js.map +1 -0
  210. package/src/lib/record/score.mjs +32 -0
  211. package/src/lib/record/score.mjs.map +1 -0
  212. package/src/lib/record/set-when.d.mts +24 -0
  213. package/src/lib/record/set-when.d.ts +24 -0
  214. package/src/lib/record/set-when.js +68 -0
  215. package/src/lib/record/set-when.js.map +1 -0
  216. package/src/lib/record/set-when.mjs +65 -0
  217. package/src/lib/record/set-when.mjs.map +1 -0
  218. package/src/lib/record/structures.d.mts +14 -0
  219. package/src/lib/record/structures.d.ts +14 -0
  220. package/src/lib/record/structures.js +32 -0
  221. package/src/lib/record/structures.js.map +1 -0
  222. package/src/lib/record/structures.mjs +28 -0
  223. package/src/lib/record/structures.mjs.map +1 -0
  224. package/src/lib/record/values.d.mts +10 -5
  225. package/src/lib/record/values.d.ts +10 -5
  226. package/src/lib/record/values.js +20 -6
  227. package/src/lib/record/values.js.map +1 -1
  228. package/src/lib/record/values.mjs +19 -6
  229. package/src/lib/record/values.mjs.map +1 -1
  230. package/src/runtime.d.mts +13 -7
  231. package/src/runtime.d.ts +13 -7
  232. package/src/runtime.js +14 -1
  233. package/src/runtime.js.map +1 -1
  234. package/src/runtime.mjs +6 -2
  235. package/src/runtime.mjs.map +1 -1
@@ -79,6 +79,224 @@
79
79
  "top",
80
80
  "bottom"
81
81
  ]
82
+ },
83
+ "look": {
84
+ "type": "object",
85
+ "properties": {
86
+ "accent": {
87
+ "type": "string",
88
+ "pattern": "^#[0-9a-fA-F]{6}$"
89
+ },
90
+ "font": {
91
+ "type": "string",
92
+ "enum": [
93
+ "system",
94
+ "serif",
95
+ "rounded"
96
+ ]
97
+ },
98
+ "density": {
99
+ "type": "string",
100
+ "enum": [
101
+ "compact",
102
+ "comfortable",
103
+ "roomy"
104
+ ]
105
+ },
106
+ "corners": {
107
+ "type": "string",
108
+ "enum": [
109
+ "square",
110
+ "soft",
111
+ "round"
112
+ ]
113
+ },
114
+ "labels": {
115
+ "type": "string",
116
+ "enum": [
117
+ "above",
118
+ "beside",
119
+ "hidden"
120
+ ]
121
+ },
122
+ "labelWidth": {
123
+ "type": "integer",
124
+ "minimum": 60,
125
+ "maximum": 320
126
+ },
127
+ "scheme": {
128
+ "type": "string",
129
+ "enum": [
130
+ "light",
131
+ "dark",
132
+ "auto"
133
+ ]
134
+ },
135
+ "parts": {
136
+ "type": "object",
137
+ "properties": {
138
+ "inputs": {
139
+ "type": "object",
140
+ "properties": {
141
+ "background": {
142
+ "type": "string",
143
+ "pattern": "^#[0-9a-fA-F]{6}$"
144
+ },
145
+ "border": {
146
+ "type": "string",
147
+ "pattern": "^#[0-9a-fA-F]{6}$"
148
+ },
149
+ "corners": {
150
+ "type": "string",
151
+ "enum": [
152
+ "square",
153
+ "soft",
154
+ "round"
155
+ ]
156
+ },
157
+ "textSize": {
158
+ "type": "string",
159
+ "enum": [
160
+ "small",
161
+ "large"
162
+ ]
163
+ },
164
+ "accent": {
165
+ "type": "string",
166
+ "pattern": "^#[0-9a-fA-F]{6}$"
167
+ }
168
+ },
169
+ "additionalProperties": false
170
+ },
171
+ "choices": {
172
+ "type": "object",
173
+ "properties": {
174
+ "accent": {
175
+ "type": "string",
176
+ "pattern": "^#[0-9a-fA-F]{6}$"
177
+ },
178
+ "background": {
179
+ "type": "string",
180
+ "pattern": "^#[0-9a-fA-F]{6}$"
181
+ },
182
+ "border": {
183
+ "type": "string",
184
+ "pattern": "^#[0-9a-fA-F]{6}$"
185
+ },
186
+ "corners": {
187
+ "type": "string",
188
+ "enum": [
189
+ "square",
190
+ "soft",
191
+ "round"
192
+ ]
193
+ },
194
+ "textSize": {
195
+ "type": "string",
196
+ "enum": [
197
+ "small",
198
+ "large"
199
+ ]
200
+ }
201
+ },
202
+ "additionalProperties": false
203
+ },
204
+ "groups": {
205
+ "type": "object",
206
+ "properties": {
207
+ "background": {
208
+ "type": "string",
209
+ "pattern": "^#[0-9a-fA-F]{6}$"
210
+ },
211
+ "border": {
212
+ "type": "string",
213
+ "pattern": "^#[0-9a-fA-F]{6}$"
214
+ },
215
+ "corners": {
216
+ "type": "string",
217
+ "enum": [
218
+ "square",
219
+ "soft",
220
+ "round"
221
+ ]
222
+ }
223
+ },
224
+ "additionalProperties": false
225
+ },
226
+ "buttons": {
227
+ "type": "object",
228
+ "properties": {
229
+ "accent": {
230
+ "type": "string",
231
+ "pattern": "^#[0-9a-fA-F]{6}$"
232
+ },
233
+ "corners": {
234
+ "type": "string",
235
+ "enum": [
236
+ "square",
237
+ "soft",
238
+ "round"
239
+ ]
240
+ },
241
+ "textSize": {
242
+ "type": "string",
243
+ "enum": [
244
+ "small",
245
+ "large"
246
+ ]
247
+ }
248
+ },
249
+ "additionalProperties": false
250
+ },
251
+ "tables": {
252
+ "type": "object",
253
+ "properties": {
254
+ "background": {
255
+ "type": "string",
256
+ "pattern": "^#[0-9a-fA-F]{6}$"
257
+ },
258
+ "border": {
259
+ "type": "string",
260
+ "pattern": "^#[0-9a-fA-F]{6}$"
261
+ },
262
+ "textSize": {
263
+ "type": "string",
264
+ "enum": [
265
+ "small",
266
+ "large"
267
+ ]
268
+ }
269
+ },
270
+ "additionalProperties": false
271
+ }
272
+ },
273
+ "additionalProperties": false
274
+ }
275
+ },
276
+ "additionalProperties": false
277
+ },
278
+ "language": {
279
+ "type": "string",
280
+ "pattern": "^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$"
281
+ },
282
+ "translations": {
283
+ "type": "object",
284
+ "propertyNames": {
285
+ "type": "string",
286
+ "pattern": "^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$"
287
+ },
288
+ "additionalProperties": {
289
+ "type": "object",
290
+ "propertyNames": {
291
+ "type": "string"
292
+ },
293
+ "additionalProperties": {
294
+ "type": "string"
295
+ }
296
+ }
297
+ },
298
+ "on": {
299
+ "$ref": "#/$defs/PageEvents"
82
300
  }
83
301
  },
84
302
  "required": [
@@ -116,6 +334,17 @@
116
334
  "default": {
117
335
  "$ref": "#/$defs/JsonValue"
118
336
  },
337
+ "compute": {
338
+ "type": "string",
339
+ "minLength": 1
340
+ },
341
+ "setWhen": {
342
+ "minItems": 1,
343
+ "type": "array",
344
+ "items": {
345
+ "$ref": "#/$defs/SetWhen"
346
+ }
347
+ },
119
348
  "size": {
120
349
  "type": "integer",
121
350
  "exclusiveMinimum": 0,
@@ -153,6 +382,17 @@
153
382
  "default": {
154
383
  "$ref": "#/$defs/JsonValue"
155
384
  },
385
+ "compute": {
386
+ "type": "string",
387
+ "minLength": 1
388
+ },
389
+ "setWhen": {
390
+ "minItems": 1,
391
+ "type": "array",
392
+ "items": {
393
+ "$ref": "#/$defs/SetWhen"
394
+ }
395
+ },
156
396
  "size": {
157
397
  "type": "integer",
158
398
  "exclusiveMinimum": 0,
@@ -186,6 +426,17 @@
186
426
  },
187
427
  "default": {
188
428
  "$ref": "#/$defs/JsonValue"
429
+ },
430
+ "compute": {
431
+ "type": "string",
432
+ "minLength": 1
433
+ },
434
+ "setWhen": {
435
+ "minItems": 1,
436
+ "type": "array",
437
+ "items": {
438
+ "$ref": "#/$defs/SetWhen"
439
+ }
189
440
  }
190
441
  },
191
442
  "required": [
@@ -216,6 +467,17 @@
216
467
  "default": {
217
468
  "$ref": "#/$defs/JsonValue"
218
469
  },
470
+ "compute": {
471
+ "type": "string",
472
+ "minLength": 1
473
+ },
474
+ "setWhen": {
475
+ "minItems": 1,
476
+ "type": "array",
477
+ "items": {
478
+ "$ref": "#/$defs/SetWhen"
479
+ }
480
+ },
219
481
  "min": {
220
482
  "type": "number"
221
483
  },
@@ -251,6 +513,17 @@
251
513
  "default": {
252
514
  "$ref": "#/$defs/JsonValue"
253
515
  },
516
+ "compute": {
517
+ "type": "string",
518
+ "minLength": 1
519
+ },
520
+ "setWhen": {
521
+ "minItems": 1,
522
+ "type": "array",
523
+ "items": {
524
+ "$ref": "#/$defs/SetWhen"
525
+ }
526
+ },
254
527
  "min": {
255
528
  "type": "number"
256
529
  },
@@ -304,6 +577,17 @@
304
577
  "default": {
305
578
  "$ref": "#/$defs/JsonValue"
306
579
  },
580
+ "compute": {
581
+ "type": "string",
582
+ "minLength": 1
583
+ },
584
+ "setWhen": {
585
+ "minItems": 1,
586
+ "type": "array",
587
+ "items": {
588
+ "$ref": "#/$defs/SetWhen"
589
+ }
590
+ },
307
591
  "currencyField": {
308
592
  "type": "string",
309
593
  "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
@@ -364,6 +648,17 @@
364
648
  },
365
649
  "default": {
366
650
  "$ref": "#/$defs/JsonValue"
651
+ },
652
+ "compute": {
653
+ "type": "string",
654
+ "minLength": 1
655
+ },
656
+ "setWhen": {
657
+ "minItems": 1,
658
+ "type": "array",
659
+ "items": {
660
+ "$ref": "#/$defs/SetWhen"
661
+ }
367
662
  }
368
663
  },
369
664
  "required": [
@@ -393,6 +688,34 @@
393
688
  },
394
689
  "default": {
395
690
  "$ref": "#/$defs/JsonValue"
691
+ },
692
+ "compute": {
693
+ "type": "string",
694
+ "minLength": 1
695
+ },
696
+ "setWhen": {
697
+ "minItems": 1,
698
+ "type": "array",
699
+ "items": {
700
+ "$ref": "#/$defs/SetWhen"
701
+ }
702
+ },
703
+ "min": {
704
+ "type": "string",
705
+ "pattern": "^(\\d{4}-\\d{2}-\\d{2}|today([+-]\\d{1,4})?)$"
706
+ },
707
+ "max": {
708
+ "type": "string",
709
+ "pattern": "^(\\d{4}-\\d{2}-\\d{2}|today([+-]\\d{1,4})?)$"
710
+ },
711
+ "days": {
712
+ "minItems": 1,
713
+ "type": "array",
714
+ "items": {
715
+ "type": "integer",
716
+ "minimum": 1,
717
+ "maximum": 7
718
+ }
396
719
  }
397
720
  },
398
721
  "required": [
@@ -422,6 +745,34 @@
422
745
  },
423
746
  "default": {
424
747
  "$ref": "#/$defs/JsonValue"
748
+ },
749
+ "compute": {
750
+ "type": "string",
751
+ "minLength": 1
752
+ },
753
+ "setWhen": {
754
+ "minItems": 1,
755
+ "type": "array",
756
+ "items": {
757
+ "$ref": "#/$defs/SetWhen"
758
+ }
759
+ },
760
+ "min": {
761
+ "type": "string",
762
+ "pattern": "^(\\d{4}-\\d{2}-\\d{2}|today([+-]\\d{1,4})?)$"
763
+ },
764
+ "max": {
765
+ "type": "string",
766
+ "pattern": "^(\\d{4}-\\d{2}-\\d{2}|today([+-]\\d{1,4})?)$"
767
+ },
768
+ "days": {
769
+ "minItems": 1,
770
+ "type": "array",
771
+ "items": {
772
+ "type": "integer",
773
+ "minimum": 1,
774
+ "maximum": 7
775
+ }
425
776
  }
426
777
  },
427
778
  "required": [
@@ -452,8 +803,18 @@
452
803
  "default": {
453
804
  "$ref": "#/$defs/JsonValue"
454
805
  },
455
- "options": {
806
+ "compute": {
807
+ "type": "string",
808
+ "minLength": 1
809
+ },
810
+ "setWhen": {
456
811
  "minItems": 1,
812
+ "type": "array",
813
+ "items": {
814
+ "$ref": "#/$defs/SetWhen"
815
+ }
816
+ },
817
+ "options": {
457
818
  "type": "array",
458
819
  "items": {
459
820
  "$ref": "#/$defs/Option"
@@ -461,6 +822,15 @@
461
822
  },
462
823
  "multiple": {
463
824
  "type": "boolean"
825
+ },
826
+ "other": {
827
+ "type": "boolean"
828
+ },
829
+ "ownAnswers": {
830
+ "type": "boolean"
831
+ },
832
+ "optionsFrom": {
833
+ "$ref": "#/$defs/OptionsFrom"
464
834
  }
465
835
  },
466
836
  "required": [
@@ -468,7 +838,21 @@
468
838
  "label",
469
839
  "options"
470
840
  ],
471
- "additionalProperties": false
841
+ "additionalProperties": false,
842
+ "anyOf": [
843
+ {
844
+ "properties": {
845
+ "options": {
846
+ "minItems": 1
847
+ }
848
+ }
849
+ },
850
+ {
851
+ "required": [
852
+ "optionsFrom"
853
+ ]
854
+ }
855
+ ]
472
856
  },
473
857
  {
474
858
  "type": "object",
@@ -492,6 +876,17 @@
492
876
  "default": {
493
877
  "$ref": "#/$defs/JsonValue"
494
878
  },
879
+ "compute": {
880
+ "type": "string",
881
+ "minLength": 1
882
+ },
883
+ "setWhen": {
884
+ "minItems": 1,
885
+ "type": "array",
886
+ "items": {
887
+ "$ref": "#/$defs/SetWhen"
888
+ }
889
+ },
495
890
  "accept": {
496
891
  "type": "array",
497
892
  "items": {
@@ -502,13 +897,48 @@
502
897
  "type": "integer",
503
898
  "exclusiveMinimum": 0,
504
899
  "maximum": 9007199254740991
900
+ },
901
+ "multiple": {
902
+ "type": "boolean"
903
+ },
904
+ "minFiles": {
905
+ "type": "integer",
906
+ "minimum": 0,
907
+ "maximum": 9007199254740991
908
+ },
909
+ "maxFiles": {
910
+ "type": "integer",
911
+ "exclusiveMinimum": 0,
912
+ "maximum": 9007199254740991
505
913
  }
506
914
  },
507
915
  "required": [
508
916
  "type",
509
917
  "label"
510
918
  ],
511
- "additionalProperties": false
919
+ "additionalProperties": false,
920
+ "dependentSchemas": {
921
+ "minFiles": {
922
+ "properties": {
923
+ "multiple": {
924
+ "const": true
925
+ }
926
+ },
927
+ "required": [
928
+ "multiple"
929
+ ]
930
+ },
931
+ "maxFiles": {
932
+ "properties": {
933
+ "multiple": {
934
+ "const": true
935
+ }
936
+ },
937
+ "required": [
938
+ "multiple"
939
+ ]
940
+ }
941
+ }
512
942
  },
513
943
  {
514
944
  "type": "object",
@@ -532,17 +962,63 @@
532
962
  "default": {
533
963
  "$ref": "#/$defs/JsonValue"
534
964
  },
535
- "maxSize": {
536
- "type": "integer",
537
- "exclusiveMinimum": 0,
538
- "maximum": 9007199254740991
965
+ "compute": {
966
+ "type": "string",
967
+ "minLength": 1
968
+ },
969
+ "setWhen": {
970
+ "minItems": 1,
971
+ "type": "array",
972
+ "items": {
973
+ "$ref": "#/$defs/SetWhen"
974
+ }
975
+ },
976
+ "maxSize": {
977
+ "type": "integer",
978
+ "exclusiveMinimum": 0,
979
+ "maximum": 9007199254740991
980
+ },
981
+ "multiple": {
982
+ "type": "boolean"
983
+ },
984
+ "minFiles": {
985
+ "type": "integer",
986
+ "minimum": 0,
987
+ "maximum": 9007199254740991
988
+ },
989
+ "maxFiles": {
990
+ "type": "integer",
991
+ "exclusiveMinimum": 0,
992
+ "maximum": 9007199254740991
539
993
  }
540
994
  },
541
995
  "required": [
542
996
  "type",
543
997
  "label"
544
998
  ],
545
- "additionalProperties": false
999
+ "additionalProperties": false,
1000
+ "dependentSchemas": {
1001
+ "minFiles": {
1002
+ "properties": {
1003
+ "multiple": {
1004
+ "const": true
1005
+ }
1006
+ },
1007
+ "required": [
1008
+ "multiple"
1009
+ ]
1010
+ },
1011
+ "maxFiles": {
1012
+ "properties": {
1013
+ "multiple": {
1014
+ "const": true
1015
+ }
1016
+ },
1017
+ "required": [
1018
+ "multiple"
1019
+ ]
1020
+ }
1021
+ }
546
1022
  },
547
1023
  {
548
1024
  "type": "object",
@@ -566,6 +1042,17 @@
566
1042
  "default": {
567
1043
  "$ref": "#/$defs/JsonValue"
568
1044
  },
1045
+ "compute": {
1046
+ "type": "string",
1047
+ "minLength": 1
1048
+ },
1049
+ "setWhen": {
1050
+ "minItems": 1,
1051
+ "type": "array",
1052
+ "items": {
1053
+ "$ref": "#/$defs/SetWhen"
1054
+ }
1055
+ },
569
1056
  "relation": {
570
1057
  "type": "string",
571
1058
  "minLength": 1
@@ -606,6 +1093,17 @@
606
1093
  "default": {
607
1094
  "$ref": "#/$defs/JsonValue"
608
1095
  },
1096
+ "compute": {
1097
+ "type": "string",
1098
+ "minLength": 1
1099
+ },
1100
+ "setWhen": {
1101
+ "minItems": 1,
1102
+ "type": "array",
1103
+ "items": {
1104
+ "$ref": "#/$defs/SetWhen"
1105
+ }
1106
+ },
609
1107
  "relation": {
610
1108
  "type": "string",
611
1109
  "minLength": 1
@@ -646,6 +1144,17 @@
646
1144
  "default": {
647
1145
  "$ref": "#/$defs/JsonValue"
648
1146
  },
1147
+ "compute": {
1148
+ "type": "string",
1149
+ "minLength": 1
1150
+ },
1151
+ "setWhen": {
1152
+ "minItems": 1,
1153
+ "type": "array",
1154
+ "items": {
1155
+ "$ref": "#/$defs/SetWhen"
1156
+ }
1157
+ },
649
1158
  "relation": {
650
1159
  "type": "string",
651
1160
  "minLength": 1
@@ -698,6 +1207,17 @@
698
1207
  "default": {
699
1208
  "$ref": "#/$defs/JsonValue"
700
1209
  },
1210
+ "compute": {
1211
+ "type": "string",
1212
+ "minLength": 1
1213
+ },
1214
+ "setWhen": {
1215
+ "minItems": 1,
1216
+ "type": "array",
1217
+ "items": {
1218
+ "$ref": "#/$defs/SetWhen"
1219
+ }
1220
+ },
701
1221
  "models": {
702
1222
  "minItems": 1,
703
1223
  "type": "array",
@@ -735,6 +1255,17 @@
735
1255
  "default": {
736
1256
  "$ref": "#/$defs/JsonValue"
737
1257
  },
1258
+ "compute": {
1259
+ "type": "string",
1260
+ "minLength": 1
1261
+ },
1262
+ "setWhen": {
1263
+ "minItems": 1,
1264
+ "type": "array",
1265
+ "items": {
1266
+ "$ref": "#/$defs/SetWhen"
1267
+ }
1268
+ },
738
1269
  "definitions": {
739
1270
  "type": "array",
740
1271
  "items": {
@@ -769,6 +1300,17 @@
769
1300
  },
770
1301
  "default": {
771
1302
  "$ref": "#/$defs/JsonValue"
1303
+ },
1304
+ "compute": {
1305
+ "type": "string",
1306
+ "minLength": 1
1307
+ },
1308
+ "setWhen": {
1309
+ "minItems": 1,
1310
+ "type": "array",
1311
+ "items": {
1312
+ "$ref": "#/$defs/SetWhen"
1313
+ }
772
1314
  }
773
1315
  },
774
1316
  "required": [
@@ -776,6 +1318,68 @@
776
1318
  "label"
777
1319
  ],
778
1320
  "additionalProperties": false
1321
+ },
1322
+ {
1323
+ "type": "object",
1324
+ "properties": {
1325
+ "type": {
1326
+ "type": "string",
1327
+ "const": "matrix"
1328
+ },
1329
+ "label": {
1330
+ "type": "string"
1331
+ },
1332
+ "help": {
1333
+ "type": "string"
1334
+ },
1335
+ "required": {
1336
+ "type": "boolean"
1337
+ },
1338
+ "readonly": {
1339
+ "type": "boolean"
1340
+ },
1341
+ "default": {
1342
+ "$ref": "#/$defs/JsonValue"
1343
+ },
1344
+ "compute": {
1345
+ "type": "string",
1346
+ "minLength": 1
1347
+ },
1348
+ "setWhen": {
1349
+ "minItems": 1,
1350
+ "type": "array",
1351
+ "items": {
1352
+ "$ref": "#/$defs/SetWhen"
1353
+ }
1354
+ },
1355
+ "rows": {
1356
+ "minItems": 1,
1357
+ "type": "array",
1358
+ "items": {
1359
+ "$ref": "#/$defs/Option"
1360
+ }
1361
+ },
1362
+ "columns": {
1363
+ "minItems": 1,
1364
+ "type": "array",
1365
+ "items": {
1366
+ "$ref": "#/$defs/Option"
1367
+ }
1368
+ },
1369
+ "multiple": {
1370
+ "type": "boolean"
1371
+ },
1372
+ "onePerColumn": {
1373
+ "type": "boolean"
1374
+ }
1375
+ },
1376
+ "required": [
1377
+ "type",
1378
+ "label",
1379
+ "rows",
1380
+ "columns"
1381
+ ],
1382
+ "additionalProperties": false
779
1383
  }
780
1384
  ]
781
1385
  },
@@ -813,6 +1417,24 @@
813
1417
  }
814
1418
  ]
815
1419
  },
1420
+ "SetWhen": {
1421
+ "type": "object",
1422
+ "properties": {
1423
+ "when": {
1424
+ "type": "string",
1425
+ "minLength": 1
1426
+ },
1427
+ "value": {
1428
+ "type": "string",
1429
+ "minLength": 1
1430
+ }
1431
+ },
1432
+ "required": [
1433
+ "when",
1434
+ "value"
1435
+ ],
1436
+ "additionalProperties": false
1437
+ },
816
1438
  "Option": {
817
1439
  "type": "object",
818
1440
  "properties": {
@@ -824,6 +1446,22 @@
824
1446
  },
825
1447
  "label": {
826
1448
  "type": "string"
1449
+ },
1450
+ "image": {
1451
+ "type": "string",
1452
+ "minLength": 1
1453
+ },
1454
+ "score": {
1455
+ "type": "number"
1456
+ },
1457
+ "alt": {
1458
+ "type": "string"
1459
+ },
1460
+ "exclusive": {
1461
+ "type": "boolean"
1462
+ },
1463
+ "fixed": {
1464
+ "type": "boolean"
827
1465
  }
828
1466
  },
829
1467
  "required": [
@@ -832,6 +1470,27 @@
832
1470
  ],
833
1471
  "additionalProperties": false
834
1472
  },
1473
+ "OptionsFrom": {
1474
+ "type": "object",
1475
+ "properties": {
1476
+ "list": {
1477
+ "type": "string",
1478
+ "minLength": 1
1479
+ },
1480
+ "dependsOn": {
1481
+ "minItems": 1,
1482
+ "type": "array",
1483
+ "items": {
1484
+ "type": "string",
1485
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
1486
+ }
1487
+ }
1488
+ },
1489
+ "required": [
1490
+ "list"
1491
+ ],
1492
+ "additionalProperties": false
1493
+ },
835
1494
  "FilterItem": {
836
1495
  "anyOf": [
837
1496
  {
@@ -942,6 +1601,17 @@
942
1601
  "default": {
943
1602
  "$ref": "#/$defs/JsonValue"
944
1603
  },
1604
+ "compute": {
1605
+ "type": "string",
1606
+ "minLength": 1
1607
+ },
1608
+ "setWhen": {
1609
+ "minItems": 1,
1610
+ "type": "array",
1611
+ "items": {
1612
+ "$ref": "#/$defs/SetWhen"
1613
+ }
1614
+ },
945
1615
  "size": {
946
1616
  "type": "integer",
947
1617
  "exclusiveMinimum": 0,
@@ -979,6 +1649,17 @@
979
1649
  "default": {
980
1650
  "$ref": "#/$defs/JsonValue"
981
1651
  },
1652
+ "compute": {
1653
+ "type": "string",
1654
+ "minLength": 1
1655
+ },
1656
+ "setWhen": {
1657
+ "minItems": 1,
1658
+ "type": "array",
1659
+ "items": {
1660
+ "$ref": "#/$defs/SetWhen"
1661
+ }
1662
+ },
982
1663
  "size": {
983
1664
  "type": "integer",
984
1665
  "exclusiveMinimum": 0,
@@ -1012,6 +1693,17 @@
1012
1693
  },
1013
1694
  "default": {
1014
1695
  "$ref": "#/$defs/JsonValue"
1696
+ },
1697
+ "compute": {
1698
+ "type": "string",
1699
+ "minLength": 1
1700
+ },
1701
+ "setWhen": {
1702
+ "minItems": 1,
1703
+ "type": "array",
1704
+ "items": {
1705
+ "$ref": "#/$defs/SetWhen"
1706
+ }
1015
1707
  }
1016
1708
  },
1017
1709
  "required": [
@@ -1042,6 +1734,17 @@
1042
1734
  "default": {
1043
1735
  "$ref": "#/$defs/JsonValue"
1044
1736
  },
1737
+ "compute": {
1738
+ "type": "string",
1739
+ "minLength": 1
1740
+ },
1741
+ "setWhen": {
1742
+ "minItems": 1,
1743
+ "type": "array",
1744
+ "items": {
1745
+ "$ref": "#/$defs/SetWhen"
1746
+ }
1747
+ },
1045
1748
  "min": {
1046
1749
  "type": "number"
1047
1750
  },
@@ -1077,6 +1780,17 @@
1077
1780
  "default": {
1078
1781
  "$ref": "#/$defs/JsonValue"
1079
1782
  },
1783
+ "compute": {
1784
+ "type": "string",
1785
+ "minLength": 1
1786
+ },
1787
+ "setWhen": {
1788
+ "minItems": 1,
1789
+ "type": "array",
1790
+ "items": {
1791
+ "$ref": "#/$defs/SetWhen"
1792
+ }
1793
+ },
1080
1794
  "min": {
1081
1795
  "type": "number"
1082
1796
  },
@@ -1130,6 +1844,17 @@
1130
1844
  "default": {
1131
1845
  "$ref": "#/$defs/JsonValue"
1132
1846
  },
1847
+ "compute": {
1848
+ "type": "string",
1849
+ "minLength": 1
1850
+ },
1851
+ "setWhen": {
1852
+ "minItems": 1,
1853
+ "type": "array",
1854
+ "items": {
1855
+ "$ref": "#/$defs/SetWhen"
1856
+ }
1857
+ },
1133
1858
  "currencyField": {
1134
1859
  "type": "string",
1135
1860
  "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
@@ -1190,6 +1915,17 @@
1190
1915
  },
1191
1916
  "default": {
1192
1917
  "$ref": "#/$defs/JsonValue"
1918
+ },
1919
+ "compute": {
1920
+ "type": "string",
1921
+ "minLength": 1
1922
+ },
1923
+ "setWhen": {
1924
+ "minItems": 1,
1925
+ "type": "array",
1926
+ "items": {
1927
+ "$ref": "#/$defs/SetWhen"
1928
+ }
1193
1929
  }
1194
1930
  },
1195
1931
  "required": [
@@ -1219,6 +1955,34 @@
1219
1955
  },
1220
1956
  "default": {
1221
1957
  "$ref": "#/$defs/JsonValue"
1958
+ },
1959
+ "compute": {
1960
+ "type": "string",
1961
+ "minLength": 1
1962
+ },
1963
+ "setWhen": {
1964
+ "minItems": 1,
1965
+ "type": "array",
1966
+ "items": {
1967
+ "$ref": "#/$defs/SetWhen"
1968
+ }
1969
+ },
1970
+ "min": {
1971
+ "type": "string",
1972
+ "pattern": "^(\\d{4}-\\d{2}-\\d{2}|today([+-]\\d{1,4})?)$"
1973
+ },
1974
+ "max": {
1975
+ "type": "string",
1976
+ "pattern": "^(\\d{4}-\\d{2}-\\d{2}|today([+-]\\d{1,4})?)$"
1977
+ },
1978
+ "days": {
1979
+ "minItems": 1,
1980
+ "type": "array",
1981
+ "items": {
1982
+ "type": "integer",
1983
+ "minimum": 1,
1984
+ "maximum": 7
1985
+ }
1222
1986
  }
1223
1987
  },
1224
1988
  "required": [
@@ -1248,7 +2012,35 @@
1248
2012
  },
1249
2013
  "default": {
1250
2014
  "$ref": "#/$defs/JsonValue"
1251
- }
2015
+ },
2016
+ "compute": {
2017
+ "type": "string",
2018
+ "minLength": 1
2019
+ },
2020
+ "setWhen": {
2021
+ "minItems": 1,
2022
+ "type": "array",
2023
+ "items": {
2024
+ "$ref": "#/$defs/SetWhen"
2025
+ }
2026
+ },
2027
+ "min": {
2028
+ "type": "string",
2029
+ "pattern": "^(\\d{4}-\\d{2}-\\d{2}|today([+-]\\d{1,4})?)$"
2030
+ },
2031
+ "max": {
2032
+ "type": "string",
2033
+ "pattern": "^(\\d{4}-\\d{2}-\\d{2}|today([+-]\\d{1,4})?)$"
2034
+ },
2035
+ "days": {
2036
+ "minItems": 1,
2037
+ "type": "array",
2038
+ "items": {
2039
+ "type": "integer",
2040
+ "minimum": 1,
2041
+ "maximum": 7
2042
+ }
2043
+ }
1252
2044
  },
1253
2045
  "required": [
1254
2046
  "type",
@@ -1278,6 +2070,17 @@
1278
2070
  "default": {
1279
2071
  "$ref": "#/$defs/JsonValue"
1280
2072
  },
2073
+ "compute": {
2074
+ "type": "string",
2075
+ "minLength": 1
2076
+ },
2077
+ "setWhen": {
2078
+ "minItems": 1,
2079
+ "type": "array",
2080
+ "items": {
2081
+ "$ref": "#/$defs/SetWhen"
2082
+ }
2083
+ },
1281
2084
  "options": {
1282
2085
  "minItems": 1,
1283
2086
  "type": "array",
@@ -1287,6 +2090,15 @@
1287
2090
  },
1288
2091
  "multiple": {
1289
2092
  "type": "boolean"
2093
+ },
2094
+ "other": {
2095
+ "type": "boolean"
2096
+ },
2097
+ "ownAnswers": {
2098
+ "type": "boolean"
2099
+ },
2100
+ "optionsFrom": {
2101
+ "not": {}
1290
2102
  }
1291
2103
  },
1292
2104
  "required": [
@@ -1318,6 +2130,17 @@
1318
2130
  "default": {
1319
2131
  "$ref": "#/$defs/JsonValue"
1320
2132
  },
2133
+ "compute": {
2134
+ "type": "string",
2135
+ "minLength": 1
2136
+ },
2137
+ "setWhen": {
2138
+ "minItems": 1,
2139
+ "type": "array",
2140
+ "items": {
2141
+ "$ref": "#/$defs/SetWhen"
2142
+ }
2143
+ },
1321
2144
  "accept": {
1322
2145
  "type": "array",
1323
2146
  "items": {
@@ -1328,13 +2151,48 @@
1328
2151
  "type": "integer",
1329
2152
  "exclusiveMinimum": 0,
1330
2153
  "maximum": 9007199254740991
2154
+ },
2155
+ "multiple": {
2156
+ "type": "boolean"
2157
+ },
2158
+ "minFiles": {
2159
+ "type": "integer",
2160
+ "minimum": 0,
2161
+ "maximum": 9007199254740991
2162
+ },
2163
+ "maxFiles": {
2164
+ "type": "integer",
2165
+ "exclusiveMinimum": 0,
2166
+ "maximum": 9007199254740991
1331
2167
  }
1332
2168
  },
1333
2169
  "required": [
1334
2170
  "type",
1335
2171
  "label"
1336
2172
  ],
1337
- "additionalProperties": false
2173
+ "additionalProperties": false,
2174
+ "dependentSchemas": {
2175
+ "minFiles": {
2176
+ "properties": {
2177
+ "multiple": {
2178
+ "const": true
2179
+ }
2180
+ },
2181
+ "required": [
2182
+ "multiple"
2183
+ ]
2184
+ },
2185
+ "maxFiles": {
2186
+ "properties": {
2187
+ "multiple": {
2188
+ "const": true
2189
+ }
2190
+ },
2191
+ "required": [
2192
+ "multiple"
2193
+ ]
2194
+ }
2195
+ }
1338
2196
  },
1339
2197
  {
1340
2198
  "type": "object",
@@ -1358,17 +2216,63 @@
1358
2216
  "default": {
1359
2217
  "$ref": "#/$defs/JsonValue"
1360
2218
  },
2219
+ "compute": {
2220
+ "type": "string",
2221
+ "minLength": 1
2222
+ },
2223
+ "setWhen": {
2224
+ "minItems": 1,
2225
+ "type": "array",
2226
+ "items": {
2227
+ "$ref": "#/$defs/SetWhen"
2228
+ }
2229
+ },
1361
2230
  "maxSize": {
1362
2231
  "type": "integer",
1363
2232
  "exclusiveMinimum": 0,
1364
2233
  "maximum": 9007199254740991
2234
+ },
2235
+ "multiple": {
2236
+ "type": "boolean"
2237
+ },
2238
+ "minFiles": {
2239
+ "type": "integer",
2240
+ "minimum": 0,
2241
+ "maximum": 9007199254740991
2242
+ },
2243
+ "maxFiles": {
2244
+ "type": "integer",
2245
+ "exclusiveMinimum": 0,
2246
+ "maximum": 9007199254740991
1365
2247
  }
1366
2248
  },
1367
2249
  "required": [
1368
2250
  "type",
1369
2251
  "label"
1370
2252
  ],
1371
- "additionalProperties": false
2253
+ "additionalProperties": false,
2254
+ "dependentSchemas": {
2255
+ "minFiles": {
2256
+ "properties": {
2257
+ "multiple": {
2258
+ "const": true
2259
+ }
2260
+ },
2261
+ "required": [
2262
+ "multiple"
2263
+ ]
2264
+ },
2265
+ "maxFiles": {
2266
+ "properties": {
2267
+ "multiple": {
2268
+ "const": true
2269
+ }
2270
+ },
2271
+ "required": [
2272
+ "multiple"
2273
+ ]
2274
+ }
2275
+ }
1372
2276
  },
1373
2277
  {
1374
2278
  "type": "object",
@@ -1392,6 +2296,17 @@
1392
2296
  "default": {
1393
2297
  "$ref": "#/$defs/JsonValue"
1394
2298
  },
2299
+ "compute": {
2300
+ "type": "string",
2301
+ "minLength": 1
2302
+ },
2303
+ "setWhen": {
2304
+ "minItems": 1,
2305
+ "type": "array",
2306
+ "items": {
2307
+ "$ref": "#/$defs/SetWhen"
2308
+ }
2309
+ },
1395
2310
  "relation": {
1396
2311
  "type": "string",
1397
2312
  "minLength": 1
@@ -1432,6 +2347,17 @@
1432
2347
  "default": {
1433
2348
  "$ref": "#/$defs/JsonValue"
1434
2349
  },
2350
+ "compute": {
2351
+ "type": "string",
2352
+ "minLength": 1
2353
+ },
2354
+ "setWhen": {
2355
+ "minItems": 1,
2356
+ "type": "array",
2357
+ "items": {
2358
+ "$ref": "#/$defs/SetWhen"
2359
+ }
2360
+ },
1435
2361
  "relation": {
1436
2362
  "type": "string",
1437
2363
  "minLength": 1
@@ -1472,6 +2398,17 @@
1472
2398
  "default": {
1473
2399
  "$ref": "#/$defs/JsonValue"
1474
2400
  },
2401
+ "compute": {
2402
+ "type": "string",
2403
+ "minLength": 1
2404
+ },
2405
+ "setWhen": {
2406
+ "minItems": 1,
2407
+ "type": "array",
2408
+ "items": {
2409
+ "$ref": "#/$defs/SetWhen"
2410
+ }
2411
+ },
1475
2412
  "models": {
1476
2413
  "minItems": 1,
1477
2414
  "type": "array",
@@ -1509,6 +2446,17 @@
1509
2446
  "default": {
1510
2447
  "$ref": "#/$defs/JsonValue"
1511
2448
  },
2449
+ "compute": {
2450
+ "type": "string",
2451
+ "minLength": 1
2452
+ },
2453
+ "setWhen": {
2454
+ "minItems": 1,
2455
+ "type": "array",
2456
+ "items": {
2457
+ "$ref": "#/$defs/SetWhen"
2458
+ }
2459
+ },
1512
2460
  "definitions": {
1513
2461
  "type": "array",
1514
2462
  "items": {
@@ -1543,6 +2491,17 @@
1543
2491
  },
1544
2492
  "default": {
1545
2493
  "$ref": "#/$defs/JsonValue"
2494
+ },
2495
+ "compute": {
2496
+ "type": "string",
2497
+ "minLength": 1
2498
+ },
2499
+ "setWhen": {
2500
+ "minItems": 1,
2501
+ "type": "array",
2502
+ "items": {
2503
+ "$ref": "#/$defs/SetWhen"
2504
+ }
1546
2505
  }
1547
2506
  },
1548
2507
  "required": [
@@ -1706,7 +2665,7 @@
1706
2665
  "colspan": {
1707
2666
  "type": "integer",
1708
2667
  "minimum": 1,
1709
- "maximum": 4
2668
+ "maximum": 12
1710
2669
  },
1711
2670
  "columns": {
1712
2671
  "minItems": 1,
@@ -1745,6 +2704,21 @@
1745
2704
  "row"
1746
2705
  ]
1747
2706
  },
2707
+ "labels": {
2708
+ "type": "string",
2709
+ "enum": [
2710
+ "above",
2711
+ "beside",
2712
+ "hidden"
2713
+ ]
2714
+ },
2715
+ "validate": {
2716
+ "minItems": 1,
2717
+ "type": "array",
2718
+ "items": {
2719
+ "$ref": "#/$defs/AnswerRule"
2720
+ }
2721
+ },
1748
2722
  "invisible": {
1749
2723
  "$ref": "#/$defs/Modifier"
1750
2724
  },
@@ -1805,7 +2779,7 @@
1805
2779
  "colspan": {
1806
2780
  "type": "integer",
1807
2781
  "minimum": 1,
1808
- "maximum": 4
2782
+ "maximum": 12
1809
2783
  },
1810
2784
  "columns": {
1811
2785
  "minItems": 1,
@@ -1844,6 +2818,21 @@
1844
2818
  "row"
1845
2819
  ]
1846
2820
  },
2821
+ "labels": {
2822
+ "type": "string",
2823
+ "enum": [
2824
+ "above",
2825
+ "beside",
2826
+ "hidden"
2827
+ ]
2828
+ },
2829
+ "validate": {
2830
+ "minItems": 1,
2831
+ "type": "array",
2832
+ "items": {
2833
+ "$ref": "#/$defs/AnswerRule"
2834
+ }
2835
+ },
1847
2836
  "invisible": {
1848
2837
  "$ref": "#/$defs/Modifier"
1849
2838
  },
@@ -1916,6 +2905,13 @@
1916
2905
  "label": {
1917
2906
  "type": "string"
1918
2907
  },
2908
+ "steps": {
2909
+ "minItems": 1,
2910
+ "type": "array",
2911
+ "items": {
2912
+ "$ref": "#/$defs/ActionStep"
2913
+ }
2914
+ },
1919
2915
  "action": {
1920
2916
  "type": "string",
1921
2917
  "minLength": 1
@@ -1944,6 +2940,11 @@
1944
2940
  "icon": {
1945
2941
  "type": "string"
1946
2942
  },
2943
+ "colspan": {
2944
+ "type": "integer",
2945
+ "minimum": 1,
2946
+ "maximum": 12
2947
+ },
1947
2948
  "invisible": {
1948
2949
  "$ref": "#/$defs/Modifier"
1949
2950
  }
@@ -1951,8 +2952,7 @@
1951
2952
  "required": [
1952
2953
  "type",
1953
2954
  "id",
1954
- "label",
1955
- "action"
2955
+ "label"
1956
2956
  ],
1957
2957
  "additionalProperties": false
1958
2958
  }
@@ -1969,6 +2969,13 @@
1969
2969
  "label": {
1970
2970
  "type": "string"
1971
2971
  },
2972
+ "steps": {
2973
+ "minItems": 1,
2974
+ "type": "array",
2975
+ "items": {
2976
+ "$ref": "#/$defs/ActionStep"
2977
+ }
2978
+ },
1972
2979
  "action": {
1973
2980
  "type": "string",
1974
2981
  "minLength": 1
@@ -1986,8 +2993,7 @@
1986
2993
  },
1987
2994
  "required": [
1988
2995
  "id",
1989
- "label",
1990
- "action"
2996
+ "label"
1991
2997
  ],
1992
2998
  "additionalProperties": false
1993
2999
  }
@@ -2135,6 +3141,70 @@
2135
3141
  ],
2136
3142
  "additionalProperties": false
2137
3143
  },
3144
+ "AnswerRule": {
3145
+ "type": "object",
3146
+ "properties": {
3147
+ "minLength": {
3148
+ "type": "integer",
3149
+ "minimum": 0,
3150
+ "maximum": 9007199254740991
3151
+ },
3152
+ "maxLength": {
3153
+ "type": "integer",
3154
+ "minimum": 1,
3155
+ "maximum": 9007199254740991
3156
+ },
3157
+ "pattern": {
3158
+ "type": "string",
3159
+ "minLength": 1
3160
+ },
3161
+ "endsWith": {
3162
+ "type": "string",
3163
+ "minLength": 1
3164
+ },
3165
+ "min": {
3166
+ "type": "number"
3167
+ },
3168
+ "max": {
3169
+ "type": "number"
3170
+ },
3171
+ "atLeast": {
3172
+ "type": "integer",
3173
+ "minimum": 0,
3174
+ "maximum": 9007199254740991
3175
+ },
3176
+ "atMost": {
3177
+ "type": "integer",
3178
+ "minimum": 1,
3179
+ "maximum": 9007199254740991
3180
+ },
3181
+ "date": {
3182
+ "type": "string",
3183
+ "enum": [
3184
+ "past",
3185
+ "future"
3186
+ ]
3187
+ },
3188
+ "holds": {
3189
+ "type": "string",
3190
+ "minLength": 1
3191
+ },
3192
+ "when": {
3193
+ "$ref": "#/$defs/Modifier"
3194
+ },
3195
+ "message": {
3196
+ "type": "string"
3197
+ },
3198
+ "level": {
3199
+ "type": "string",
3200
+ "enum": [
3201
+ "error",
3202
+ "warning"
3203
+ ]
3204
+ }
3205
+ },
3206
+ "additionalProperties": false
3207
+ },
2138
3208
  "Modifier": {
2139
3209
  "anyOf": [
2140
3210
  {
@@ -2146,6 +3216,441 @@
2146
3216
  }
2147
3217
  ]
2148
3218
  },
3219
+ "ActionStep": {
3220
+ "oneOf": [
3221
+ {
3222
+ "type": "object",
3223
+ "properties": {
3224
+ "do": {
3225
+ "type": "string",
3226
+ "const": "open"
3227
+ },
3228
+ "when": {
3229
+ "anyOf": [
3230
+ {
3231
+ "type": "boolean"
3232
+ },
3233
+ {
3234
+ "type": "string",
3235
+ "minLength": 1
3236
+ }
3237
+ ]
3238
+ },
3239
+ "page": {
3240
+ "type": "string",
3241
+ "minLength": 1
3242
+ },
3243
+ "version": {
3244
+ "type": "integer",
3245
+ "minimum": 1,
3246
+ "maximum": 9007199254740991
3247
+ },
3248
+ "as": {
3249
+ "type": "string",
3250
+ "enum": [
3251
+ "dialog",
3252
+ "panel",
3253
+ "page"
3254
+ ]
3255
+ },
3256
+ "side": {
3257
+ "type": "string",
3258
+ "enum": [
3259
+ "end",
3260
+ "start",
3261
+ "right",
3262
+ "left",
3263
+ "top",
3264
+ "bottom"
3265
+ ]
3266
+ },
3267
+ "title": {
3268
+ "type": "string"
3269
+ },
3270
+ "record": {
3271
+ "type": "string",
3272
+ "minLength": 1
3273
+ },
3274
+ "values": {
3275
+ "type": "object",
3276
+ "propertyNames": {
3277
+ "type": "string",
3278
+ "minLength": 1
3279
+ },
3280
+ "additionalProperties": {
3281
+ "type": "string",
3282
+ "minLength": 1
3283
+ }
3284
+ },
3285
+ "into": {
3286
+ "type": "object",
3287
+ "propertyNames": {
3288
+ "type": "string",
3289
+ "minLength": 1
3290
+ },
3291
+ "additionalProperties": {
3292
+ "type": "string",
3293
+ "minLength": 1
3294
+ }
3295
+ },
3296
+ "then": {
3297
+ "minItems": 1,
3298
+ "type": "array",
3299
+ "items": {
3300
+ "$ref": "#/$defs/ActionStep"
3301
+ }
3302
+ }
3303
+ },
3304
+ "required": [
3305
+ "do",
3306
+ "page"
3307
+ ],
3308
+ "additionalProperties": false
3309
+ },
3310
+ {
3311
+ "type": "object",
3312
+ "properties": {
3313
+ "do": {
3314
+ "type": "string",
3315
+ "const": "set"
3316
+ },
3317
+ "when": {
3318
+ "anyOf": [
3319
+ {
3320
+ "type": "boolean"
3321
+ },
3322
+ {
3323
+ "type": "string",
3324
+ "minLength": 1
3325
+ }
3326
+ ]
3327
+ },
3328
+ "field": {
3329
+ "type": "string",
3330
+ "minLength": 1
3331
+ },
3332
+ "value": {
3333
+ "type": "string",
3334
+ "minLength": 1
3335
+ }
3336
+ },
3337
+ "required": [
3338
+ "do",
3339
+ "field",
3340
+ "value"
3341
+ ],
3342
+ "additionalProperties": false
3343
+ },
3344
+ {
3345
+ "type": "object",
3346
+ "properties": {
3347
+ "do": {
3348
+ "type": "string",
3349
+ "const": "clear"
3350
+ },
3351
+ "when": {
3352
+ "anyOf": [
3353
+ {
3354
+ "type": "boolean"
3355
+ },
3356
+ {
3357
+ "type": "string",
3358
+ "minLength": 1
3359
+ }
3360
+ ]
3361
+ },
3362
+ "field": {
3363
+ "type": "string",
3364
+ "minLength": 1
3365
+ }
3366
+ },
3367
+ "required": [
3368
+ "do",
3369
+ "field"
3370
+ ],
3371
+ "additionalProperties": false
3372
+ },
3373
+ {
3374
+ "type": "object",
3375
+ "properties": {
3376
+ "do": {
3377
+ "type": "string",
3378
+ "const": "addLine"
3379
+ },
3380
+ "when": {
3381
+ "anyOf": [
3382
+ {
3383
+ "type": "boolean"
3384
+ },
3385
+ {
3386
+ "type": "string",
3387
+ "minLength": 1
3388
+ }
3389
+ ]
3390
+ },
3391
+ "field": {
3392
+ "type": "string",
3393
+ "minLength": 1
3394
+ },
3395
+ "values": {
3396
+ "type": "object",
3397
+ "propertyNames": {
3398
+ "type": "string",
3399
+ "minLength": 1
3400
+ },
3401
+ "additionalProperties": {
3402
+ "type": "string",
3403
+ "minLength": 1
3404
+ }
3405
+ }
3406
+ },
3407
+ "required": [
3408
+ "do",
3409
+ "field"
3410
+ ],
3411
+ "additionalProperties": false
3412
+ },
3413
+ {
3414
+ "type": "object",
3415
+ "properties": {
3416
+ "do": {
3417
+ "type": "string",
3418
+ "const": "check"
3419
+ },
3420
+ "when": {
3421
+ "anyOf": [
3422
+ {
3423
+ "type": "boolean"
3424
+ },
3425
+ {
3426
+ "type": "string",
3427
+ "minLength": 1
3428
+ }
3429
+ ]
3430
+ },
3431
+ "fields": {
3432
+ "minItems": 1,
3433
+ "type": "array",
3434
+ "items": {
3435
+ "type": "string",
3436
+ "minLength": 1
3437
+ }
3438
+ }
3439
+ },
3440
+ "required": [
3441
+ "do"
3442
+ ],
3443
+ "additionalProperties": false
3444
+ },
3445
+ {
3446
+ "type": "object",
3447
+ "properties": {
3448
+ "do": {
3449
+ "type": "string",
3450
+ "const": "save"
3451
+ },
3452
+ "when": {
3453
+ "anyOf": [
3454
+ {
3455
+ "type": "boolean"
3456
+ },
3457
+ {
3458
+ "type": "string",
3459
+ "minLength": 1
3460
+ }
3461
+ ]
3462
+ }
3463
+ },
3464
+ "required": [
3465
+ "do"
3466
+ ],
3467
+ "additionalProperties": false
3468
+ },
3469
+ {
3470
+ "type": "object",
3471
+ "properties": {
3472
+ "do": {
3473
+ "type": "string",
3474
+ "const": "reset"
3475
+ },
3476
+ "when": {
3477
+ "anyOf": [
3478
+ {
3479
+ "type": "boolean"
3480
+ },
3481
+ {
3482
+ "type": "string",
3483
+ "minLength": 1
3484
+ }
3485
+ ]
3486
+ }
3487
+ },
3488
+ "required": [
3489
+ "do"
3490
+ ],
3491
+ "additionalProperties": false
3492
+ },
3493
+ {
3494
+ "type": "object",
3495
+ "properties": {
3496
+ "do": {
3497
+ "type": "string",
3498
+ "const": "goTo"
3499
+ },
3500
+ "when": {
3501
+ "anyOf": [
3502
+ {
3503
+ "type": "boolean"
3504
+ },
3505
+ {
3506
+ "type": "string",
3507
+ "minLength": 1
3508
+ }
3509
+ ]
3510
+ },
3511
+ "target": {
3512
+ "type": "string",
3513
+ "minLength": 1
3514
+ }
3515
+ },
3516
+ "required": [
3517
+ "do",
3518
+ "target"
3519
+ ],
3520
+ "additionalProperties": false
3521
+ },
3522
+ {
3523
+ "type": "object",
3524
+ "properties": {
3525
+ "do": {
3526
+ "type": "string",
3527
+ "const": "say"
3528
+ },
3529
+ "when": {
3530
+ "anyOf": [
3531
+ {
3532
+ "type": "boolean"
3533
+ },
3534
+ {
3535
+ "type": "string",
3536
+ "minLength": 1
3537
+ }
3538
+ ]
3539
+ },
3540
+ "message": {
3541
+ "type": "string",
3542
+ "minLength": 1
3543
+ },
3544
+ "tone": {
3545
+ "type": "string",
3546
+ "enum": [
3547
+ "info",
3548
+ "success",
3549
+ "warning",
3550
+ "danger",
3551
+ "muted"
3552
+ ]
3553
+ }
3554
+ },
3555
+ "required": [
3556
+ "do",
3557
+ "message"
3558
+ ],
3559
+ "additionalProperties": false
3560
+ },
3561
+ {
3562
+ "type": "object",
3563
+ "properties": {
3564
+ "do": {
3565
+ "type": "string",
3566
+ "const": "ask"
3567
+ },
3568
+ "when": {
3569
+ "anyOf": [
3570
+ {
3571
+ "type": "boolean"
3572
+ },
3573
+ {
3574
+ "type": "string",
3575
+ "minLength": 1
3576
+ }
3577
+ ]
3578
+ },
3579
+ "message": {
3580
+ "type": "string",
3581
+ "minLength": 1
3582
+ }
3583
+ },
3584
+ "required": [
3585
+ "do",
3586
+ "message"
3587
+ ],
3588
+ "additionalProperties": false
3589
+ },
3590
+ {
3591
+ "type": "object",
3592
+ "properties": {
3593
+ "do": {
3594
+ "type": "string",
3595
+ "const": "call"
3596
+ },
3597
+ "when": {
3598
+ "anyOf": [
3599
+ {
3600
+ "type": "boolean"
3601
+ },
3602
+ {
3603
+ "type": "string",
3604
+ "minLength": 1
3605
+ }
3606
+ ]
3607
+ },
3608
+ "action": {
3609
+ "type": "string",
3610
+ "minLength": 1
3611
+ },
3612
+ "params": {
3613
+ "type": "object",
3614
+ "propertyNames": {
3615
+ "type": "string"
3616
+ },
3617
+ "additionalProperties": {
3618
+ "$ref": "#/$defs/JsonValue"
3619
+ }
3620
+ }
3621
+ },
3622
+ "required": [
3623
+ "do",
3624
+ "action"
3625
+ ],
3626
+ "additionalProperties": false
3627
+ },
3628
+ {
3629
+ "type": "object",
3630
+ "properties": {
3631
+ "do": {
3632
+ "type": "string",
3633
+ "const": "close"
3634
+ },
3635
+ "when": {
3636
+ "anyOf": [
3637
+ {
3638
+ "type": "boolean"
3639
+ },
3640
+ {
3641
+ "type": "string",
3642
+ "minLength": 1
3643
+ }
3644
+ ]
3645
+ }
3646
+ },
3647
+ "required": [
3648
+ "do"
3649
+ ],
3650
+ "additionalProperties": false
3651
+ }
3652
+ ]
3653
+ },
2149
3654
  "LayoutNode": {
2150
3655
  "oneOf": [
2151
3656
  {
@@ -2188,7 +3693,7 @@
2188
3693
  "colspan": {
2189
3694
  "type": "integer",
2190
3695
  "minimum": 1,
2191
- "maximum": 4
3696
+ "maximum": 12
2192
3697
  },
2193
3698
  "columns": {
2194
3699
  "minItems": 1,
@@ -2227,6 +3732,21 @@
2227
3732
  "row"
2228
3733
  ]
2229
3734
  },
3735
+ "labels": {
3736
+ "type": "string",
3737
+ "enum": [
3738
+ "above",
3739
+ "beside",
3740
+ "hidden"
3741
+ ]
3742
+ },
3743
+ "validate": {
3744
+ "minItems": 1,
3745
+ "type": "array",
3746
+ "items": {
3747
+ "$ref": "#/$defs/AnswerRule"
3748
+ }
3749
+ },
2230
3750
  "invisible": {
2231
3751
  "$ref": "#/$defs/Modifier"
2232
3752
  },
@@ -2258,6 +3778,13 @@
2258
3778
  "label": {
2259
3779
  "type": "string"
2260
3780
  },
3781
+ "steps": {
3782
+ "minItems": 1,
3783
+ "type": "array",
3784
+ "items": {
3785
+ "$ref": "#/$defs/ActionStep"
3786
+ }
3787
+ },
2261
3788
  "action": {
2262
3789
  "type": "string",
2263
3790
  "minLength": 1
@@ -2286,6 +3813,11 @@
2286
3813
  "icon": {
2287
3814
  "type": "string"
2288
3815
  },
3816
+ "colspan": {
3817
+ "type": "integer",
3818
+ "minimum": 1,
3819
+ "maximum": 12
3820
+ },
2289
3821
  "invisible": {
2290
3822
  "$ref": "#/$defs/Modifier"
2291
3823
  }
@@ -2293,8 +3825,7 @@
2293
3825
  "required": [
2294
3826
  "type",
2295
3827
  "id",
2296
- "label",
2297
- "action"
3828
+ "label"
2298
3829
  ],
2299
3830
  "additionalProperties": false
2300
3831
  },
@@ -2320,6 +3851,11 @@
2320
3851
  "note"
2321
3852
  ]
2322
3853
  },
3854
+ "colspan": {
3855
+ "type": "integer",
3856
+ "minimum": 1,
3857
+ "maximum": 12
3858
+ },
2323
3859
  "invisible": {
2324
3860
  "$ref": "#/$defs/Modifier"
2325
3861
  }
@@ -2362,6 +3898,168 @@
2362
3898
  },
2363
3899
  {
2364
3900
  "$ref": "#/$defs/TabsNode"
3901
+ },
3902
+ {
3903
+ "type": "object",
3904
+ "properties": {
3905
+ "type": {
3906
+ "type": "string",
3907
+ "const": "divider"
3908
+ },
3909
+ "id": {
3910
+ "type": "string",
3911
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
3912
+ },
3913
+ "invisible": {
3914
+ "$ref": "#/$defs/Modifier"
3915
+ }
3916
+ },
3917
+ "required": [
3918
+ "type",
3919
+ "id"
3920
+ ],
3921
+ "additionalProperties": false
3922
+ },
3923
+ {
3924
+ "type": "object",
3925
+ "properties": {
3926
+ "type": {
3927
+ "type": "string",
3928
+ "const": "spacer"
3929
+ },
3930
+ "id": {
3931
+ "type": "string",
3932
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
3933
+ },
3934
+ "colspan": {
3935
+ "type": "integer",
3936
+ "minimum": 1,
3937
+ "maximum": 12
3938
+ },
3939
+ "invisible": {
3940
+ "$ref": "#/$defs/Modifier"
3941
+ }
3942
+ },
3943
+ "required": [
3944
+ "type",
3945
+ "id"
3946
+ ],
3947
+ "additionalProperties": false
3948
+ },
3949
+ {
3950
+ "type": "object",
3951
+ "properties": {
3952
+ "type": {
3953
+ "type": "string",
3954
+ "const": "image"
3955
+ },
3956
+ "id": {
3957
+ "type": "string",
3958
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
3959
+ },
3960
+ "src": {
3961
+ "type": "string",
3962
+ "minLength": 1
3963
+ },
3964
+ "alt": {
3965
+ "type": "string"
3966
+ },
3967
+ "width": {
3968
+ "anyOf": [
3969
+ {
3970
+ "type": "string",
3971
+ "enum": [
3972
+ "small",
3973
+ "medium",
3974
+ "large",
3975
+ "full"
3976
+ ]
3977
+ },
3978
+ {
3979
+ "type": "integer",
3980
+ "minimum": 16,
3981
+ "maximum": 4000
3982
+ }
3983
+ ]
3984
+ },
3985
+ "align": {
3986
+ "type": "string",
3987
+ "enum": [
3988
+ "start",
3989
+ "center",
3990
+ "end"
3991
+ ]
3992
+ },
3993
+ "href": {
3994
+ "type": "string",
3995
+ "pattern": "^(https?:\\/\\/|mailto:)\\S+$"
3996
+ },
3997
+ "caption": {
3998
+ "type": "string"
3999
+ },
4000
+ "colspan": {
4001
+ "type": "integer",
4002
+ "minimum": 1,
4003
+ "maximum": 12
4004
+ },
4005
+ "invisible": {
4006
+ "$ref": "#/$defs/Modifier"
4007
+ }
4008
+ },
4009
+ "required": [
4010
+ "type",
4011
+ "id",
4012
+ "src",
4013
+ "alt"
4014
+ ],
4015
+ "additionalProperties": false
4016
+ },
4017
+ {
4018
+ "type": "object",
4019
+ "properties": {
4020
+ "type": {
4021
+ "type": "string",
4022
+ "const": "form"
4023
+ },
4024
+ "id": {
4025
+ "type": "string",
4026
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
4027
+ },
4028
+ "page": {
4029
+ "type": "string",
4030
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
4031
+ },
4032
+ "version": {
4033
+ "type": "integer",
4034
+ "minimum": 1,
4035
+ "maximum": 9007199254740991
4036
+ },
4037
+ "name": {
4038
+ "type": "string",
4039
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
4040
+ },
4041
+ "title": {
4042
+ "type": "string"
4043
+ },
4044
+ "colspan": {
4045
+ "type": "integer",
4046
+ "minimum": 1,
4047
+ "maximum": 12
4048
+ },
4049
+ "invisible": {
4050
+ "$ref": "#/$defs/Modifier"
4051
+ },
4052
+ "readonly": {
4053
+ "$ref": "#/$defs/Modifier"
4054
+ }
4055
+ },
4056
+ "required": [
4057
+ "type",
4058
+ "id",
4059
+ "page",
4060
+ "name"
4061
+ ],
4062
+ "additionalProperties": false
2365
4063
  }
2366
4064
  ]
2367
4065
  },
@@ -2389,87 +4087,27 @@
2389
4087
  "columns": {
2390
4088
  "anyOf": [
2391
4089
  {
2392
- "anyOf": [
2393
- {
2394
- "type": "number",
2395
- "const": 1
2396
- },
2397
- {
2398
- "type": "number",
2399
- "const": 2
2400
- },
2401
- {
2402
- "type": "number",
2403
- "const": 3
2404
- },
2405
- {
2406
- "type": "number",
2407
- "const": 4
2408
- }
2409
- ]
4090
+ "type": "integer",
4091
+ "minimum": 1,
4092
+ "maximum": 12
2410
4093
  },
2411
4094
  {
2412
4095
  "type": "object",
2413
4096
  "properties": {
2414
4097
  "wide": {
2415
- "anyOf": [
2416
- {
2417
- "type": "number",
2418
- "const": 1
2419
- },
2420
- {
2421
- "type": "number",
2422
- "const": 2
2423
- },
2424
- {
2425
- "type": "number",
2426
- "const": 3
2427
- },
2428
- {
2429
- "type": "number",
2430
- "const": 4
2431
- }
2432
- ]
4098
+ "type": "integer",
4099
+ "minimum": 1,
4100
+ "maximum": 12
2433
4101
  },
2434
4102
  "medium": {
2435
- "anyOf": [
2436
- {
2437
- "type": "number",
2438
- "const": 1
2439
- },
2440
- {
2441
- "type": "number",
2442
- "const": 2
2443
- },
2444
- {
2445
- "type": "number",
2446
- "const": 3
2447
- },
2448
- {
2449
- "type": "number",
2450
- "const": 4
2451
- }
2452
- ]
4103
+ "type": "integer",
4104
+ "minimum": 1,
4105
+ "maximum": 12
2453
4106
  },
2454
4107
  "narrow": {
2455
- "anyOf": [
2456
- {
2457
- "type": "number",
2458
- "const": 1
2459
- },
2460
- {
2461
- "type": "number",
2462
- "const": 2
2463
- },
2464
- {
2465
- "type": "number",
2466
- "const": 3
2467
- },
2468
- {
2469
- "type": "number",
2470
- "const": 4
2471
- }
2472
- ]
4108
+ "type": "integer",
4109
+ "minimum": 1,
4110
+ "maximum": 12
2473
4111
  }
2474
4112
  },
2475
4113
  "required": [
@@ -2485,6 +4123,40 @@
2485
4123
  "collapsed": {
2486
4124
  "type": "boolean"
2487
4125
  },
4126
+ "colspan": {
4127
+ "type": "integer",
4128
+ "minimum": 1,
4129
+ "maximum": 12
4130
+ },
4131
+ "style": {
4132
+ "type": "string",
4133
+ "enum": [
4134
+ "card",
4135
+ "plain",
4136
+ "line",
4137
+ "framed"
4138
+ ]
4139
+ },
4140
+ "labels": {
4141
+ "type": "string",
4142
+ "enum": [
4143
+ "above",
4144
+ "beside",
4145
+ "hidden"
4146
+ ]
4147
+ },
4148
+ "labelWidth": {
4149
+ "type": "integer",
4150
+ "minimum": 60,
4151
+ "maximum": 320
4152
+ },
4153
+ "rows": {
4154
+ "type": "string",
4155
+ "enum": [
4156
+ "full",
4157
+ "gaps"
4158
+ ]
4159
+ },
2488
4160
  "invisible": {
2489
4161
  "$ref": "#/$defs/Modifier"
2490
4162
  },
@@ -2516,6 +4188,11 @@
2516
4188
  "type": "string",
2517
4189
  "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
2518
4190
  },
4191
+ "colspan": {
4192
+ "type": "integer",
4193
+ "minimum": 1,
4194
+ "maximum": 12
4195
+ },
2519
4196
  "invisible": {
2520
4197
  "$ref": "#/$defs/Modifier"
2521
4198
  },
@@ -2785,6 +4462,13 @@
2785
4462
  "label": {
2786
4463
  "type": "string"
2787
4464
  },
4465
+ "steps": {
4466
+ "minItems": 1,
4467
+ "type": "array",
4468
+ "items": {
4469
+ "$ref": "#/$defs/ActionStep"
4470
+ }
4471
+ },
2788
4472
  "action": {
2789
4473
  "type": "string",
2790
4474
  "minLength": 1
@@ -2813,6 +4497,11 @@
2813
4497
  "icon": {
2814
4498
  "type": "string"
2815
4499
  },
4500
+ "colspan": {
4501
+ "type": "integer",
4502
+ "minimum": 1,
4503
+ "maximum": 12
4504
+ },
2816
4505
  "invisible": {
2817
4506
  "$ref": "#/$defs/Modifier"
2818
4507
  }
@@ -2820,8 +4509,7 @@
2820
4509
  "required": [
2821
4510
  "type",
2822
4511
  "id",
2823
- "label",
2824
- "action"
4512
+ "label"
2825
4513
  ],
2826
4514
  "additionalProperties": false
2827
4515
  }
@@ -2833,6 +4521,61 @@
2833
4521
  "columns"
2834
4522
  ],
2835
4523
  "additionalProperties": false
4524
+ },
4525
+ "PageEvents": {
4526
+ "type": "object",
4527
+ "properties": {
4528
+ "open": {
4529
+ "minItems": 1,
4530
+ "type": "array",
4531
+ "items": {
4532
+ "$ref": "#/$defs/ActionStep"
4533
+ }
4534
+ },
4535
+ "change": {
4536
+ "type": "object",
4537
+ "propertyNames": {
4538
+ "type": "string",
4539
+ "minLength": 1
4540
+ },
4541
+ "additionalProperties": {
4542
+ "minItems": 1,
4543
+ "type": "array",
4544
+ "items": {
4545
+ "$ref": "#/$defs/ActionStep"
4546
+ }
4547
+ }
4548
+ },
4549
+ "beforeSave": {
4550
+ "minItems": 1,
4551
+ "type": "array",
4552
+ "items": {
4553
+ "$ref": "#/$defs/ActionStep"
4554
+ }
4555
+ },
4556
+ "afterSave": {
4557
+ "minItems": 1,
4558
+ "type": "array",
4559
+ "items": {
4560
+ "$ref": "#/$defs/ActionStep"
4561
+ }
4562
+ },
4563
+ "show": {
4564
+ "type": "object",
4565
+ "propertyNames": {
4566
+ "type": "string",
4567
+ "minLength": 1
4568
+ },
4569
+ "additionalProperties": {
4570
+ "minItems": 1,
4571
+ "type": "array",
4572
+ "items": {
4573
+ "$ref": "#/$defs/ActionStep"
4574
+ }
4575
+ }
4576
+ }
4577
+ },
4578
+ "additionalProperties": false
2836
4579
  }
2837
4580
  }
2838
4581
  }