import { BrowserModule } from '@angular/platform-browser'; import { NgModule, ErrorHandler } from '@angular/core'; import { LocationStrategy, HashLocationStrategy, CommonModule } from '@angular/common'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { ToastrModule } from 'ngx-toastr'; import { NgxSpinnerModule } from "ngx-spinner"; import { HTTP_INTERCEPTORS } from '@angular/common/http'; import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; import { PerfectScrollbarConfigInterface } from 'ngx-perfect-scrollbar'; import { LoggerModule, NgxLoggerLevel } from 'ngx-logger'; import { environment } from '../environments/environment'; import { CommonModules } from './views/common/common.module'; import { HeaderComponentsModule } from './views/custom-portal-pages/header-components/header-components.module'; const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = { suppressScrollX: true }; //Mat Components import { FlexLayoutModule } from '@angular/flex-layout'; import { MatButtonModule } from '@angular/material/button' import { MatToolbarModule } from '@angular/material/toolbar' import { MatSidenavModule } from '@angular/material/sidenav'; import { MatDividerModule } from '@angular/material/divider'; import {MatDialogModule} from '@angular/material/dialog'; import { AppComponent } from './app.component'; // Import containers import { DefaultLayoutComponent, CustomerPortalLayoutComponent } from './containers'; import { P404Component } from './views/error/404.component'; import { P500Component } from './views/error/500.component'; import { LoginComponent } from './views/login/login.component'; import { RegisterComponent } from './views/register/register.component'; import { TestimonialsComponent } from './views/testimonials/testimonials.component'; import { FaqsComponent } from './views/faqs/faqs.component'; import { PoliciesComponent } from './views/returns-cancellation-policies/policies.component'; import { BlogComponent } from './views/blog/blog.component'; import { TermsAndConditionsComponent } from './views/terms-conditions/terms-conditions.component'; import { AboutUsComponent } from './views/about-us/about-us.component'; import { LoaderInterceptor } from './interceptors/loader.interceptor'; import { AuthInterceptor } from './interceptors/auth.interceptor'; import { AuthAdminGuardService } from './guards/auth.admin.guard'; import { AuthUserGuardService } from './guards/auth.user.guard'; import { HttpErrorInterceptor } from './interceptors/httperror.interceptor'; import { ClientErrorInterceptor } from './interceptors/clienterror-interceptor'; const APP_CONTAINERS = [ DefaultLayoutComponent, CustomerPortalLayoutComponent ]; import { AppAsideModule, AppBreadcrumbModule, AppHeaderModule, AppFooterModule, AppSidebarModule, } from '@coreui/angular'; // Import routing module import { AppRoutingModule } from './app.routing'; // Import 3rd party components import { BsDropdownModule } from 'ngx-bootstrap/dropdown'; import { TabsModule } from 'ngx-bootstrap/tabs'; import { ChartsModule } from 'ng2-charts'; import { HttpClientModule } from '@angular/common/http'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { ModalModule } from 'ngx-bootstrap'; import { CategoryModalModule } from './views/categoryModals/category-modals.module'; @NgModule({ declarations: [ AppComponent, ...APP_CONTAINERS, P404Component, P500Component, LoginComponent, RegisterComponent, TestimonialsComponent, FaqsComponent, BlogComponent, PoliciesComponent, TermsAndConditionsComponent, AboutUsComponent ], imports: [ BrowserModule, ModalModule.forRoot(), BrowserAnimationsModule, AppRoutingModule, AppAsideModule, AppBreadcrumbModule.forRoot(), AppFooterModule, AppHeaderModule, AppSidebarModule, CommonModules, CategoryModalModule, PerfectScrollbarModule, BsDropdownModule.forRoot(), TabsModule.forRoot(), ChartsModule, FlexLayoutModule, MatSidenavModule, MatDividerModule, MatButtonModule, MatToolbarModule, MatDialogModule, CommonModule, CommonModule, FormsModule, ReactiveFormsModule, PerfectScrollbarModule, ToastrModule.forRoot({ timeOut: 2000, closeButton: true, preventDuplicates: true, positionClass: 'toast-top-center' }), NgxSpinnerModule, HttpClientModule, HeaderComponentsModule, LoggerModule.forRoot({ serverLoggingUrl: environment.disableServeLogging ? null : `${environment.apiUrl}/api/v1/logger`, level: environment.logLevel, serverLogLevel: environment.serverLogLevel, disableConsoleLogging: environment.disableConsoleLogging, enableSourceMaps: true }) ], providers: [{ provide: LocationStrategy, useClass: HashLocationStrategy }, { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true }, { provide: HTTP_INTERCEPTORS, useClass: LoaderInterceptor, multi: true }, { provide: HTTP_INTERCEPTORS, useClass: HttpErrorInterceptor, multi: true }, { provide: ErrorHandler, useClass: ClientErrorInterceptor}, AuthAdminGuardService, AuthUserGuardService ], bootstrap: [AppComponent], }) export class AppModule { }