@docupace/ihub-config 1.1.21 → 1.1.22-admin.1

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