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

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