import { AdminAuthenticationService } from './services/role-authentication/admin.authentication.service';
import { AdmindataService } from 'app/admin/shared/admindata.service';
import { AdminRoutingModule } from './routing-modules/admin-routing.module';
import { AppComponent } from 'app/app.component';
import { AppRoutingModule } from './routing-modules/app-routing.module';
import { AssessmentHttpService } from 'app/services/assessment/assessment-http.service';
import { AuthenticationService } from 'app/services/authentication.service';
import { AuthService } from 'app/services/auth.service';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
import { BulkUploadFileService } from './ta/ta-bulk-upload/bulk-upload-file.service';
import { BusinessplaygroundComponent } from 'app/businessplayground/businessplayground.component';
import { CandidatecontactdetailsComponent } from 'app/shared/candidatecontactdetails/candidatecontactdetails.component';
import { CapabilityTransformationHttpService } from 'app/services/capability-transformation/capability-transformation-http.service';
import { ChatService } from 'app/chat/services/chat.service';
import { ChatUiService } from 'app/chat/services/chat-ui.service';
import { CoachAuthenticationService } from './services/role-authentication/coach.authentication.service';
import { CoachCandidateEvaluationService } from 'app/coach/shared/service/coach-candidate-evaluation.service';
import { CoachRoutingModule } from './routing-modules/coach-routing.module';
import { CommonModule } from '@angular/common';
import { CustomOption } from 'app/ng2-toastr/custom-option.component';
import { DashboardComponent } from 'app/dashboard/dashboard.component';
import { DataFinder } from 'app/admin/shared/datafinder';
import { EmployeeAuthenticationService } from './services/role-authentication/employee.authentication.service';
import { EmployeeCourseIdService } from 'app/coach/shared/service/employee-course-id.service';
import { EmployeeFeedBackService } from './services/employee/employee-feedback.service';
import { EmployeeFirstTimeActionsButtonsService } from './employee/employee-first-time-wizard/employee-first-time-actions-buttons.service';
import { EmployeeHttpService } from 'app/services/employee/employee-http.service';
import { EmployeeProfileModule } from 'app/employee/employee-profile/employee-profile.module';
import { EmployeeService } from 'app/employee.service';
import { EmpRoutingModule } from './routing-modules/emp-routing.module';
import { CandiadateRoutingModule } from './routing-modules/candidate-routing.module';
import { EnsureAuthenticated } from 'app/services/ensure-authenticated.service';
import { fbRedirectComponent } from 'app/redirectUrl/fb.redirectUrl';
import { FilterComponentComponent } from 'app/filter-component/filter-component.component';
import { ForinneradminService } from './admin/inner-admin-pages/forinneradmin.service';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { HttpClientModule } from '@angular/common/http';
import { HttpModule } from '@angular/http';
import { InnovationHttpService } from 'app/services/innovation/innovation-http.service';
import { IntroductionComponent } from 'app/introduction/introduction.component';
import { LocalStorageModule } from 'angular-2-local-storage';
import { LoginComponent } from 'app/login/log.component';
import { LoginRedirect } from 'app/services/login.redirect.service';
import { LogoutDataService } from 'app/employee/employee-dashboard/employee-logout/logout-data.service';
import { MainComponent } from 'app/main/main.component';
import { MaterialModule } from './routing-modules/material.module';
import { MyDateRangePickerModule } from 'mydaterangepicker';
import { MyInnovationViewContentComponent } from 'app/employee/employee-dashboard/my-innovation-idea/my-innovation-view-content/my-innovation-view-content.component';
import { NavActionComponent } from 'app/nav/nav-action/nav-action.component';
import { NavComponent } from 'app/nav/nav.component';
import { NavigationService } from 'app/services/navigation/navigation.service';
import { Ng2FilterPipeModule } from 'ng2-filter-pipe';
import { Ng2SmartTableModule } from 'ng2-smart-table';
import { NgModule } from '@angular/core';
import { NgxIntlTelInputModule } from 'ngx-intl-tel-input';
import { PagenotfoundComponent } from 'app/pagenotfound/pagenotfound.component';
import { PagerService } from './admin/inner-admin-pages/right-admin-panel/user-mgmt/_services';
import { PgcoachdetailsComponent } from 'app/pgcoachdetails/pgcoachdetails.component';
import { PgmAuthenticationService } from './services/role-authentication/pgm.authentication.service';
import { PgmEmployeeCardComponent } from 'app/pgm/shared/pgm-employee-card/pgm-employee-card.component';
import { PgmEmployeeDashBoardComponent } from 'app/pgm/pgm-landing/pgm-employee-dash-board/pgm-employee-dash-board.component';
import { PgmRoutingModule } from './routing-modules/pgm-routing.module';
import { PlatformHttpService } from 'app/services/platform/platform-http.service';
import { PrimaryskillplaygroundComponent } from 'app/primaryskillplayground/primaryskillplayground.component';
import { ProgressStateSetupWorkspaceService } from 'app/employee/employee-dashboard/employee-sandbox/progress-state-setup-workspace.service';
import { QuillModule } from 'ngx-quill';
import { SchedulePrimaryTestDataService } from 'app/coach/shared/service/schedule-primary-test-data.service';
import { ServerStopComponentComponent } from 'app/server-stop-component/server-stop-component.component';
import { SharedModule } from './routing-modules/shared.module';
import { SideNavFilterComponent } from './shared/side-nav-filter/side-nav-filter.component';
import { SignupComponent } from 'app/signup/signup.component';
import { SlideMenuModule } from 'cuppa-ng2-slidemenu/cuppa-ng2-slidemenu';
import { StarRatingModule } from 'angular-star-rating';
import { TaAuthenticationService } from './services/role-authentication/ta.authentication.service';
import { TaModalServiceService } from 'app/ta/ta-modal-service.service';
import { TaRoutingModule } from './routing-modules/ta-routing.module';
import { TechnicalplaygroundComponent } from 'app/technicalplayground/technicalplayground.component';
import { ToastModule, ToastOptions } from 'ng2-toastr/ng2-toastr';
import { TutorialService } from 'app/services/tutorial.service';
import { TutorialStepDirective } from 'app/directives/tutorial-step.directive';
import { TutorialStepTooltipComponent } from 'app/tutorial/tutorial-step-tooltip/tutorial-step-tooltip.component';
import { UserService } from 'app/services/user.service';
import { UsecaselistService } from './admin/inner-admin-pages/right-admin-panel/usecase-list/usecaselist.service';
import { WizardbuttonComponent } from 'app/shared/wizardbutton/wizardbutton.component';
import { WorkspaceService } from 'app/services/workspace.service';
import 'hammerjs';

