generator-jhipster 8.0.0-rc.1 → 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 (369) hide show
  1. package/README.md +71 -58
  2. package/dist/cli/environment-builder.mjs +14 -7
  3. package/dist/cli/jhipster-command.mjs +7 -3
  4. package/dist/cli/program.mjs +2 -2
  5. package/dist/generators/angular/cleanup.mjs +7 -0
  6. package/dist/generators/angular/files-angular.mjs +3 -4
  7. package/dist/generators/angular/generator.mjs +10 -22
  8. package/dist/generators/angular/needle-api/needle-client-angular.mjs +2 -8
  9. package/dist/generators/angular/resources/package.json +25 -24
  10. package/dist/generators/angular/support/translate-angular.mjs +2 -2
  11. package/dist/generators/angular/templates/README.md.jhi.client.angular.ejs +1 -1
  12. package/dist/generators/angular/templates/angular.json.ejs +3 -7
  13. package/dist/generators/angular/templates/package.json.ejs +4 -8
  14. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.html.ejs +6 -4
  15. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.ts.ejs +1 -1
  16. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.html.ejs +39 -33
  17. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +44 -36
  18. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +24 -23
  19. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.html.ejs +74 -62
  20. package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.html.ejs +12 -4
  21. package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.html.ejs +54 -48
  22. package/dist/generators/angular/templates/src/main/webapp/app/admin/admin.routes.ts.ejs +74 -0
  23. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +15 -5
  24. package/dist/generators/angular/templates/src/main/webapp/app/admin/docs/docs.component.ts.ejs +1 -1
  25. package/dist/generators/angular/templates/src/main/webapp/app/admin/gateway/gateway.component.html.ejs +20 -7
  26. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.component.html.ejs +10 -7
  27. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.html.ejs +9 -3
  28. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.html.ejs +12 -4
  29. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +13 -7
  30. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html.ejs +6 -2
  31. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html.ejs +3 -1
  32. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.html.ejs +13 -9
  33. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +13 -5
  34. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +21 -7
  35. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html.ejs +6 -2
  36. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.html.ejs +3 -1
  37. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +16 -7
  38. package/dist/generators/angular/templates/src/main/webapp/app/admin/tracker/tracker.component.html.ejs +3 -1
  39. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +3 -1
  40. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html.ejs +11 -4
  41. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +20 -11
  42. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +48 -34
  43. package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +73 -0
  44. package/dist/generators/angular/templates/src/main/webapp/app/app.config.ts.ejs +67 -0
  45. package/dist/generators/angular/templates/src/main/webapp/app/app.routes.ts.ejs +85 -0
  46. package/dist/generators/angular/templates/src/main/webapp/app/core/microfrontend/index.ts.ejs +5 -4
  47. package/dist/generators/angular/templates/src/main/webapp/app/core/util/alert.service.spec.ts.ejs +1 -1
  48. package/dist/generators/angular/templates/src/main/webapp/app/core/util/data-util.service.ts.ejs +2 -2
  49. package/dist/generators/angular/templates/src/main/webapp/app/core/util/event-manager.service.spec.ts.ejs +12 -12
  50. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.model.ts.ejs +4 -4
  51. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +3 -1
  52. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.html.ejs +26 -14
  53. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +44 -35
  54. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.ts.ejs +1 -1
  55. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/service/_entityFile_.service.ts.ejs +1 -1
  56. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-form.service.spec.ts.ejs +2 -2
  57. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-form.service.ts.ejs +5 -12
  58. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.html.ejs +55 -21
  59. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +2 -2
  60. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.ts.ejs +10 -10
  61. package/dist/generators/angular/templates/src/main/webapp/app/entities/entity.routes.ts.ejs +25 -0
  62. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.html.ejs +21 -17
  63. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.ts.ejs +1 -1
  64. package/dist/generators/angular/templates/src/main/webapp/app/layouts/error/error.component.html.ejs +3 -3
  65. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +5 -2
  66. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.ts.ejs +5 -1
  67. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +97 -78
  68. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.scss.ejs +1 -1
  69. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +1 -1
  70. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.scss.ejs +1 -1
  71. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +6 -4
  72. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.html.ejs +3 -3
  73. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.html.ejs +6 -2
  74. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert.component.html.ejs +6 -2
  75. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +11 -7
  76. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.model.spec.ts.ejs +1 -1
  77. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.spec.ts.ejs +3 -3
  78. package/dist/generators/angular/templates/src/main/webapp/bootstrap.ts.ejs +5 -5
  79. package/dist/generators/angular/templates/src/main/webapp/content/scss/global.scss.ejs +1 -1
  80. package/dist/generators/angular/templates/webpack/webpack.microfrontend.js.ejs +48 -126
  81. package/dist/generators/app/README.md +108 -0
  82. package/dist/generators/app/USAGE +3 -0
  83. package/dist/generators/app/command.mjs +3 -3
  84. package/dist/generators/app/generator.mjs +11 -0
  85. package/dist/generators/app/support/config.mjs +3 -3
  86. package/dist/generators/base/command.mjs +0 -11
  87. package/dist/generators/base/generator.mjs +0 -3
  88. package/dist/generators/base/support/config.mjs +6 -6
  89. package/dist/generators/base/support/jhipster7-context.mjs +3 -3
  90. package/dist/generators/base-application/generator.mjs +7 -8
  91. package/dist/generators/base-application/support/entities.mjs +2 -2
  92. package/dist/generators/base-application/support/enum.mjs +1 -1
  93. package/dist/generators/base-application/support/index.mjs +1 -0
  94. package/dist/generators/base-application/support/prepare-entity.mjs +14 -11
  95. package/dist/generators/base-application/support/prepare-field.mjs +11 -7
  96. package/dist/generators/base-application/support/prepare-relationship.mjs +16 -14
  97. package/dist/generators/base-application/support/update-application-entities-transform.mjs +52 -0
  98. package/dist/generators/base-core/generator.mjs +17 -4
  99. package/dist/generators/base-entity-changes/generator.mjs +1 -1
  100. package/dist/generators/base-workspaces/internal/docker-prompts.mjs +13 -12
  101. package/dist/generators/bootstrap/command.mjs +6 -0
  102. package/dist/generators/bootstrap/generator.mjs +84 -45
  103. package/dist/generators/bootstrap/support/auto-crlf-transform.mjs +34 -21
  104. package/dist/generators/bootstrap/support/eslint-transform.mjs +2 -5
  105. package/dist/generators/bootstrap/support/java-unused-imports-transform.mjs +2 -2
  106. package/dist/generators/bootstrap/support/multi-step-transform/index.mjs +17 -28
  107. package/dist/generators/bootstrap/support/multi-step-transform/template-file-fs.mjs +12 -6
  108. package/dist/generators/bootstrap/support/multi-step-transform/template-file.mjs +1 -0
  109. package/dist/generators/bootstrap/support/prettier-support.mjs +2 -2
  110. package/dist/generators/bootstrap-application/generator.mjs +10 -21
  111. package/dist/generators/bootstrap-application-base/command.mjs +30 -0
  112. package/dist/generators/bootstrap-application-base/generator.mjs +36 -11
  113. package/dist/generators/bootstrap-application-base/index.mjs +1 -0
  114. package/dist/generators/bootstrap-application-base/support/export-jdl-transform.mjs +61 -0
  115. package/dist/generators/bootstrap-application-base/support/import-jdl-transform.mjs +64 -0
  116. package/dist/generators/bootstrap-application-base/support/index.mjs +2 -0
  117. package/dist/generators/bootstrap-application-server/generator.mjs +2 -2
  118. package/dist/generators/client/command.mjs +2 -0
  119. package/dist/generators/client/resources/package.json +4 -4
  120. package/dist/generators/client/support/entity-definition.mjs +3 -3
  121. package/dist/generators/client/templates/README.md.jhi.client.ejs +2 -2
  122. package/dist/generators/client/templates/src/main/webapp/content/css/loading.css.ejs +1 -1
  123. package/dist/generators/client/templates/src/main/webapp/index.html.ejs +2 -2
  124. package/dist/generators/client/templates/webpack/webpack.microfrontend.js.jhi.ejs +14 -1
  125. package/dist/generators/common/command.mjs +2 -0
  126. package/dist/generators/common/files.mjs +1 -1
  127. package/dist/generators/common/generator.mjs +29 -7
  128. package/dist/generators/common/resources/package.json +4 -4
  129. package/dist/generators/common/templates/.lintstagedrc.cjs.ejs +21 -0
  130. package/dist/generators/common/templates/.prettierrc.ejs +1 -1
  131. package/dist/generators/common/templates/README.md.jhi.ejs +2 -0
  132. package/dist/generators/common/templates/sonar-project.properties.ejs +1 -1
  133. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/settings-page.cy.ts.ejs +3 -0
  134. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/entity/_entity_.cy.ts.ejs +0 -1
  135. package/dist/generators/docker/generator.mjs +1 -1
  136. package/dist/generators/docker/templates/docker/cassandra.yml.ejs +2 -2
  137. package/dist/generators/docker/templates/docker/keycloak.yml.ejs +1 -1
  138. package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +4 -1
  139. package/dist/generators/docker-compose/generator.mjs +4 -11
  140. package/dist/generators/docker-compose/templates/docker-compose.yml.ejs +1 -1
  141. package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +4 -1
  142. package/dist/generators/entity/prompts.mjs +123 -306
  143. package/dist/generators/export-jdl/generator.mjs +1 -1
  144. package/dist/generators/feign-client/cleanup.mjs +12 -0
  145. package/dist/generators/feign-client/files.mjs +35 -0
  146. package/dist/generators/feign-client/generator.mjs +65 -0
  147. package/dist/generators/feign-client/index.mjs +19 -0
  148. package/dist/generators/feign-client/templates/src/main/java/_package_/client/AuthorizationHeaderUtil.java.ejs +174 -0
  149. package/dist/generators/feign-client/templates/src/main/java/_package_/client/AuthorizedFeignClient.java.ejs +72 -0
  150. package/dist/generators/feign-client/templates/src/main/java/_package_/client/OAuth2InterceptedFeignConfiguration.java.ejs +35 -0
  151. package/dist/generators/feign-client/templates/src/main/java/_package_/client/OAuthIdpTokenResponseDTO.java.ejs +161 -0
  152. package/dist/generators/feign-client/templates/src/main/java/_package_/client/TokenRelayRequestInterceptor.java.ejs +42 -0
  153. package/dist/generators/feign-client/templates/src/main/java/_package_/client/UserFeignClientInterceptor_jwt.java.ejs +36 -0
  154. package/dist/generators/feign-client/templates/src/main/java/_package_/config/FeignConfiguration.java.ejs +45 -0
  155. package/dist/generators/feign-client/templates/src/test/java/_package_/client/AuthorizationHeaderUtilTest.java.ejs +263 -0
  156. package/dist/generators/generate-blueprint/command.mjs +1 -1
  157. package/dist/generators/generate-blueprint/resources/package.json +1 -1
  158. package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +1 -1
  159. package/dist/generators/generator-constants.mjs +11 -7
  160. package/dist/generators/generator-list.mjs +1 -0
  161. package/dist/generators/git/generator.mjs +3 -5
  162. package/dist/generators/gradle/constants.mjs +1 -1
  163. package/dist/generators/heroku/generator.mjs +318 -595
  164. package/dist/generators/heroku/templates/Procfile.ejs +1 -1
  165. package/dist/generators/heroku/templates/application-heroku.yml.ejs +0 -12
  166. package/dist/generators/info/generator.mjs +6 -4
  167. package/dist/generators/init/generator.mjs +2 -2
  168. package/dist/generators/java/command.mjs +6 -0
  169. package/dist/generators/java/entity-files.mjs +5 -1
  170. package/dist/generators/java/generator.mjs +15 -15
  171. package/dist/generators/java/support/package-info-transform.mjs +20 -6
  172. package/dist/generators/java/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.ejs +24 -28
  173. package/dist/generators/java/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.jackson_identity_info.ejs +30 -0
  174. package/dist/generators/java/templates/src/main/java/_package_/_entityPackage_/domain/enumeration/_enumName_.java.ejs +3 -3
  175. package/dist/generators/java/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Test.java.ejs +86 -8
  176. package/dist/generators/java/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_TestSamples.java.ejs +85 -0
  177. package/dist/generators/jdl/generator.mjs +32 -28
  178. package/dist/generators/kubernetes/templates/ingress.yml.ejs +0 -1
  179. package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +4 -1
  180. package/dist/generators/kubernetes/templates/keycloak/keycloak.yml.ejs +1 -1
  181. package/dist/generators/languages/command.mjs +5 -0
  182. package/dist/generators/languages/generator.mjs +44 -28
  183. package/dist/generators/languages/prompts.mjs +3 -1
  184. package/dist/generators/languages/support/translate.mjs +1 -1
  185. package/dist/generators/languages/templates/entity/i18n/entity_pt-br.json.ejs +1 -1
  186. package/dist/generators/languages/translation-data.mjs +8 -13
  187. package/dist/generators/liquibase/README.md +19 -0
  188. package/dist/generators/liquibase/generator.mjs +7 -3
  189. package/dist/generators/project-name/generator.mjs +14 -19
  190. package/dist/generators/project-name/support/name-resolver.mjs +35 -6
  191. package/dist/generators/react/generator.mjs +18 -10
  192. package/dist/generators/react/resources/package.json +30 -29
  193. package/dist/generators/react/templates/package.json.ejs +4 -5
  194. package/dist/generators/react/templates/src/main/webapp/app/config/icon-loader.ts.ejs +35 -33
  195. package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.spec.ts.ejs +4 -4
  196. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-detail.tsx.ejs +1 -2
  197. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.tsx.ejs +19 -15
  198. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.reducer.ts.ejs +1 -1
  199. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.tsx.ejs +3 -8
  200. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityModel_.model.ts.ejs +1 -1
  201. package/dist/generators/react/templates/src/main/webapp/app/modules/home/home.tsx.ejs +1 -1
  202. package/dist/generators/react/templates/src/main/webapp/app/routes.tsx.ejs +9 -2
  203. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header-components.tsx.ejs +1 -1
  204. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header.scss.ejs +6 -5
  205. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/menus/entities.tsx.ejs +10 -1
  206. package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +1 -1
  207. package/dist/generators/react/templates/src/main/webapp/app/shared/util/date-utils.ts.ejs +1 -1
  208. package/dist/generators/react/templates/tsconfig.test.json.ejs +1 -1
  209. package/dist/generators/react/templates/webpack/webpack.microfrontend.js.jhi.react.ejs +13 -58
  210. package/dist/generators/server/cleanup.mjs +5 -0
  211. package/dist/generators/server/command.mjs +13 -2
  212. package/dist/generators/server/entity-files.mjs +3 -3
  213. package/dist/generators/server/files.mjs +2 -38
  214. package/dist/generators/server/generator.mjs +48 -23
  215. package/dist/generators/server/jdl/application-definition.mjs +5 -2
  216. package/dist/generators/server/options/feign-client.mjs +24 -0
  217. package/dist/generators/server/options/index.mjs +1 -0
  218. package/dist/generators/server/resources/Dockerfile +19 -19
  219. package/dist/generators/server/resources/gradle/libs.versions.toml +4 -4
  220. package/dist/generators/server/resources/pom.xml +18 -18
  221. package/dist/generators/server/support/config.mjs +5 -4
  222. package/dist/generators/server/support/prepare-entity.mjs +9 -6
  223. package/dist/generators/server/support/prepare-field.mjs +20 -0
  224. package/dist/generators/server/support/relationship.mjs +2 -1
  225. package/dist/generators/server/support/templates/field-values.mjs +5 -2
  226. package/dist/generators/server/templates/README.md.jhi.spring-boot.ejs +0 -1
  227. package/dist/generators/server/templates/build.gradle.ejs +1 -2
  228. package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +3 -21
  229. package/dist/generators/server/templates/gradle/profile_prod.gradle.ejs +5 -15
  230. package/dist/generators/server/templates/package.json.ejs +0 -5
  231. package/dist/generators/server/templates/pom.xml.ejs +2 -12
  232. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/_partials_entity_/get_all_template.ejs +8 -8
  233. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/_partials_entity_/search_template.ejs +4 -4
  234. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/repository/_entityClass_Repository.java.ejs +1 -1
  235. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/service/dto/_dtoClass_.java.ejs +2 -2
  236. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/service/mapper/_entityClass_Mapper.java.ejs +2 -2
  237. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/web/rest/_entityClass_Resource.java.ejs +14 -14
  238. package/dist/generators/server/templates/src/main/java/_package_/config/JacksonConfiguration.java.ejs +2 -1
  239. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +21 -3
  240. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +6 -1
  241. package/dist/generators/server/templates/src/main/java/_package_/security/oauth2/CustomClaimConverter.java.ejs +1 -5
  242. package/dist/generators/server/templates/src/main/java/_package_/service/MailService.java.ejs +48 -6
  243. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource.java.ejs +1 -1
  244. package/dist/generators/server/templates/src/main/java/_package_/web/rest/LogoutResource_imperative.java.ejs +4 -13
  245. package/dist/generators/server/templates/src/main/java/_package_/web/rest/LogoutResource_reactive.java.ejs +5 -11
  246. package/dist/generators/server/templates/src/main/java/_package_/web/rest/PublicUserResource.java.ejs +6 -7
  247. package/dist/generators/server/templates/src/main/java/_package_/web/rest/UserResource.java.ejs +6 -8
  248. package/dist/generators/server/templates/src/main/java/_package_/web/rest/errors/ExceptionTranslator.java.ejs +4 -7
  249. package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +8 -7
  250. package/dist/generators/server/templates/src/test/java/_package_/TechnicalStructureTest.java.ejs +1 -1
  251. package/dist/generators/server/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +11 -11
  252. package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs +4 -4
  253. package/dist/generators/server/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorTestController.java.ejs +2 -2
  254. package/dist/generators/spring-cache/internal/dependencies.mjs +1 -1
  255. package/dist/generators/spring-cache/templates/gradle/cache.gradle.ejs +1 -1
  256. package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheFactoryConfiguration.java.ejs +1 -1
  257. package/dist/generators/spring-cloud-stream/templates/src/main/java/_package_/web/rest/KafkaResource_imperative.java.ejs +1 -1
  258. package/dist/generators/spring-cloud-stream/templates/src/main/java/_package_/web/rest/KafkaResource_reactive.java.ejs +1 -1
  259. package/dist/generators/spring-cloud-stream/templates/src/test/java/_package_/web/rest/KafkaResourceIT_reactive.java.ejs +3 -0
  260. package/dist/generators/spring-data-elasticsearch/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.elastic_search.ejs +1 -1
  261. package/dist/generators/spring-data-elasticsearch/templates/src/main/java/_package_/_entityPackage_/repository/search/_entityClass_SearchRepository.java.ejs +1 -3
  262. package/dist/generators/spring-data-elasticsearch/templates/src/main/java/_package_/repository/search/UserSearchRepository.java.ejs +4 -4
  263. package/dist/generators/spring-data-neo4j/generator.mjs +43 -1
  264. package/dist/generators/spring-data-neo4j/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.spring_data_neo4j.ejs +3 -37
  265. package/dist/generators/spring-data-relational/README.md +7 -0
  266. package/dist/generators/spring-data-relational/generator.mjs +2 -1
  267. package/dist/generators/spring-data-relational/internal/dependencies.mjs +29 -8
  268. package/dist/generators/spring-data-relational/support/database-data.mjs +4 -0
  269. package/dist/generators/spring-data-relational/templates/src/main/java/_package_/repository/EntityManager_reactive.java.ejs +49 -8
  270. package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +1 -1
  271. package/dist/generators/upgrade/generator.mjs +3 -3
  272. package/dist/generators/vue/generator.mjs +25 -16
  273. package/dist/generators/vue/resources/package.json +29 -28
  274. package/dist/generators/vue/templates/package.json.ejs +4 -5
  275. package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +10 -3
  276. package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +3 -4
  277. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-details.vue.ejs +1 -2
  278. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.component.spec.ts.ejs +1 -1
  279. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.component.ts.ejs +3 -3
  280. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.vue.ejs +2 -15
  281. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.service.ts.ejs +1 -1
  282. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.vue.ejs +14 -7
  283. package/dist/generators/vue/templates/src/main/webapp/app/router/index.ts.ejs +8 -1
  284. package/dist/generators/vue/templates/webpack/webpack.microfrontend.js.jhi.vue.ejs +19 -34
  285. package/dist/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.js +1 -0
  286. package/dist/jdl/converters/jdl-to-json/jdl-to-json-option-converter.js +2 -2
  287. package/dist/jdl/converters/jdl-to-json/jdl-to-json-relationship-converter.js +1 -1
  288. package/dist/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.js +1 -1
  289. package/dist/jdl/converters/json-to-jdl-converter.js +1 -1
  290. package/dist/jdl/converters/json-to-jdl-entity-converter.js +1 -0
  291. package/dist/jdl/converters/parsed-jdl-to-jdl-object/application-converter.js +1 -17
  292. package/dist/jdl/converters/parsed-jdl-to-jdl-object/entity-converter.js +5 -0
  293. package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +0 -27
  294. package/dist/jdl/exporters/applications/jhipster-application-formatter.js +17 -1
  295. package/dist/jdl/exporters/config.js +11 -0
  296. package/dist/jdl/exporters/export-utils.js +2 -13
  297. package/dist/jdl/exporters/jhipster-entity-exporter.js +3 -2
  298. package/dist/jdl/index.js +1 -0
  299. package/dist/jdl/jdl-importer.js +6 -2
  300. package/dist/jdl/jhipster/default-application-options.js +1 -1
  301. package/dist/jdl/jhipster/field-types.js +1 -1
  302. package/dist/jdl/jhipster/json-entity.js +6 -0
  303. package/dist/jdl/models/jdl-application-configuration-factory.js +34 -2
  304. package/dist/jdl/models/jdl-application-configuration.js +6 -3
  305. package/dist/jdl/models/jdl-application-factory.js +2 -2
  306. package/dist/jdl/models/jdl-application.js +12 -3
  307. package/dist/jdl/models/jdl-entity.js +16 -1
  308. package/dist/jdl/models/jdl-field.js +13 -0
  309. package/dist/jdl/models/jdl-object.js +3 -3
  310. package/dist/jdl/models/jdl-relationship.js +23 -5
  311. package/dist/jdl/parsing/jdl-ast-builder-visitor.js +63 -7
  312. package/dist/jdl/parsing/jdl-parser.js +52 -6
  313. package/dist/jdl/parsing/lexer/application-tokens.js +2 -2
  314. package/dist/jdl/validators/entity-validator.js +4 -2
  315. package/dist/jdl/validators/enum-validator.js +4 -2
  316. package/dist/jdl/validators/jdl-with-application-validator.js +18 -8
  317. package/dist/jdl/validators/jdl-without-application-validator.js +30 -29
  318. package/dist/jdl/validators/validator.js +1 -1
  319. package/dist/testing/helpers.mjs +10 -3
  320. package/dist/types/cli/environment-builder.d.mts +2 -0
  321. package/dist/types/generators/angular/needle-api/needle-client-angular.d.mts +0 -1
  322. package/dist/types/generators/base/api.d.mts +12 -0
  323. package/dist/types/generators/base/support/config.d.mts +3 -3
  324. package/dist/types/generators/base/support/needles.d.mts +1 -1
  325. package/dist/types/generators/base-application/generator.d.mts +2 -2
  326. package/dist/types/generators/base-application/support/index.d.mts +1 -0
  327. package/dist/types/generators/base-application/support/prepare-entity.d.mts +6 -1
  328. package/dist/types/generators/base-application/support/update-application-entities-transform.d.mts +4 -0
  329. package/dist/types/generators/base-application/types/relationship.d.mts +4 -0
  330. package/dist/types/generators/base-core/generator.d.mts +7 -1
  331. package/dist/types/generators/bootstrap/support/auto-crlf-transform.d.mts +3 -2
  332. package/dist/types/generators/bootstrap/support/multi-step-transform/index.d.mts +3 -20
  333. package/dist/types/generators/bootstrap/support/multi-step-transform/template-file-fs.d.mts +15 -9
  334. package/dist/types/generators/bootstrap/support/multi-step-transform/template-file.d.mts +1 -0
  335. package/dist/types/generators/bootstrap-application-base/support/export-jdl-transform.d.mts +8 -0
  336. package/dist/types/generators/bootstrap-application-base/support/import-jdl-transform.d.mts +6 -0
  337. package/dist/types/generators/bootstrap-application-base/support/index.d.mts +2 -0
  338. package/dist/types/generators/client/support/entity-definition.d.mts +2 -2
  339. package/dist/types/generators/feign-client/types-export.d.ts +1 -0
  340. package/dist/types/generators/generator-constants.d.mts +52 -48
  341. package/dist/types/generators/generator-list.d.mts +1 -0
  342. package/dist/types/generators/java/support/package-info-transform.d.mts +1 -4
  343. package/dist/types/generators/project-name/support/name-resolver.d.mts +9 -1
  344. package/dist/types/generators/server/options/feign-client.d.mts +21 -0
  345. package/dist/types/generators/server/options/index.d.mts +1 -0
  346. package/dist/types/generators/server/support/templates/field-values.d.mts +1 -1
  347. package/dist/types/jdl/converters/json-to-jdl-converter.d.ts +1 -0
  348. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/option-converter.d.ts +1 -1
  349. package/dist/types/jdl/exporters/config.d.ts +1 -0
  350. package/dist/types/jdl/index.d.ts +1 -0
  351. package/dist/types/jdl/jdl-importer.d.ts +1 -0
  352. package/dist/types/jdl/jhipster/json-entity.d.ts +2 -0
  353. package/dist/types/jdl/models/jdl-application-configuration-factory.d.ts +1 -0
  354. package/dist/types/jdl/models/jdl-application-configuration-option.d.ts +2 -2
  355. package/dist/types/jdl/models/jdl-application-configuration.d.ts +8 -6
  356. package/dist/types/jdl/models/jdl-application-factory.d.ts +1 -1
  357. package/dist/types/jdl/models/jdl-application.d.ts +8 -4
  358. package/dist/types/jdl/models/jdl-entity.d.ts +1 -0
  359. package/dist/types/jdl/models/jdl-object.d.ts +1 -1
  360. package/dist/types/jdl/models/jdl-relationship.d.ts +0 -18
  361. package/dist/types/jdl/models/list-jdl-application-configuration-option.d.ts +1 -1
  362. package/dist/types/jdl/parsing/jdl-ast-builder-visitor.d.ts +10 -0
  363. package/dist/types/jdl/parsing/jdl-parser.d.ts +3 -0
  364. package/dist/types/jdl/parsing/lexer/application-tokens.d.ts +1 -0
  365. package/dist/types/jdl/types/types.d.mts +2 -2
  366. package/dist/types/jdl/validators/entity-validator.d.ts +2 -2
  367. package/dist/types/jdl/validators/enum-validator.d.ts +2 -2
  368. package/dist/types/jdl/validators/validator.d.ts +4 -1
  369. package/package.json +41 -41
@@ -26,23 +26,27 @@
26
26
 
27
27
  <p class="lead" <%= jhiPrefix %>Translate="home.subtitle">__jhiTransformTranslate__('home.subtitle')</p>
28
28
 
29
- <div [ngSwitch]="account !== null">
30
- <div class="alert alert-success" *ngSwitchCase="true">
31
- <span id="home-logged-message" *ngIf="account" <%= jhiPrefix %>Translate="home.logged.message"
32
- [translateValues]="{ username: account.login }">__jhiTransformTranslate__('home.logged.message', { "username": "{{ account.login }}" })</span>
33
- </div>
34
-
35
- <div class="alert alert-warning" *ngSwitchCase="false">
36
- <span <%= jhiPrefix %>Translate="global.messages.info.authenticated.prefix">__jhiTransformTranslate__('global.messages.info.authenticated.prefix')</span>
37
- <a class="alert-link" (click)="login()" <%= jhiPrefix %>Translate="global.messages.info.authenticated.link">__jhiTransformTranslate__('global.messages.info.authenticated.link')</a><span <%= jhiPrefix %>Translate="global.messages.info.authenticated.suffix">__jhiTransformTranslate__('global.messages.info.authenticated.suffix')</span>
38
- </div>
39
- <%_ if (generateUserManagement) { _%>
40
-
41
- <div class="alert alert-warning" *ngSwitchCase="false">
42
- <span <%= jhiPrefix %>Translate="global.messages.info.register.noaccount">__jhiTransformTranslate__('global.messages.info.register.noaccount')</span>&nbsp;
43
- <a class="alert-link" routerLink="/account/register" <%= jhiPrefix %>Translate="global.messages.info.register.link">__jhiTransformTranslate__('global.messages.info.register.link')</a>
44
- </div>
45
- <%_ } _%>
29
+ <div>
30
+ @if (account !== null) {
31
+ <div class="alert alert-success">
32
+ @if (account) {
33
+ <span id="home-logged-message" <%= jhiPrefix %>Translate="home.logged.message"
34
+ [translateValues]="{ username: account.login }">__jhiTransformTranslate__('home.logged.message', { "username": "{{ account.login }}" })</span>
35
+ }
36
+ </div>
37
+ } @else {
38
+ <div class="alert alert-warning">
39
+ <span <%= jhiPrefix %>Translate="global.messages.info.authenticated.prefix">__jhiTransformTranslate__('global.messages.info.authenticated.prefix')</span>
40
+ <a class="alert-link" (click)="login()" <%= jhiPrefix %>Translate="global.messages.info.authenticated.link">__jhiTransformTranslate__('global.messages.info.authenticated.link')</a><span <%= jhiPrefix %>Translate="global.messages.info.authenticated.suffix">__jhiTransformTranslate__('global.messages.info.authenticated.suffix')</span>
41
+ </div>
42
+ <%_ if (generateUserManagement) { _%>
43
+
44
+ <div class="alert alert-warning">
45
+ <span <%= jhiPrefix %>Translate="global.messages.info.register.noaccount">__jhiTransformTranslate__('global.messages.info.register.noaccount')</span>&nbsp;
46
+ <a class="alert-link" routerLink="/account/register" <%= jhiPrefix %>Translate="global.messages.info.register.link">__jhiTransformTranslate__('global.messages.info.register.link')</a>
47
+ </div>
48
+ <%_ } _%>
49
+ }
46
50
  </div>
