import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { ToastrModule } from 'ngx-toastr';
import { NgxSpinnerModule } from 'ngx-spinner';
import { IconsModule } from './icons/icons.module';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { AppRoutingModule } from './app.routing';
import { AppComponent } from './app.component';
import { LoginComponent } from './login/login.component';
import { RegisterComponent } from './register/register.component';
import { NotFoundComponent } from './not-found/not-found.component';
import { UnauthorizedComponent } from './unauthorized/unauthorized.component';
import { JwtInterceptor } from './helpers/jwt.interceptor';
import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
import { ErrorInterceptor } from './helpers/error.interceptor';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { AlertComponent } from './alert/alert.component';
import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { A11yModule } from '@angular/cdk/a11y';
import { SidebarComponent } from './layout/sidebar/sidebar.component';
import { NavbarComponent } from './layout/navbar/navbar.component';
import { FooterComponent } from './layout/footer/footer.component';
import { AdminLayoutComponent } from './layout/admin-layout/admin-layout.component';
import { DragDropModule } from '@angular/cdk/drag-drop';
import { TimesheetsListComponent } from './timesheets-list/timesheets-list.component';
import { TimesheetDetailsComponent } from './timesheet-details/timesheet-details.component';
import { AgGridModule } from 'ag-grid-angular';
import { ManageTimesheetsComponent } from './manage-timesheets/manage-timesheets.component';
import { ManageTimesheetDetailsComponent } from './manage-timesheet-details/manage-timesheet-details.component';
@NgModule({
declarations: [
AppComponent,
LoginComponent,
RegisterComponent,
NotFoundComponent,
UnauthorizedComponent,
AlertComponent,
AdminLayoutComponent,
SidebarComponent,
NavbarComponent,
FooterComponent,
TimesheetsListComponent,
TimesheetDetailsComponent,
ManageTimesheetsComponent,
ManageTimesheetDetailsComponent
],
imports: [
BrowserModule,
AppRoutingModule,
BrowserAnimationsModule,
AgGridModule,
IconsModule,
FormsModule,
ReactiveFormsModule,
HttpClientModule,
ToastrModule.forRoot(),
NgxSpinnerModule,
A11yModule,
MatButtonModule,
MatIconModule,
DragDropModule
],
providers: [
{ provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },
{ provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true},
],
bootstrap: [AppComponent]
})
export class AppModule { }