// import { TaAddCandidateComponent } from './ta/src/app/ta/ta-add-candidate/ta-add-candidate.component';
// import { CandidateChallengeComponent } from './candidate/shared/src/app/candidate/shared/candidate-challenge/candidate-challenge.component';
// import { CandidateComponent } from './src/app/candidate/candidate.component';
// import { CandidateHeaderComponent } from './candidate/shared/candidate-header/candidate-header.component';
// import { CandidateDashboardComponent } from './candidate/feature/src/app/candidate/feature/candidate-dashboard/candidate-dashboard.component';
import {SignUpAsStudentComponent } from './signupasstudent/signupasstudent.component';
import { ForgotPasswordComponent } from './forgot-password/forgot-password.component';

@NgModule({
  declarations: [
    AppComponent,
    MainComponent,
    LoginComponent,
    SignupComponent,
    SignUpAsStudentComponent,
    IntroductionComponent,
    DashboardComponent,
    TechnicalplaygroundComponent,
    BusinessplaygroundComponent,
    PrimaryskillplaygroundComponent,
    PagenotfoundComponent,
    fbRedirectComponent,
    PgcoachdetailsComponent,
    ServerStopComponentComponent,
    WizardbuttonComponent,
    ServerStopComponentComponent,
    CandidatecontactdetailsComponent,
    PgmEmployeeDashBoardComponent,
    PgmEmployeeCardComponent,
    TutorialStepDirective,
    TutorialStepTooltipComponent,
    NavComponent,
    NavActionComponent,
    FilterComponentComponent,
    MyInnovationViewContentComponent,
    SideNavFilterComponent,
    // TaAddCandidateComponent
    ForgotPasswordComponent
  ],
  imports: [
    FormsModule,
    CommonModule,
    MaterialModule,
    PgmRoutingModule,
    EmpRoutingModule,
    CandiadateRoutingModule,
    AdminRoutingModule,
    CoachRoutingModule,
    TaRoutingModule,
    SharedModule,
    AppRoutingModule,
    /*RouterModule.forRoot(
      appRoutes,
      { enableTracing: true } // <-- debugginsg purposes only
    ),*/
    LocalStorageModule.withConfig({
      prefix: 'my-app',
      storageType: 'localStorage'
    }),
    HttpClientModule,
    HttpModule,
    BrowserAnimationsModule,
    ReactiveFormsModule,
    SlideMenuModule,
    Ng2SmartTableModule,
    ToastModule.forRoot(),
    Ng2FilterPipeModule,
    QuillModule,
    EmployeeProfileModule,
    MyDateRangePickerModule,
    BsDropdownModule.forRoot(),
    NgxIntlTelInputModule,
    StarRatingModule.forRoot()
  ],
  providers: [
    AuthService,
    NavigationService,
    EnsureAuthenticated,
    LoginRedirect,
    AuthenticationService,
    EmployeeAuthenticationService,
    PgmAuthenticationService,
    CoachAuthenticationService,
    AdminAuthenticationService,
    ForinneradminService,
    TaAuthenticationService,
    WorkspaceService,
    EmployeeHttpService,
    CapabilityTransformationHttpService,
    PlatformHttpService,
    SchedulePrimaryTestDataService,
    TaModalServiceService,
    CoachCandidateEvaluationService,
    EmployeeCourseIdService,
    AssessmentHttpService,
    ProgressStateSetupWorkspaceService,
    TutorialService,
    ChatService,
    ChatUiService,
    UserService,
    AdmindataService,
    DataFinder,
    LogoutDataService,
    EmployeeFirstTimeActionsButtonsService,
    InnovationHttpService,
    PagerService,
    BulkUploadFileService,
    EmployeeService,
    UsecaselistService,
    EmployeeFeedBackService,
    { provide: ToastOptions, useClass: CustomOption }
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }
