generator-jhipster 8.4.0 → 8.6.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.
- package/README.md +3 -4
- package/dist/cli/commands.mjs +2 -0
- package/dist/cli/environment-builder.mjs +5 -0
- package/dist/cli/program.mjs +10 -4
- package/dist/generators/angular/entity-files-angular.js +6 -7
- package/dist/generators/angular/resources/package.json +20 -20
- package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +4 -3
- package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.spec.ts.ejs +4 -5
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +6 -5
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +3 -6
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +5 -5
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.ts.ejs +3 -6
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.spec.ts.ejs +2 -3
- package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.ts.ejs +3 -6
- package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +3 -4
- package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +4 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +11 -11
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +0 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +3 -4
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/service/user-management.service.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/app-page-title-strategy.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +0 -1
- package/dist/generators/angular/templates/src/main/webapp/app/app.config.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/config/uib-pagination.config.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +7 -5
- package/dist/generators/angular/templates/src/main/webapp/app/core/auth/auth-jwt.service.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/core/auth/user-route-access.service.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/auth-expired.interceptor.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/auth.interceptor.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/error-handler.interceptor.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/core/util/alert.service.spec.ts.ejs +6 -6
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +0 -3
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.spec.ts.ejs +3 -4
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.spec.ts.ejs +2 -3
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/route/_entityFile_-routing-resolve.service.spec.ts.ejs +4 -5
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/service/_entityFile_.service.spec.ts.ejs +5 -3
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +5 -6
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.ts.ejs +11 -17
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/error/error.component.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/active-menu.directive.ts.ejs +6 -6
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +3 -2
- package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.ts.ejs +3 -4
- package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.spec.ts.ejs +11 -9
- package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.ts.ejs +3 -8
- package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +6 -2
- package/dist/generators/angular/templates/src/main/webapp/app/shared/language/find-language-from-key.pipe.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/shared/language/translation.module.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.spec.ts.ejs +10 -10
- package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.ts.ejs +6 -7
- package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort.directive.spec.ts.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/content/scss/global.scss.ejs +2 -0
- package/dist/generators/app/generator.js +4 -13
- package/dist/generators/base/command.js +1 -0
- package/dist/generators/base/generator.js +22 -28
- package/dist/generators/base/internal/command.js +13 -0
- package/dist/generators/base/internal/index.js +1 -0
- package/dist/generators/base/priorities.js +12 -1
- package/dist/generators/base/shared-data.js +74 -2
- package/dist/generators/base/support/config.js +1 -1
- package/dist/generators/base/support/jhipster7-context.js +155 -52
- package/dist/generators/base-application/generator.js +15 -3
- package/dist/generators/base-application/priorities.js +1 -0
- package/dist/generators/base-application/support/prepare-entity.js +7 -8
- package/dist/generators/base-application/support/prepare-relationship.js +3 -2
- package/dist/generators/base-core/generator.js +132 -63
- package/dist/generators/bootstrap/generator.js +1 -1
- package/dist/generators/bootstrap/support/eslint-worker.js +14 -12
- package/dist/generators/bootstrap/support/multi-step-transform/template-file.js +6 -1
- package/dist/generators/bootstrap-application/generator.js +1 -1
- package/dist/generators/bootstrap-application-base/generator.js +7 -3
- package/dist/generators/bootstrap-application-client/generator.js +5 -1
- package/dist/generators/bootstrap-application-server/generator.js +1 -0
- package/dist/generators/ci-cd/generator.js +1 -1
- package/dist/generators/ci-cd/templates/docker-registry.yml.ejs +0 -1
- package/dist/generators/ci-cd/templates/jenkins/jenkins.yml.ejs +0 -1
- package/dist/generators/client/command.js +2 -2
- package/dist/generators/client/generator.js +2 -3
- package/dist/generators/client/generators/common/command.js +5 -0
- package/dist/generators/client/generators/common/generator.js +79 -0
- package/dist/generators/client/generators/common/index.js +20 -0
- package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/headers.ts.ejs +57 -0
- package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/problem-details.ts.ejs +51 -0
- package/dist/generators/client/resources/package.json +6 -6
- package/dist/generators/client/support/filter-entities.js +1 -1
- package/dist/generators/client/templates/.eslintignore.ejs +9 -5
- package/dist/generators/client/templates/README.md.jhi.client.ejs +29 -20
- package/dist/generators/client/templates/src/main/webapp/index.html.ejs +1 -1
- package/dist/generators/common/generator.js +5 -0
- package/dist/generators/common/resources/package.json +2 -2
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/login-page.cy.ts.ejs +4 -4
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/password-page.cy.ts.ejs +2 -2
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/register-page.cy.ts.ejs +1 -1
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/reset-password-page.cy.ts.ejs +1 -1
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/entity/_entity_.cy.ts.ejs +10 -10
- package/dist/generators/docker/templates/docker/keycloak.yml.ejs +2 -1
- package/dist/generators/docker/templates/docker/mariadb.yml.ejs +1 -1
- package/dist/generators/docker/templates/docker/mysql.yml.ejs +1 -2
- package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +14 -3
- package/dist/generators/docker/templates/docker/realm-config/keycloak-health-check.sh +2 -2
- package/dist/generators/docker-compose/templates/docker-compose.yml.ejs +1 -0
- package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +14 -3
- package/dist/generators/docker-compose/templates/realm-config/keycloak-health-check.sh +2 -2
- package/dist/generators/entity/generator.js +2 -10
- package/dist/generators/entity/prompts.js +6 -11
- package/dist/generators/feign-client/templates/src/main/java/_package_/client/AuthorizationHeaderUtil.java.ejs +1 -1
- package/dist/generators/gatling/README.md +15 -0
- package/dist/generators/gatling/generator.js +0 -1
- package/dist/generators/gatling/templates/src/test/java/gatling/simulations/_entityClass_GatlingTest.java.ejs +2 -10
- package/dist/generators/generate-blueprint/command.js +16 -0
- package/dist/generators/generate-blueprint/files.js +11 -1
- package/dist/generators/generate-blueprint/generator.js +34 -17
- package/dist/generators/generate-blueprint/resources/package.json +3 -1
- package/dist/generators/generate-blueprint/templates/.blueprint/cli/commands.mjs.ejs +6 -0
- package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/command.mjs.ejs +20 -0
- package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/generator.mjs.ejs +9 -13
- package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/build-matrix.mjs.ejs +22 -0
- package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/generator.mjs.ejs +20 -0
- package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/index.mjs.ejs +1 -0
- package/dist/generators/generate-blueprint/templates/.github/workflows/build-cache.yml.ejs +39 -0
- package/dist/generators/generate-blueprint/templates/.github/workflows/samples.yml.ejs +105 -0
- package/dist/generators/generate-blueprint/templates/.prettierignore.jhi.blueprint.ejs +1 -1
- package/dist/generators/generate-blueprint/templates/README.md.ejs +16 -8
- package/dist/generators/generate-blueprint/templates/eslint.config.js.ejs +33 -0
- package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +1 -0
- package/dist/generators/generator-constants.js +2 -2
- package/dist/generators/gradle/templates/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/dist/generators/heroku/generator.js +1 -1
- package/dist/generators/info/generator.js +1 -3
- package/dist/generators/info/support/extract-info.js +60 -0
- package/dist/generators/info/support/index.js +1 -0
- package/dist/generators/init/generator.js +2 -2
- package/dist/generators/init/resources/.node-version +1 -1
- package/dist/generators/init/resources/package.json +2 -2
- package/dist/generators/java/generators/bootstrap/generator.js +9 -2
- package/dist/generators/java/generators/build-tool/command.js +6 -3
- package/dist/generators/java/generators/domain/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.ejs +1 -5
- package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Asserts.java.ejs +3 -3
- package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Test.java.ejs +3 -3
- package/dist/generators/java/generators/node/templates/npmw +1 -5
- package/dist/generators/java/support/add-java-annotation.js +28 -7
- package/dist/generators/java/support/generated-annotation-transform.js +1 -1
- package/dist/generators/java/support/index.js +1 -1
- package/dist/generators/jdl/generator.js +7 -7
- package/dist/generators/kubernetes/files.js +1 -1
- package/dist/generators/kubernetes/templates/db/mysql.yml.ejs +1 -1
- package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +14 -3
- package/dist/generators/languages/generator.js +5 -2
- package/dist/generators/liquibase/templates/src/main/java/_package_/config/LiquibaseConfiguration.java.ejs +1 -1
- package/dist/generators/maven/command.js +15 -0
- package/dist/generators/maven/generator.js +6 -1
- package/dist/generators/maven/index.js +1 -0
- package/dist/generators/maven/internal/xml-store.js +7 -6
- package/dist/generators/maven/support/pom-store.js +24 -9
- package/dist/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +2 -2
- package/dist/generators/maven/templates/mvnw +185 -243
- package/dist/generators/maven/templates/mvnw.cmd +121 -180
- package/dist/generators/react/entity-files-react.js +7 -7
- package/dist/generators/react/generator.js +10 -0
- package/dist/generators/react/resources/package.json +28 -28
- package/dist/generators/react/templates/src/main/webapp/app/app.tsx.ejs +9 -0
- package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.spec.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.ts.ejs +80 -87
- package/dist/generators/react/templates/src/main/webapp/app/config/store.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/config/translation.ts.ejs +4 -0
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.tsx.ejs +3 -3
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.reducer.ts.ejs +12 -7
- package/dist/generators/react/templates/src/main/webapp/app/modules/home/home.tsx.ejs +15 -1
- package/dist/generators/react/templates/src/main/webapp/app/modules/login/login-redirect.tsx.ejs +4 -0
- package/dist/generators/react/templates/src/main/webapp/app/modules/login/logout.tsx.ejs +5 -3
- package/dist/generators/react/templates/src/main/webapp/app/routes.tsx.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/shared/auth/private-route.spec.tsx.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/shared/auth/private-route.tsx.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header.tsx.ejs +0 -9
- package/dist/generators/react/templates/src/main/webapp/app/shared/layout/menus/account.spec.tsx.ejs +1 -3
- package/dist/generators/react/templates/src/main/webapp/app/shared/layout/menus/account.tsx.ejs +29 -6
- package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +2 -3
- package/dist/generators/react/templates/src/main/webapp/app/shared/util/url-utils.ts.ejs +1 -1
- package/dist/generators/server/command.js +0 -11
- package/dist/generators/server/generator.js +16 -75
- package/dist/generators/server/jdl/application-definition.js +3 -1
- package/dist/generators/server/resources/Dockerfile +13 -13
- package/dist/generators/server/resources/gradle/libs.versions.toml +9 -7
- package/dist/generators/server/resources/pom.xml +16 -16
- package/dist/generators/server/support/config.js +4 -8
- package/dist/generators/server/support/prepare-entity.js +5 -6
- package/dist/generators/server/support/relationship.js +5 -2
- package/dist/generators/server/templates/build.gradle.ejs +5 -3
- package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +2 -1
- package/dist/generators/server/templates/gradle/profile_prod.gradle.ejs +2 -1
- package/dist/generators/server/templates/gradle.properties.ejs +1 -1
- package/dist/generators/server/templates/pom.xml.ejs +7 -31
- package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/service/dto/_dtoClass_.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/config/AsyncConfiguration.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/config/Constants.java.ejs +0 -2
- package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +1 -18
- package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +1 -15
- package/dist/generators/server/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs +1 -21
- package/dist/generators/server/templates/src/main/java/_package_/config/WebConfigurer.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/security/DomainUserDetailsService.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/security/PersistentTokenRememberMeServices.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/security/SecurityUtils.java.ejs +65 -5
- package/dist/generators/server/templates/src/main/java/_package_/security/oauth2/AudienceValidator.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/service/MailService.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/service/dto/UserDTO.java.ejs +34 -0
- package/dist/generators/server/templates/src/main/java/_package_/service/mapper/UserMapper.java.ejs +8 -4
- package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource_oauth2.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource_skipUserManagement.java.ejs +44 -10
- package/dist/generators/server/templates/src/main/java/_package_/web/rest/AuthenticateController.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +1 -1
- package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +60 -22
- package/dist/generators/server/templates/src/main/resources/config/bootstrap.yml.ejs +1 -1
- package/dist/generators/server/templates/src/main/resources/swagger/api.yml.ejs +1 -1
- package/dist/generators/server/templates/src/test/java/_package_/security/DomainUserDetailsServiceIT.java.ejs +31 -13
- package/dist/generators/server/templates/src/test/java/_package_/service/mapper/UserMapperTest.java.ejs +84 -17
- package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs +62 -6
- package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT_oauth2.java.ejs +22 -0
- package/dist/generators/server/templates/src/test/resources/config/application.yml.ejs +20 -10
- package/dist/generators/spring-boot/command.js +117 -6
- package/dist/generators/spring-boot/files.js +0 -5
- package/dist/generators/spring-boot/generator.js +44 -9
- package/dist/generators/spring-boot/prompts.js +6 -70
- package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +374 -582
- package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/UserService.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/_entityClass_QueryService.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/impl/_entityClass_ServiceImpl.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/PublicUserResource.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/UserResource.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/_entityClass_Resource.java.ejs +1 -1
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs +47 -11
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/PublicUserResourceIT.java.ejs +60 -24
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs +195 -318
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +58 -51
- package/dist/generators/spring-cache/internal/dependencies.js +2 -2
- package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +1 -1
- package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheConfiguration.java.ejs +3 -3
- package/dist/generators/spring-cloud/generators/gateway/command.js +10 -1
- package/dist/generators/spring-cloud/generators/gateway/generator.js +13 -0
- package/dist/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.js +6 -0
- package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/broker/KafkaConsumer_imperative.java.ejs +1 -1
- package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/broker/KafkaConsumer_reactive.java.ejs +1 -1
- package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/web/rest/KafkaResource_imperative.java.ejs +1 -1
- package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/main/java/_package_/web/rest/KafkaResource_reactive.java.ejs +1 -1
- package/dist/generators/spring-data-cassandra/generator.js +2 -2
- package/dist/generators/spring-data-couchbase/templates/src/main/java/_package_/config/DatabaseConfiguration.java.ejs +1 -1
- package/dist/generators/spring-data-neo4j/templates/src/main/java/_package_/config/DatabaseConfiguration.java_neo4j.ejs +18 -2
- package/dist/generators/spring-data-relational/templates/src/main/java/_package_/config/DatabaseConfiguration.java.ejs +1 -1
- package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +3 -1
- package/dist/generators/vue/entity-files-vue.js +7 -7
- package/dist/generators/vue/resources/package.json +21 -21
- package/dist/generators/vue/templates/.eslintrc.cjs.ejs +7 -0
- package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.spec.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-details.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.vue.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/shared/alert/alert.service.spec.ts.ejs +8 -8
- package/dist/generators/vue/templates/src/main/webapp/app/shared/data/data-utils.service.spec.ts.ejs +1 -1
- package/dist/generators/vue/templates/tsconfig.app.json.ejs +1 -1
- package/dist/generators/vue/templates/vite.config.mts.ejs +5 -4
- package/dist/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.js +1 -1
- package/dist/jdl/converters/jdl-to-json/jdl-to-json-field-converter.js +4 -4
- package/dist/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.js +9 -9
- package/dist/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.js +2 -2
- package/dist/jdl/converters/json-to-jdl-application-converter.js +1 -1
- package/dist/jdl/converters/json-to-jdl-converter.js +6 -5
- package/dist/jdl/converters/json-to-jdl-entity-converter.js +14 -14
- package/dist/jdl/converters/json-to-jdl-option-converter.js +1 -2
- package/dist/jdl/converters/parsed-jdl-to-jdl-object/application-converter.js +1 -1
- package/dist/jdl/converters/parsed-jdl-to-jdl-object/option-converter.js +2 -2
- package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +7 -6
- package/dist/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.js +1 -1
- package/dist/jdl/exporters/applications/jhipster-application-formatter.js +16 -23
- package/dist/jdl/exporters/config.js +1 -0
- package/dist/jdl/exporters/jhipster-deployment-exporter.js +5 -5
- package/dist/jdl/exporters/jhipster-entity-exporter.js +1 -1
- package/dist/jdl/jdl-importer.js +22 -20
- package/dist/jdl/jhipster/binary-options.js +12 -8
- package/dist/jdl/jhipster/json-entity.js +1 -1
- package/dist/jdl/models/abstract-jdl-option.js +2 -2
- package/dist/jdl/models/jdl-application-configuration-factory.js +2 -0
- package/dist/jdl/models/jdl-binary-option.js +2 -2
- package/dist/jdl/models/jdl-deployment.js +11 -0
- package/dist/jdl/models/jdl-entity.js +1 -1
- package/dist/jdl/models/jdl-enum.js +1 -1
- package/dist/jdl/models/jdl-enums.js +0 -18
- package/dist/jdl/models/jdl-field.js +2 -2
- package/dist/jdl/models/jdl-object-wrapper.js +1 -0
- package/dist/jdl/models/jdl-object.js +23 -45
- package/dist/jdl/models/jdl-options.js +0 -18
- package/dist/jdl/models/jdl-relationships.js +8 -16
- package/dist/jdl/models/jdl-unary-option.js +1 -1
- package/dist/jdl/models/list-jdl-application-configuration-option.js +5 -2
- package/dist/jdl/parsing/jdl-ast-builder-visitor.js +12 -0
- package/dist/jdl/parsing/jdl-parser.js +14 -0
- package/dist/jdl/parsing/lexer/lexer.js +17 -11
- package/dist/jdl/parsing/validator.js +16 -2
- package/dist/jdl/readers/json-reader.js +1 -1
- package/dist/jdl/utils/array-utils.js +6 -0
- package/dist/jdl/utils/set-utils.js +3 -2
- package/dist/jdl/validators/jdl-without-application-validator.js +2 -2
- package/dist/lib/eslint/base.js +25 -0
- package/dist/lib/eslint/recommended.js +22 -0
- package/dist/testing/github.js +32 -0
- package/dist/testing/helpers.js +13 -0
- package/dist/testing/index.js +2 -0
- package/dist/testing/sample-config.js +31 -0
- package/dist/types/cli/commands.d.mts +2 -0
- package/dist/types/cli/environment-builder.d.mts +1 -0
- package/dist/types/generators/base/api.d.ts +19 -8
- package/dist/types/generators/base/generator.d.ts +10 -4
- package/dist/types/generators/base/internal/command.d.ts +2 -0
- package/dist/types/generators/base/internal/index.d.ts +1 -0
- package/dist/types/generators/base/priorities.d.ts +4 -0
- package/dist/types/generators/base/shared-data.d.ts +11 -2
- package/dist/types/generators/base/types.d.ts +12 -0
- package/dist/types/generators/base-application/priorities.d.ts +2 -0
- package/dist/types/generators/base-application/support/entity.d.ts +2 -2
- package/dist/types/generators/base-application/support/prepare-entity.d.ts +3 -3
- package/dist/types/generators/base-application/support/relationship.d.ts +5 -5
- package/dist/types/generators/base-application/types.d.ts +11 -0
- package/dist/types/generators/base-core/generator.d.ts +18 -2
- package/dist/types/generators/generator-constants.d.ts +1 -1
- package/dist/types/generators/info/support/extract-info.d.ts +14 -0
- package/dist/types/generators/info/support/index.d.ts +1 -0
- package/dist/types/generators/java/support/add-java-annotation.d.ts +10 -20
- package/dist/types/generators/java/support/doc.d.ts +1 -1
- package/dist/types/generators/java/support/index.d.ts +1 -1
- package/dist/types/generators/java/types.d.ts +12 -0
- package/dist/types/generators/maven/internal/xml-store.d.ts +3 -2
- package/dist/types/generators/maven/support/pom-store.d.ts +5 -2
- package/dist/types/generators/maven/types.d.ts +1 -0
- package/dist/types/generators/server/support/relationship.d.ts +2 -2
- package/dist/types/generators/server/types.d.ts +7 -1
- package/dist/types/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.d.ts +2 -0
- package/dist/types/generators/spring-cloud/generators/gateway/types.d.ts +4 -0
- package/dist/types/jdl/converters/jdl-to-json/jdl-to-json-field-converter.d.ts +2 -2
- package/dist/types/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.d.ts +2 -1
- package/dist/types/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.d.ts +3 -1
- package/dist/types/jdl/converters/json-to-jdl-application-converter.d.ts +9 -2
- package/dist/types/jdl/converters/json-to-jdl-converter.d.ts +3 -3
- package/dist/types/jdl/converters/json-to-jdl-entity-converter.d.ts +2 -4
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/application-converter.d.ts +3 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/deployment-converter.d.ts +2 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/entity-converter.d.ts +3 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/enum-converter.d.ts +2 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/field-converter.d.ts +2 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/option-converter.d.ts +3 -3
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.d.ts +2 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/relationship-converter.d.ts +2 -1
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/types.d.ts +110 -0
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.d.ts +2 -1
- package/dist/types/jdl/converters/types.d.ts +102 -14
- package/dist/types/jdl/exporters/applications/jhipster-application-formatter.d.ts +4 -4
- package/dist/types/jdl/exporters/config.d.ts +2 -1
- package/dist/types/jdl/exporters/export-utils.d.ts +2 -1
- package/dist/types/jdl/exporters/jdl-exporter.d.ts +2 -1
- package/dist/types/jdl/exporters/jhipster-deployment-exporter.d.ts +3 -1
- package/dist/types/jdl/exporters/jhipster-entity-exporter.d.ts +3 -1
- package/dist/types/jdl/exporters/types.d.ts +61 -0
- package/dist/types/jdl/jhipster/binary-options.d.ts +8 -26
- package/dist/types/jdl/jhipster/field-types.d.ts +2 -2
- package/dist/types/jdl/jhipster/json-entity.d.ts +2 -2
- package/dist/types/jdl/models/abstract-jdl-option.d.ts +14 -9
- package/dist/types/jdl/models/boolean-jdl-application-configuration-option.d.ts +1 -1
- package/dist/types/jdl/models/integer-jdl-application-configuration-option.d.ts +1 -1
- package/dist/types/jdl/models/jdl-application-configuration-factory.d.ts +1 -1
- package/dist/types/jdl/models/jdl-application-configuration-option.d.ts +4 -4
- package/dist/types/jdl/models/jdl-application-configuration.d.ts +4 -4
- package/dist/types/jdl/models/jdl-application-definition.d.ts +4 -4
- package/dist/types/jdl/models/jdl-application-entities.d.ts +4 -4
- package/dist/types/jdl/models/jdl-application.d.ts +16 -13
- package/dist/types/jdl/models/jdl-binary-option.d.ts +5 -3
- package/dist/types/jdl/models/jdl-deployment.d.ts +13 -1
- package/dist/types/jdl/models/jdl-entity.d.ts +5 -5
- package/dist/types/jdl/models/jdl-enum-value.d.ts +4 -4
- package/dist/types/jdl/models/jdl-enum.d.ts +9 -5
- package/dist/types/jdl/models/jdl-enums.d.ts +6 -5
- package/dist/types/jdl/models/jdl-field.d.ts +10 -8
- package/dist/types/jdl/models/jdl-object-wrapper.d.ts +25 -0
- package/dist/types/jdl/models/jdl-object.d.ts +23 -19
- package/dist/types/jdl/models/jdl-options.d.ts +7 -24
- package/dist/types/jdl/models/jdl-relationship.d.ts +16 -10
- package/dist/types/jdl/models/jdl-relationships.d.ts +5 -5
- package/dist/types/jdl/models/jdl-validation.d.ts +3 -3
- package/dist/types/jdl/models/list-jdl-application-configuration-option.d.ts +4 -3
- package/dist/types/jdl/models/string-jdl-application-configuration-option.d.ts +2 -2
- package/dist/types/jdl/parsing/jdl-ast-builder-visitor.d.ts +1 -0
- package/dist/types/jdl/parsing/jdl-parser.d.ts +1 -0
- package/dist/types/jdl/parsing/jdl-parsing-types.d.ts +23 -0
- package/dist/types/jdl/parsing/lexer/lexer.d.ts +6 -2
- package/dist/types/jdl/parsing/validator.d.ts +1 -1
- package/dist/types/jdl/utils/array-utils.d.ts +1 -0
- package/dist/types/jdl/utils/set-utils.d.ts +1 -19
- package/dist/types/jdl/validators/deployment-validator.d.ts +2 -1
- package/dist/types/lib/eslint/base.d.ts +20 -0
- package/dist/types/lib/eslint/recommended.d.ts +20 -0
- package/dist/types/testing/github.d.ts +11 -0
- package/dist/types/testing/helpers.d.ts +21 -3
- package/dist/types/testing/index.d.ts +2 -0
- package/dist/types/testing/sample-config.d.ts +4 -0
- package/package.json +35 -30
- package/dist/generators/generate-blueprint/templates/.eslintrc.json.ejs +0 -35
- /package/dist/jdl/converters/{types.js → parsed-jdl-to-jdl-object/types.js} +0 -0
|
@@ -81,7 +81,7 @@ import { ParseLinks } from 'app/core/util/parse-links.service';
|
|
|
81
81
|
import { FilterComponent, FilterOptions, IFilterOptions, IFilterOption } from 'app/shared/filter';
|
|
82
82
|
<%_ } _%>
|
|
83
83
|
<%_ if (paginationInfiniteScroll) { _%>
|
|
84
|
-
import {
|
|
84
|
+
import { InfiniteScrollDirective } from 'ngx-infinite-scroll';
|
|
85
85
|
<%_ } _%>
|
|
86
86
|
|
|
87
87
|
@Component({
|
|
@@ -106,7 +106,7 @@ import { InfiniteScrollModule } from 'ngx-infinite-scroll';
|
|
|
106
106
|
ItemCountComponent,
|
|
107
107
|
<%_ } _%>
|
|
108
108
|
<%_ if (paginationInfiniteScroll) { _%>
|
|
109
|
-
|
|
109
|
+
InfiniteScrollDirective,
|
|
110
110
|
<%_ } _%>
|
|
111
111
|
],
|
|
112
112
|
})
|
|
@@ -20,8 +20,7 @@
|
|
|
20
20
|
const tsKeyId = this.generateTestEntityId(primaryKey.type);
|
|
21
21
|
_%>
|
|
22
22
|
import { TestBed } from '@angular/core/testing';
|
|
23
|
-
import { HttpResponse } from '@angular/common/http';
|
|
24
|
-
import { HttpClientTestingModule } from '@angular/common/http/testing';
|
|
23
|
+
import { provideHttpClient, HttpResponse } from '@angular/common/http';
|
|
25
24
|
import { ActivatedRouteSnapshot, ActivatedRoute, Router, convertToParamMap } from '@angular/router';
|
|
26
25
|
import { of } from 'rxjs';
|
|
27
26
|
|
|
@@ -38,8 +37,8 @@ describe('<%= entityAngularName %> routing resolve service', () => {
|
|
|
38
37
|
|
|
39
38
|
beforeEach(() => {
|
|
40
39
|
TestBed.configureTestingModule({
|
|
41
|
-
imports: [HttpClientTestingModule],
|
|
42
40
|
providers: [
|
|
41
|
+
provideHttpClient(),
|
|
43
42
|
{
|
|
44
43
|
provide: ActivatedRoute,
|
|
45
44
|
useValue: {
|
|
@@ -73,7 +72,7 @@ describe('<%= entityAngularName %> routing resolve service', () => {
|
|
|
73
72
|
});
|
|
74
73
|
|
|
75
74
|
// THEN
|
|
76
|
-
expect(service.find).
|
|
75
|
+
expect(service.find).toHaveBeenCalledWith(<%- tsKeyId %>);
|
|
77
76
|
expect(result<%= entityAngularName %>).toEqual({ <%= primaryKey.name %>: <%- tsKeyId %> });
|
|
78
77
|
});
|
|
79
78
|
|
|
@@ -111,7 +110,7 @@ describe('<%= entityAngularName %> routing resolve service', () => {
|
|
|
111
110
|
});
|
|
112
111
|
|
|
113
112
|
// THEN
|
|
114
|
-
expect(service.find).
|
|
113
|
+
expect(service.find).toHaveBeenCalledWith(<%- tsKeyId %>);
|
|
115
114
|
expect(result<%= entityAngularName %>).toEqual(undefined);
|
|
116
115
|
expect(mockRouter.navigate).toHaveBeenCalledWith(['404']);
|
|
117
116
|
});
|
|
@@ -21,7 +21,8 @@ const tsKeyId = this.generateTestEntityId(primaryKey.type);
|
|
|
21
21
|
const enumImports = this.generateEntityClientEnumImports(fields);
|
|
22
22
|
_%>
|
|
23
23
|
import { TestBed } from '@angular/core/testing';
|
|
24
|
-
import {
|
|
24
|
+
import { provideHttpClientTesting, HttpTestingController } from '@angular/common/http/testing';
|
|
25
|
+
import { provideHttpClient } from '@angular/common/http';
|
|
25
26
|
|
|
26
27
|
<%_ if (anyFieldIsLocalDate) { _%>
|
|
27
28
|
import { DATE_FORMAT } from 'app/config/input.constants';
|
|
@@ -49,8 +50,9 @@ describe('<%= entityAngularName %> Service', () => {
|
|
|
49
50
|
|
|
50
51
|
beforeEach(() => {
|
|
51
52
|
TestBed.configureTestingModule({
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
providers: [
|
|
54
|
+
provideHttpClient(),
|
|
55
|
+
provideHttpClientTesting()
|
|
54
56
|
]
|
|
55
57
|
});
|
|
56
58
|
expectedResult = null;
|
|
@@ -19,15 +19,14 @@
|
|
|
19
19
|
<%_
|
|
20
20
|
const tsKeyId = this.generateTestEntityId(primaryKey.type);
|
|
21
21
|
const allRelationshipsByEntityNeedingOptions = Object
|
|
22
|
-
.values(
|
|
23
|
-
.map(relationships => relationships.filter(rel => rel.persistableRelationship))
|
|
22
|
+
.values(relationshipsByOtherEntity)
|
|
23
|
+
.map(relationships => relationships.filter(rel => rel.persistableRelationship && !rel.otherEntity.embedded))
|
|
24
24
|
.filter(relationships => relationships.length > 0);
|
|
25
25
|
const testEntityPrimaryKey0 = this.generateTestEntityPrimaryKey(primaryKey, 0);
|
|
26
26
|
const testEntityPrimaryKey1 = this.generateTestEntityPrimaryKey(primaryKey, 1);
|
|
27
27
|
_%>
|
|
28
28
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
|
29
|
-
import { HttpResponse } from '@angular/common/http';
|
|
30
|
-
import { HttpClientTestingModule } from '@angular/common/http/testing';
|
|
29
|
+
import { provideHttpClient, HttpResponse } from '@angular/common/http';
|
|
31
30
|
import { FormBuilder } from '@angular/forms';
|
|
32
31
|
import { ActivatedRoute } from '@angular/router';
|
|
33
32
|
import { of, Subject, from } from 'rxjs';
|
|
@@ -57,10 +56,10 @@ describe('<%= entityAngularName %> Management Update Component', () => {
|
|
|
57
56
|
beforeEach(() => {
|
|
58
57
|
TestBed.configureTestingModule({
|
|
59
58
|
imports: [
|
|
60
|
-
HttpClientTestingModule,
|
|
61
59
|
<%= entityAngularName %>UpdateComponent,
|
|
62
60
|
],
|
|
63
61
|
providers: [
|
|
62
|
+
provideHttpClient(),
|
|
64
63
|
FormBuilder,
|
|
65
64
|
{
|
|
66
65
|
provide: ActivatedRoute,
|
|
@@ -245,7 +244,7 @@ describe('<%= entityAngularName %> Management Update Component', () => {
|
|
|
245
244
|
<%_ } _%>
|
|
246
245
|
});
|
|
247
246
|
|
|
248
|
-
<%_ const trackedRelationships = Object.values(
|
|
247
|
+
<%_ const trackedRelationships = Object.values(relationshipsByOtherEntity).filter(arr => arr.some(rel => rel.persistableRelationship && !rel.otherEntity.embedded));
|
|
249
248
|
if (trackedRelationships.length > 0) {
|
|
250
249
|
_%>
|
|
251
250
|
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
-%>
|
|
19
19
|
<%_
|
|
20
20
|
const allRelationshipsByEntityNeedingOptions = Object
|
|
21
|
-
.values(
|
|
22
|
-
.map(relationships => relationships.filter(rel => rel.persistableRelationship))
|
|
21
|
+
.values(relationshipsByOtherEntity)
|
|
22
|
+
.map(relationships => relationships.filter(rel => rel.persistableRelationship && !rel.otherEntity.embedded))
|
|
23
23
|
.filter(relationships => relationships.length > 0);
|
|
24
24
|
_%>
|
|
25
25
|
import { Component, inject, OnInit<% if (anyFieldHasImageContentType) { %>, ElementRef<% } %> } from '@angular/core';
|
|
@@ -39,10 +39,8 @@ import { AlertError } from 'app/shared/alert/alert-error.model';
|
|
|
39
39
|
import { EventManager, EventWithContent } from 'app/core/util/event-manager.service';
|
|
40
40
|
import { DataUtils, FileLoadError } from 'app/core/util/data-util.service';
|
|
41
41
|
<%_ } _%>
|
|
42
|
-
<%_
|
|
43
|
-
|
|
44
|
-
if (differentRelationships[key].some(rel => rel.persistableRelationship)) {
|
|
45
|
-
const uniqueRel = differentRelationships[key][0];
|
|
42
|
+
<%_ for (const relationshipsByEntityNeedingOptions of allRelationshipsByEntityNeedingOptions) {
|
|
43
|
+
const uniqueRel = relationshipsByEntityNeedingOptions[0];
|
|
46
44
|
if (uniqueRel.otherEntityAngularName !== entityAngularName) {
|
|
47
45
|
_%>
|
|
48
46
|
import { I<%= uniqueRel.otherEntityAngularName %> } from 'app/entities/<%= uniqueRel.otherEntityPath %>/<%= uniqueRel.otherEntityFileName %>.model';
|
|
@@ -50,7 +48,6 @@ import { <%= uniqueRel.otherEntityAngularName %>Service } from 'app/entities/<%=
|
|
|
50
48
|
<%_
|
|
51
49
|
}
|
|
52
50
|
}
|
|
53
|
-
});
|
|
54
51
|
_%>
|
|
55
52
|
<%_ const enumImports = this.generateEntityClientEnumImports(fields); _%>
|
|
56
53
|
<%_ enumImports.forEach( (importedPath, importedType) => { _%>
|
|
@@ -70,7 +67,7 @@ export class <%= entityAngularName %>UpdateComponent implements OnInit {
|
|
|
70
67
|
<%- this._.lowerFirst(importedType) %>Values = Object.keys(<%- importedType %>);
|
|
71
68
|
<%_ }); _%>
|
|
72
69
|
|
|
73
|
-
<%_ for (const relationshipsByEntityNeedingOptions of
|
|
70
|
+
<%_ for (const relationshipsByEntityNeedingOptions of allRelationshipsByEntityNeedingOptions) { _%>
|
|
74
71
|
<%_ const relationshipsWithCustomUniqueOptions = relationshipsByEntityNeedingOptions.filter(rel => rel.relationshipOneToOne && rel.otherRelationship); _%>
|
|
75
72
|
<%_ if (relationshipsByEntityNeedingOptions.length > relationshipsWithCustomUniqueOptions.length) { _%>
|
|
76
73
|
<%_ const otherEntity = relationshipsByEntityNeedingOptions[0].otherEntity _%>
|
|
@@ -87,17 +84,14 @@ export class <%= entityAngularName %>UpdateComponent implements OnInit {
|
|
|
87
84
|
<%_ } _%>
|
|
88
85
|
protected <%= entityInstance %>Service = inject(<%= entityAngularName %>Service);
|
|
89
86
|
protected <%= entityInstance %>FormService = inject(<%= entityAngularName %>FormService);
|
|
90
|
-
<%_
|
|
91
|
-
|
|
92
|
-
if (differentRelationships[key].some(rel => rel.persistableRelationship)) {
|
|
93
|
-
const uniqueRel = differentRelationships[key][0];
|
|
87
|
+
<%_ for (const relationshipsByEntityNeedingOptions of allRelationshipsByEntityNeedingOptions) {
|
|
88
|
+
const uniqueRel = relationshipsByEntityNeedingOptions[0];
|
|
94
89
|
if (uniqueRel.otherEntityAngularName !== entityAngularName) {
|
|
95
90
|
_%>
|
|
96
91
|
protected <%= uniqueRel.otherEntity.entityInstance %>Service = inject(<%= uniqueRel.otherEntityAngularName %>Service);
|
|
97
92
|
<%_
|
|
98
93
|
}
|
|
99
94
|
}
|
|
100
|
-
});
|
|
101
95
|
_%>
|
|
102
96
|
<%_ if (anyFieldHasImageContentType) { _%>
|
|
103
97
|
protected elementRef = inject(ElementRef);
|
|
@@ -107,8 +101,8 @@ _%>
|
|
|
107
101
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
108
102
|
editForm: <%= entityAngularName %>FormGroup = this.<%= entityInstance %>FormService.create<%= entityAngularName %>FormGroup();
|
|
109
103
|
|
|
110
|
-
<%_ for (const
|
|
111
|
-
const { otherEntity } =
|
|
104
|
+
<%_ for (const relationshipsByEntityNeedingOptions of allRelationshipsByEntityNeedingOptions) {
|
|
105
|
+
const { otherEntity } = relationshipsByEntityNeedingOptions[0];
|
|
112
106
|
_%>
|
|
113
107
|
|
|
114
108
|
compare<%= otherEntity.entityAngularName %> = (o1: I<%= otherEntity.entityAngularName %> | null, o2: I<%= otherEntity.entityAngularName %> | null): boolean =>
|
|
@@ -122,7 +116,7 @@ _%>
|
|
|
122
116
|
this.updateForm(<%= entityInstance %>);
|
|
123
117
|
}
|
|
124
118
|
|
|
125
|
-
<%_ if (relationships.filter(rel => rel.persistableRelationship && !rel.
|
|
119
|
+
<%_ if (relationships.filter(rel => rel.persistableRelationship && !rel.otherEntity.embedded).length > 0) { _%>
|
|
126
120
|
this.loadRelationshipsOptions();
|
|
127
121
|
<%_ } _%>
|
|
128
122
|
});
|
|
@@ -225,7 +219,7 @@ _%>
|
|
|
225
219
|
|
|
226
220
|
<%_ if (relationships.filter(rel => rel.persistableRelationship && !rel.otherEntityIsEmbedded).length > 0) { _%>
|
|
227
221
|
protected loadRelationshipsOptions(): void {
|
|
228
|
-
<%_ for (const relationshipsByEntityNeedingOptions of
|
|
222
|
+
<%_ for (const relationshipsByEntityNeedingOptions of allRelationshipsByEntityNeedingOptions) { _%>
|
|
229
223
|
<%_ const relationshipsWithCustomUniqueOptions = relationshipsByEntityNeedingOptions.filter(rel => rel.relationshipOneToOne && rel.otherRelationship); %>
|
|
230
224
|
<%_ const relationshipsWithCustomSharedOptions = relationshipsByEntityNeedingOptions.filter(rel => !relationshipsWithCustomUniqueOptions.includes(rel)); %>
|
|
231
225
|
<%_ const { otherEntity } = relationshipsByEntityNeedingOptions[0] _%>
|
package/dist/generators/angular/templates/src/main/webapp/app/layouts/error/error.component.ts.ejs
CHANGED
|
@@ -38,9 +38,9 @@ export default class ErrorComponent implements OnInit<% if (enableTranslation) {
|
|
|
38
38
|
<%_ } _%>
|
|
39
39
|
|
|
40
40
|
<%_ if (enableTranslation) { _%>
|
|
41
|
-
private translateService = inject(TranslateService);
|
|
41
|
+
private readonly translateService = inject(TranslateService);
|
|
42
42
|
<%_ } _%>
|
|
43
|
-
private route = inject(ActivatedRoute);
|
|
43
|
+
private readonly route = inject(ActivatedRoute);
|
|
44
44
|
|
|
45
45
|
ngOnInit(): void {
|
|
46
46
|
this.route.data.subscribe(routeData => {
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
See the License for the specific language governing permissions and
|
|
17
17
|
limitations under the License.
|
|
18
18
|
-%>
|
|
19
|
-
import { Directive, OnInit, ElementRef, Renderer2, inject,
|
|
19
|
+
import { Directive, OnInit, ElementRef, Renderer2, inject, input } from '@angular/core';
|
|
20
20
|
import { TranslateService, LangChangeEvent } from '@ngx-translate/core';
|
|
21
21
|
|
|
22
22
|
@Directive({
|
|
@@ -24,11 +24,11 @@ import { TranslateService, LangChangeEvent } from '@ngx-translate/core';
|
|
|
24
24
|
selector: '[<%= jhiPrefix %>ActiveMenu]',
|
|
25
25
|
})
|
|
26
26
|
export default class ActiveMenuDirective implements OnInit {
|
|
27
|
-
|
|
27
|
+
<%= jhiPrefix %>ActiveMenu = input();
|
|
28
28
|
|
|
29
|
-
private el = inject(ElementRef);
|
|
30
|
-
private renderer = inject(Renderer2);
|
|
31
|
-
private translateService = inject(TranslateService);
|
|
29
|
+
private readonly el = inject(ElementRef);
|
|
30
|
+
private readonly renderer = inject(Renderer2);
|
|
31
|
+
private readonly translateService = inject(TranslateService);
|
|
32
32
|
|
|
33
33
|
ngOnInit(): void {
|
|
34
34
|
this.translateService.onLangChange.subscribe((event: LangChangeEvent) => {
|
|
@@ -39,7 +39,7 @@ export default class ActiveMenuDirective implements OnInit {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
updateActiveFlag(selectedLanguage: string): void {
|
|
42
|
-
if (this.<%= jhiPrefix %>ActiveMenu === selectedLanguage) {
|
|
42
|
+
if (this.<%= jhiPrefix %>ActiveMenu() === selectedLanguage) {
|
|
43
43
|
this.renderer.addClass(this.el.nativeElement, 'active');
|
|
44
44
|
} else {
|
|
45
45
|
this.renderer.removeClass(this.el.nativeElement, 'active');
|
|
@@ -19,7 +19,8 @@
|
|
|
19
19
|
jest.mock('app/login/login.service');
|
|
20
20
|
|
|
21
21
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
|
22
|
-
import {
|
|
22
|
+
import { provideHttpClientTesting } from '@angular/common/http/testing';
|
|
23
|
+
import { provideHttpClient } from '@angular/common/http';
|
|
23
24
|
import { of } from 'rxjs';
|
|
24
25
|
<%_ if (enableTranslation) { _%>
|
|
25
26
|
import { TranslateModule } from '@ngx-translate/core';
|
|
@@ -54,12 +55,11 @@ describe('Navbar Component', () => {
|
|
|
54
55
|
TestBed.configureTestingModule({
|
|
55
56
|
imports: [
|
|
56
57
|
NavbarComponent,
|
|
57
|
-
HttpClientTestingModule,
|
|
58
58
|
<%_ if (enableTranslation) { _%>
|
|
59
59
|
TranslateModule.forRoot(),
|
|
60
60
|
<%_ } _%>
|
|
61
61
|
],
|
|
62
|
-
providers: [LoginService],
|
|
62
|
+
providers: [provideHttpClient(), provideHttpClientTesting(), LoginService],
|
|
63
63
|
})
|
|
64
64
|
.overrideTemplate(NavbarComponent, '')
|
|
65
65
|
.compileComponents();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
|
2
|
-
import {
|
|
2
|
+
import { provideHttpClient } from '@angular/common/http';
|
|
3
3
|
import { of } from 'rxjs';
|
|
4
4
|
|
|
5
5
|
import { ProfileInfo } from 'app/layouts/profiles/profile-info.model';
|
|
@@ -15,7 +15,8 @@ describe('Page Ribbon Component', () => {
|
|
|
15
15
|
beforeEach(
|
|
16
16
|
waitForAsync(() => {
|
|
17
17
|
TestBed.configureTestingModule({
|
|
18
|
-
imports: [
|
|
18
|
+
imports: [PageRibbonComponent],
|
|
19
|
+
providers: [provideHttpClient()],
|
|
19
20
|
})
|
|
20
21
|
.overrideTemplate(PageRibbonComponent, '')
|
|
21
22
|
.compileComponents();
|
package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
jest.mock('app/core/auth/account.service');
|
|
20
20
|
jest.mock('app/login/login.service');
|
|
21
21
|
|
|
22
|
-
import { ElementRef } from '@angular/core';
|
|
22
|
+
import { ElementRef, signal } from '@angular/core';
|
|
23
23
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
|
24
24
|
import { FormBuilder } from '@angular/forms';
|
|
25
25
|
import { Router, Navigation } from '@angular/router';
|
|
@@ -110,7 +110,7 @@ describe('LoginComponent', () => {
|
|
|
110
110
|
const node = {
|
|
111
111
|
focus: jest.fn(),
|
|
112
112
|
};
|
|
113
|
-
comp.username = new ElementRef(node);
|
|
113
|
+
comp.username = signal<ElementRef>(new ElementRef(node));
|
|
114
114
|
|
|
115
115
|
// WHEN
|
|
116
116
|
comp.ngAfterViewInit();
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
See the License for the specific language governing permissions and
|
|
17
17
|
limitations under the License.
|
|
18
18
|
-%>
|
|
19
|
-
import { Component,
|
|
19
|
+
import { Component, OnInit, AfterViewInit, ElementRef, inject, signal, viewChild } from '@angular/core';
|
|
20
20
|
import { FormGroup, FormControl, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
21
21
|
import { Router, RouterModule } from '@angular/router';
|
|
22
22
|
|
|
@@ -31,8 +31,7 @@ import { AccountService } from 'app/core/auth/account.service';
|
|
|
31
31
|
templateUrl: './login.component.html',
|
|
32
32
|
})
|
|
33
33
|
export default class LoginComponent implements OnInit, AfterViewInit {
|
|
34
|
-
|
|
35
|
-
username!: ElementRef;
|
|
34
|
+
username = viewChild.required<ElementRef>('username');
|
|
36
35
|
|
|
37
36
|
authenticationError = signal(false);
|
|
38
37
|
|
|
@@ -56,7 +55,7 @@ export default class LoginComponent implements OnInit, AfterViewInit {
|
|
|
56
55
|
}
|
|
57
56
|
|
|
58
57
|
ngAfterViewInit(): void {
|
|
59
|
-
this.username.nativeElement.focus();
|
|
58
|
+
this.username().nativeElement.focus();
|
|
60
59
|
}
|
|
61
60
|
|
|
62
61
|
login(): void {
|
|
@@ -100,7 +100,7 @@ describe('Alert Error Component', () => {
|
|
|
100
100
|
status: 400,
|
|
101
101
|
statusText: 'Bad Request',
|
|
102
102
|
error: {
|
|
103
|
-
type: 'https://www.jhipster.tech/problem/
|
|
103
|
+
type: 'https://www.jhipster.tech/problem/problem-with-message',
|
|
104
104
|
title: 'Bad Request',
|
|
105
105
|
status: 400,
|
|
106
106
|
path: '/api/foos',
|
|
@@ -135,7 +135,7 @@ describe('Alert Error Component', () => {
|
|
|
135
135
|
status: 400,
|
|
136
136
|
statusText: 'Bad Request',
|
|
137
137
|
error: {
|
|
138
|
-
type: 'https://www.jhipster.tech/problem/
|
|
138
|
+
type: 'https://www.jhipster.tech/problem/problem-with-message',
|
|
139
139
|
title: 'Method argument not valid',
|
|
140
140
|
status: 400,
|
|
141
141
|
path: '/api/foos',
|
|
@@ -18,9 +18,12 @@
|
|
|
18
18
|
-%>
|
|
19
19
|
jest.mock('app/core/auth/account.service');
|
|
20
20
|
|
|
21
|
-
import { Component, ElementRef,
|
|
21
|
+
import { Component, ElementRef, WritableSignal, signal, viewChild } from '@angular/core';
|
|
22
|
+
import { provideHttpClient } from '@angular/common/http';
|
|
22
23
|
import { TestBed, waitForAsync } from '@angular/core/testing';
|
|
23
|
-
|
|
24
|
+
<%_ if (enableTranslation) { _%>
|
|
25
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
26
|
+
<%_ } _%>
|
|
24
27
|
|
|
25
28
|
import { AccountService } from 'app/core/auth/account.service';
|
|
26
29
|
import { Account } from 'app/core/auth/account.model';
|
|
@@ -31,8 +34,7 @@ import HasAnyAuthorityDirective from './has-any-authority.directive';
|
|
|
31
34
|
template: ` <div *<%= jhiPrefix %>HasAnyAuthority="'ROLE_ADMIN'" #content></div> `,
|
|
32
35
|
})
|
|
33
36
|
class TestHasAnyAuthorityDirectiveComponent {
|
|
34
|
-
|
|
35
|
-
content?: ElementRef;
|
|
37
|
+
content = viewChild<ElementRef>('content');
|
|
36
38
|
}
|
|
37
39
|
|
|
38
40
|
describe('HasAnyAuthorityDirective tests', () => {
|
|
@@ -41,9 +43,9 @@ describe('HasAnyAuthorityDirective tests', () => {
|
|
|
41
43
|
|
|
42
44
|
beforeEach(waitForAsync(() => {
|
|
43
45
|
TestBed.configureTestingModule({
|
|
44
|
-
imports: [HasAnyAuthorityDirective],
|
|
46
|
+
imports: [HasAnyAuthorityDirective<%_ if (enableTranslation) { _%>, TranslateModule.forRoot()<%_ } _%>],
|
|
45
47
|
declarations: [TestHasAnyAuthorityDirectiveComponent],
|
|
46
|
-
providers: [AccountService],
|
|
48
|
+
providers: [provideHttpClient(), AccountService],
|
|
47
49
|
});
|
|
48
50
|
}));
|
|
49
51
|
|
|
@@ -79,7 +81,7 @@ describe('HasAnyAuthorityDirective tests', () => {
|
|
|
79
81
|
fixture.detectChanges();
|
|
80
82
|
|
|
81
83
|
// THEN
|
|
82
|
-
expect(comp.content).toBeUndefined();
|
|
84
|
+
expect(comp.content()).toBeUndefined();
|
|
83
85
|
});
|
|
84
86
|
});
|
|
85
87
|
|
|
@@ -95,7 +97,7 @@ describe('HasAnyAuthorityDirective tests', () => {
|
|
|
95
97
|
fixture.detectChanges();
|
|
96
98
|
|
|
97
99
|
// THEN
|
|
98
|
-
expect(comp.content).toBeDefined();
|
|
100
|
+
expect(comp.content()).toBeDefined();
|
|
99
101
|
|
|
100
102
|
// GIVEN
|
|
101
103
|
currentAccount.set(null);
|
|
@@ -104,7 +106,7 @@ describe('HasAnyAuthorityDirective tests', () => {
|
|
|
104
106
|
fixture.detectChanges();
|
|
105
107
|
|
|
106
108
|
// THEN
|
|
107
|
-
expect(comp.content).toBeUndefined();
|
|
109
|
+
expect(comp.content()).toBeUndefined();
|
|
108
110
|
|
|
109
111
|
// WHEN
|
|
110
112
|
currentAccount.set({ activated: true, authorities: ['foo'] } as any);
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
See the License for the specific language governing permissions and
|
|
17
17
|
limitations under the License.
|
|
18
18
|
-%>
|
|
19
|
-
import { Directive, inject,
|
|
19
|
+
import { Directive, inject, input, TemplateRef, ViewContainerRef, effect, computed } from '@angular/core';
|
|
20
20
|
|
|
21
21
|
import { AccountService } from 'app/core/auth/account.service';
|
|
22
22
|
|
|
@@ -36,7 +36,7 @@ import { AccountService } from 'app/core/auth/account.service';
|
|
|
36
36
|
selector: '[<%= jhiPrefix %>HasAnyAuthority]',
|
|
37
37
|
})
|
|
38
38
|
export default class HasAnyAuthorityDirective {
|
|
39
|
-
|
|
39
|
+
public authorities = input<string | string[]>([], { alias: '<%= jhiPrefix %>HasAnyAuthority' });
|
|
40
40
|
|
|
41
41
|
private templateRef = inject(TemplateRef<any>);
|
|
42
42
|
private viewContainerRef = inject(ViewContainerRef);
|
|
@@ -52,11 +52,6 @@ export default class HasAnyAuthorityDirective {
|
|
|
52
52
|
} else {
|
|
53
53
|
this.viewContainerRef.clear();
|
|
54
54
|
}
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
@Input()
|
|
59
|
-
set <%= jhiPrefix %>HasAnyAuthority(value: string | string[]) {
|
|
60
|
-
this.authorities.set(value);
|
|
55
|
+
}, { allowSignalWrites: true });
|
|
61
56
|
}
|
|
62
57
|
}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
@if (filters.hasAnyFilterSet()) {
|
|
2
2
|
<div class="filter-display">
|
|
3
3
|
<span>__jhiTranslateTag__('entity.filters.set')</span>
|
|
4
|
-
<
|
|
4
|
+
<button class="btn" (click)="clearAllFilters()" (keydown.enter)="clearAllFilters()">
|
|
5
|
+
<fa-icon icon="times" title="__jhiTranslatePipe__('entity.filters.clearAll')"></fa-icon>
|
|
6
|
+
</button>
|
|
5
7
|
<ul>
|
|
6
8
|
@for (filterOption of filters.filterOptions; track filterOption.name) {
|
|
7
9
|
@for (value of filterOption.values; track value) {
|
|
8
10
|
<li>
|
|
9
11
|
<span>{{ filterOption.name }}:</span> {{ value }}
|
|
10
|
-
<
|
|
12
|
+
<button class="btn" (click)="clearFilter(filterOption.name, value)" (keydown.enter)="clearFilter(filterOption.name, value)">
|
|
13
|
+
<fa-icon icon="times" title="__jhiTranslatePipe__('entity.filters.clear')"></fa-icon>
|
|
14
|
+
</button>
|
|
11
15
|
</li>
|
|
12
16
|
}
|
|
13
17
|
}
|
|
@@ -23,7 +23,7 @@ import { Pipe, PipeTransform } from '@angular/core';
|
|
|
23
23
|
name: 'findLanguageFromKey',
|
|
24
24
|
})
|
|
25
25
|
export default class FindLanguageFromKeyPipe implements PipeTransform {
|
|
26
|
-
private languages: { [key: string]: { name: string; rtl?: boolean } } = {
|
|
26
|
+
private readonly languages: { [key: string]: { name: string; rtl?: boolean } } = {
|
|
27
27
|
// jhipster-needle-i18n-language-key-pipe - JHipster will add/remove languages in this object
|
|
28
28
|
};
|
|
29
29
|
|
|
@@ -71,8 +71,8 @@ export class LazyTranslationModule {
|
|
|
71
71
|
],
|
|
72
72
|
})
|
|
73
73
|
export class TranslationModule {
|
|
74
|
-
private translateService = inject(TranslateService);
|
|
75
|
-
private stateStorageService = inject(StateStorageService);
|
|
74
|
+
private readonly translateService = inject(TranslateService);
|
|
75
|
+
private readonly stateStorageService = inject(StateStorageService);
|
|
76
76
|
|
|
77
77
|
constructor() {
|
|
78
78
|
this.translateService.setDefaultLang('<%= nativeLanguage %>');
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
See the License for the specific language governing permissions and
|
|
17
17
|
limitations under the License.
|
|
18
18
|
-%>
|
|
19
|
-
import { Component, DebugElement, inject } from '@angular/core';
|
|
19
|
+
import { Component, DebugElement, Type, inject } from '@angular/core';
|
|
20
20
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
|
21
21
|
import { By } from '@angular/platform-browser';
|
|
22
22
|
import { FaIconComponent, FaIconLibrary } from '@fortawesome/angular-fontawesome';
|
|
@@ -72,58 +72,58 @@ describe('Directive: SortByDirective', () => {
|
|
|
72
72
|
it('should have a neutral state for predicate column and undefined order value', () => {
|
|
73
73
|
// GIVEN
|
|
74
74
|
component.sortState.set({ predicate: 'name' });
|
|
75
|
-
const sortByDirective = tableHead.injector.get(SortByDirective);
|
|
75
|
+
const sortByDirective = tableHead.injector.get(SortByDirective as Type<SortByDirective>);
|
|
76
76
|
|
|
77
77
|
// WHEN
|
|
78
78
|
fixture.detectChanges();
|
|
79
79
|
|
|
80
80
|
// THEN
|
|
81
81
|
expect(sortByDirective.<%= jhiPrefix %>SortBy).toEqual('name');
|
|
82
|
-
expect(sortByDirective.iconComponent?.icon).toEqual(faSort.iconName);
|
|
82
|
+
expect(sortByDirective.iconComponent()?.icon).toEqual(faSort.iconName);
|
|
83
83
|
});
|
|
84
84
|
|
|
85
85
|
it('should have an asc state for predicate column and true asc value', () => {
|
|
86
86
|
// GIVEN
|
|
87
87
|
component.sortState.set({ predicate: 'name', order: 'asc' });
|
|
88
|
-
const sortByDirective = tableHead.injector.get(SortByDirective);
|
|
88
|
+
const sortByDirective = tableHead.injector.get(SortByDirective as Type<SortByDirective>);
|
|
89
89
|
|
|
90
90
|
// WHEN
|
|
91
91
|
fixture.detectChanges();
|
|
92
92
|
|
|
93
93
|
// THEN
|
|
94
94
|
expect(sortByDirective.<%= jhiPrefix %>SortBy).toEqual('name');
|
|
95
|
-
expect(sortByDirective.iconComponent?.icon).toEqual(faSortUp.iconName);
|
|
95
|
+
expect(sortByDirective.iconComponent()?.icon).toEqual(faSortUp.iconName);
|
|
96
96
|
});
|
|
97
97
|
|
|
98
98
|
it('should have a desc state for predicate column and desc value', () => {
|
|
99
99
|
// GIVEN
|
|
100
100
|
component.sortState.set({ predicate: 'name', order: 'desc' });
|
|
101
|
-
const sortByDirective = tableHead.injector.get(SortByDirective);
|
|
101
|
+
const sortByDirective = tableHead.injector.get(SortByDirective as Type<SortByDirective>);
|
|
102
102
|
|
|
103
103
|
// WHEN
|
|
104
104
|
fixture.detectChanges();
|
|
105
105
|
|
|
106
106
|
// THEN
|
|
107
107
|
expect(sortByDirective.<%= jhiPrefix %>SortBy).toEqual('name');
|
|
108
|
-
expect(sortByDirective.iconComponent?.icon).toEqual(faSortDown.iconName);
|
|
108
|
+
expect(sortByDirective.iconComponent()?.icon).toEqual(faSortDown.iconName);
|
|
109
109
|
});
|
|
110
110
|
|
|
111
111
|
it('should have a neutral state for non-predicate column', () => {
|
|
112
112
|
// GIVEN
|
|
113
113
|
component.sortState.set({ predicate: 'non-existing-column', order: 'asc' });
|
|
114
|
-
const sortByDirective = tableHead.injector.get(SortByDirective);
|
|
114
|
+
const sortByDirective = tableHead.injector.get(SortByDirective as Type<SortByDirective>);
|
|
115
115
|
|
|
116
116
|
// WHEN
|
|
117
117
|
fixture.detectChanges();
|
|
118
118
|
|
|
119
119
|
// THEN
|
|
120
120
|
expect(sortByDirective.<%= jhiPrefix %>SortBy).toEqual('name');
|
|
121
|
-
expect(sortByDirective.iconComponent?.icon).toEqual(faSort.iconName);
|
|
121
|
+
expect(sortByDirective.iconComponent()?.icon).toEqual(faSort.iconName);
|
|
122
122
|
});
|
|
123
123
|
|
|
124
124
|
it('multiple clicks at same component, should call SortDirective sort', () => {
|
|
125
125
|
// GIVEN
|
|
126
|
-
const sortDirective = tableHead.injector.get(SortDirective);
|
|
126
|
+
const sortDirective = tableHead.injector.get(SortDirective as Type<SortDirective>);
|
|
127
127
|
sortDirective.sort = jest.fn();
|
|
128
128
|
|
|
129
129
|
// WHEN
|
package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.ts.ejs
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
See the License for the specific language governing permissions and
|
|
17
17
|
limitations under the License.
|
|
18
18
|
-%>
|
|
19
|
-
import {
|
|
19
|
+
import { Directive, Host, HostListener, Input, contentChild, effect } from '@angular/core';
|
|
20
20
|
import { FaIconComponent } from '@fortawesome/angular-fontawesome';
|
|
21
21
|
import { faSort, faSortDown, faSortUp, IconDefinition } from '@fortawesome/free-solid-svg-icons';
|
|
22
22
|
|
|
@@ -29,8 +29,7 @@ import { SortDirective } from './sort.directive';
|
|
|
29
29
|
export class SortByDirective {
|
|
30
30
|
@Input() <%= jhiPrefix %>SortBy!: string;
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
iconComponent?: FaIconComponent;
|
|
32
|
+
iconComponent = contentChild(FaIconComponent);
|
|
34
33
|
|
|
35
34
|
protected sortIcon = faSort;
|
|
36
35
|
protected sortAscIcon = faSortUp;
|
|
@@ -38,21 +37,21 @@ export class SortByDirective {
|
|
|
38
37
|
|
|
39
38
|
constructor(@Host() private sort: SortDirective) {
|
|
40
39
|
effect(() => {
|
|
41
|
-
if (this.iconComponent) {
|
|
40
|
+
if (this.iconComponent()) {
|
|
42
41
|
let icon: IconDefinition = this.sortIcon;
|
|
43
42
|
const { predicate, order } = this.sort.sortState();
|
|
44
43
|
if (predicate === this.<%= jhiPrefix %>SortBy && order !== undefined) {
|
|
45
44
|
icon = order === 'asc' ? this.sortAscIcon : this.sortDescIcon;
|
|
46
45
|
}
|
|
47
|
-
this.iconComponent
|
|
48
|
-
this.iconComponent
|
|
46
|
+
this.iconComponent()!.icon = icon.iconName;
|
|
47
|
+
this.iconComponent()!.render();
|
|
49
48
|
}
|
|
50
49
|
});
|
|
51
50
|
}
|
|
52
51
|
|
|
53
52
|
@HostListener('click')
|
|
54
53
|
onClick(): void {
|
|
55
|
-
if (this.iconComponent) {
|
|
54
|
+
if (this.iconComponent()) {
|
|
56
55
|
this.sort.sort(this.<%= jhiPrefix %>SortBy);
|
|
57
56
|
}
|
|
58
57
|
}
|