47
51
 
48
52
  <p <%= jhiPrefix %>Translate="home.question">__jhiTransformTranslate__('home.question')</p>
@@ -39,7 +39,7 @@ import { Account } from 'app/core/auth/account.model';
39
39
  standalone: true,
40
40
  selector: '<%= jhiPrefixDashed %>-home',
41
41
  templateUrl: './home.component.html',
42
- styleUrls: ['./home.component.scss'],
42
+ styleUrl: './home.component.scss',
43
43
  imports: [SharedModule, RouterModule],
44
44
  })
45
45
  export default class HomeComponent implements OnInit<% if (!authenticationTypeOauth2) { %>, OnDestroy<% } %> {
@@ -25,9 +25,9 @@
25
25
  <div class="col-md-8">
26
26
  <h1 <%= jhiPrefix %>Translate="error.title">__jhiTransformTranslate__('error.title')</h1>
27
27
 
28
- <div *ngIf="errorMessage">
29
- <div class="alert alert-danger">{{ errorMessage }}</div>
30
- </div>
28
+ @if (errorMessage) {
29
+ <div class="alert alert-danger">{{ errorMessage }}</div>
30
+ }
31
31
  </div>
32
32
  </div>
33
33
  </div>
@@ -55,10 +55,13 @@ describe('MainComponent', () => {
55
55
  beforeEach(
56
56
  waitForAsync(() => {
57
57
  TestBed.configureTestingModule({
58
+ imports: [
58
59
  <%_ if (enableTranslation) { _%>
59
- imports: [TranslateModule.forRoot(), RouterTestingModule],
60
+ TranslateModule.forRoot(),
61
+ RouterTestingModule,
60
62
  <%_ } _%>
61
- declarations: [MainComponent],
63
+ MainComponent,
64
+ ],
62
65
  providers: [
63
66
  Title,
64
67
  <%_ if (enableI18nRTL) { _%>
@@ -17,6 +17,7 @@
17
17
  limitations under the License.
18
18
  -%>
19
19
  import { Component, OnInit<% if (enableTranslation) { %>, RendererFactory2, Renderer2<% } %> } from '@angular/core';
20
+ import { RouterOutlet, Router } from '@angular/router';
20
21
  <%_ if (enableTranslation) { _%>
21
22
  import { TranslateService, LangChangeEvent } from '@ngx-translate/core';
22
23
  import dayjs from 'dayjs/esm';
@@ -24,15 +25,18 @@ import dayjs from 'dayjs/esm';
24
25
 
25
26
  import { AccountService } from 'app/core/auth/account.service';
26
27
  import { AppPageTitleStrategy } from 'app/app-page-title-strategy';
27
- import { Router } from '@angular/router';
28
28
  <%_ if (enableI18nRTL) { _%>
29
29
  import FindLanguageFromKeyPipe from 'app/shared/language/find-language-from-key.pipe';
30
30
  <%_ } _%>
31
+ import FooterComponent from '../footer/footer.component';
32
+ import PageRibbonComponent from '../profiles/page-ribbon.component';
31
33
 
32
34
  @Component({
33
35
  selector: '<%= jhiPrefixDashed %>-main',
36
+ standalone: true,
34
37
  templateUrl: './main.component.html',
35
38
  providers: [AppPageTitleStrategy],
39
+ imports: [RouterOutlet, FooterComponent, PageRibbonComponent],
36
40
  })
37
41
  export default class MainComponent implements OnInit {
38
42
  <%_ if (enableTranslation) { _%>
@@ -35,7 +35,7 @@
35
35
  >
36
36
  <fa-icon icon="bars"></fa-icon>
37
37
  </a>
38
- <div class="navbar-collapse collapse" id="navbarResponsive" [ngbCollapse]="isNavbarCollapsed" [ngSwitch]="account !== null">
38
+ <div class="navbar-collapse collapse" id="navbarResponsive" [ngbCollapse]="isNavbarCollapsed">
39
39
  <ul class="navbar-nav ms-auto">
40
40
  <li class="nav-item" routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true }">
41
41
  <a class="nav-link" routerLink="/" (click)="collapseNavbar()">
@@ -46,47 +46,52 @@
46
46
  </a>
47
47
  </li>
48
48
  <!-- jhipster-needle-add-element-to-menu - JHipster will add new menu items here -->
49
- <li
50
- *ngSwitchCase="true"
51
- ngbDropdown
52
- class="nav-item dropdown pointer"
53
- display="dynamic"
54
- routerLinkActive="active"
55
- [routerLinkActiveOptions]="{ exact: true }"
56
- >
57
- <a class="nav-link dropdown-toggle" ngbDropdownToggle href="javascript:void(0);" id="entity-menu" data-cy="entity">
58
- <span>
59
- <fa-icon icon="th-list"></fa-icon>
60
- <span <%= jhiPrefix %>Translate="global.menu.entities.main">__jhiTransformTranslate__('global.menu.entities.main')</span>
61
- </span>
62
- </a>
63
- <ul class="dropdown-menu" ngbDropdownMenu aria-labelledby="entity-menu">
49
+ @if (account !== null) {
50
+ <li
51
+ ngbDropdown
52
+ class="nav-item dropdown pointer"
53
+ display="dynamic"
54
+ routerLinkActive="active"
55
+ [routerLinkActiveOptions]="{ exact: true }"
56
+ >
57
+ <a class="nav-link dropdown-toggle" ngbDropdownToggle href="javascript:void(0);" id="entity-menu" data-cy="entity">
58
+ <span>
59
+ <fa-icon icon="th-list"></fa-icon>
60
+ <span <%= jhiPrefix %>Translate="global.menu.entities.main">__jhiTransformTranslate__('global.menu.entities.main')</span>
61
+ </span>
62
+ </a>
63
+ <ul class="dropdown-menu" ngbDropdownMenu aria-labelledby="entity-menu">
64
64
  <%_ if (applicationTypeGateway && microfrontend) { _%>
65
65
  <%_ for (const remote of microfrontends) { _%>
66
- <li *ngIf="<%= remote.lowercaseBaseName %>EntityNavbarItems.length === 0">
67
- <span class="dropdown-item">Failed to load <%= remote.lowercaseBaseName %> entities</span>
68
- </li>
69
- <li *ngFor="let entityNavbarItem of <%= remote.lowercaseBaseName %>EntityNavbarItems">
70
- <a
71
- class="dropdown-item"
72
- [routerLink]="entityNavbarItem.route"
73
- routerLinkActive="active"
74
- [routerLinkActiveOptions]="{ exact: true }"
75
- (click)="collapseNavbar()"
76
- >
77
- <fa-icon icon="asterisk" [fixedWidth]="true"></fa-icon>
78
- <span
66
+ @if (<%= remote.lowercaseBaseName %>EntityNavbarItems.length === 0) {
67
+ <li>
68
+ <span class="dropdown-item">Failed to load <%= remote.lowercaseBaseName %> entities</span>
69
+ </li>
70
+ }
71
+ @for (entityNavbarItem of <%= remote.lowercaseBaseName %>EntityNavbarItems; track $index) {
72
+ <li>
73
+ <a
74
+ class="dropdown-item"
75
+ [routerLink]="entityNavbarItem.route"
76
+ routerLinkActive="active"
77
+ [routerLinkActiveOptions]="{ exact: true }"
78
+ (click)="collapseNavbar()"
79
+ >
80
+ <fa-icon icon="asterisk" [fixedWidth]="true"></fa-icon>
81
+ <span
79
82
  <%_ if (enableTranslation) { _%>
80
- [<%= jhiPrefix %>Translate]="entityNavbarItem.translationKey"
83
+ [<%= jhiPrefix %>Translate]="entityNavbarItem.translationKey"
81
84
  <%_ } _%>
82
- >{{entityNavbarItem.name}}</span>
83
- </a>
84
- </li>
85
+ >{{entityNavbarItem.name}}</span>
86
+ </a>
87
+ </li>
88
+ }
85
89
  <%_ } _%>
86
90
  <%_ } _%>
87
- <!-- jhipster-needle-add-entity-to-menu - JHipster will add entities to the menu here -->
88
- </ul>
89
- </li>
91
+ <!-- jhipster-needle-add-entity-to-menu - JHipster will add entities to the menu here -->
92
+ </ul>
93
+ </li>
94
+ }
90
95
  <li
91
96
  *<%= jhiPrefix %>HasAnyAuthority="'ROLE_ADMIN'"
92
97
  ngbDropdown
@@ -153,26 +158,31 @@
153
158
  </li>
154
159
  <%_ } _%>
155
160
  <%_ if (!applicationTypeMicroservice) { _%>
156
- <li *ngIf="openAPIEnabled">
161
+ @if (openAPIEnabled) {
162
+ <li>
157
163
  <a class="dropdown-item" routerLink="/admin/docs" routerLinkActive="active" (click)="collapseNavbar()">
158
164
  <fa-icon icon="book" [fixedWidth]="true"></fa-icon>
159
165
  <span <%= jhiPrefix %>Translate="global.menu.admin.apidocs">__jhiTransformTranslate__('global.menu.admin.apidocs')</span>
160
166
  </a>
161
167
  </li>
168
+ }
162
169
  <%_ } _%>
163
170
  <!-- jhipster-needle-add-element-to-admin-menu - JHipster will add entities to the admin menu here -->
164
171
  <%_ if (devDatabaseTypeH2Any || databaseTypeCouchbase) { _%>
165
- <li *ngIf="!inProduction">
172
+ @if (!inProduction) {
173
+ <li>
166
174
  <a class="dropdown-item" href="<% if (databaseTypeCouchbase) { %>http://localhost:8091/<% } else if (reactive) { %> http://localhost:8092/ <% } else { %>./h2-console/<% } %>" target="_tab" (click)="collapseNavbar()">
167
175
  <fa-icon icon="database" [fixedWidth]="true"></fa-icon>
168
176
  <span <%= jhiPrefix %>Translate="global.menu.admin.database">__jhiTransformTranslate__('global.menu.admin.database')</span>
169
177
  </a>
170
178
  </li>
179
+ }
171
180
  <%_ } _%>
172
181
  </ul>
173
182
  </li>
174
183
  <%_ if (enableTranslation) { _%>
175
- <li ngbDropdown class="nav-item dropdown pointer" display="dynamic" *ngIf="languages && languages.length > 1">
184
+ @if (languages && languages.length > 1) {
185
+ <li ngbDropdown class="nav-item dropdown pointer" display="dynamic">
176
186
  <a class="nav-link dropdown-toggle" ngbDropdownToggle href="javascript:void(0);" id="languagesnavBarDropdown">
177
187
  <span>
178
188
  <fa-icon icon="flag"></fa-icon>
@@ -180,65 +190,74 @@
180
190
  </span>
181
191
  </a>
182
192
  <ul class="dropdown-menu" ngbDropdownMenu aria-labelledby="languagesnavBarDropdown">
183
- <li *ngFor="let language of languages">
193
+ @for (language of languages; track $index) {
194
+ <li>
184
195
  <a class="dropdown-item" [<%= jhiPrefix %>ActiveMenu]="language" href="javascript:void(0);" (click)="changeLanguage(language);collapseNavbar();">{{ language | findLanguageFromKey }}</a>
185
196
  </li>
197
+ }
186
198
  </ul>
187
199
  </li>
200
+ }
188
201
  <%_ } _%>
189
202
  <li ngbDropdown class="nav-item dropdown pointer" display="dynamic" routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true }">
190
203
  <a class="nav-link dropdown-toggle" ngbDropdownToggle href="javascript:void(0);" id="account-menu" data-cy="accountMenu">
191
- <span *ngIf="!account?.imageUrl">
204
+ @if (!account?.imageUrl) {
205
+ <span>
192
206
  <fa-icon icon="user"></fa-icon>
193
207
  <span <%= jhiPrefix %>Translate="global.menu.account.main">__jhiTransformTranslate__('global.menu.account.main')</span>
194
208
  </span>
195
- <span *ngIf="account?.imageUrl">
209
+ } @else {
210
+ <span>
196
211
  <img [src]="account!.imageUrl" class="profile-image rounded-circle" alt="Avatar" />
197
212
  </span>
213
+ }
198
214
  </a>
199
215
  <ul class="dropdown-menu" ngbDropdownMenu aria-labelledby="account-menu">
216
+ @if (account !== null) {
200
217
  <%_ if (generateUserManagement) { _%>
201
- <li *ngSwitchCase="true">
202
- <a class="dropdown-item" routerLink="/account/settings" routerLinkActive="active" (click)="collapseNavbar()" data-cy="settings">
203
- <fa-icon icon="wrench" [fixedWidth]="true"></fa-icon>
204
- <span <%= jhiPrefix %>Translate="global.menu.account.settings">__jhiTransformTranslate__('global.menu.account.settings')</span>
205
- </a>
206
- </li>
207
- <li *ngSwitchCase="true">
208
- <a class="dropdown-item" routerLink="/account/password" routerLinkActive="active" (click)="collapseNavbar()" data-cy="passwordItem">
209
- <fa-icon icon="lock" [fixedWidth]="true"></fa-icon>
210
- <span <%= jhiPrefix %>Translate="global.menu.account.password">__jhiTransformTranslate__('global.menu.account.password')</span>
211
- </a>
212
- </li>
218
+ <li>
219
+ <a class="dropdown-item" routerLink="/account/settings" routerLinkActive="active" (click)="collapseNavbar()" data-cy="settings">
220
+ <fa-icon icon="wrench" [fixedWidth]="true"></fa-icon>
221
+ <span <%= jhiPrefix %>Translate="global.menu.account.settings">__jhiTransformTranslate__('global.menu.account.settings')</span>
222
+ </a>
223
+ </li>
224
+ <li>
225
+ <a class="dropdown-item" routerLink="/account/password" routerLinkActive="active" (click)="collapseNavbar()" data-cy="passwordItem">
226
+ <fa-icon icon="lock" [fixedWidth]="true"></fa-icon>
227
+ <span <%= jhiPrefix %>Translate="global.menu.account.password">__jhiTransformTranslate__('global.menu.account.password')</span>
228
+ </a>
229
+ </li>
213
230
  <%_ } _%>
214
231
  <%_ if (authenticationTypeSession && generateUserManagement) { _%>
215
- <li *ngSwitchCase="true">
216
- <a class="dropdown-item" routerLink="/account/sessions" routerLinkActive="active" (click)="collapseNavbar()">
217
- <fa-icon icon="cloud" [fixedWidth]="true"></fa-icon>
218
- <span <%= jhiPrefix %>Translate="global.menu.account.sessions">__jhiTransformTranslate__('global.menu.account.sessions')</span>
219
- </a>
220
- </li>
232
+ <li>
233
+ <a class="dropdown-item" routerLink="/account/sessions" routerLinkActive="active" (click)="collapseNavbar()">
234
+ <fa-icon icon="cloud" [fixedWidth]="true"></fa-icon>
235
+ <span <%= jhiPrefix %>Translate="global.menu.account.sessions">__jhiTransformTranslate__('global.menu.account.sessions')</span>
236
+ </a>
237
+ </li>
221
238
  <%_ } _%>
222
- <li *ngSwitchCase="true">
223
- <a class="dropdown-item" (click)="logout()" id="logout" data-cy="logout">
224
- <fa-icon icon="sign-out-alt" [fixedWidth]="true"></fa-icon>
225
- <span <%= jhiPrefix %>Translate="global.menu.account.logout">__jhiTransformTranslate__('global.menu.account.logout')</span>
226
- </a>
227
- </li>
228
- <li *ngSwitchCase="false">
229
- <a class="dropdown-item" (click)="login()" id="login" data-cy="login">
230
- <fa-icon icon="sign-in-alt" [fixedWidth]="true"></fa-icon>
231
- <span <%= jhiPrefix %>Translate="global.menu.account.login">__jhiTransformTranslate__('global.menu.account.login')</span>
232
- </a>
233
- </li>
239
+ <li>
240
+ <a class="dropdown-item" (click)="logout()" id="logout" data-cy="logout">
241
+ <fa-icon icon="sign-out-alt" [fixedWidth]="true"></fa-icon>
242
+ <span <%= jhiPrefix %>Translate="global.menu.account.logout">__jhiTransformTranslate__('global.menu.account.logout')</span>
243
+ </a>
244
+ </li>
245
+ } @else {
246
+ <li>
247
+ <a class="dropdown-item" (click)="login()" id="login" data-cy="login">
248
+ <fa-icon icon="sign-in-alt" [fixedWidth]="true"></fa-icon>
249
+ <span <%= jhiPrefix %>Translate="global.menu.account.login">__jhiTransformTranslate__('global.menu.account.login')</span>
250
+ </a>
251
+ </li>
234
252
  <%_ if (generateUserManagement) { _%>
235
- <li *ngSwitchCase="false">
236
- <a class="dropdown-item" routerLink="/account/register" routerLinkActive="active" (click)="collapseNavbar()" data-cy="register">
237
- <fa-icon icon="user-plus" [fixedWidth]="true"></fa-icon>
238
- <span <%= jhiPrefix %>Translate="global.menu.account.register">__jhiTransformTranslate__('global.menu.account.register')</span>
239
- </a>
240
- </li>
253
+ <li>
254
+ <a class="dropdown-item" routerLink="/account/register" routerLinkActive="active" (click)="collapseNavbar()" data-cy="register">
255
+ <fa-icon icon="user-plus" [fixedWidth]="true"></fa-icon>
256
+ <span <%= jhiPrefix %>Translate="global.menu.account.register">__jhiTransformTranslate__('global.menu.account.register')</span>
257
+ </a>
258
+ </li>
241
259
  <%_ } _%>
260
+ }
242
261
  </ul>
243
262
  </li>
244
263
  </ul>
@@ -67,6 +67,6 @@ Logo styles
67
67
  width: 45px;
68
68
  display: inline-block;
69
69
  vertical-align: middle;
70
- background: url('../../../content/images/logo-jhipster.png') no-repeat center center;
70
+ background: url('/content/images/logo-jhipster.png') no-repeat center center;
71
71
  background-size: contain;
72
72
  }
@@ -44,7 +44,7 @@ import NavbarItem from './navbar-item.model';
44
44
  standalone: true,
45
45
  selector: '<%= jhiPrefixDashed %>-navbar',
46
46
  templateUrl: './navbar.component.html',
47
- styleUrls: ['./navbar.component.scss'],
47
+ styleUrl: './navbar.component.scss',
48
48
  imports: [
49
49
  RouterModule,
50
50
  SharedModule,
@@ -17,7 +17,7 @@
17
17
  limitations under the License.
18
18
  -%>
19
19
  /* ==========================================================================
20
- Developement Ribbon
20
+ Development Ribbon
21
21
  ========================================================================== */
22
22
  .ribbon {
23
23
  background-color: rgba(170, 0, 0, 0.5);
@@ -27,11 +27,13 @@ import { ProfileService } from './profile.service';
27
27
  standalone: true,
28
28
  selector: '<%= jhiPrefixDashed %>-page-ribbon',
29
29
  template: `
30
- <div class="ribbon" *ngIf="ribbonEnv$ | async as ribbonEnv">
31
- <a href=""<% if (enableTranslation) { %> <%= jhiPrefix %>Translate="global.ribbon.{{ ribbonEnv }}"<% } %>>{{ __jhiTransformTranslateStringify__('global.ribbon')[ribbonEnv] || '' }}</a>
32
- </div>
30
+ @if (ribbonEnv$ | async; as ribbonEnv) {
31
+ <div class="ribbon">
32
+ <a href=""<% if (enableTranslation) { %> <%= jhiPrefix %>Translate="global.ribbon.{{ ribbonEnv }}"<% } %>>{{ __jhiTransformTranslateStringify__('global.ribbon')[ribbonEnv] || '' }}</a>
33
+ </div>
34
+ }
33
35
  `,
34
- styleUrls: ['./page-ribbon.component.scss'],
36
+ styleUrl: './page-ribbon.component.scss',
35
37
  imports: [SharedModule],
36
38
  })
37
39
  export default class PageRibbonComponent implements OnInit {
@@ -20,12 +20,12 @@
20
20
  <div class="d-flex justify-content-center">
21
21
  <div class="col-lg-6 col-md-8 col-sm-10">
22
22
  <h1 <%= jhiPrefix %>Translate="login.title" data-cy="loginTitle">__jhiTransformTranslate__('login.title')</h1>
23
- <div
24
- class="alert alert-danger"
25
- *ngIf="authenticationError"
23
+ @if (authenticationError) {
24
+ <div class="alert alert-danger"
26
25
  <%= jhiPrefix %>Translate="login.messages.error.authentication"
27
26
  data-cy="loginError"
28
27
  >__jhiTransformTranslate__('login.messages.error.authentication')</div>
28
+ }
29
29
  <form class="form" role="form" (ngSubmit)="login()" [formGroup]="loginForm">
30
30
  <div class="mb-3">
31
31
  <label class="username-label" for="username" <%= jhiPrefix %>Translate="global.form.username.label">__jhiTransformTranslate__('global.form["username.label"]')</label>
@@ -17,9 +17,13 @@
17
17
  limitations under the License.
18
18
  -%>
19
19
  <div class="alerts" role="alert">
20
- <div *ngFor="let alert of alerts" [ngClass]="setClasses(alert)">
21
- <ngb-alert *ngIf="alert.message" [type]="alert.type" (closed)="close(alert)">
20
+ @for (alert of alerts; track $index) {
21
+ <div [ngClass]="setClasses(alert)">
22
+ @if (alert.message) {
23
+ <ngb-alert [type]="alert.type" (closed)="close(alert)">
22
24
  <pre [innerHTML]="alert.message"></pre>
23
25
  </ngb-alert>
26
+ }
24
27
  </div>
28
+ }
25
29
  </div>
@@ -17,9 +17,13 @@
17
17
  limitations under the License.
18
18
  -%>
19
19
  <div class="alerts" role="alert">
20
- <div *ngFor="let alert of alerts" [ngClass]="setClasses(alert)">
21
- <ngb-alert *ngIf="alert.message" [type]="alert.type" (closed)="close(alert)">
20
+ @for (alert of alerts; track $index) {
21
+ <div [ngClass]="setClasses(alert)">
22
+ @if (alert.message) {
23
+ <ngb-alert [type]="alert.type" (closed)="close(alert)">
22
24
  <pre [innerHTML]="alert.message"></pre>
23
25
  </ngb-alert>
26
+ }
24
27
  </div>
28
+ }
25
29
  </div>
@@ -1,12 +1,16 @@
1
- <div class="filter-display" *ngIf="filters.hasAnyFilterSet()">
1
+ @if (filters.hasAnyFilterSet()) {
2
+ <div class="filter-display">
2
3
  <span <%= jhiPrefix %>Translate="entity.filters.set">__jhiTransformTranslate__('entity.filters.set')</span>
3
4
  <fa-icon icon="times" (click)="clearAllFilters()" title="<% if (enableTranslation) { %>{{ 'entity.filters.clearAll' | translate }}<% } else { %>__jhiTransformTranslate__('entity.filters.clearAll')<% } %>"></fa-icon>
4
5
  <ul>
5
- <ng-container *ngFor="let filterOption of filters.filterOptions">
6
- <li *ngFor="let value of filterOption.values">
7
- <span>{{ filterOption.name }}:</span> {{ value }}
8
- <fa-icon icon="times" (click)="clearFilter(filterOption.name, value)" title="<% if (enableTranslation) { %>{{ 'entity.filters.clear' | translate }}<% } else { %>__jhiTransformTranslate__('entity.filters.clear')<% } %>"></fa-icon>
9
- </li>
10
- </ng-container>
6
+ @for (filterOption of filters.filterOptions; track filterOption.name) {
7
+ @for (value of filterOption.values; track value) {
8
+ <li>
9
+ <span>{{ filterOption.name }}:</span> {{ value }}
10
+ <fa-icon icon="times" (click)="clearFilter(filterOption.name, value)" title="<% if (enableTranslation) { %>{{ 'entity.filters.clear' | translate }}<% } else { %>__jhiTransformTranslate__('entity.filters.clear')<% } %>"></fa-icon>
11
+ </li>
12
+ }
13
+ }
11
14
  </ul>
12
15
  </div>
16
+ }
@@ -75,7 +75,7 @@ describe('FilterModel Tests', () => {
75
75
  });
76
76
 
77
77
  describe('clear', () => {
78
- it("removes empty filters and dosn't emit next element", () => {
78
+ it("removes empty filters and doesn't emit next element", () => {
79
79
  const filters = new FilterOptions([new FilterOption('foo'), new FilterOption('bar')]);
80
80
  jest.spyOn(filters.filterChanges, 'next');
81
81
 
@@ -30,7 +30,7 @@ import SortDirective from './sort.directive';
30
30
  <table>
31
31
  <thead>
32
32
  <tr <%= jhiPrefix %>Sort [(predicate)]="predicate" [(ascending)]="ascending" (sortChange)="transition($event)">
33
- <th <%= jhiPrefix %>SortBy="name">ID<fa-icon *ngIf="sortAllowed" [icon]="'sort'"></fa-icon></th>
33
+ <th <%= jhiPrefix %>SortBy="name">ID@if (sortAllowed) {<fa-icon [icon]="'sort'"></fa-icon>}</th>
34
34
  </tr>
35
35
  </thead>
36
36
  </table>
@@ -55,8 +55,8 @@ describe('Directive: SortByDirective', () => {
55
55
 
56
56
  beforeEach(() => {
57
57
  TestBed.configureTestingModule({
58
- imports: [SortDirective, SortByDirective],
59
- declarations: [TestSortByDirectiveComponent, FaIconComponent],
58
+ imports: [SortDirective, SortByDirective, FaIconComponent],
59
+ declarations: [TestSortByDirectiveComponent],
60
60
  });
61
61
  fixture = TestBed.createComponent(TestSortByDirectiveComponent);
62
62
  component = fixture.componentInstance;
@@ -17,18 +17,18 @@
17
17
  limitations under the License.
18
18
  -%>
19
19
  import { enableProdMode } from '@angular/core';
20
- import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
20
+ import { bootstrapApplication } from '@angular/platform-browser';
21
+ import { appConfig } from './app/app.config';
22
+ import AppComponent from './app/app.component';
21
23
 
22
24
  import { DEBUG_INFO_ENABLED } from './app/app.constants';
23
- import { AppModule } from './app/app.module';
24
25
 
25
26
  // disable debug data on prod profile to improve performance
26
27
  if (!DEBUG_INFO_ENABLED) {
27
28
  enableProdMode();
28
29
  }
29
30
 
30
- platformBrowserDynamic()
31
- .bootstrapModule(AppModule, { preserveWhitespaces: true })
31
+ bootstrapApplication(AppComponent, appConfig)
32
32
  // eslint-disable-next-line no-console
33
33
  .then(() => console.log('Application started'))
34
- .catch(err => console.error(err));
34
+ .catch((err) => console.error(err));
@@ -36,7 +36,7 @@ h4 {
36
36
  }
37
37
 
38
38
  <%_ if (clientThemeNone) { _%>
39
- /* Increase contrast of links to get 100% on Lighthouse Accessability Audit. Override this color if you want to change the link color, or use a Bootswatch theme */
39
+ /* Increase contrast of links to get 100% on Lighthouse Accessibility Audit. Override this color if you want to change the link color, or use a Bootswatch theme */
40
40
  a {
41
41
  color: #533f03;
42
42
  font-weight: bold;