diff --git a/npm/ng-packs/apps/dev-app/src/app/app.module.ts b/npm/ng-packs/apps/dev-app/src/app/app.module.ts index f144639db4..9aa422623f 100644 --- a/npm/ng-packs/apps/dev-app/src/app/app.module.ts +++ b/npm/ng-packs/apps/dev-app/src/app/app.module.ts @@ -6,12 +6,12 @@ import { registerLocale } from '@abp/ng.core/locale'; import { InternetConnectionStatusComponent, ThemeSharedModule } from '@abp/ng.theme.shared'; import { ThemeLeptonXModule } from '@abp/ng.theme.lepton-x'; import { SideMenuLayoutModule } from '@abp/ng.theme.lepton-x/layouts'; -import { IdentityConfigModule } from '@abp/ng.identity/config'; import { AbpOAuthModule } from '@abp/ng.oauth'; import { SettingManagementConfigModule } from '@abp/ng.setting-management/config'; -import { TenantManagementConfigModule } from '@abp/ng.tenant-management/config'; -import { FeatureManagementModule } from '@abp/ng.feature-management'; -import { AccountConfigModule } from '@abp/ng.account/config'; +import { provideAccountConfig } from '@abp/ng.account/config'; +import { provideIdentityConfig } from '@abp/ng.identity/config'; +import { provideTenantManagementConfig } from '@abp/ng.tenant-management/config'; +import { provideFeatureManagement } from '@abp/ng.feature-management'; import { AccountLayoutModule } from '@abp/ng.theme.lepton-x/account'; import { environment } from '../environments/environment'; import { AppRoutingModule } from './app-routing.module'; @@ -31,17 +31,19 @@ import { APP_ROUTE_PROVIDER } from './route.provider'; }), AbpOAuthModule.forRoot(), ThemeSharedModule.forRoot(), - AccountConfigModule.forRoot(), - IdentityConfigModule.forRoot(), - TenantManagementConfigModule.forRoot(), - FeatureManagementModule.forRoot(), SettingManagementConfigModule.forRoot(), ThemeLeptonXModule.forRoot(), SideMenuLayoutModule.forRoot(), AccountLayoutModule.forRoot(), InternetConnectionStatusComponent, ], - providers: [APP_ROUTE_PROVIDER], + providers: [ + APP_ROUTE_PROVIDER, + provideAccountConfig(), + provideIdentityConfig(), + provideTenantManagementConfig(), + provideFeatureManagement(), + ], declarations: [AppComponent], bootstrap: [AppComponent], }) diff --git a/npm/ng-packs/packages/account/config/src/account-config.module.ts b/npm/ng-packs/packages/account/config/src/account-config.module.ts index 2c1345927b..a80d76f44d 100644 --- a/npm/ng-packs/packages/account/config/src/account-config.module.ts +++ b/npm/ng-packs/packages/account/config/src/account-config.module.ts @@ -1,4 +1,4 @@ -import { Injector, ModuleWithProviders, NgModule } from '@angular/core'; +import { Injector, ModuleWithProviders, NgModule, makeEnvironmentProviders } from '@angular/core'; import { NAVIGATE_TO_MANAGE_PROFILE } from '@abp/ng.core'; import { ACCOUNT_ROUTE_PROVIDERS } from './providers/route.provider'; import { navigateToManageProfileFactory } from './utils/factories'; @@ -19,3 +19,14 @@ export class AccountConfigModule { }; } } + +export function provideAccountConfig() { + return makeEnvironmentProviders([ + ACCOUNT_ROUTE_PROVIDERS, + { + provide: NAVIGATE_TO_MANAGE_PROFILE, + useFactory: navigateToManageProfileFactory, + deps: [Injector], + }, + ]); +} diff --git a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management-tab/feature-management-tab.component.ts b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management-tab/feature-management-tab.component.ts index d65b3a74a9..4b367da436 100644 --- a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management-tab/feature-management-tab.component.ts +++ b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management-tab/feature-management-tab.component.ts @@ -1,8 +1,16 @@ +import { LocalizationModule, ReplaceableTemplateDirective } from '@abp/ng.core'; import { Component } from '@angular/core'; +import { FeatureManagementComponent } from '../feature-management/feature-management.component'; @Component({ + standalone: true, selector: 'abp-feature-management-tab', templateUrl: './feature-management-tab.component.html', + imports: [ + ReplaceableTemplateDirective, + LocalizationModule, + FeatureManagementComponent, + ], }) export class FeatureManagementTabComponent { visibleFeatures = false; diff --git a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts index 2dd2497e81..01a6eee6c4 100644 --- a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts +++ b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts @@ -1,4 +1,4 @@ -import { ConfigStateService, TrackByService } from '@abp/ng.core'; +import { ConfigStateService, LocalizationModule, TrackByService } from '@abp/ng.core'; import { FeatureDto, FeatureGroupDto, @@ -9,10 +9,15 @@ import { Confirmation, ConfirmationService, LocaleDirection, + ThemeSharedModule, ToasterService, } from '@abp/ng.theme.shared'; import { Component, EventEmitter, Input, Output, inject } from '@angular/core'; +import { NgTemplateOutlet } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { NgbNavModule } from '@ng-bootstrap/ng-bootstrap'; import { finalize } from 'rxjs/operators'; +import { FreeTextInputDirective } from '../../directives'; import { FeatureManagement } from '../../models/feature-management'; enum ValueTypes { @@ -22,9 +27,18 @@ enum ValueTypes { } @Component({ + standalone: true, selector: 'abp-feature-management', templateUrl: './feature-management.component.html', exportAs: 'abpFeatureManagement', + imports: [ + ThemeSharedModule, + LocalizationModule, + FormsModule, + NgbNavModule, + FreeTextInputDirective, + NgTemplateOutlet, + ], }) export class FeatureManagementComponent implements @@ -125,7 +139,7 @@ export class FeatureManagementComponent .subscribe(() => { this.visible = false; - this.toasterService.success('AbpFeatureManagement::Saved'); + this.toasterService.success('AbpFeatureManagement::SavedSuccessfully'); if (!this.providerKey) { // to refresh host's features this.configState.refreshAppState().subscribe(); diff --git a/npm/ng-packs/packages/feature-management/src/lib/directives/free-text-input.directive.ts b/npm/ng-packs/packages/feature-management/src/lib/directives/free-text-input.directive.ts index 6b6556dcfa..750af65268 100644 --- a/npm/ng-packs/packages/feature-management/src/lib/directives/free-text-input.directive.ts +++ b/npm/ng-packs/packages/feature-management/src/lib/directives/free-text-input.directive.ts @@ -15,6 +15,7 @@ export const INPUT_TYPES = { }; @Directive({ + standalone: true, selector: 'input[abpFeatureManagementFreeText]', exportAs: 'inputAbpFeatureManagementFreeText', }) diff --git a/npm/ng-packs/packages/feature-management/src/lib/feature-management.module.ts b/npm/ng-packs/packages/feature-management/src/lib/feature-management.module.ts index 2de14108f1..8f8cd04138 100644 --- a/npm/ng-packs/packages/feature-management/src/lib/feature-management.module.ts +++ b/npm/ng-packs/packages/feature-management/src/lib/feature-management.module.ts @@ -1,6 +1,6 @@ import { CoreModule } from '@abp/ng.core'; import { ThemeSharedModule } from '@abp/ng.theme.shared'; -import { ModuleWithProviders, NgModule } from '@angular/core'; +import { ModuleWithProviders, NgModule, makeEnvironmentProviders } from '@angular/core'; import { NgbNavModule } from '@ng-bootstrap/ng-bootstrap'; import { FeatureManagementComponent } from './components/feature-management/feature-management.component'; import { FreeTextInputDirective } from './directives/free-text-input.directive'; @@ -14,8 +14,7 @@ const exported = [ ]; @NgModule({ - declarations: [...exported], - imports: [CoreModule, ThemeSharedModule, NgbNavModule], + imports: [CoreModule, ThemeSharedModule, NgbNavModule, ...exported], exports: [...exported], }) export class FeatureManagementModule { @@ -26,3 +25,7 @@ export class FeatureManagementModule { }; } } + +export function provideFeatureManagement() { + return makeEnvironmentProviders([FEATURE_MANAGEMENT_SETTINGS_PROVIDERS]); +} diff --git a/npm/ng-packs/packages/identity/config/src/identity-config.module.ts b/npm/ng-packs/packages/identity/config/src/identity-config.module.ts index 745578f69a..7cb914de21 100644 --- a/npm/ng-packs/packages/identity/config/src/identity-config.module.ts +++ b/npm/ng-packs/packages/identity/config/src/identity-config.module.ts @@ -1,4 +1,4 @@ -import { ModuleWithProviders, NgModule } from '@angular/core'; +import { ModuleWithProviders, NgModule, makeEnvironmentProviders } from '@angular/core'; import { IDENTITY_ROUTE_PROVIDERS } from './providers/route.provider'; @NgModule() @@ -10,3 +10,7 @@ export class IdentityConfigModule { }; } } + +export function provideIdentityConfig() { + return makeEnvironmentProviders([IDENTITY_ROUTE_PROVIDERS]); +} diff --git a/npm/ng-packs/packages/tenant-management/config/src/tenant-management-config.module.ts b/npm/ng-packs/packages/tenant-management/config/src/tenant-management-config.module.ts index 2929f766c0..6e1dcd04c0 100644 --- a/npm/ng-packs/packages/tenant-management/config/src/tenant-management-config.module.ts +++ b/npm/ng-packs/packages/tenant-management/config/src/tenant-management-config.module.ts @@ -1,4 +1,4 @@ -import { ModuleWithProviders, NgModule } from '@angular/core'; +import { ModuleWithProviders, NgModule, makeEnvironmentProviders } from '@angular/core'; import { TENANT_MANAGEMENT_ROUTE_PROVIDERS } from './providers/route.provider'; @NgModule() @@ -10,3 +10,7 @@ export class TenantManagementConfigModule { }; } } + +export function provideTenantManagementConfig() { + return makeEnvironmentProviders([TENANT_MANAGEMENT_ROUTE_PROVIDERS]); +} diff --git a/npm/ng-packs/packages/tenant-management/src/lib/tenant-management.module.ts b/npm/ng-packs/packages/tenant-management/src/lib/tenant-management.module.ts index 4b44814bce..76c917c51b 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/tenant-management.module.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/tenant-management.module.ts @@ -1,5 +1,4 @@ import { CoreModule, LazyModuleFactory } from '@abp/ng.core'; -import { FeatureManagementModule } from '@abp/ng.feature-management'; import { ThemeSharedModule } from '@abp/ng.theme.shared'; import { ExtensibleModule } from '@abp/ng.components/extensible'; import { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core'; @@ -17,6 +16,7 @@ import { TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, } from './tokens/extensions.token'; import { PageModule } from '@abp/ng.components/page'; +import { FeatureManagementComponent } from '@abp/ng.feature-management'; @NgModule({ declarations: [TenantsComponent], @@ -27,9 +27,9 @@ import { PageModule } from '@abp/ng.components/page'; CoreModule, ThemeSharedModule, NgbDropdownModule, - FeatureManagementModule, ExtensibleModule, PageModule, + FeatureManagementComponent, ], }) export class TenantManagementModule {