import {CommonModule} from '@angular/common';
import {NgModule, ModuleWithProviders} from '@angular/core';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {RouterModule} from '@angular/router';
import 'lodash';
import {AuthModule, AUTH_SERVICE, PUBLIC_FALLBACK_PAGE_URI, PROTECTED_FALLBACK_PAGE_URI} from 'ngx-auth';
import {AlertModule, DatepickerModule, ModalModule, BsDropdownModule, PopoverModule} from 'ngx-bootstrap';
import {TranslateModule, TranslateLoader,TranslateService } from '@ngx-translate/core';
// import {NgxErrorsModule} from 'ngx-errors';
// import {NgPipesModule} from 'ngx-pipes';
import {AngularFireModule} from 'angularfire2';
import {AngularFireDatabaseModule} from 'angularfire2/database';
import {AngularFireAuthModule} from 'angularfire2/auth';
import {AppBaseLibModule } from './app-base-lib.module';
import {UserModule } from './user/user.module';
import {CoreService} from '../services/app-base.service';
import {AuthenticationService} from '../services/authentication/authentication.service';
import {configDefaults} from '../../configDefaults';
@NgModule({
declarations: [
],
imports: [
AuthModule,
// AuthenticationModule,
BrowserAnimationsModule,
CommonModule,
RouterModule,
AngularFireModule.initializeApp(configDefaults.firebase),
AngularFireAuthModule,
AngularFireDatabaseModule,
AlertModule.forRoot(),
BsDropdownModule.forRoot(),
DatepickerModule.forRoot(),
ModalModule.forRoot(),
PopoverModule.forRoot(),
// NgPipesModule,
// NgxErrorsModule,
TranslateModule.forChild(),
AppBaseLibModule.forRoot(),
UserModule.forRoot()
],
exports: [
// NgPipesModule,
AlertModule,
BsDropdownModule,
DatepickerModule,
ModalModule,
PopoverModule,
// NgxErrorsModule,
AppBaseLibModule,
UserModule
],
providers: [
CoreService,
AuthenticationService,
{ provide: PROTECTED_FALLBACK_PAGE_URI, useValue: '/' },
{ provide: PUBLIC_FALLBACK_PAGE_URI, useValue: '/login' },
{ provide: AUTH_SERVICE, useClass: AuthenticationService }
]
})
export class AppBaseModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: AppBaseModule
};
}
}