import { NgModule } from '@angular/core';
import { BackArrowComponent } from './components/back-arrow/back-arrow.component';
import { ModalDialogComponent } from './components/modal-dialog';
import { BookPricePipe } from '../pipes/book-price.pipe';
import { BookImagePipe } from '../pipes/book-image.pipe';
import { IconModule, ButtonModule } from '@libs/ui';
import { PhonePipe } from '../modules/customer/pipes/phone.pipe';
import { BookThumbnailPipe } from '../pipes/book-thumbnail.pipe';
import { VarDirective } from './directives/var.directive';
import { TooltipDirective } from './directives/tooltip.directive';
import { TrimPipe } from '../pipes/trim.pipe';
import { CommonModule } from '@angular/common';
import { SafeHtmlPipe } from '../pipes/safe-html.pipe';
import { PackageNumberParserPipe } from '../pipes/package-number-parser.pipe';
import { AddClassDirective } from './directives/add-class.directive';
import { ShippingDocumentNumberFormatterPipe } from '../pipes/shipping-document-number-formatter.pipe';
import { RemissionSourcesDisplayPipe } from '../pipes/remission-sources-display.pipe';
import {
  ClickOutsideDirective,
  HeaderClickedDirective,
  CenterBottomDuringTransitionDirective,
  ScrollPositionDirective,
  InputResizeDirective,
} from './directives';

const components = [BackArrowComponent, ModalDialogComponent];
const directives = [
  VarDirective,
  TooltipDirective,
  AddClassDirective,
  ClickOutsideDirective,
  HeaderClickedDirective,
  InputResizeDirective,
  CenterBottomDuringTransitionDirective,
  ScrollPositionDirective,
];
const pipes = [
  SafeHtmlPipe,
  BookPricePipe,
  BookImagePipe,
  PhonePipe,
  BookThumbnailPipe,
  TrimPipe,
  PackageNumberParserPipe,
  ShippingDocumentNumberFormatterPipe,
  RemissionSourcesDisplayPipe,
];
@NgModule({
  imports: [CommonModule, IconModule, ButtonModule],
  exports: [...components, ...directives, ...pipes],
  declarations: [...components, ...directives, ...pipes],
  providers: [],
})
export class SharedModule {}
