@rxap/schematic-angular 16.2.0-dev.1 → 16.2.0-dev.10

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 (206) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/README.md +1 -1
  3. package/package.json +13 -11
  4. package/src/lib/accordion-header.d.ts +5 -0
  5. package/src/lib/accordion-header.js +8 -2
  6. package/src/lib/accordion-header.js.map +1 -1
  7. package/src/lib/accordion-item.d.ts +17 -16
  8. package/src/lib/accordion-item.js +44 -32
  9. package/src/lib/accordion-item.js.map +1 -1
  10. package/src/lib/accordion-itme-kinds.d.ts +8 -0
  11. package/src/lib/accordion-itme-kinds.js +16 -0
  12. package/src/lib/accordion-itme-kinds.js.map +1 -0
  13. package/src/lib/coerce-accordion-component.js +4 -2
  14. package/src/lib/coerce-accordion-component.js.map +1 -1
  15. package/src/lib/coerce-form-component.js +5 -2
  16. package/src/lib/coerce-form-component.js.map +1 -1
  17. package/src/lib/coerce-minimum-table-component.js +9 -3
  18. package/src/lib/coerce-minimum-table-component.js.map +1 -1
  19. package/src/lib/coerce-tree-table-component.js +16 -0
  20. package/src/lib/coerce-tree-table-component.js.map +1 -1
  21. package/src/lib/data-grid-item.d.ts +4 -7
  22. package/src/lib/data-grid-item.js.map +1 -1
  23. package/src/lib/data-grid-options.d.ts +2 -0
  24. package/src/lib/data-grid-options.js +7 -3
  25. package/src/lib/data-grid-options.js.map +1 -1
  26. package/src/lib/form/generate-form-template.d.ts +5 -0
  27. package/src/lib/form/generate-form-template.js +12 -0
  28. package/src/lib/form/generate-form-template.js.map +1 -0
  29. package/src/lib/form-component-control.d.ts +2 -6
  30. package/src/lib/form-component-control.js.map +1 -1
  31. package/src/lib/form-control.d.ts +125 -0
  32. package/src/lib/form-control.js +304 -0
  33. package/src/lib/form-control.js.map +1 -0
  34. package/src/lib/form-definition-control.d.ts +3 -57
  35. package/src/lib/form-definition-control.js +18 -144
  36. package/src/lib/form-definition-control.js.map +1 -1
  37. package/src/lib/load-handlebars-template.d.ts +3 -0
  38. package/src/lib/load-handlebars-template.js +24 -0
  39. package/src/lib/load-handlebars-template.js.map +1 -0
  40. package/src/lib/minimum-table-component-options.d.ts +12 -2
  41. package/src/lib/minimum-table-component-options.js +14 -17
  42. package/src/lib/minimum-table-component-options.js.map +1 -1
  43. package/src/lib/table/table-filter-column-rule.d.ts +13 -0
  44. package/src/lib/table/table-filter-column-rule.js +88 -0
  45. package/src/lib/table/table-filter-column-rule.js.map +1 -0
  46. package/src/lib/table-column.d.ts +8 -2
  47. package/src/lib/table-column.js +110 -43
  48. package/src/lib/table-column.js.map +1 -1
  49. package/src/lib/use-pick-from-table-interface-as-form-type.d.ts +10 -0
  50. package/src/lib/use-pick-from-table-interface-as-form-type.js +32 -0
  51. package/src/lib/use-pick-from-table-interface-as-form-type.js.map +1 -0
  52. package/src/schematics/accordion/accordion-component/files/component/__componentName__.component.html.hbs +25 -0
  53. package/src/schematics/accordion/accordion-component/index.js +6 -98
  54. package/src/schematics/accordion/accordion-component/index.js.map +1 -1
  55. package/src/schematics/accordion/accordion-component/schema.json +313 -132
  56. package/src/schematics/accordion/accordion-component/template.schema.json +102 -0
  57. package/src/schematics/accordion/accordion-item-component/index.d.ts +2 -2
  58. package/src/schematics/accordion/accordion-item-component/index.js +49 -44
  59. package/src/schematics/accordion/accordion-item-component/index.js.map +1 -1
  60. package/src/schematics/accordion/accordion-item-component/schema.d.ts +2 -2
  61. package/src/schematics/accordion/accordion-item-component/schema.json +281 -78
  62. package/src/schematics/accordion/accordion-item-component/template.schema.json +33 -0
  63. package/src/schematics/accordion/item/accordion-item-data-grid-component/index.d.ts +1 -1
  64. package/src/schematics/accordion/item/accordion-item-data-grid-component/index.js +17 -29
  65. package/src/schematics/accordion/item/accordion-item-data-grid-component/index.js.map +1 -1
  66. package/src/schematics/accordion/item/accordion-item-data-grid-component/schema.d.ts +1 -1
  67. package/src/schematics/accordion/item/accordion-item-data-grid-component/schema.json +366 -103
  68. package/src/schematics/accordion/item/accordion-item-data-grid-component/template.schema.json +31 -0
  69. package/src/schematics/accordion/item/accordion-item-switch-component/index.d.ts +1 -1
  70. package/src/schematics/accordion/item/accordion-item-switch-component/index.js +4 -4
  71. package/src/schematics/accordion/item/accordion-item-switch-component/index.js.map +1 -1
  72. package/src/schematics/accordion/item/accordion-item-switch-component/schema.d.ts +1 -1
  73. package/src/schematics/accordion/item/accordion-item-switch-component/schema.json +317 -191
  74. package/src/schematics/accordion/item/accordion-item-switch-component/template.schema.json +84 -0
  75. package/src/schematics/accordion/item/accordion-item-table-component/index.d.ts +1 -1
  76. package/src/schematics/accordion/item/accordion-item-table-component/index.js +8 -8
  77. package/src/schematics/accordion/item/accordion-item-table-component/index.js.map +1 -1
  78. package/src/schematics/accordion/item/accordion-item-table-component/schema.d.ts +1 -1
  79. package/src/schematics/accordion/item/accordion-item-table-component/schema.json +584 -264
  80. package/src/schematics/accordion/item/accordion-item-table-component/template.schema.json +46 -0
  81. package/src/schematics/accordion/item/accordion-item-tree-table-component/index.d.ts +1 -1
  82. package/src/schematics/accordion/item/accordion-item-tree-table-component/index.js +11 -10
  83. package/src/schematics/accordion/item/accordion-item-tree-table-component/index.js.map +1 -1
  84. package/src/schematics/accordion/item/accordion-item-tree-table-component/schema.d.ts +1 -1
  85. package/src/schematics/accordion/item/accordion-item-tree-table-component/schema.json +556 -253
  86. package/src/schematics/accordion/item/accordion-item-tree-table-component/template.schema.json +46 -0
  87. package/src/schematics/accordion/templates/accordion-header.hbs +6 -0
  88. package/src/schematics/accordion/templates/data-grid-accordion-item.hbs +15 -0
  89. package/src/schematics/accordion/templates/default-accordion-item.hbs +15 -0
  90. package/src/schematics/accordion/templates/switch-accordion-item.hbs +21 -0
  91. package/src/schematics/accordion/templates/table-accordion-item.hbs +15 -0
  92. package/src/schematics/accordion/templates/tree-table-accordion-item.hbs +15 -0
  93. package/src/schematics/accordion-item.schema.json +35 -0
  94. package/src/schematics/angular.schema.json +2 -10
  95. package/src/schematics/backend.schema.json +13 -0
  96. package/src/schematics/button.schema.json +30 -0
  97. package/src/schematics/data-grid-component/files/component/__componentName__.component.html.hbs +34 -0
  98. package/src/schematics/data-grid-component/index.d.ts +0 -1
  99. package/src/schematics/data-grid-component/index.js +31 -25
  100. package/src/schematics/data-grid-component/index.js.map +1 -1
  101. package/src/schematics/data-grid-component/schema.json +326 -144
  102. package/src/schematics/data-grid-component/template.schema.json +23 -0
  103. package/src/schematics/data-grid-item.schema.json +23 -0
  104. package/src/schematics/data-grid.schema.json +44 -0
  105. package/src/schematics/dialog-component/schema.json +225 -66
  106. package/src/schematics/dialog-component/template.schema.json +65 -0
  107. package/src/schematics/form/control/input-form-control/index.d.ts +2 -2
  108. package/src/schematics/form/control/input-form-control/index.js +4 -27
  109. package/src/schematics/form/control/input-form-control/index.js.map +1 -1
  110. package/src/schematics/form/control/input-form-control/schema.d.ts +2 -3
  111. package/src/schematics/form/control/input-form-control/schema.json +380 -108
  112. package/src/schematics/form/control/input-form-control/template.schema.json +23 -0
  113. package/src/schematics/form/control/select-form-control/index.d.ts +4 -2
  114. package/src/schematics/form/control/select-form-control/index.js +132 -96
  115. package/src/schematics/form/control/select-form-control/index.js.map +1 -1
  116. package/src/schematics/form/control/select-form-control/schema.d.ts +2 -3
  117. package/src/schematics/form/control/select-form-control/schema.json +386 -94
  118. package/src/schematics/form/control/select-form-control/template.schema.json +23 -0
  119. package/src/schematics/form/control/table-select-form-control/index.d.ts +4 -6
  120. package/src/schematics/form/control/table-select-form-control/index.js +80 -69
  121. package/src/schematics/form/control/table-select-form-control/index.js.map +1 -1
  122. package/src/schematics/form/control/table-select-form-control/schema.d.ts +2 -4
  123. package/src/schematics/form/control/table-select-form-control/schema.json +434 -97
  124. package/src/schematics/form/control/table-select-form-control/template.schema.json +78 -0
  125. package/src/schematics/form/form-component/files/component/{__componentName__.component.html.template → __componentName__.component.html.hbs} +3 -3
  126. package/src/schematics/form/form-component/index.js +9 -3
  127. package/src/schematics/form/form-component/index.js.map +1 -1
  128. package/src/schematics/form/form-component/schema.json +325 -146
  129. package/src/schematics/form/form-component/template.schema.json +23 -0
  130. package/src/schematics/form/form-control/index.d.ts +3 -1
  131. package/src/schematics/form/form-control/index.js +19 -8
  132. package/src/schematics/form/form-control/index.js.map +1 -1
  133. package/src/schematics/form/form-control/schema.json +316 -83
  134. package/src/schematics/form/form-control/template.schema.json +37 -0
  135. package/src/schematics/form/form-definition/index.js +14 -1
  136. package/src/schematics/form/form-definition/index.js.map +1 -1
  137. package/src/schematics/form/form-definition/schema.json +312 -127
  138. package/src/schematics/form/form-definition/template.schema.json +33 -0
  139. package/src/schematics/form/templates/checkbox-form-control.hbs +9 -0
  140. package/src/schematics/form/templates/default-form-control.hbs +2 -0
  141. package/src/schematics/form/templates/input-form-control.hbs +9 -0
  142. package/src/schematics/form/templates/mat-form-field.hbs +31 -0
  143. package/src/schematics/form/templates/slide-toggle-form-control.hbs +8 -0
  144. package/src/schematics/form/templates/table-select-form-control.hbs +18 -0
  145. package/src/schematics/form-component.schema.json +39 -0
  146. package/src/schematics/form-control.schema.json +68 -0
  147. package/src/schematics/form-definition.schema.json +22 -0
  148. package/src/schematics/form-field.schema.json +24 -0
  149. package/src/schematics/header-button.schema.json +42 -0
  150. package/src/schematics/input-form-control.schema.json +47 -0
  151. package/src/schematics/minimum-table.schema.json +54 -0
  152. package/src/schematics/property.schema.json +28 -0
  153. package/src/schematics/select-form-control.schema.json +53 -0
  154. package/src/schematics/table/action/dialog-table-action/schema.json +294 -133
  155. package/src/schematics/table/action/dialog-table-action/template.schema.json +61 -0
  156. package/src/schematics/table/action/form-table-action/schema.json +392 -172
  157. package/src/schematics/table/action/form-table-action/template.schema.json +75 -0
  158. package/src/schematics/table/action/navigation-table-action/schema.json +272 -88
  159. package/src/schematics/table/action/navigation-table-action/template.schema.json +31 -0
  160. package/src/schematics/table/action/open-api-table-action/schema.json +288 -102
  161. package/src/schematics/table/action/open-api-table-action/template.schema.json +59 -0
  162. package/src/schematics/table/action/operation-table-action/schema.json +259 -92
  163. package/src/schematics/table/action/operation-table-action/template.schema.json +17 -0
  164. package/src/schematics/table/header-button/form-table-header-button/schema.json +325 -126
  165. package/src/schematics/table/header-button/form-table-header-button/template.schema.json +51 -0
  166. package/src/schematics/table/header-button/navigation-table-header-button/schema.json +254 -81
  167. package/src/schematics/table/header-button/navigation-table-header-button/template.schema.json +31 -0
  168. package/src/schematics/table/table-action/schema.json +254 -87
  169. package/src/schematics/table/table-action/template.schema.json +30 -0
  170. package/src/schematics/table/table-component/files/component/__componentName__.component.html.hbs +241 -0
  171. package/src/schematics/table/table-component/index.d.ts +2 -2
  172. package/src/schematics/table/table-component/index.js +11 -104
  173. package/src/schematics/table/table-component/index.js.map +1 -1
  174. package/src/schematics/table/table-component/schema.json +461 -197
  175. package/src/schematics/table/table-component/template.schema.json +26 -0
  176. package/src/schematics/table/table-header-button/schema.json +235 -73
  177. package/src/schematics/table/table-header-button/template.schema.json +30 -0
  178. package/src/schematics/table/templates/boolean-table-column.hbs +10 -0
  179. package/src/schematics/table/templates/component-table-column.hbs +12 -0
  180. package/src/schematics/table/templates/copy-to-clipboard-table-column.hbs +10 -0
  181. package/src/schematics/table/templates/date-table-column.hbs +11 -0
  182. package/src/schematics/table/templates/default-table-column.hbs +8 -0
  183. package/src/schematics/table/templates/icon-table-column.hbs +10 -0
  184. package/src/schematics/table/templates/link-table-column.hbs +10 -0
  185. package/src/schematics/table/tree-table-component/files/component/__componentName__.component.html.hbs +249 -0
  186. package/src/schematics/table/tree-table-component/index.js +11 -4
  187. package/src/schematics/table/tree-table-component/index.js.map +1 -1
  188. package/src/schematics/table/tree-table-component/schema.json +521 -250
  189. package/src/schematics/table/tree-table-component/template.schema.json +26 -0
  190. package/src/schematics/table-action.schema.json +61 -0
  191. package/src/schematics/table-column.schema.json +69 -0
  192. package/src/schematics/table.schema.json +54 -0
  193. package/src/schematics/tree-component/schema.json +113 -76
  194. package/src/schematics/tree-component/template.schema.json +31 -0
  195. package/src/schematics/tree-table.schema.json +40 -0
  196. package/src/schematics/type.schema.json +35 -0
  197. package/src/schematics/upstream.schema.json +56 -0
  198. package/src/lib/accordion-itme-types.d.ts +0 -8
  199. package/src/lib/accordion-itme-types.js +0 -16
  200. package/src/lib/accordion-itme-types.js.map +0 -1
  201. package/src/schematics/accordion/accordion-component/files/component/__componentName__.component.html.template +0 -94
  202. package/src/schematics/accordion/accordion-component/files/header-component/accordion-header.component.html.template +0 -10
  203. package/src/schematics/data-grid-component/files/form/__componentName__.component.html.template +0 -42
  204. package/src/schematics/data-grid-component/files/plain/__componentName__.component.html.template +0 -25
  205. package/src/schematics/table/table-component/files/component/__componentName__.component.html.template +0 -299
  206. package/src/schematics/table/tree-table-component/files/component/__componentName__.component.html.template +0 -213
