Browse Source

use `makeEnvironmentProviders` function instead of config modules

template-config-provider
Sinan997 3 years ago
parent
commit
02f9bb62be
  1. 20
      npm/ng-packs/apps/dev-app/src/app/app.module.ts
  2. 13
      npm/ng-packs/packages/account/config/src/account-config.module.ts
  3. 8
      npm/ng-packs/packages/feature-management/src/lib/components/feature-management-tab/feature-management-tab.component.ts
  4. 18
      npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts
  5. 1
      npm/ng-packs/packages/feature-management/src/lib/directives/free-text-input.directive.ts
  6. 9
      npm/ng-packs/packages/feature-management/src/lib/feature-management.module.ts
  7. 6
      npm/ng-packs/packages/identity/config/src/identity-config.module.ts
  8. 6
      npm/ng-packs/packages/tenant-management/config/src/tenant-management-config.module.ts
  9. 4
      npm/ng-packs/packages/tenant-management/src/lib/tenant-management.module.ts

20
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 { InternetConnectionStatusComponent, ThemeSharedModule } from '@abp/ng.theme.shared';
import { ThemeLeptonXModule } from '@abp/ng.theme.lepton-x'; import { ThemeLeptonXModule } from '@abp/ng.theme.lepton-x';
import { SideMenuLayoutModule } from '@abp/ng.theme.lepton-x/layouts'; import { SideMenuLayoutModule } from '@abp/ng.theme.lepton-x/layouts';
import { IdentityConfigModule } from '@abp/ng.identity/config';
import { AbpOAuthModule } from '@abp/ng.oauth'; import { AbpOAuthModule } from '@abp/ng.oauth';
import { SettingManagementConfigModule } from '@abp/ng.setting-management/config'; import { SettingManagementConfigModule } from '@abp/ng.setting-management/config';
import { TenantManagementConfigModule } from '@abp/ng.tenant-management/config'; import { provideAccountConfig } from '@abp/ng.account/config';
import { FeatureManagementModule } from '@abp/ng.feature-management'; import { provideIdentityConfig } from '@abp/ng.identity/config';
import { AccountConfigModule } from '@abp/ng.account/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 { AccountLayoutModule } from '@abp/ng.theme.lepton-x/account';
import { environment } from '../environments/environment'; import { environment } from '../environments/environment';
import { AppRoutingModule } from './app-routing.module'; import { AppRoutingModule } from './app-routing.module';
@ -31,17 +31,19 @@ import { APP_ROUTE_PROVIDER } from './route.provider';
}), }),
AbpOAuthModule.forRoot(), AbpOAuthModule.forRoot(),
ThemeSharedModule.forRoot(), ThemeSharedModule.forRoot(),
AccountConfigModule.forRoot(),
IdentityConfigModule.forRoot(),
TenantManagementConfigModule.forRoot(),
FeatureManagementModule.forRoot(),
SettingManagementConfigModule.forRoot(), SettingManagementConfigModule.forRoot(),
ThemeLeptonXModule.forRoot(), ThemeLeptonXModule.forRoot(),
SideMenuLayoutModule.forRoot(), SideMenuLayoutModule.forRoot(),
AccountLayoutModule.forRoot(), AccountLayoutModule.forRoot(),
InternetConnectionStatusComponent, InternetConnectionStatusComponent,
], ],
providers: [APP_ROUTE_PROVIDER], providers: [
APP_ROUTE_PROVIDER,
provideAccountConfig(),
provideIdentityConfig(),
provideTenantManagementConfig(),
provideFeatureManagement(),
],
declarations: [AppComponent], declarations: [AppComponent],
bootstrap: [AppComponent], bootstrap: [AppComponent],
}) })

13
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 { NAVIGATE_TO_MANAGE_PROFILE } from '@abp/ng.core';
import { ACCOUNT_ROUTE_PROVIDERS } from './providers/route.provider'; import { ACCOUNT_ROUTE_PROVIDERS } from './providers/route.provider';
import { navigateToManageProfileFactory } from './utils/factories'; 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],
},
]);
}

