@rxap/schematic-angular 16.2.0-dev.20 → 16.2.0-dev.22

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 (189) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +1 -1
  3. package/collection.json +15 -0
  4. package/package.json +7 -7
  5. package/src/lib/coerce-form-component.js +15 -3
  6. package/src/lib/coerce-form-component.js.map +1 -1
  7. package/src/lib/data-grid-item.d.ts +3 -3
  8. package/src/lib/data-grid-item.js +2 -2
  9. package/src/lib/data-grid-item.js.map +1 -1
  10. package/src/lib/form/abstract-control.d.ts +29 -0
  11. package/src/lib/form/abstract-control.js +37 -0
  12. package/src/lib/form/abstract-control.js.map +1 -0
  13. package/src/lib/form/array/base-form-array.d.ts +18 -0
  14. package/src/lib/form/array/base-form-array.js +40 -0
  15. package/src/lib/form/array/base-form-array.js.map +1 -0
  16. package/src/lib/form/array/form-array-kind.d.ts +3 -0
  17. package/src/lib/form/array/form-array-kind.js +8 -0
  18. package/src/lib/form/array/form-array-kind.js.map +1 -0
  19. package/src/lib/form/array/form-array.d.ts +12 -0
  20. package/src/lib/form/array/form-array.js +18 -0
  21. package/src/lib/form/array/form-array.js.map +1 -0
  22. package/src/lib/form/coerce-control-component-imports.d.ts +3 -0
  23. package/src/lib/form/coerce-control-component-imports.js +18 -0
  24. package/src/lib/form/coerce-control-component-imports.js.map +1 -0
  25. package/src/lib/form/control/autocomplete-table-select-form-control.d.ts +6 -0
  26. package/src/lib/form/control/autocomplete-table-select-form-control.js +34 -0
  27. package/src/lib/form/control/autocomplete-table-select-form-control.js.map +1 -0
  28. package/src/lib/form/control/base-form-control.d.ts +14 -0
  29. package/src/lib/form/control/base-form-control.js +19 -0
  30. package/src/lib/form/control/base-form-control.js.map +1 -0
  31. package/src/lib/form/control/checkbox-form-control.d.ts +11 -0
  32. package/src/lib/form/control/checkbox-form-control.js +23 -0
  33. package/src/lib/form/control/checkbox-form-control.js.map +1 -0
  34. package/src/lib/form/control/form-control-kind.d.ts +9 -0
  35. package/src/lib/form/control/form-control-kind.js +14 -0
  36. package/src/lib/form/control/form-control-kind.js.map +1 -0
  37. package/src/lib/form/control/form-control.d.ts +18 -0
  38. package/src/lib/form/control/form-control.js +43 -0
  39. package/src/lib/form/control/form-control.js.map +1 -0
  40. package/src/lib/form/control/form-field-form-control.d.ts +33 -0
  41. package/src/lib/form/control/form-field-form-control.js +76 -0
  42. package/src/lib/form/control/form-field-form-control.js.map +1 -0
  43. package/src/lib/form/control/input-form-control.d.ts +14 -0
  44. package/src/lib/form/control/input-form-control.js +71 -0
  45. package/src/lib/form/control/input-form-control.js.map +1 -0
  46. package/src/lib/form/control/select-form-control.d.ts +18 -0
  47. package/src/lib/form/control/select-form-control.js +29 -0
  48. package/src/lib/form/control/select-form-control.js.map +1 -0
  49. package/src/lib/form/control/slide-toggle-form-control.d.ts +11 -0
  50. package/src/lib/form/control/slide-toggle-form-control.js +23 -0
  51. package/src/lib/form/control/slide-toggle-form-control.js.map +1 -0
  52. package/src/lib/form/control/table-select-form-control.d.ts +43 -0
  53. package/src/lib/form/control/table-select-form-control.js +69 -0
  54. package/src/lib/form/control/table-select-form-control.js.map +1 -0
  55. package/src/lib/form/control.d.ts +8 -0
  56. package/src/lib/form/control.js +38 -0
  57. package/src/lib/form/control.js.map +1 -0
  58. package/src/lib/form/generate-form-template.d.ts +2 -2
  59. package/src/lib/form/group/base-form-group.d.ts +17 -0
  60. package/src/lib/form/group/base-form-group.js +20 -0
  61. package/src/lib/form/group/base-form-group.js.map +1 -0
  62. package/src/lib/form/group/form-group-kind.d.ts +3 -0
  63. package/src/lib/form/group/form-group-kind.js +8 -0
  64. package/src/lib/form/group/form-group-kind.js.map +1 -0
  65. package/src/lib/form/group/form-group.d.ts +12 -0
  66. package/src/lib/form/group/form-group.js +18 -0
  67. package/src/lib/form/group/form-group.js.map +1 -0
  68. package/src/lib/table-column.d.ts +4 -3
  69. package/src/lib/table-column.js +5 -4
  70. package/src/lib/table-column.js.map +1 -1
  71. package/src/schema.json +1691 -1311
  72. package/src/schematic-input.schema.json +109 -156
  73. package/src/schematics/abstract-control.schema.json +78 -0
  74. package/src/schematics/accordion/accordion-component/schema.json +127 -127
  75. package/src/schematics/accordion/accordion-item-component/schema.json +18 -18
  76. package/src/schematics/accordion/item/accordion-item-data-grid-component/schema.json +685 -81
  77. package/src/schematics/accordion/item/accordion-item-switch-component/schema.json +76 -76
  78. package/src/schematics/accordion/item/accordion-item-table-component/schema.json +555 -97
  79. package/src/schematics/accordion/item/accordion-item-tree-table-component/schema.json +537 -79
  80. package/src/schematics/autocomplete-table-select-form-control.schema.json +96 -0
  81. package/src/schematics/base-form-array.schema.json +45 -0
  82. package/src/schematics/base-form-control.schema.json +27 -0
  83. package/src/schematics/base-form-group.schema.json +42 -0
  84. package/src/schematics/checkbox-form-control.schema.json +30 -0
  85. package/src/schematics/control.schema.json +26 -0
  86. package/src/schematics/data-grid-component/index.js +4 -0
  87. package/src/schematics/data-grid-component/index.js.map +1 -1
  88. package/src/schematics/data-grid-component/schema.json +685 -81
  89. package/src/schematics/data-grid-item.schema.json +3 -3
  90. package/src/schematics/form/control/autocomplete-table-select-form-control/index.d.ts +10 -0
  91. package/src/schematics/form/control/autocomplete-table-select-form-control/index.js +247 -0
  92. package/src/schematics/form/control/autocomplete-table-select-form-control/index.js.map +1 -0
  93. package/src/schematics/form/control/autocomplete-table-select-form-control/schema.d.ts +4 -0
  94. package/src/schematics/form/control/autocomplete-table-select-form-control/schema.json +453 -0
  95. package/src/schematics/form/control/autocomplete-table-select-form-control/template.schema.json +39 -0
  96. package/src/schematics/form/control/input-form-control/index.d.ts +1 -1
  97. package/src/schematics/form/control/input-form-control/index.js +4 -4
  98. package/src/schematics/form/control/input-form-control/index.js.map +1 -1
  99. package/src/schematics/form/control/input-form-control/schema.d.ts +2 -2
  100. package/src/schematics/form/control/input-form-control/schema.json +256 -86
  101. package/src/schematics/form/control/input-form-control/template.schema.json +16 -3
  102. package/src/schematics/form/control/select-form-control/index.d.ts +2 -2
  103. package/src/schematics/form/control/select-form-control/index.js +21 -14
  104. package/src/schematics/form/control/select-form-control/index.js.map +1 -1
  105. package/src/schematics/form/control/select-form-control/schema.d.ts +2 -3
  106. package/src/schematics/form/control/select-form-control/schema.json +249 -90
  107. package/src/schematics/form/control/select-form-control/template.schema.json +16 -3
  108. package/src/schematics/form/control/table-select-form-control/index.d.ts +3 -9
  109. package/src/schematics/form/control/table-select-form-control/index.js +24 -18
  110. package/src/schematics/form/control/table-select-form-control/index.js.map +1 -1
  111. package/src/schematics/form/control/table-select-form-control/schema.d.ts +2 -3
  112. package/src/schematics/form/control/table-select-form-control/schema.json +325 -123
  113. package/src/schematics/form/control/table-select-form-control/template.schema.json +16 -60
  114. package/src/schematics/form/form-array/index.d.ts +9 -0
  115. package/src/schematics/form/form-array/index.js +54 -0
  116. package/src/schematics/form/form-array/index.js.map +1 -0
  117. package/src/schematics/form/form-array/schema.d.ts +4 -0
  118. package/src/schematics/form/form-array/schema.json +906 -0
  119. package/src/schematics/form/form-array/template.schema.json +33 -0
  120. package/src/schematics/form/form-component/files/component/__componentName__.component.html.hbs +4 -1
  121. package/src/schematics/form/form-component/index.d.ts +2 -4
  122. package/src/schematics/form/form-component/index.js +8 -24
  123. package/src/schematics/form/form-component/index.js.map +1 -1
  124. package/src/schematics/form/form-component/schema.d.ts +2 -2
  125. package/src/schematics/form/form-component/schema.json +749 -86
  126. package/src/schematics/form/form-control/index.d.ts +3 -5
  127. package/src/schematics/form/form-control/index.js +8 -20
  128. package/src/schematics/form/form-control/index.js.map +1 -1
  129. package/src/schematics/form/form-control/schema.d.ts +2 -4
  130. package/src/schematics/form/form-control/schema.json +599 -59
  131. package/src/schematics/form/form-control/template.schema.json +1 -2
  132. package/src/schematics/form/form-definition/index.d.ts +2 -2
  133. package/src/schematics/form/form-definition/index.js +28 -15
  134. package/src/schematics/form/form-definition/index.js.map +1 -1
  135. package/src/schematics/form/form-definition/schema.d.ts +2 -2
  136. package/src/schematics/form/form-definition/schema.json +743 -56
  137. package/src/schematics/form/form-group/index.d.ts +9 -0
  138. package/src/schematics/form/form-group/index.js +54 -0
  139. package/src/schematics/form/form-group/index.js.map +1 -0
  140. package/src/schematics/form/form-group/schema.d.ts +4 -0
  141. package/src/schematics/form/form-group/schema.json +906 -0
  142. package/src/schematics/form/form-group/template.schema.json +33 -0
  143. package/src/schematics/form/templates/checkbox-form-control.hbs +1 -1
  144. package/src/schematics/form/templates/default-form-array.hbs +27 -0
  145. package/src/schematics/form/templates/default-form-group.hbs +13 -0
  146. package/src/schematics/form/templates/input-form-control.hbs +7 -7
  147. package/src/schematics/form/templates/select-form-control.hbs +5 -0
  148. package/src/schematics/form/templates/table-select-form-control.hbs +16 -16
  149. package/src/schematics/form-array.schema.json +40 -0
  150. package/src/schematics/form-control.schema.json +69 -54
  151. package/src/schematics/form-definition.schema.json +3 -3
  152. package/src/schematics/form-group.schema.json +40 -0
  153. package/src/schematics/input-form-control.schema.json +10 -6
  154. package/src/schematics/select-form-control.schema.json +8 -4
  155. package/src/schematics/slide-toggle-form-control.schema.json +30 -0
  156. package/src/schematics/table/action/dialog-table-action/schema.json +20 -20
  157. package/src/schematics/table/action/form-table-action/index.d.ts +2 -2
  158. package/src/schematics/table/action/form-table-action/index.js +3 -4
  159. package/src/schematics/table/action/form-table-action/index.js.map +1 -1
  160. package/src/schematics/table/action/form-table-action/schema.d.ts +2 -2
  161. package/src/schematics/table/action/form-table-action/schema.json +750 -87
  162. package/src/schematics/table/action/navigation-table-action/schema.json +20 -20
  163. package/src/schematics/table/action/open-api-table-action/schema.json +20 -20
  164. package/src/schematics/table/action/operation-table-action/schema.json +20 -20
  165. package/src/schematics/table/header-button/form-table-header-button/index.d.ts +2 -2
  166. package/src/schematics/table/header-button/form-table-header-button/index.js +2 -2
  167. package/src/schematics/table/header-button/form-table-header-button/index.js.map +1 -1
  168. package/src/schematics/table/header-button/form-table-header-button/schema.d.ts +2 -2
  169. package/src/schematics/table/header-button/form-table-header-button/schema.json +818 -81
  170. package/src/schematics/table/header-button/form-table-header-button/template.schema.json +4 -22
  171. package/src/schematics/table/header-button/navigation-table-header-button/schema.json +20 -20
  172. package/src/schematics/table/table-action/schema.json +47 -47
  173. package/src/schematics/table/table-component/index.d.ts +2 -2
  174. package/src/schematics/table/table-component/schema.json +537 -79
  175. package/src/schematics/table/table-header-button/schema.json +40 -40
  176. package/src/schematics/table/tree-table-component/files/component/__componentName__.component.html.hbs +1 -1
  177. package/src/schematics/table/tree-table-component/schema.json +521 -63
  178. package/src/schematics/table-select-form-control.schema.json +96 -0
  179. package/src/schematics/textarea-form-control.schema.json +32 -0
  180. package/src/template.schema.json +45 -0
  181. package/src/lib/form-component-control.d.ts +0 -8
  182. package/src/lib/form-component-control.js +0 -15
  183. package/src/lib/form-component-control.js.map +0 -1
  184. package/src/lib/form-control.d.ts +0 -136
  185. package/src/lib/form-control.js +0 -265
  186. package/src/lib/form-control.js.map +0 -1
  187. package/src/lib/form-definition-control.d.ts +0 -5
  188. package/src/lib/form-definition-control.js +0 -30
  189. package/src/lib/form-definition-control.js.map +0 -1
