@fieldia/core 0.10.0 → 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 (67) hide show
  1. package/README.md +199 -0
  2. package/package.json +1 -1
  3. package/schema/page.schema.json +829 -125
  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/format/actions.d.mts +692 -0
  11. package/src/lib/format/actions.d.ts +692 -0
  12. package/src/lib/format/actions.js +53 -0
  13. package/src/lib/format/actions.js.map +1 -0
  14. package/src/lib/format/actions.mjs +50 -0
  15. package/src/lib/format/actions.mjs.map +1 -0
  16. package/src/lib/format/field.js +4 -2
  17. package/src/lib/format/field.js.map +1 -1
  18. package/src/lib/format/field.mjs +4 -2
  19. package/src/lib/format/field.mjs.map +1 -1
  20. package/src/lib/format/layout.d.mts +745 -15
  21. package/src/lib/format/layout.d.ts +745 -15
  22. package/src/lib/format/layout.js +18 -3
  23. package/src/lib/format/layout.js.map +1 -1
  24. package/src/lib/format/layout.mjs +17 -2
  25. package/src/lib/format/layout.mjs.map +1 -1
  26. package/src/lib/format/layout.types.d.mts +2 -1
  27. package/src/lib/format/layout.types.d.ts +2 -1
  28. package/src/lib/format/page.d.mts +616 -3
  29. package/src/lib/format/page.d.ts +616 -3
  30. package/src/lib/format/page.js +17 -2
  31. package/src/lib/format/page.js.map +1 -1
  32. package/src/lib/format/page.mjs +17 -2
  33. package/src/lib/format/page.mjs.map +1 -1
  34. package/src/lib/format/part-look.d.mts +36 -0
  35. package/src/lib/format/part-look.d.ts +36 -0
  36. package/src/lib/format/part-look.js +23 -0
  37. package/src/lib/format/part-look.js.map +1 -0
  38. package/src/lib/format/part-look.mjs +20 -0
  39. package/src/lib/format/part-look.mjs.map +1 -0
  40. package/src/lib/format/references.d.mts +19 -0
  41. package/src/lib/format/references.d.ts +19 -0
  42. package/src/lib/format/references.js +131 -2
  43. package/src/lib/format/references.js.map +1 -1
  44. package/src/lib/format/references.mjs +131 -2
  45. package/src/lib/format/references.mjs.map +1 -1
  46. package/src/lib/record/data-source.d.mts +5 -1
  47. package/src/lib/record/data-source.d.ts +5 -1
  48. package/src/lib/record/data-source.js.map +1 -1
  49. package/src/lib/record/data-source.mjs.map +1 -1
  50. package/src/lib/record/form.d.mts +86 -18
  51. package/src/lib/record/form.d.ts +86 -18
  52. package/src/lib/record/form.js +343 -46
  53. package/src/lib/record/form.js.map +1 -1
  54. package/src/lib/record/form.mjs +343 -46
  55. package/src/lib/record/form.mjs.map +1 -1
  56. package/src/lib/record/run.d.mts +169 -0
  57. package/src/lib/record/run.d.ts +169 -0
  58. package/src/lib/record/run.js +350 -0
  59. package/src/lib/record/run.js.map +1 -0
  60. package/src/lib/record/run.mjs +345 -0
  61. package/src/lib/record/run.mjs.map +1 -0
  62. package/src/runtime.d.mts +5 -2
  63. package/src/runtime.d.ts +5 -2
  64. package/src/runtime.js +3 -1
  65. package/src/runtime.js.map +1 -1
  66. package/src/runtime.mjs +1 -0
  67. package/src/runtime.mjs.map +1 -1
@@ -131,6 +131,146 @@
131
131
  "dark",
132
132
  "auto"
133
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
134
274
  }
135
275
  },
136
276
  "additionalProperties": false
@@ -154,6 +294,9 @@
154
294
  "type": "string"
155
295
  }
156
296
  }
297
+ },
298
+ "on": {
299
+ "$ref": "#/$defs/PageEvents"
157
300
  }
158
301
  },
