/* eslint-disable import/order */ import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core'; import { throwIfAlreadyLoaded } from '@core'; import { ReuseTabMatchMode, ReuseTabService, ReuseTabStrategy } from '@delon/abc/reuse-tab'; import { DelonACLModule } from '@delon/acl'; import { AlainThemeModule } from '@delon/theme'; import { AlainConfig, ALAIN_CONFIG } from '@delon/util'; import { environment } from '@env/environment'; // Please refer to: https://ng-alain.com/docs/global-config // #region NG-ALAIN Config const alainConfig: AlainConfig = { st: { req: { method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' } }, res: { reName: { list: 'data.records', total: 'data.total' } }, page: { show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }, modal: { size: 'lg' } }, sf: { button: { search: '查询' } }, pageHeader: { homeI18n: 'home', recursiveBreadcrumb: true }, auth: { login_url: '/passport/login' }, acl: { guard_url: '/exception/403' } }; const alainModules = [AlainThemeModule.forRoot(), DelonACLModule.forRoot()]; const alainProvides = [{ provide: ALAIN_CONFIG, useValue: alainConfig }]; // #region reuse-tab // import { RouteReuseStrategy } from '@angular/router'; // alainProvides.push({ // provide: RouteReuseStrategy, // useClass: ReuseTabStrategy, // deps: [ReuseTabService] // } as any); // #endregion // #endregion // Please refer to: https://ng.ant.design/docs/global-config/en#how-to-use // #region NG-ZORRO Config import { NzConfig, NZ_CONFIG } from 'ng-zorro-antd/core/config'; const ngZorroConfig: NzConfig = {}; const zorroProvides = [{ provide: NZ_CONFIG, useValue: ngZorroConfig }]; // #endregion @NgModule({ imports: [...alainModules, ...(environment.modules || [])] }) export class GlobalConfigModule { constructor(@Optional() @SkipSelf() parentModule: GlobalConfigModule, reuseTabService: ReuseTabService) { throwIfAlreadyLoaded(parentModule, 'GlobalConfigModule'); // NOTICE: Only valid for menus with reuse property // Pls refer to the E-Mail demo effect // reuseTabService.mode = ReuseTabMatchMode.MenuForce; // Shouled be trigger init, you can ingore when used `reuse-tab` component in layout component // reuseTabService.init(); } static forRoot(): ModuleWithProviders { return { ngModule: GlobalConfigModule, providers: [...alainProvides, ...zorroProvides] }; } }