@@ -18,6 +18,96 @@
18
18
  }
19
19
  ],
20
20
  "definitions": {
21
+ "abstractControl": {
22
+ "allOf": [
23
+ {
24
+ "$ref": "#/definitions/property"
25
+ },
26
+ {
27
+ "type": "object",
28
+ "properties": {
29
+ "name": {
30
+ "type": "string",
31
+ "description": "The name of the control"
32
+ },
33
+ "isArray": {
34
+ "type": "boolean",
35
+ "description": "Whether the control value is an array",
36
+ "default": false
37
+ },
38
+ "state": {
39
+ "type": "string",
40
+ "description": "The initial state of the control"
41
+ },
42
+ "isRequired": {
43
+ "type": "boolean",
44
+ "description": "Whether the control value is required",
45
+ "default": false
46
+ },
47
+ "isReadonly": {
48
+ "type": "boolean",
49
+ "description": "Whether the control value is readonly",
50
+ "default": false
51
+ },
52
+ "isDisabled": {
53
+ "type": "boolean",
54
+ "description": "Whether the control value is disabled",
55
+ "default": false
56
+ },
57
+ "validatorList": {
58
+ "type": "array",
59
+ "items": {
60
+ "type": "string"
61
+ }
62
+ },
63
+ "kind": {
64
+ "type": "string",
65
+ "description": "The kind of the control",
66
+ "default": "default"
67
+ },
68
+ "importList": {
69
+ "type": "array",
70
+ "items": {
71
+ "$ref": "#/definitions/type"
72
+ }
73
+ },
74
+ "template": {
75
+ "type": "string",
76
+ "description": "The template of the control"
77
+ },
78
+ "role": {
79
+ "type": "string",
80
+ "description": "The role of the control",
81
+ "enum": [
82
+ "control",
83
+ "group",
84
+ "array"
85
+ ],
86
+ "default": "control"
87
+ }
88
+ },
89
+ "additionalProperties": true
90
+ }
91
+ ]
92
+ },
93
+ "accordionIdentifier": {
94
+ "type": "object",
95
+ "properties": {
96
+ "property": {
97
+ "$ref": "#/definitions/property"
98
+ },
99
+ "source": {
100
+ "type": "string",
101
+ "enum": [
102
+ "route"
103
+ ],
104
+ "default": "route"
105
+ }
106
+ },
107
+ "required": [
108
+ "property"
109
+ ]
110
+ },
21
111
  "accordionItem": {
22
112
  "type": "object",
23
113
  "properties": {
@@ -115,6 +205,243 @@
115
205
  }
116
206
  ]
117
207
  },