8
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 { Component } from '@angular/core';
import { FeatureManagementComponent } from '../feature-management/feature-management.component';
@Component({ @Component({
standalone: true,
selector: 'abp-feature-management-tab', selector: 'abp-feature-management-tab',
templateUrl: './feature-management-tab.component.html', templateUrl: './feature-management-tab.component.html',
imports: [
ReplaceableTemplateDirective,
LocalizationModule,
FeatureManagementComponent,
],
}) })
export class FeatureManagementTabComponent { export class FeatureManagementTabComponent {
visibleFeatures = false; visibleFeatures = false;

18
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 { import {
FeatureDto, FeatureDto,
FeatureGroupDto, FeatureGroupDto,
@ -9,10 +9,15 @@ import {
Confirmation, Confirmation,
ConfirmationService, ConfirmationService,
LocaleDirection, LocaleDirection,
ThemeSharedModule,
ToasterService, ToasterService,
} from '@abp/ng.theme.shared'; } from '@abp/ng.theme.shared';
import { Component, EventEmitter, Input, Output, inject } from '@angular/core'; 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 { finalize } from 'rxjs/operators';
import { FreeTextInputDirective } from '../../directives';
import { FeatureManagement } from '../../models/feature-management'; import { FeatureManagement } from '../../models/feature-management';
enum ValueTypes { enum ValueTypes {
@ -22,9 +27,18 @@ enum ValueTypes {
} }
@Component({ @Component({
standalone: true,
selector: 'abp-feature-management', selector: 'abp-feature-management',
templateUrl: './feature-management.component.html', templateUrl: './feature-management.component.html',
exportAs: 'abpFeatureManagement', exportAs: 'abpFeatureManagement',
imports: [
ThemeSharedModule,
LocalizationModule,
FormsModule,
NgbNavModule,
FreeTextInputDirective,
NgTemplateOutlet,
],
}) })
export class FeatureManagementComponent export class FeatureManagementComponent
implements implements
@ -125,7 +139,7 @@ export class FeatureManagementComponent
.subscribe(() => { .subscribe(() => {
this.visible = false; this.visible = false;
this.toasterService.success('AbpFeatureManagement::Saved'); this.toasterService.success('AbpFeatureManagement::SavedSuccessfully');
if (!this.providerKey) { if (!this.providerKey) {
// to refresh host's features // to refresh host's features
this.configState.refreshAppState().subscribe(); this.configState.refreshAppState().subscribe();

1
npm/ng-packs/packages/feature-management/src/lib/directives/free-text-input.directive.ts

@ -15,6 +15,7 @@ export const INPUT_TYPES = {
}; };
@Directive({ @Directive({
standalone: true,
selector: 'input[abpFeatureManagementFreeText]', selector: 'input[abpFeatureManagementFreeText]',
exportAs: 'inputAbpFeatureManagementFreeText', exportAs: 'inputAbpFeatureManagementFreeText',
}) })

9
npm/ng-packs/packages/feature-management/src/lib/feature-management.module.ts

@ -1,6 +1,6 @@
import { CoreModule } from '@abp/ng.core'; import { CoreModule } from '@abp/ng.core';
import { ThemeSharedModule } from '@abp/ng.theme.shared'; 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 { NgbNavModule } from '@ng-bootstrap/ng-bootstrap';
import { FeatureManagementComponent } from './components/feature-management/feature-management.component'; import { FeatureManagementComponent } from './components/feature-management/feature-management.component';
import { FreeTextInputDirective } from './directives/free-text-input.directive'; import { FreeTextInputDirective } from './directives/free-text-input.directive';
@ -14,8 +14,7 @@ const exported = [
]; ];
@NgModule({ @NgModule({
declarations: [...exported], imports: [CoreModule, ThemeSharedModule, NgbNavModule, ...exported],
imports: [CoreModule, ThemeSharedModule, NgbNavModule],
exports: [...exported], exports: [...exported],
}) })
export class FeatureManagementModule { export class FeatureManagementModule {
@ -26,3 +25,7 @@ export class FeatureManagementModule {
}; };
} }
} }
export function provideFeatureManagement() {
return makeEnvironmentProviders([FEATURE_MANAGEMENT_SETTINGS_PROVIDERS]);
}

6
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'; import { IDENTITY_ROUTE_PROVIDERS } from './providers/route.provider';
@NgModule() @NgModule()
@ -10,3 +10,7 @@ export class IdentityConfigModule {
}; };
} }
} }
export function provideIdentityConfig() {
return makeEnvironmentProviders([IDENTITY_ROUTE_PROVIDERS]);
}

6
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'; import { TENANT_MANAGEMENT_ROUTE_PROVIDERS } from './providers/route.provider';
@NgModule() @NgModule()
@ -10,3 +10,7 @@ export class TenantManagementConfigModule {
}; };
} }
} }
export function provideTenantManagementConfig() {
return makeEnvironmentProviders([TENANT_MANAGEMENT_ROUTE_PROVIDERS]);
}

4
npm/ng-packs/packages/tenant-management/src/lib/tenant-management.module.ts

@ -1,5 +1,4 @@
import { CoreModule, LazyModuleFactory } from '@abp/ng.core'; import { CoreModule, LazyModuleFactory } from '@abp/ng.core';
import { FeatureManagementModule } from '@abp/ng.feature-management';
import { ThemeSharedModule } from '@abp/ng.theme.shared'; import { ThemeSharedModule } from '@abp/ng.theme.shared';
import { ExtensibleModule } from '@abp/ng.components/extensible'; import { ExtensibleModule } from '@abp/ng.components/extensible';
import { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core'; import { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';
@ -17,6 +16,7 @@ import {
TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS,
} from './tokens/extensions.token'; } from './tokens/extensions.token';
import { PageModule } from '@abp/ng.components/page'; import { PageModule } from '@abp/ng.components/page';
import { FeatureManagementComponent } from '@abp/ng.feature-management';
@NgModule({ @NgModule({
declarations: [TenantsComponent], declarations: [TenantsComponent],
@ -27,9 +27,9 @@ import { PageModule } from '@abp/ng.components/page';
CoreModule, CoreModule,
ThemeSharedModule, ThemeSharedModule,
NgbDropdownModule, NgbDropdownModule,
FeatureManagementModule,
ExtensibleModule, ExtensibleModule,
PageModule, PageModule,
FeatureManagementComponent,
], ],
}) })
export class TenantManagementModule { export class TenantManagementModule {

Loading…
Cancel
Save