159
302
  "required": [
@@ -2762,6 +2905,13 @@
2762
2905
  "label": {
2763
2906
  "type": "string"
2764
2907
  },
2908
+ "steps": {
2909
+ "minItems": 1,
2910
+ "type": "array",
2911
+ "items": {
2912
+ "$ref": "#/$defs/ActionStep"
2913
+ }
2914
+ },
2765
2915
  "action": {
2766
2916
  "type": "string",
2767
2917
  "minLength": 1
@@ -2802,8 +2952,7 @@
2802
2952
  "required": [
2803
2953
  "type",
2804
2954
  "id",
2805
- "label",
2806
- "action"
2955
+ "label"
2807
2956
  ],
2808
2957
  "additionalProperties": false
2809
2958
  }
@@ -2820,6 +2969,13 @@
2820
2969
  "label": {
2821
2970
  "type": "string"
2822
2971
  },
2972
+ "steps": {
2973
+ "minItems": 1,
2974
+ "type": "array",
2975
+ "items": {
2976
+ "$ref": "#/$defs/ActionStep"
2977
+ }
2978
+ },
2823
2979
  "action": {
2824
2980
  "type": "string",
2825
2981
  "minLength": 1
@@ -2837,8 +2993,7 @@
2837
2993
  },
2838
2994
  "required": [
2839
2995
  "id",
2840
- "label",
2841
- "action"
2996
+ "label"
2842
2997
  ],
2843
2998
  "additionalProperties": false
2844
2999
  }
@@ -3061,186 +3216,627 @@
3061
3216
  }
3062
3217
  ]
3063
3218
  },
