import { BrowserModule } from '@angular/platform-browser'; import { NgModule, APP_INITIALIZER } from '@angular/core'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { LoginComponent } from './login/login.component'; import { MatMenuModule } from '@angular/material/menu'; import { MatDividerModule } from '@angular/material/divider'; import { MatCardModule } from '@angular/material/card'; import { MatInputModule } from '@angular/material/input'; import { MatDialogModule } from '@angular/material/dialog'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { RepositoryComponent } from './repository/repository.component'; import { AccessapiComponent } from './accessapi/accessapi.component'; import { DatasetsComponent } from './datasets/datasets.component'; import { OntologieComponent } from './ontologie/ontologie.component'; import { PublishComponent } from './publish/publish.component'; import { SettingfdpComponent } from './settingfdp/settingfdp.component'; import { SettingsmartapiComponent } from './settingsmartapi/settingsmartapi.component'; import { UserComponent } from './user/user.component'; import { ReactiveFormsModule } from '@angular/forms'; import {FormsModule} from '@angular/forms'; import { RepositoryinfoComponent } from './repositoryinfo/repositoryinfo.component'; import { HttpClientModule, HttpClient } from '@angular/common/http'; import { FileSaverModule } from 'ngx-filesaver'; import { SwaggereditorComponent } from './swaggereditor/swaggereditor.component'; import { AppConfiguration } from './AppConfiguration'; import { ElasticsearchComponent } from './elasticsearch/elasticsearch.component'; import { PublishapiComponent } from './publishapi/publishapi.component'; import { SearchComponent } from './search/search.component' import { ParseXmlService } from './services/parse-xml.service'; @NgModule({ declarations: [ AppComponent, LoginComponent, RepositoryComponent, AccessapiComponent, DatasetsComponent, OntologieComponent, PublishComponent, SettingfdpComponent, SettingsmartapiComponent, UserComponent, RepositoryinfoComponent, SwaggereditorComponent, ElasticsearchComponent, PublishapiComponent, SearchComponent ], imports: [ BrowserModule, AppRoutingModule, BrowserAnimationsModule, MatMenuModule, MatDividerModule, MatCardModule, MatInputModule, MatDialogModule, MatProgressSpinnerModule, FormsModule, ReactiveFormsModule, HttpClientModule, FileSaverModule ], providers: [ AppConfiguration, ParseXmlService, { provide: APP_INITIALIZER, useFactory: AppConfigurationFactory, deps: [AppConfiguration, HttpClient], multi: true }, ], bootstrap: [AppComponent] }) export class AppModule { } export function AppConfigurationFactory(appConfig: AppConfiguration) { return () => appConfig.ensureInit(); }