@rxap/schematic-angular 18.0.3-dev.0 → 18.1.0-dev.0

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 (144) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/package.json +10 -9
  3. package/src/lib/backend/nest-js-backend-options.d.ts +1 -1
  4. package/src/lib/backend/nest-js-backend-options.js +1 -1
  5. package/src/lib/backend/nest-js-backend-options.js.map +1 -1
  6. package/src/lib/coerce-minimum-table-component.js +9 -2
  7. package/src/lib/coerce-minimum-table-component.js.map +1 -1
  8. package/src/lib/form/control/form-control.d.ts +1 -0
  9. package/src/lib/form/control/form-control.js +6 -1
  10. package/src/lib/form/control/form-control.js.map +1 -1
  11. package/src/lib/form/control.d.ts +1 -1
  12. package/src/lib/form/form-component.d.ts +15 -0
  13. package/src/lib/form/form-component.js +12 -0
  14. package/src/lib/form/form-component.js.map +1 -0
  15. package/src/lib/form/form-definition.d.ts +8 -0
  16. package/src/lib/form/form-definition.js +11 -0
  17. package/src/lib/form/form-definition.js.map +1 -0
  18. package/src/lib/mat-form-field-default-options.d.ts +8 -2
  19. package/src/lib/mat-form-field-default-options.js +8 -1
  20. package/src/lib/mat-form-field-default-options.js.map +1 -1
  21. package/src/lib/minimum-table-component-options.js +28 -35
  22. package/src/lib/minimum-table-component-options.js.map +1 -1
  23. package/src/lib/minimum-table-options.d.ts +6 -3
  24. package/src/lib/minimum-table-options.js +4 -1
  25. package/src/lib/minimum-table-options.js.map +1 -1
  26. package/src/lib/table/action/base-table-action.d.ts +25 -0
  27. package/src/lib/table/action/base-table-action.js +32 -0
  28. package/src/lib/table/action/base-table-action.js.map +1 -0
  29. package/src/lib/table/action/dialog-table-action.d.ts +15 -0
  30. package/src/lib/table/action/dialog-table-action.js +23 -0
  31. package/src/lib/table/action/dialog-table-action.js.map +1 -0
  32. package/src/lib/table/action/form-table-action.d.ts +19 -0
  33. package/src/lib/table/action/form-table-action.js +26 -0
  34. package/src/lib/table/action/form-table-action.js.map +1 -0
  35. package/src/lib/table/action/navigation-table-action.d.ts +12 -0
  36. package/src/lib/table/action/navigation-table-action.js +14 -0
  37. package/src/lib/table/action/navigation-table-action.js.map +1 -0
  38. package/src/lib/table/action/open-api-table-action.d.ts +16 -0
  39. package/src/lib/table/action/open-api-table-action.js +14 -0
  40. package/src/lib/table/action/open-api-table-action.js.map +1 -0
  41. package/src/lib/table/action/operation-table-action.d.ts +8 -0
  42. package/src/lib/table/action/operation-table-action.js +10 -0
  43. package/src/lib/table/action/operation-table-action.js.map +1 -0
  44. package/src/lib/table/table-action-kind.d.ts +9 -0
  45. package/src/lib/table/table-action-kind.js +17 -0
  46. package/src/lib/table/table-action-kind.js.map +1 -0
  47. package/src/lib/table/table-action.d.ts +11 -0
  48. package/src/lib/table/table-action.js +35 -0
  49. package/src/lib/table/table-action.js.map +1 -0
  50. package/src/lib/table/table-filter-column-rule.js +9 -5
  51. package/src/lib/table/table-filter-column-rule.js.map +1 -1
  52. package/src/lib/table-options.d.ts +5 -9
  53. package/src/lib/table-options.js.map +1 -1
  54. package/src/lib/tree-table-options.d.ts +5 -10
  55. package/src/lib/tree-table-options.js.map +1 -1
  56. package/src/lib/use-pick-from-table-interface-as-form-type.d.ts +3 -1
  57. package/src/lib/use-pick-from-table-interface-as-form-type.js +19 -5
  58. package/src/lib/use-pick-from-table-interface-as-form-type.js.map +1 -1
  59. package/src/schema.json +201 -62
  60. package/src/schematics/accordion/accordion-component/index.js +5 -2
  61. package/src/schematics/accordion/accordion-component/index.js.map +1 -1
  62. package/src/schematics/accordion/accordion-component/schema.json +380 -48
  63. package/src/schematics/accordion/accordion-item-component/index.js +7 -4
  64. package/src/schematics/accordion/accordion-item-component/index.js.map +1 -1
  65. package/src/schematics/accordion/accordion-item-component/schema.json +380 -48
  66. package/src/schematics/accordion/item/accordion-item-data-grid-component/index.js +2 -1
  67. package/src/schematics/accordion/item/accordion-item-data-grid-component/index.js.map +1 -1
  68. package/src/schematics/accordion/item/accordion-item-switch-component/schema.json +380 -48
  69. package/src/schematics/accordion/item/accordion-item-table-component/schema.json +534 -48
  70. package/src/schematics/accordion/item/accordion-item-tree-table-component/index.js +3 -1
  71. package/src/schematics/accordion/item/accordion-item-tree-table-component/index.js.map +1 -1
  72. package/src/schematics/accordion/item/accordion-item-tree-table-component/schema.json +534 -48
  73. package/src/schematics/base-table-action.schema.json +62 -0
  74. package/src/schematics/data-grid-component/index.js +4 -2
  75. package/src/schematics/data-grid-component/index.js.map +1 -1
  76. package/src/schematics/dialog-table-action.schema.json +65 -0
  77. package/src/schematics/form/control/autocomplete-table-select-form-control/index.js +7 -4
  78. package/src/schematics/form/control/autocomplete-table-select-form-control/index.js.map +1 -1
  79. package/src/schematics/form/control/select-form-control/index.js +2 -1
  80. package/src/schematics/form/control/select-form-control/index.js.map +1 -1
  81. package/src/schematics/form/control/table-select-form-control/index.js +5 -3
  82. package/src/schematics/form/control/table-select-form-control/index.js.map +1 -1
  83. package/src/schematics/form/form-component/index.d.ts +2 -7
  84. package/src/schematics/form/form-component/index.js +7 -6
  85. package/src/schematics/form/form-component/index.js.map +1 -1
  86. package/src/schematics/form/form-component/schema.d.ts +2 -9
  87. package/src/schematics/form-table-action.schema.json +92 -0
  88. package/src/schematics/minimum-table.schema.json +11 -0
  89. package/src/schematics/navigation-table-action.schema.json +35 -0
  90. package/src/schematics/open-api-table-action.schema.json +60 -0
  91. package/src/schematics/operation-table-action.schema.json +26 -0
  92. package/src/schematics/table/action/dialog-table-action/index.d.ts +5 -9
  93. package/src/schematics/table/action/dialog-table-action/index.js +14 -22
  94. package/src/schematics/table/action/dialog-table-action/index.js.map +1 -1
  95. package/src/schematics/table/action/dialog-table-action/schema.d.ts +4 -6
  96. package/src/schematics/table/action/dialog-table-action/schema.json +1293 -100
  97. package/src/schematics/table/action/dialog-table-action/template.schema.json +4 -42
  98. package/src/schematics/table/action/form-table-action/index.d.ts +3 -11
  99. package/src/schematics/table/action/form-table-action/index.js +21 -18
  100. package/src/schematics/table/action/form-table-action/index.js.map +1 -1
  101. package/src/schematics/table/action/form-table-action/schema.d.ts +4 -14
  102. package/src/schematics/table/action/form-table-action/schema.json +331 -104
  103. package/src/schematics/table/action/form-table-action/template.schema.json +4 -59
  104. package/src/schematics/table/action/navigation-table-action/index.d.ts +3 -3
  105. package/src/schematics/table/action/navigation-table-action/index.js +2 -3
  106. package/src/schematics/table/action/navigation-table-action/index.js.map +1 -1
  107. package/src/schematics/table/action/navigation-table-action/schema.d.ts +4 -4
  108. package/src/schematics/table/action/navigation-table-action/schema.json +1293 -70
  109. package/src/schematics/table/action/navigation-table-action/template.schema.json +4 -12
  110. package/src/schematics/table/action/open-api-table-action/index.d.ts +2 -4
  111. package/src/schematics/table/action/open-api-table-action/index.js +2 -4
  112. package/src/schematics/table/action/open-api-table-action/index.js.map +1 -1
  113. package/src/schematics/table/action/open-api-table-action/schema.d.ts +4 -6
  114. package/src/schematics/table/action/open-api-table-action/schema.json +1286 -91
  115. package/src/schematics/table/action/open-api-table-action/template.schema.json +4 -40
  116. package/src/schematics/table/action/operation-table-action/index.d.ts +2 -1
  117. package/src/schematics/table/action/operation-table-action/index.js +8 -6
  118. package/src/schematics/table/action/operation-table-action/index.js.map +1 -1
  119. package/src/schematics/table/action/operation-table-action/schema.d.ts +5 -3
  120. package/src/schematics/table/action/operation-table-action/schema.json +1296 -59
  121. package/src/schematics/table/action/operation-table-action/template.schema.json +6 -0
  122. package/src/schematics/table/table-action/index.d.ts +2 -1
  123. package/src/schematics/table/table-action/index.js +3 -2
  124. package/src/schematics/table/table-action/index.js.map +1 -1
  125. package/src/schematics/table/table-action/schema.d.ts +2 -2
  126. package/src/schematics/table/table-action/schema.json +1286 -52
  127. package/src/schematics/table/table-component/files/component/__componentName__.component.html.hbs +19 -1
  128. package/src/schematics/table/table-component/index.js +6 -5
  129. package/src/schematics/table/table-component/index.js.map +1 -1
  130. package/src/schematics/table/table-component/schema.json +534 -48
  131. package/src/schematics/table/tree-table-component/files/component/__componentName__.component.html.hbs +19 -1
  132. package/src/schematics/table/tree-table-component/index.js +5 -3
  133. package/src/schematics/table/tree-table-component/index.js.map +1 -1
  134. package/src/schematics/table/tree-table-component/schema.json +534 -48
  135. package/src/schematics/table-action.schema.json +47 -53
  136. package/src/schematics/tree-component/index.js +2 -1
  137. package/src/schematics/tree-component/index.js.map +1 -1
  138. package/src/template.schema.json +18 -0
  139. package/src/lib/table-action.d.ts +0 -13
  140. package/src/lib/table-action.js +0 -102
  141. package/src/lib/table-action.js.map +0 -1
  142. package/src/lib/table-row-action.d.ts +0 -21
  143. package/src/lib/table-row-action.js +0 -25
  144. package/src/lib/table-row-action.js.map +0 -1
