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

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 (179) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +1 -1
  3. package/collection.json +10 -0
  4. package/package.json +4 -4
  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/base-form-control.d.ts +14 -0
  26. package/src/lib/form/control/base-form-control.js +19 -0
  27. package/src/lib/form/control/base-form-control.js.map +1 -0
  28. package/src/lib/form/control/checkbox-form-control.d.ts +11 -0
  29. package/src/lib/form/control/checkbox-form-control.js +23 -0
  30. package/src/lib/form/control/checkbox-form-control.js.map +1 -0
  31. package/src/lib/form/control/form-control-kind.d.ts +8 -0
  32. package/src/lib/form/control/form-control-kind.js +13 -0
  33. package/src/lib/form/control/form-control-kind.js.map +1 -0
  34. package/src/lib/form/control/form-control.d.ts +18 -0
  35. package/src/lib/form/control/form-control.js +40 -0
  36. package/src/lib/form/control/form-control.js.map +1 -0
  37. package/src/lib/form/control/form-field-form-control.d.ts +33 -0
  38. package/src/lib/form/control/form-field-form-control.js +76 -0
  39. package/src/lib/form/control/form-field-form-control.js.map +1 -0
  40. package/src/lib/form/control/input-form-control.d.ts +14 -0
  41. package/src/lib/form/control/input-form-control.js +71 -0
  42. package/src/lib/form/control/input-form-control.js.map +1 -0
  43. package/src/lib/form/control/select-form-control.d.ts +18 -0
  44. package/src/lib/form/control/select-form-control.js +29 -0
  45. package/src/lib/form/control/select-form-control.js.map +1 -0
  46. package/src/lib/form/control/slide-toggle-form-control.d.ts +11 -0
  47. package/src/lib/form/control/slide-toggle-form-control.js +23 -0
  48. package/src/lib/form/control/slide-toggle-form-control.js.map +1 -0
  49. package/src/lib/form/control/table-select-form-control.d.ts +43 -0
  50. package/src/lib/form/control/table-select-form-control.js +69 -0
  51. package/src/lib/form/control/table-select-form-control.js.map +1 -0
  52. package/src/lib/form/control.d.ts +8 -0
  53. package/src/lib/form/control.js +38 -0
  54. package/src/lib/form/control.js.map +1 -0
  55. package/src/lib/form/generate-form-template.d.ts +2 -2
  56. package/src/lib/form/group/base-form-group.d.ts +17 -0
  57. package/src/lib/form/group/base-form-group.js +20 -0
  58. package/src/lib/form/group/base-form-group.js.map +1 -0
  59. package/src/lib/form/group/form-group-kind.d.ts +3 -0
  60. package/src/lib/form/group/form-group-kind.js +8 -0
  61. package/src/lib/form/group/form-group-kind.js.map +1 -0
  62. package/src/lib/form/group/form-group.d.ts +12 -0
  63. package/src/lib/form/group/form-group.js +18 -0
  64. package/src/lib/form/group/form-group.js.map +1 -0
  65. package/src/lib/table-column.d.ts +4 -3
  66. package/src/lib/table-column.js +5 -4
  67. package/src/lib/table-column.js.map +1 -1
  68. package/src/schema.json +1673 -1415
  69. package/src/schematic-input.schema.json +90 -156
  70. package/src/schematics/abstract-control.schema.json +78 -0
  71. package/src/schematics/accordion/accordion-component/schema.json +127 -127
  72. package/src/schematics/accordion/accordion-item-component/schema.json +18 -18
  73. package/src/schematics/accordion/item/accordion-item-data-grid-component/schema.json +602 -81
  74. package/src/schematics/accordion/item/accordion-item-switch-component/schema.json +76 -76
  75. package/src/schematics/accordion/item/accordion-item-table-component/schema.json +486 -111
  76. package/src/schematics/accordion/item/accordion-item-tree-table-component/schema.json +458 -83
  77. package/src/schematics/base-form-array.schema.json +45 -0
  78. package/src/schematics/base-form-control.schema.json +27 -0
  79. package/src/schematics/base-form-group.schema.json +42 -0
  80. package/src/schematics/checkbox-form-control.schema.json +30 -0
  81. package/src/schematics/control.schema.json +26 -0
  82. package/src/schematics/data-grid-component/index.js +4 -0
  83. package/src/schematics/data-grid-component/index.js.map +1 -1
  84. package/src/schematics/data-grid-component/schema.json +602 -81
  85. package/src/schematics/data-grid-item.schema.json +3 -3
  86. package/src/schematics/form/control/input-form-control/index.d.ts +1 -1
  87. package/src/schematics/form/control/input-form-control/index.js +4 -4
  88. package/src/schematics/form/control/input-form-control/index.js.map +1 -1
  89. package/src/schematics/form/control/input-form-control/schema.d.ts +2 -2
  90. package/src/schematics/form/control/input-form-control/schema.json +256 -86
  91. package/src/schematics/form/control/input-form-control/template.schema.json +16 -3
  92. package/src/schematics/form/control/select-form-control/index.d.ts +2 -2
  93. package/src/schematics/form/control/select-form-control/index.js +21 -14
  94. package/src/schematics/form/control/select-form-control/index.js.map +1 -1
  95. package/src/schematics/form/control/select-form-control/schema.d.ts +2 -3
  96. package/src/schematics/form/control/select-form-control/schema.json +249 -90
  97. package/src/schematics/form/control/select-form-control/template.schema.json +16 -3
  98. package/src/schematics/form/control/table-select-form-control/index.d.ts +3 -9
  99. package/src/schematics/form/control/table-select-form-control/index.js +24 -18
  100. package/src/schematics/form/control/table-select-form-control/index.js.map +1 -1
  101. package/src/schematics/form/control/table-select-form-control/schema.d.ts +2 -3
  102. package/src/schematics/form/control/table-select-form-control/schema.json +325 -123
  103. package/src/schematics/form/control/table-select-form-control/template.schema.json +16 -60
  104. package/src/schematics/form/form-array/index.d.ts +9 -0
  105. package/src/schematics/form/form-array/index.js +54 -0
  106. package/src/schematics/form/form-array/index.js.map +1 -0
  107. package/src/schematics/form/form-array/schema.d.ts +4 -0
  108. package/src/schematics/form/form-array/schema.json +823 -0
  109. package/src/schematics/form/form-array/template.schema.json +33 -0
  110. package/src/schematics/form/form-component/files/component/__componentName__.component.html.hbs +4 -1
  111. package/src/schematics/form/form-component/index.d.ts +2 -4
  112. package/src/schematics/form/form-component/index.js +8 -24
  113. package/src/schematics/form/form-component/index.js.map +1 -1
  114. package/src/schematics/form/form-component/schema.d.ts +2 -2
  115. package/src/schematics/form/form-component/schema.json +666 -86
  116. package/src/schematics/form/form-control/index.d.ts +3 -5
  117. package/src/schematics/form/form-control/index.js +8 -20
  118. package/src/schematics/form/form-control/index.js.map +1 -1
  119. package/src/schematics/form/form-control/schema.d.ts +2 -4
  120. package/src/schematics/form/form-control/schema.json +519 -62
  121. package/src/schematics/form/form-control/template.schema.json +1 -2
  122. package/src/schematics/form/form-definition/index.d.ts +2 -2
  123. package/src/schematics/form/form-definition/index.js +28 -15
  124. package/src/schematics/form/form-definition/index.js.map +1 -1
  125. package/src/schematics/form/form-definition/schema.d.ts +2 -2
  126. package/src/schematics/form/form-definition/schema.json +664 -60
  127. package/src/schematics/form/form-group/index.d.ts +9 -0
  128. package/src/schematics/form/form-group/index.js +54 -0
  129. package/src/schematics/form/form-group/index.js.map +1 -0
  130. package/src/schematics/form/form-group/schema.d.ts +4 -0
  131. package/src/schematics/form/form-group/schema.json +823 -0
  132. package/src/schematics/form/form-group/template.schema.json +33 -0
  133. package/src/schematics/form/templates/checkbox-form-control.hbs +1 -1
  134. package/src/schematics/form/templates/default-form-array.hbs +27 -0
  135. package/src/schematics/form/templates/default-form-group.hbs +13 -0
  136. package/src/schematics/form/templates/input-form-control.hbs +7 -7
  137. package/src/schematics/form/templates/select-form-control.hbs +5 -0
  138. package/src/schematics/form/templates/table-select-form-control.hbs +16 -16
  139. package/src/schematics/form-array.schema.json +40 -0
  140. package/src/schematics/form-control.schema.json +64 -55
  141. package/src/schematics/form-definition.schema.json +3 -3
  142. package/src/schematics/form-group.schema.json +40 -0
  143. package/src/schematics/input-form-control.schema.json +10 -6
  144. package/src/schematics/select-form-control.schema.json +8 -4
  145. package/src/schematics/slide-toggle-form-control.schema.json +30 -0
  146. package/src/schematics/table/action/dialog-table-action/schema.json +20 -20
  147. package/src/schematics/table/action/form-table-action/index.d.ts +2 -2
  148. package/src/schematics/table/action/form-table-action/index.js +3 -4
  149. package/src/schematics/table/action/form-table-action/index.js.map +1 -1
  150. package/src/schematics/table/action/form-table-action/schema.d.ts +2 -2
  151. package/src/schematics/table/action/form-table-action/schema.json +667 -87
  152. package/src/schematics/table/action/navigation-table-action/schema.json +20 -20
  153. package/src/schematics/table/action/open-api-table-action/schema.json +20 -20
  154. package/src/schematics/table/action/operation-table-action/schema.json +20 -20
  155. package/src/schematics/table/header-button/form-table-header-button/index.d.ts +2 -2
  156. package/src/schematics/table/header-button/form-table-header-button/index.js +2 -2
  157. package/src/schematics/table/header-button/form-table-header-button/index.js.map +1 -1
  158. package/src/schematics/table/header-button/form-table-header-button/schema.d.ts +2 -2
  159. package/src/schematics/table/header-button/form-table-header-button/schema.json +735 -81
  160. package/src/schematics/table/header-button/form-table-header-button/template.schema.json +4 -22
  161. package/src/schematics/table/header-button/navigation-table-header-button/schema.json +20 -20
  162. package/src/schematics/table/table-action/schema.json +47 -47
  163. package/src/schematics/table/table-component/index.d.ts +2 -2
  164. package/src/schematics/table/table-component/schema.json +470 -95
  165. package/src/schematics/table/table-header-button/schema.json +40 -40
  166. package/src/schematics/table/tree-table-component/files/component/__componentName__.component.html.hbs +1 -1
  167. package/src/schematics/table/tree-table-component/schema.json +453 -78
  168. package/src/schematics/table-select-form-control.schema.json +96 -0
  169. package/src/schematics/textarea-form-control.schema.json +32 -0
  170. package/src/template.schema.json +39 -0
  171. package/src/lib/form-component-control.d.ts +0 -8
  172. package/src/lib/form-component-control.js +0 -15
  173. package/src/lib/form-component-control.js.map +0 -1
  174. package/src/lib/form-control.d.ts +0 -136
  175. package/src/lib/form-control.js +0 -265
  176. package/src/lib/form-control.js.map +0 -1
  177. package/src/lib/form-definition-control.d.ts +0 -5
  178. package/src/lib/form-definition-control.js +0 -30
  179. package/src/lib/form-definition-control.js.map +0 -1
