import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpClientModule } from '@angular/common/http';
import { AppComponent } from './app.component';
import { AppRoutingModule} from './app.routing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';

import { HelpContentService } from './services/help-content.service';

import {NavigationBarModule} from './openaireLibrary/sharedComponents/navigationBar.module';
import { CookieLawModule } from './openaireLibrary/sharedComponents/cookie-law/cookie-law.module';

import {BottomModule} from './openaireLibrary/sharedComponents/bottom.module';
import { ConnectAdminLoginGuard} from './openaireLibrary/connect/communityGuard/connectAdminLoginGuard.guard';
import { EnvironmentSpecificResolver} from './openaireLibrary/utils/properties/environmentSpecificResolver';
import { EnvironmentSpecificService} from './openaireLibrary/utils/properties/environment-specific.service';

import {CommunitiesService} from './openaireLibrary/connect/communities/communities.service';
import {CommunityErrorPageComponent} from './openaireLibrary/connect/communityGuard/communityErrorPage.component';
import {IsCommunity} from './openaireLibrary/connect/communityGuard/isCommunity.guard';
import {AdminErrorPageComponent} from './pages/error/errorPage.component';
import {ErrorModule} from './openaireLibrary/error/error.module';
import {TitleCasePipe} from '@angular/common';

import {AlertModalModule} from './openaireLibrary/utils/modal/alertModal.module';
import {FABModule} from './utils/fabModule.module';
import {SafeHtmlPipeModule} from './openaireLibrary/utils/pipes/safeHTMLPipe.module';
import {InteractiveMiningModule} from 'interactiveminingv3';
import {CommunityService} from './openaireLibrary/connect/community/community.service';
import {SubscribeService} from './openaireLibrary/utils/subscribe/subscribe.service';
import {ConnectRIGuard} from './openaireLibrary/connect/communityGuard/connectRIGuard.guard';
import {SideBarModule} from "./openaireLibrary/sharedComponents/sidebar/sideBar.module";
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {CommunityErrorModule} from './openaireLibrary/connect/communityGuard/communityError.module';

@NgModule({
    imports: [
        AppRoutingModule,
        BrowserModule,
        HttpClientModule,
        FormsModule,
        ReactiveFormsModule,
        BottomModule, NavigationBarModule, CookieLawModule,
        ErrorModule,
        AlertModalModule, SafeHtmlPipeModule, FABModule,
        InteractiveMiningModule,
        SideBarModule,
        BrowserAnimationsModule, CommunityErrorModule
    ],
    declarations: [
        AppComponent,
        // CommunityErrorPageComponent,
        AdminErrorPageComponent
    ],
    providers: [
        HelpContentService, CommunityService, SubscribeService,
        ConnectAdminLoginGuard,
        EnvironmentSpecificResolver, EnvironmentSpecificService,
        IsCommunity, ConnectRIGuard, CommunitiesService, TitleCasePipe

    ],
    bootstrap: [ AppComponent ]
})

export class AppModule { }
