generator-jhipster 8.0.0 → 8.1.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 (258) hide show
  1. package/README.md +61 -57
  2. package/dist/cli/environment-builder.mjs +11 -4
  3. package/dist/cli/program.mjs +1 -1
  4. package/dist/generators/angular/cleanup.mjs +7 -0
  5. package/dist/generators/angular/files-angular.mjs +3 -4
  6. package/dist/generators/angular/generator.mjs +2 -15
  7. package/dist/generators/angular/needle-api/needle-client-angular.mjs +2 -8
  8. package/dist/generators/angular/resources/package.json +23 -23
  9. package/dist/generators/angular/support/translate-angular.mjs +2 -2
  10. package/dist/generators/angular/templates/README.md.jhi.client.angular.ejs +1 -1
  11. package/dist/generators/angular/templates/angular.json.ejs +3 -7
  12. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.html.ejs +6 -4
  13. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.ts.ejs +1 -1
  14. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.html.ejs +39 -33
  15. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +44 -36
  16. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +24 -23
  17. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.html.ejs +74 -62
  18. package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.html.ejs +12 -4
  19. package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.html.ejs +54 -48
  20. package/dist/generators/angular/templates/src/main/webapp/app/admin/admin.routes.ts.ejs +74 -0
  21. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +15 -5
  22. package/dist/generators/angular/templates/src/main/webapp/app/admin/docs/docs.component.ts.ejs +1 -1
  23. package/dist/generators/angular/templates/src/main/webapp/app/admin/gateway/gateway.component.html.ejs +20 -7
  24. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.component.html.ejs +10 -7
  25. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.html.ejs +9 -3
  26. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.html.ejs +12 -4
  27. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +13 -7
  28. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html.ejs +6 -2
  29. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html.ejs +3 -1
  30. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.html.ejs +13 -9
  31. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +13 -5
  32. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +21 -7
  33. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html.ejs +6 -2
  34. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.html.ejs +3 -1
  35. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +16 -7
  36. package/dist/generators/angular/templates/src/main/webapp/app/admin/tracker/tracker.component.html.ejs +3 -1
  37. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +3 -1
  38. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html.ejs +11 -4
  39. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +20 -11
  40. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +48 -34
  41. package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +73 -0
  42. package/dist/generators/angular/templates/src/main/webapp/app/app.config.ts.ejs +67 -0
  43. package/dist/generators/angular/templates/src/main/webapp/app/app.routes.ts.ejs +85 -0
  44. package/dist/generators/angular/templates/src/main/webapp/app/core/microfrontend/index.ts.ejs +5 -4
  45. package/dist/generators/angular/templates/src/main/webapp/app/core/util/alert.service.spec.ts.ejs +1 -1
  46. package/dist/generators/angular/templates/src/main/webapp/app/core/util/data-util.service.ts.ejs +2 -2
  47. package/dist/generators/angular/templates/src/main/webapp/app/core/util/event-manager.service.spec.ts.ejs +12 -12
  48. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.model.ts.ejs +4 -4
  49. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +3 -1
  50. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.html.ejs +26 -14
  51. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +38 -25
  52. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.ts.ejs +1 -1
  53. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-form.service.spec.ts.ejs +2 -2
  54. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-form.service.ts.ejs +5 -12
  55. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.html.ejs +55 -21
  56. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +2 -2
  57. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.ts.ejs +10 -10
  58. package/dist/generators/angular/templates/src/main/webapp/app/entities/entity.routes.ts.ejs +25 -0
  59. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.html.ejs +21 -17
  60. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.ts.ejs +1 -1
  61. package/dist/generators/angular/templates/src/main/webapp/app/layouts/error/error.component.html.ejs +3 -3
  62. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +5 -2
  63. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.ts.ejs +5 -1
  64. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +97 -78
  65. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +1 -1
  66. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.scss.ejs +1 -1
  67. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +6 -4
  68. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.html.ejs +3 -3
  69. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.html.ejs +6 -2
  70. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert.component.html.ejs +6 -2
  71. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +11 -7
  72. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.model.spec.ts.ejs +1 -1
  73. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.spec.ts.ejs +3 -3
  74. package/dist/generators/angular/templates/src/main/webapp/bootstrap.ts.ejs +5 -5
  75. package/dist/generators/angular/templates/src/main/webapp/content/scss/global.scss.ejs +1 -1
  76. package/dist/generators/angular/templates/webpack/webpack.microfrontend.js.ejs +2 -2
  77. package/dist/generators/app/README.md +108 -0
  78. package/dist/generators/app/USAGE +3 -0
  79. package/dist/generators/app/command.mjs +3 -3
  80. package/dist/generators/app/generator.mjs +11 -0
  81. package/dist/generators/base/command.mjs +0 -11
  82. package/dist/generators/base-application/generator.mjs +5 -6
  83. package/dist/generators/base-application/support/entities.mjs +2 -2
  84. package/dist/generators/base-application/support/index.mjs +1 -0
  85. package/dist/generators/base-application/support/prepare-entity.mjs +0 -1
  86. package/dist/generators/base-application/support/prepare-relationship.mjs +4 -0
  87. package/dist/generators/base-application/support/update-application-entities-transform.mjs +52 -0
  88. package/dist/generators/base-core/generator.mjs +17 -4
  89. package/dist/generators/base-entity-changes/generator.mjs +1 -1
  90. package/dist/generators/bootstrap/command.mjs +6 -0
  91. package/dist/generators/bootstrap/generator.mjs +27 -9
  92. package/dist/generators/bootstrap-application/generator.mjs +1 -19
  93. package/dist/generators/bootstrap-application-base/command.mjs +30 -0
  94. package/dist/generators/bootstrap-application-base/generator.mjs +27 -5
  95. package/dist/generators/bootstrap-application-base/index.mjs +1 -0
  96. package/dist/generators/bootstrap-application-base/support/export-jdl-transform.mjs +61 -0
  97. package/dist/generators/bootstrap-application-base/support/import-jdl-transform.mjs +64 -0
  98. package/dist/generators/bootstrap-application-base/support/index.mjs +2 -0
  99. package/dist/generators/client/command.mjs +2 -0
  100. package/dist/generators/client/resources/package.json +4 -4
  101. package/dist/generators/client/support/entity-definition.mjs +3 -3
  102. package/dist/generators/client/templates/README.md.jhi.client.ejs +2 -2
  103. package/dist/generators/client/templates/src/main/webapp/index.html.ejs +2 -2
  104. package/dist/generators/common/command.mjs +2 -0
  105. package/dist/generators/common/resources/package.json +3 -3
  106. package/dist/generators/common/templates/sonar-project.properties.ejs +1 -1
  107. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/entity/_entity_.cy.ts.ejs +0 -1
  108. package/dist/generators/docker/generator.mjs +1 -1
  109. package/dist/generators/docker/templates/docker/cassandra.yml.ejs +2 -2
  110. package/dist/generators/docker/templates/docker/keycloak.yml.ejs +1 -1
  111. package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +4 -1
  112. package/dist/generators/docker-compose/generator.mjs +4 -11
  113. package/dist/generators/docker-compose/templates/docker-compose.yml.ejs +1 -1
  114. package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +4 -1
  115. package/dist/generators/export-jdl/generator.mjs +1 -1
  116. package/dist/generators/feign-client/cleanup.mjs +12 -0
  117. package/dist/generators/feign-client/files.mjs +35 -0
  118. package/dist/generators/feign-client/generator.mjs +65 -0
  119. package/dist/generators/feign-client/index.mjs +19 -0
  120. package/dist/generators/feign-client/templates/src/main/java/_package_/client/AuthorizationHeaderUtil.java.ejs +174 -0
  121. package/dist/generators/feign-client/templates/src/main/java/_package_/client/AuthorizedFeignClient.java.ejs +72 -0
  122. package/dist/generators/feign-client/templates/src/main/java/_package_/client/OAuth2InterceptedFeignConfiguration.java.ejs +35 -0
  123. package/dist/generators/feign-client/templates/src/main/java/_package_/client/OAuthIdpTokenResponseDTO.java.ejs +161 -0
  124. package/dist/generators/feign-client/templates/src/main/java/_package_/client/TokenRelayRequestInterceptor.java.ejs +42 -0
  125. package/dist/generators/feign-client/templates/src/main/java/_package_/client/UserFeignClientInterceptor_jwt.java.ejs +36 -0
  126. package/dist/generators/feign-client/templates/src/main/java/_package_/config/FeignConfiguration.java.ejs +45 -0
  127. package/dist/generators/feign-client/templates/src/test/java/_package_/client/AuthorizationHeaderUtilTest.java.ejs +263 -0
  128. package/dist/generators/generate-blueprint/command.mjs +1 -1
  129. package/dist/generators/generate-blueprint/resources/package.json +1 -1
  130. package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +1 -1
  131. package/dist/generators/generator-constants.mjs +9 -5
  132. package/dist/generators/generator-list.mjs +1 -0
  133. package/dist/generators/git/generator.mjs +3 -5
  134. package/dist/generators/gradle/constants.mjs +1 -1
  135. package/dist/generators/java/command.mjs +6 -0
  136. package/dist/generators/java/entity-files.mjs +4 -0
  137. package/dist/generators/java/generator.mjs +3 -2
  138. package/dist/generators/java/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.jackson_identity_info.ejs +30 -0
  139. package/dist/generators/jdl/generator.mjs +18 -23
  140. package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +4 -1
  141. package/dist/generators/kubernetes/templates/keycloak/keycloak.yml.ejs +1 -1
  142. package/dist/generators/languages/generator.mjs +24 -15
  143. package/dist/generators/languages/prompts.mjs +3 -1
  144. package/dist/generators/languages/support/translate.mjs +1 -1
  145. package/dist/generators/languages/templates/entity/i18n/entity_pt-br.json.ejs +1 -1
  146. package/dist/generators/liquibase/README.md +19 -0
  147. package/dist/generators/project-name/generator.mjs +14 -19
  148. package/dist/generators/project-name/support/name-resolver.mjs +35 -6
  149. package/dist/generators/react/resources/package.json +24 -24
  150. package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.spec.ts.ejs +4 -4
  151. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-detail.tsx.ejs +1 -2
  152. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.tsx.ejs +12 -13
  153. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.tsx.ejs +3 -8
  154. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityModel_.model.ts.ejs +1 -1
  155. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header.scss.ejs +1 -1
  156. package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +1 -1
  157. package/dist/generators/react/templates/src/main/webapp/app/shared/util/date-utils.ts.ejs +1 -1
  158. package/dist/generators/server/cleanup.mjs +5 -0
  159. package/dist/generators/server/command.mjs +13 -2
  160. package/dist/generators/server/entity-files.mjs +3 -3
  161. package/dist/generators/server/files.mjs +2 -38
  162. package/dist/generators/server/generator.mjs +35 -19
  163. package/dist/generators/server/jdl/application-definition.mjs +5 -2
  164. package/dist/generators/server/options/feign-client.mjs +24 -0
  165. package/dist/generators/server/options/index.mjs +1 -0
  166. package/dist/generators/server/resources/Dockerfile +16 -16
  167. package/dist/generators/server/resources/gradle/libs.versions.toml +4 -4
  168. package/dist/generators/server/resources/pom.xml +11 -11
  169. package/dist/generators/server/support/config.mjs +1 -0
  170. package/dist/generators/server/support/prepare-entity.mjs +4 -1
  171. package/dist/generators/server/templates/build.gradle.ejs +1 -2
  172. package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +3 -21
  173. package/dist/generators/server/templates/gradle/profile_prod.gradle.ejs +5 -15
  174. package/dist/generators/server/templates/pom.xml.ejs +1 -4
  175. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/_partials_entity_/get_all_template.ejs +7 -7
  176. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/_partials_entity_/search_template.ejs +4 -4
  177. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/repository/_entityClass_Repository.java.ejs +1 -1
  178. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/service/mapper/_entityClass_Mapper.java.ejs +2 -2
  179. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/web/rest/_entityClass_Resource.java.ejs +3 -3
  180. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +20 -2
  181. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +4 -1
  182. package/dist/generators/server/templates/src/main/java/_package_/security/oauth2/CustomClaimConverter.java.ejs +1 -5
  183. package/dist/generators/server/templates/src/main/java/_package_/service/MailService.java.ejs +48 -12
  184. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource.java.ejs +1 -1
  185. package/dist/generators/server/templates/src/main/java/_package_/web/rest/LogoutResource_imperative.java.ejs +4 -13
  186. package/dist/generators/server/templates/src/main/java/_package_/web/rest/LogoutResource_reactive.java.ejs +5 -11
  187. package/dist/generators/server/templates/src/main/java/_package_/web/rest/PublicUserResource.java.ejs +3 -3
  188. package/dist/generators/server/templates/src/main/java/_package_/web/rest/UserResource.java.ejs +6 -6
  189. package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +8 -7
  190. package/dist/generators/server/templates/src/test/java/_package_/TechnicalStructureTest.java.ejs +1 -1
  191. package/dist/generators/server/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +8 -8
  192. package/dist/generators/server/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorTestController.java.ejs +2 -2
  193. package/dist/generators/spring-cache/internal/dependencies.mjs +1 -1
  194. package/dist/generators/spring-cache/templates/gradle/cache.gradle.ejs +1 -1
  195. package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheFactoryConfiguration.java.ejs +1 -1
  196. package/dist/generators/spring-cloud-stream/templates/src/main/java/_package_/web/rest/KafkaResource_imperative.java.ejs +1 -1
  197. package/dist/generators/spring-cloud-stream/templates/src/main/java/_package_/web/rest/KafkaResource_reactive.java.ejs +1 -1
  198. package/dist/generators/spring-cloud-stream/templates/src/test/java/_package_/web/rest/KafkaResourceIT_reactive.java.ejs +3 -0
  199. package/dist/generators/spring-data-elasticsearch/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.elastic_search.ejs +1 -1
  200. package/dist/generators/spring-data-elasticsearch/templates/src/main/java/_package_/_entityPackage_/repository/search/_entityClass_SearchRepository.java.ejs +1 -1
  201. package/dist/generators/spring-data-elasticsearch/templates/src/main/java/_package_/repository/search/UserSearchRepository.java.ejs +4 -4
  202. package/dist/generators/spring-data-neo4j/generator.mjs +43 -1
  203. package/dist/generators/spring-data-neo4j/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.spring_data_neo4j.ejs +1 -1
  204. package/dist/generators/spring-data-relational/README.md +7 -0
  205. package/dist/generators/spring-data-relational/generator.mjs +2 -1
  206. package/dist/generators/spring-data-relational/internal/dependencies.mjs +29 -8
  207. package/dist/generators/spring-data-relational/support/database-data.mjs +4 -0
  208. package/dist/generators/spring-data-relational/templates/src/main/java/_package_/repository/EntityManager_reactive.java.ejs +49 -8
  209. package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +1 -1
  210. package/dist/generators/upgrade/generator.mjs +3 -3
  211. package/dist/generators/vue/resources/package.json +21 -21
  212. package/dist/generators/vue/templates/package.json.ejs +1 -0
  213. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-details.vue.ejs +1 -2
  214. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.component.spec.ts.ejs +1 -1
  215. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.component.ts.ejs +3 -3
  216. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.vue.ejs +2 -15
  217. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.vue.ejs +2 -7
  218. package/dist/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.js +1 -0
  219. package/dist/jdl/converters/json-to-jdl-converter.js +1 -1
  220. package/dist/jdl/converters/json-to-jdl-entity-converter.js +1 -0
  221. package/dist/jdl/converters/parsed-jdl-to-jdl-object/entity-converter.js +5 -0
  222. package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +0 -27
  223. package/dist/jdl/exporters/jhipster-entity-exporter.js +3 -2
  224. package/dist/jdl/jhipster/default-application-options.js +1 -1
  225. package/dist/jdl/jhipster/field-types.js +1 -1
  226. package/dist/jdl/jhipster/json-entity.js +6 -0
  227. package/dist/jdl/models/jdl-entity.js +16 -1
  228. package/dist/jdl/models/jdl-field.js +13 -0
  229. package/dist/jdl/models/jdl-object.js +3 -3
  230. package/dist/jdl/models/jdl-relationship.js +23 -5
  231. package/dist/jdl/parsing/lexer/application-tokens.js +1 -1
  232. package/dist/testing/helpers.mjs +10 -3
  233. package/dist/types/cli/environment-builder.d.mts +2 -0
  234. package/dist/types/generators/angular/needle-api/needle-client-angular.d.mts +0 -1
  235. package/dist/types/generators/base/api.d.mts +12 -0
  236. package/dist/types/generators/base/support/needles.d.mts +1 -1
  237. package/dist/types/generators/base-application/generator.d.mts +2 -2
  238. package/dist/types/generators/base-application/support/index.d.mts +1 -0
  239. package/dist/types/generators/base-application/support/update-application-entities-transform.d.mts +4 -0
  240. package/dist/types/generators/base-application/types/relationship.d.mts +4 -0
  241. package/dist/types/generators/base-core/generator.d.mts +7 -1
  242. package/dist/types/generators/bootstrap-application-base/support/export-jdl-transform.d.mts +8 -0
  243. package/dist/types/generators/bootstrap-application-base/support/import-jdl-transform.d.mts +6 -0
  244. package/dist/types/generators/bootstrap-application-base/support/index.d.mts +2 -0
  245. package/dist/types/generators/client/support/entity-definition.d.mts +2 -2
  246. package/dist/types/generators/feign-client/types-export.d.ts +1 -0
  247. package/dist/types/generators/generator-constants.d.mts +52 -48
  248. package/dist/types/generators/generator-list.d.mts +1 -0
  249. package/dist/types/generators/project-name/support/name-resolver.d.mts +9 -1
  250. package/dist/types/generators/server/options/feign-client.d.mts +21 -0
  251. package/dist/types/generators/server/options/index.d.mts +1 -0
  252. package/dist/types/jdl/converters/json-to-jdl-converter.d.ts +1 -0
  253. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/option-converter.d.ts +1 -1
  254. package/dist/types/jdl/jhipster/json-entity.d.ts +2 -0
  255. package/dist/types/jdl/models/jdl-entity.d.ts +1 -0
  256. package/dist/types/jdl/models/jdl-relationship.d.ts +0 -18
  257. package/dist/types/jdl/types/types.d.mts +2 -2
  258. package/package.json +27 -27
