@docupace/ihub-config 1.1.30 → 1.1.32

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 (38) hide show
  1. package/README.md +182 -182
  2. package/dist/config-service.d.ts +2 -2
  3. package/dist/config-service.d.ts.map +1 -1
  4. package/dist/config-service.js +7 -5
  5. package/dist/config-service.js.map +1 -1
  6. package/dist/model/graphs/config/common.graphql +7 -7
  7. package/dist/model/graphs/config/fields.graphql +467 -454
  8. package/dist/model/graphs/config/menu.graphql +60 -60
  9. package/dist/model/graphs/config/mutation.graphql +30 -30
  10. package/dist/model/graphs/config/page.graphql +283 -283
  11. package/dist/model/graphs/config/panel.graphql +43 -43
  12. package/dist/model/graphs/config/query.graphql +102 -93
  13. package/dist/model/graphs/config/rules.graphql +116 -116
  14. package/dist/model/graphs/config/selectOptions.graphql +48 -48
  15. package/dist/model/graphs/config/table.graphql +231 -231
  16. package/dist/model/graphs/config/tests.graphql +16 -16
  17. package/dist/model/graphs/config/theme.graphql +41 -41
  18. package/dist/model/graphs/config/ui-components.graphql +11 -11
  19. package/dist/model/graphs/domains/scalars.graphql +3 -3
  20. package/dist/model/graphs/filter.graphql +5 -5
  21. package/dist/model/graphs/schema.graphql +7 -7
  22. package/model/graphs/config/common.graphql +7 -7
  23. package/model/graphs/config/fields.graphql +467 -454
  24. package/model/graphs/config/menu.graphql +60 -60
  25. package/model/graphs/config/mutation.graphql +30 -30
  26. package/model/graphs/config/page.graphql +283 -283
  27. package/model/graphs/config/panel.graphql +43 -43
  28. package/model/graphs/config/query.graphql +102 -93
  29. package/model/graphs/config/rules.graphql +116 -116
  30. package/model/graphs/config/selectOptions.graphql +48 -48
  31. package/model/graphs/config/table.graphql +231 -231
  32. package/model/graphs/config/tests.graphql +16 -16
  33. package/model/graphs/config/theme.graphql +41 -41
  34. package/model/graphs/config/ui-components.graphql +11 -11
  35. package/model/graphs/domains/scalars.graphql +3 -3
  36. package/model/graphs/filter.graphql +5 -5
  37. package/model/graphs/schema.graphql +7 -7
  38. package/package.json +81 -83
