diff --git a/npm/ng-packs/packages/core/src/lib/core.module.ts b/npm/ng-packs/packages/core/src/lib/core.module.ts index e89da17f29..b1eb31369d 100644 --- a/npm/ng-packs/packages/core/src/lib/core.module.ts +++ b/npm/ng-packs/packages/core/src/lib/core.module.ts @@ -9,13 +9,16 @@ import { NgxsModule, NGXS_PLUGINS } from '@ngxs/store'; import { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc'; import { AbstractNgModelComponent } from './abstracts/ng-model.component'; import { DynamicLayoutComponent } from './components/dynamic-layout.component'; +import { ReplaceableRouteContainerComponent } from './components/replaceable-route-container.component'; import { RouterOutletComponent } from './components/router-outlet.component'; import { AutofocusDirective } from './directives/autofocus.directive'; import { InputEventDebounceDirective } from './directives/debounce.directive'; import { EllipsisDirective } from './directives/ellipsis.directive'; import { ForDirective } from './directives/for.directive'; import { FormSubmitDirective } from './directives/form-submit.directive'; +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 { VisibilityDirective } from './directives/visibility.directive'; import { ApiInterceptor } from './interceptors/api.interceptor'; @@ -26,13 +29,11 @@ import { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from './plugins/config.plugi import { LocaleProvider } from './providers/locale.provider'; import { ConfigState } from './states/config.state'; import { ProfileState } from './states/profile.state'; +import { ReplaceableComponentsState } from './states/replaceable-components.state'; import { SessionState } from './states/session.state'; +import { CORE_OPTIONS } from './tokens/options.token'; import { getInitialData, localeInitializer } from './utils/initial-utils'; import './utils/date-extensions'; -import { ReplaceableRouteContainerComponent } from './components/replaceable-route-container.component'; -import { ReplaceableComponentsState } from './states/replaceable-components.state'; -import { InitDirective } from './directives/init.directive'; -import { ReplaceableTemplateDirective } from './directives/replaceable-template.directive'; export function storageFactory(): OAuthStorage { return localStorage; @@ -111,6 +112,10 @@ export class CoreModule { }, { provide: NGXS_CONFIG_PLUGIN_OPTIONS, + useValue: { environment: options.environment }, + }, + { + provide: CORE_OPTIONS, useValue: options, }, { diff --git a/npm/ng-packs/packages/core/src/lib/models/common.ts b/npm/ng-packs/packages/core/src/lib/models/common.ts index 79792a1b61..8a413b1077 100644 --- a/npm/ng-packs/packages/core/src/lib/models/common.ts +++ b/npm/ng-packs/packages/core/src/lib/models/common.ts @@ -11,6 +11,7 @@ export namespace ABP { * @deprecated To be deleted in v3.0 */ requirements?: Config.Requirements; + skipGetAppConfiguration?: boolean; } export type PagedResponse = { diff --git a/npm/ng-packs/packages/core/src/lib/tests/initial-utils.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/initial-utils.spec.ts index 1a8905202b..0c94ad1aed 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/initial-utils.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/initial-utils.spec.ts @@ -1,7 +1,6 @@ import { Component, Injector } from '@angular/core'; import { createComponentFactory, Spectator } from '@ngneat/spectator/jest'; import { Store } from '@ngxs/store'; -import { OAuthService } from 'angular-oauth2-oidc'; import { of } from 'rxjs'; import { GetAppConfiguration } from '../actions'; import { getInitialData, localeInitializer } from '../utils'; @@ -29,6 +28,7 @@ describe('InitialUtils', () => { const dispatchSpy = jest.spyOn(store, 'dispatch'); injectorSpy.mockReturnValueOnce(store); + injectorSpy.mockReturnValueOnce({ skipGetAppConfiguration: false }); injectorSpy.mockReturnValueOnce({ hasValidAccessToken: () => false }); dispatchSpy.mockReturnValue(of('test')); @@ -47,6 +47,7 @@ describe('InitialUtils', () => { const logOutFn = jest.fn(); injectorSpy.mockReturnValueOnce(store); + injectorSpy.mockReturnValueOnce({ skipGetAppConfiguration: false }); injectorSpy.mockReturnValueOnce({ hasValidAccessToken: () => true, logOut: logOutFn }); dispatchSpy.mockReturnValue(of({ currentUser: { id: null } })); diff --git a/npm/ng-packs/packages/core/src/lib/tokens/common.token.ts b/npm/ng-packs/packages/core/src/lib/tokens/common.token.ts deleted file mode 100644 index 28f16aaee2..0000000000 --- a/npm/ng-packs/packages/core/src/lib/tokens/common.token.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { InjectionToken } from '@angular/core'; -import { Config } from '../models'; - -export function environmentFactory(environment: Config.Environment) { - return { - ...environment, - }; -} - -export function configFactory(config: Config.Requirements) { - return { - ...config, - }; -} - -export const ENVIRONMENT = new InjectionToken('ENVIRONMENT'); - -export const CONFIG = new InjectionToken('CONFIG'); diff --git a/npm/ng-packs/packages/core/src/lib/tokens/index.ts b/npm/ng-packs/packages/core/src/lib/tokens/index.ts index 1472bbfee9..683bc4b3db 100644 --- a/npm/ng-packs/packages/core/src/lib/tokens/index.ts +++ b/npm/ng-packs/packages/core/src/lib/tokens/index.ts @@ -1 +1 @@ -export * from './common.token'; +export * from './options.token'; diff --git a/npm/ng-packs/packages/core/src/lib/tokens/options.token.ts b/npm/ng-packs/packages/core/src/lib/tokens/options.token.ts new file mode 100644 index 0000000000..2c4dffe9dc --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/tokens/options.token.ts @@ -0,0 +1,4 @@ +import { InjectionToken } from '@angular/core'; +import { ABP } from '../models/common'; + +export const CORE_OPTIONS = new InjectionToken('CORE_OPTIONS'); diff --git a/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts b/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts index 04a5a1ca83..1ece167a22 100644 --- a/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts +++ b/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts @@ -1,16 +1,20 @@ import { registerLocaleData } from '@angular/common'; import { Injector } from '@angular/core'; import { Store } from '@ngxs/store'; +import { OAuthService } from 'angular-oauth2-oidc'; +import { tap } from 'rxjs/operators'; import { GetAppConfiguration } from '../actions/config.actions'; import differentLocales from '../constants/different-locales'; -import { ApplicationConfiguration } from '../models/application-configuration'; -import { tap } from 'rxjs/operators'; +import { ABP } from '../models/common'; import { ConfigState } from '../states/config.state'; -import { OAuthService } from 'angular-oauth2-oidc'; +import { CORE_OPTIONS } from '../tokens/options.token'; export function getInitialData(injector: Injector) { const fn = () => { const store: Store = injector.get(Store); + const { skipGetAppConfiguration } = injector.get(CORE_OPTIONS) as ABP.Root; + + if (skipGetAppConfiguration) return; return store .dispatch(new GetAppConfiguration())