@@ -17,109 +17,100 @@
17
17
  "description": "If true the schematic will not coerce the form component"
18
18
  },
19
19
  "formOptions": {
20
+ "$ref": "#/definitions/formComponent"
21
+ }
22
+ }
23
+ }
24
+ ],
25
+ "definitions": {
26
+ "abstractControl": {
27
+ "allOf": [
28
+ {
29
+ "$ref": "#/definitions/property"
30
+ },
31
+ {
20
32
  "type": "object",
21
33
  "properties": {
22
- "role": {
34
+ "name": {
23
35
  "type": "string",
24
- "description": "Define the role of the form"
36
+ "description": "The name of the control"
25
37
  },
26
- "window": {
38
+ "isArray": {
27
39
  "type": "boolean",
28
- "description": "Whether the form can be opened in a window"
40
+ "description": "Whether the control value is an array",
41
+ "default": false
29
42
  },
30
- "controlList": {
31
- "alias": "control",
43
+ "state": {
44
+ "type": "string",
45
+ "description": "The initial state of the control"
46
+ },
47
+ "isRequired": {
48
+ "type": "boolean",
49
+ "description": "Whether the control value is required",
50
+ "default": false
51
+ },
52
+ "isReadonly": {
53
+ "type": "boolean",
54
+ "description": "Whether the control value is readonly",
55
+ "default": false
56
+ },
57
+ "isDisabled": {
58
+ "type": "boolean",
59
+ "description": "Whether the control value is disabled",
60
+ "default": false
61
+ },
62
+ "validatorList": {
63
+ "type": "array",
64
+ "items": {
65
+ "type": "string"
66
+ }
67
+ },
68
+ "kind": {
69
+ "type": "string",
70
+ "description": "The kind of the control",
71
+ "default": "default"
72
+ },
73
+ "importList": {
32
74
  "type": "array",
33
75
  "items": {
34
- "$ref": "#/definitions/formControl"
76
+ "$ref": "#/definitions/type"
35
77
  }
78
+ },
79
+ "template": {
80
+ "type": "string",
81
+ "description": "The template of the control"
82
+ },
83
+ "role": {
84
+ "type": "string",
85
+ "description": "The role of the control",
86
+ "enum": [
87
+ "control",
88
+ "group",
89
+ "array"
90
+ ],
91
+ "default": "control"
36
92
  }
37
93
  },
38
94
  "additionalProperties": true
39
95
  }
40
- }
41
- }
42
- ],
43
- "definitions": {
44
- "formControl": {
96
+ ]
97
+ },
98
+ "accordionIdentifier": {
45
99
  "type": "object",
46
100
  "properties": {
47
- "name": {
48
- "type": "string",
49
- "description": "The name of the control"
50
- },
51
- "type": {
52
- "$ref": "#/definitions/type"
53
- },
54
- "isArray": {
55
- "type": "boolean",
56
- "description": "Whether the control value is an array",
57
- "default": false
58
- },
59
- "state": {
60
- "type": "string",
61
- "description": "The initial state of the control"
62
- },
63
- "isRequired": {
64
- "type": "boolean",
65
- "description": "Whether the control value is required",
66
- "default": false
101
+ "property": {
102
+ "$ref": "#/definitions/property"
67
103
  },
68
- "isReadonly": {
69
- "type": "boolean",
70
- "description": "Whether the control value is readonly",
71
- "default": false
72
- },
73
- "isDisabled": {
74
- "type": "boolean",
75
- "description": "Whether the control value is disabled",
76
- "default": false
77
- },
78
- "validatorList": {
79
- "type": "array",
80
- "items": {
81
- "type": "string"
82
- }
83
- },
84
- "kind": {
104
+ "source": {
85
105
  "type": "string",
86
- "description": "The name of the template",
87
106
  "enum": [
88
- "default",
89
- "input",
90
- "select",
91
- "checkbox",
92
- "autocomplete-table-select",
93
- "table-select",
94
- "textarea",
95
- "slide-toggle"
107
+ "route"
96
108
  ],
97
- "default": "default"
109
+ "default": "route"
98
110
  }
99
111
  },
100
112
  "required": [
101
- "name"
102
- ],
103
- "additionalProperties": true
104
- },
105
- "tableHeaderButtonSchematic": {
106
- "allOf": [
107
- {
108
- "$ref": "#/definitions/angular"
109
- },
110
- {
111
- "$ref": "#/definitions/headerButton"
112
- },
113
- {
114
- "type": "object",
115
- "properties": {
116
- "tableName": {
117
- "alias": "table",
118
- "type": "string",
119
- "description": "The name of the table action"
120
- }
121
- }
122
- }
113
+ "property"
123
114
  ]
124
115
  },
125
116
  "angular": {
@@ -184,6 +175,337 @@
184
175
  ],
185
176
  "default": "none"
186
177
  },
178
+ "baseFormArray": {
179
+ "allOf": [
180
+ {
181
+ "$ref": "#/definitions/abstractControl"
182
+ },
183
+ {
184
+ "type": "object",
185
+ "properties": {
186
+ "controlList": {
187
+ "type": "array",
188
+ "description": "The list of controls in the group",
189
+ "items": {
190
+ "$ref": "#/definitions/control"
191
+ }
192
+ },
193
+ "legend": {
194
+ "type": "string"
195
+ },
196
+ "groupLegend": {
197
+ "type": "string"
198
+ },
199
+ "kind": {
200
+ "type": "string",
201
+ "description": "The kind of the array",
202
+ "const": "default",
203
+ "default": "default"
204
+ },
205
+ "role": {
206
+ "type": "string",
207
+ "const": "array"
208
+ }
209
+ }
210
+ }
211
+ ]
212
+ },
213
+ "baseFormControl": {
214
+ "allOf": [
215
+ {
216
+ "$ref": "#/definitions/abstractControl"
217
+ },
218
+ {
219
+ "type": "object",
220
+ "properties": {
221
+ "label": {
222
+ "type": "string",
223
+ "description": "The label of the control"
224
+ },
225
+ "role": {
226
+ "type": "string",
227
+ "const": "control"
228
+ }
229
+ }
230
+ }
231
+ ]
232
+ },
233
+ "baseFormGroup": {
234
+ "allOf": [
235
+ {
236
+ "$ref": "#/definitions/abstractControl"
237
+ },
238
+ {
239
+ "type": "object",
240
+ "properties": {
241
+ "controlList": {
242
+ "type": "array",
243
+ "description": "The list of controls in the group",
244
+ "items": {
245
+ "$ref": "#/definitions/control"
246
+ }
247
+ },
248
+ "legend": {
249
+ "type": "string"
250
+ },
251
+ "kind": {
252
+ "type": "string",
253
+ "description": "The kind of the group",
254
+ "const": "default",
255
+ "default": "default"
256
+ },
257
+ "role": {
258
+ "type": "string",
259
+ "const": "group"
260
+ }
261
+ }
262
+ }
263
+ ]
264
+ },
265
+ "button": {
266
+ "type": "object",
267
+ "properties": {
268
+ "svgIcon": {
269
+ "type": "string"
270
+ },
271
+ "icon": {
272
+ "type": "string"
273
+ },
274
+ "directiveList": {
275
+ "type": "array",
276
+ "items": {
277
+ "$ref": "#/definitions/type"
278
+ }
279
+ },
280
+ "importList": {
281
+ "type": "array",
282
+ "items": {
283
+ "$ref": "#/definitions/type"
284
+ }
285
+ }
286
+ }
287
+ },
288
+ "checkboxFormControl": {
289
+ "allOf": [
290
+ {
291
+ "$ref": "#/definitions/baseFormControl"
292
+ },
293
+ {
294
+ "type": "object",
295
+ "properties": {
296
+ "kind": {
297
+ "type": "string",
298
+ "const": "checkbox"
299
+ },
300
+ "labelPosition": {
301
+ "type": "string",
302
+ "enum": [
303
+ "before",
304
+ "after"
305
+ ]
306
+ }
307
+ }
308
+ }
309
+ ]
310
+ },
311
+ "control": {
312
+ "oneOf": [
313
+ {
314
+ "$ref": "#/definitions/formGroup"
315
+ },
316
+ {
317
+ "$ref": "#/definitions/formArray"
318
+ },
319
+ {
320
+ "$ref": "#/definitions/formControl"
321
+ }
322
+ ]
323
+ },
324
+ "formArray": {
325
+ "allOf": [
326
+ {
327
+ "type": "object",
328
+ "properties": {
329
+ "role": {
330
+ "type": "string",
331
+ "const": "array"
332
+ }
333
+ }
334
+ },
335
+ {
336
+ "oneOf": [
337
+ {
338
+ "allOf": [
339
+ {
340
+ "$ref": "#/definitions/baseFormArray"
341
+ },
342
+ {
343
+ "type": "object",
344
+ "properties": {
345
+ "kind": {
346
+ "type": "string",
347
+ "const": "default"
348
+ }
349
+ }
350
+ }
351
+ ]
352
+ }
353
+ ]
354
+ }
355
+ ]
356
+ },
357
+ "formComponent": {
358
+ "allOf": [
359
+ {
360
+ "$ref": "#/definitions/formDefinition"
361
+ },
362
+ {
363
+ "type": "object",
364
+ "properties": {
365
+ "window": {
366
+ "type": "boolean",
367
+ "description": "Whether the form can be opened in a window"
368
+ },
369
+ "role": {
370
+ "type": "string",
371
+ "description": "Define the role of the form"
372
+ },
373
+ "matFormFieldDefaultOptions": {
374
+ "appearance": {
375
+ "type": "string",
376
+ "description": "The appearance of the mat form field",
377
+ "enum": [
378
+ "legacy",
379
+ "standard",
380
+ "fill",
381
+ "outline"
382
+ ]
383
+ }
384
+ },
385
+ "identifier": {
386
+ "$ref": "#/definitions/accordionIdentifier"
387
+ }
388
+ }
389
+ }
390
+ ]
391
+ },
392
+ "formControl": {
393
+ "allOf": [
394
+ {
395
+ "type": "object",
396
+ "properties": {
397
+ "role": {
398
+ "type": "string",
399
+ "const": "control",
400
+ "default": "control"
401
+ }
402
+ }
403
+ },
404
+ {
405
+ "oneOf": [
406
+ {
407
+ "allOf": [
408
+ {
409
+ "$ref": "#/definitions/baseFormControl"
410
+ },
411
+ {
412
+ "type": "object",
413
+ "properties": {
414
+ "kind": {
415
+ "type": "string",
416
+ "const": "default"
417
+ }
418
+ }
419
+ }
420
+ ]
421
+ },
422
+ {
423
+ "$ref": "#/definitions/inputFormControl"
424
+ },
425
+ {
426
+ "$ref": "#/definitions/selectFormControl"
427
+ },
428
+ {
429
+ "$ref": "#/definitions/checkboxFormControl"
430
+ },
431
+ {
432
+ "$ref": "#/definitions/textareaFormControl"
433
+ },
434
+ {
435
+ "$ref": "#/definitions/tableSelectFormControl"
436
+ },
437
+ {
438
+ "$ref": "#/definitions/slideToggleFormControl"
439
+ }
440
+ ]
441
+ }
442
+ ]
443
+ },
444
+ "formDefinition": {
445
+ "type": "object",
446
+ "properties": {
447
+ "controlList": {
448
+ "alias": "control",
449
+ "type": "array",
450
+ "items": {
451
+ "$ref": "#/definitions/control"
452
+ }
453
+ }
454
+ },
455
+ "required": [
456
+ "controlList"
457
+ ]
458
+ },
459
+ "formField": {
460
+ "type": "object",
461
+ "properties": {
462
+ "label": {
463
+ "type": "string"
464
+ },
465
+ "prefixButton": {
466
+ "$ref": "#/definitions/button"
467
+ },
468
+ "suffixButton": {
469
+ "$ref": "#/definitions/button"
470
+ },
471
+ "hasClearButton": {
472
+ "type": "boolean"
473
+ }
474
+ }
475
+ },
476
+ "formGroup": {
477
+ "allOf": [
478
+ {
479
+ "type": "object",
480
+ "properties": {
481
+ "role": {
482
+ "type": "string",
483
+ "const": "group"
484
+ }
485
+ }
486
+ },
487
+ {
488
+ "oneOf": [
489
+ {
490
+ "allOf": [
491
+ {
492
+ "$ref": "#/definitions/baseFormGroup"
493
+ },
494
+ {
495
+ "type": "object",
496
+ "properties": {
497
+ "kind": {
498
+ "type": "string",
499
+ "const": "default"
500
+ }
501
+ }
502
+ }
503
+ ]
504
+ }
505
+ ]
506
+ }
507
+ ]
508
+ },
187
509
  "general": {
188
510
  "type": "object",
189
511
  "properties": {
@@ -260,6 +582,279 @@
260
582
  }
261
583
  }
262
584
  },
585
+ "inputFormControl": {
586
+ "allOf": [
587
+ {
588
+ "$ref": "#/definitions/baseFormControl"
589
+ },
590
+ {
591
+ "type": "object",
592
+ "properties": {
593
+ "kind": {
594
+ "type": "string",
595
+ "const": "input"
596
+ },
597
+ "formField": {
598
+ "$ref": "#/definitions/formField"
599
+ },
600
+ "inputType": {
601
+ "type": "string",
602
+ "enum": [
603
+ "text",
604
+ "password",
605
+ "email",
606
+ "number",
607
+ "tel",
608
+ "url",
609
+ "checkbox",
610
+ "color",
611
+ "date",
612
+ "time",
613
+ "datetime-local",
614
+ "file",
615
+ "hidden",
616
+ "image",
617
+ "month",
618
+ "radio",
619
+ "reset",
620
+ "button",
621
+ "search",
622
+ "submit",
623
+ "week",
624
+ "range"
625
+ ]
626
+ },
627
+ "placeholder": {
628
+ "type": "string"
629
+ }
630
+ }
631
+ }
632
+ ]
633
+ },
634
+ "property": {
635
+ "oneOf": [
636
+ {
637
+ "type": "string"
638
+ },
639
+ {
640
+ "type": "object",
641
+ "properties": {
642
+ "name": {
643
+ "type": "string"
644
+ },
645
+ "type": {
646
+ "$ref": "#/definitions/type"
647
+ },
648
+ "isArray": {
649
+ "type": "boolean"
650
+ }
651
+ },
652
+ "required": [
653
+ "name"
654
+ ]
655
+ }
656
+ ]
657
+ },
658
+ "selectFormControl": {
659
+ "allOf": [
660
+ {
661
+ "$ref": "#/definitions/baseFormControl"
662
+ },
663
+ {
664
+ "type": "object",
665
+ "properties": {
666
+ "formField": {
667
+ "$ref": "#/definitions/formField"
668
+ },
669
+ "kind": {
670
+ "type": "string",
671
+ "const": "select"
672
+ },
673
+ "optionList": {
674
+ "type": "array",
675
+ "items": {
676
+ "type": "object",
677
+ "properties": {
678
+ "display": {
679
+ "type": "string"
680
+ },
681
+ "value": {
682
+ "oneOf": [
683
+ {
684
+ "type": "string"
685
+ },
686
+ {
687
+ "type": "number"
688
+ },
689
+ {
690
+ "type": "boolean"
691
+ },
692
+ {
693
+ "type": "object",
694
+ "additionalProperties": true
695
+ }
696
+ ]
697
+ }
698
+ }
699
+ }
700
+ },
701
+ "backend": {
702
+ "$ref": "#/definitions/backend"
703
+ },
704
+ "multiple": {
705
+ "alias": "multi",
706
+ "type": "boolean",
707
+ "description": "Whether the select form control is multiple mode"
708
+ }
709
+ }
710
+ }
711
+ ]
712
+ },
713
+ "slideToggleFormControl": {
714
+ "allOf": [
715
+ {
716
+ "$ref": "#/definitions/baseFormControl"
717
+ },
718
+ {
719
+ "type": "object",
720
+ "properties": {
721
+ "kind": {
722
+ "type": "string",
723
+ "const": "slide-toggle"
724
+ },
725
+ "labelPosition": {
726
+ "type": "string",
727
+ "enum": [
728
+ "before",
729
+ "after"
730
+ ]
731
+ }
732
+ }
733
+ }
734
+ ]
735
+ },
736
+ "tableHeaderButtonSchematic": {
737
+ "allOf": [
738
+ {
739
+ "$ref": "#/definitions/angular"
740
+ },
741
+ {
742
+ "$ref": "#/definitions/headerButton"
743
+ },
744
+ {
745
+ "type": "object",
746
+ "properties": {
747
+ "tableName": {
748
+ "alias": "table",
749
+ "type": "string",
750
+ "description": "The name of the table action"
751
+ }
752
+ }
753
+ }
754
+ ]
755
+ },
756
+ "tableSelectFormControl": {
757
+ "allOf": [
758
+ {
759
+ "$ref": "#/definitions/baseFormControl"
760
+ },
761
+ {
762
+ "type": "object",
763
+ "properties": {
764
+ "formField": {
765
+ "$ref": "#/definitions/formField"
766
+ },
767
+ "kind": {
768
+ "type": "string",
769
+ "const": "table-select"
770
+ },
771
+ "placeholder": {
772
+ "type": "string"
773
+ },
774
+ "columnList": {
775
+ "alias": "column",
776
+ "type": "array",
777
+ "items": {
778
+ "description": "table column name",
779
+ "type": "object",
780
+ "properties": {
781
+ "name": {
782
+ "type": "string",
783
+ "description": "table column name"
784
+ },
785
+ "title": {
786
+ "type": "string",
787
+ "description": "table column label"
788
+ },
789
+ "hasFilter": {
790
+ "type": "boolean",
791
+ "description": "Whether the column has a filter"
792
+ },
793
+ "kind": {
794
+ "type": "string",
795
+ "description": "The kind of data in the column"
796
+ }
797
+ }
798
+ },
799
+ "description": "List of table column names"
800
+ },
801
+ "title": {
802
+ "type": "string",
803
+ "description": "The title of the table select window"
804
+ },
805
+ "toDisplay": {
806
+ "type": "object",
807
+ "properties": {
808
+ "property": {
809
+ "$ref": "#/definitions/property"
810
+ }
811
+ }
812
+ },
813
+ "toValue": {
814
+ "type": "object",
815
+ "properties": {
816
+ "property": {
817
+ "$ref": "#/definitions/property"
818
+ }
819
+ }
820
+ },
821
+ "upstream": {
822
+ "$ref": "#/definitions/upstream"
823
+ },
824
+ "resolver": {
825
+ "type": "object",
826
+ "properties": {
827
+ "upstream": {
828
+ "$ref": "#/definitions/upstream"
829
+ }
830
+ }
831
+ }
832
+ }
833
+ }
834
+ ]
835
+ },
836
+ "textareaFormControl": {
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": "textarea"
850
+ },
851
+ "placeholder": {
852
+ "type": "string"
853
+ }
854
+ }
855
+ }
856
+ ]
857
+ },
263
858
  "type": {
264
859
  "oneOf": [
265
860
  {
@@ -292,6 +887,65 @@
292
887
  ]
293
888
  }
294
889
  ]
