import {NgModule} from '@angular/core';
import {FormsModule} from '@angular/forms';
import {CommonModule} from '@angular/common';
import {HttpClientModule} from "@angular/common/http";
import {BrowserModule} from '@angular/platform-browser';
import {NoopAnimationsModule} from '@angular/platform-browser/animations';
import {AppComponent} from './app.component';
import {OpenaireErrorPageComponent} from './error/errorPage.component';

import {AppRoutingModule} from './app-routing.module';
import {SharedModule} from './shared/shared.module';
import {CookieLawModule} from './openaireLibrary/sharedComponents/cookie-law/cookie-law.module';
import {BottomModule} from './openaireLibrary/sharedComponents/bottom.module';
import {ErrorModule} from './openaireLibrary/error/error.module';
import {NavigationBarModule} from './openaireLibrary/sharedComponents/navigationBar.module';

import {EnvironmentSpecificResolver} from './openaireLibrary/utils/properties/environmentSpecificResolver';

import {CommunitiesService} from './openaireLibrary/connect/communities/communities.service';
import {LayoutService} from "./openaireLibrary/services/layout.service";
import {SubscribeModule} from './utils/subscribe/subscribe.module';
import {StakeholderService} from "./services/stakeholder.service";

@NgModule({

  imports: [
    SharedModule,
    NoopAnimationsModule,
    CommonModule,
    HttpClientModule,
    ErrorModule,
    FormsModule,
    NavigationBarModule,
    BottomModule,
    CookieLawModule,
    SubscribeModule.forRoot(),
    BrowserModule.withServerTransition({appId: 'my-app'}),
    AppRoutingModule
  ],
  declarations: [ AppComponent, OpenaireErrorPageComponent],
  exports: [ AppComponent ],
  providers:[EnvironmentSpecificResolver],
  bootstrap: [AppComponent]
})
//
export class AppModule {}