@@ -20,7 +20,8 @@
20
20
 
21
21
  <div class="row">
22
22
  <div class="col-md-4">
23
- <div *ngIf="garbageCollectorMetrics">
23
+ @if (garbageCollectorMetrics) {
24
+ <div>
24
25
  <span>
25
26
  GC Live Data Size/GC Max Data Size ({{ garbageCollectorMetrics['jvm.gc.live.data.size'] / 1048576 | number: '1.0-0' }}M /
26
27
  {{ garbageCollectorMetrics['jvm.gc.max.data.size'] / 1048576 | number: '1.0-0' }}M)
@@ -40,10 +41,12 @@
40
41
  </span>
41
42
  </ngb-progressbar>
42
43
  </div>
44
+ }
43
45
  </div>
44
46
 
45
47
  <div class="col-md-4">
46
- <div *ngIf="garbageCollectorMetrics">
48
+ @if (garbageCollectorMetrics) {
49
+ <div>
47
50
  <span>
48
51
  GC Memory Promoted/GC Memory Allocated ({{ garbageCollectorMetrics['jvm.gc.memory.promoted'] / 1048576 | number: '1.0-0' }}M /
49
52
  {{ garbageCollectorMetrics['jvm.gc.memory.allocated'] / 1048576 | number: '1.0-0' }}M)
@@ -64,20 +67,24 @@
64
67
  </span>
65
68
  </ngb-progressbar>
66
69
  </div>
70
+ }
67
71
  </div>
