import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FancyTableComponent } from './fancy-table.component';
import { FormsModule } from '@angular/forms';
import {
  NbButtonModule,
  NbDatepickerModule,
  NbCalendarRangeModule,
  NbCardModule,
  NbCheckboxModule,
  NbDialogModule,
  NbIconModule,
  NbInputModule,
  NbSelectModule,
  NbTooltipModule,
  NbAlertModule,
  NbSpinnerModule,
  NbActionsModule,
} from '@nebular/theme';
import { PagerModule } from '../pager/pager.module';
import { CurrencyInputModule } from '../currency-input/currency-input.module';
import { DropDownListModule } from '../drop-down-list/drop-down-list.module';
import { DateInputModule } from '../date-input/date-input.module';
import { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';
import { DragDropModule } from '@angular/cdk/drag-drop';
import { InfiniteScrollModule } from 'ngx-infinite-scroll';
import { TablePickerComponent } from './table-picker/table-picker.component';
import { CustomColumnsDlgComponent } from './custom-columns-dlg/custom-columns-dlg.component';
import { FileDragDropModule } from '../../shared/file-drag-drop/file-drag-drop.module';
import { InputsModule } from '@progress/kendo-angular-inputs';
import { FancyGroupMenuComponent } from './fancy-group-menu/fancy-group-menu.component';
import { EmailInputModule } from '../email-input/email-input.module';
import { PhoneInputModule } from '../phone-input/phone-input.module';
import { RightClickMenuModule } from '../../directives/right-click-menu/right-click-menu.module';
import { InitFocusModule } from '../../directives/init-focus/init-focus.module';

const components = [
  FancyTableComponent,
  ConfirmDialogComponent,
]

@NgModule({
  declarations: [...components, TablePickerComponent, CustomColumnsDlgComponent, FancyGroupMenuComponent],
  imports: [
    CommonModule,
    FormsModule,
    NbButtonModule,
    NbCalendarRangeModule,
    NbCardModule,
    NbCheckboxModule,
    NbDatepickerModule,
    NbDialogModule,
    NbIconModule,
    NbInputModule,
    NbSelectModule,
    NbTooltipModule,
    NbAlertModule,
    NbSpinnerModule,
    NbActionsModule,
    InfiniteScrollModule,
    CurrencyInputModule,
    DateInputModule,
    DragDropModule,
    DropDownListModule,
    PagerModule,
    RightClickMenuModule,
    InitFocusModule,
    FileDragDropModule,
    PhoneInputModule,
    EmailInputModule,
    InputsModule
  ],
  exports: [...components]
})
export class FancyTableModule { }
