Skip to content
Snippets Groups Projects
Forked from an inaccessible project.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
app.module.ts 2.58 KiB
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { StoreModule } from '@ngrx/store';
import { StoreDevtoolsModule } from '@ngrx/store-devtools';
import { EffectsModule } from '@ngrx/effects';
import { A11yModule } from '@angular/cdk/a11y';

import { AppRoutingModule } from './app.routing.module';
import { AppComponent } from './app.component';
import { CoreModule } from '@app/core/core.module';
import { SharedModule } from '@app/shared/shared.module';
import { HeaderComponent } from './core/header/header.component';
import { degreePlannerReducer } from '@app/degree-planner/store/reducer';
import { DegreePlanEffects } from '@app/degree-planner/store/effects/plan.effects';
import { UserPreferencesEffects } from '@app/degree-planner/store/effects/userPreferences.effects';
import { NoteEffects } from '@app/degree-planner/store/effects/note.effects';
import { CourseEffects } from '@app/degree-planner/store/effects/course.effects';
import { ErrorEffects } from '@app/degree-planner/store/effects/error.effects';
import { MatAutocompleteModule } from '@angular/material/autocomplete';
import { CourseDetailsDialogComponent } from './degree-planner/dialogs/course-details-dialog/course-details-dialog.component';
import { FeedbackDialogComponent } from './degree-planner/dialogs/feedback-dialog/feedback-dialog.component';
import { CreditOverloadDialogComponent } from './degree-planner/dialogs/credit-overload-dialog/credit-overload-dialog.component';
import { GoogleAnalyticsService } from './shared/services/google-analytics.service';

@NgModule({
  imports: [
    StoreModule.forRoot({
      degreePlanner: degreePlannerReducer,
    }),
    EffectsModule.forRoot([
      DegreePlanEffects,
      NoteEffects,
      CourseEffects,
      ErrorEffects,
      UserPreferencesEffects,
    ]),
    BrowserModule,
    BrowserAnimationsModule,
    HttpClientModule,
    CoreModule,
    SharedModule,
    AppRoutingModule,
    MatAutocompleteModule,
    A11yModule,
    StoreDevtoolsModule.instrument({
      maxAge: 5,
    }),
  ],
  declarations: [AppComponent, HeaderComponent],
  entryComponents: [
    CourseDetailsDialogComponent,
    FeedbackDialogComponent,
    CreditOverloadDialogComponent,
  ],
  providers: [GoogleAnalyticsService],
  bootstrap: [AppComponent],
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {
  constructor(protected _googleAnalyticsService: GoogleAnalyticsService) {}
}