diff --git a/npm/ng-packs/packages/theme-basic/src/lib/providers/index.ts b/npm/ng-packs/packages/theme-basic/src/lib/providers/index.ts index d3028eab68..d1dc780142 100644 --- a/npm/ng-packs/packages/theme-basic/src/lib/providers/index.ts +++ b/npm/ng-packs/packages/theme-basic/src/lib/providers/index.ts @@ -1,3 +1,4 @@ export * from './nav-item.provider'; export * from './styles.provider'; export * from './user-menu.provider'; +export * from './theme-basic-config.provider'; diff --git a/npm/ng-packs/packages/theme-basic/src/lib/providers/theme-basic-config.provider.ts b/npm/ng-packs/packages/theme-basic/src/lib/providers/theme-basic-config.provider.ts new file mode 100644 index 0000000000..c75b5b0b6d --- /dev/null +++ b/npm/ng-packs/packages/theme-basic/src/lib/providers/theme-basic-config.provider.ts @@ -0,0 +1,39 @@ +import { APP_INITIALIZER, makeEnvironmentProviders } from '@angular/core'; +import { noop } from '@abp/ng.core'; +import { + VALIDATION_ERROR_TEMPLATE, + VALIDATION_TARGET_SELECTOR, + VALIDATION_INVALID_CLASSES, +} from '@ngx-validate/core'; +import { LazyStyleHandler } from '../handlers'; +import { BASIC_THEME_NAV_ITEM_PROVIDERS } from './nav-item.provider'; +import { BASIC_THEME_STYLES_PROVIDERS } from './styles.provider'; +import { BASIC_THEME_USER_MENU_PROVIDERS } from './user-menu.provider'; +import { ValidationErrorComponent } from '../components'; + +export function provideThemeBasicConfig() { + return makeEnvironmentProviders([ + BASIC_THEME_NAV_ITEM_PROVIDERS, + BASIC_THEME_USER_MENU_PROVIDERS, + BASIC_THEME_STYLES_PROVIDERS, + { + provide: VALIDATION_ERROR_TEMPLATE, + useValue: ValidationErrorComponent, + }, + { + provide: VALIDATION_TARGET_SELECTOR, + useValue: '.form-group', + }, + { + provide: VALIDATION_INVALID_CLASSES, + useValue: 'is-invalid', + }, + LazyStyleHandler, + { + provide: APP_INITIALIZER, + useFactory: noop, + multi: true, + deps: [LazyStyleHandler], + }, + ]); +} diff --git a/npm/ng-packs/packages/theme-basic/src/lib/theme-basic.module.ts b/npm/ng-packs/packages/theme-basic/src/lib/theme-basic.module.ts index e04ed6dde1..d959509dfd 100644 --- a/npm/ng-packs/packages/theme-basic/src/lib/theme-basic.module.ts +++ b/npm/ng-packs/packages/theme-basic/src/lib/theme-basic.module.ts @@ -1,13 +1,8 @@ -import { CoreModule, noop } from '@abp/ng.core'; +import { CoreModule } from '@abp/ng.core'; import { ThemeSharedModule } from '@abp/ng.theme.shared'; -import { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core'; +import { ModuleWithProviders, NgModule } from '@angular/core'; import { NgbCollapseModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; -import { - NgxValidateCoreModule, - VALIDATION_ERROR_TEMPLATE, - VALIDATION_INVALID_CLASSES, - VALIDATION_TARGET_SELECTOR, -} from '@ngx-validate/core'; +import { NgxValidateCoreModule } from '@ngx-validate/core'; import { AccountLayoutComponent } from './components/account-layout/account-layout.component'; import { AuthWrapperComponent } from './components/account-layout/auth-wrapper/auth-wrapper.component'; import { TenantBoxComponent } from './components/account-layout/tenant-box/tenant-box.component'; @@ -20,10 +15,7 @@ import { NavItemsComponent } from './components/nav-items/nav-items.component'; import { PageAlertContainerComponent } from './components/page-alert-container/page-alert-container.component'; import { RoutesComponent } from './components/routes/routes.component'; import { ValidationErrorComponent } from './components/validation-error/validation-error.component'; -import { LazyStyleHandler } from './handlers/lazy-style.handler'; -import { BASIC_THEME_NAV_ITEM_PROVIDERS } from './providers/nav-item.provider'; -import { BASIC_THEME_STYLES_PROVIDERS } from './providers/styles.provider'; -import { BASIC_THEME_USER_MENU_PROVIDERS } from './providers/user-menu.provider'; +import { provideThemeBasicConfig } from './providers'; export const LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent]; @@ -65,33 +57,13 @@ export class BaseThemeBasicModule {} imports: [BaseThemeBasicModule], }) export class ThemeBasicModule { + /** + * @deprecated forRoot method is deprecated, use `provideThemeBasicConfig` *function* for config settings. + */ static forRoot(): ModuleWithProviders { return { ngModule: ThemeBasicModule, - providers: [ - BASIC_THEME_NAV_ITEM_PROVIDERS, - BASIC_THEME_USER_MENU_PROVIDERS, - BASIC_THEME_STYLES_PROVIDERS, - { - provide: VALIDATION_ERROR_TEMPLATE, - useValue: ValidationErrorComponent, - }, - { - provide: VALIDATION_TARGET_SELECTOR, - useValue: '.form-group', - }, - { - provide: VALIDATION_INVALID_CLASSES, - useValue: 'is-invalid', - }, - LazyStyleHandler, - { - provide: APP_INITIALIZER, - useFactory: noop, - multi: true, - deps: [LazyStyleHandler], - }, - ], + providers: [provideThemeBasicConfig()], }; } } diff --git a/npm/ng-packs/packages/theme-shared/src/lib/providers/theme-shared-config.provider.ts b/npm/ng-packs/packages/theme-shared/src/lib/providers/theme-shared-config.provider.ts index b5e9ba9ce1..ad29327e18 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/providers/theme-shared-config.provider.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/providers/theme-shared-config.provider.ts @@ -139,6 +139,12 @@ export function provideAbpThemeShared(...features: ThemeSharedFeature