68
72
 
69
73
  <div id="garbageCollectorMetrics" class="col-md-4">
70
- <div class="row" *ngIf="garbageCollectorMetrics">
74
+ @if (garbageCollectorMetrics) {
75
+ <div class="row">
71
76
  <div class="col-md-9">Classes loaded</div>
72
77
  <div class="col-md-3 text-end">{{ garbageCollectorMetrics.classesLoaded }}</div>
73
78
  </div>
74
- <div class="row" *ngIf="garbageCollectorMetrics">
79
+ <div class="row">
75
80
  <div class="col-md-9">Classes unloaded</div>
76
81
  <div class="col-md-3 text-end">{{ garbageCollectorMetrics.classesUnloaded }}</div>
77
82
  </div>
83
+ }
78
84
  </div>
79
85
 
80
- <div class="table-responsive" *ngIf="!updating && garbageCollectorMetrics">
86
+ @if (!updating && garbageCollectorMetrics) {
87
+ <div class="table-responsive">
81
88
  <table class="table table-striped" aria-describedby="garbageCollectorMetrics">
82
89
  <thead>
83
90
  <tr>
@@ -107,4 +114,5 @@
107
114
  </tbody>
108
115
  </table>
109
116
  </div>
117
+ }
110
118
  </div>
@@ -25,32 +25,43 @@
25
25
  <div class="modal-body">