208
+ "autocompleteTableSelectFormControl": {
209
+ "allOf": [
210
+ {
211
+ "$ref": "#/definitions/baseFormControl"
212
+ },
213
+ {
214
+ "type": "object",
215
+ "properties": {
216
+ "formField": {
217
+ "$ref": "#/definitions/formField"
218
+ },
219
+ "kind": {
220
+ "type": "string",
221
+ "const": "table-select"
222
+ },
223
+ "placeholder": {
224
+ "type": "string"
225
+ },
226
+ "columnList": {
227
+ "alias": "column",
228
+ "type": "array",
229
+ "items": {
230
+ "description": "table column name",
231
+ "type": "object",
232
+ "properties": {
233
+ "name": {
234
+ "type": "string",
235
+ "description": "table column name"
236
+ },
237
+ "title": {
238
+ "type": "string",
239
+ "description": "table column label"
240
+ },
241
+ "hasFilter": {
242
+ "type": "boolean",
243
+ "description": "Whether the column has a filter"
244
+ },
245
+ "kind": {
246
+ "type": "string",
247
+ "description": "The kind of data in the column"
248
+ }
249
+ }
250
+ },
251
+ "description": "List of table column names"
252
+ },
253
+ "title": {
254
+ "type": "string",
255
+ "description": "The title of the table select window"
256
+ },
257
+ "toDisplay": {
258
+ "type": "object",
259
+ "properties": {
260
+ "property": {
261
+ "$ref": "#/definitions/property"
262
+ }
263
+ }
264
+ },
265
+ "toValue": {
266
+ "type": "object",
267
+ "properties": {
268
+ "property": {
269
+ "$ref": "#/definitions/property"
270
+ }
271
+ }
272
+ },
273
+ "upstream": {
274
+ "$ref": "#/definitions/upstream"
275
+ },
276
+ "resolver": {
277
+ "type": "object",
278
+ "properties": {
279
+ "upstream": {
280
+ "$ref": "#/definitions/upstream"
281
+ }
282
+ }
283
+ }
284
+ }
285
+ }
286
+ ]
287
+ },
288
+ "backend": {
289
+ "type": "string",
290
+ "description": "The backend that should be used to handel data",
291
+ "enum": [
292
+ "none",
293
+ "nestjs",
294
+ "open-api",
295
+ "local"
296
+ ],
297
+ "default": "none"
298
+ },
299
+ "baseFormArray": {
300
+ "allOf": [
301
+ {
302
+ "$ref": "#/definitions/abstractControl"
303
+ },
304
+ {
305
+ "type": "object",
306
+ "properties": {
307
+ "controlList": {
308
+ "type": "array",
309
+ "description": "The list of controls in the group",
310
+ "items": {
311
+ "$ref": "#/definitions/control"
312
+ }
313
+ },
314
+ "legend": {
315
+ "type": "string"
316
+ },
317
+ "groupLegend": {
318
+ "type": "string"
319
+ },
320
+ "kind": {
321
+ "type": "string",
322
+ "description": "The kind of the array",
323
+ "const": "default",
324
+ "default": "default"
325
+ },
326
+ "role": {
327
+ "type": "string",
328
+ "const": "array"
329
+ }
330
+ }
331
+ }
332
+ ]
333
+ },
334
+ "baseFormControl": {
335
+ "allOf": [
336
+ {
337
+ "$ref": "#/definitions/abstractControl"
338
+ },
339
+ {
340
+ "type": "object",
341
+ "properties": {
342
+ "label": {
343
+ "type": "string",
344
+ "description": "The label of the control"
345
+ },
346
+ "role": {
347
+ "type": "string",
348
+ "const": "control"
349
+ }
350
+ }
351
+ }
352
+ ]
353
+ },
354
+ "baseFormGroup": {
355
+ "allOf": [
356
+ {
357
+ "$ref": "#/definitions/abstractControl"
358
+ },
359
+ {
360
+ "type": "object",
361
+ "properties": {
362
+ "controlList": {
363
+ "type": "array",
364
+ "description": "The list of controls in the group",
365
+ "items": {
366
+ "$ref": "#/definitions/control"
367
+ }
368
+ },
369
+ "legend": {
370
+ "type": "string"
371
+ },
372
+ "kind": {
373
+ "type": "string",
374
+ "description": "The kind of the group",
375
+ "const": "default",
376
+ "default": "default"
377
+ },
378
+ "role": {
379
+ "type": "string",
380
+ "const": "group"
381
+ }
382
+ }
383
+ }
384
+ ]
385
+ },
386
+ "button": {
387
+ "type": "object",
388
+ "properties": {
389
+ "svgIcon": {
390
+ "type": "string"
391
+ },
392
+ "icon": {
393
+ "type": "string"
394
+ },
395
+ "directiveList": {
396
+ "type": "array",
397
+ "items": {
398
+ "$ref": "#/definitions/type"
399
+ }
400
+ },
401
+ "importList": {
402
+ "type": "array",
403
+ "items": {
404
+ "$ref": "#/definitions/type"
405
+ }
406
+ }
407
+ }
408
+ },
409
+ "checkboxFormControl": {
410
+ "allOf": [
411
+ {
412
+ "$ref": "#/definitions/baseFormControl"
413
+ },
414
+ {
415
+ "type": "object",
416
+ "properties": {
417
+ "kind": {
418
+ "type": "string",
419
+ "const": "checkbox"
420
+ },
421
+ "labelPosition": {
422
+ "type": "string",
423
+ "enum": [
424
+ "before",
425
+ "after"
426
+ ]
427
+ }
428
+ }
429
+ }
430
+ ]
431
+ },
432
+ "control": {
433
+ "oneOf": [
434
+ {
435
+ "$ref": "#/definitions/formGroup"
436
+ },
437
+ {
438
+ "$ref": "#/definitions/formArray"
439
+ },
440
+ {
441
+ "$ref": "#/definitions/formControl"
442
+ }
443
+ ]
444
+ },
118
445
  "dataGrid": {
119
446
  "type": "object",
120
447
  "properties": {
@@ -165,35 +492,6 @@
165
492
  }
166
493
  }
