blob: 370f7a2cfd421aa60d21f6b753a34f6c69e5c709 [file] [log] [blame]
/********************************************************************************
* Copyright (c) 2020 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
********************************************************************************/
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ReactiveFormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { ComponentsModule } from '@shared/components';
import { TranslateModule } from '@ngx-translate/core';
import { NgxDatatableModule } from '@swimlane/ngx-datatable';
import { NgrxFormsModule } from 'ngrx-forms';
import { FormsModule } from '@angular/forms';
import { AgGridModule } from 'ag-grid-angular';
import { DirectivesModule } from '@shared/directives';
import { FiltersModule } from '@shared/filters/index.module';
import { ContainersModule } from '@shared/containers';
import { SetFilterComponent } from '@app/shared/filters/ag-grid/set-filter/set-filter.component';
import { PersonsApiClient } from '@pages/persons/persons-api-client';
import { ExternalPersonDetailsComponent } from '@app/pages/persons/external-person/external-person-details/external-person-details.component';
import { PersonsService } from '@pages/persons/persons.service';
import { ExternalPersonDetailsSandBox } from '@app/pages/persons/external-person/external-person-details/external-person-details.sandbox';
import { StoreModule } from '@ngrx/store';
import { personsReducers } from '@app/shared/store';
import { ExternalPersonResolver } from '@pages/persons/external-person/external-person.resolver';
import { PersonsRoutingModule } from '@pages/persons/persons.routing.module';
import { EffectsModule } from '@ngrx/effects';
import { ExternalPersonEffect } from '@app/shared/store/effects/persons/external-person.effect';
import { InternalPersonDetailsComponent } from '@app/pages/persons/internal-person/internal-person-details/internal-person-details.component';
import { InternalPersonEffect } from '@app/shared/store/effects/persons/internal-person.effect';
import { InternalPersonDetailsSandBox } from '@app/pages/persons/internal-person/internal-person-details/internal-person-details.sandbox';
import { InternalPersonResolver } from '@pages/persons/internal-person/internal-person.resolver';
@NgModule({
imports: [
CommonModule,
ComponentsModule,
TranslateModule,
DirectivesModule,
FiltersModule,
ReactiveFormsModule,
RouterModule,
NgxDatatableModule,
NgrxFormsModule,
FormsModule,
StoreModule.forFeature('personsData', personsReducers),
AgGridModule.withComponents([SetFilterComponent]),
ContainersModule,
PersonsRoutingModule,
EffectsModule.forFeature([
ExternalPersonEffect,
InternalPersonEffect
]),
],
declarations: [
ExternalPersonDetailsComponent,
InternalPersonDetailsComponent
],
providers: [
PersonsService,
PersonsApiClient,
ExternalPersonDetailsSandBox,
ExternalPersonResolver,
InternalPersonDetailsSandBox,
InternalPersonResolver
],
})
export class PersonsModule {}