26
26
  <div class="mb-3">
27
27
  <span class="badge bg-primary hand" (click)="threadStateFilter = undefined">
28
- <fa-icon *ngIf="threadStateFilter === undefined" icon="check"></fa-icon>
28
+ @if (threadStateFilter === undefined) {
29
+ <fa-icon icon="check"></fa-icon>
30
+ }
29
31
  All&nbsp;<span class="badge rounded-pill bg-default">{{ threadDumpAll }}</span>
30
32
  </span>
31
33
 
32
34
  <span class="badge bg-success hand" (click)="threadStateFilter = ThreadState.Runnable">
33
- <fa-icon *ngIf="threadStateFilter === ThreadState.Runnable" icon="check"></fa-icon>
35
+ @if (threadStateFilter === ThreadState.Runnable) {
36
+ <fa-icon icon="check"></fa-icon>
37
+ }
34
38
  Runnable&nbsp;<span class="badge rounded-pill bg-default">{{ threadDumpRunnable }}</span>
35
39
  </span>
36
40
 
37
41
  <span class="badge bg-info hand" (click)="threadStateFilter = ThreadState.Waiting">
38
- <fa-icon *ngIf="threadStateFilter === ThreadState.Waiting" icon="check"></fa-icon>
42
+ @if (threadStateFilter === ThreadState.Waiting) {
43
+ <fa-icon icon="check"></fa-icon>
44
+ }
39
45
  Waiting&nbsp;<span class="badge rounded-pill bg-default">{{ threadDumpWaiting }}</span>
40
46
  </span>
41
47
 
42
48
  <span class="badge bg-warning hand" (click)="threadStateFilter = ThreadState.TimedWaiting">
43
- <fa-icon *ngIf="threadStateFilter === ThreadState.TimedWaiting" icon="check"></fa-icon>
49
+ @if (threadStateFilter === ThreadState.TimedWaiting) {
50
+ <fa-icon icon="check"></fa-icon>
51
+ }
44
52
  Timed Waiting&nbsp;<span class="badge rounded-pill bg-default">{{ threadDumpTimedWaiting }}</span>
45
53
  </span>
46
54
 
47
55
  <span class="badge bg-danger hand" (click)="threadStateFilter = ThreadState.Blocked">
48
- <fa-icon *ngIf="threadStateFilter === ThreadState.Blocked" icon="check"></fa-icon>
56
+ @if (threadStateFilter === ThreadState.Blocked) {
57
+ <fa-icon icon="check"></fa-icon>
58
+ }
49
59
  Blocked&nbsp;<span class="badge rounded-pill bg-default">{{ threadDumpBlocked }}</span>
50
60
  </span>
51
61
  </div>
52
62
 
53
- <div class="pad" *ngFor="let thread of getThreads()">
63
+ @for (thread of getThreads(); track $index) {
64
+ <div class="pad">
54
65
  <h6>
55
66
  <span class="badge" [ngClass]="getBadgeClass(thread.threadState)">{{ thread.threadState }}</span>
56
67
 
@@ -64,10 +75,12 @@
64
75
 
65
76
  <div class="card" [hidden]="!thread.showThreadDump">
66
77
  <div class="card-body">
67
- <div *ngFor="let st of thread.stackTrace" class="break">
78
+ @for (st of thread.stackTrace; track $index) {
79
+ <div class="break">
68
80
  <samp>{{ st.className }}.{{ st.methodName }}(<code>{{ st.fileName }}:{{ st.lineNumber }}</code>)</samp>
69
81
  <span class="mt-1"></span>
70
82
  </div>
83
+ }
71
84
  </div>
72
85
  </div>
73
86
  <table class="table table-sm table-responsive">
@@ -94,6 +107,7 @@
94
107
  </tbody>
95
108
  </table>
96
109
  </div>
110
+ }
97
111
  </div>
