@acorex/platform-generator 18.0.7 → 18.0.8

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 (55) hide show
  1. package/README.md +11 -11
  2. package/generators.json +9 -9
  3. package/package.json +1 -1
  4. package/src/generators/app-module/files/.eslintrc.json.template +40 -40
  5. package/src/generators/app-module/files/jest.config.ts.template +22 -22
  6. package/src/generators/app-module/files/project.json.template +308 -308
  7. package/src/generators/app-module/files/src/app/app.component.ts.template +10 -10
  8. package/src/generators/app-module/files/src/app/app.module.ts.template +99 -99
  9. package/src/generators/app-module/files/src/app/app.routes.ts.template +13 -13
  10. package/src/generators/app-module/files/src/app/header-interceptor.interceptor.ts.template +33 -33
  11. package/src/generators/app-module/files/src/app/modules/auth/application.loader.ts.template +34 -34
  12. package/src/generators/app-module/files/src/app/modules/auth/auth-root.module.ts.template +52 -52
  13. package/src/generators/app-module/files/src/app/modules/auth/auth.strategy.ts.template +91 -91
  14. package/src/generators/app-module/files/src/app/modules/auth/feature.loader.ts.template +17 -17
  15. package/src/generators/app-module/files/src/app/modules/auth/permission.loader.ts.template +21 -21
  16. package/src/generators/app-module/files/src/app/modules/auth/tenant.loader.ts.template +32 -32
  17. package/src/generators/app-module/files/src/app/modules/common/translation-root.module.ts.template +45 -45
  18. package/src/generators/app-module/files/src/app/modules/layout/entity.loader.ts.template +21 -21
  19. package/src/generators/app-module/files/src/app/modules/layout/layout-root.module.ts.template +79 -79
  20. package/src/generators/app-module/files/src/app/modules/layout/menu.loader.ts.template +159 -159
  21. package/src/generators/app-module/files/src/app/modules/root/home/home.page.html.template +2 -2
  22. package/src/generators/app-module/files/src/app/modules/root/home/home.page.ts.template +9 -9
  23. package/src/generators/app-module/files/src/app/modules/root/root.module.ts.template +32 -32
  24. package/src/generators/app-module/files/src/app/modules/root/sample/sample.entity.ts.template +184 -184
  25. package/src/generators/app-module/files/src/assets/auth-background.svg +6 -6
  26. package/src/generators/app-module/files/src/assets/documents.svg +9 -9
  27. package/src/generators/app-module/files/src/assets/fonts/font-awesome/css/brands.min.css +1457 -1457
  28. package/src/generators/app-module/files/src/assets/fonts/font-awesome/css/fontawesome.min.css +11291 -11291
  29. package/src/generators/app-module/files/src/assets/fonts/font-awesome/css/light.min.css +22 -22
  30. package/src/generators/app-module/files/src/assets/fonts/font-awesome/css/regular.min.css +22 -22
  31. package/src/generators/app-module/files/src/assets/fonts/font-awesome/css/solid.min.css +5 -5
  32. package/src/generators/app-module/files/src/assets/i18n/en/auth.json +49 -49
  33. package/src/generators/app-module/files/src/assets/i18n/en/common.json +179 -179
  34. package/src/generators/app-module/files/src/assets/images/error/error-404.svg +336 -336
  35. package/src/generators/app-module/files/src/assets/images/error/error-offline.svg +133 -133
  36. package/src/generators/app-module/files/src/assets/logos/logo-colored.svg +18 -18
  37. package/src/generators/app-module/files/src/assets/logos/logo-white.svg +17 -17
  38. package/src/generators/app-module/files/src/assets/themes/default/default.scss.template +141 -141
  39. package/src/generators/app-module/files/src/environments/environment.dev.ts.template +19 -19
  40. package/src/generators/app-module/files/src/environments/environment.local.ts.template +19 -19
  41. package/src/generators/app-module/files/src/environments/environment.prod.ts.template +19 -19
  42. package/src/generators/app-module/files/src/environments/environment.test.local.ts.template +19 -19
  43. package/src/generators/app-module/files/src/environments/environment.test.ts.template +19 -19
  44. package/src/generators/app-module/files/src/environments/environment.ts.template +19 -19
  45. package/src/generators/app-module/files/src/index.html.template +34 -34
  46. package/src/generators/app-module/files/src/main.ts.template +6 -6
  47. package/src/generators/app-module/files/src/styles.scss.template +188 -188
  48. package/src/generators/app-module/files/src/test-setup.ts.template +7 -7
  49. package/src/generators/app-module/files/tailwind.config.js.template +18 -18
  50. package/src/generators/app-module/files/tsconfig.app.json.template +10 -10
  51. package/src/generators/app-module/files/tsconfig.editor.json.template +7 -7
  52. package/src/generators/app-module/files/tsconfig.json.template +34 -34
  53. package/src/generators/app-module/files/tsconfig.spec.json.template +11 -11
  54. package/src/generators/app-module/schema.d.ts +4 -4
  55. package/src/generators/app-module/schema.json +27 -27
