78 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
/* eslint-disable import/order */
 | 
						|
/* eslint-disable import/no-duplicates */
 | 
						|
import { HttpClientModule } from '@angular/common/http';
 | 
						|
import { default as ngLang } from '@angular/common/locales/zh';
 | 
						|
import { APP_INITIALIZER, DEFAULT_CURRENCY_CODE, LOCALE_ID, NgModule, Type } from '@angular/core';
 | 
						|
import { BrowserModule } from '@angular/platform-browser';
 | 
						|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 | 
						|
import { SimpleInterceptor } from '@delon/auth';
 | 
						|
import { NzNotificationModule } from 'ng-zorro-antd/notification';
 | 
						|
import zh from '@angular/common/locales/zh';
 | 
						|
registerLocaleData(zh);
 | 
						|
// #region global third module
 | 
						|
 | 
						|
import { BidiModule } from '@angular/cdk/bidi';
 | 
						|
const GLOBAL_THIRD_MODULES: Array<Type<any>> = [BidiModule];
 | 
						|
 | 
						|
// #endregion
 | 
						|
 | 
						|
// #region Http Interceptors
 | 
						|
import { HTTP_INTERCEPTORS } from '@angular/common/http';
 | 
						|
 | 
						|
import { BusinessInterceptor, DefaultInterceptor } from '@core';
 | 
						|
 | 
						|
const INTERCEPTOR_PROVIDES = [
 | 
						|
  { provide: HTTP_INTERCEPTORS, useClass: SimpleInterceptor, multi: true },
 | 
						|
  { provide: HTTP_INTERCEPTORS, useClass: BusinessInterceptor, multi: true },
 | 
						|
  { provide: HTTP_INTERCEPTORS, useClass: DefaultInterceptor, multi: true }
 | 
						|
];
 | 
						|
// #endregion
 | 
						|
 | 
						|
// #region Startup Service
 | 
						|
import { StartupService } from '@core';
 | 
						|
export function StartupServiceFactory(startupService: StartupService): () => Promise<void> {
 | 
						|
  return () => startupService.load();
 | 
						|
}
 | 
						|
const APPINIT_PROVIDES = [
 | 
						|
  StartupService,
 | 
						|
  {
 | 
						|
    provide: APP_INITIALIZER,
 | 
						|
    useFactory: StartupServiceFactory,
 | 
						|
    deps: [StartupService],
 | 
						|
    multi: true
 | 
						|
  },
 | 
						|
  { provide: DEFAULT_CURRENCY_CODE, useValue: '¥' },
 | 
						|
  AuthGuard
 | 
						|
];
 | 
						|
// #endregion
 | 
						|
 | 
						|
import { AppComponent } from './app.component';
 | 
						|
import { CoreModule } from './core/core.module';
 | 
						|
import { GlobalConfigModule } from './global-config.module';
 | 
						|
import { LayoutModule } from './layout/layout.module';
 | 
						|
import { RoutesModule } from './routes/routes.module';
 | 
						|
import { SharedModule } from './shared/shared.module';
 | 
						|
import { STWidgetModule } from './shared/widget/st-widget.module';
 | 
						|
import { registerLocaleData } from '@angular/common';
 | 
						|
import { AuthGuard } from './core/guards/auth.guard';
 | 
						|
 | 
						|
@NgModule({
 | 
						|
  declarations: [AppComponent],
 | 
						|
  imports: [
 | 
						|
    BrowserModule,
 | 
						|
    BrowserAnimationsModule,
 | 
						|
    HttpClientModule,
 | 
						|
    GlobalConfigModule.forRoot(),
 | 
						|
    CoreModule,
 | 
						|
    SharedModule,
 | 
						|
    LayoutModule,
 | 
						|
    RoutesModule,
 | 
						|
    STWidgetModule,
 | 
						|
    NzNotificationModule,
 | 
						|
    ...GLOBAL_THIRD_MODULES
 | 
						|
  ],
 | 
						|
  providers: [...INTERCEPTOR_PROVIDES, ...APPINIT_PROVIDES],
 | 
						|
  bootstrap: [AppComponent]
 | 
						|
})
 | 
						|
export class AppModule {}
 |