98
112
  <div class="modal-footer">
99
113
  <button type="button" class="btn btn-secondary float-start" data-dismiss="modal" (click)="dismiss()">Done</button>
@@ -18,7 +18,8 @@
18
18
  -%>
19
19
  <h3 id="requestMetrics" <%= jhiPrefix %>Translate="metrics.jvm.http.title">__jhiTransformTranslate__('metrics.jvm.http.title')</h3>
20
20
 
21
- <table class="table table-striped" *ngIf="!updating && requestMetrics" aria-describedby="requestMetrics">
21
+ @if (!updating && requestMetrics) {
22
+ <table class="table table-striped" aria-describedby="requestMetrics">
22
23
  <thead>
23
24
  <tr>
24
25
  <th scope="col" <%= jhiPrefix %>Translate="metrics.jvm.http.table.code">__jhiTransformTranslate__('metrics.jvm.http.table.code')</th>
@@ -28,7 +29,8 @@
28
29
  </tr>
29
30
  </thead>
30
31
  <tbody>
31
- <tr *ngFor="let entry of requestMetrics['percode'] | keyvalue">
32
+ @for (entry of requestMetrics['percode'] | keyvalue; track entry.key) {
33
+ <tr>
32
34
  <td>{{ entry.key }}</td>
33
35
  <td>
34
36
  <ngb-progressbar [max]="requestMetrics['all'].count" [value]="entry.value.count" [striped]="true" [animated]="false" type="success">
@@ -40,5 +42,7 @@
40
42
  </td>
41
43
  <td class="text-end">{{ entry.value.max | number: '1.0-2' }}</td>
42
44
  </tr>
45
+ }
43
46
  </tbody>
44
47
  </table>
48
+ }
@@ -18,7 +18,8 @@
18
18
  -%>
19
19
  <h4>System</h4>
20
20
 
21
- <ng-container *ngIf="!updating && systemMetrics">
21
+ @if (!updating && systemMetrics) {
22
+ <ng-container>
22
23
  <div class="row">
23
24
  <div class="col-md-4">Uptime</div>
24
25
  <div class="col-md-8 text-end">{{ convertMillisecondsToDuration(systemMetrics['process.uptime']) }}</div>
@@ -67,3 +68,4 @@
67
68
  <div class="col-md-3 text-end">{{ systemMetrics['process.files.open'] | number: '1.0-0' }}</div>
68
69
  </div>
69
70
  </ng-container>
71
+ }
@@ -27,43 +27,52 @@
27
27
 
28
28
  <h3 <%= jhiPrefix %>Translate="metrics.jvm.title">__jhiTransformTranslate__('metrics.jvm.title')</h3>
29
29
 
30
- <div class="row" *ngIf="metrics && !updatingMetrics">
30
+ @if (metrics && !updatingMetrics) {
31
+ <div class="row">
31
32
  <<%= jhiPrefixDashed %>-jvm-memory class="col-md-4" [updating]="updatingMetrics" [jvmMemoryMetrics]="metrics.jvm"></<%= jhiPrefixDashed %>-jvm-memory>
32
33
 
33
34
  <<%= jhiPrefixDashed %>-jvm-threads class="col-md-4" [threads]="threads"></<%= jhiPrefixDashed %>-jvm-threads>
34
35
 
35
36
  <<%= jhiPrefixDashed %>-metrics-system class="col-md-4" [updating]="updatingMetrics" [systemMetrics]="metrics.processMetrics"></<%= jhiPrefixDashed %>-metrics-system>
36
37
  </div>
38
+ }
37
39
 
40
+ @if (metrics && metricsKeyExists('garbageCollector')) {
38
41
  <<%= jhiPrefixDashed %>-metrics-garbagecollector
39
- *ngIf="metrics && metricsKeyExists('garbageCollector')"
40
42
  [updating]="updatingMetrics"
41
43
  [garbageCollectorMetrics]="metrics.garbageCollector"
42
44
  ></<%= jhiPrefixDashed %>-metrics-garbagecollector>
45
+ }
43
46
 
44
- <div class="well well-lg" *ngIf="updatingMetrics" <%= jhiPrefix %>Translate="metrics.updating">__jhiTransformTranslate__('metrics.updating')</div>
47
+ @if (updatingMetrics) {
48
+ <div class="well well-lg" <%= jhiPrefix %>Translate="metrics.updating">__jhiTransformTranslate__('metrics.updating')</div>
49
+ }
45
50
 
51
+ @if (metrics && metricsKeyExists('http.server.requests')) {
46
52
  <<%= jhiPrefixDashed %>-metrics-request
47
- *ngIf="metrics && metricsKeyExists('http.server.requests')"
48
53
  [updating]="updatingMetrics"
49
54
  [requestMetrics]="metrics['http.server.requests']"
50
55
  ></<%= jhiPrefixDashed %>-metrics-request>
56
+ }
51
57
 
58
+ @if (metrics && metricsKeyExists('services')) {
52
59
  <<%= jhiPrefixDashed %>-metrics-endpoints-requests
53
- *ngIf="metrics && metricsKeyExists('services')"
54
60
  [updating]="updatingMetrics"
55
61
  [endpointsRequestsMetrics]="metrics.services"
56
62
  ></<%= jhiPrefixDashed %>-metrics-endpoints-requests>
63
+ }
57
64
 
65
+ @if (metrics && metricsKeyExists('cache')) {
58
66
  <<%= jhiPrefixDashed %>-metrics-cache
59
- *ngIf="metrics && metricsKeyExists('cache')"
60
67
  [updating]="updatingMetrics"
61
68
  [cacheMetrics]="metrics.cache"
62
69
  ></<%= jhiPrefixDashed %>-metrics-cache>
70
+ }
63
71
 
72
+ @if (metrics && metricsKeyExistsAndObjectNotEmpty('databases')) {
64
73
  <<%= jhiPrefixDashed %>-metrics-datasource
65
- *ngIf="metrics && metricsKeyExistsAndObjectNotEmpty('databases')"
66
74
  [updating]="updatingMetrics"
67
75
  [datasourceMetrics]="metrics.databases"
68
76
  ></<%= jhiPrefixDashed %>-metrics-datasource>
77
+ }
69
78
  </div>
