import { NgModule } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';


import { EnvironmentSpecificResolver } from '../../../openaireLibrary/utils/properties/environmentSpecificResolver';
import { EnvironmentSpecificService } from '../../../openaireLibrary/utils/properties/environment-specific.service';

import { DataTablesModule } from 'angular-datatables';
import { ManageProjectsComponent } from './manage-projects.component';
import { ManageCommunityProjectsService } from '../../../services/manageProjects.service';
import { SearchProjectsServiceModule } from '../../../openaireLibrary/connect/projects/searchProjectsService.module';

import { RemoveProjectsComponent } from './remove-projects.component';
import { AddProjectsComponent } from './add-projects.component';
import { SearchProjectsService } from '../../../openaireLibrary/services/searchProjects.service';
import { PagingModule } from '../../../openaireLibrary/utils/paging.module';
import { SearchPagingModule } from '../../../openaireLibrary/searchPages/searchUtils/searchPaging.module';

import {ErrorMessagesModule} from '../../../openaireLibrary/utils/errorMessages.module';
import {AlertModalModule} from '../../../openaireLibrary/utils/modal/alertModal.module';
import {FABModule} from '../../../utils/fabModule.module';
import {CommonModule} from '@angular/common';
import {CommunityProjectsRoutingModule} from './communityProjects-routing.module';

@NgModule({
    imports: [
        CommonModule,
        HttpClientModule,
        FormsModule,
        ReactiveFormsModule,
        RouterModule,
        DataTablesModule,
        PagingModule, SearchPagingModule,
        ErrorMessagesModule,
        AlertModalModule,
        SearchProjectsServiceModule,
        FABModule,
        CommunityProjectsRoutingModule
    ],
    declarations: [
        ManageProjectsComponent,
        RemoveProjectsComponent,
        AddProjectsComponent
    ],
    providers: [
        ManageCommunityProjectsService,
        SearchProjectsService,
        EnvironmentSpecificResolver, EnvironmentSpecificService
    ],
    exports: [ManageProjectsComponent]
})

export class CommunityProjectsModule { }
