import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

import { DashboardRoutingModule } from './dashboard-routing.module';
import { SalesComponent } from './sales/sales.component';
import { EcommerceComponent } from './ecommerce/ecommerce.component';
import { CryptoComponent } from './crypto/crypto.component';
import { JobsComponent } from './jobs/jobs.component';
import { NftComponent } from './nft/nft.component';
import { AnalyticsComponent } from './analytics/analytics.component';
import { ProjectsComponent } from './projects/projects.component';
import { HrmComponent } from './hrm/hrm.component';
import { CrmComponent } from './crm/crm.component';
import { PersonalComponent } from './personal/personal.component';
import { StocksComponent } from './stocks/stocks.component';
import { CourseComponent } from './course/course.component';
import { NgApexchartsModule } from 'ng-apexcharts';
import { NgChartsModule } from 'ng2-charts';
import { CarouselModule } from 'ngx-owl-carousel-o';
import { SharedModule } from 'src/app/shared/sharedmodule';
import { NgxChartsModule } from '@swimlane/ngx-charts';
import { NgSelectModule } from '@ng-select/ng-select';
import { CompanyRegistrationComponent } from '../company-registration/company-registration.component';
import { DepartmentRegisterComponent } from '../company-registration/branch-business-unit/department-register/department-register.component';
import { BranchBusinessUnitComponent } from '../company-registration/branch-business-unit/branch-business-unit.component';
import { DepartmentListComponent } from '../company-registration/branch-business-unit/department-list/department-list.component';
import { SubDepartmentOneComponent } from '../company-registration/branch-business-unit/sub-department-one/sub-department-one.component';
import { SubDepartmentThreeComponent } from '../company-registration/branch-business-unit/sub-department-three/sub-department-three.component';
import { SubDepartmentTwoComponent } from '../company-registration/branch-business-unit/sub-department-two/sub-department-two.component';
import { SubDepartmentFourComponent } from '../company-registration/branch-business-unit/sub-department-four/sub-department-four.component';
import { SectionRegistrationComponent } from '../company-registration/branch-business-unit/section-registration/section-registration.component';
import { JobDescriptionComponent } from '../job-description/job-description.component';
import { PositionUnitComponent } from '../job-description/position/position-unit.component';
import { EmployeeGroupUnit } from '../job-description/employee-group-unit/employee-group-unit.component';
import { EmployeeCategories } from '../job-description/employee-categories/employee-categories.component';
import { AccountSettingsComponent } from '../account-settings/account-settings.component';
import { UserSettingsComponent } from '../account-settings/user-settings/user-settings.component';
import { EmployeeLevel } from '../job-description/employee-level/employee-level.component';
import { SetAPasswordComponent } from '../account-settings/set-a-password/set-a-password.component';
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { Bu1Service } from 'src/app/shared/services/bu1.service';
import { HttpRequestInterceptor } from 'src/app/shared/services/http-request.interceptor';
import { FormsModule } from '@angular/forms';

@NgModule({
  declarations: [
    SalesComponent,
    EcommerceComponent,
    CryptoComponent,
    JobsComponent,
    NftComponent,
    AnalyticsComponent,
    ProjectsComponent,
    HrmComponent,
    CrmComponent,
    PersonalComponent,
    StocksComponent,
    CourseComponent,

    // my Component
    CompanyRegistrationComponent,
    BranchBusinessUnitComponent,
    DepartmentRegisterComponent,
    DepartmentListComponent,
    SectionRegistrationComponent,
    SubDepartmentOneComponent,
    SubDepartmentTwoComponent,
    SubDepartmentThreeComponent,
    SubDepartmentFourComponent,
    JobDescriptionComponent,
    PositionUnitComponent,
    EmployeeGroupUnit,
    EmployeeCategories,
    AccountSettingsComponent,
    UserSettingsComponent,
    EmployeeLevel,
    SetAPasswordComponent
  ],
  imports: [
    CommonModule,
    DashboardRoutingModule,
    NgChartsModule,
    NgApexchartsModule,
    CarouselModule,
    SharedModule,
    NgxChartsModule,
    NgSelectModule,
    HttpClientModule,
    FormsModule 
  ],
  providers: [Bu1Service, {
    provide: HTTP_INTERCEPTORS,
    useClass: HttpRequestInterceptor,
    multi: true,
  },]
})
export class DashboardModule { }
