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

import { RemissionClientRoutingModule } from './remission-client-routing.module';
import { RemissionListCreateComponent } from './pages/remission-list-create/remission-list-create.component';
import {
  DoubleChoiceSwitchModule,
  ProgressBarModule,
  IconModule,
  ButtonModule,
  ModalModule,
  DropdownModule,
  DeleteDropdownModule,
  SearchInputModule,
  LoadingModule,
} from '@libs/ui';
import { SmallDoubleChoiceSwitchModule } from '@libs/ui/lib/small-double-choice-switch';
import { RemissionFiltersComponent } from './components/remission-filters/remission-filters.component';
import { RemissionFilterItemComponent } from './components/remission-filter-item/remission-filter-item.component';
// tslint:disable-next-line: max-line-length
import { RemissionSelectedFilterItemsComponent } from './components/remission-selected-filter-items/remission-selected-filter-items.component';
import { RemissionListComponent } from './components/remission-list/remission-list.component';
import { RemissionListCardComponent } from './components/remission-list-card/remission-list-card.component';
import { RemissionListCardLoadingComponent } from './components/remission-list-card-loading/remission-list-card-loading.component';
import { ScrollingModule } from '@angular/cdk/scrolling';
import { SharedModule } from '../../shared/shared.module';
import { RemissionListStartedComponent } from './pages/remission-list-started/remission-list-started.component';
import { RemissionListCardStartedComponent } from './components/remission-list-card-started/remission-list-card-started.component';
import { RemissionShippingDocumentComponent } from './components/remission-shipping-document/remission-shipping-document.component';
// tslint:disable-next-line: max-line-length
import { RemissionShippingDocumentCardComponent } from './components/remission-shipping-document-card/remission-shipping-document-card.component';
import { RemissionFinishComponent } from './pages/remission-finish/remission-finish.component';
import { RemissionContainerScannerModule } from 'shared/lib/remission-container-scanner';
import { RemissionShippingDocumentScannerModule } from 'shared/lib/remission-shipping-document-scanner';
import { RemissionStartDialogComponent } from './components/remission-start-dialog/remission-start-dialog.component';
// tslint:disable-next-line: max-line-length
import { RemissionAddProductToShippingDocumentDialogComponent } from './components/remission-add-product-to-shipping-document-dialog/remission-add-product-to-shipping-document-dialog.component';
// tslint:disable-next-line: max-line-length
import { RemissionRemoveProductFromShippingDocumentDialogComponent } from './components/remission-remove-product-from-shipping-document-dialog';
// tslint:disable-next-line: max-line-length
import { RemissionAddProductToShippingDocumentPartiallyDialogComponent } from './components/remission-add-product-to-shipping-document-partially-dialog/remission-add-product-to-shipping-document-partially-dialog.component';
import { FormsModule } from '@angular/forms';
// tslint:disable-next-line: max-line-length
import { RemissionAddProductToRemissionListComponent } from './pages/remission-add-product-to-remission-list/remission-add-product-to-remission-list.component';
// tslint:disable-next-line: max-line-length
import { AddProductToRemissionDialogComponent } from './components/add-product-to-remission-dialog/add-product-to-remission-dialog.component';
import { InfiniteScrollModule } from 'ngx-infinite-scroll';
// tslint:disable-next-line: max-line-length
import { RemissionToTopToBottomActionsComponent } from './components/remission-to-top-to-bottom-actions/remission-to-top-to-bottom-actions.component';
// tslint:disable-next-line: max-line-length
import { RemissionGenerateShippingDocumentComponent } from './components/remission-generate-shipping-document/remission-generate-shipping-document.component';
// tslint:disable-next-line: max-line-length
import { RemissionProductScannerModule } from 'shared/public_api';
// tslint:disable-next-line: max-line-length
import { RemissionScanProductInvalidBarcodeComponent } from './components/remission-scan-product-invalid-barcode/remission-scan-product-invalid-barcode.component';
import { BarcodeSearchModule } from '../barcode-search/barcode-search.module';
// tslint:disable-next-line: max-line-length
import { RemissionScanShippingDocumentClosedComponent } from './components/remission-scan-shipping-document-closed/remission-scan-shipping-document-closed.component';
import { RemissionPrinterSelectionComponent } from './components/remission-printer-selection/remission-printer-selection.component';
// tslint:disable-next-line: max-line-length
import { RemissionConfirmDeleteShippingDocumentDialogComponent } from './components/remission-confirm-delete-shipping-document-dialog/remission-confirm-delete-shipping-document-dialog.component';
// tslint:disable-next-line: max-line-length
import { RemissionOpenShippingDocumentsWidgetComponent } from './components/remission-open-shipping-documents-widget/remission-open-shipping-document-widget.component';
import { RemissionsOverviewComponent } from './pages/remissions-overview/remissions-overview.component';
import { RemissionsOverviewCardComponent } from './components/remissions-overview-card/remissions-overview-card.component';
// tslint:disable-next-line: max-line-length
import { RemissionsOverviewCardContentComponent } from './components/remissions-overview-card-content/remissions-overview-card-content.component';
import { RemissionDetailsComponent } from './pages/remission-details/remission-details.component';
import { RemissionDetailsProductComponent } from './components/remission-details-product/remission-details-product.component';
import { RemissionDetailsPrimaryCtaComponent } from './components/remission-details-primary-cta/remission-details-primary-cta.component';
import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';
import { RemissionListCardHeaderComponent } from './components/remission-list-card/card-header';
import { RemissionScanConfirmationDialogComponent } from './components/remission-scan-confirmation-dialog';
import { TabSelectionModule } from '@libs/ui/lib/tab-selection';
import { FilterLoaderModule } from '@libs/ui/lib/filter-loader';
import { RemissionListActionsComponent } from './components/remission-list-actions';
import { RemissionListPageHeaderComponent } from './components/remission-list-page-header';
import { RemissionUeberlaufCapacitiesModule } from './pages/remission-list-create/ueberlauf-capacities';
import { RemissionProductListComponent } from './pages/remission-list-create/product-list';
import { RemissionSuppliersFilterComponent } from './pages/remission-list-create/suppliers-filter';
import { RemissionSourcesFilterComponent } from './pages/remission-list-create/sources-filter';
import { ShippingDocumentCreationComponent } from './pages/remission-list-started/shipping-document-creation';
import { RemissionShippingDocumentContainerComponent } from './pages/remission-list-started/shipping-document-container';
import { RemissionScrollButtonComponent } from './components/remission-scroll-button';
import { ShippingDocumentActionsComponent } from './pages/remission-list-started/shipping-document-container/shipping-document-actions';
import { RemissionListStartActionComponent } from './components/remission-list-actions/remission-list-start';