@@ -31,12 +31,14 @@
31
31
  </tr>
32
32
  </thead>
33
33
  <tbody>
34
- <tr *ngFor="let activity of activities">
34
+ @for (activity of activities; track $index) {
35
+ <tr>
35
36
  <td>{{ activity.userLogin }}</td>
36
37
  <td>{{ activity.ipAddress }}</td>
37
38
  <td>{{ activity.page }}</td>
38
39
  <td>{{ activity.time | date: 'yyyy-MM-dd HH:mm:ss' }}</td>
39
40
  </tr>
41
+ }
40
42
  </tbody>
41
43
  </table>
42
44
  </div>
@@ -16,7 +16,8 @@
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  -%>
19
- <form *ngIf="user" name="deleteForm" (ngSubmit)="confirmDelete(user.login!)">
19
+ @if (user) {
20
+ <form name="deleteForm" (ngSubmit)="confirmDelete(user.login!)">
20
21
  <div class="modal-header">
21
22
  <h4 class="modal-title" <%= jhiPrefix %>Translate="entity.delete.title">__jhiTransformTranslate__('entity.delete.title')</h4>
22
23
 
@@ -39,3 +40,4 @@
39
40
  </button>
40
41
  </div>
41
42
  </form>
43
+ }
@@ -18,7 +18,8 @@
18
18
  -%>
19
19
  <div class="d-flex justify-content-center">
20
20
  <div class="col-8">
21
- <div *ngIf="user">
21
+ @if (user) {
22
+ <div>
22
23
  <h2>
23
24
  <span <%= jhiPrefix %>Translate="userManagement.detail.title">__jhiTransformTranslate__('userManagement.detail.title')</span> [<strong>{{ user.login }}</strong>]
24
25
  </h2>
@@ -27,8 +28,11 @@
27
28
  <dt><span <%= jhiPrefix %>Translate="userManagement.login">__jhiTransformTranslate__('userManagement.login')</span></dt>
28
29
  <dd>
29
30
  <span>{{ user.login }}</span>
30
- <span *ngIf="user.activated" class="badge bg-success" <%= jhiPrefix %>Translate="userManagement.activated">__jhiTransformTranslate__('userManagement.activated')</span>
31
- <span *ngIf="!user.activated" class="badge bg-danger" <%= jhiPrefix %>Translate="userManagement.deactivated">__jhiTransformTranslate__('userManagement.deactivated')</span>
31
+ @if (user.activated) {
32
+ <span class="badge bg-success" <%= jhiPrefix %>Translate="userManagement.activated">__jhiTransformTranslate__('userManagement.activated')</span>
33
+ } @else {
34
+ <span class="badge bg-danger" <%= jhiPrefix %>Translate="userManagement.deactivated">__jhiTransformTranslate__('userManagement.deactivated')</span>
35
+ }
32
36
  </dd>
33
37
 
34
38
  <dt><span <%= jhiPrefix %>Translate="userManagement.firstName">__jhiTransformTranslate__('userManagement.firstName')</span></dt>
@@ -60,9 +64,11 @@
60
64
  <dt><span <%= jhiPrefix %>Translate="userManagement.profiles">__jhiTransformTranslate__('userManagement.profiles')</span></dt>
61
65
  <dd>
62
66
  <ul class="list-unstyled">
63
- <li *ngFor="let authority of user.authorities">
67
+ @for (authority of user.authorities; track $index) {
68
+ <li>
64
69
  <span class="badge bg-info">{{ authority }}</span>
65
70
  </li>
71
+ }
66
72
  </ul>
67
73
  </dd>
68
74
  </dl>
@@ -71,5 +77,6 @@
71
77
  <fa-icon icon="arrow-left"></fa-icon>&nbsp;<span <%= jhiPrefix %>Translate="entity.action.back">__jhiTransformTranslate__('entity.action.back')</span>
72
78
  </button>
73
79
  </div>
80
+ }
74
81
  </div>
75
82
  </div>
@@ -35,7 +35,8 @@
35
35
 
36
36
  <<%= jhiPrefixDashed %>-alert></<%= jhiPrefixDashed %>-alert>
37
37
 
