import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
DiagramModule
// Rutas
import { RouterModule } from '@angular/router';
import { NgChartsModule } from 'ng2-charts';

// Nuevas importaciones
import { HttpClientModule } from '@angular/common/http';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';

// Angular Material
import { MatSliderModule } from '@angular/material/slider';
import { MatToolbarModule } from '@angular/material/toolbar';
import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { MatSidenavModule } from '@angular/material/sidenav';
import { MatCardModule } from '@angular/material/card';
import { MatTableModule } from '@angular/material/table';
import { MatPaginatorModule } from '@angular/material/paginator';
import { MatTooltipModule } from '@angular/material/tooltip';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatGridListModule } from '@angular/material/grid-list';
import { MatSelectModule } from '@angular/material/select';
import { MatInputModule } from '@angular/material/input';
import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatNativeDateModule, MAT_DATE_FORMATS } from '@angular/material/core';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import { MatDialogModule } from '@angular/material/dialog';
import { MatSnackBarModule } from '@angular/material/snack-bar';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatRadioModule } from '@angular/material/radio';
import {MatButtonToggleModule} from '@angular/material/button-toggle';

import { MatTreeModule } from '@angular/material/tree';
import { MatListModule } from '@angular/material/list';
import { MatExpansionModule } from '@angular/material/expansion';
import { MatMenuModule } from '@angular/material/menu';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { DragDropModule} from '@angular/cdk/drag-drop';

import { MatDividerModule } from '@angular/material/divider';
import { LayoutModule } from '@angular/cdk/layout';
import { DiagramModule } from '@syncfusion/ej2-angular-diagrams';
import { MultiSelectModule } from '@syncfusion/ej2-angular-dropdowns';
import { CheckBoxSelectionService } from '@syncfusion/ej2-angular-dropdowns';

// Diagramas 
import {
  DiagramComponent,
  NodeModel,
  ConnectorModel,
  PaletteModel,
  BasicShapeModel,
  MarginModel,
  NodeConstraints,
  AnnotationConstraints,
  ConnectorConstraints,
  PointModel,
  FlowShapeModel,
  StraightSegmentModel,
  IDragEnterEventArgs,
  INode,
  IConnectionChangeEventArgs,
  ZoomOptions,
  IClickEventArgs,
  ICollectionChangeEventArgs
} from '@syncfusion/ej2-angular-diagrams';
import { ExpandMode } from '@syncfusion/ej2-navigations';
import { BreakpointObserver } from '@angular/cdk/layout';

@NgModule({
  declarations: [],
  imports: [CommonModule],
  exports: [
    RouterModule,
    FormsModule,
    ReactiveFormsModule,
    HttpClientModule,
    NgChartsModule,
    MatSliderModule,
    MatToolbarModule,
    MatButtonModule,
    MatIconModule,
    MatSidenavModule,
    MatCardModule,
    MatTableModule,
    MatPaginatorModule,
    MatTooltipModule,
    MatFormFieldModule,
    MatGridListModule,
    MatSelectModule,
    MatInputModule,
    MatButtonToggleModule,
    MatDatepickerModule,
    MatNativeDateModule,
    MatProgressBarModule,
    MatDialogModule,
    MatSnackBarModule,
    MatCheckboxModule,
    MatTreeModule,
    MatListModule,
    MatExpansionModule,
    MatDividerModule,
    LayoutModule,
    MatMenuModule,
    MatProgressSpinnerModule,
    MatRadioModule,
    DragDropModule,
    
    // Diagramas
  ],
})
export class MaterialModule {}