@NgModule({
  declarations: [
    RemissionListCreateComponent,
    RemissionFiltersComponent,
    RemissionFilterItemComponent,
    RemissionSelectedFilterItemsComponent,
    RemissionListComponent,
    RemissionListActionsComponent,
    RemissionListCardComponent,
    RemissionListCardLoadingComponent,
    RemissionListStartedComponent,
    RemissionListCardHeaderComponent,
    RemissionListCardStartedComponent,
    RemissionShippingDocumentComponent,
    RemissionShippingDocumentCardComponent,
    RemissionFinishComponent,
    RemissionStartDialogComponent,
    RemissionAddProductToShippingDocumentDialogComponent,
    RemissionAddProductToShippingDocumentPartiallyDialogComponent,
    RemissionAddProductToRemissionListComponent,
    RemissionRemoveProductFromShippingDocumentDialogComponent,
    AddProductToRemissionDialogComponent,
    RemissionToTopToBottomActionsComponent,
    RemissionGenerateShippingDocumentComponent,
    RemissionScanConfirmationDialogComponent,
    RemissionScanProductInvalidBarcodeComponent,
    RemissionScanShippingDocumentClosedComponent,
    RemissionPrinterSelectionComponent,
    RemissionConfirmDeleteShippingDocumentDialogComponent,
    RemissionOpenShippingDocumentsWidgetComponent,
    RemissionsOverviewComponent,
    RemissionsOverviewCardComponent,
    RemissionsOverviewCardContentComponent,
    RemissionDetailsComponent,
    RemissionDetailsProductComponent,
    RemissionDetailsPrimaryCtaComponent,
    RemissionListPageHeaderComponent,
    RemissionProductListComponent,
    RemissionSourcesFilterComponent,
    RemissionSuppliersFilterComponent,
    ShippingDocumentCreationComponent,
    RemissionShippingDocumentContainerComponent,
    ShippingDocumentActionsComponent,
    RemissionScrollButtonComponent,
    RemissionListStartActionComponent,
  ],
  imports: [
    BarcodeSearchModule,
    CommonModule,
    FormsModule,
    RemissionClientRoutingModule,
    DoubleChoiceSwitchModule,
    ProgressBarModule,
    PerfectScrollbarModule,
    SmallDoubleChoiceSwitchModule,
    IconModule,
    ButtonModule,
    ScrollingModule,
    SharedModule,
    RemissionContainerScannerModule,
    RemissionShippingDocumentScannerModule,
    RemissionProductScannerModule,
    ModalModule,
    DropdownModule,
    InfiniteScrollModule,
    DeleteDropdownModule,
    SearchInputModule,
    TabSelectionModule,
    FilterLoaderModule,
    RemissionUeberlaufCapacitiesModule,
  ],
})
export class RemissionClientModule {}
