Files
happy-app/client/dev/app.module.ts
2018-04-21 21:33:16 +01:00

98 lines
3.4 KiB
TypeScript

import { NgModule, ErrorHandler, Injectable, Injector } from "@angular/core";
import { HttpModule } from "@angular/http";
import { FormsModule, ReactiveFormsModule } from "@angular/forms";
import { BrowserModule } from "@angular/platform-browser";
import { App } from "./app";
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { HomeComponent } from "./pages/home/home.component";
import { homeRouting } from "./pages/home/home.route";
import { HomeService } from "./pages/home/home.service";
import { SubmitResponseComponent } from "./pages/submit-response/submit-response.component";
import { NavbarComponent } from './components/navbar/navbar.component';
import { TimeChartComponent } from './components/time-chart/time-chart.component';
import { CalendarChartComponent } from './components/calendar-chart/calendar-chart.component';
import { OverviewChartComponent } from './components/overview-chart/overview-chart.component';
import { MaterialModule } from './material.module';
import { SharedModule } from "./shared-helpers.module";
import { LoaderComponent } from "./components/loader/loader.component";
import { TeamComponent } from "./pages/team/team.component";
import { TeamService } from "./services/team.service";
import { AllTeamsService } from "./services/all-teams.service";
import { GridChartComponent } from "./components/grid-chart/grid-chart.component";
import { DayBreakdownChartComponent } from "./components/day-breakdown-chart/day-breakdown-chart";
import { CommonService } from "./services/common.service";
import { SplashScreenComponent } from "./components/splash-screen/splash-screen";
import { AppFeedbackComponent } from "./components/app-feedback/app-feedback";
import { AppHelpComponent } from "./components/app-help/app-help";
import { MessageChartComponent } from "./components/message-chart/message-chart";
import { Angulartics2Module, Angulartics2GoogleTagManager } from "angulartics2";
import * as Rollbar from 'rollbar';
const rollbarConfig = {
accessToken: 'e4289419268448dfb7752adb5d35b050',
captureUncaught: true,
captureUnhandledRejections: true,
};
@Injectable()
export class RollbarErrorHandler implements ErrorHandler {
constructor(private injector: Injector) { }
handleError(err:any) : void {
// this.injector.get(Rollbar);
// let rollbar = this.injector.get(Rollbar);
// rollbar.error(err.originalError || err);
}
}
@NgModule({
imports: [
MaterialModule,
BrowserModule,
FormsModule,
ReactiveFormsModule,
HttpModule,
homeRouting,
BrowserAnimationsModule,
SharedModule,
Angulartics2Module.forRoot([ Angulartics2GoogleTagManager ])
],
declarations: [
App,
HomeComponent,
TeamComponent,
NavbarComponent,
TimeChartComponent,
OverviewChartComponent,
CalendarChartComponent,
GridChartComponent,
DayBreakdownChartComponent,
LoaderComponent,
SplashScreenComponent,
AppFeedbackComponent,
AppHelpComponent,
MessageChartComponent,
SubmitResponseComponent
],
providers: [
HomeService,
TeamService,
AllTeamsService,
CommonService,
SharedModule,
{ provide: ErrorHandler, useClass: RollbarErrorHandler },
{ provide: Rollbar,
useFactory: () => {
return new Rollbar(rollbarConfig)
}
}
],
bootstrap: [
App
],
entryComponents: [AppFeedbackComponent, AppHelpComponent]
})
export class AppModule {}