Browse Source

move providers, deprecate modules

template-config-provider
Sinan997 2 years ago
parent
commit
5c146a031a
  1. 23
      npm/ng-packs/apps/dev-app/src/app/app.module.ts
  2. 29
      npm/ng-packs/packages/account/config/src/account-config.module.ts
  3. 15
      npm/ng-packs/packages/account/config/src/providers/account-config.provider.ts
  4. 1
      npm/ng-packs/packages/account/config/src/providers/index.ts
  5. 192
      npm/ng-packs/packages/core/src/lib/core.module.ts
  6. 166
      npm/ng-packs/packages/core/src/lib/providers/core-module-config.provider.ts
  7. 1
      npm/ng-packs/packages/core/src/lib/providers/index.ts
  8. 1
      npm/ng-packs/packages/core/src/public-api.ts
  9. 14
      npm/ng-packs/packages/feature-management/src/lib/feature-management.module.ts
  10. 6
      npm/ng-packs/packages/feature-management/src/lib/providers/feature-management-config.provider.ts
  11. 1
      npm/ng-packs/packages/feature-management/src/lib/providers/index.ts
  12. 13
      npm/ng-packs/packages/identity/config/src/identity-config.module.ts
  13. 6
      npm/ng-packs/packages/identity/config/src/providers/identity-config.provider.ts
  14. 1
      npm/ng-packs/packages/identity/config/src/providers/index.ts
  15. 124
      npm/ng-packs/packages/oauth/src/lib/oauth.module.ts
  16. 1
      npm/ng-packs/packages/oauth/src/lib/providers/index.ts
  17. 67
      npm/ng-packs/packages/oauth/src/lib/providers/oauth-module-config.provider.ts
  18. 1
      npm/ng-packs/packages/setting-management/config/src/lib/providers/index.ts
  19. 14
      npm/ng-packs/packages/setting-management/config/src/lib/providers/setting-management-config.provider.ts
  20. 26
      npm/ng-packs/packages/setting-management/config/src/lib/setting-management-config.module.ts
  21. 1
      npm/ng-packs/packages/tenant-management/config/src/providers/index.ts
  22. 6
      npm/ng-packs/packages/tenant-management/config/src/providers/tenant-management-config.provider.ts
  23. 13
      npm/ng-packs/packages/tenant-management/config/src/tenant-management-config.module.ts
  24. 1
      npm/ng-packs/packages/theme-shared/src/lib/providers/index.ts
  25. 75
      npm/ng-packs/packages/theme-shared/src/lib/providers/theme-shared-config.provider.ts
  26. 139
      npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts

23
npm/ng-packs/apps/dev-app/src/app/app.module.ts

