import { CommonModule } from '@angular/common';
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatChipsModule } from '@angular/material/chips';
import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatIconModule } from '@angular/material/icon';
import { MatInputModule } from '@angular/material/input';
import { MatListModule } from '@angular/material/list';
import { MatSelectModule } from '@angular/material/select';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatTableModule } from '@angular/material/table';
import { MatTooltipModule } from '@angular/material/tooltip';
import { RouterModule, Routes } from '@angular/router';
import { BCI_SHARED_INTL_PROVIDER, BciComponentModule, BciSharedModule, ColumnSelectorModule } from '@bci-web-core/core';
import { CommandbarDemoComponent } from './commandbar-demo/commandbar-demo.component';
import { SidebarFilterComponent } from './commandbar-demo/sidebar-filter/sidebar-filter.component';
import { OverviewDataTableComponent } from './overview-data-table/overview-data-table.component';
import { TableDemoComponent } from './table-demo/table-demo';
import { MatButtonToggleModule } from '@angular/material/button-toggle';
import { ReactiveFormsModule } from '@angular/forms';
import { ComplexFilterComponent } from './commandbar-demo/complex-filter/complex-filter.component';
import { MatSliderModule } from '@angular/material/slider';
import { MatRadioModule } from '@angular/material/radio';

const routes: Routes = [
  {
    path: '',
    component: OverviewDataTableComponent,
  },
  {
    path: 'commandbar-demo',
    component: CommandbarDemoComponent,
    pathMatch: 'full',
  },
  {
    path: 'table-demo',
    component: TableDemoComponent,
  },
];

@NgModule({
  declarations: [OverviewDataTableComponent, CommandbarDemoComponent, SidebarFilterComponent, TableDemoComponent,
    ComplexFilterComponent,],
  imports: [
    RouterModule.forChild(routes),
    CommonModule,
    BciSharedModule,
    MatInputModule,
    MatRadioModule,
    MatCheckboxModule,
    MatChipsModule,
    MatSliderModule,
    MatButtonModule,
    MatButtonToggleModule,
    MatSlideToggleModule,
    MatDatepickerModule,
    MatIconModule,
    MatSelectModule,
    MatTableModule,
    MatListModule,
    BciComponentModule,
    ColumnSelectorModule,
    ReactiveFormsModule,
    MatTooltipModule
  ],
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
  providers: [BCI_SHARED_INTL_PROVIDER]
})
export class DataTableDemoModule {}
