/**
 * @license
 * Copyright Akveo. All Rights Reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 */
import { APP_BASE_HREF, LocationStrategy, HashLocationStrategy } from '@angular/common';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgModule } from '@angular/core';
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { CoreModule } from './@core/core.module';

import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import { ThemeModule } from './@theme/theme.module';
import { NgbModule, NgbCheckBox } from '@ng-bootstrap/ng-bootstrap';
import { SharedService } from '../app/shared/shared.service';
import { AuthGuardService } from '../app/shared/auth-guard.service';
import { CanDeactivateGuard } from '../app/shared/can-deactive-guards.service';
import { ToastrModule } from 'ngx-toastr';
import { TokenInterceptorService } from './shared/token-interceptor.service'
import { from, config } from 'rxjs';
import { PagesService } from './shared/pages.service';
import { ResponceInterceptService } from './shared/responce-intercept.service';
import {NgxPaginationModule} from 'ngx-pagination'; // <-- import themodule
import { BootstrapModalModule } from 'ng2-bootstrap-modal';
import { NbWindowModule } from '@nebular/theme';

@NgModule({
  declarations: [AppComponent],
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    HttpClientModule,
    AppRoutingModule,
    ToastrModule.forRoot(), // ToastrModule added
    NgbModule.forRoot(),
    ThemeModule.forRoot(),
    CoreModule.forRoot(),
    NgxPaginationModule,
    BootstrapModalModule,
    NbWindowModule.forRoot(),
    
  ],
  bootstrap: [AppComponent],
  providers: [
    { provide: APP_BASE_HREF, useValue: '/' },
    SharedService,
    AuthGuardService,
    CanDeactivateGuard,
   TokenInterceptorService,
   PagesService,
   {provide: LocationStrategy, useClass: HashLocationStrategy},
   ResponceInterceptService , {
     provide: HTTP_INTERCEPTORS,
     useClass: TokenInterceptorService,
     multi: true
   },
    
  ],
})
export class AppModule {
}