@@ -1,308 +1,308 @@
1
- {
2
- "name": "<%= name %>",
3
- "$schema": "../../node_modules/nx/schemas/project-schema.json",
4
- "projectType": "application",
5
- "prefix": "acorex-platform",
6
- "sourceRoot": "apps/<%= name %>/src",
7
- "tags": [],
8
- "targets": {
9
- "build": {
10
- "executor": "@angular-devkit/build-angular:browser",
11
- "outputs": [
12
- "{options.outputPath}"
13
- ],
14
- "options": {
15
- "outputPath": "dist/apps/<%= name %>",
16
- "index": "apps/<%= name %>/src/index.html",
17
- "main": "apps/<%= name %>/src/main.ts",
18
- "polyfills": [
19
- "zone.js"
20
- ],
21
- "tsConfig": "apps/<%= name %>/tsconfig.app.json",
22
- "assets": [
23
- "apps/<%= name %>/src/favicon.ico",
24
- "apps/<%= name %>/src/assets"
25
- ],
26
- "styles": [
27
- "apps/<%= name %>/src/styles.scss"
28
- ],
29
- "scripts": []
30
- },
31
- "configurations": {
32
- "build-prod": {
33
- "fileReplacements": [
34
- {
35
- "replace": "apps/<%= name %>/src/environments/environment.ts",
36
- "with": "apps/<%= name %>/src/environments/environment.prod.ts"
37
- }
38
- ],
39
- "budgets": [
40
- {
41
- "type": "initial",
42
- "maximumWarning": "500kb",
43
- "maximumError": "5mb"
44
- },
45
- {
46
- "type": "anyComponentStyle",
47
- "maximumWarning": "200kb",
48
- "maximumError": "400kb"
49
- }
50
- ],
51
- "outputHashing": "all",
52
- "sourceMap": false,
53
- "optimization": true,
54
- "namedChunks": false,
55
- "vendorChunk": true,
56
- "buildOptimizer": true,
57
- "aot": true,
58
- "commonChunk": true,
59
- "extractLicenses": true
60
- },
61
- "build-test": {
62
- "fileReplacements": [
63
- {
64
- "replace": "apps/<%= name %>/src/environments/environment.ts",
65
- "with": "apps/<%= name %>/src/environments/environment.test.ts"
66
- }
67
- ],
68
- "budgets": [
69
- {
70
- "type": "initial",
71
- "maximumWarning": "500kb",
72
- "maximumError": "5mb"
73
- },
74
- {
75
- "type": "anyComponentStyle",
76
- "maximumWarning": "200kb",
77
- "maximumError": "400kb"
78
- }
79
- ],
80
- "outputHashing": "all",
81
- "sourceMap": false,
82
- "optimization": true,
83
- "namedChunks": false,
84
- "vendorChunk": true,
85
- "buildOptimizer": true,
86
- "aot": true,
87
- "commonChunk": true,
88
- "extractLicenses": true
89
- },
90
- "build-dev": {
91
- "fileReplacements": [
92
- {
93
- "replace": "apps/<%= name %>/src/environments/environment.ts",
94
- "with": "apps/<%= name %>/src/environments/environment.dev.ts"
95
- }
96
- ],
97
- "budgets": [
98
- {
99
- "type": "initial",
100
- "maximumWarning": "500kb",
101
- "maximumError": "5mb"
102
- },
103
- {
104
- "type": "anyComponentStyle",
105
- "maximumWarning": "200kb",
106
- "maximumError": "400kb"
107
- }
108
- ],
109
- "outputHashing": "all",
110
- "sourceMap": false,
111
- "optimization": true,
112
- "namedChunks": false,
113
- "vendorChunk": true,
114
- "buildOptimizer": true,
115
- "aot": true,
116
- "commonChunk": true,
117
- "extractLicenses": true
118
- },
119
- "serve-prod": {
120
- "fileReplacements": [
121
- {
122
- "replace": "apps/<%= name %>/src/environments/environment.ts",
123
- "with": "apps/<%= name %>/src/environments/environment.prod.ts"
124
- }
125
- ],
126
- "budgets": [
127
- {
128
- "type": "initial",
129
- "maximumWarning": "500kb",
130
- "maximumError": "8mb"
131
- },
132
- {
133
- "type": "anyComponentStyle",
134
- "maximumWarning": "200kb",
135
- "maximumError": "400kb"
136
- }
137
- ],
138
- "buildOptimizer": false,
139
- "optimization": false,
140
- "vendorChunk": true,
141
- "extractLicenses": false,
142
- "sourceMap": true,
143
- "namedChunks": true
144
- },
145
- "serve-test": {
146
- "fileReplacements": [
147
- {
148
- "replace": "apps/<%= name %>/src/environments/environment.ts",
149
- "with": "apps/<%= name %>/src/environments/environment.test.ts"
150
- }
151
- ],
152
- "budgets": [
153
- {
154
- "type": "initial",
155
- "maximumWarning": "500kb",
156
- "maximumError": "8mb"
157
- },
158
- {
159
- "type": "anyComponentStyle",
160
- "maximumWarning": "200kb",
161
- "maximumError": "400kb"
162
- }
163
- ],
164
- "buildOptimizer": false,
165
- "optimization": false,
166
- "vendorChunk": true,
167
- "extractLicenses": false,
168
- "sourceMap": true,
169
- "namedChunks": true
170
- },
171
- "serve-dev": {
172
- "fileReplacements": [
173
- {
174
- "replace": "apps/<%= name %>/src/environments/environment.ts",
175
- "with": "apps/<%= name %>/src/environments/environment.dev.ts"
176
- }
177
- ],
178
- "budgets": [
179
- {
180
- "type": "initial",
181
- "maximumWarning": "500kb",
182
- "maximumError": "8mb"
183
- },
184
- {
185
- "type": "anyComponentStyle",
186
- "maximumWarning": "200kb",
187
- "maximumError": "400kb"
188
- }
189
- ],
190
- "buildOptimizer": false,
191
- "optimization": false,
192
- "vendorChunk": true,
193
- "extractLicenses": false,
194
- "sourceMap": true,
195
- "namedChunks": true
196
- },
197
- "serve-local": {
198
- "fileReplacements": [
199
- {
200
- "replace": "apps/<%= name %>/src/environments/environment.ts",
201
- "with": "apps/<%= name %>/src/environments/environment.local.ts"
202
- }
203
- ],
204
- "budgets": [
205
- {
206
- "type": "initial",
207
- "maximumWarning": "500kb",
208
- "maximumError": "8mb"
209
- },
210
- {
211
- "type": "anyComponentStyle",
212
- "maximumWarning": "200kb",
213
- "maximumError": "400kb"
214
- }
215
- ],
216
- "buildOptimizer": false,
217
- "optimization": false,
218
- "vendorChunk": true,
219
- "extractLicenses": false,
220
- "sourceMap": true,
221
- "namedChunks": true
222
- },
223
- "serve-test-local": {
224
- "fileReplacements": [
225
- {
226
- "replace": "apps/<%= name %>/src/environments/environment.ts",
227
- "with": "apps/<%= name %>/src/environments/environment.test.local.ts"
228
- }
229
- ],
230
- "budgets": [
231
- {
232
- "type": "initial",
233
- "maximumWarning": "500kb",
234
- "maximumError": "8mb"
235
- },
236
- {
237
- "type": "anyComponentStyle",
238
- "maximumWarning": "200kb",
239
- "maximumError": "400kb"
240
- }
241
- ],
242
- "buildOptimizer": false,
243
- "optimization": false,
244
- "vendorChunk": true,
245
- "extractLicenses": false,
246
- "sourceMap": true,
247
- "namedChunks": true
248
- }
249
- },
250
- "defaultConfiguration": "serve:prod"
251
- },
252
- "serve": {
253
- "executor": "@angular-devkit/build-angular:dev-server",
254
- "configurations": {
255
- "serve-prod": {
256
- "browserTarget": "<%= name %>:build:serve-prod"
257
- },
258
- "serve-test": {
259
- "browserTarget": "<%= name %>:build:serve-test"
260
- },
261
- "serve-dev": {
262
- "browserTarget": "<%= name %>:build:serve-dev"
263
- },
264
- "serve-local": {
265
- "browserTarget": "<%= name %>:build:serve-local"
266
- },
267
- "serve-test-local": {
268
- "browserTarget": "<%= name %>:build:serve-test-local"
269
- }
270
- },
271
- "defaultConfiguration": "development"
272
- },
273
- "extract-i18n": {
274
- "executor": "@angular-devkit/build-angular:extract-i18n",
275
- "options": {
276
- "browserTarget": "<%= name %>:build"
277
- }
278
- },
279
- "lint": {
280
- "executor": "@nx/linter:eslint",
281
- "outputs": [
282
- "{options.outputFile}"
283
- ],
284
- "options": {
285
- "lintFilePatterns": [
286
- "apps/<%= name %>/**/*.ts",
287
- "apps/<%= name %>/**/*.html"
288
- ]
289
- }
290
- },
291
- "test": {
292
- "executor": "@nx/jest:jest",
293
- "outputs": [
294
- "{workspaceRoot}/coverage/{projectRoot}"
295
- ],
296
- "options": {
297
- "jestConfig": "apps/<%= name %>/jest.config.ts",
298
- "passWithNoTests": true
299
- },
300
- "configurations": {
301
- "ci": {
302
- "ci": true,
303
- "codeCoverage": true
304
- }
305
- }
306
- }
307
- }
308
- }
1
+ {
2
+ "name": "<%= name %>",
3
+ "$schema": "../../node_modules/nx/schemas/project-schema.json",
4
+ "projectType": "application",
5
+ "prefix": "acorex-platform",
6
+ "sourceRoot": "apps/<%= name %>/src",
7
+ "tags": [],
8
+ "targets": {
9
+ "build": {
10
+ "executor": "@angular-devkit/build-angular:browser",
11
+ "outputs": [
12
+ "{options.outputPath}"
13
+ ],
14
+ "options": {
15
+ "outputPath": "dist/apps/<%= name %>",
16
+ "index": "apps/<%= name %>/src/index.html",
17
+ "main": "apps/<%= name %>/src/main.ts",
18
+ "polyfills": [
19
+ "zone.js"
20
+ ],
21
+ "tsConfig": "apps/<%= name %>/tsconfig.app.json",
22
+ "assets": [
23
+ "apps/<%= name %>/src/favicon.ico",
24
+ "apps/<%= name %>/src/assets"
25
+ ],
26
+ "styles": [
27
+ "apps/<%= name %>/src/styles.scss"
28
+ ],
29
+ "scripts": []
30
+ },
31
+ "configurations": {
32
+ "build-prod": {
33
+ "fileReplacements": [
34
+ {
35
+ "replace": "apps/<%= name %>/src/environments/environment.ts",
36
+ "with": "apps/<%= name %>/src/environments/environment.prod.ts"
37
+ }
38
+ ],
39
+ "budgets": [
40
+ {
41
+ "type": "initial",
42
+ "maximumWarning": "500kb",
43
+ "maximumError": "5mb"
44
+ },
45
+ {
46
+ "type": "anyComponentStyle",
47
+ "maximumWarning": "200kb",
48
+ "maximumError": "400kb"
49
+ }
50
+ ],
51
+ "outputHashing": "all",
52
+ "sourceMap": false,
53
+ "optimization": true,
54
+ "namedChunks": false,
55
+ "vendorChunk": true,
56
+ "buildOptimizer": true,
57
+ "aot": true,
58
+ "commonChunk": true,
59
+ "extractLicenses": true
60
+ },
61
+ "build-test": {
62
+ "fileReplacements": [
63
+ {
64
+ "replace": "apps/<%= name %>/src/environments/environment.ts",
65
+ "with": "apps/<%= name %>/src/environments/environment.test.ts"
66
+ }
67
+ ],
68
+ "budgets": [
69
+ {
70
+ "type": "initial",
71
+ "maximumWarning": "500kb",
72
+ "maximumError": "5mb"
73
+ },
74
+ {
75
+ "type": "anyComponentStyle",
76
+ "maximumWarning": "200kb",
77
+ "maximumError": "400kb"
78
+ }
79
+ ],
80
+ "outputHashing": "all",
81
+ "sourceMap": false,
82
+ "optimization": true,
83
+ "namedChunks": false,
84
+ "vendorChunk": true,
85
+ "buildOptimizer": true,
86
+ "aot": true,
87
+ "commonChunk": true,
88
+ "extractLicenses": true
89
+ },
90
+ "build-dev": {
91
+ "fileReplacements": [
92
+ {
93
+ "replace": "apps/<%= name %>/src/environments/environment.ts",
94
+ "with": "apps/<%= name %>/src/environments/environment.dev.ts"
95
+ }
96
+ ],
97
+ "budgets": [
98
+ {
99
+ "type": "initial",
100
+ "maximumWarning": "500kb",
101
+ "maximumError": "5mb"
102
+ },
103
+ {
104
+ "type": "anyComponentStyle",
105
+ "maximumWarning": "200kb",
106
+ "maximumError": "400kb"
107
+ }
108
+ ],
109
+ "outputHashing": "all",
110
+ "sourceMap": false,
111
+ "optimization": true,
112
+ "namedChunks": false,
113
+ "vendorChunk": true,
114
+ "buildOptimizer": true,
115
+ "aot": true,
116
+ "commonChunk": true,
117
+ "extractLicenses": true
118
+ },
119
+ "serve-prod": {
120
+ "fileReplacements": [
121
+ {
122
+ "replace": "apps/<%= name %>/src/environments/environment.ts",
123
+ "with": "apps/<%= name %>/src/environments/environment.prod.ts"
124
+ }
125
+ ],
126
+ "budgets": [
127
+ {
128
+ "type": "initial",
129
+ "maximumWarning": "500kb",
130
+ "maximumError": "8mb"
131
+ },
132
+ {
133
+ "type": "anyComponentStyle",
134
+ "maximumWarning": "200kb",
135
+ "maximumError": "400kb"
136
+ }
137
+ ],
138
+ "buildOptimizer": false,
139
+ "optimization": false,
140
+ "vendorChunk": true,
141
+ "extractLicenses": false,
142
+ "sourceMap": true,
143
+ "namedChunks": true
144
+ },
145
+ "serve-test": {
146
+ "fileReplacements": [
147
+ {
148
+ "replace": "apps/<%= name %>/src/environments/environment.ts",
149
+ "with": "apps/<%= name %>/src/environments/environment.test.ts"
150
+ }
151
+ ],
152
+ "budgets": [
153
+ {
154
+ "type": "initial",
155
+ "maximumWarning": "500kb",
156
+ "maximumError": "8mb"
157
+ },
158
+ {
159
+ "type": "anyComponentStyle",
160
+ "maximumWarning": "200kb",
161
+ "maximumError": "400kb"
162
+ }
163
+ ],
164
+ "buildOptimizer": false,
165
+ "optimization": false,
166
+ "vendorChunk": true,
167
+ "extractLicenses": false,
168
+ "sourceMap": true,
169
+ "namedChunks": true
170
+ },
171
+ "serve-dev": {
172
+ "fileReplacements": [
173
+ {
174
+ "replace": "apps/<%= name %>/src/environments/environment.ts",
175
+ "with": "apps/<%= name %>/src/environments/environment.dev.ts"
176
+ }
177
+ ],
178
+ "budgets": [
179
+ {
180
+ "type": "initial",
181
+ "maximumWarning": "500kb",
182
+ "maximumError": "8mb"
183
+ },
184
+ {
185
+ "type": "anyComponentStyle",
186
+ "maximumWarning": "200kb",
187
+ "maximumError": "400kb"
188
+ }
189
+ ],
190
+ "buildOptimizer": false,
191
+ "optimization": false,
192
+ "vendorChunk": true,
193
+ "extractLicenses": false,
194
+ "sourceMap": true,
195
+ "namedChunks": true
196
+ },
197
+ "serve-local": {
198
+ "fileReplacements": [
199
+ {
200
+ "replace": "apps/<%= name %>/src/environments/environment.ts",
201
+ "with": "apps/<%= name %>/src/environments/environment.local.ts"
202
+ }
203
+ ],
204
+ "budgets": [
205
+ {
206
+ "type": "initial",
207
+ "maximumWarning": "500kb",
208
+ "maximumError": "8mb"
209
+ },
210
+ {
211
+ "type": "anyComponentStyle",
212
+ "maximumWarning": "200kb",
213
+ "maximumError": "400kb"
214
+ }
215
+ ],
216
+ "buildOptimizer": false,
217
+ "optimization": false,
218
+ "vendorChunk": true,
219
+ "extractLicenses": false,
220
+ "sourceMap": true,
221
+ "namedChunks": true
222
+ },
223
+ "serve-test-local": {
224
+ "fileReplacements": [
225
+ {
226
+ "replace": "apps/<%= name %>/src/environments/environment.ts",
227
+ "with": "apps/<%= name %>/src/environments/environment.test.local.ts"
228
+ }
229
+ ],
230
+ "budgets": [
231
+ {
232
+ "type": "initial",
233
+ "maximumWarning": "500kb",
234
+ "maximumError": "8mb"
235
+ },
236
+ {
237
+ "type": "anyComponentStyle",
238
+ "maximumWarning": "200kb",
239
+ "maximumError": "400kb"
240
+ }
241
+ ],
242
+ "buildOptimizer": false,
243
+ "optimization": false,
244
+ "vendorChunk": true,
245
+ "extractLicenses": false,
246
+ "sourceMap": true,
247
+ "namedChunks": true
248
+ }
249
+ },
250
+ "defaultConfiguration": "serve:prod"
251
+ },
252
+ "serve": {
253
+ "executor": "@angular-devkit/build-angular:dev-server",
254
+ "configurations": {
255
+ "serve-prod": {
256
+ "browserTarget": "<%= name %>:build:serve-prod"
257
+ },
258
+ "serve-test": {
259
+ "browserTarget": "<%= name %>:build:serve-test"
260
+ },
261
+ "serve-dev": {
262
+ "browserTarget": "<%= name %>:build:serve-dev"
263
+ },
264
+ "serve-local": {
265
+ "browserTarget": "<%= name %>:build:serve-local"
266
+ },
267
+ "serve-test-local": {
268
+ "browserTarget": "<%= name %>:build:serve-test-local"
269
+ }
270
+ },
271
+ "defaultConfiguration": "development"
272
+ },
273
+ "extract-i18n": {
274
+ "executor": "@angular-devkit/build-angular:extract-i18n",
275
+ "options": {
276
+ "browserTarget": "<%= name %>:build"
277
+ }
278
+ },
279
+ "lint": {
280
+ "executor": "@nx/linter:eslint",
281
+ "outputs": [
282
+ "{options.outputFile}"
283
+ ],
284
+ "options": {
285
+ "lintFilePatterns": [
286
+ "apps/<%= name %>/**/*.ts",
287
+ "apps/<%= name %>/**/*.html"
288
+ ]
289
+ }
290
+ },
291
+ "test": {
292
+ "executor": "@nx/jest:jest",
293
+ "outputs": [
294
+ "{workspaceRoot}/coverage/{projectRoot}"
295
+ ],
296
+ "options": {
297
+ "jestConfig": "apps/<%= name %>/jest.config.ts",
298
+ "passWithNoTests": true
299
+ },
300
+ "configurations": {
301
+ "ci": {
302
+ "ci": true,
303
+ "codeCoverage": true
304
+ }
305
+ }
306
+ }
307
+ }
308
+ }
@@ -1,10 +1,10 @@
1
- import { Component } from '@angular/core';
2
-
3
- @Component({
4
- selector: 'acorex-platform-root',
5
- template: `
6
- <router-outlet></router-outlet>
7
- `,
8
- })
9
- export class AppComponent {
10
- }
1
+ import { Component } from '@angular/core';
2
+
3
+ @Component({
4
+ selector: 'acorex-platform-root',
5
+ template: `
6
+ <router-outlet></router-outlet>
7
+ `,
8
+ })
9
+ export class AppComponent {
10
+ }