@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
@@ -10,6 +10,96 @@
10
10
  }
11
11
  ],
12
12
  "definitions": {
13
+ "abstractControl": {
14
+ "allOf": [
15
+ {
16
+ "$ref": "#/definitions/property"
17
+ },
18
+ {
19
+ "type": "object",
20
+ "properties": {
21
+ "name": {
22
+ "type": "string",
23
+ "description": "The name of the control"
24
+ },
25
+ "isArray": {
26
+ "type": "boolean",
27
+ "description": "Whether the control value is an array",
28
+ "default": false
29
+ },
30
+ "state": {
31
+ "type": "string",
32
+ "description": "The initial state of the control"
33
+ },
34
+ "isRequired": {
35
+ "type": "boolean",
36
+ "description": "Whether the control value is required",
37
+ "default": false
38
+ },
39
+ "isReadonly": {
40
+ "type": "boolean",
41
+ "description": "Whether the control value is readonly",
42
+ "default": false
43
+ },
44
+ "isDisabled": {
45
+ "type": "boolean",
46
+ "description": "Whether the control value is disabled",
47
+ "default": false
48
+ },
49
+ "validatorList": {
50
+ "type": "array",
51
+ "items": {
52
+ "type": "string"
53
+ }
54
+ },
55
+ "kind": {
56
+ "type": "string",
57
+ "description": "The kind of the control",
58
+ "default": "default"
59
+ },
60
+ "importList": {
61
+ "type": "array",
62
+ "items": {
63
+ "$ref": "#/definitions/type"
64
+ }
65
+ },
66
+ "template": {
67
+ "type": "string",
68
+ "description": "The template of the control"
69
+ },
70
+ "role": {
71
+ "type": "string",
72
+ "description": "The role of the control",
73
+ "enum": [
74
+ "control",
75
+ "group",
76
+ "array"
77
+ ],
78
+ "default": "control"
79
+ }
80
+ },
81
+ "additionalProperties": true
82
+ }
83
+ ]
84
+ },
85
+ "accordionIdentifier": {
86
+ "type": "object",
87
+ "properties": {
88
+ "property": {
89
+ "$ref": "#/definitions/property"
90
+ },
91
+ "source": {
92
+ "type": "string",
93
+ "enum": [
94
+ "route"
95
+ ],
96
+ "default": "route"
97
+ }
98
+ },
99
+ "required": [
100
+ "property"
101
+ ]
102
+ },
13
103
  "angular": {
14
104
  "allOf": [
15
105
  {
@@ -61,6 +151,243 @@
61
151
  }
62
152
  ]
63
153
  },
154
+ "autocompleteTableSelectFormControl": {
155
+ "allOf": [
156
+ {
157
+ "$ref": "#/definitions/baseFormControl"
158
+ },
159
+ {
160
+ "type": "object",
161
+ "properties": {
162
+ "formField": {
163
+ "$ref": "#/definitions/formField"
164
+ },
165
+ "kind": {
166
+ "type": "string",
167
+ "const": "table-select"
168
+ },
169
+ "placeholder": {
170
+ "type": "string"
171
+ },
172
+ "columnList": {
173
+ "alias": "column",
174
+ "type": "array",
175
+ "items": {
176
+ "description": "table column name",
177
+ "type": "object",
178
+ "properties": {
179
+ "name": {
180
+ "type": "string",
181
+ "description": "table column name"
182
+ },
183
+ "title": {
184
+ "type": "string",
185
+ "description": "table column label"
186
+ },
187
+ "hasFilter": {
188
+ "type": "boolean",
189
+ "description": "Whether the column has a filter"
190
+ },
191
+ "kind": {
192
+ "type": "string",
193
+ "description": "The kind of data in the column"
194
+ }
195
+ }
196
+ },
197
+ "description": "List of table column names"
198
+ },
199
+ "title": {
200
+ "type": "string",
201
+ "description": "The title of the table select window"
202
+ },
203
+ "toDisplay": {
204
+ "type": "object",
205
+ "properties": {
206
+ "property": {
207
+ "$ref": "#/definitions/property"
208
+ }
209
+ }
210
+ },
211
+ "toValue": {
212
+ "type": "object",
213
+ "properties": {
214
+ "property": {
215
+ "$ref": "#/definitions/property"
216
+ }
217
+ }
218
+ },
219
+ "upstream": {
220
+ "$ref": "#/definitions/upstream"
221
+ },
222
+ "resolver": {
223
+ "type": "object",
224
+ "properties": {
225
+ "upstream": {
226
+ "$ref": "#/definitions/upstream"
227
+ }
228
+ }
229
+ }
230
+ }
231
+ }
232
+ ]
233
+ },
234
+ "backend": {
235
+ "type": "string",
236
+ "description": "The backend that should be used to handel data",
237
+ "enum": [
238
+ "none",
239
+ "nestjs",
240
+ "open-api",
241
+ "local"
242
+ ],
243
+ "default": "none"
244
+ },
245
+ "baseFormArray": {
246
+ "allOf": [
247
+ {
248
+ "$ref": "#/definitions/abstractControl"
249
+ },
250
+ {
251
+ "type": "object",
252
+ "properties": {
253
+ "controlList": {
254
+ "type": "array",
255
+ "description": "The list of controls in the group",
256
+ "items": {
257
+ "$ref": "#/definitions/control"
258
+ }
259
+ },
260
+ "legend": {
261
+ "type": "string"
262
+ },
263
+ "groupLegend": {
264
+ "type": "string"
265
+ },
266
+ "kind": {
267
+ "type": "string",
268
+ "description": "The kind of the array",
269
+ "const": "default",
270
+ "default": "default"
271
+ },
272
+ "role": {
273
+ "type": "string",
274
+ "const": "array"
275
+ }
276
+ }
277
+ }
278
+ ]
279
+ },
280
+ "baseFormControl": {
281
+ "allOf": [
282
+ {
283
+ "$ref": "#/definitions/abstractControl"
284
+ },
285
+ {
286
+ "type": "object",
287
+ "properties": {
288
+ "label": {
289
+ "type": "string",
290
+ "description": "The label of the control"
291
+ },
292
+ "role": {
293
+ "type": "string",
294
+ "const": "control"
295
+ }
296
+ }
297
+ }
298
+ ]
299
+ },
300
+ "baseFormGroup": {
301
+ "allOf": [
302
+ {
303
+ "$ref": "#/definitions/abstractControl"
304
+ },
305
+ {
306
+ "type": "object",
307
+ "properties": {
308
+ "controlList": {
309
+ "type": "array",
310
+ "description": "The list of controls in the group",
311
+ "items": {
312
+ "$ref": "#/definitions/control"
313
+ }
314
+ },
315
+ "legend": {
316
+ "type": "string"
317
+ },
318
+ "kind": {
319
+ "type": "string",
320
+ "description": "The kind of the group",
321
+ "const": "default",
322
+ "default": "default"
323
+ },
324
+ "role": {
325
+ "type": "string",
326
+ "const": "group"
327
+ }
328
+ }
329
+ }
330
+ ]
331
+ },
332
+ "button": {
333
+ "type": "object",
334
+ "properties": {
335
+ "svgIcon": {
336
+ "type": "string"
337
+ },
338
+ "icon": {
339
+ "type": "string"
340
+ },
341
+ "directiveList": {
342
+ "type": "array",
343
+ "items": {
344
+ "$ref": "#/definitions/type"
345
+ }
346
+ },
347
+ "importList": {
348
+ "type": "array",
349
+ "items": {
350
+ "$ref": "#/definitions/type"
351
+ }
352
+ }
353
+ }
354
+ },
355
+ "checkboxFormControl": {
356
+ "allOf": [
357
+ {
358
+ "$ref": "#/definitions/baseFormControl"
359
+ },
360
+ {
361
+ "type": "object",
362
+ "properties": {
363
+ "kind": {
364
+ "type": "string",
365
+ "const": "checkbox"
366
+ },
367
+ "labelPosition": {
368
+ "type": "string",
369
+ "enum": [
370
+ "before",
371
+ "after"
372
+ ]
373
+ }
374
+ }
375
+ }
376
+ ]
377
+ },
378
+ "control": {
379
+ "oneOf": [
380
+ {
381
+ "$ref": "#/definitions/formGroup"
382
+ },
383
+ {
384
+ "$ref": "#/definitions/formArray"
385
+ },
386
+ {
387
+ "$ref": "#/definitions/formControl"
388
+ }
389
+ ]
390
+ },
64
391
  "dataGrid": {
65
392
  "type": "object",
66
393
  "properties": {
@@ -111,35 +438,6 @@
111
438
  }
112
439
  }
113
440
  },
