/*
 * Copyright (C) 2017 Robert Bosch GmbH Copyright (C) 2017 Robert Bosch Manufacturing Solutions GmbH, Germany. All rights reserved.
 */

import { A11yModule } from '@angular/cdk/a11y';
/* CDK imports */
import { CommonModule } from '@angular/common';
import { HttpClientModule } from '@angular/common/http';
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { ReactiveFormsModule } from '@angular/forms';
/* Material imports*/
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatNativeDateModule } from '@angular/material/core';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatIconModule } from '@angular/material/icon';
import { MatInputModule } from '@angular/material/input';
import { MatListModule } from '@angular/material/list';
import { MatSelectModule } from '@angular/material/select';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { BCI_SHARED_INTL_PROVIDER, BciCoreModule, BciLayoutModule, BciSharedModule, CloseDetailsGuard } from '@bci-web-core/core';
import { environment } from '../environments/environment';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { BoschColorComponent } from './bosch-color/bosch-color.component';
import { BoschIconsComponent } from './bosch-icons/bosch-icons.component';
import { UserFilterService } from './data-table-demo/commandbar-demo/filter/user-filter.service';
import { DummyComponent } from './dummy/dummy.component';
import { FaqComponent } from './faq/faq.component';
import { LoginComponent } from './login/login.component';
import { OverviewComponent } from './overview/overview.component';
import { UserService } from './shared/user-service.service';
import { MatSliderModule } from '@angular/material/slider';
import { MatTableModule } from '@angular/material/table';
import { ScrollIntoViewService } from './shared/scroll-into-view.service';

@NgModule({
  declarations: [
    AppComponent,
    DummyComponent,
    BoschColorComponent,
    LoginComponent,
    OverviewComponent,
    FaqComponent,
    BoschIconsComponent,
  ],
  imports: [
    AppRoutingModule,
    BrowserModule,
    CommonModule,
    HttpClientModule,
    BrowserAnimationsModule,
    BciCoreModule.forRoot({
      prod_environment: environment.production,
      core_config_url: '/assets/config/config.json',
    }),
    BciSharedModule,
    BciLayoutModule,
    ReactiveFormsModule,
    MatNativeDateModule,
    MatCheckboxModule,
    MatSelectModule,
    MatListModule,
    A11yModule,
    MatIconModule,
    MatInputModule,
    MatFormFieldModule,
    MatSliderModule,
    MatTableModule
  ],
  providers: [UserService, UserFilterService, CloseDetailsGuard, ScrollIntoViewService, BCI_SHARED_INTL_PROVIDER],
  bootstrap: [AppComponent],
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {}
