Browse Source

update: app initialization providers for all packages

pull/21668/head
sumeyyeKurtulus 1 year ago
parent
commit
c87f95f031
  1. 95
      npm/ng-packs/packages/account/config/src/providers/route.provider.ts
  2. 5
      npm/ng-packs/packages/core/src/lib/providers/cookie-language.provider.ts
  3. 13
      npm/ng-packs/packages/core/src/lib/providers/core-module-config.provider.ts
  4. 8
      npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts
  5. 24
      npm/ng-packs/packages/feature-management/src/lib/providers/feature-management-settings.provider.ts
  6. 58
      npm/ng-packs/packages/identity/config/src/providers/route.provider.ts
  7. 3
      npm/ng-packs/packages/oauth/src/lib/providers/oauth-module-config.provider.ts
  8. 2
      npm/ng-packs/packages/setting-management/config/src/lib/providers/features.token.ts
  9. 27
      npm/ng-packs/packages/setting-management/config/src/lib/providers/route.provider.ts
  10. 23
      npm/ng-packs/packages/setting-management/config/src/lib/providers/setting-tab.provider.ts
  11. 5
      npm/ng-packs/packages/setting-management/config/src/lib/providers/visible.provider.ts
  12. 44
      npm/ng-packs/packages/tenant-management/config/src/providers/route.provider.ts
  13. 32
      npm/ng-packs/packages/theme-basic/src/lib/providers/nav-item.provider.ts
  14. 19
      npm/ng-packs/packages/theme-shared/src/lib/providers/ng-bootstrap-config.provider.ts
  15. 24
      npm/ng-packs/packages/theme-shared/src/lib/providers/route.provider.ts
  16. 3
      npm/ng-packs/packages/theme-shared/src/lib/providers/theme-shared-config.provider.ts

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

