import { CommonModule } from '@angular/common'
import { NgModule, Optional, SkipSelf } from '@angular/core'
import { FormsModule } from '@angular/forms'
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'
import { RouterModule } from '@angular/router'
import { LoadingBarModule } from '@ngx-loading-bar/core'
import { LoadingBarHttpClientModule } from '@ngx-loading-bar/http-client'
import { LoadingBarRouterModule } from '@ngx-loading-bar/router'
import { SimpleNotificationsModule } from 'angular2-notifications'
import { AuthService } from './auth'
import { ConfirmComponent, ConfirmService } from './confirm'
import { throwIfAlreadyLoaded } from './module-import-guard'
import { LoginGuard, RedirectService, UserRightGuard } from './routing'
import { ServerService } from './server'
import { ThemeService } from './theme'
@NgModule({
imports: [
CommonModule,
RouterModule,
FormsModule,
BrowserAnimationsModule,
SimpleNotificationsModule.forRoot(),
LoadingBarHttpClientModule,
LoadingBarRouterModule,
LoadingBarModule.forRoot()
],
declarations: [
ConfirmComponent
],
exports: [
SimpleNotificationsModule,
LoadingBarHttpClientModule,
LoadingBarModule,
ConfirmComponent
],
providers: [
AuthService,
ConfirmService,
ServerService,
ThemeService,
LoginGuard,
UserRightGuard,
RedirectService
]
})
export class CoreModule {
constructor (@Optional() @SkipSelf() parentModule: CoreModule) {
throwIfAlreadyLoaded(parentModule, 'CoreModule')
}
}