@@ -20,6 +20,95 @@
20
20
  }
21
21
  ],
22
22
  "definitions": {
23
+ "abstractControl": {
24
+ "allOf": [
25
+ {
26
+ "$ref": "#/definitions/property"
27
+ },
28
+ {
29
+ "type": "object",
30
+ "properties": {
31
+ "name": {
32
+ "type": "string",
33
+ "description": "The name of the control"
34
+ },
35
+ "isArray": {
36
+ "type": "boolean",
37
+ "description": "Whether the control value is an array",
38
+ "default": false
39
+ },
40
+ "state": {
41
+ "type": "string",
42
+ "description": "The initial state of the control"
43
+ },
44
+ "isRequired": {
45
+ "type": "boolean",
46
+ "description": "Whether the control value is required",
47
+ "default": false
48
+ },
49
+ "isReadonly": {
50
+ "type": "boolean",
51
+ "description": "Whether the control value is readonly",
52
+ "default": false
53
+ },
54
+ "isDisabled": {
55
+ "type": "boolean",
56
+ "description": "Whether the control value is disabled",
57
+ "default": false
58
+ },
59
+ "validatorList": {
60
+ "type": "array",
61
+ "items": {
62
+ "type": "string"
63
+ }
64
+ },
65
+ "kind": {
66
+ "type": "string",
67
+ "description": "The kind of the control",
68
+ "default": "default"
69
+ },
70
+ "importList": {
71
+ "type": "array",
72
+ "items": {
73
+ "$ref": "#/definitions/type"
74
+ }
75
+ },
76
+ "template": {
77
+ "type": "string",
78
+ "description": "The template of the control"
79
+ },
80
+ "role": {
81
+ "type": "string",
82
+ "description": "The role of the control",
83
+ "enum": [
84
+ "control",
85
+ "group",
86
+ "array"
87
+ ],
88
+ "default": "control"
89
+ }
90
+ },
91
+ "additionalProperties": true
92
+ }
93
+ ]
94
+ },
95
+ "accordionIdentifier": {
96
+ "type": "object",
97
+ "properties": {
98
+ "property": {
99
+ "$ref": "#/definitions/property"
100
+ },
101
+ "source": {
102
+ "type": "string",
103
+ "enum": [
104
+ "route"
105
+ ]
106
+ }
107
+ },
108
+ "required": [
109
+ "property"
110
+ ]
111
+ },
23
112
  "angular": {
24
113
  "allOf": [
25
114
  {
@@ -71,6 +160,89 @@
71
160
  }
72
161
  ]
73
162
  },
163
+ "autocompleteTableSelectFormControl": {
164
+ "allOf": [
165
+ {
166
+ "$ref": "#/definitions/baseFormControl"
167
+ },
168
+ {
169
+ "type": "object",
170
+ "properties": {
171
+ "formField": {
172
+ "$ref": "#/definitions/formField"
173
+ },
174
+ "kind": {
175
+ "type": "string",
176
+ "const": "autocomplete-table-select"
177
+ },
178
+ "placeholder": {
179
+ "type": "string"
180
+ },
181
+ "columnList": {
182
+ "alias": "column",
183
+ "type": "array",
184
+ "items": {
185
+ "description": "table column name",
186
+ "type": "object",
187
+ "properties": {
188
+ "name": {
189
+ "type": "string",
190
+ "description": "table column name"
191
+ },
192
+ "title": {
193
+ "type": "string",
194
+ "description": "table column label"
195
+ },
196
+ "hasFilter": {
197
+ "type": "boolean",
198
+ "description": "Whether the column has a filter"
199
+ },
200
+ "kind": {
201
+ "type": "string",
202
+ "description": "The kind of data in the column"
203
+ }
204
+ }
205
+ },
206
+ "description": "List of table column names"
207
+ },
208
+ "title": {
209
+ "type": "string",
210
+ "description": "The title of the table select window"
211
+ },
212
+ "toDisplay": {
213
+ "type": "object",
214
+ "properties": {
215
+ "property": {
216
+ "$ref": "#/definitions/property"
217
+ }
218
+ }
219
+ },
220
+ "toValue": {
221
+ "type": "object",
222
+ "properties": {
223
+ "property": {
224
+ "$ref": "#/definitions/property"
225
+ }
226
+ }
227
+ },
228
+ "upstream": {
229
+ "$ref": "#/definitions/upstream"
230
+ },
231
+ "resolver": {
232
+ "type": "object",
233
+ "properties": {
234
+ "upstream": {
235
+ "$ref": "#/definitions/upstream"
236
+ }
237
+ }
238
+ }
239
+ },
240
+ "required": [
241
+ "kind"
242
+ ]
243
+ }
244
+ ]
245
+ },
74
246
  "backend": {
75
247
  "oneOf": [
76
248
  {
@@ -108,75 +280,94 @@
108
280
  "description": "The backend that should be used to handel data",
109
281
  "default": "none"
110
282
  },
111
- "cssClass": {
112
- "oneOf": [
113
- {
114
- "type": "string"
115
- },
283
+ "baseFormArray": {
284
+ "allOf": [
116
285
  {
117
- "type": "array",
118
- "items": {
119
- "type": "string"
120
- }
286
+ "$ref": "#/definitions/abstractControl"
121
287
  },
122
288
  {
123
289
  "type": "object",
124
290
  "properties": {
125
- "name": {
291
+ "controlList": {
292
+ "type": "array",
293
+ "description": "The list of controls in the group",
294
+ "items": {
295
+ "$ref": "#/definitions/control"
296
+ }
297
+ },
298
+ "legend": {
299
+ "type": "string"
300
+ },
301
+ "groupLegend": {
126
302
  "type": "string"
303
+ },
304
+ "kind": {
305
+ "type": "string",
306
+ "description": "The kind of the array",
307
+ "const": "default",
308
+ "default": "default"
309
+ },
310
+ "role": {
311
+ "type": "string",
312
+ "const": "array"
127
313
  }
128
314
  }
315
+ }
316
+ ]
317
+ },
318
+ "baseFormControl": {
319
+ "allOf": [
320
+ {
321
+ "$ref": "#/definitions/abstractControl"
129
322
  },
130
323
  {
131
- "type": "array",
132
- "items": {
133
- "type": "object",
134
- "properties": {
135
- "name": {
136
- "type": "string"
137
- }
324
+ "type": "object",
325
+ "properties": {
326
+ "label": {
327
+ "type": "string",
328
+ "description": "The label of the control"
329
+ },
330
+ "role": {
331
+ "type": "string",
332
+ "const": "control"
138
333
  }
139
334
  }
140
335
  }
141
336
  ]
142
337
  },
143
- "general": {
144
- "type": "object",
145
- "properties": {
146
- "project": {
147
- "type": "string",
148
- "description": "Project name where the files should be generated"
149
- },
150
- "feature": {
151
- "type": "string",
152
- "description": "Feature name where the files should be generated"
338
+ "baseFormGroup": {
339
+ "allOf": [
340
+ {
341
+ "$ref": "#/definitions/abstractControl"
153
342
  },
154
- "overwrite": {
155
- "anyOf": [
156
- {
157
- "type": "boolean"
158
- },
159
- {
343
+ {
344
+ "type": "object",
345
+ "properties": {
346
+ "controlList": {
160
347
  "type": "array",
348
+ "description": "The list of controls in the group",
161
349
  "items": {
162
- "type": "string"
350
+ "$ref": "#/definitions/control"
163
351
  }
352
+ },
353
+ "legend": {
354
+ "type": "string"
355
+ },
356
+ "kind": {
357
+ "type": "string",
358
+ "description": "The kind of the group",
359
+ "const": "default",
360
+ "default": "default"
361
+ },
362
+ "role": {
363
+ "type": "string",
364
+ "const": "group"
164
365
  }
165
- ],
166
- "description": "Overwrite existing files",
167
- "default": false
168
- },
169
- "overwriteHtml": {
170
- "type": "boolean",
171
- "default": false
172
- },
173
- "replace": {
174
- "type": "boolean",
175
- "default": false
366
+ }
176
367
  }
177
- }
368
+ ]
178
369
  },
179
- "tableAction": {
370
+ "baseTableAction": {
180
371
  "type": "object",
181
372
  "properties": {
182
373
  "type": {
@@ -206,7 +397,8 @@
206
397
  "inHeader": {
207
398
  "type": "boolean"
208
399
  },
209
- "role": {
400
+ "kind": {
401
+ "alias": "role",
210
402
  "type": "string"
211
403
  },
212
404
  "icon": {
@@ -224,15 +416,1057 @@
224
416
  },
225
417
  "cssClass": {
226
418
  "$ref": "#/definitions/cssClass"
227
- },
228
- "options": {
229
- "type": "object",
230
- "additionalProperties": true
231
419
  }
232
420
  },
233
421
  "required": [
234
422
  "type"
235
423
  ]
424
+ },
425
+ "button": {
426
+ "type": "object",
427
+ "properties": {
428
+ "svgIcon": {
429
+ "type": "string"
430
+ },
431
+ "icon": {
432
+ "type": "string"
433
+ },
434
+ "directiveList": {
435
+ "type": "array",
436
+ "items": {
437
+ "$ref": "#/definitions/type"
438
+ }
439
+ },
440
+ "importList": {
441
+ "type": "array",
442
+ "items": {
443
+ "$ref": "#/definitions/type"
444
+ }
445
+ }
446
+ }
447
+ },
448
+ "checkboxFormControl": {
449
+ "allOf": [
450
+ {
451
+ "$ref": "#/definitions/baseFormControl"
452
+ },
453
+ {
454
+ "type": "object",
455
+ "properties": {
456
+ "kind": {
457
+ "type": "string",
458
+ "const": "checkbox"
459
+ },
460
+ "labelPosition": {
461
+ "type": "string",
462
+ "enum": [
463
+ "before",
464
+ "after"
465
+ ]
466
+ }
467
+ },
468
+ "required": [
469
+ "kind"
470
+ ]
471
+ }
472
+ ]
473
+ },
474
+ "control": {
475
+ "oneOf": [
476
+ {
477
+ "$ref": "#/definitions/formGroup"
478
+ },
479
+ {
480
+ "$ref": "#/definitions/formArray"
481
+ },
482
+ {
483
+ "$ref": "#/definitions/formControl"
484
+ }
485
+ ]
486
+ },
487
+ "cssClass": {
488
+ "oneOf": [
489
+ {
490
+ "type": "string"
491
+ },
492
+ {
493
+ "type": "array",
494
+ "items": {
495
+ "type": "string"
496
+ }
497
+ },
498
+ {
499
+ "type": "object",
500
+ "properties": {
501
+ "name": {
502
+ "type": "string"
503
+ }
504
+ }
505
+ },
506
+ {
507
+ "type": "array",
508
+ "items": {
509
+ "type": "object",
510
+ "properties": {
511
+ "name": {
512
+ "type": "string"
513
+ }
514
+ }
515
+ }
516
+ }
517
+ ]
518
+ },
519
+ "dialogTableAction": {
520
+ "allOf": [
521
+ {
522
+ "$ref": "#/definitions/baseTableAction"
523
+ },
524
+ {
525
+ "type": "object",
526
+ "properties": {
527
+ "kind": {
528
+ "type": "string",
529
+ "const": "dialog",
530
+ "default": "dialog"
531
+ },
532
+ "withoutBody": {
533
+ "type": "boolean",
534
+ "description": "Whether the table action operation should be without body",
535
+ "default": false
536
+ },
537
+ "actionList": {
538
+ "alias": "action",
539
+ "type": "array",
540
+ "description": "The list of actions to be added to the dialog",
541
+ "items": {
542
+ "oneOf": [
543
+ {
544
+ "type": "string"
545
+ },
546
+ {
547
+ "type": "object",
548
+ "properties": {
549
+ "label": {
550
+ "type": "string"
551
+ },
552
+ "color": {
553
+ "type": "string"
554
+ },
555
+ "role": {
556
+ "type": "string",
557
+ "enum": [
558
+ "submit",
559
+ "close"
560
+ ]
561
+ }
562
+ }
563
+ }
564
+ ]
565
+ }
566
+ },
567
+ "title": {
568
+ "type": "string",
569
+ "description": "The title for the dialog"
570
+ }
571
+ },
572
+ "required": [
573
+ "kind",
574
+ "title"
575
+ ]
576
+ }
577
+ ]
578
+ },
579
+ "formArray": {
580
+ "allOf": [
581
+ {
582
+ "type": "object",
583
+ "properties": {
584
+ "role": {
585
+ "type": "string",
586
+ "const": "array"
587
+ }
588
+ },
589
+ "required": [
590
+ "role"
591
+ ]
592
+ },
593
+ {
594
+ "oneOf": [
595
+ {
596
+ "allOf": [
597
+ {
598
+ "$ref": "#/definitions/baseFormArray"
599
+ },
600
+ {
601
+ "type": "object",
602
+ "properties": {
603
+ "kind": {
604
+ "type": "string",
605
+ "const": "default",
606
+ "default": "default"
607
+ }
608
+ }
609
+ }
610
+ ]
611
+ }
612
+ ]
613
+ }
614
+ ]
615
+ },
616
+ "formComponent": {
617
+ "allOf": [
618
+ {
619
+ "$ref": "#/definitions/formDefinition"
620
+ },
621
+ {
622
+ "type": "object",
623
+ "properties": {
624
+ "window": {
625
+ "type": "boolean",
626
+ "description": "Whether the form can be opened in a window"
627
+ },
628
+ "role": {
629
+ "type": "string",
630
+ "description": "Define the role of the form"
631
+ },
632
+ "matFormFieldDefaultOptions": {
633
+ "appearance": {
634
+ "type": "string",
635
+ "description": "The appearance of the mat form field",
636
+ "enum": [
637
+ "legacy",
638
+ "standard",
639
+ "fill",
640
+ "outline"
641
+ ]
642
+ }
643
+ },
644
+ "identifier": {
645
+ "$ref": "#/definitions/accordionIdentifier"
646
+ }
647
+ }
648
+ }
649
+ ]
650
+ },
651
+ "formControl": {
652
+ "allOf": [
653
+ {
654
+ "type": "object",
655
+ "properties": {
656
+ "role": {
657
+ "type": "string",
658
+ "const": "control",
659
+ "default": "control"
660
+ }
661
+ }
662
+ },
663
+ {
664
+ "oneOf": [
665
+ {
666
+ "allOf": [
667
+ {
668
+ "$ref": "#/definitions/baseFormControl"
669
+ },
670
+ {
671
+ "type": "object",
672
+ "properties": {
673
+ "kind": {
674
+ "type": "string",
675
+ "const": "default",
676
+ "default": "default"
677
+ }
678
+ }
679
+ }
680
+ ]
681
+ },
682
+ {
683
+ "$ref": "#/definitions/inputFormControl"
684
+ },
685
+ {
686
+ "$ref": "#/definitions/selectFormControl"
687
+ },
688
+ {
689
+ "$ref": "#/definitions/checkboxFormControl"
690
+ },
691
+ {
692
+ "$ref": "#/definitions/textareaFormControl"
693
+ },
694
+ {
695
+ "$ref": "#/definitions/tableSelectFormControl"
696
+ },
697
+ {
698
+ "$ref": "#/definitions/slideToggleFormControl"
699
+ },
700
+ {
701
+ "$ref": "#/definitions/autocompleteTableSelectFormControl"
702
+ }
703
+ ]
704
+ }
705
+ ]
706
+ },
707
+ "formDefinition": {
708
+ "type": "object",
709
+ "properties": {
710
+ "controlList": {
711
+ "alias": "control",
712
+ "type": "array",
713
+ "items": {
714
+ "$ref": "#/definitions/control"
715
+ }
716
+ }
717
+ },
718
+ "required": [
719
+ "controlList"
720
+ ]
721
+ },
722
+ "formField": {
723
+ "type": "object",
724
+ "properties": {
725
+ "label": {
726
+ "type": "string"
727
+ },
728
+ "prefixButton": {
729
+ "$ref": "#/definitions/button"
730
+ },
731
+ "suffixButton": {
732
+ "$ref": "#/definitions/button"
733
+ },
734
+ "hasClearButton": {
735
+ "type": "boolean"
736
+ },
737
+ "cssClass": {
738
+ "$ref": "#/definitions/cssClass"
739
+ }
740
+ }
741
+ },
742
+ "formGroup": {
743
+ "allOf": [
744
+ {
745
+ "type": "object",
746
+ "properties": {
747
+ "role": {
748
+ "type": "string",
749
+ "const": "group"
750
+ }
751
+ },
752
+ "required": [
753
+ "role"
754
+ ]
755
+ },
756
+ {
757
+ "oneOf": [
758
+ {
759
+ "allOf": [
760
+ {
761
+ "$ref": "#/definitions/baseFormGroup"
762
+ },
763
+ {
764
+ "type": "object",
765
+ "properties": {
766
+ "kind": {
767
+ "type": "string",
768
+ "const": "default",
769
+ "default": "default"
770
+ }
771
+ }
772
+ }
773
+ ]
774
+ }
775
+ ]
776
+ }
777
+ ]
778
+ },
779
+ "formTableAction": {
780
+ "allOf": [
781
+ {
782
+ "$ref": "#/definitions/baseTableAction"
783
+ },
784
+ {
785
+ "type": "object",
786
+ "properties": {
787
+ "kind": {
788
+ "type": "string",
789
+ "const": "form",
790
+ "default": "form"
791
+ },
792
+ "formInitial": {
793
+ "oneOf": [
794
+ {
795
+ "type": "object",
796
+ "description": "The mapping from the row object to the form initial object"
797
+ },
798
+ {
799
+ "type": "boolean",
800
+ "description": "If true the row object will be used as form initial object. If false the form initial object will be empty. Default is false.",
801
+ "default": false
802
+ }
803
+ ]
804
+ },
805
+ "formComponent": {
806
+ "type": "string"
807
+ },
808
+ "customComponent": {
809
+ "type": "boolean",
810
+ "default": false,
811
+ "description": "If true the schematic will not coerce the form component"
812
+ },
813
+ "loadFrom": {
814
+ "type": "object",
815
+ "properties": {
816
+ "operationId": {
817
+ "type": "string"
818
+ },
819
+ "scope": {
820
+ "type": "string",
821
+ "description": "The scope of package for the openapi classes"
822
+ },
823
+ "body": {
824
+ "oneOf": [
825
+ {
826
+ "type": "boolean",
827
+ "description": "Pass the full row as body for the operation request"
828
+ },
829
+ {
830
+ "type": "object",
831
+ "description": "Mapping of table columns to body properties - [request property]: [table column]",
832
+ "additionalProperties": true
833
+ }
834
+ ]
835
+ },
836
+ "parameters": {
837
+ "oneOf": [
838
+ {
839
+ "type": "boolean",
840
+ "description": "Pass the full row as parameters for the operation request"
841
+ },
842
+ {
843
+ "type": "object",
844
+ "description": "Mapping of table columns to parameters properties - [request property]: [table column]",
845
+ "additionalProperties": true
846
+ }
847
+ ]
848
+ }
849
+ }
850
+ },
851
+ "form": {
852
+ "alias": "formOptions",
853
+ "$ref": "#/definitions/formComponent"
854
+ }
855
+ },
856
+ "required": [
857
+ "kind"
858
+ ]
859
+ }
860
+ ]
861
+ },
862
+ "general": {
863
+ "type": "object",
864
+ "properties": {
865
+ "project": {
866
+ "type": "string",
867
+ "description": "Project name where the files should be generated"
868
+ },
869
+ "feature": {
870
+ "type": "string",
871
+ "description": "Feature name where the files should be generated"
872
+ },
873
+ "overwrite": {
874
+ "anyOf": [
875
+ {
876
+ "type": "boolean"
877
+ },
878
+ {
879
+ "type": "array",
880
+ "items": {
881
+ "type": "string"
882
+ }
883
+ }
884
+ ],
885
+ "description": "Overwrite existing files",
886
+ "default": false
887
+ },
888
+ "overwriteHtml": {
889
+ "type": "boolean",
890
+ "default": false
891
+ },
892
+ "replace": {
893
+ "type": "boolean",
894
+ "default": false
895
+ }
896
+ }
897
+ },
898
+ "inputFormControl": {
899
+ "allOf": [
900
+ {
901
+ "$ref": "#/definitions/baseFormControl"
902
+ },
903
+ {
904
+ "type": "object",
905
+ "properties": {
906
+ "kind": {
907
+ "type": "string",
908
+ "const": "input"
909
+ },
910
+ "formField": {
911
+ "$ref": "#/definitions/formField"
912
+ },
913
+ "inputType": {
914
+ "type": "string",
915
+ "enum": [
916
+ "text",
917
+ "password",
918
+ "email",
919
+ "number",
920
+ "tel",
921
+ "url",
922
+ "checkbox",
923
+ "color",
924
+ "date",
925
+ "time",
926
+ "datetime-local",
927
+ "file",
928
+ "hidden",
929
+ "image",
930
+ "month",
931
+ "radio",
932
+ "reset",
933
+ "button",
934
+ "search",
935
+ "submit",
936
+ "week",
937
+ "range"
938
+ ]
939
+ },
940
+ "placeholder": {
941
+ "type": "string"
942
+ }
943
+ },
944
+ "required": [
945
+ "kind"
946
+ ]
947
+ }
948
+ ]
949
+ },
950
+ "navigationTableAction": {
951
+ "allOf": [
952
+ {
953
+ "$ref": "#/definitions/baseTableAction"
954
+ },
955
+ {
956
+ "type": "object",
957
+ "properties": {
958
+ "kind": {
959
+ "type": "string",
960
+ "const": "navigation",
961
+ "default": "navigation"
962
+ },
963
+ "route": {
964
+ "type": "string",
965
+ "description": "The route for the table action"
966
+ },
967
+ "relativeTo": {
968
+ "type": "boolean",
969
+ "description": "Use the current ActivatedRoute to resolve the route or not",
970
+ "default": false
971
+ }
972
+ },
973
+ "required": [
974
+ "kind",
975
+ "route"
976
+ ]
977
+ }
978
+ ]
979
+ },
980
+ "openApiTableAction": {
981
+ "allOf": [
982
+ {
983
+ "$ref": "#/definitions/baseTableAction"
984
+ },
985
+ {
986
+ "type": "object",
987
+ "properties": {
988
+ "kind": {
989
+ "type": "string",
990
+ "const": "open-api",
991
+ "default": "open-api"
992
+ },
993
+ "operationId": {
994
+ "type": "string",
995
+ "description": "The open api operationId for the table action"
996
+ },
997
+ "scope": {
998
+ "type": "string",
999
+ "description": "The scope of package for the openapi classes"
1000
+ },
1001
+ "body": {
1002
+ "oneOf": [
1003
+ {
1004
+ "type": "boolean",
1005
+ "description": "Pass the full row as body for the operation request"
1006
+ },
1007
+ {
1008
+ "type": "object",
1009
+ "description": "Mapping of table columns to body properties - [request property]: [table column]",
1010
+ "additionalProperties": true
1011
+ }
1012
+ ]
1013
+ },
1014
+ "parameters": {
1015
+ "oneOf": [
1016
+ {
1017
+ "type": "boolean",
1018
+ "description": "Pass the full row as parameters for the operation request"
1019
+ },
1020
+ {
1021
+ "type": "object",
1022
+ "description": "Mapping of table columns to parameters properties - [request property]: [table column]",
1023
+ "additionalProperties": true
1024
+ }
1025
+ ]
1026
+ }
1027
+ },
1028
+ "required": [
1029
+ "kind",
1030
+ "operationId"
1031
+ ]
1032
+ }
1033
+ ]
1034
+ },
1035
+ "operationTableAction": {
1036
+ "allOf": [
1037
+ {
1038
+ "$ref": "#/definitions/baseTableAction"
1039
+ },
1040
+ {
1041
+ "type": "object",
1042
+ "properties": {
1043
+ "kind": {
1044
+ "type": "string",
1045
+ "const": "operation",
1046
+ "default": "operation"
1047
+ }
1048
+ },
1049
+ "required": [
1050
+ "kind"
1051
+ ]
1052
+ }
1053
+ ]
1054
+ },
1055
+ "option": {
1056
+ "type": "object",
1057
+ "properties": {
1058
+ "display": {
1059
+ "type": "string"
1060
+ },
1061
+ "value": {
1062
+ "oneOf": [
1063
+ {
1064
+ "type": "string"
1065
+ },
1066
+ {
1067
+ "type": "number"
1068
+ },
1069
+ {
1070
+ "type": "boolean"
1071
+ },
1072
+ {
1073
+ "type": "object",
1074
+ "additionalProperties": true
1075
+ }
1076
+ ]
1077
+ }
1078
+ }
1079
+ },
1080
+ "property": {
1081
+ "oneOf": [
1082
+ {
1083
+ "type": "string"
1084
+ },
1085
+ {
1086
+ "type": "object",
1087
+ "properties": {
1088
+ "name": {
1089
+ "type": "string"
1090
+ },
1091
+ "type": {
1092
+ "$ref": "#/definitions/type"
1093
+ },
1094
+ "isArray": {
1095
+ "type": "boolean"
1096
+ },
1097
+ "isRequired": {
1098
+ "type": "boolean"
1099
+ },
1100
+ "source": {
1101
+ "type": "string"
1102
+ },
1103
+ "memberList": {
1104
+ "type": "array",
1105
+ "items": {
1106
+ "additionalProperties": true
1107
+ }
1108
+ }
1109
+ }
1110
+ }
1111
+ ]
1112
+ },
1113
+ "selectFormControl": {
1114
+ "allOf": [
1115
+ {
1116
+ "$ref": "#/definitions/baseFormControl"
1117
+ },
1118
+ {
1119
+ "type": "object",
1120
+ "properties": {
1121
+ "formField": {
1122
+ "$ref": "#/definitions/formField"
1123
+ },
1124
+ "kind": {
1125
+ "type": "string",
1126
+ "const": "select"
1127
+ },
1128
+ "upstream": {
1129
+ "$ref": "#/definitions/upstream"
1130
+ },
1131
+ "optionList": {
1132
+ "type": "array",
1133
+ "items": {
1134
+ "$ref": "#/definitions/option"
1135
+ }
1136
+ },
1137
+ "backend": {
1138
+ "$ref": "#/definitions/backend"
1139
+ },
1140
+ "multiple": {
1141
+ "alias": "multi",
1142
+ "type": "boolean",
1143
+ "description": "Whether the select form control is multiple mode"
1144
+ }
1145
+ },
1146
+ "required": [
1147
+ "kind"
1148
+ ]
1149
+ }
1150
+ ]
1151
+ },
1152
+ "slideToggleFormControl": {
1153
+ "allOf": [
1154
+ {
1155
+ "$ref": "#/definitions/baseFormControl"
1156
+ },
1157
+ {
1158
+ "type": "object",
1159
+ "properties": {
1160
+ "kind": {
1161
+ "type": "string",
1162
+ "const": "slide-toggle"
1163
+ },
1164
+ "labelPosition": {
1165
+ "type": "string",
1166
+ "enum": [
1167
+ "before",
1168
+ "after"
1169
+ ]
1170
+ }
1171
+ },
1172
+ "required": [
1173
+ "kind"
1174
+ ]
1175
+ }
1176
+ ]
1177
+ },
1178
+ "tableAction": {
1179
+ "type": "object",
1180
+ "oneOf": [
1181
+ {
1182
+ "allOf": [
1183
+ {
1184
+ "$ref": "#/definitions/baseTableAction"
1185
+ },
1186
+ {
1187
+ "type": "object",
1188
+ "properties": {
1189
+ "kind": {
1190
+ "type": "string",
1191
+ "const": "default",
1192
+ "default": "default"
1193
+ }
1194
+ }
1195
+ }
1196
+ ]
1197
+ },
1198
+ {
1199
+ "$ref": "#/definitions/dialogTableAction"
1200
+ },
1201
+ {
1202
+ "$ref": "#/definitions/formTableAction"
1203
+ },
1204
+ {
1205
+ "$ref": "#/definitions/navigationTableAction"
1206
+ },
1207
+ {
1208
+ "$ref": "#/definitions/openApiTableAction"
1209
+ },
1210
+ {
1211
+ "$ref": "#/definitions/operationTableAction"
1212
+ }
1213
+ ]
1214
+ },
1215
+ "tableSelectFormControl": {
1216
+ "allOf": [
1217
+ {
1218
+ "$ref": "#/definitions/baseFormControl"
1219
+ },
1220
+ {
1221
+ "type": "object",
1222
+ "properties": {
1223
+ "formField": {
1224
+ "$ref": "#/definitions/formField"
1225
+ },
1226
+ "kind": {
1227
+ "type": "string",
1228
+ "const": "table-select"
1229
+ },
1230
+ "placeholder": {
1231
+ "type": "string"
1232
+ },
1233
+ "columnList": {
1234
+ "alias": "column",
1235
+ "type": "array",
1236
+ "items": {
1237
+ "description": "table column name",
1238
+ "type": "object",
1239
+ "properties": {
1240
+ "name": {
1241
+ "type": "string",
1242
+ "description": "table column name"
1243
+ },
1244
+ "title": {
1245
+ "type": "string",
1246
+ "description": "table column label"
1247
+ },
1248
+ "hasFilter": {
1249
+ "type": "boolean",
1250
+ "description": "Whether the column has a filter"
1251
+ },
1252
+ "kind": {
1253
+ "type": "string",
1254
+ "description": "The kind of data in the column"
1255
+ }
1256
+ }
1257
+ },
1258
+ "description": "List of table column names"
1259
+ },
1260
+ "title": {
1261
+ "type": "string",
1262
+ "description": "The title of the table select window"
1263
+ },
1264
+ "toDisplay": {
1265
+ "type": "object",
1266
+ "properties": {
1267
+ "property": {
1268
+ "$ref": "#/definitions/property"
1269
+ }
1270
+ }
1271
+ },
1272
+ "toValue": {
1273
+ "type": "object",
1274
+ "properties": {
1275
+ "property": {
1276
+ "$ref": "#/definitions/property"
1277
+ }
1278
+ }
1279
+ },
1280
+ "upstream": {
1281
+ "$ref": "#/definitions/upstream"
1282
+ },
1283
+ "resolver": {
1284
+ "type": "object",
1285
+ "properties": {
1286
+ "upstream": {
1287
+ "$ref": "#/definitions/upstream"
1288
+ }
1289
+ }
1290
+ },
1291
+ "identifier": {
1292
+ "$ref": "#/definitions/accordionIdentifier"
1293
+ }
1294
+ },
1295
+ "required": [
1296
+ "kind"
1297
+ ]
1298
+ }
1299
+ ]
1300
+ },
1301
+ "textareaFormControl": {
1302
+ "allOf": [
1303
+ {
1304
+ "$ref": "#/definitions/baseFormControl"
1305
+ },
1306
+ {
1307
+ "type": "object",
1308
+ "properties": {
1309
+ "formField": {
1310
+ "$ref": "#/definitions/formField"
1311
+ },
1312
+ "kind": {
1313
+ "type": "string",
1314
+ "const": "textarea"
1315
+ },
1316
+ "placeholder": {
1317
+ "type": "string"
1318
+ },
1319
+ "autosize": {
1320
+ "type": "object",
1321
+ "properties": {
1322
+ "minRows": {
1323
+ "type": "number"
1324
+ },
1325
+ "maxRows": {
1326
+ "type": "number"
1327
+ }
1328
+ }
1329
+ }
1330
+ },
1331
+ "required": [
1332
+ "kind"
1333
+ ]
1334
+ }
1335
+ ]
1336
+ },
1337
+ "type": {
1338
+ "oneOf": [
1339
+ {
1340
+ "type": "string"
1341
+ },
1342
+ {
1343
+ "type": "object",
1344
+ "properties": {
1345
+ "name": {
1346
+ "type": "string"
1347
+ },
1348
+ "isTypeOnly": {
1349
+ "type": "boolean"
1350
+ },
1351
+ "moduleSpecifier": {
1352
+ "type": "string"
1353
+ },
1354
+ "namedImport": {
1355
+ "type": "string"
1356
+ },
1357
+ "namespaceImport": {
1358
+ "type": "string"
1359
+ },
1360
+ "defaultImport": {
1361
+ "type": "string"
1362
+ }
1363
+ },
1364
+ "required": [
1365
+ "name"
1366
+ ]
1367
+ }
1368
+ ]
1369
+ },
1370
+ "upstream": {
1371
+ "oneOf": [
1372
+ {
1373
+ "type": "object",
1374
+ "properties": {
1375
+ "kind": {
1376
+ "type": "string",
1377
+ "enum": [
1378
+ "open-api"
1379
+ ]
1380
+ },
1381
+ "operationId": {
1382
+ "type": "string"
1383
+ },
1384
+ "scope": {
1385
+ "type": "string"
1386
+ },
1387
+ "mapper": {
1388
+ "oneOf": [
1389
+ {
1390
+ "type": "object",
1391
+ "properties": {
1392
+ "kind": {
1393
+ "type": "string",
1394
+ "const": "paged"
1395
+ },
1396
+ "pageIndex": {
1397
+ "type": "string"
1398
+ },
1399
+ "pageSize": {
1400
+ "type": "string"
1401
+ },
1402
+ "sortBy": {
1403
+ "type": "string"
1404
+ },
1405
+ "sortDirection": {
1406
+ "type": "string"
1407
+ },
1408
+ "list": {
1409
+ "type": "string"
1410
+ },
1411
+ "total": {
1412
+ "type": "string"
1413
+ },
1414
+ "filter": {
1415
+ "type": "object",
1416
+ "properties": {
1417
+ "eq": {
1418
+ "type": "string"
1419
+ },
1420
+ "join": {
1421
+ "type": "string"
1422
+ }
1423
+ }
1424
+ }
1425
+ }
1426
+ },
1427
+ {
1428
+ "type": "object",
1429
+ "properties": {
1430
+ "kind": {
1431
+ "type": "string",
1432
+ "const": "options"
1433
+ },
1434
+ "toFunction": {
1435
+ "type": "string",
1436
+ "enum": [
1437
+ "ToOptions",
1438
+ "ToOptionsFromObject"
1439
+ ]
1440
+ },
1441
+ "toValue": {
1442
+ "type": "string"
1443
+ },
1444
+ "toDisplay": {
1445
+ "type": "string"
1446
+ }
1447
+ }
1448
+ },
1449
+ {
1450
+ "type": "object",
1451
+ "properties": {
1452
+ "kind": {
1453
+ "type": "string",
1454
+ "const": "resolve"
1455
+ },
1456
+ "value": {
1457
+ "type": "string"
1458
+ }
1459
+ }
1460
+ }
1461
+ ]
1462
+ }
1463
+ },
1464
+ "required": [
1465
+ "kind",
1466
+ "operationId"
1467
+ ]
1468
+ }
1469
+ ]
236
1470
  }
237
1471
  }
238
1472
  }