@@ -1,454 +1,467 @@
1
- interface IField {
2
- defaultValue: String
3
- hidden: Boolean
4
- label: String
5
- name: String!
6
- path: String!
7
- readonly: Boolean
8
- required: Boolean
9
- requiredCondition: String
10
- skipQuery: Boolean
11
- excludeFromQueryInput: Boolean
12
- visibilityCondition: String
13
- disabledCondition: String
14
- """
15
- Always include this field in the mutation input, even if it is hidden or has not been modified by the user.
16
- """
17
- skipDirtyCheck: Boolean
18
- }
19
-
20
- interface IDateRangeField {
21
- defaultValue: [String] # [startDate, endDate]
22
- defaultValueExpressions: [String] # [startDate, endDate]
23
- format: String
24
- hidden: Boolean
25
- label: String
26
- name: String!
27
- paths: [String!]!
28
- readonly: Boolean
29
- required: Boolean
30
- requiredCondition: String
31
- skipQuery: Boolean
32
- excludeFromQueryInput: Boolean
33
- visibilityCondition: String
34
- disabledCondition: String
35
- validation: GenericFieldValidation
36
-
37
- }
38
-
39
- type InputField implements IField & IRowElement & IElement {
40
- cols: Int
41
- defaultValue: String
42
- helperText: String
43
- hidden: Boolean
44
- label: String
45
- masking: FieldMasking
46
- maxLength: Int
47
- minLength: Int
48
- name: String!
49
- path: String!
50
- placeholder: String
51
- readonly: Boolean
52
- required: Boolean
53
- requiredCondition: String
54
- skipQuery: Boolean
55
- excludeFromQueryInput: Boolean
56
- startAdornment: String
57
- type: FieldValueType
58
- validation: InputValidation
59
- visibilityCondition: String
60
- disabledCondition: String
61
- # Start of text area configuration, see https://mui.com/material-ui/react-text-field/#multiline
62
- multiline: Boolean # optional if at least one other text area parameter is provided
63
- rows: Int
64
- maxRows: Int
65
- minRows: Int
66
- # End of text area configuration
67
- # Masks the entered value and marks it for browser privacy tooling.
68
- sensitive: Boolean
69
- custom: Boolean
70
- }
71
-
72
- type CustomValidator implements IRowElement & IElement {
73
- validationRule: String
74
- errorMessage: String
75
- paths: [String!]!
76
- custom: Boolean
77
- }
78
-
79
- union Fields = InputField | PhoneField | DateField | DateRangeField | SelectField | ToggleField | BooleanField | TextElement | ReferenceTable
80
-
81
- type ItemValidation {
82
- type: String!
83
- fields: [String!]!
84
- errorMessage: String
85
- }
86
-
87
- type RepeaterField implements IRowElement & IElement {
88
- path: String!
89
- title: String
90
- label: String
91
- buttonLabel: String
92
- required: Boolean
93
- skipId: Boolean
94
- fields: [Fields!]!
95
- visibilityCondition: String
96
- maxFields: String
97
- validateUnique: Boolean
98
- duplicateMessage: String
99
- itemValidation: ItemValidation
100
- custom: Boolean
101
- }
102
-
103
- type ControlGroup implements IRowElement & IElement {
104
- path: String!
105
- title: String
106
- skipId: Boolean
107
- controlOptions: ISelectOptions!
108
- fields: [Fields!]!
109
- custom: Boolean
110
- }
111
-
112
- # Renders the currently-linked records of a multi-valued reference attribute
113
- # (`path`) as a table (`columns`, reusing Table's Column config), with a quick
114
- # typeahead (`search`, reusing Table's SimpleSearch/QuerySelectOptions config)
115
- # to find and add records of `dataType`, and a delete affordance per row.
116
- # `rowMenuItems` (reusing Table's MenuItem config) adds further per-row actions,
117
- # e.g. an `action: "details"` item with a `url` to navigate to that record's own
118
- # details page.
119
- type ReferenceTable implements IField & IRowElement & IElement {
120
- cols: Int
121
- defaultValue: String
122
- disabledCondition: String
123
- excludeFromQueryInput: Boolean
124
- hidden: Boolean
125
- label: String
126
- name: String!
127
- path: String!
128
- readonly: Boolean
129
- required: Boolean
130
- requiredCondition: String
131
- skipDirtyCheck: Boolean
132
- skipQuery: Boolean
133
- visibilityCondition: String
134
- dataType: String!
135
- columns: [Column!]!
136
- search: SimpleSearch
137
- addLabel: String
138
- confirmDelete: Boolean
139
- maxRows: Int
140
- rowMenuItems: [MenuItem!]
141
- recordCreate: ReferenceTableRecordDialog
142
- recordUpdate: ReferenceTableRecordDialog
143
- custom: Boolean
144
- }
145
-
146
- type ReferenceTableRecordDialog {
147
- label: String
148
- configPath: String!
149
- }
150
-
151
- type PhoneField implements IField & IRowElement & IElement {
152
- cols: Int
153
- defaultValue: String
154
- hidden: Boolean
155
- label: String
156
- name: String!
157
- path: String!
158
- placeholder: String
159
- readonly: Boolean
160
- required: Boolean
161
- requiredCondition: String
162
- skipQuery: Boolean
163
- excludeFromQueryInput: Boolean
164
- visibilityCondition: String
165
- disabledCondition: String
166
- validation: GenericFieldValidation
167
- custom: Boolean
168
- }
169
-
170
- type DateField implements IField & IRowElement & IElement {
171
- cols: Int
172
- defaultValue: String
173
- hidden: Boolean
174
- label: String
175
- name: String!
176
- path: String!
177
- readonly: Boolean
178
- required: Boolean
179
- requiredCondition: String
180
- skipQuery: Boolean
181
- excludeFromQueryInput: Boolean
182
- visibilityCondition: String
183
- disabledCondition: String
184
- minDate: String # e.q. "now" or "2025-03-20"
185
- maxDate: String # e.q. "now" or "2025-03-20"
186
- validation: GenericFieldValidation
187
- custom: Boolean
188
- }
189
-
190
- type DateRangeField implements IDateRangeField & IRowElement & IElement {
191
- cols: Int
192
- defaultValue: [String!] # [startDate, endDate]
193
- defaultValueExpressions: [String!] # [startDate, endDate]
194
- format: String
195
- hidden: Boolean
196
- label: String
197
- name: String!
198
- paths: [String!]!
199
- readonly: Boolean
200
- required: Boolean
201
- requiredCondition: String
202
- skipQuery: Boolean
203
- excludeFromQueryInput: Boolean
204
- visibilityCondition: String
205
- disabledCondition: String
206
- validation: GenericFieldValidation
207
- custom: Boolean
208
- }
209
-
210
- type SelectField implements IField & IRowElement & IElement {
211
- cols: Int
212
- defaultValue: String
213
- defaultValuePath: String
214
- disableClearable: Boolean
215
- hidden: Boolean
216
- label: String
217
- multiple: Boolean
218
- name: String!
219
- path: String!
220
- placeholder: String
221
- readonly: Boolean
222
- required: Boolean
223
- requiredCondition: String
224
- selectOptions: ISelectOptions!
225
- skipQuery: Boolean
226
- excludeFromQueryInput: Boolean
227
- visibilityCondition: String
228
- disabledCondition: String
229
- excludeId: Boolean
230
- helperText: String
231
- autoSelectSingleOption: Boolean
232
- validation: GenericFieldValidation
233
- custom: Boolean
234
- }
235
-
236
- type ToggleField implements IField & IRowElement & IElement {
237
- cols: Int
238
- defaultValue: String
239
- disableClearable: Boolean
240
- hidden: Boolean
241
- label: String
242
- multiple: Boolean
243
- name: String!
244
- path: String!
245
- readonly: Boolean
246
- required: Boolean
247
- requiredCondition: String
248
- selectOptions: ISelectOptions!
249
- size: String # see https://mui.com/material-ui/react-toggle-button/#size
250
- skipQuery: Boolean
251
- excludeFromQueryInput: Boolean
252
- visibilityCondition: String
253
- disabledCondition: String
254
- linkedFields: [String!]
255
- validation: GenericFieldValidation
256
- custom: Boolean
257
- }
258
-
259
- type BooleanField implements IField & IRowElement & IElement {
260
- """Allow the selected Yes or No option to be selected again to restore a null value."""
261
- clearable: Boolean
262
- cols: Int
263
- defaultValue: String
264
- hidden: Boolean
265
- label: String
266
- name: String!
267
- path: String!
268
- readonly: Boolean
269
- required: Boolean
270
- requiredCondition: String
271
- skipQuery: Boolean
272
- excludeFromQueryInput: Boolean
273
- visibilityCondition: String
274
- disabledCondition: String
275
- linkedFields: [String!]
276
- validation: GenericFieldValidation
277
- custom: Boolean
278
- }
279
-
280
- type ChipSelectWithInputField implements IField & IRowElement & IElement {
281
- cols: Int
282
- defaultValue: String
283
- defaultValuePath: String
284
- hidden: Boolean
285
- input: InputField
286
- label: String
287
- name: String!
288
- path: String!
289
- labelPath: String
290
- readonly: Boolean
291
- multiple: Boolean
292
- required: Boolean
293
- requiredCondition: String
294
- selectOptions: ISelectOptions!
295
- skipQuery: Boolean
296
- excludeFromQueryInput: Boolean
297
- subTitle: String
298
- title: String
299
- visibilityCondition: String
300
- disabledCondition: String
301
- linkedFields: [String!]
302
- validation: ChipSelectValidation
303
- custom: Boolean
304
- }
305
-
306
- type CustomField implements IField & IRowElement & IElement {
307
- cols: Int
308
- component: String!
309
- config: JSON
310
- defaultValue: String
311
- hidden: Boolean
312
- label: String
313
- name: String!
314
- path: String!
315
- readonly: Boolean
316
- required: Boolean
317
- requiredCondition: String
318
- skipQuery: Boolean
319
- excludeFromQueryInput: Boolean
320
- visibilityCondition: String
321
- disabledCondition: String
322
- validation: GenericFieldValidation
323
- custom: Boolean
324
- }
325
-
326
- type StatusChipField implements IField & IRowElement & IElement {
327
- align: String
328
- cols: Int
329
- label: String
330
- name: String!
331
- path: String!
332
- validation: GenericFieldValidation
333
- custom: Boolean
334
- }
335
-
336
- type CheckboxGroupValue {
337
- label: String!
338
- path: String!
339
- skipQuery: Boolean
340
- excludeFromQueryInput: Boolean
341
- value: JSON!
342
- }
343
-
344
- type CheckboxGroup implements IRowElement & IElement {
345
- cols: Int
346
- name: String!
347
- required: Boolean
348
- requiredCondition: String
349
- subTitle: String
350
- title: String
351
- values: [CheckboxGroupValue!]!
352
- visibilityCondition: String
353
- disabledCondition: String
354
- custom: Boolean
355
- }
356
-
357
- enum FieldValueType {
358
- Int
359
- Float
360
- }
361
-
362
- type GenericFieldValidation {
363
- custom : CustomFieldValidation
364
- }
365
-
366
- type CustomFieldValidation {
367
- expression: String
368
- message: String
369
- """
370
- Paths of other fields this expression reads. When one of these fields changes, this
371
- field's validation is re-triggered so its error state stays in sync without requiring
372
- the user to re-touch this field directly.
373
- """
374
- dependentPaths: [String!]
375
- }
376
-
377
- type StringValidationRule {
378
- message: String
379
- value: String
380
- }
381
-
382
- type IntValidationRule {
383
- message: String
384
- value: Int
385
- }
386
-
387
- type FloatValidationRule {
388
- message: String
389
- value: Float
390
- }
391
-
392
- type FormatValidationRule {
393
- name: String
394
- description: String
395
- message: String
396
- expression: String
397
- condition: String
398
- }
399
-
400
- type InputValidation {
401
- email: StringValidationRule
402
- length: IntValidationRule
403
- format: [FormatValidationRule!]
404
- min: FloatValidationRule
405
- max: FloatValidationRule
406
- custom: CustomFieldValidation
407
- }
408
-
409
- type ChipSelectValidation {
410
- compatibleWith: CompatibleWithRule
411
- uniqueInList: UniqueInListRule
412
- custom : CustomFieldValidation
413
- }
414
-
415
- type CompatibleWithRule {
416
- field: String!
417
- rules: [CompatibleWithRuleEntry!]!
418
- }
419
-
420
- type CompatibleWithRuleEntry {
421
- when: WhenClause!
422
- allowed: [String!]!
423
- message: String!
424
- }
425
-
426
- type WhenClause {
427
- equals: String
428
- in: [String!]
429
- }
430
-
431
- type UniqueInListRule {
432
- listPaths: [String!]!
433
- itemValuePath: String!
434
- value: String
435
- message: String!
436
- }
437
-
438
- # see more https://s-yadav.github.io/react-number-format/docs/props
439
- type PatternMasking {
440
- dynamic: Boolean
441
- format: String!
442
- mask: String
443
- }
444
-
445
- # see more https://s-yadav.github.io/react-number-format/docs/props
446
- type NumericMasking {
447
- thousandSeparator: String
448
- decimalSeparator: String
449
- decimalScale: Number
450
- fixedDecimalScale: Boolean
451
- allowNegative: Boolean
452
- }
453
-
454
- union FieldMasking = PatternMasking | NumericMasking
1
+ interface IField {
2
+ defaultValue: String
3
+ hidden: Boolean
4
+ label: String
5
+ name: String!
6
+ path: String!
7
+ readonly: Boolean
8
+ required: Boolean
9
+ requiredCondition: String
10
+ skipQuery: Boolean
11
+ excludeFromQueryInput: Boolean
12
+ visibilityCondition: String
13
+ disabledCondition: String
14
+ """
15
+ Always include this field in the mutation input, even if it is hidden or has not been modified by the user.
16
+ """
17
+ skipDirtyCheck: Boolean
18
+ }
19
+
20
+ interface IDateRangeField {
21
+ defaultValue: [String] # [startDate, endDate]
22
+ defaultValueExpressions: [String] # [startDate, endDate]
23
+ format: String
24
+ hidden: Boolean
25
+ label: String
26
+ name: String!
27
+ paths: [String!]!
28
+ readonly: Boolean
29
+ required: Boolean
30
+ requiredCondition: String
31
+ skipQuery: Boolean
32
+ excludeFromQueryInput: Boolean
33
+ visibilityCondition: String
34
+ disabledCondition: String
35
+ validation: GenericFieldValidation
36
+
37
+ }
38
+
39
+ type InputField implements IField & IRowElement & IElement {
40
+ cols: Int
41
+ defaultValue: String
42
+ helperText: String
43
+ hidden: Boolean
44
+ label: String
45
+ masking: FieldMasking
46
+ maxLength: Int
47
+ minLength: Int
48
+ name: String!
49
+ path: String!
50
+ placeholder: String
51
+ readonly: Boolean
52
+ required: Boolean
53
+ requiredCondition: String
54
+ skipQuery: Boolean
55
+ excludeFromQueryInput: Boolean
56
+ startAdornment: String
57
+ type: FieldValueType
58
+ validation: InputValidation
59
+ visibilityCondition: String
60
+ disabledCondition: String
61
+ # Start of text area configuration, see https://mui.com/material-ui/react-text-field/#multiline
62
+ multiline: Boolean # optional if at least one other text area parameter is provided
63
+ rows: Int
64
+ maxRows: Int
65
+ minRows: Int
66
+ # End of text area configuration
67
+ # Masks the entered value and marks it for browser privacy tooling.
68
+ sensitive: Boolean
69
+ custom: Boolean
70
+ }
71
+
72
+ type CustomValidator implements IRowElement & IElement {
73
+ validationRule: String
74
+ errorMessage: String
75
+ paths: [String!]!
76
+ custom: Boolean
77
+ }
78
+
79
+ union Fields = InputField | PhoneField | DateField | DateRangeField | SelectField | ToggleField | BooleanField | TextElement | ReferenceTable
80
+
81
+ type ItemValidation {
82
+ type: String!
83
+ fields: [String!]!
84
+ errorMessage: String
85
+ }
86
+
87
+ type RepeaterField implements IRowElement & IElement {
88
+ path: String!
89
+ title: String
90
+ label: String
91
+ buttonLabel: String
92
+ required: Boolean
93
+ skipId: Boolean
94
+ fields: [Fields!]!
95
+ visibilityCondition: String
96
+ maxFields: String
97
+ validateUnique: Boolean
98
+ duplicateMessage: String
99
+ itemValidation: ItemValidation
100
+ custom: Boolean
101
+ }
102
+
103
+ type ControlGroup implements IRowElement & IElement {
104
+ path: String!
105
+ title: String
106
+ skipId: Boolean
107
+ controlOptions: ISelectOptions!
108
+ fields: [Fields!]!
109
+ custom: Boolean
110
+ }
111
+
112
+ # Renders the currently-linked records of a multi-valued reference attribute
113
+ # (`path`) as a table (`columns`, reusing Table's Column config), with a delete
114
+ # affordance per row. Single-source tables use the top-level `search`,
115
+ # `recordCreate`, and `recordUpdate` fields. Multi-source tables instead use
116
+ # `referenceSources`, which takes precedence: when it is set, the top-level
117
+ # `search`, `recordCreate`, and `recordUpdate` are ignored.
118
+ # `rowMenuItems` (reusing Table's MenuItem config) adds further per-row actions,
119
+ # e.g. an `action: "details"` item with a `url` to navigate to that record's own
120
+ # details page.
121
+ type ReferenceTable implements IField & IRowElement & IElement {
122
+ cols: Int
123
+ defaultValue: String
124
+ disabledCondition: String
125
+ excludeFromQueryInput: Boolean
126
+ hidden: Boolean
127
+ label: String
128
+ name: String!
129
+ path: String!
130
+ readonly: Boolean
131
+ required: Boolean
132
+ requiredCondition: String
133
+ skipDirtyCheck: Boolean
134
+ skipQuery: Boolean
135
+ visibilityCondition: String
136
+ dataType: String!
137
+ columns: [Column!]!
138
+ search: SimpleSearch
139
+ addLabel: String
140
+ confirmDelete: Boolean
141
+ maxRows: Int
142
+ rowMenuItems: [MenuItem!]
143
+ recordCreate: ReferenceTableRecordDialog
144
+ recordUpdate: ReferenceTableRecordDialog
145
+ referenceSources: [ReferenceTableSource!]
146
+ custom: Boolean
147
+ }
148
+
149
+ type ReferenceTableRecordDialog {
150
+ label: String
151
+ configPath: String!
152
+ }
153
+
154
+ type ReferenceTableSource {
155
+ name: String!
156
+ dataType: String!
157
+ label: String!
158
+ # Picker table shown after the source is chosen from the Add menu.
159
+ table: Table
160
+ recordCreate: ReferenceTableRecordDialog
161
+ recordUpdate: ReferenceTableRecordDialog
162
+ }
163
+
164
+ type PhoneField implements IField & IRowElement & IElement {
165
+ cols: Int
166
+ defaultValue: String
167
+ hidden: Boolean
168
+ label: String
169
+ name: String!
170
+ path: String!
171
+ placeholder: String
172
+ readonly: Boolean
173
+ required: Boolean
174
+ requiredCondition: String
175
+ skipQuery: Boolean
176
+ excludeFromQueryInput: Boolean
177
+ visibilityCondition: String
178
+ disabledCondition: String
179
+ validation: GenericFieldValidation
180
+ custom: Boolean
181
+ }
182
+
183
+ type DateField implements IField & IRowElement & IElement {
184
+ cols: Int
185
+ defaultValue: String
186
+ hidden: Boolean
187
+ label: String
188
+ name: String!
189
+ path: String!
190
+ readonly: Boolean
191
+ required: Boolean
192
+ requiredCondition: String
193
+ skipQuery: Boolean
194
+ excludeFromQueryInput: Boolean
195
+ visibilityCondition: String
196
+ disabledCondition: String
197
+ minDate: String # e.q. "now" or "2025-03-20"
198
+ maxDate: String # e.q. "now" or "2025-03-20"
199
+ validation: GenericFieldValidation
200
+ custom: Boolean
201
+ }
202
+
203
+ type DateRangeField implements IDateRangeField & IRowElement & IElement {
204
+ cols: Int
205
+ defaultValue: [String!] # [startDate, endDate]
206
+ defaultValueExpressions: [String!] # [startDate, endDate]
207
+ format: String
208
+ hidden: Boolean
209
+ label: String
210
+ name: String!
211
+ paths: [String!]!
212
+ readonly: Boolean
213
+ required: Boolean
214
+ requiredCondition: String
215
+ skipQuery: Boolean
216
+ excludeFromQueryInput: Boolean
217
+ visibilityCondition: String
218
+ disabledCondition: String
219
+ validation: GenericFieldValidation
220
+ custom: Boolean
221
+ }
222
+
223
+ type SelectField implements IField & IRowElement & IElement {
224
+ cols: Int
225
+ defaultValue: String
226
+ defaultValuePath: String
227
+ disableClearable: Boolean
228
+ hidden: Boolean
229
+ label: String
230
+ multiple: Boolean
231
+ name: String!
232
+ path: String!
233
+ placeholder: String
234
+ readonly: Boolean
235
+ required: Boolean
236
+ requiredCondition: String
237
+ selectOptions: ISelectOptions!
238
+ skipQuery: Boolean
239
+ excludeFromQueryInput: Boolean
240
+ visibilityCondition: String
241
+ disabledCondition: String
242
+ excludeId: Boolean
243
+ helperText: String
244
+ autoSelectSingleOption: Boolean
245
+ validation: GenericFieldValidation
246
+ custom: Boolean
247
+ }
248
+
249
+ type ToggleField implements IField & IRowElement & IElement {
250
+ cols: Int
251
+ defaultValue: String
252
+ disableClearable: Boolean
253
+ hidden: Boolean
254
+ label: String
255
+ multiple: Boolean
256
+ name: String!
257
+ path: String!
258
+ readonly: Boolean
259
+ required: Boolean
260
+ requiredCondition: String
261
+ selectOptions: ISelectOptions!
262
+ size: String # see https://mui.com/material-ui/react-toggle-button/#size
263
+ skipQuery: Boolean
264
+ excludeFromQueryInput: Boolean
265
+ visibilityCondition: String
266
+ disabledCondition: String
267
+ linkedFields: [String!]
268
+ validation: GenericFieldValidation
269
+ custom: Boolean
270
+ }
271
+
272
+ type BooleanField implements IField & IRowElement & IElement {
273
+ """Allow the selected Yes or No option to be selected again to restore a null value."""
274
+ clearable: Boolean
275
+ cols: Int
276
+ defaultValue: String
277
+ hidden: Boolean
278
+ label: String
279
+ name: String!
280
+ path: String!
281
+ readonly: Boolean
282
+ required: Boolean
283
+ requiredCondition: String
284
+ skipQuery: Boolean
285
+ excludeFromQueryInput: Boolean
286
+ visibilityCondition: String
287
+ disabledCondition: String
288
+ linkedFields: [String!]
289
+ validation: GenericFieldValidation
290
+ custom: Boolean
291
+ }
292
+
293
+ type ChipSelectWithInputField implements IField & IRowElement & IElement {
294
+ cols: Int
295
+ defaultValue: String
296
+ defaultValuePath: String
297
+ hidden: Boolean
298
+ input: InputField
299
+ label: String
300
+ name: String!
301
+ path: String!
302
+ labelPath: String
303
+ readonly: Boolean
304
+ multiple: Boolean
305
+ required: Boolean
306
+ requiredCondition: String
307
+ selectOptions: ISelectOptions!
308
+ skipQuery: Boolean
309
+ excludeFromQueryInput: Boolean
310
+ subTitle: String
311
+ title: String
312
+ visibilityCondition: String
313
+ disabledCondition: String
314
+ linkedFields: [String!]
315
+ validation: ChipSelectValidation
316
+ custom: Boolean
317
+ }
318
+
319
+ type CustomField implements IField & IRowElement & IElement {
320
+ cols: Int
321
+ component: String!
322
+ config: JSON
323
+ defaultValue: String
324
+ hidden: Boolean
325
+ label: String
326
+ name: String!
327
+ path: String!
328
+ readonly: Boolean
329
+ required: Boolean
330
+ requiredCondition: String
331
+ skipQuery: Boolean
332
+ excludeFromQueryInput: Boolean
333
+ visibilityCondition: String
334
+ disabledCondition: String
335
+ validation: GenericFieldValidation
336
+ custom: Boolean
337
+ }
338
+
339
+ type StatusChipField implements IField & IRowElement & IElement {
340
+ align: String
341
+ cols: Int
342
+ label: String
343
+ name: String!
344
+ path: String!
345
+ validation: GenericFieldValidation
346
+ custom: Boolean
347
+ }
348
+
349
+ type CheckboxGroupValue {
350
+ label: String!
351
+ path: String!
352
+ skipQuery: Boolean
353
+ excludeFromQueryInput: Boolean
354
+ value: JSON!
355
+ }
356
+
357
+ type CheckboxGroup implements IRowElement & IElement {
358
+ cols: Int
359
+ name: String!
360
+ required: Boolean
361
+ requiredCondition: String
362
+ subTitle: String
363
+ title: String
364
+ values: [CheckboxGroupValue!]!
365
+ visibilityCondition: String
366
+ disabledCondition: String
367
+ custom: Boolean
368
+ }
369
+
370
+ enum FieldValueType {
371
+ Int
372
+ Float
373
+ }
374
+
375
+ type GenericFieldValidation {
376
+ custom : CustomFieldValidation
377
+ }
378
+
379
+ type CustomFieldValidation {
380
+ expression: String
381
+ message: String
382
+ """
383
+ Paths of other fields this expression reads. When one of these fields changes, this
384
+ field's validation is re-triggered so its error state stays in sync without requiring
385
+ the user to re-touch this field directly.
386
+ """
387
+ dependentPaths: [String!]
388
+ }
389
+
390
+ type StringValidationRule {
391
+ message: String
392
+ value: String
393
+ }
394
+
395
+ type IntValidationRule {
396
+ message: String
397
+ value: Int
398
+ }
399
+
400
+ type FloatValidationRule {
401
+ message: String
402
+ value: Float
403
+ }
404
+
405
+ type FormatValidationRule {
406
+ name: String
407
+ description: String
408
+ message: String
409
+ expression: String
410
+ condition: String
411
+ }
412
+
413
+ type InputValidation {
414
+ email: StringValidationRule
415
+ length: IntValidationRule
416
+ format: [FormatValidationRule!]
417
+ min: FloatValidationRule
418
+ max: FloatValidationRule
419
+ custom: CustomFieldValidation
420
+ }
421
+
422
+ type ChipSelectValidation {
423
+ compatibleWith: CompatibleWithRule
424
+ uniqueInList: UniqueInListRule
425
+ custom : CustomFieldValidation
426
+ }
427
+
428
+ type CompatibleWithRule {
429
+ field: String!
430
+ rules: [CompatibleWithRuleEntry!]!
431
+ }
432
+
433
+ type CompatibleWithRuleEntry {
434
+ when: WhenClause!
435
+ allowed: [String!]!
436
+ message: String!
437
+ }
438
+
439
+ type WhenClause {
440
+ equals: String
441
+ in: [String!]
442
+ }
443
+
444
+ type UniqueInListRule {
445
+ listPaths: [String!]!
446
+ itemValuePath: String!
447
+ value: String
448
+ message: String!
449
+ }
450
+
451
+ # see more https://s-yadav.github.io/react-number-format/docs/props
452
+ type PatternMasking {
453
+ dynamic: Boolean
454
+ format: String!
455
+ mask: String
456
+ }
457
+
458
+ # see more https://s-yadav.github.io/react-number-format/docs/props
459
+ type NumericMasking {
460
+ thousandSeparator: String
461
+ decimalSeparator: String
462
+ decimalScale: Number
463
+ fixedDecimalScale: Boolean
464
+ allowNegative: Boolean
465
+ }
466
+
467
+ union FieldMasking = PatternMasking | NumericMasking