blob: 560171e2d947ad718287d93775d8be99abee76a6 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { Router } from '@angular/router';
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import {HttpClientModule, HTTP_INTERCEPTORS} from '@angular/common/http';
import { APP_INITIALIZER } from '@angular/core';
import { AppComponent } from './app.component';
import {MetronAlertsRoutingModule} from './app-routing.module';
import {AlertsListModule} from './alerts/alerts-list/alerts-list.module';
import {AlertDetailsModule} from './alerts/alert-details/alerts-details.module';
import {ConfigureTableModule} from './alerts/configure-table/configure-table.module';
import {ConfigureTableService} from './service/configure-table.service';
import {SaveSearchModule} from './alerts/save-search/save-search.module';
import {SaveSearchService} from './service/save-search.service';
import {SavedSearchesModule} from './alerts/saved-searches/saved-searches.module';
import {ConfigureRowsModule} from './alerts/configure-rows/configure-rows.module';
import {ColumnNamesService} from './service/column-names.service';
import {DataSource} from './service/data-source';
import {ElasticSearchLocalstorageImpl} from './service/elasticsearch-localstorage-impl';
import {LoginModule} from './login/login.module';
import {AuthGuard} from './shared/auth-guard';
import {AuthenticationService} from './service/authentication.service';
import {LoginGuard} from './shared/login-guard';
import {UpdateService} from './service/update.service';
import {MetaAlertService} from './service/meta-alert.service';
import {MetaAlertsModule} from './alerts/meta-alerts/meta-alerts.module';
import {SearchService} from './service/search.service';
import { GlobalConfigService } from './service/global-config.service';
import { DefaultHeadersInterceptor } from './http-interceptors/default-headers.interceptor';
import { DialogService } from './service/dialog.service';
import { MetronDialogComponent } from './shared/metron-dialog/metron-dialog.component';
import {PcapModule} from './pcap/pcap.module';
import { AppConfigService } from './service/app-config.service';
export function initConfig(appConfigService: AppConfigService) {
return () => appConfigService.loadAppConfig();
}
@NgModule({
declarations: [
AppComponent,
MetronDialogComponent
],
imports: [
BrowserModule,
FormsModule,
HttpClientModule,
MetronAlertsRoutingModule,
LoginModule,
AlertsListModule,
AlertDetailsModule,
MetaAlertsModule,
ConfigureTableModule,
ConfigureRowsModule,
SaveSearchModule,
SavedSearchesModule,
PcapModule
],
providers: [{ provide: APP_INITIALIZER, useFactory: initConfig, deps: [AppConfigService], multi: true },
{ provide: DataSource, useClass: ElasticSearchLocalstorageImpl },
{ provide: HTTP_INTERCEPTORS, useClass: DefaultHeadersInterceptor, multi: true },
AppConfigService,
AuthenticationService,
AuthGuard,
LoginGuard,
ConfigureTableService,
SearchService,
SaveSearchService,
ColumnNamesService,
UpdateService,
MetaAlertService,
GlobalConfigService,
DialogService,
],
bootstrap: [AppComponent]
})
export class AppModule {
constructor(router: Router) {
}
}