890
+ },
891
+ "upstream": {
892
+ "oneOf": [
893
+ {
894
+ "type": "object",
895
+ "properties": {
896
+ "kind": {
897
+ "type": "string",
898
+ "enum": [
899
+ "open-api"
900
+ ]
901
+ },
902
+ "operationId": {
903
+ "type": "string"
904
+ },
905
+ "scope": {
906
+ "type": "string"
907
+ },
908
+ "mapper": {
909
+ "type": "object",
910
+ "properties": {
911
+ "pageIndex": {
912
+ "type": "string"
913
+ },
914
+ "pageSize": {
915
+ "type": "string"
916
+ },
917
+ "sortBy": {
918
+ "type": "string"
919
+ },
920
+ "sortDirection": {
921
+ "type": "string"
922
+ },
923
+ "list": {
924
+ "type": "string"
925
+ },
926
+ "total": {
927
+ "type": "string"
928
+ },
929
+ "filter": {
930
+ "type": "object",
931
+ "properties": {
932
+ "eq": {
933
+ "type": "string"
934
+ },
935
+ "join": {
936
+ "type": "string"
937
+ }
938
+ }
939
+ }
940
+ }
941
+ }
942
+ },
943
+ "required": [
944
+ "kind",
945
+ "operationId"
946
+ ]
947
+ }
948
+ ]
295
949
  }
296
950
  }
297
951
  }