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 { ManageContentProvidersComponent } from './manage-content-providers.component';
import { ManageCommunityContentProvidersService } from '../../../services/manageContentProviders.service';
import {SearchDataprovidersServiceModule} from '../../../openaireLibrary/connect/contentProviders/searchDataprovidersService.module';

import { RemoveContentProvidersComponent } from './remove-content-providers.component';
import { AddContentProvidersComponent } from './add-content-providers.component';
import { SearchDataprovidersService } from '../../../openaireLibrary/services/searchDataproviders.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 {CommunityContentProvidersRoutingModule} from './communityContentProviders-routing.module';

@NgModule({
    imports: [
        CommonModule,
        HttpClientModule,
        FormsModule,
        FormsModule,
        ReactiveFormsModule,
        RouterModule,
        DataTablesModule,
        PagingModule, SearchPagingModule,
        ErrorMessagesModule,
        AlertModalModule,
        SearchDataprovidersServiceModule,
        FABModule,
        CommunityContentProvidersRoutingModule
    ],
    declarations: [
        ManageContentProvidersComponent,
        RemoveContentProvidersComponent,
        AddContentProvidersComponent
    ],
    providers: [
        ManageCommunityContentProvidersService,
        SearchDataprovidersService,
        EnvironmentSpecificResolver, EnvironmentSpecificService
    ],
    exports: [ManageContentProvidersComponent]
})

export class CommunityContentProvidersModule { }