@@ -1,94 +1,261 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/schema",
3
- "$id": "table-action",
4
- "type": "object",
5
- "properties": {
6
- "tableName": {
7
- "alias": "table",
8
- "type": "string",
9
- "description": "The name of the table action"
3
+ "$id": "table-action-schematic",
4
+ "allOf": [
5
+ {
6
+ "allOf": [
7
+ {
8
+ "type": "object",
9
+ "properties": {
10
+ "project": {
11
+ "type": "string",
12
+ "description": "Project name where the files should be generated"
13
+ },
14
+ "feature": {
15
+ "type": "string",
16
+ "description": "Feature name where the files should be generated"
17
+ },
18
+ "overwrite": {
19
+ "anyOf": [
20
+ {
21
+ "type": "boolean"
22
+ },
23
+ {
24
+ "type": "array",
25
+ "items": {
26
+ "type": "string"
27
+ }
28
+ }
29
+ ],
30
+ "description": "Overwrite existing files",
31
+ "default": false
32
+ },
33
+ "overwriteHtml": {
34
+ "type": "boolean",
35
+ "default": false
36
+ },
37
+ "replace": {
38
+ "type": "boolean",
39
+ "default": false
40
+ }
41
+ },
42
+ "required": [
43
+ "project"
44
+ ]
45
+ },
46
+ {
47
+ "type": "object",
48
+ "properties": {
49
+ "componentName": {
50
+ "type": "string"
51
+ },
52
+ "name": {
53
+ "type": "string"
54
+ },
55
+ "context": {
56
+ "type": "string",
57
+ "description": "The context use to generate proper names for class, files, etc"
58
+ },
59
+ "nestModule": {
60
+ "type": "string",
61
+ "description": "The module name for the table nest operations"
62
+ },
63
+ "controllerName": {
64
+ "type": "string"
65
+ },
66
+ "backend": {
67
+ "type": "string",
68
+ "description": "The backend that should be used to handel data",
69
+ "enum": [
70
+ "none",
71
+ "nestjs",
72
+ "open-api",
73
+ "local"
74
+ ],
75
+ "default": "none"
76
+ },
77
+ "directory": {
78
+ "type": "string",
79
+ "description": "A directory name or absolute path where the files should be generated. Relative to the project and feature base path if a feature is defined"
80
+ },
81
+ "shared": {
82
+ "type": "boolean",
83
+ "description": "Whether the generated code is used across the project",
84
+ "default": false
85
+ },
86
+ "scope": {
87
+ "type": "string"
88
+ },
89
+ "prefix": {
90
+ "type": "string"
91
+ },
92
+ "openApi": {
93
+ "type": "object",
94
+ "additionalProperties": true
95
+ }
96
+ }
97
+ }
98
+ ]
10
99
  },
11
- "type": {
12
- "alias": "actionType",
13
- "type": "string",
14
- "description": "The table action type string",
15
- "x-prompt": "Enter the table action type string?"
16
- },
17
- "project": {
18
- "type": "string",
19
- "description": "The target project where the table action should be added."
100
+ {
101
+ "type": "object",
102
+ "properties": {
103
+ "type": {
104
+ "type": "string"
105
+ },
106
+ "refresh": {
107
+ "type": "boolean"
108
+ },
109
+ "confirm": {
110
+ "type": "boolean"
111
+ },
112
+ "tooltip": {
113
+ "type": "string"
114
+ },
115
+ "errorMessage": {
116
+ "type": "string"
117
+ },
118
+ "successMessage": {
119
+ "type": "string"
120
+ },
121
+ "priority": {
122
+ "type": "number"
123
+ },
124
+ "checkFunction": {
125
+ "type": "string"
126
+ },
127
+ "inHeader": {
128
+ "type": "boolean"
129
+ },
130
+ "role": {
131
+ "type": "string"
132
+ },
133
+ "icon": {
134
+ "type": "string"
135
+ },
136
+ "svgIcon": {
137
+ "type": "string"
138
+ },
139
+ "permission": {
140
+ "type": "string"
141
+ },
142
+ "color": {
143
+ "type": "string",
144
+ "description": "Value for the color input of the mat-button / mat-icon component"
145
+ },
146
+ "cssClass": {
147
+ "type": "string",
148
+ "description": "Additional CSS classes added to the button element"
149
+ },
150
+ "options": {
151
+ "type": "object",
152
+ "additionalProperties": true
153
+ }
154
+ },
155
+ "required": [
156
+ "type"
157
+ ]
20
158
  },
21
- "feature": {
22
- "type": "string",
23
- "description": "The feature name where the table action should be added.",
24
- "x-prompt": "To which feature should the table action be added?"
159
+ {
160
+ "type": "object",
161
+ "properties": {
162
+ "tableName": {
163
+ "alias": "table",
164
+ "type": "string",
165
+ "description": "The name of the table action"
166
+ }
167
+ }
168
+ }
169
+ ],
170
+ "definitions": {
171
+ "type": {
172
+ "oneOf": [
173
+ {
174
+ "type": "string"
175
+ },
176
+ {
177
+ "type": "object",
178
+ "properties": {
179
+ "name": {
180
+ "type": "string"
181
+ },
182
+ "isTypeOnly": {
183
+ "type": "boolean"
184
+ },
185
+ "moduleSpecifier": {
186
+ "type": "string"
187
+ },
188
+ "namedImport": {
189
+ "type": "string"
190
+ },
191
+ "namespaceImport": {
192
+ "type": "string"
193
+ },
194
+ "defaultImport": {
195
+ "type": "string"
196
+ }
197
+ },
198
+ "required": [
199
+ "name"
200
+ ]
201
+ }
202
+ ]
25
203
  },
26
- "backend": {
27
- "type": "string",
28
- "description": "The backend that should be used to handel data",
29
- "enum": [
30
- "none",
31
- "local",
32
- "nestjs",
33
- "open-api"
204
+ "property": {
205
+ "oneOf": [
206
+ {
207
+ "type": "string"
208
+ },
209
+ {
210
+ "type": "object",
211
+ "properties": {
212
+ "name": {
213
+ "type": "string"
214
+ },
215
+ "type": {
216
+ "$ref": "#/definitions/type"
217
+ }
218
+ },
219
+ "required": [
220
+ "name"
221
+ ]
222
+ }
34
223
  ],
35
- "default": "none"
36
- },
37
- "shared": {
38
- "type": "boolean",
39
- "description": "Whether the table action is shared across applications",
40
- "default": false
41
- },
42
- "refresh": {
43
- "type": "boolean",
44
- "description": "Whether the table action should refresh the table after execution",
45
- "default": false
46
- },
47
- "confirm": {
48
- "type": "boolean",
49
- "description": "Whether the table action should confirm before execution",
50
- "default": false
51
- },
52
- "tooltip": {
53
- "type": "string",
54
- "description": "The tooltip for the table action"
55
- },
56
- "errorMessage": {
57
- "type": "string",
58
- "description": "The error message for the table action"
59
- },
60
- "successMessage": {
61
- "type": "string",
62
- "description": "The success message for the table action"
63
- },
64
- "checkFunction": {
65
- "type": "string",
66
- "description": "The check function for the table action"
67
- },
68
- "color": {
69
- "type": "string",
70
- "description": "Value for the color input of the mat-button / mat-icon component"
71
- },
72
- "cssClass": {
73
- "type": "string",
74
- "description": "Additional CSS classes added to the button element"
75
- },
76
- "priority": {
77
- "type": "number",
78
- "description": "The priority of the table action"
79
- },
80
- "directory": {
81
- "type": "string",
82
- "description": "A directory name or absolute path for the table action. relative to the feature base path"
83
- },
84
- "options": {
85
- "type": "object",
86
- "additionalProperties": true
224
+ "definitions": {
225
+ "type": {
226
+ "oneOf": [
227
+ {
228
+ "type": "string"
229
+ },
230
+ {
231
+ "type": "object",
232
+ "properties": {
233
+ "name": {
234
+ "type": "string"
235
+ },
236
+ "isTypeOnly": {
237
+ "type": "boolean"
238
+ },
239
+ "moduleSpecifier": {
240
+ "type": "string"
241
+ },
242
+ "namedImport": {
243
+ "type": "string"
244
+ },
245
+ "namespaceImport": {
246
+ "type": "string"
247
+ },
248
+ "defaultImport": {
249
+ "type": "string"
250
+ }
251
+ },
252
+ "required": [
253
+ "name"
254
+ ]
255
+ }
256
+ ]
257
+ }
258
+ }
87
259
  }
88
- },
89
- "required": [
90
- "type",
91
- "project",
92
- "feature"
93
- ]
94
- }
260
+ }
261
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "table-action-schematic",
4
+ "allOf": [
5
+ {
6
+ "$ref": "../../angular.schema.json"
7
+ },
8
+ {
9
+ "$ref": "../../table-action.schema.json"
10
+ },
11
+ {
12
+ "type": "object",
13
+ "properties": {
14
+ "tableName": {
15
+ "alias": "table",
16
+ "type": "string",
17
+ "description": "The name of the table action"
18
+ }
19
+ }
20
+ }
21
+ ],
22
+ "definitions": {
23
+ "type": {
24
+ "$ref": "../../type.schema.json"
25
+ },
26
+ "property": {
27
+ "$ref": "../../property.schema.json"
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,241 @@
1
+ <div class="flex flex-col gap-y-4 m-4">
2
+ {{#if hasNavigationBackHeader}}
3
+ <rxap-navigate-back-button>
4
+ <h1 i18n>{{title}}</h1>
5
+ </rxap-navigate-back-button>
6
+ <mat-divider></mat-divider>
7
+ {{/if}}
8
+
9
+ <div class="table-card-container flex flex-col">
10
+ <mat-card>
11
+ <mat-progress-bar
12
+ rxapCardProgressBar
13
+ [loading$]="tableDataSourceDirective.loading$"
14
+ ></mat-progress-bar>
15
+ <mat-card-header class="min-h-full h-12{{#unless headerButton}}{{#if hasWithoutTitle}} justify-end {{/if}}{{/unless}}">
16
+ {{#unless hasWithoutTitle}}
17
+ <mat-card-title i18n>{{title}}</mat-card-title>
18
+ {{/unless}}
19
+ {{#if headerButton}}
20
+ <button
21
+ mat-card-avatar
22
+ mat-mini-fab
23
+ color="primary"
24
+ matTooltip
25
+ [disabled]="tableDataSourceDirective.hasError$ | async"
26
+ [rxapTableHeaderButton]="tableDataSourceDirective"
27
+ {{#if headerButton.permission}}rxapHasEnablePermission="{{headerButton.permission}}"{{/if~}}
28
+ >
29
+ {{#if headerButton.icon}}
30
+ <mat-icon>{{headerButton.icon}}</mat-icon>
31
+ {{else if headerButton.svgIcon}}
32
+ <mat-icon svgIcon="{{headerButton.svgIcon}}"></mat-icon>
33
+ {{else}}
34
+ <mat-icon>add</mat-icon>
35
+ {{/if}}
36
+ </button>
37
+ <mat-card-subtitle i18n>{{headerButton.label}}</mat-card-subtitle>
38
+ {{/if}}
39
+ <rxap-table-column-menu
40
+ matCard
41
+ #rxapTableColumns="rxapTableColumns"
42
+ {{#unless headerButton}}{{#if hasWithoutTitle}}inline{{/if}}{{/unless~}}
43
+ >
44
+ {{#if selectColumn}}
45
+ <rxap-table-column-option hidden name="select">
46
+ <ng-container i18n>Select</ng-container>
47
+ </rxap-table-column-option>
48
+ {{/if}}
49
+ {{#each columnList}}
50
+ <rxap-table-column-option name="{{this.name}}"
51
+ {{~#if this.active}} active{{/if~}}
52
+ {{~#if this.hidden}} hidden{{/if~}}
53
+ {{~#if this.inactive}} inactive{{/if~}}
54
+ {{~#if this.show}} show{{/if~}}>
55
+ <ng-container i18n>{{this.title}}</ng-container>
56
+ </rxap-table-column-option>
57
+ {{/each}}
58
+ {{#if actionList.length}}
59
+ <rxap-table-column-option hidden name="actions">
60
+ <ng-container i18n>Actions</ng-container>
61
+ </rxap-table-column-option>
62
+ {{/if}}
63
+ {{#if hasShowArchivedSlide}}
64
+ <mat-divider></mat-divider>
65
+ <span mat-menu-item>
66
+ <rxap-table-show-archived-slide [paginator]="paginator"></rxap-table-show-archived-slide>
67
+ </span>
68
+ {{/if}}
69
+ </rxap-table-column-menu>
70
+ </mat-card-header>
71
+
72
+ <mat-card-content>
73
+ <rxap-data-source-error
74
+ [loading]="tableDataSourceDirective.loading$"
75
+ [error]="tableDataSourceDirective.dataSource?.error$"
76
+ *ngIf="tableDataSourceDirective.hasError$ | async"
77
+ [refresh]="tableDataSourceDirective.retry">
78
+ </rxap-data-source-error>
79
+ <div class="table-scroll-container mt-4 overflow-x-auto overscroll-auto">
80
+ <table
81
+ [ngClass]="{ 'hidden': tableDataSourceDirective.hasError$ | async }"
82
+ [paginator]="paginator"
83
+ matSort
84
+ mat-table
85
+ #tableDataSourceDirective="rxapTableDataSource"
86
+ rxapTableDataSource
87
+ [parameters]="parameters"
88
+ id="{{name}}"
89
+ {{#if hasColumnWithFilter}}rxap-filter-header-row{{/if~}}
90
+ >
91
+ <!-- region columns -->
92
+ {{#if selectColumn}}
93
+ <!-- region select column -->
94
+ <ng-container matColumnDef="select" sticky>
95
+ <th mat-header-cell rxap-checkbox-header-cell *matHeaderCellDef></th>
96
+ <td
97
+ mat-cell
98
+ rxap-checkbox-cell
99
+ [element]="element"
100
+ *matCellDef="let element"
101
+ ></td>
102
+ </ng-container>
103
+ <!-- endregion -->
104
+ {{/if}}
105
+ {{#if actionList.length}}
106
+ <!-- region actions column -->
107
+ <ng-container matColumnDef="actions" stickyEnd>
108
+ <th mat-header-cell *matHeaderCellDef>
109
+ {{#if selectColumn}}
110
+ <!-- region header actions -->
111
+ <div class="flex flex-row" *rxapSelectedRows="let selected">
112
+ {{#each actionList}}
113
+ {{#if this.inHeader}}
114
+ <button
115
+ rxapTableRowHeaderAction="{{this.type}}"
116
+ mat-icon-button
117
+ {{#if this.color}}color="{{this.color}}"{{/if~}}
118
+ {{#if this.cssClass}}class="{{this.cssClass}}"{{/if~}}
119
+ *ngIf="selected | rxapRowActionCheck:'{{this.type}}'"
120
+ {{#if this.permission}}rxapHasEnablePermission="{{this.permission}}"{{/if~}}
121
+ matTooltip
122
+ >
123
+ {{#if this.icon}}
124
+ <mat-icon>{{this.icon}}</mat-icon>
125
+ {{else if this.svgIcon}}
126
+ <mat-icon svgIcon="{{this.svgIcon}}"></mat-icon>
127
+ {{else}}
128
+ <mat-icon>{{this.type}}</mat-icon>
129
+ {{/if}}
130
+ <mat-progress-bar
131
+ *rxapTableRowActionExecuting
132
+ mode="indeterminate"
133
+ ></mat-progress-bar>
134
+ </button>
135
+ {{/if}}
136
+ {{/each}}
137
+ </div>
138
+ <!-- endregion -->
139
+ {{/if}}
140
+ </th>
141
+
142
+ <td mat-cell *matCellDef="let element">
143
+ <div class="flex flex-row">
144
+ {{#each actionList}}
145
+ <button
146
+ rxapTableRowAction="{{this.type}}"
147
+ [element]="element"
148
+ {{#if this.color}}color="{{this.color}}"{{/if~}}
149
+ {{#if this.cssClass}}class="{{this.cssClass}}"{{/if~}}
150
+ mat-icon-button
151
+ *ngIf="element | rxapRowActionCheck:'{{this.type}}'"
152
+ {{#if this.permission}}rxapHasEnablePermission="{{this.permission}}"{{/if~}}
153
+ matTooltip
154
+ >
155
+ {{#if this.icon}}
156
+ <mat-icon>{{this.icon}}</mat-icon>
157
+ {{else if this.svgIcon}}
158
+ <mat-icon svgIcon="{{this.svgIcon}}"></mat-icon>
159
+ {{else}}
160
+ <mat-icon>{{this.type}}</mat-icon>
161
+ {{/if}}
162
+ <mat-progress-bar
163
+ *rxapTableRowActionExecuting
164
+ mode="indeterminate"
165
+ ></mat-progress-bar>
166
+ </button>
167
+ {{/each}}
168
+ </div>
169
+ </td>
170
+ </ng-container>
171
+ <!-- endregion -->
172
+
173
+ {{/if}}
174
+ {{#each columnList}}
175
+ {{ indent (compile this.handlebars column=this) 10 }}
176
+ {{/each}}
177
+
178
+ <!-- endregion -->
179
+ {{#if hasColumnWithFilter}}
180
+ <!-- region filter columns -->
181
+ {{#if selectColumn}}
182
+ <ng-container matColumnDef="filter_select" sticky>
183
+ <th mat-header-cell *matHeaderCellDef></th>
184
+ </ng-container>
185
+ {{/if}}
186
+ {{#if actionList.length}}
187
+ <ng-container matColumnDef="filter_actions" stickyEnd>
188
+ <th mat-header-cell *matHeaderCellDef></th>
189
+ </ng-container>
190
+ {{/if}}
191
+ {{#each columnList}}
192
+ <ng-container matColumnDef="filter_{{this.name}}">
193
+ <th mat-header-cell *matHeaderCellDef>
194
+ {{#if this.hasFilter}}
195
+ {{ indent (compile this.filterControl.handlebars column=this control=this.filterControl parentControlContainer=true) 14 }}
196
+ {{/if}}
197
+ </th>
198
+ </ng-container>
199
+ {{/each}}
200
+
201
+ <!-- endregion -->
202
+ <tr
203
+ class="rxap-filter-header"
204
+ mat-header-row
205
+ *matHeaderRowDef="rxapTableColumns.displayColumns | toFilterColumnNames"
206
+ ></tr>
207
+ {{/if}}
208
+
209
+ <tr
210
+ mat-header-row
211
+ *matHeaderRowDef="rxapTableColumns.displayColumns"
212
+ ></tr>
213
+
214
+ <tr
215
+ [@rowsAnimation]=""
216
+ mat-row
217
+ [ngClass]="{ 'rxap-row-odd !bg-neutral-200 dark:!bg-neutral-600': odd, 'rxap-row-even': even }"
218
+ class="hover:!bg-neutral-400 dark:hover:!bg-neutral-800"
219
+ *matRowDef="
220
+ let element;
221
+ columns: rxapTableColumns.displayColumns;
222
+ let odd = odd;
223
+ let even = even
224
+ "
225
+ ></tr>
226
+ </table>
227
+ </div>
228
+ </mat-card-content>
229
+
230
+ <mat-card-footer>
231
+ <mat-paginator
232
+ [ngClass]="{ 'hidden': tableDataSourceDirective.hasError$ | async }"
233
+ rxapPersistent
234
+ [pageSizeOptions]="[5,10,25,50,100]"
235
+ [pageSize]="10"
236
+ #paginator="matPaginator"
237
+ ></mat-paginator>
238
+ </mat-card-footer>
239
+ </mat-card>
240
+ </div>
241
+ </div>
@@ -1,16 +1,16 @@
1
1
  import { Rule } from '@angular-devkit/schematics';
2
2
  import { FormDefinitionControl, GetPageOperationProperty } from '@rxap/schematics-ts-morph';
3
+ import { NormalizedDataProperty } from '@rxap/ts-morph';
3
4
  import { Normalized } from '@rxap/utilities';
4
5
  import { NormalizedAngularOptions } from '../../../lib/angular-options';
5
6
  import { NormalizedTableColumn } from '../../../lib/table-column';
6
7
  import { NormalizedTableOptions } from '../../../lib/table-options';
7
- import { NormalizedDataProperty } from '@rxap/ts-morph';
8
8
  import { TableComponentOptions } from './schema';
9
9
  export interface NormalizedTableComponentOptions extends Readonly<Normalized<Omit<TableComponentOptions, keyof NormalizedTableOptions>> & NormalizedTableOptions & NormalizedAngularOptions> {
10
10
  readonly name: string;
11
11
  readonly controllerName: string;
12
12
  }
13
13
  export declare function NormalizeTableComponentOptions(options: Readonly<TableComponentOptions>): NormalizedTableComponentOptions;
14
- export declare function TableColumnListAndPropertyListToGetPageOperationPropertyList(columnList: ReadonlyArray<NormalizedTableColumn>, propertyList: ReadonlyArray<NormalizedDataProperty>): GetPageOperationProperty[];
14
+ export declare function TableColumnListAndPropertyListToGetPageOperationPropertyList(columnList: ReadonlyArray<Pick<NormalizedTableColumn, 'name' | 'type' | 'propertyPath'>>, propertyList?: ReadonlyArray<NormalizedDataProperty>): GetPageOperationProperty[];
15
15
  export declare function TableColumnToFormControl(column: NormalizedTableColumn): FormDefinitionControl;
16
16
  export default function (options: TableComponentOptions): () => Rule;