import { InfiniteScrollModule } from 'ngx-infinite-scroll';
import { AppRoutingModule } from '../app-routing.module';
import { HeaderComponent } from '../components/header/header.component';
import { ProcessHeaderComponent } from '../components/process-header/process-header.component';
import { ProcessTabComponent } from '../components/process-tab/process-tab.component';
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { BreadcrumbsComponent } from '../components/breadcrumbs/breadcrumbs.component';
import { MenuComponent } from '../components/menu/menu.component';
import { DashboardModule } from '../modules/dashboard/dashboard.module';
import { NewsletterSignupModule } from './newsletter-signup/newsletter-signup.module';
import { ContentPageComponent } from '../pages/content/content.component';
import { SharedModule } from '../shared/shared.module';
import { ProcessModule } from '../modules/process/process.module';
import { ScrollingModule } from '@angular/cdk/scrolling';
import { RecommendationsdModule } from '../modules/recommendations/recommendations.module';
import {
  LoadingModule,
  ModalModule,
  ButtonModule,
  PhotoGalleryModule,
  InputModule,
  DropdownModule,
  IconModule,
  DeleteDropdownModule,
} from '@libs/ui';
import { ContentHeaderComponent } from '../components/content-header';
import { LogOutComponent } from '../components/log-out/log-out.component';
import { LogInComponent } from '../components/log-in/log-in.component';
import { ErrorModule } from '../core/error/component/error.module';
import { DoubleChoiceSwitchModule } from '@libs/ui/lib/double-choice-switch';
import { RemissionLeaveDialogComponent } from './remission/components/remission-leave-dialog/remission-leave-dialog.component';
import { RemissionReminderDialogComponent } from './remission/components/remission-reminder-dialog/remission-reminder-dialog.component';
import { FilterButtonModule } from '@libs/ui/lib/filter-button';
import { RemissionStartedLeaveDialogComponent } from './remission/components/remission-started-leave-dialog';

@NgModule({
  declarations: [
    HeaderComponent,
    ContentHeaderComponent,
    ProcessHeaderComponent,
    ProcessTabComponent,
    ContentPageComponent,
    MenuComponent,
    BreadcrumbsComponent,
    LogOutComponent,
    LogInComponent,
    RemissionStartedLeaveDialogComponent,
    RemissionLeaveDialogComponent,
    RemissionReminderDialogComponent,
  ],
  imports: [
    CommonModule,
    AppRoutingModule,
    ScrollingModule,
    FormsModule,
    SharedModule,
    NewsletterSignupModule,
    InfiniteScrollModule,
    DashboardModule,
    ProcessModule,
    RecommendationsdModule,
    LoadingModule,
    ModalModule,
    ButtonModule,
    PhotoGalleryModule,
    InputModule,
    DropdownModule,
    DeleteDropdownModule,
    IconModule,
    ErrorModule,
    DoubleChoiceSwitchModule,
    FilterButtonModule,
  ],
  exports: [
    HeaderComponent,
    ContentHeaderComponent,
    ProcessHeaderComponent,
    ProcessTabComponent,
    ContentPageComponent,
    MenuComponent,
    BreadcrumbsComponent,
    InfiniteScrollModule,
    ProcessModule,
    LogOutComponent,
    LogInComponent,
    RemissionStartedLeaveDialogComponent,
    RemissionLeaveDialogComponent,
    RemissionReminderDialogComponent,
    FilterButtonModule,
  ],
})
export class ComponentsModule {}
