mirror of https://github.com/abpframework/abp.git
26 changed files with 436 additions and 501 deletions
@ -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 +1,2 @@ |
|||
export * from './route.provider'; |
|||
export * from './account-config.provider'; |
|||
|
|||
@ -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,3 +1,4 @@ |
|||
export * from './cookie-language.provider'; |
|||
export * from './locale.provider'; |
|||
export * from './include-localization-resources.provider'; |
|||
export * from './core-module-config.provider'; |
|||
|
|||
@ -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 +1,2 @@ |
|||
export * from './feature-management-settings.provider'; |
|||
export * from './feature-management-config.provider'; |
|||
|
|||
@ -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 +1,2 @@ |
|||
export * from './route.provider'; |
|||
export * from './identity-config.provider'; |
|||
|
|||
@ -1 +1,2 @@ |
|||
export * from './navigate-to-manage-profile.provider'; |
|||
export * from './oauth-module-config.provider'; |
|||
|
|||
@ -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,3 +1,4 @@ |
|||
export * from './route.provider'; |
|||
export * from './setting-tab.provider'; |
|||
export * from './visible.provider'; |
|||
export * from './setting-management-config.provider'; |
|||
|
|||
@ -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, |
|||
]); |
|||
} |
|||
@ -1 +1,2 @@ |
|||
export * from './route.provider'; |
|||
export * from './tenant-management-config.provider'; |
|||
|
|||
@ -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]); |
|||
} |
|||
@ -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); |
|||
} |
|||
Loading…
Reference in new issue