@ -4,55 +4,54 @@ import { eAccountRouteNames } from '../enums/route-names';
export const ACCOUNT_ROUTE_PROVIDERS = [
provideAppInitializer(() => {
configureRoutes(inject(RoutesService));
configureRoutes();
}),
];
export function configureRoutes(routes: RoutesService) {
return () => {
routes.add([
{
path: undefined,
name: eAccountRouteNames.Account,
invisible: true,
layout: eLayoutType.account,
breadcrumbText: eAccountRouteNames.Account,
iconClass: 'bi bi-person-fill-gear',
order: 1,
},
{
path: '/account/login',
name: eAccountRouteNames.Login,
parentName: eAccountRouteNames.Account,
order: 1,
},
{
path: '/account/register',
name: eAccountRouteNames.Register,
parentName: eAccountRouteNames.Account,
order: 2,
},
{
path: '/account/manage',
name: eAccountRouteNames.ManageProfile,
parentName: eAccountRouteNames.Account,
layout: eLayoutType.application,
breadcrumbText: 'AbpAccount::Manage',
iconClass: 'bi bi-kanban-fill',
order: 3,
},
{
path: '/account/forgot-password',
parentName: eAccountRouteNames.Account,
name: eAccountRouteNames.ForgotPassword,
invisible: true,
},
{
path: '/account/reset-password',
parentName: eAccountRouteNames.Account,
name: eAccountRouteNames.ResetPassword,
invisible: true,
},
]);
};
export function configureRoutes() {
const routes = inject(RoutesService);
routes.add([
{
path: undefined,
name: eAccountRouteNames.Account,
invisible: true,
layout: eLayoutType.account,
breadcrumbText: eAccountRouteNames.Account,
iconClass: 'bi bi-person-fill-gear',
order: 1,
},
{
path: '/account/login',
name: eAccountRouteNames.Login,
parentName: eAccountRouteNames.Account,
order: 1,
},
{
path: '/account/register',
name: eAccountRouteNames.Register,
parentName: eAccountRouteNames.Account,
order: 2,
},
{
path: '/account/manage',
name: eAccountRouteNames.ManageProfile,
parentName: eAccountRouteNames.Account,
layout: eLayoutType.application,
breadcrumbText: 'AbpAccount::Manage',
iconClass: 'bi bi-kanban-fill',
order: 3,
},
{
path: '/account/forgot-password',
parentName: eAccountRouteNames.Account,
name: eAccountRouteNames.ForgotPassword,
invisible: true,
},
{
path: '/account/reset-password',
parentName: eAccountRouteNames.Account,
name: eAccountRouteNames.ResetPassword,
invisible: true,
},
]);
}

5
npm/ng-packs/packages/core/src/lib/providers/cookie-language.provider.ts

@ -3,7 +3,8 @@ import { DOCUMENT } from '@angular/common';
import { SessionStateService } from '../services/session-state.service';
import { COOKIE_LANGUAGE_KEY } from '../tokens/cookie-language-key.token';
export function setLanguageToCookie(injector: Injector) {
export function setLanguageToCookie() {
const injector = inject(Injector);
const sessionState = injector.get(SessionStateService);
const document = injector.get(DOCUMENT);
const cookieLanguageKey = injector.get(COOKIE_LANGUAGE_KEY);
@ -14,5 +15,5 @@ export function setLanguageToCookie(injector: Injector) {
}
export const CookieLanguageProvider = provideAppInitializer(() => {
setLanguageToCookie(inject(Injector));
setLanguageToCookie();
});

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

@ -1,10 +1,4 @@
import {
makeEnvironmentProviders,
Injector,
Provider,
inject,
provideAppInitializer,
} from '@angular/core';
import { makeEnvironmentProviders, Provider, inject, provideAppInitializer } from '@angular/core';
import { TitleStrategy } from '@angular/router';
import {
provideHttpClient,
@ -111,9 +105,8 @@ export function provideAbpCore(...features: CoreFeature<CoreFeatureKind>[]) {
}),
),
provideAppInitializer(() => {
getInitialData(inject(Injector));
localeInitializer(inject(Injector));
getInitialData();
localeInitializer();
inject(LocalizationService);
inject(LocalStorageListenerService);
inject(RoutesHandler);

8
npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts

@ -1,5 +1,5 @@
import { registerLocaleData } from '@angular/common';
import { InjectFlags, Injector } from '@angular/core';
import { inject, Injector } from '@angular/core';
import { tap, catchError } from 'rxjs/operators';
import { lastValueFrom, throwError } from 'rxjs';
import { ABP } from '../models/common';
@ -16,7 +16,8 @@ import { AuthService } from '../abstracts';
import { CHECK_AUTHENTICATION_STATE_FN_KEY } from '../tokens/check-authentication-state';
import { noop } from './common-utils';
export async function getInitialData(injector: Injector) {
export async function getInitialData() {
const injector = inject(Injector);
const environmentService = injector.get(EnvironmentService);
const configState = injector.get(ConfigStateService);
const options = injector.get(CORE_OPTIONS) as ABP.Root;
@ -51,7 +52,8 @@ export async function getInitialData(injector: Injector) {
await lastValueFrom(result$);
}
export function localeInitializer(injector: Injector) {
export function localeInitializer() {
const injector = inject(Injector);
const sessionState = injector.get(SessionStateService);
const { registerLocaleFn }: ABP.Root = injector.get(CORE_OPTIONS);

24
npm/ng-packs/packages/feature-management/src/lib/providers/feature-management-settings.provider.ts

@ -5,20 +5,18 @@ import { FeatureManagementTabComponent } from '../components';
export const FEATURE_MANAGEMENT_SETTINGS_PROVIDERS = [
provideAppInitializer(() => {
const initializerFn = configureSettingTabs(inject(SettingTabsService));
return initializerFn();
configureSettingTabs();
}),
];
export function configureSettingTabs(settingtabs: SettingTabsService) {
return () => {
settingtabs.add([
{
name: eFeatureManagementTabNames.FeatureManagement,
order: 100,
requiredPolicy: 'FeatureManagement.ManageHostFeatures',
component: FeatureManagementTabComponent,
},
]);
};
export function configureSettingTabs() {
const settingtabs = inject(SettingTabsService);
settingtabs.add([
{
name: eFeatureManagementTabNames.FeatureManagement,
order: 100,
requiredPolicy: 'FeatureManagement.ManageHostFeatures',
component: FeatureManagementTabComponent,
},
]);
}

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

@ -6,37 +6,35 @@ import { eIdentityRouteNames } from '../enums/route-names';
export const IDENTITY_ROUTE_PROVIDERS = [
provideAppInitializer(() => {
const initializerFn = configureRoutes(inject(RoutesService));
return initializerFn();
configureRoutes();
}),
];
export function configureRoutes(routesService: RoutesService) {
return () => {
routesService.add([
{
path: undefined,
name: eIdentityRouteNames.IdentityManagement,
parentName: eThemeSharedRouteNames.Administration,
requiredPolicy: eIdentityPolicyNames.IdentityManagement,
iconClass: 'fa fa-id-card-o',
layout: eLayoutType.application,
order: 1,
},
{
path: '/identity/roles',
name: eIdentityRouteNames.Roles,
parentName: eIdentityRouteNames.IdentityManagement,
requiredPolicy: eIdentityPolicyNames.Roles,
order: 1,
},
{
path: '/identity/users',
name: eIdentityRouteNames.Users,
parentName: eIdentityRouteNames.IdentityManagement,
requiredPolicy: eIdentityPolicyNames.Users,
order: 2,
},
]);
};
export function configureRoutes() {
const routesService = inject(RoutesService);
routesService.add([
{
path: undefined,
name: eIdentityRouteNames.IdentityManagement,
parentName: eThemeSharedRouteNames.Administration,
requiredPolicy: eIdentityPolicyNames.IdentityManagement,
iconClass: 'fa fa-id-card-o',
layout: eLayoutType.application,
order: 1,
},
{
path: '/identity/roles',
name: eIdentityRouteNames.Roles,
parentName: eIdentityRouteNames.IdentityManagement,
requiredPolicy: eIdentityPolicyNames.Roles,
order: 1,
},
{
path: '/identity/users',
name: eIdentityRouteNames.Users,
parentName: eIdentityRouteNames.IdentityManagement,
requiredPolicy: eIdentityPolicyNames.Users,
order: 2,
},
]);
}

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

@ -7,7 +7,6 @@ import {
CHECK_AUTHENTICATION_STATE_FN_KEY,
AbpLocalStorageService,
AuthErrorFilterService,
noop,
} from '@abp/ng.core';
import { Provider, makeEnvironmentProviders, inject, provideAppInitializer } from '@angular/core';
import { HTTP_INTERCEPTORS } from '@angular/common/http';
@ -52,9 +51,7 @@ export function provideAbpOAuth() {
},
NavigateToManageProfileProvider,
provideAppInitializer(() => {
const initializerFn = noop();
inject(OAuthConfigurationHandler);
return initializerFn();
}),
OAuthModule.forRoot().providers as Provider[],
{ provide: OAuthStorage, useClass: AbpLocalStorageService },

2
npm/ng-packs/packages/setting-management/config/src/lib/providers/features.token.ts

@ -1,4 +1,4 @@
import { ConfigStateService, featuresFactory, noop } from '@abp/ng.core';
import { ConfigStateService, featuresFactory } from '@abp/ng.core';
import { inject, InjectionToken, provideAppInitializer } from '@angular/core';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';

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

@ -6,19 +6,18 @@ import { eSettingManagementRouteNames } from '../enums/route-names';
import { SettingTabsService } from '../services/settings-tabs.service';
import { Observable } from 'rxjs';
export function configureRoutes(routesService: RoutesService) {
return () => {
routesService.add([
{
name: eSettingManagementRouteNames.Settings,
path: '/setting-management',
parentName: eThemeSharedRouteNames.Administration,
layout: eLayoutType.application,
order: 100,
iconClass: 'fa fa-cog',
},
]);
};
export function configureRoutes() {
const routesService = inject(RoutesService);
routesService.add([
{
name: eSettingManagementRouteNames.Settings,
path: '/setting-management',
parentName: eThemeSharedRouteNames.Administration,
layout: eLayoutType.application,
order: 100,
iconClass: 'fa fa-cog',
},
]);
}
export const SETTING_MANAGEMENT_HAS_SETTING = new InjectionToken<Observable<boolean>>(
@ -36,7 +35,7 @@ export const SETTING_MANAGEMENT_HAS_SETTING = new InjectionToken<Observable<bool
export const SETTING_MANAGEMENT_ROUTE_PROVIDERS = [
provideAppInitializer(() => {
configureRoutes(inject(RoutesService));
configureRoutes();
inject(SETTING_MANAGEMENT_HAS_SETTING);
}),
];

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

@ -5,19 +5,18 @@ import { SettingTabsService } from '../services/settings-tabs.service';
export const SETTING_MANAGEMENT_SETTING_TAB_PROVIDERS = [
provideAppInitializer(() => {
configureSettingTabs(inject(SettingTabsService));
configureSettingTabs();
}),
];
export function configureSettingTabs(settingTabs: SettingTabsService) {
return () => {
settingTabs.add([
{
name: eSettingManamagementSettingTabNames.EmailSettingGroup,
order: 100,
requiredPolicy: 'SettingManagement.Emailing',
component: EmailSettingGroupComponent,
},
]);
};
export function configureSettingTabs() {
const settingTabs = inject(SettingTabsService);
settingTabs.add([
{
name: eSettingManamagementSettingTabNames.EmailSettingGroup,
order: 100,
requiredPolicy: 'SettingManagement.Emailing',
component: EmailSettingGroupComponent,
},
]);
}

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

@ -7,11 +7,12 @@ import { eSettingManagementRouteNames } from '../enums';
export const SETTING_MANAGEMENT_VISIBLE_PROVIDERS = [
provideAppInitializer(() => {
setSettingManagementVisibility(inject(Injector));
setSettingManagementVisibility();
}),
];
export function setSettingManagementVisibility(injector: Injector) {
export function setSettingManagementVisibility() {
const injector = inject(Injector);
const settingManagementHasSetting$ = injector.get(SETTING_MANAGEMENT_HAS_SETTING);
const isSettingManagementFeatureEnable$ = injector.get(SETTING_MANAGEMENT_ROUTE_VISIBILITY);
const routes = injector.get(RoutesService);

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

@ -6,30 +6,28 @@ import { eTenantManagementRouteNames } from '../enums/route-names';
export const TENANT_MANAGEMENT_ROUTE_PROVIDERS = [
provideAppInitializer(() => {
const initializerFn = configureRoutes(inject(RoutesService));
return initializerFn();
configureRoutes();
}),
];
export function configureRoutes(routes: RoutesService) {
return () => {
routes.add([
{
path: undefined,
name: eTenantManagementRouteNames.TenantManagement,
parentName: eThemeSharedRouteNames.Administration,
requiredPolicy: eTenantManagementPolicyNames.TenantManagement,
layout: eLayoutType.application,
iconClass: 'fa fa-users',
order: 2,
},
{
path: '/tenant-management/tenants',
name: eTenantManagementRouteNames.Tenants,
parentName: eTenantManagementRouteNames.TenantManagement,
requiredPolicy: eTenantManagementPolicyNames.Tenants,
order: 1,
},
]);
};
export function configureRoutes() {
const routes = inject(RoutesService);
routes.add([
{
path: undefined,
name: eTenantManagementRouteNames.TenantManagement,
parentName: eThemeSharedRouteNames.Administration,
requiredPolicy: eTenantManagementPolicyNames.TenantManagement,
layout: eLayoutType.application,
iconClass: 'fa fa-users',
order: 2,
},
{
path: '/tenant-management/tenants',
name: eTenantManagementRouteNames.Tenants,
parentName: eTenantManagementRouteNames.TenantManagement,
requiredPolicy: eTenantManagementPolicyNames.Tenants,
order: 1,
},
]);
}

32
npm/ng-packs/packages/theme-basic/src/lib/providers/nav-item.provider.ts

@ -6,24 +6,22 @@ import { eThemeBasicComponents } from '../enums/components';
export const BASIC_THEME_NAV_ITEM_PROVIDERS = [
provideAppInitializer(() => {
const initializerFn = configureNavItems(inject(NavItemsService));
return initializerFn();
configureNavItems();
}),
];
export function configureNavItems(navItems: NavItemsService) {
return () => {
navItems.addItems([
{
id: eThemeBasicComponents.Languages,
order: 100,
component: LanguagesComponent,
},
{
id: eThemeBasicComponents.CurrentUser,
order: 100,
component: CurrentUserComponent,
},
]);
};
export function configureNavItems() {
const navItems = inject(NavItemsService);
navItems.addItems([
{
id: eThemeBasicComponents.Languages,
order: 100,
component: LanguagesComponent,
},
{
id: eThemeBasicComponents.CurrentUser,
order: 100,
component: CurrentUserComponent,
},
]);
}

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

@ -3,20 +3,13 @@ import { NgbInputDatepickerConfig, NgbTypeaheadConfig } from '@ng-bootstrap/ng-b
export const NG_BOOTSTRAP_CONFIG_PROVIDERS = [
provideAppInitializer(() => {
const initializerFn = configureNgBootstrap(
inject(NgbInputDatepickerConfig),
inject(NgbTypeaheadConfig),
);
return initializerFn();
configureNgBootstrap();
}),
];
export function configureNgBootstrap(
datepicker: NgbInputDatepickerConfig,
typeahead: NgbTypeaheadConfig,
) {
return () => {
datepicker.container = 'body';
typeahead.container = 'body';
};
export function configureNgBootstrap() {
const datepicker: NgbInputDatepickerConfig = inject(NgbInputDatepickerConfig);
const typeahead: NgbTypeaheadConfig = inject(NgbTypeaheadConfig);
datepicker.container = 'body';
typeahead.container = 'body';
}

24
npm/ng-packs/packages/theme-shared/src/lib/providers/route.provider.ts

@ -4,20 +4,18 @@ import { eThemeSharedRouteNames } from '../enums/route-names';
export const THEME_SHARED_ROUTE_PROVIDERS = [
provideAppInitializer(() => {
const initializerFn = configureRoutes(inject(RoutesService));
return initializerFn();
configureRoutes();
}),
];
export function configureRoutes(routesService: RoutesService) {
return () => {
routesService.add([
{
path: undefined,
name: eThemeSharedRouteNames.Administration,
iconClass: 'fa fa-wrench',
order: 100,
},
]);
};
export function configureRoutes() {
const routesService = inject(RoutesService);
routesService.add([
{
path: undefined,
name: eThemeSharedRouteNames.Administration,
iconClass: 'fa fa-wrench',
order: 100,
},
]);
}

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

@ -1,5 +1,4 @@
import { Provider, makeEnvironmentProviders, inject, provideAppInitializer } from '@angular/core';
import { noop } from '@abp/ng.core';
import { NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';
import {
VALIDATION_BLUEPRINTS,
@ -111,11 +110,9 @@ export function withConfirmationIcon(
export function provideAbpThemeShared(...features: ThemeSharedFeature<ThemeSharedFeatureKind>[]) {
const providers = [
provideAppInitializer(() => {
const initializerFn = noop();
inject(ErrorHandler);
inject(THEME_SHARED_APPEND_CONTENT);
inject(DocumentDirHandlerService);
return initializerFn();
}),
THEME_SHARED_ROUTE_PROVIDERS,
{ provide: HTTP_ERROR_CONFIG, useValue: undefined },

Loading…
Cancel
Save