@ -1,7 +1,10 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { CoreModule, provideCoreModuleConfig } from '@abp/ng.core';
import {
CoreModule,
provideCoreModuleConfig, withOptions
} from '@abp/ng.core';
import { registerLocale } from '@abp/ng.core/locale';
import {
InternetConnectionStatusComponent,
@ -10,9 +13,9 @@ import {
} from '@abp/ng.theme.shared';
import { ThemeLeptonXModule } from '@abp/ng.theme.lepton-x';
import { SideMenuLayoutModule } from '@abp/ng.theme.lepton-x/layouts';
import { provideAbpOAuthConfig } from '@abp/ng.oauth';
import { AbpOAuthModule, provideAbpOAuthConfig } from '@abp/ng.oauth';
import { provideSettingManagementConfig } from '@abp/ng.setting-management/config';
import { provideAccountConfig } from '@abp/ng.account/config';
import { AccountConfigModule, provideAccountConfig } from '@abp/ng.account/config';
import { provideIdentityConfig } from '@abp/ng.identity/config';
import { provideTenantManagementConfig } from '@abp/ng.tenant-management/config';
import { provideFeatureManagementConfig } from '@abp/ng.feature-management';
@ -36,12 +39,14 @@ import { APP_ROUTE_PROVIDER } from './route.provider';
],
providers: [
APP_ROUTE_PROVIDER,
provideCoreModuleConfig({
environment,
registerLocaleFn: registerLocale(),
sendNullsAsQueryParam: false,
skipGetAppConfiguration: false,
}),
provideCoreModuleConfig(
withOptions({
environment,
registerLocaleFn: registerLocale(),
sendNullsAsQueryParam: false,
skipGetAppConfiguration: false,
}),
),
provideAbpOAuthConfig(),
provideThemeSharedConfig(),
provideSettingManagementConfig(),

29
npm/ng-packs/packages/account/config/src/account-config.module.ts

@ -1,32 +1,15 @@
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';
import { ModuleWithProviders, NgModule } from '@angular/core';
import { provideAccountConfig } from './providers';
/**
* @deprecated AccountConfigModule is deprecated use `provideAccountConfig` *function* instead.
*/
@NgModule()
export class AccountConfigModule {
static forRoot(): ModuleWithProviders<AccountConfigModule> {
return {
ngModule: AccountConfigModule,
providers: [
ACCOUNT_ROUTE_PROVIDERS,
{
provide: NAVIGATE_TO_MANAGE_PROFILE,
useFactory: navigateToManageProfileFactory,
deps: [Injector],
},
],
providers: [provideAccountConfig()],
};
}
}
export function provideAccountConfig() {
return makeEnvironmentProviders([
ACCOUNT_ROUTE_PROVIDERS,
{
provide: NAVIGATE_TO_MANAGE_PROFILE,
useFactory: navigateToManageProfileFactory,
deps: [Injector],
},
]);
}

15
npm/ng-packs/packages/account/config/src/providers/account-config.provider.ts

@ -0,0 +1,15 @@
import { NAVIGATE_TO_MANAGE_PROFILE } from '@abp/ng.core';
import { makeEnvironmentProviders, Injector } from '@angular/core';
import { navigateToManageProfileFactory } from '../utils/factories';
import { ACCOUNT_ROUTE_PROVIDERS } from './route.provider';
export function provideAccountConfig() {
return makeEnvironmentProviders([
ACCOUNT_ROUTE_PROVIDERS,
{
provide: NAVIGATE_TO_MANAGE_PROFILE,
useFactory: navigateToManageProfileFactory,
deps: [Injector],
},
]);
}

1
npm/ng-packs/packages/account/config/src/providers/index.ts

@ -1 +1,2 @@
export * from './route.provider';
export * from './account-config.provider';

192
npm/ng-packs/packages/core/src/lib/core.module.ts

@ -1,14 +1,8 @@
import { CommonModule } from '@angular/common';
import { HttpClientModule, HttpClientXsrfModule } from '@angular/common/http';
import {
APP_INITIALIZER,
Injector,
ModuleWithProviders,
NgModule,
makeEnvironmentProviders,
} from '@angular/core';
import { ModuleWithProviders, NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { RouterModule, TitleStrategy } from '@angular/router';
import { RouterModule } from '@angular/router';
import { AbstractNgModelComponent } from './abstracts/ng-model.component';
import { DynamicLayoutComponent } from './components/dynamic-layout.component';
import { ReplaceableRouteContainerComponent } from './components/replaceable-route-container.component';
@ -21,35 +15,19 @@ import { InitDirective } from './directives/init.directive';
import { PermissionDirective } from './directives/permission.directive';
import { ReplaceableTemplateDirective } from './directives/replaceable-template.directive';
import { StopPropagationDirective } from './directives/stop-propagation.directive';
import { RoutesHandler } from './handlers/routes.handler';
import { LocalizationModule } from './localization.module';
import { ABP } from './models/common';
import { LocalizationPipe } from './pipes/localization.pipe';
import { SortPipe } from './pipes/sort.pipe';
import { ToInjectorPipe } from './pipes/to-injector.pipe';
import { CookieLanguageProvider } from './providers/cookie-language.provider';
import { LocaleProvider } from './providers/locale.provider';
import { LocalizationService } from './services/localization.service';
import { OTHERS_GROUP } from './tokens';
import { localizationContributor, LOCALIZATIONS } from './tokens/localization.token';
import { CORE_OPTIONS, coreOptionsFactory } from './tokens/options.token';
import { TENANT_KEY } from './tokens/tenant-key.token';
import { noop } from './utils/common-utils';
import './utils/date-extensions';
import { getInitialData, localeInitializer } from './utils/initial-utils';
import { ShortDateTimePipe } from './pipes/short-date-time.pipe';
import { ShortTimePipe } from './pipes/short-time.pipe';
import { ShortDatePipe } from './pipes/short-date.pipe';
import { SafeHtmlPipe } from './pipes/safe-html.pipe';
import { QUEUE_MANAGER } from './tokens/queue.token';
import { DefaultQueueManager } from './utils/queue';
import { IncludeLocalizationResourcesProvider } from './providers/include-localization-resources.provider';
import { SORT_COMPARE_FUNC, compareFuncFactory } from './tokens/compare-func.token';
import { AuthErrorFilterService } from './abstracts';
import { DYNAMIC_LAYOUTS_TOKEN } from './tokens/dynamic-layout.token';
import { DEFAULT_DYNAMIC_LAYOUTS } from './constants';
import { AbpTitleStrategy } from './services/title-strategy.service';
import { LocalStorageListenerService } from './services/local-storage-listener.service';
import { provideCoreModuleConfig, provideCoreModuleConfigChild, withOptions } from './providers';
const standaloneDirectives = [
AutofocusDirective,
@ -137,171 +115,23 @@ export class RootCoreModule {}
imports: [BaseCoreModule],
})
export class CoreModule {
/**
* @deprecated forRoot method is deprecated, use `provideCoreModuleConfig` *function* for config settings.
*/
static forRoot(options = {} as ABP.Root): ModuleWithProviders<RootCoreModule> {
return {
ngModule: RootCoreModule,
providers: [
LocaleProvider,
CookieLanguageProvider,
{
provide: 'CORE_OPTIONS',
useValue: options,
},
{
provide: CORE_OPTIONS,
useFactory: coreOptionsFactory,
deps: ['CORE_OPTIONS'],
},
{
provide: APP_INITIALIZER,
multi: true,
deps: [Injector],
useFactory: getInitialData,
},
{
provide: APP_INITIALIZER,
multi: true,
deps: [Injector],
useFactory: localeInitializer,
},
{
provide: APP_INITIALIZER,
multi: true,
deps: [LocalizationService],
useFactory: noop,
},
{
provide: APP_INITIALIZER,
multi: true,
deps: [LocalStorageListenerService],
useFactory: noop,
},
{
provide: APP_INITIALIZER,
multi: true,
deps: [RoutesHandler],
useFactory: noop,
},
{ provide: TENANT_KEY, useValue: options.tenantKey || '__tenant' },
{
provide: LOCALIZATIONS,
multi: true,
useValue: localizationContributor(options.localizations),
deps: [LocalizationService],
},
{
provide: SORT_COMPARE_FUNC,
useFactory: compareFuncFactory,
},
{
provide: QUEUE_MANAGER,
useClass: DefaultQueueManager,
},
{
provide: OTHERS_GROUP,
useValue: options.othersGroup || 'AbpUi::OthersGroup',
},
AuthErrorFilterService,
IncludeLocalizationResourcesProvider,
{
provide: DYNAMIC_LAYOUTS_TOKEN,
useValue: options.dynamicLayouts || DEFAULT_DYNAMIC_LAYOUTS,
},
{
provide: TitleStrategy,
useExisting: AbpTitleStrategy,
},
],
providers: [provideCoreModuleConfig(withOptions(options))],
};
}
/**
* @deprecated forChild method is deprecated, use `provideCoreModuleConfig` *function* for config settings.
*/
static forChild(options = {} as ABP.Child): ModuleWithProviders<RootCoreModule> {
return {
ngModule: RootCoreModule,
providers: [
{
provide: LOCALIZATIONS,
multi: true,
useValue: localizationContributor(options.localizations),
deps: [LocalizationService],
},
],
providers: [provideCoreModuleConfigChild(options)],
};
}
}
export function provideCoreModuleConfig(options = {} as ABP.Root) {
return makeEnvironmentProviders([
LocaleProvider,
CookieLanguageProvider,
{
provide: 'CORE_OPTIONS',
useValue: options,
},
{
provide: CORE_OPTIONS,
useFactory: coreOptionsFactory,
deps: ['CORE_OPTIONS'],
},
{
provide: APP_INITIALIZER,
multi: true,
deps: [Injector],
useFactory: getInitialData,
},
{
provide: APP_INITIALIZER,
multi: true,
deps: [Injector],
useFactory: localeInitializer,
},
{
provide: APP_INITIALIZER,
multi: true,
deps: [LocalizationService],
useFactory: noop,
},
{
provide: APP_INITIALIZER,
multi: true,
deps: [LocalStorageListenerService],
useFactory: noop,
},
{
provide: APP_INITIALIZER,
multi: true,
deps: [RoutesHandler],
useFactory: noop,
},
{ provide: TENANT_KEY, useValue: options.tenantKey || '__tenant' },
{
provide: LOCALIZATIONS,
multi: true,
useValue: localizationContributor(options.localizations),
deps: [LocalizationService],
},
{
provide: SORT_COMPARE_FUNC,
useFactory: compareFuncFactory,
},
{
provide: QUEUE_MANAGER,
useClass: DefaultQueueManager,
},
{
provide: OTHERS_GROUP,
useValue: options.othersGroup || 'AbpUi::OthersGroup',
},
AuthErrorFilterService,
IncludeLocalizationResourcesProvider,
{
provide: DYNAMIC_LAYOUTS_TOKEN,
useValue: options.dynamicLayouts || DEFAULT_DYNAMIC_LAYOUTS,
},
{
provide: TitleStrategy,
useExisting: AbpTitleStrategy,
},
]);
}

166
npm/ng-packs/packages/core/src/lib/providers/core-module-config.provider.ts

@ -0,0 +1,166 @@
import {
ABP,
AuthErrorFilterService,
CORE_OPTIONS,
DEFAULT_DYNAMIC_LAYOUTS,
DefaultQueueManager,
LOCALIZATIONS,
LocalStorageListenerService,
LocalizationService,
OTHERS_GROUP,
QUEUE_MANAGER,
SORT_COMPARE_FUNC,
TENANT_KEY,
compareFuncFactory,
coreOptionsFactory,
getInitialData,
localeInitializer,
localizationContributor,
noop,
} from '@abp/ng.core';
import { makeEnvironmentProviders, APP_INITIALIZER, Injector, Provider } from '@angular/core';
import { TitleStrategy } from '@angular/router';
import { RoutesHandler } from '../handlers';
import { AbpTitleStrategy } from '../services/title-strategy.service';
import { DYNAMIC_LAYOUTS_TOKEN } from '../tokens/dynamic-layout.token';
import { CookieLanguageProvider } from './cookie-language.provider';
import { IncludeLocalizationResourcesProvider } from './include-localization-resources.provider';
import { LocaleProvider } from './locale.provider';
export enum CoreFeatureKind {
Options,
compareFuncFactory,
TitleStrategy,
}
export interface CoreFeature<KindT extends CoreFeatureKind> {
ɵkind: KindT;
ɵproviders: Provider[];
}
function makeCoreFeature<KindT extends CoreFeatureKind>(
kind: KindT,
providers: Provider[],
): CoreFeature<KindT> {
return {
ɵkind: kind,
ɵproviders: providers,
};
}
export function withOptions(options = {} as ABP.Root): CoreFeature<CoreFeatureKind.Options> {
return makeCoreFeature(CoreFeatureKind.Options, [
{
provide: 'CORE_OPTIONS',
useValue: options,
},
{
provide: CORE_OPTIONS,
useFactory: coreOptionsFactory,
deps: ['CORE_OPTIONS'],
},
{ provide: TENANT_KEY, useValue: options.tenantKey || '__tenant' },
{
provide: LOCALIZATIONS,
multi: true,
useValue: localizationContributor(options.localizations),
deps: [LocalizationService],
},
{
provide: OTHERS_GROUP,
useValue: options.othersGroup || 'AbpUi::OthersGroup',
},
{
provide: DYNAMIC_LAYOUTS_TOKEN,
useValue: options.dynamicLayouts || DEFAULT_DYNAMIC_LAYOUTS,
},
]);
}
export function withTitleStrategy(strategy: any): CoreFeature<CoreFeatureKind.TitleStrategy> {
return makeCoreFeature(CoreFeatureKind.TitleStrategy, [
{
provide: TitleStrategy,
useExisting: strategy,
},
]);
}
export function withCompareFuncFactory(
factory: any,
): CoreFeature<CoreFeatureKind.compareFuncFactory> {
return makeCoreFeature(CoreFeatureKind.compareFuncFactory, [
{
provide: SORT_COMPARE_FUNC,
useFactory: factory,
},
]);
}
export function provideCoreModuleConfig(...features: CoreFeature<CoreFeatureKind>[]) {
const providers = [
LocaleProvider,
CookieLanguageProvider,
{
provide: APP_INITIALIZER,
multi: true,
deps: [Injector],
useFactory: getInitialData,
},
{
provide: APP_INITIALIZER,
multi: true,
deps: [Injector],
useFactory: localeInitializer,
},
{
provide: APP_INITIALIZER,
multi: true,
deps: [LocalizationService],
useFactory: noop,
},
{
provide: APP_INITIALIZER,
multi: true,
deps: [LocalStorageListenerService],
useFactory: noop,
},
{
provide: APP_INITIALIZER,
multi: true,
deps: [RoutesHandler],
useFactory: noop,
},
{
provide: SORT_COMPARE_FUNC,
useFactory: compareFuncFactory,
},
{
provide: QUEUE_MANAGER,
useClass: DefaultQueueManager,
},
AuthErrorFilterService,
IncludeLocalizationResourcesProvider,
{
provide: TitleStrategy,
useExisting: AbpTitleStrategy,
},
];
for (const feature of features) {
providers.push(...feature.ɵproviders);
}
return makeEnvironmentProviders(providers);
}
export function provideCoreModuleConfigChild(options = {} as ABP.Child) {
return makeEnvironmentProviders([
{
provide: LOCALIZATIONS,
multi: true,
useValue: localizationContributor(options.localizations),
deps: [LocalizationService],
},
]);
}

1
npm/ng-packs/packages/core/src/lib/providers/index.ts

@ -1,3 +1,4 @@
export * from './cookie-language.provider';
export * from './locale.provider';
export * from './include-localization-resources.provider';
export * from './core-module-config.provider';

1
npm/ng-packs/packages/core/src/public-api.ts

@ -9,6 +9,7 @@ export * from './lib/guards';
export * from './lib/localization.module';
export * from './lib/models';
export * from './lib/pipes';
export * from './lib/providers';
export * from './lib/proxy/pages/abp/multi-tenancy';
export * from './lib/proxy/volo/abp/asp-net-core/mvc/api-exploring';
export * from './lib/proxy/volo/abp/asp-net-core/mvc/application-configurations';

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

@ -1,10 +1,10 @@
import { CoreModule } from '@abp/ng.core';
import { ThemeSharedModule } from '@abp/ng.theme.shared';
import { ModuleWithProviders, NgModule, makeEnvironmentProviders } from '@angular/core';
import { ModuleWithProviders, NgModule } 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';
import { FEATURE_MANAGEMENT_SETTINGS_PROVIDERS } from './providers';
import { provideFeatureManagementConfig } from './providers';
import { FeatureManagementTabComponent } from './components';
const exported = [
@ -13,6 +13,10 @@ const exported = [
FeatureManagementTabComponent,
];
/**
* @deprecated FeatureManagementModule is deprecated .
* @description use `provideFeatureManagementConfig` *function* for config settings. You can import directives and pipes directly, it has been switched to standalone.
*/
@NgModule({
imports: [CoreModule, ThemeSharedModule, NgbNavModule, ...exported],
exports: [...exported],
@ -21,11 +25,7 @@ export class FeatureManagementModule {
static forRoot(): ModuleWithProviders<FeatureManagementModule> {
return {
ngModule: FeatureManagementModule,
providers: [FEATURE_MANAGEMENT_SETTINGS_PROVIDERS],
providers: [provideFeatureManagementConfig()],
};
}
}
export function provideFeatureManagementConfig() {
return makeEnvironmentProviders([FEATURE_MANAGEMENT_SETTINGS_PROVIDERS]);
}

6
npm/ng-packs/packages/feature-management/src/lib/providers/feature-management-config.provider.ts

@ -0,0 +1,6 @@
import { makeEnvironmentProviders } from '@angular/core';
import { FEATURE_MANAGEMENT_SETTINGS_PROVIDERS } from './feature-management-settings.provider';
export function provideFeatureManagementConfig() {
return makeEnvironmentProviders([FEATURE_MANAGEMENT_SETTINGS_PROVIDERS]);
}

1
npm/ng-packs/packages/feature-management/src/lib/providers/index.ts

@ -1 +1,2 @@
export * from './feature-management-settings.provider';
export * from './feature-management-config.provider';

13
npm/ng-packs/packages/identity/config/src/identity-config.module.ts

@ -1,16 +1,15 @@
import { ModuleWithProviders, NgModule, makeEnvironmentProviders } from '@angular/core';
import { IDENTITY_ROUTE_PROVIDERS } from './providers/route.provider';
import { ModuleWithProviders, NgModule } from '@angular/core';
import { provideIdentityConfig } from './providers';
/**
* @deprecated IdentityConfigModule is deprecated use `provideIdentityConfig` *function* instead.
*/
@NgModule()
export class IdentityConfigModule {
static forRoot(): ModuleWithProviders<IdentityConfigModule> {
return {
ngModule: IdentityConfigModule,
providers: [IDENTITY_ROUTE_PROVIDERS],
providers: [provideIdentityConfig()],
};
}
}
export function provideIdentityConfig() {
return makeEnvironmentProviders([IDENTITY_ROUTE_PROVIDERS]);
}

6
npm/ng-packs/packages/identity/config/src/providers/identity-config.provider.ts

@ -0,0 +1,6 @@
import { makeEnvironmentProviders } from '@angular/core';
import { IDENTITY_ROUTE_PROVIDERS } from './route.provider';
export function provideIdentityConfig() {
return makeEnvironmentProviders([IDENTITY_ROUTE_PROVIDERS]);
}

1
npm/ng-packs/packages/identity/config/src/providers/index.ts

@ -1 +1,2 @@
export * from './route.provider';
export * from './identity-config.provider';

124
npm/ng-packs/packages/oauth/src/lib/oauth.module.ts

@ -1,125 +1,15 @@
import {
APP_INITIALIZER,
ModuleWithProviders,
NgModule,
Provider,
makeEnvironmentProviders,
} from '@angular/core';
import { CommonModule } from '@angular/common';
import { HTTP_INTERCEPTORS } from '@angular/common/http';
import { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc';
import {
AbpLocalStorageService,
ApiInterceptor,
AuthErrorFilterService,
AuthGuard,
authGuard,
AuthService,
CHECK_AUTHENTICATION_STATE_FN_KEY,
noop,
PIPE_TO_LOGIN_FN_KEY,
} from '@abp/ng.core';
import { AbpOAuthService, OAuthErrorFilterService } from './services';
import { OAuthConfigurationHandler } from './handlers/oauth-configuration.handler';
import { OAuthApiInterceptor } from './interceptors/api.interceptor';
import { AbpOAuthGuard, abpOAuthGuard } from './guards/oauth.guard';
import { NavigateToManageProfileProvider } from './providers';
import { checkAccessToken, pipeToLogin } from './utils';
import { ModuleWithProviders, NgModule } from '@angular/core';
import { provideAbpOAuthConfig } from './providers';
@NgModule({
imports: [CommonModule, OAuthModule],
})
/**
* @deprecated AbpOAuthModule is deprecated use `provideAbpOAuthConfig` *function* instead.
*/
@NgModule()
export class AbpOAuthModule {
static forRoot(): ModuleWithProviders<AbpOAuthModule> {
return {
ngModule: AbpOAuthModule,
providers: [
{
provide: AuthService,
useClass: AbpOAuthService,
},
{
provide: AuthGuard,
useClass: AbpOAuthGuard,
},
{
provide: authGuard,
useValue: abpOAuthGuard,
},
{
provide: ApiInterceptor,
useClass: OAuthApiInterceptor,
},
{
provide: PIPE_TO_LOGIN_FN_KEY,
useValue: pipeToLogin,
},
{
provide: CHECK_AUTHENTICATION_STATE_FN_KEY,
useValue: checkAccessToken,
},
{
provide: HTTP_INTERCEPTORS,
useExisting: ApiInterceptor,
multi: true,
},
NavigateToManageProfileProvider,
{
provide: APP_INITIALIZER,
multi: true,
deps: [OAuthConfigurationHandler],
useFactory: noop,
},
OAuthModule.forRoot().providers as Provider[],
{ provide: OAuthStorage, useClass: AbpLocalStorageService },
{ provide: AuthErrorFilterService, useExisting: OAuthErrorFilterService },
],
providers: [provideAbpOAuthConfig()],
};
}
}
export function provideAbpOAuthConfig() {
const providers = [
{
provide: AuthService,
useClass: AbpOAuthService,
},
{
provide: AuthGuard,
useClass: AbpOAuthGuard,
},
{
provide: authGuard,
useValue: abpOAuthGuard,
},
{
provide: ApiInterceptor,
useClass: OAuthApiInterceptor,
},
{
provide: PIPE_TO_LOGIN_FN_KEY,
useValue: pipeToLogin,
},
{
provide: CHECK_AUTHENTICATION_STATE_FN_KEY,
useValue: checkAccessToken,
},
{
provide: HTTP_INTERCEPTORS,
useExisting: ApiInterceptor,
multi: true,
},
NavigateToManageProfileProvider,
{
provide: APP_INITIALIZER,
multi: true,
deps: [OAuthConfigurationHandler],
useFactory: noop,
},
OAuthModule.forRoot().providers as Provider[],
{ provide: OAuthStorage, useClass: AbpLocalStorageService },
{ provide: AuthErrorFilterService, useExisting: OAuthErrorFilterService },
];
return makeEnvironmentProviders(providers);
}

1
npm/ng-packs/packages/oauth/src/lib/providers/index.ts

@ -1 +1,2 @@
export * from './navigate-to-manage-profile.provider';
export * from './oauth-module-config.provider';

67
npm/ng-packs/packages/oauth/src/lib/providers/oauth-module-config.provider.ts

@ -0,0 +1,67 @@
import {
AuthService,
AuthGuard,
authGuard,
ApiInterceptor,
PIPE_TO_LOGIN_FN_KEY,
CHECK_AUTHENTICATION_STATE_FN_KEY,
AbpLocalStorageService,
AuthErrorFilterService,
noop,
} from '@abp/ng.core';
import { APP_INITIALIZER, Provider, makeEnvironmentProviders } from '@angular/core';
import { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc';
import { AbpOAuthGuard, abpOAuthGuard } from '../guards';
import { OAuthConfigurationHandler } from '../handlers';
import { OAuthApiInterceptor } from '../interceptors';
import { AbpOAuthService, OAuthErrorFilterService } from '../services';
import { pipeToLogin, checkAccessToken } from '../utils';
import { NavigateToManageProfileProvider } from './navigate-to-manage-profile.provider';
import { HTTP_INTERCEPTORS } from '@angular/common/http';
export function provideAbpOAuthConfig() {
const providers = [
{
provide: AuthService,
useClass: AbpOAuthService,
},
{
provide: AuthGuard,
useClass: AbpOAuthGuard,
},
{
provide: authGuard,
useValue: abpOAuthGuard,
},
{
provide: ApiInterceptor,
useClass: OAuthApiInterceptor,
},
{
provide: PIPE_TO_LOGIN_FN_KEY,
useValue: pipeToLogin,
},
{
provide: CHECK_AUTHENTICATION_STATE_FN_KEY,
useValue: checkAccessToken,
},
{
provide: HTTP_INTERCEPTORS,
useExisting: ApiInterceptor,
multi: true,
},
NavigateToManageProfileProvider,
{
provide: APP_INITIALIZER,
multi: true,
deps: [OAuthConfigurationHandler],
useFactory: noop,
},
OAuthModule.forRoot().providers as Provider[],
{ provide: OAuthStorage, useClass: AbpLocalStorageService },
{ provide: AuthErrorFilterService, useExisting: OAuthErrorFilterService },
];
return makeEnvironmentProviders(providers);
}

1
npm/ng-packs/packages/setting-management/config/src/lib/providers/index.ts

@ -1,3 +1,4 @@
export * from './route.provider';
export * from './setting-tab.provider';
export * from './visible.provider';
export * from './setting-management-config.provider';

14
npm/ng-packs/packages/setting-management/config/src/lib/providers/setting-management-config.provider.ts

@ -0,0 +1,14 @@
import { makeEnvironmentProviders } from '@angular/core';
import { SETTING_MANAGEMENT_FEATURES_PROVIDERS } from './features.token';
import { SETTING_MANAGEMENT_ROUTE_PROVIDERS } from './route.provider';
import { SETTING_MANAGEMENT_SETTING_TAB_PROVIDERS } from './setting-tab.provider';
import { SETTING_MANAGEMENT_VISIBLE_PROVIDERS } from './visible.provider';
export function provideSettingManagementConfig() {
return makeEnvironmentProviders([
SETTING_MANAGEMENT_ROUTE_PROVIDERS,
SETTING_MANAGEMENT_SETTING_TAB_PROVIDERS,
SETTING_MANAGEMENT_FEATURES_PROVIDERS,
SETTING_MANAGEMENT_VISIBLE_PROVIDERS,
]);
}

26
npm/ng-packs/packages/setting-management/config/src/lib/setting-management-config.module.ts

@ -1,12 +1,9 @@
import { ThemeSharedModule } from '@abp/ng.theme.shared';
import { ModuleWithProviders, NgModule, makeEnvironmentProviders } from '@angular/core';
import { ModuleWithProviders, NgModule } from '@angular/core';
import { CoreModule } from '@abp/ng.core';
import { NgxValidateCoreModule } from '@ngx-validate/core';
import { SETTING_MANAGEMENT_FEATURES_PROVIDERS } from './providers/features.token';
import { SETTING_MANAGEMENT_VISIBLE_PROVIDERS } from './providers/visible.provider';
import { SETTING_MANAGEMENT_ROUTE_PROVIDERS } from './providers/route.provider';
import { SETTING_MANAGEMENT_SETTING_TAB_PROVIDERS } from './providers/setting-tab.provider';
import { EmailSettingGroupComponent } from './components/email-setting-group/email-setting-group.component';
import { provideSettingManagementConfig } from './providers';
@NgModule({
imports: [CoreModule, ThemeSharedModule, NgxValidateCoreModule],
@ -14,24 +11,13 @@ import { EmailSettingGroupComponent } from './components/email-setting-group/ema
exports: [EmailSettingGroupComponent],
})
export class SettingManagementConfigModule {
/**
* @deprecated forRoot method is deprecated, use `provideSettingManagementConfig` *function* for config settings.
*/
static forRoot(): ModuleWithProviders<SettingManagementConfigModule> {
return {
ngModule: SettingManagementConfigModule,
providers: [
SETTING_MANAGEMENT_ROUTE_PROVIDERS,
SETTING_MANAGEMENT_SETTING_TAB_PROVIDERS,
SETTING_MANAGEMENT_FEATURES_PROVIDERS,
SETTING_MANAGEMENT_VISIBLE_PROVIDERS,
],
providers: [provideSettingManagementConfig()],
};
}
}
export function provideSettingManagementConfig() {
return makeEnvironmentProviders([
SETTING_MANAGEMENT_ROUTE_PROVIDERS,
SETTING_MANAGEMENT_SETTING_TAB_PROVIDERS,
SETTING_MANAGEMENT_FEATURES_PROVIDERS,
SETTING_MANAGEMENT_VISIBLE_PROVIDERS,
]);
}

1
npm/ng-packs/packages/tenant-management/config/src/providers/index.ts

@ -1 +1,2 @@
export * from './route.provider';
export * from './tenant-management-config.provider';

6
npm/ng-packs/packages/tenant-management/config/src/providers/tenant-management-config.provider.ts

@ -0,0 +1,6 @@
import { makeEnvironmentProviders } from '@angular/core';
import { TENANT_MANAGEMENT_ROUTE_PROVIDERS } from './route.provider';
export function provideTenantManagementConfig() {
return makeEnvironmentProviders([TENANT_MANAGEMENT_ROUTE_PROVIDERS]);
}

13
npm/ng-packs/packages/tenant-management/config/src/tenant-management-config.module.ts

@ -1,16 +1,15 @@
import { ModuleWithProviders, NgModule, makeEnvironmentProviders } from '@angular/core';
import { TENANT_MANAGEMENT_ROUTE_PROVIDERS } from './providers/route.provider';
import { ModuleWithProviders, NgModule } from '@angular/core';
import { provideTenantManagementConfig } from './providers';
/**
* @deprecated TenantManagementConfigModule is deprecated use `provideTenantManagementConfig` *function* instead.
*/
@NgModule()
export class TenantManagementConfigModule {
static forRoot(): ModuleWithProviders<TenantManagementConfigModule> {
return {
ngModule: TenantManagementConfigModule,
providers: [TENANT_MANAGEMENT_ROUTE_PROVIDERS],
providers: [provideTenantManagementConfig()],
};
}
}
export function provideTenantManagementConfig() {
return makeEnvironmentProviders([TENANT_MANAGEMENT_ROUTE_PROVIDERS]);
}

1
npm/ng-packs/packages/theme-shared/src/lib/providers/index.ts

@ -2,3 +2,4 @@ export * from './ng-bootstrap-config.provider';
export * from './route.provider';
export * from './tenant-not-found.provider';
export * from './error-handlers.provider';
export * from './theme-shared-config.provider';

75
npm/ng-packs/packages/theme-shared/src/lib/providers/theme-shared-config.provider.ts

@ -0,0 +1,75 @@
import { APP_INITIALIZER, ErrorHandler, makeEnvironmentProviders } from '@angular/core';
import { noop } from '@abp/ng.core';
import { NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';
import {
VALIDATION_BLUEPRINTS,
VALIDATION_MAP_ERRORS_FN,
defaultMapErrorsFn,
VALIDATION_VALIDATE_ON_SUBMIT,
} from '@ngx-validate/core';
import { DEFAULT_VALIDATION_BLUEPRINTS } from '../constants';
import { DocumentDirHandlerService } from '../handlers';
import { RootParams } from '../models';
import { THEME_SHARED_APPEND_CONTENT, HTTP_ERROR_CONFIG } from '../tokens';
import { CONFIRMATION_ICONS, DEFAULT_CONFIRMATION_ICONS } from '../tokens/confirmation-icons.token';
import { DateParserFormatter } from '../utils';
import { DEFAULT_HANDLERS_PROVIDERS } from './error-handlers.provider';
import { NG_BOOTSTRAP_CONFIG_PROVIDERS } from './ng-bootstrap-config.provider';
import { THEME_SHARED_ROUTE_PROVIDERS } from './route.provider';
import { tenantNotFoundProvider } from './tenant-not-found.provider';
export function provideThemeSharedConfig(
{ httpErrorConfig, validation = {}, confirmationIcons = {} } = {} as RootParams,
) {
const providers = [
{
provide: APP_INITIALIZER,
multi: true,
deps: [ErrorHandler],
useFactory: noop,
},
THEME_SHARED_ROUTE_PROVIDERS,
{
provide: APP_INITIALIZER,
multi: true,
deps: [THEME_SHARED_APPEND_CONTENT],
useFactory: noop,
},
{ provide: HTTP_ERROR_CONFIG, useValue: httpErrorConfig },
{ provide: NgbDateParserFormatter, useClass: DateParserFormatter },
NG_BOOTSTRAP_CONFIG_PROVIDERS,
{
provide: VALIDATION_BLUEPRINTS,
useValue: {
...DEFAULT_VALIDATION_BLUEPRINTS,
...(validation.blueprints || {}),
},
},
{
provide: VALIDATION_MAP_ERRORS_FN,
useValue: validation.mapErrorsFn || defaultMapErrorsFn,
},
{
provide: VALIDATION_VALIDATE_ON_SUBMIT,
useValue: validation.validateOnSubmit,
},
DocumentDirHandlerService,
{
provide: APP_INITIALIZER,
useFactory: noop,
multi: true,
deps: [DocumentDirHandlerService],
},
{
provide: CONFIRMATION_ICONS,
useValue: {
...DEFAULT_CONFIRMATION_ICONS,
...(confirmationIcons || {}),
},
},
tenantNotFoundProvider,
DEFAULT_HANDLERS_PROVIDERS,
];
return makeEnvironmentProviders(providers);
}

139
npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts

@ -1,19 +1,8 @@
import { CoreModule, noop } from '@abp/ng.core';
import { CoreModule } from '@abp/ng.core';
import { DatePipe } from '@angular/common';
import {
APP_INITIALIZER,
ModuleWithProviders,
NgModule,
makeEnvironmentProviders,
} from '@angular/core';
import { NgbDateParserFormatter, NgbPaginationModule } from '@ng-bootstrap/ng-bootstrap';
import {
defaultMapErrorsFn,
NgxValidateCoreModule,
VALIDATION_BLUEPRINTS,
VALIDATION_MAP_ERRORS_FN,
VALIDATION_VALIDATE_ON_SUBMIT,
} from '@ngx-validate/core';
import { ModuleWithProviders, NgModule } from '@angular/core';
import { NgbPaginationModule } from '@ng-bootstrap/ng-bootstrap';
import { NgxValidateCoreModule } from '@ngx-validate/core';
import { NgxDatatableModule } from '@swimlane/ngx-datatable';
import { BreadcrumbItemsComponent } from './components/breadcrumb-items/breadcrumb-items.component';
import { BreadcrumbComponent } from './components/breadcrumb/breadcrumb.component';
@ -26,26 +15,17 @@ import { ModalCloseDirective } from './components/modal/modal-close.directive';
import { ModalComponent } from './components/modal/modal.component';
import { ToastContainerComponent } from './components/toast-container/toast-container.component';
import { ToastComponent } from './components/toast/toast.component';
import { DEFAULT_VALIDATION_BLUEPRINTS } from './constants/validation';
import { EllipsisDirective } from './directives/ellipsis.directive';
import { LoadingDirective } from './directives/loading.directive';
import { NgxDatatableDefaultDirective } from './directives/ngx-datatable-default.directive';
import { NgxDatatableListDirective } from './directives/ngx-datatable-list.directive';
import { DocumentDirHandlerService } from './handlers/document-dir.handler';
import { ErrorHandler } from './handlers/error.handler';
import { RootParams } from './models/common';
import { DEFAULT_HANDLERS_PROVIDERS, NG_BOOTSTRAP_CONFIG_PROVIDERS } from './providers';
import { THEME_SHARED_ROUTE_PROVIDERS } from './providers/route.provider';
import { THEME_SHARED_APPEND_CONTENT } from './tokens/append-content.token';
import { HTTP_ERROR_CONFIG } from './tokens/http-error.token';
import { DateParserFormatter } from './utils/date-parser-formatter';
import { CONFIRMATION_ICONS, DEFAULT_CONFIRMATION_ICONS } from './tokens/confirmation-icons.token';
import { provideThemeSharedConfig } from './providers';
import { PasswordComponent } from './components/password/password.component';
import { CardModule } from './components/card/card.module';
import { AbpVisibleDirective, DisabledDirective } from './directives';
import { FormInputComponent } from './components/form-input/form-input.component';
import { FormCheckboxComponent } from './components/checkbox/checkbox.component';
import { tenantNotFoundProvider } from './providers/tenant-not-found.provider';
const declarationsWithExports = [
BreadcrumbComponent,
@ -98,116 +78,15 @@ export class BaseThemeSharedModule {}
exports: [BaseThemeSharedModule],
})
export class ThemeSharedModule {
/**
* @deprecated forRoot method is deprecated, use `provideThemeSharedConfig` *function* for config settings.
*/
static forRoot(
{ httpErrorConfig, validation = {}, confirmationIcons = {} } = {} as RootParams,
): ModuleWithProviders<ThemeSharedModule> {
return {
ngModule: ThemeSharedModule,
providers: [
{
provide: APP_INITIALIZER,
multi: true,
deps: [ErrorHandler],
useFactory: noop,
},
THEME_SHARED_ROUTE_PROVIDERS,
{
provide: APP_INITIALIZER,
multi: true,
deps: [THEME_SHARED_APPEND_CONTENT],
useFactory: noop,
},
{ provide: HTTP_ERROR_CONFIG, useValue: httpErrorConfig },
{ provide: NgbDateParserFormatter, useClass: DateParserFormatter },
NG_BOOTSTRAP_CONFIG_PROVIDERS,
{
provide: VALIDATION_BLUEPRINTS,
useValue: {
...DEFAULT_VALIDATION_BLUEPRINTS,
...(validation.blueprints || {}),
},
},
{
provide: VALIDATION_MAP_ERRORS_FN,
useValue: validation.mapErrorsFn || defaultMapErrorsFn,
},
{
provide: VALIDATION_VALIDATE_ON_SUBMIT,
useValue: validation.validateOnSubmit,
},
DocumentDirHandlerService,
{
provide: APP_INITIALIZER,
useFactory: noop,
multi: true,
deps: [DocumentDirHandlerService],
},
{
provide: CONFIRMATION_ICONS,
useValue: {
...DEFAULT_CONFIRMATION_ICONS,
...(confirmationIcons || {}),
},
},
tenantNotFoundProvider,
DEFAULT_HANDLERS_PROVIDERS,
],
providers: [provideThemeSharedConfig({ httpErrorConfig, validation, confirmationIcons })],
};
}
}
export function provideThemeSharedConfig(
{ httpErrorConfig, validation = {}, confirmationIcons = {} } = {} as RootParams,
) {
const providers = [
{
provide: APP_INITIALIZER,
multi: true,
deps: [ErrorHandler],
useFactory: noop,
},
THEME_SHARED_ROUTE_PROVIDERS,
{
provide: APP_INITIALIZER,
multi: true,
deps: [THEME_SHARED_APPEND_CONTENT],
useFactory: noop,
},
{ provide: HTTP_ERROR_CONFIG, useValue: httpErrorConfig },
{ provide: NgbDateParserFormatter, useClass: DateParserFormatter },
NG_BOOTSTRAP_CONFIG_PROVIDERS,
{
provide: VALIDATION_BLUEPRINTS,
useValue: {
...DEFAULT_VALIDATION_BLUEPRINTS,
...(validation.blueprints || {}),
},
},
{
provide: VALIDATION_MAP_ERRORS_FN,
useValue: validation.mapErrorsFn || defaultMapErrorsFn,
},
{
provide: VALIDATION_VALIDATE_ON_SUBMIT,
useValue: validation.validateOnSubmit,
},
DocumentDirHandlerService,
{
provide: APP_INITIALIZER,
useFactory: noop,
multi: true,
deps: [DocumentDirHandlerService],
},
{
provide: CONFIRMATION_ICONS,
useValue: {
...DEFAULT_CONFIRMATION_ICONS,
...(confirmationIcons || {}),
},
},
tenantNotFoundProvider,
DEFAULT_HANDLERS_PROVIDERS,
];
return makeEnvironmentProviders(providers);
}

Loading…
Cancel
Save