38
- <div class="table-responsive" *ngIf="users">
38
+ @if (users) {
39
+ <div class="table-responsive">
39
40
  <table class="table table-striped" aria-describedby="user-management-page-heading">
40
41
  <thead>
41
42
  <tr<% if (!databaseTypeCassandra) { %> <%= jhiPrefix %>Sort [(predicate)]="predicate" [(ascending)]="ascending" (sortChange)="transition()"<% } %>>
@@ -69,35 +70,38 @@
69
70
  <th scope="col"></th>
70
71
  </tr>
71
72
  </thead>
72
- <tbody *ngIf="users">
73
- <tr *ngFor="let user of users; trackBy: trackIdentity">
73
+ @if (users) {
74
+ <tbody>
75
+ @for (user of users; track trackIdentity) {
76
+ <tr>
74
77
  <td>
75
78
  <a [routerLink]="['./', user.login, 'view']">{{ user.id }}</a>
76
79
  </td>
77
80
  <td>{{ user.login }}</td>
78
81
  <td>{{ user.email }}</td>
79
82
  <td>
80
- <button
81
- class="btn btn-danger btn-sm"
83
+ @if (!user.activated) {
84
+ <button class="btn btn-danger btn-sm"
82
85
  (click)="setActive(user, true)"
83
- *ngIf="!user.activated"
84
86
  <%= jhiPrefix %>Translate="userManagement.deactivated"
85
87
  >__jhiTransformTranslate__('userManagement.deactivated')</button>
86
- <button
87
- class="btn btn-success btn-sm"
88
+ } @else {
89
+ <button class="btn btn-success btn-sm"
88
90
  (click)="setActive(user, false)"
89
- *ngIf="user.activated"
90
91
  [disabled]="!currentAccount || currentAccount.login === user.login"
91
92
  <%= jhiPrefix %>Translate="userManagement.activated"
92
93
  >__jhiTransformTranslate__('userManagement.activated')</button>
94
+ }
93
95
  </td>
94
96
  <%_ if (enableTranslation) { _%>
95
97
  <td>{{ user.langKey }}</td>
96
98
  <%_ } _%>
97
99
  <td>
98
- <div *ngFor="let authority of user.authorities">
100
+ @for (authority of user.authorities; track $index) {
101
+ <div>
99
102
  <span class="badge bg-info">{{ authority }}</span>
100
103
  </div>
104
+ }
101
105
  </td>
102
106
  <%_ if (!databaseTypeCassandra) { _%>
103
107
  <td>{{ user.createdDate | date: 'dd/MM/yy HH:mm' }}</td>
@@ -128,12 +132,16 @@
128
132
  </div>
129
133
  </td>
130
134
  </tr>
135
+ }
131
136
  </tbody>
137
+ }
132
138
  </table>
133
139
  </div>
140
+ }
134
141
  <%_ if (!databaseTypeCassandra) { _%>
135
142
 
136
- <div *ngIf="users">
143
+ @if (users) {
144
+ <div>
137
145
  <div class="d-flex justify-content-center">
138
146
  <<%= jhiPrefixDashed %>-item-count [params]="{ page: page, totalItems: totalItems, itemsPerPage: itemsPerPage }"></<%= jhiPrefixDashed %>-item-count>
139
147
  </div>
@@ -150,5 +158,6 @@
150
158
  ></ngb-pagination>
151
159
  </div>
152
160
  </div>
161
+ }
153
162
  <%_ } _%>
154
163
  </div>
@@ -32,87 +32,95 @@
32
32
  <label class="form-label" <%= jhiPrefix %>Translate="userManagement.login">__jhiTransformTranslate__('userManagement.login')</label>
33
33
  <input type="text" class="form-control" name="login" formControlName="login" />
34
34
 
35
- <div *ngIf="editForm.get('login')!.invalid && (editForm.get('login')!.dirty || editForm.get('login')!.touched)">
36
- <small
37
- class="form-text text-danger"
38
- *ngIf="editForm.get('login')?.errors?.required"
35
+ @if (editForm.get('login')!.invalid && (editForm.get('login')!.dirty || editForm.get('login')!.touched)) {
36
+ <div>
37
+ @if (editForm.get('login')?.errors?.required) {
38
+ <small class="form-text text-danger"
39
39
  <%= jhiPrefix %>Translate="entity.validation.required"
40
40
  >__jhiTransformTranslate__('entity.validation.required')</small>
41
+ }
41
42
 
42
- <small
43
- class="form-text text-danger"
44
- *ngIf="editForm.get('login')?.errors?.maxlength"
43
+ @if (editForm.get('login')?.errors?.maxlength) {
44
+ <small class="form-text text-danger"
45
45
  <%= jhiPrefix %>Translate="entity.validation.maxlength"
46
46
  [translateValues]="{ max: 50 }"
47
47
  >__jhiTransformTranslate__('entity.validation.maxlength', { "max": 50 })</small>
48
+ }
48
49
 
49
- <small
50
- class="form-text text-danger"
51
- *ngIf="editForm.get('login')?.errors?.pattern"
50
+ @if (editForm.get('login')?.errors?.pattern) {
51
+ <small class="form-text text-danger"
52
52
  <%= jhiPrefix %>Translate="entity.validation.patternLogin"
53
53
  >__jhiTransformTranslate__('entity.validation.patternLogin')</small>
54
+ }
54
55
  </div>
56
+ }
55
57
  </div>
56
58
 
57
59
  <div class="mb-3">
58
60
  <label class="form-label" <%= jhiPrefix %>Translate="userManagement.firstName">__jhiTransformTranslate__('userManagement.firstName')</label>
59
61
  <input type="text" class="form-control" name="firstName" formControlName="firstName" />
60
62
 
61
- <div *ngIf="editForm.get('firstName')!.invalid && (editForm.get('firstName')!.dirty || editForm.get('firstName')!.touched)">
62
- <small
63
- class="form-text text-danger"
64
- *ngIf="editForm.get('firstName')?.errors?.maxlength"
63
+ @if (editForm.get('firstName')!.invalid && (editForm.get('firstName')!.dirty || editForm.get('firstName')!.touched)) {
64
+ <div>
65
+ @if (editForm.get('firstName')?.errors?.maxlength) {
66
+ <small class="form-text text-danger"
65
67
  <%= jhiPrefix %>Translate="entity.validation.maxlength"
66
68
  [translateValues]="{ max: 50 }"
67
69
  >__jhiTransformTranslate__('entity.validation.maxlength', { "max": 50 })</small>
70
+ }
68
71
  </div>
72
+ }
69
73
  </div>
70
74
 
71
75
  <div class="mb-3">
72
76
  <label <%= jhiPrefix %>Translate="userManagement.lastName">__jhiTransformTranslate__('userManagement.lastName')</label>
73
77
  <input type="text" class="form-control" name="lastName" formControlName="lastName" />
74
78
 
75
- <div *ngIf="editForm.get('lastName')!.invalid && (editForm.get('lastName')!.dirty || editForm.get('lastName')!.touched)">
76
- <small
77
- class="form-text text-danger"
78
- *ngIf="editForm.get('lastName')?.errors?.maxlength"
79
+ @if (editForm.get('lastName')!.invalid && (editForm.get('lastName')!.dirty || editForm.get('lastName')!.touched)) {
80
+ <div>
81
+ @if (editForm.get('lastName')?.errors?.maxlength) {
82
+ <small class="form-text text-danger"
79
83
  <%= jhiPrefix %>Translate="entity.validation.maxlength"
80
84
  [translateValues]="{ max: 50 }"
81
85
  >__jhiTransformTranslate__('entity.validation.maxlength', { "max": 50 })</small>
86
+ }
82
87
  </div>
88
+ }
83
89
  </div>
84
90
 
85
91
  <div class="mb-3">
86
92
  <label class="form-label" <%= jhiPrefix %>Translate="userManagement.email">__jhiTransformTranslate__('userManagement.email')</label>
87
93
  <input type="email" class="form-control" name="email" formControlName="email" />
88
94
 
89
- <div *ngIf="editForm.get('email')!.invalid && (editForm.get('email')!.dirty || editForm.get('email')!.touched)">
90
- <small
91
- class="form-text text-danger"
92
- *ngIf="editForm.get('email')?.errors?.required"
95
+ @if (editForm.get('email')!.invalid && (editForm.get('email')!.dirty || editForm.get('email')!.touched)) {
96
+ <div>
97
+ @if (editForm.get('email')?.errors?.required) {
98
+ <small class="form-text text-danger"
93
99
  <%= jhiPrefix %>Translate="entity.validation.required"
94
100
  >__jhiTransformTranslate__('entity.validation.required')</small>
101
+ }
95
102
 
96
- <small
97
- class="form-text text-danger"
98
- *ngIf="editForm.get('email')?.errors?.maxlength"
103
+ @if (editForm.get('email')?.errors?.maxlength) {
104
+ <small class="form-text text-danger"
99
105
  <%= jhiPrefix %>Translate="entity.validation.maxlength"
100
106
  [translateValues]="{ max: 100 }"
101
107
  >__jhiTransformTranslate__('entity.validation.maxlength', { "max": 100 })</small>
108
+ }
102
109
 
103
- <small
104
- class="form-text text-danger"
105
- *ngIf="editForm.get('email')?.errors?.minlength"
110
+ @if (editForm.get('email')?.errors?.minlength) {
111
+ <small class="form-text text-danger"
106
112
  <%= jhiPrefix %>Translate="entity.validation.minlength"
107
113
  [translateValues]="{ min: 5 }"
108
114
  >__jhiTransformTranslate__('entity.validation.minlength', { "min": 5 })</small>
115
+ }
109
116
 
110
- <small
111
- class="form-text text-danger"
112
- *ngIf="editForm.get('email')?.errors?.email"
117
+ @if (editForm.get('email')?.errors?.email) {
118
+ <small class="form-text text-danger"
113
119
  <%= jhiPrefix %>Translate="global.messages.validate.email.invalid"
114
120
  >__jhiTransformTranslate__('global.messages.validate.email.invalid')</small>
121
+ }
115
122
  </div>
123
+ }
116
124
  </div>
117
125
 
118
126
  <div class="form-check">
@@ -130,18 +138,24 @@
130
138
  </div>
131
139
  <%_ if (enableTranslation) { _%>
132
140
 
133
- <div class="mb-3" *ngIf="languages && languages.length > 0">
141
+ @if (languages && languages.length > 0) {
142
+ <div class="mb-3">
134
143
  <label <%= jhiPrefix %>Translate="userManagement.langKey">__jhiTransformTranslate__('userManagement.langKey')</label>
135
144
  <select class="form-control" id="langKey" name="langKey" formControlName="langKey">
136
- <option *ngFor="let language of languages" [value]="language">{{ language | findLanguageFromKey }}</option>
145
+ @for (language of languages; track $index) {
146
+ <option [value]="language">{{ language | findLanguageFromKey }}</option>
147
+ }
137
148
  </select>
138
149
  </div>
150
+ }
139
151
  <%_ } _%>
140
152
 
141
153
  <div class="mb-3">
142
154
  <label <%= jhiPrefix %>Translate="userManagement.profiles">__jhiTransformTranslate__('userManagement.profiles')</label>
143
155
  <select class="form-control" multiple name="authority" formControlName="authorities">
144
- <option *ngFor="let authority of authorities" [value]="authority">{{ authority }}</option>
156
+ @for (authority of authorities; track $index) {
157
+ <option [value]="authority">{{ authority }}</option>
158
+ }
145
159
  </select>
146
160
  </div>
147
161
  <button type="button" class="btn btn-secondary" (click)="previousState()">
@@ -0,0 +1,73 @@
1
+ <%#
2
+ Copyright 2013-2023 the original author or authors from the JHipster project.
3
+
4
+ This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ for more information.
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ https://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+ -%>
19
+ import { Component } from '@angular/core';
20
+ import { registerLocaleData } from '@angular/common';
21
+ import locale from '@angular/common/locales/en';
22
+ import dayjs from 'dayjs/esm';
23
+ import { FaIconLibrary } from '@fortawesome/angular-fontawesome';
24
+ import { NgbDatepickerConfig } from '@ng-bootstrap/ng-bootstrap';
25
+ import { provideRouter } from '@angular/router';
26
+ import { registerLocaleData } from '@angular/common';
27
+ import { HttpClientModule } from '@angular/common/http';
28
+ import locale from '@angular/common/locales/en';
29
+ import { FaIconLibrary } from '@fortawesome/angular-fontawesome';
30
+ import dayjs from 'dayjs/esm';
31
+ import appRoutes from './app.routes';
32
+ // jhipster-needle-angular-add-module-import JHipster will add new module here
33
+
34
+ import { ApplicationConfigService } from 'app/core/config/application-config.service';
35
+ import { fontAwesomeIcons } from './config/font-awesome-icons';
36
+ <%_ if (enableTranslation) { _%>
37
+ import { TranslationModule } from 'app/shared/language/translation.module';
38
+ <%_ } _%>
39
+ import MainComponent from './layouts/main/main.component';
40
+ <%_ if (communicationSpringWebsocket) { _%>
41
+ import { TrackerService } from './core/tracker/tracker.service';
42
+ <%_ } _%>
43
+
44
+ @Component({
45
+ selector: '<%= jhiPrefixDashed %>-app',
46
+ standalone: true,
47
+ template: '<<%= jhiPrefixDashed %>-main></<%= jhiPrefixDashed %>-main>',
48
+ imports: [
49
+ MainComponent,
50
+ // jhipster-needle-angular-add-module JHipster will add new module here
51
+ ],
52
+ })
53
+ export default class AppComponent {
54
+ constructor(
55
+ applicationConfigService: ApplicationConfigService,
56
+ iconLibrary: FaIconLibrary,
57
+ <%_ if (communicationSpringWebsocket) { _%>
58
+ trackerService: TrackerService,
59
+ <%_ } _%>
60
+ dpConfig: NgbDatepickerConfig
61
+ ) {
62
+ <%_ if (communicationSpringWebsocket) { _%>
63
+ trackerService.setup();
64
+ <%_ } _%>
65
+ <%_ if (applicationTypeMicroservice) { _%>
66
+ applicationConfigService.setMicrofrontend();
67
+ <%_ } _%>
68
+ applicationConfigService.setEndpointPrefix(SERVER_API_URL);
69
+ registerLocaleData(locale);
70
+ iconLibrary.addIcons(...fontAwesomeIcons);
71
+ dpConfig.minDate = { year: dayjs().subtract(100, 'year').year(), month: 1, day: 1 };
72
+ }
73
+ }