import { NgModule, ModuleWithProviders } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { FormsModule } from '@angular/forms'; import { MaterialModule } from '@angular/material'; import { RouterModule, Routes } from '@angular/router'; // Components import { LoginModule } from './login/login.module'; import { DocumentViewerModule } from './document-viewer/document-viewer.module'; import { ResultsModule } from './results/results.module'; // Services import { AtlasenseapiService } from './api.service'; import { AuthService } from './auth.service'; import { ConfigurationService } from './config.service'; import { $WebSocket } from './websocket.service'; // Configurations import { Configuration } from './configuration'; import { ATLASENSE_PROVIDERS } from './services'; const ATLASENSE_MODULES = [ ResultsModule, LoginModule, DocumentViewerModule ]; @NgModule({ imports:[ BrowserModule, FormsModule, MaterialModule.forRoot(), LoginModule.forRoot(), ResultsModule, DocumentViewerModule ], exports: ATLASENSE_MODULES, providers: ATLASENSE_PROVIDERS }) export class FrontCoreRootModule { } @NgModule({ imports: ATLASENSE_MODULES, exports: ATLASENSE_MODULES, }) export class FrontCoreModule { static forRoot(config: Configuration): ModuleWithProviders { return { ngModule: FrontCoreRootModule, providers: [ { provide: 'api.config', useValue: config }, ATLASENSE_PROVIDERS ] }; } }