import { NgModule } from '@angular/core';
import { CommonModule } from "@angular/common";
import { FormsModule, ReactiveFormsModule } from "@angular/forms";

import { Ng2BootstrapModule } from 'ng2-bootstrap';

import {
  AccordionGroupCmp,
  AccordionCmp,
  AlertComponent,
  Bs4BreakpointsComponent,
  Bs4Table,
  Bs4TableCell,
  Bs4TableDetails,
  Bs4TableDetailsBackBtCmp,
  Bs4TableRow,
  ButtonSaveComponent,
  EditTableComponent,
  EnAvatarComponent,
  EnInputComponent,
  EnSelectComponent,
  LoadingInfoComponent,
  PreLoaderComponent,
  TagInputComponent,
} from './components';
import { Bs4BreakPoint } from './components/bs4-breakpoint/bs4-breakpoints.enum';
import { Bs4BreakpointService } from './components/bs4-breakpoint/bs4-breakpoints.service';
import { ButtonDropdownComponent } from './components/dropdown/button-dropdown.component';
import { Popover } from './components/popover/popover.directive';
import { PopoverContent } from './components/popover/popover-content.component';
import { EnCheckboxComponent } from './components/checkbox/en-checkbox.component';
import { TagInputItemComponent } from './components/tags/tag/tag.component';
import { OffClickDirective } from './components/directives/off-click';


// export * from './components';
const declarations: any[] = [
  AccordionCmp,
  AccordionGroupCmp,
  AlertComponent,
  Bs4BreakpointsComponent,
  Bs4Table,
  Bs4TableCell,
  Bs4TableDetails,
  Bs4TableDetailsBackBtCmp,
  Bs4TableRow,
  ButtonDropdownComponent,
  ButtonSaveComponent,
  EditTableComponent,
  EnAvatarComponent,
  EnCheckboxComponent,
  EnInputComponent,
  EnSelectComponent,
  LoadingInfoComponent,
  Popover,
  PopoverContent,
  PreLoaderComponent,
  TagInputComponent,
  TagInputItemComponent,
  OffClickDirective,

];

export const EN_COMPONENTS: any[] = [
  AccordionCmp,
  AccordionGroupCmp,
  AlertComponent,
  Bs4BreakpointsComponent,
  Bs4Table,
  Bs4TableCell,
  Bs4TableDetails,
  Bs4TableDetailsBackBtCmp,
  Bs4TableRow,
  ButtonDropdownComponent,
  ButtonSaveComponent,
  EditTableComponent,
  EnAvatarComponent,
  EnCheckboxComponent,
  EnInputComponent,
  EnSelectComponent,
  LoadingInfoComponent,
  Popover,
  PopoverContent,
  PreLoaderComponent,
  TagInputComponent,
];

export * from './components/button-loader/button-state';
export * from './components/loading-info/loading-info-state';
export * from './components/bs4-table/model';
export * from './components';

@NgModule({
  declarations: declarations,
  entryComponents: [PopoverContent],
  imports:      [CommonModule, FormsModule, ReactiveFormsModule, Ng2BootstrapModule],
  exports:      [...EN_COMPONENTS],
})
export class EnCRMComponentsModule {

}