114
- "accordionIdentifier": {
115
- "type": "object",
116
- "properties": {
117
- "property": {
118
- "$ref": "#/definitions/property"
119
- },
120
- "source": {
121
- "type": "string",
122
- "enum": [
123
- "route"
124
- ],
125
- "default": "route"
126
- }
127
- },
128
- "required": [
129
- "property"
130
- ]
131
- },
132
- "backend": {
133
- "type": "string",
134
- "description": "The backend that should be used to handel data",
135
- "enum": [
136
- "none",
137
- "nestjs",
138
- "open-api",
139
- "local"
140
- ],
141
- "default": "none"
142
- },
143
441
  "dataGridItem": {
144
442
  "type": "object",
145
443
  "properties": {
@@ -158,7 +456,7 @@
158
456
  }
159
457
  },
160
458
  "formControl": {
161
- "$ref": "#/definitions/formControl"
459
+ "$ref": "#/definitions/control"
162
460
  },
163
461
  "template": {
164
462
  "type": "string"
@@ -182,66 +480,143 @@
182
480
  "name"
183
481
  ]
184
482
  },
483
+ "formArray": {
484
+ "allOf": [
485
+ {
486
+ "type": "object",
487
+ "properties": {
488
+ "role": {
489
+ "type": "string",
490
+ "const": "array"
491
+ }
492
+ }
493
+ },
494
+ {
495
+ "oneOf": [
496
+ {
497
+ "allOf": [
498
+ {
499
+ "$ref": "#/definitions/baseFormArray"
500
+ },
501
+ {
502
+ "type": "object",
503
+ "properties": {
504
+ "kind": {
505
+ "type": "string",
506
+ "const": "default"
507
+ }
508
+ }
509
+ }
510
+ ]
511
+ }
512
+ ]
513
+ }
514
+ ]
515
+ },
185
516
  "formControl": {
517
+ "allOf": [
518
+ {
519
+ "type": "object",
520
+ "properties": {
521
+ "role": {
522
+ "type": "string",
523
+ "const": "control",
524
+ "default": "control"
525
+ }
526
+ }
527
+ },
528
+ {
529
+ "oneOf": [
530
+ {
531
+ "allOf": [
532
+ {
533
+ "$ref": "#/definitions/baseFormControl"
534
+ },
535
+ {
536
+ "type": "object",
537
+ "properties": {
538
+ "kind": {
539
+ "type": "string",
540
+ "const": "default"
541
+ }
542
+ }
543
+ }
544
+ ]
545
+ },
546
+ {
547
+ "$ref": "#/definitions/inputFormControl"
548
+ },
549
+ {
550
+ "$ref": "#/definitions/selectFormControl"
551
+ },
552
+ {
553
+ "$ref": "#/definitions/checkboxFormControl"
554
+ },
555
+ {
556
+ "$ref": "#/definitions/textareaFormControl"
557
+ },
558
+ {
559
+ "$ref": "#/definitions/tableSelectFormControl"
560
+ },
561
+ {
562
+ "$ref": "#/definitions/slideToggleFormControl"
563
+ },
564
+ {
565
+ "$ref": "#/definitions/autocompleteTableSelectFormControl"
566
+ }
567
+ ]
568
+ }
569
+ ]
570
+ },
571
+ "formField": {
186
572
  "type": "object",
187
573
  "properties": {
188
- "name": {
189
- "type": "string",
190
- "description": "The name of the control"
191
- },
192
- "type": {
193
- "$ref": "#/definitions/type"
194
- },
195
- "isArray": {
196
- "type": "boolean",
197
- "description": "Whether the control value is an array",
198
- "default": false
199
- },
200
- "state": {
201
- "type": "string",
202
- "description": "The initial state of the control"
574
+ "label": {
575
+ "type": "string"
203
576
  },
204
- "isRequired": {
205
- "type": "boolean",
206
- "description": "Whether the control value is required",
207
- "default": false
577
+ "prefixButton": {
578
+ "$ref": "#/definitions/button"
208
579
  },
209
- "isReadonly": {
210
- "type": "boolean",
211
- "description": "Whether the control value is readonly",
212
- "default": false
580
+ "suffixButton": {
581
+ "$ref": "#/definitions/button"
213
582
  },
214
- "isDisabled": {
215
- "type": "boolean",
216
- "description": "Whether the control value is disabled",
217
- "default": false
218
- },
219
- "validatorList": {
220
- "type": "array",
221
- "items": {
222
- "type": "string"
583
+ "hasClearButton": {
584
+ "type": "boolean"
585
+ }
586
+ }
587
+ },
588
+ "formGroup": {
589
+ "allOf": [
590
+ {
591
+ "type": "object",
592
+ "properties": {
593
+ "role": {
594
+ "type": "string",
595
+ "const": "group"
596
+ }
223
597
  }
224
598
  },
225
- "kind": {
226
- "type": "string",
227
- "description": "The name of the template",
228
- "enum": [
229
- "default",
230
- "input",
231
- "select",
232
- "checkbox",
233
- "autocomplete-table-select",
234
- "table-select",
235
- "textarea",
236
- "slide-toggle"
237
- ],
238
- "default": "default"
599
+ {
600
+ "oneOf": [
601
+ {
602
+ "allOf": [
603
+ {
604
+ "$ref": "#/definitions/baseFormGroup"
605
+ },
606
+ {
607
+ "type": "object",
608
+ "properties": {
609
+ "kind": {
610
+ "type": "string",
611
+ "const": "default"
612
+ }
613
+ }
614
+ }
615
+ ]
616
+ }
617
+ ]
239
618
  }
240
- },
241
- "required": [
242
- "name"
243
- ],
244
- "additionalProperties": true
619
+ ]
245
620
  },
246
621
  "general": {
247
622
  "type": "object",
@@ -279,6 +654,55 @@
279
654
  }
280
655
  }
281
656
  },
657
+ "inputFormControl": {
658
+ "allOf": [
659
+ {
660
+ "$ref": "#/definitions/baseFormControl"
661
+ },
662
+ {
663
+ "type": "object",
664
+ "properties": {
665
+ "kind": {
666
+ "type": "string",
667
+ "const": "input"
668
+ },
669
+ "formField": {
670
+ "$ref": "#/definitions/formField"
671
+ },
672
+ "inputType": {
673
+ "type": "string",
674
+ "enum": [
675
+ "text",
676
+ "password",
677
+ "email",
678
+ "number",
679
+ "tel",
680
+ "url",
681
+ "checkbox",
682
+ "color",
683
+ "date",
684
+ "time",
685
+ "datetime-local",
686
+ "file",
687
+ "hidden",
688
+ "image",
689
+ "month",
690
+ "radio",
691
+ "reset",
692
+ "button",
693
+ "search",
694
+ "submit",
695
+ "week",
696
+ "range"
697
+ ]
698
+ },
699
+ "placeholder": {
700
+ "type": "string"
701
+ }
702
+ }
703
+ }
704
+ ]
705
+ },
282
706
  "pipe": {
283
707
  "oneOf": [
284
708
  {
@@ -331,6 +755,186 @@
331
755
  }
332
756
  ]
333
757
  },
758
+ "selectFormControl": {
759
+ "allOf": [
760
+ {
761
+ "$ref": "#/definitions/baseFormControl"
762
+ },
763
+ {
764
+ "type": "object",
765
+ "properties": {
766
+ "formField": {
767
+ "$ref": "#/definitions/formField"
768
+ },
769
+ "kind": {
770
+ "type": "string",
771
+ "const": "select"
772
+ },
773
+ "optionList": {
774
+ "type": "array",
775
+ "items": {
776
+ "type": "object",
777
+ "properties": {
778
+ "display": {
779
+ "type": "string"
780
+ },
781
+ "value": {
782
+ "oneOf": [
783
+ {
784
+ "type": "string"
785
+ },
786
+ {
787
+ "type": "number"
788
+ },
789
+ {
790
+ "type": "boolean"
791
+ },
792
+ {
793
+ "type": "object",
794
+ "additionalProperties": true
795
+ }
796
+ ]
797
+ }
798
+ }
799
+ }
800
+ },
801
+ "backend": {
802
+ "$ref": "#/definitions/backend"
803
+ },
804
+ "multiple": {
805
+ "alias": "multi",
806
+ "type": "boolean",
807
+ "description": "Whether the select form control is multiple mode"
808
+ }
809
+ }
810
+ }
811
+ ]
812
+ },
813
+ "slideToggleFormControl": {
814
+ "allOf": [
815
+ {
816
+ "$ref": "#/definitions/baseFormControl"
817
+ },
818
+ {
819
+ "type": "object",
820
+ "properties": {
821
+ "kind": {
822
+ "type": "string",
823
+ "const": "slide-toggle"
824
+ },
825
+ "labelPosition": {
826
+ "type": "string",
827
+ "enum": [
828
+ "before",
829
+ "after"
830
+ ]
831
+ }
832
+ }
833
+ }
834
+ ]
835
+ },
836
+ "tableSelectFormControl": {
837
+ "allOf": [
838
+ {
839
+ "$ref": "#/definitions/baseFormControl"
840
+ },
841
+ {
842
+ "type": "object",
843
+ "properties": {
844
+ "formField": {
845
+ "$ref": "#/definitions/formField"
846
+ },
847
+ "kind": {
848
+ "type": "string",
849
+ "const": "table-select"
850
+ },
851
+ "placeholder": {
852
+ "type": "string"
853
+ },
854
+ "columnList": {
855
+ "alias": "column",
856
+ "type": "array",
857
+ "items": {
858
+ "description": "table column name",
859
+ "type": "object",
860
+ "properties": {
861
+ "name": {
862
+ "type": "string",
863
+ "description": "table column name"
864
+ },
865
+ "title": {
866
+ "type": "string",
867
+ "description": "table column label"
868
+ },
869
+ "hasFilter": {
870
+ "type": "boolean",
871
+ "description": "Whether the column has a filter"
872
+ },
873
+ "kind": {
874
+ "type": "string",
875
+ "description": "The kind of data in the column"
876
+ }
877
+ }
878
+ },
879
+ "description": "List of table column names"
880
+ },
881
+ "title": {
882
+ "type": "string",
883
+ "description": "The title of the table select window"
884
+ },
885
+ "toDisplay": {
886
+ "type": "object",
887
+ "properties": {
888
+ "property": {
889
+ "$ref": "#/definitions/property"
890
+ }
891
+ }
892
+ },
893
+ "toValue": {
894
+ "type": "object",
895
+ "properties": {
896
+ "property": {
897
+ "$ref": "#/definitions/property"
898
+ }
899
+ }
900
+ },
901
+ "upstream": {
902
+ "$ref": "#/definitions/upstream"
903
+ },
904
+ "resolver": {
905
+ "type": "object",
906
+ "properties": {
907
+ "upstream": {
908
+ "$ref": "#/definitions/upstream"
909
+ }
910
+ }
911
+ }
912
+ }
913
+ }
914
+ ]
915
+ },
916
+ "textareaFormControl": {
917
+ "allOf": [
918
+ {
919
+ "$ref": "#/definitions/baseFormControl"
920
+ },
921
+ {
922
+ "type": "object",
923
+ "properties": {
924
+ "formField": {
925
+ "$ref": "#/definitions/formField"
926
+ },
927
+ "kind": {
928
+ "type": "string",
929
+ "const": "textarea"
930
+ },
931
+ "placeholder": {
932
+ "type": "string"
933
+ }
934
+ }
935
+ }
936
+ ]
937
+ },
334
938
  "type": {
335
939
  "oneOf": [
336
940
  {