import { CommonModule } from '@angular/common';
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatIconModule } from '@angular/material/icon';
import { MatInputModule } from '@angular/material/input';
import { MatRadioModule } from '@angular/material/radio';
import { MatSelectModule } from '@angular/material/select';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatTooltipModule } from '@angular/material/tooltip';
import { RouterModule, Routes } from '@angular/router';
import { BCI_ALERT_DIALOG_INTL_PROVIDER, BCI_SHARED_INTL_PROVIDER, BciComponentModule, BciSharedModule } from '@bci-web-core/core';
import { AlertModalDemoComponent } from './alert-modal-demo/alert-modal-demo.component';
import { CalloutDemoComponent } from './callout-demo/callout-demo.component';
import { CalloutDemoModule } from './callout-demo/callout-demo.module';
import {
  DialogModalDemoComponent
} from './dialog-modal-demo/dialog-modal-demo';
import { LoadingScreenDemoComponent } from './loading-screen-demo/loading-screen-demo';
import { ModalWindowDemoAllFeaturesModalComponent } from './modal-window-demo-all-features-modal/modal-window-demo-all-features-modal.component';
import { ModalWindowDemoFormModalComponent } from './modal-window-demo-form-modal/modal-window-demo-form-modal.component';
import { ModalWindowDemoModalComponent } from './modal-window-demo-modal/modal-window-demo-modal.component';
import { ModalWindowDemoDisableModalComponent } from './modal-window-demo-disable-modal/modal-window-demo-disable-modal.component';
import { ToastDemoComponent } from './toast-demo/toast-demo.component';
import { OverviewModalsPopupsComponent } from './overview-modals-popups/overview-modals-popups.component';
import { TooltipDemoComponent } from './tooltip-demo/tooltip-demo';
import { NotificationBannerDemoComponent } from './notification-banner-demo/notification-banner-demo.component';
import { ReactiveFormsModule } from '@angular/forms';
import { MatTableModule } from '@angular/material/table'  


const routes: Routes = [
  {
    path: '',
    component: OverviewModalsPopupsComponent,
  },
  {
    path: 'alert-modal-demo',
    component: AlertModalDemoComponent,
    pathMatch: 'full',
  },
  {
    path: 'notification-demo',
    component: CalloutDemoComponent,
  },
  {
    path: 'dialog-modal-demo',
    component: DialogModalDemoComponent,
  },
  {
    path: 'loading-screen-demo',
    component: LoadingScreenDemoComponent,
  },
  {
    path: 'toast-demo',
    component: ToastDemoComponent,
  },
  {
    path: 'tooltip-demo',
    component: TooltipDemoComponent,
  },
  {
    path: 'notification-banner-demo',
    component: NotificationBannerDemoComponent,
  },
];

@NgModule({
    declarations: [
        OverviewModalsPopupsComponent,
        ModalWindowDemoAllFeaturesModalComponent,
        DialogModalDemoComponent,
        ModalWindowDemoModalComponent,
        ModalWindowDemoDisableModalComponent,
        ModalWindowDemoFormModalComponent,
        LoadingScreenDemoComponent,
        ToastDemoComponent,
        AlertModalDemoComponent,
        TooltipDemoComponent,
        NotificationBannerDemoComponent,
    ],
    imports: [
        RouterModule.forChild(routes),
        CommonModule,
        BciSharedModule,
        CalloutDemoModule,
        MatInputModule,
        MatSelectModule,
        MatSlideToggleModule,
        BciComponentModule,
        MatIconModule,
        MatRadioModule,
        MatTooltipModule,
        MatCheckboxModule,
        ReactiveFormsModule,
        MatTableModule
    ],
    schemas: [CUSTOM_ELEMENTS_SCHEMA],
    providers: [BCI_SHARED_INTL_PROVIDER, BCI_ALERT_DIALOG_INTL_PROVIDER]
})
export class ModalsPopupsModule {}