3064
- "LayoutNode": {
3219
+ "ActionStep": {
3065
3220
  "oneOf": [
3066
3221
  {
3067
3222
  "type": "object",
3068
3223
  "properties": {
3069
- "type": {
3224
+ "do": {
3070
3225
  "type": "string",
3071
- "const": "field"
3226
+ "const": "open"
3072
3227
  },
3073
- "id": {
3228
+ "when": {
3229
+ "anyOf": [
3230
+ {
3231
+ "type": "boolean"
3232
+ },
3233
+ {
3234
+ "type": "string",
3235
+ "minLength": 1
3236
+ }
3237
+ ]
3238
+ },
3239
+ "page": {
3074
3240
  "type": "string",
3075
- "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
3241
+ "minLength": 1
3076
3242
  },
3077
- "field": {
3243
+ "version": {
3244
+ "type": "integer",
3245
+ "minimum": 1,
3246
+ "maximum": 9007199254740991
3247
+ },
3248
+ "as": {
3078
3249
  "type": "string",
3079
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
3250
+ "enum": [
3251
+ "dialog",
3252
+ "panel",
3253
+ "page"
3254
+ ]
3080
3255
  },
3081
- "label": {
3256
+ "side": {
3257
+ "type": "string",
3258
+ "enum": [
3259
+ "end",
3260
+ "start",
3261
+ "right",
3262
+ "left",
3263
+ "top",
3264
+ "bottom"
3265
+ ]
3266
+ },
3267
+ "title": {
3082
3268
  "type": "string"
3083
3269
  },
3084
- "widget": {
3270
+ "record": {
3085
3271
  "type": "string",
3086
3272
  "minLength": 1
3087
3273
  },
3088
- "options": {
3274
+ "values": {
3089
3275
  "type": "object",
3090
3276
  "propertyNames": {
3091
- "type": "string"
3277
+ "type": "string",
3278
+ "minLength": 1
3092
3279
  },
3093
3280
  "additionalProperties": {
3094
- "$ref": "#/$defs/JsonValue"
3095
- }
3096
- },
3097
- "placeholder": {
3098
- "type": "string"
3099
- },
3100
- "help": {
3101
- "type": "string"
3102
- },
3103
- "colspan": {
3104
- "type": "integer",
3105
- "minimum": 1,
3106
- "maximum": 12
3107
- },
3108
- "columns": {
3109
- "minItems": 1,
3110
- "type": "array",
3111
- "items": {
3112
- "type": "string",
3113
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
3114
- }
3115
- },
3116
- "totals": {
3117
- "minItems": 1,
3118
- "type": "array",
3119
- "items": {
3120
3281
  "type": "string",
3121
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
3282
+ "minLength": 1
3122
3283
  }
3123
3284
  },
3124
- "optionalColumns": {
3285
+ "into": {
3125
3286
  "type": "object",
3126
3287
  "propertyNames": {
3127
3288
  "type": "string",
3128
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
3289
+ "minLength": 1
3129
3290
  },
3130
3291
  "additionalProperties": {
3131
3292
  "type": "string",
3132
- "enum": [
3133
- "show",
3134
- "hide"
3135
- ]
3293
+ "minLength": 1
3136
3294
  }
3137
3295
  },
3138
- "editMode": {
3139
- "type": "string",
3140
- "enum": [
3141
- "cell",
3142
- "row"
3143
- ]
3144
- },
3145
- "labels": {
3146
- "type": "string",
3147
- "enum": [
3148
- "above",
3149
- "beside",
3150
- "hidden"
3151
- ]
3152
- },
3153
- "validate": {
3296
+ "then": {
3154
3297
  "minItems": 1,
3155
3298
  "type": "array",
3156
3299
  "items": {
3157
- "$ref": "#/$defs/AnswerRule"
3300
+ "$ref": "#/$defs/ActionStep"
3158
3301
  }
3159
- },
3160
- "invisible": {
3161
- "$ref": "#/$defs/Modifier"
3162
- },
3163
- "readonly": {
3164
- "$ref": "#/$defs/Modifier"
3165
- },
3166
- "required": {
3167
- "$ref": "#/$defs/Modifier"
3168
3302
  }
3169
3303
  },
3170
3304
  "required": [
3171
- "type",
3172
- "id",
3173
- "field"
3305
+ "do",
3306
+ "page"
3174
3307
  ],
3175
3308
  "additionalProperties": false
3176
3309
  },
3177
3310
  {
3178
3311
  "type": "object",
3179
3312
  "properties": {
3180
- "type": {
3181
- "type": "string",
3182
- "const": "button"
3183
- },
3184
- "id": {
3313
+ "do": {
3185
3314
  "type": "string",
3186
- "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
3315
+ "const": "set"
3187
3316
  },
3188
- "label": {
3189
- "type": "string"
3317
+ "when": {
3318
+ "anyOf": [
3319
+ {
3320
+ "type": "boolean"
3321
+ },
3322
+ {
3323
+ "type": "string",
3324
+ "minLength": 1
3325
+ }
3326
+ ]
3190
3327
  },
3191
- "action": {
3328
+ "field": {
3192
3329
  "type": "string",
3193
3330
  "minLength": 1
3194
3331
  },
3195
- "params": {
3196
- "type": "object",
3197
- "propertyNames": {
3198
- "type": "string"
3199
- },
3200
- "additionalProperties": {
3201
- "$ref": "#/$defs/JsonValue"
3202
- }
3203
- },
3204
- "style": {
3332
+ "value": {
3205
3333
  "type": "string",
3206
- "enum": [
3207
- "primary",
3208
- "secondary",
3209
- "danger",
3210
- "link"
3211
- ]
3212
- },
3213
- "confirm": {
3214
- "type": "string"
3215
- },
3216
- "icon": {
3217
- "type": "string"
3218
- },
3219
- "colspan": {
3220
- "type": "integer",
3221
- "minimum": 1,
3222
- "maximum": 12
3223
- },
3224
- "invisible": {
3225
- "$ref": "#/$defs/Modifier"
3334
+ "minLength": 1
3226
3335
  }
3227
3336
  },
3228
3337
  "required": [
3229
- "type",
3230
- "id",
3231
- "label",
3232
- "action"
3338
+ "do",
3339
+ "field",
3340
+ "value"
3233
3341
  ],
3234
3342
  "additionalProperties": false
3235
3343
  },
3236
3344
  {
3237
3345
  "type": "object",
3238
3346
  "properties": {
3239
- "type": {
3347
+ "do": {
3240
3348
  "type": "string",
3241
- "const": "text"
3349
+ "const": "clear"
3242
3350
  },
3243
- "id": {
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
+ },
3654
+ "LayoutNode": {
3655
+ "oneOf": [
3656
+ {
3657
+ "type": "object",
3658
+ "properties": {
3659
+ "type": {
3660
+ "type": "string",
3661
+ "const": "field"
3662
+ },
3663
+ "id": {
3664
+ "type": "string",
3665
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
3666
+ },
3667
+ "field": {
3668
+ "type": "string",
3669
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
3670
+ },
3671
+ "label": {
3672
+ "type": "string"
3673
+ },
3674
+ "widget": {
3675
+ "type": "string",
3676
+ "minLength": 1
3677
+ },
3678
+ "options": {
3679
+ "type": "object",
3680
+ "propertyNames": {
3681
+ "type": "string"
3682
+ },
3683
+ "additionalProperties": {
3684
+ "$ref": "#/$defs/JsonValue"
3685
+ }
3686
+ },
3687
+ "placeholder": {
3688
+ "type": "string"
3689
+ },
3690
+ "help": {
3691
+ "type": "string"
3692
+ },
3693
+ "colspan": {
3694
+ "type": "integer",
3695
+ "minimum": 1,
3696
+ "maximum": 12
3697
+ },
3698
+ "columns": {
3699
+ "minItems": 1,
3700
+ "type": "array",
3701
+ "items": {
3702
+ "type": "string",
3703
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
3704
+ }
3705
+ },
3706
+ "totals": {
3707
+ "minItems": 1,
3708
+ "type": "array",
3709
+ "items": {
3710
+ "type": "string",
3711
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
3712
+ }
3713
+ },
3714
+ "optionalColumns": {
3715
+ "type": "object",
3716
+ "propertyNames": {
3717
+ "type": "string",
3718
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
3719
+ },
3720
+ "additionalProperties": {
3721
+ "type": "string",
3722
+ "enum": [
3723
+ "show",
3724
+ "hide"
3725
+ ]
3726
+ }
3727
+ },
3728
+ "editMode": {
3729
+ "type": "string",
3730
+ "enum": [
3731
+ "cell",
3732
+ "row"
3733
+ ]
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
+ },
3750
+ "invisible": {
3751
+ "$ref": "#/$defs/Modifier"
3752
+ },
3753
+ "readonly": {
3754
+ "$ref": "#/$defs/Modifier"
3755
+ },
3756
+ "required": {
3757
+ "$ref": "#/$defs/Modifier"
3758
+ }
3759
+ },
3760
+ "required": [
3761
+ "type",
3762
+ "id",
3763
+ "field"
3764
+ ],
3765
+ "additionalProperties": false
3766
+ },
3767
+ {
3768
+ "type": "object",
3769
+ "properties": {
3770
+ "type": {
3771
+ "type": "string",
3772
+ "const": "button"
3773
+ },
3774
+ "id": {
3775
+ "type": "string",
3776
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
3777
+ },
3778
+ "label": {
3779
+ "type": "string"
3780
+ },
3781
+ "steps": {
3782
+ "minItems": 1,
3783
+ "type": "array",
3784
+ "items": {
3785
+ "$ref": "#/$defs/ActionStep"
3786
+ }
3787
+ },
3788
+ "action": {
3789
+ "type": "string",
3790
+ "minLength": 1
3791
+ },
3792
+ "params": {
3793
+ "type": "object",
3794
+ "propertyNames": {
3795
+ "type": "string"
3796
+ },
3797
+ "additionalProperties": {
3798
+ "$ref": "#/$defs/JsonValue"
3799
+ }
3800
+ },
3801
+ "style": {
3802
+ "type": "string",
3803
+ "enum": [
3804
+ "primary",
3805
+ "secondary",
3806
+ "danger",
3807
+ "link"
3808
+ ]
3809
+ },
3810
+ "confirm": {
3811
+ "type": "string"
3812
+ },
3813
+ "icon": {
3814
+ "type": "string"
3815
+ },
3816
+ "colspan": {
3817
+ "type": "integer",
3818
+ "minimum": 1,
3819
+ "maximum": 12
3820
+ },
3821
+ "invisible": {
3822
+ "$ref": "#/$defs/Modifier"
3823
+ }
3824
+ },
3825
+ "required": [
3826
+ "type",
3827
+ "id",
3828
+ "label"
3829
+ ],
3830
+ "additionalProperties": false
3831
+ },
3832
+ {
3833
+ "type": "object",
3834
+ "properties": {
3835
+ "type": {
3836
+ "type": "string",
3837
+ "const": "text"
3838
+ },
3839
+ "id": {
3244
3840
  "type": "string",
3245
3841
  "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
3246
3842
  },
@@ -3417,6 +4013,53 @@
3417
4013
  "alt"
3418
4014
  ],
3419
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
3420
4063
  }
3421
4064
  ]
3422
4065
  },
@@ -3819,6 +4462,13 @@
3819
4462
  "label": {
3820
4463
  "type": "string"
3821
4464
  },
4465
+ "steps": {
4466
+ "minItems": 1,
4467
+ "type": "array",
4468
+ "items": {
4469
+ "$ref": "#/$defs/ActionStep"
4470
+ }
4471
+ },
3822
4472
  "action": {
3823
4473
  "type": "string",
3824
4474
  "minLength": 1
@@ -3859,8 +4509,7 @@
3859
4509
  "required": [
3860
4510
  "type",
3861
4511
  "id",
3862
- "label",
3863
- "action"
4512
+ "label"
3864
4513
  ],
3865
4514
  "additionalProperties": false
3866
4515
  }
@@ -3872,6 +4521,61 @@
3872
4521
  "columns"
3873
4522
  ],
3874
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
3875
4579
  }
3876
4580
  }
3877
4581
  }