import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { DARSViewComponent } from './dars-view/dars-view.component';
import { EffectsModule } from '@ngrx/effects';
import { SharedModule } from '@app/shared/shared.module';
import { DARSEffects } from './store/effects';
import { DarsAuditComponent } from './audit/audit.component';
import { DarsMetadataTableComponent } from './metadata-table/metadata-table.component';
import { MetadataMobileViewComponent } from './metadata-mobile-view/metadata-mobile-view.component';
import { MatStepperModule } from '@angular/material';
import { AlertContainerComponent } from '../shared/components/alert-container/alert-container.component';
import { StoreModule } from '@ngrx/store';
import { darsReducer } from './store/reducer';
import { AuditLinePipe } from './pipes/audit-line.pipe';
import { NewDegreeAuditDialogComponent } from './new-degree-audit-dialog/new-degree-audit-dialog.component';
import { NewWhatIfAuditDialogComponent } from './new-what-if-audit-dialog/new-what-if-audit-dialog.component';

@NgModule({
  imports: [
    StoreModule.forFeature('dars', darsReducer),
    EffectsModule.forFeature([DARSEffects]),
    SharedModule,
    MatStepperModule,
  ],
  exports: [MatStepperModule],
  declarations: [
    AuditLinePipe,
    NewDegreeAuditDialogComponent,
    NewWhatIfAuditDialogComponent,
    DARSViewComponent,
    DarsAuditComponent,
    DarsMetadataTableComponent,
    MetadataMobileViewComponent,
  ],
  entryComponents: [
    NewDegreeAuditDialogComponent,
    NewWhatIfAuditDialogComponent,
  ],
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class DARSModule {}