import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { NgModule, ErrorHandler } from '@angular/core';
import { FlexLayoutModule } from '@angular/flex-layout';
import { FormsModule } from '@angular/forms';
import {
MatButtonModule,
MatCardModule,
MatCheckboxModule,
MatIconModule,
MatInputModule,
MatSidenavModule,
MatToolbarModule,
MatListModule,
MatMenuModule,
MatTreeModule
} from '@angular/material';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { AppComponent } from './app.component';
import { AppRoutingModule } from './modules/app-routing.module';
import { LoginComponent } from './login/login.component';
import { WindowTokenModule } from './modules/window/window-token.module';
import { NotFoundComponent } from './not-found/not-found.component';
import { TimeoutModule } from './modules/timeout';
import { ClipboardService } from './modules/clipboard/clipboard.service';
import { AuthInterceptor } from './providers/interceptors';
import { TrackJsErrorHandler } from './extensions/trackjs.errorhandler';
import { SharedModule } from './modules/shared/shared.module';
import { NavigationComponent } from './navigation/navigation.component';
import { LoaderModule } from './modules/loader/loader.module';
import { UserProfileComponent } from './navigation/user-profile/user-profile.component';
@NgModule({
imports: [
BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),
HttpClientModule,
FormsModule,
FlexLayoutModule,
BrowserAnimationsModule,
MatSidenavModule,
MatToolbarModule,
MatIconModule,
MatButtonModule,
MatCheckboxModule,
MatCardModule,
MatInputModule,
MatListModule,
MatMenuModule,
AppRoutingModule,
SharedModule,
WindowTokenModule,
TimeoutModule,
MatTreeModule,
LoaderModule
],
declarations: [
AppComponent,
NavigationComponent,
LoginComponent,
NotFoundComponent,
UserProfileComponent
],
providers: [
{ provide: ErrorHandler, useClass: TrackJsErrorHandler },
{
provide: HTTP_INTERCEPTORS,
useClass: AuthInterceptor,
multi: true
},
{ provide: 'ORIGIN_URL', useValue: location.origin },
ClipboardService
],
bootstrap: [AppComponent]
})
export class AppModule {}