167
494
  },
168
- "accordionIdentifier": {
169
- "type": "object",
170
- "properties": {
171
- "property": {
172
- "$ref": "#/definitions/property"
173
- },
174
- "source": {
175
- "type": "string",
176
- "enum": [
177
- "route"
178
- ],
179
- "default": "route"
180
- }
181
- },
182
- "required": [
183
- "property"
184
- ]
185
- },
186
- "backend": {
187
- "type": "string",
188
- "description": "The backend that should be used to handel data",
189
- "enum": [
190
- "none",
191
- "nestjs",
192
- "open-api",
193
- "local"
194
- ],
195
- "default": "none"
196
- },
197
495
  "dataGridItem": {
198
496
  "type": "object",
199
497
  "properties": {
@@ -212,7 +510,7 @@
212
510
  }
213
511
  },
214
512
  "formControl": {
215
- "$ref": "#/definitions/formControl"
513
+ "$ref": "#/definitions/control"
216
514
  },
217
515
  "template": {
218
516
  "type": "string"
@@ -236,66 +534,143 @@
236
534
  "name"
237
535
  ]
238
536
  },
537
+ "formArray": {
538
+ "allOf": [
539
+ {
540
+ "type": "object",
541
+ "properties": {
542
+ "role": {
543
+ "type": "string",
544
+ "const": "array"
545
+ }
546
+ }
547
+ },
548
+ {
549
+ "oneOf": [
550
+ {
551
+ "allOf": [
552
+ {
553
+ "$ref": "#/definitions/baseFormArray"
554
+ },
555
+ {
556
+ "type": "object",
557
+ "properties": {
558
+ "kind": {
559
+ "type": "string",
560
+ "const": "default"
561
+ }
562
+ }
563
+ }
564
+ ]
565
+ }
566
+ ]
567
+ }
568
+ ]
569
+ },
239
570
  "formControl": {
571
+ "allOf": [
572
+ {
573
+ "type": "object",
574
+ "properties": {
575
+ "role": {
576
+ "type": "string",
577
+ "const": "control",
578
+ "default": "control"
579
+ }
580
+ }
581
+ },
582
+ {
583
+ "oneOf": [
584
+ {
585
+ "allOf": [
586
+ {
587
+ "$ref": "#/definitions/baseFormControl"
588
+ },
589
+ {
590
+ "type": "object",
591
+ "properties": {
592
+ "kind": {
593
+ "type": "string",
594
+ "const": "default"
595
+ }
596
+ }
597
+ }
598
+ ]
599
+ },
600
+ {
601
+ "$ref": "#/definitions/inputFormControl"
602
+ },
603
+ {
604
+ "$ref": "#/definitions/selectFormControl"
605
+ },
606
+ {
607
+ "$ref": "#/definitions/checkboxFormControl"
608
+ },
609
+ {
610
+ "$ref": "#/definitions/textareaFormControl"
611
+ },
612
+ {
613
+ "$ref": "#/definitions/tableSelectFormControl"
614
+ },
615
+ {
616
+ "$ref": "#/definitions/slideToggleFormControl"
617
+ },
618
+ {
619
+ "$ref": "#/definitions/autocompleteTableSelectFormControl"
620
+ }
621
+ ]
622
+ }
623
+ ]
624
+ },
625
+ "formField": {
240
626
  "type": "object",
241
627
  "properties": {
242
- "name": {
243
- "type": "string",
244
- "description": "The name of the control"
245
- },
246
- "type": {
247
- "$ref": "#/definitions/type"
248
- },
249
- "isArray": {
250
- "type": "boolean",
251
- "description": "Whether the control value is an array",
252
- "default": false
253
- },
254
- "state": {
255
- "type": "string",
256
- "description": "The initial state of the control"
628
+ "label": {
629
+ "type": "string"
257
630
  },
258
- "isRequired": {
259
- "type": "boolean",
260
- "description": "Whether the control value is required",
261
- "default": false
631
+ "prefixButton": {
632
+ "$ref": "#/definitions/button"
262
633
  },
263
- "isReadonly": {
264
- "type": "boolean",
265
- "description": "Whether the control value is readonly",
266
- "default": false
634
+ "suffixButton": {
635
+ "$ref": "#/definitions/button"
267
636
  },
268
- "isDisabled": {
269
- "type": "boolean",
270
- "description": "Whether the control value is disabled",
271
- "default": false
272
- },
273
- "validatorList": {
274
- "type": "array",
275
- "items": {
276
- "type": "string"
637
+ "hasClearButton": {
638
+ "type": "boolean"
639
+ }
640
+ }
641
+ },
642
+ "formGroup": {
643
+ "allOf": [
644
+ {
645
+ "type": "object",
646
+ "properties": {
647
+ "role": {
648
+ "type": "string",
649
+ "const": "group"
650
+ }
277
651
  }
278
652
  },
279
- "kind": {
280
- "type": "string",
281
- "description": "The name of the template",
282
- "enum": [
283
- "default",
284
- "input",
285
- "select",
286
- "checkbox",
287
- "autocomplete-table-select",
288
- "table-select",
289
- "textarea",
290
- "slide-toggle"
291
- ],
292
- "default": "default"
653
+ {
654
+ "oneOf": [
655
+ {
656
+ "allOf": [
657
+ {
658
+ "$ref": "#/definitions/baseFormGroup"
659
+ },
660
+ {
661
+ "type": "object",
662
+ "properties": {
663
+ "kind": {
664
+ "type": "string",
665
+ "const": "default"
666
+ }
667
+ }
668
+ }
669
+ ]
670
+ }
671
+ ]
293
672
  }
294
- },
295
- "required": [
296
- "name"
297
- ],
298
- "additionalProperties": true
673
+ ]
299
674
  },
300
675
  "general": {
301
676
  "type": "object",
@@ -333,6 +708,55 @@
333
708
  }
334
709
  }
335
710
  },
711
+ "inputFormControl": {
712
+ "allOf": [
713
+ {
714
+ "$ref": "#/definitions/baseFormControl"
715
+ },
716
+ {
717
+ "type": "object",
718
+ "properties": {
719
+ "kind": {
720
+ "type": "string",
721
+ "const": "input"
722
+ },
723
+ "formField": {
724
+ "$ref": "#/definitions/formField"
725
+ },
726
+ "inputType": {
727
+ "type": "string",
728
+ "enum": [
729
+ "text",
730
+ "password",
731
+ "email",
732
+ "number",
733
+ "tel",
734
+ "url",
735
+ "checkbox",
736
+ "color",
737
+ "date",
738
+ "time",
739
+ "datetime-local",
740
+ "file",
741
+ "hidden",
742
+ "image",
743
+ "month",
744
+ "radio",
745
+ "reset",
746
+ "button",
747
+ "search",
748
+ "submit",
749
+ "week",
750
+ "range"
751
+ ]
752
+ },
753
+ "placeholder": {
754
+ "type": "string"
755
+ }
756
+ }
757
+ }
758
+ ]
759
+ },
336
760
  "pipe": {
337
761
  "oneOf": [
338
762
  {
@@ -385,6 +809,186 @@
385
809
  }
386
810
  ]
387
811
  },
812
+ "selectFormControl": {
813
+ "allOf": [
814
+ {
815
+ "$ref": "#/definitions/baseFormControl"
816
+ },
817
+ {
818
+ "type": "object",
819
+ "properties": {
820
+ "formField": {
821
+ "$ref": "#/definitions/formField"
822
+ },
823
+ "kind": {
824
+ "type": "string",
825
+ "const": "select"
826
+ },
827
+ "optionList": {
828
+ "type": "array",
829
+ "items": {
830
+ "type": "object",
831
+ "properties": {
832
+ "display": {
833
+ "type": "string"
834
+ },
835
+ "value": {
836
+ "oneOf": [
837
+ {
838
+ "type": "string"
839
+ },
840
+ {
841
+ "type": "number"
842
+ },
843
+ {
844
+ "type": "boolean"
845
+ },
846
+ {
847
+ "type": "object",
848
+ "additionalProperties": true
849
+ }
850
+ ]
851
+ }
852
+ }
853
+ }
854
+ },
855
+ "backend": {
856
+ "$ref": "#/definitions/backend"
857
+ },
858
+ "multiple": {
859
+ "alias": "multi",
860
+ "type": "boolean",
861
+ "description": "Whether the select form control is multiple mode"
862
+ }
863
+ }
864
+ }
865
+ ]
866
+ },
867
+ "slideToggleFormControl": {
868
+ "allOf": [
869
+ {
870
+ "$ref": "#/definitions/baseFormControl"
871
+ },
872
+ {
873
+ "type": "object",
874
+ "properties": {
875
+ "kind": {
876
+ "type": "string",
877
+ "const": "slide-toggle"
878
+ },
879
+ "labelPosition": {
880
+ "type": "string",
881
+ "enum": [
882
+ "before",
883
+ "after"
884
+ ]
885
+ }
886
+ }
887
+ }
888
+ ]
889
+ },
890
+ "tableSelectFormControl": {
891
+ "allOf": [
892
+ {
893
+ "$ref": "#/definitions/baseFormControl"
894
+ },
895
+ {
896
+ "type": "object",
897
+ "properties": {
898
+ "formField": {
899
+ "$ref": "#/definitions/formField"
900
+ },
901
+ "kind": {
902
+ "type": "string",
903
+ "const": "table-select"
904
+ },
905
+ "placeholder": {
906
+ "type": "string"
907
+ },
908
+ "columnList": {
909
+ "alias": "column",
910
+ "type": "array",
911
+ "items": {
912
+ "description": "table column name",
913
+ "type": "object",
914
+ "properties": {
915
+ "name": {
916
+ "type": "string",
917
+ "description": "table column name"
918
+ },
919
+ "title": {
920
+ "type": "string",
921
+ "description": "table column label"
922
+ },
923
+ "hasFilter": {
924
+ "type": "boolean",
925
+ "description": "Whether the column has a filter"
926
+ },
927
+ "kind": {
928
+ "type": "string",
929
+ "description": "The kind of data in the column"
930
+ }
931
+ }
932
+ },
933
+ "description": "List of table column names"
934
+ },
935
+ "title": {
936
+ "type": "string",
937
+ "description": "The title of the table select window"
938
+ },
939
+ "toDisplay": {
940
+ "type": "object",
941
+ "properties": {
942
+ "property": {
943
+ "$ref": "#/definitions/property"
944
+ }
945
+ }
946
+ },
947
+ "toValue": {
948
+ "type": "object",
949
+ "properties": {
950
+ "property": {
951
+ "$ref": "#/definitions/property"
952
+ }
953
+ }
954
+ },
955
+ "upstream": {
956
+ "$ref": "#/definitions/upstream"
957
+ },
958
+ "resolver": {
959
+ "type": "object",
960
+ "properties": {
961
+ "upstream": {
962
+ "$ref": "#/definitions/upstream"
963
+ }
964
+ }
965
+ }
966
+ }
967
+ }
968
+ ]
969
+ },
970
+ "textareaFormControl": {
971
+ "allOf": [
972
+ {
973
+ "$ref": "#/definitions/baseFormControl"
974
+ },
975
+ {
976
+ "type": "object",
977
+ "properties": {
978
+ "formField": {
979
+ "$ref": "#/definitions/formField"
980
+ },
981
+ "kind": {
982
+ "type": "string",
983
+ "const": "textarea"
984
+ },
985
+ "placeholder": {
986
+ "type": "string"
987
+ }
988
+ }
989
+ }
990
+ ]
991
+ },
388
992
  "type": {
389
993
  "oneOf": [
390
994
  {