import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';

// Angular Material
import { MatIconModule } from '@angular/material/icon';
import { MatButtonModule } from '@angular/material/button';
import { MatTooltipModule } from '@angular/material/tooltip';
import { MatMenuModule } from '@angular/material/menu';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { MatDialogModule } from '@angular/material/dialog';

// AG-Grid
import { AgGridModule } from 'ag-grid-angular';

// Layout Components
import { LayoutComponent } from './layout.component';
import { ModernHeaderComponent } from '../../layout/components/modern-header/modern-header.component';
import { HybridNavigationComponent } from '../../layout/components/hybrid-navigation/hybrid-navigation.component';
import { ModernListViewComponent } from '../../layout/components/modern-list-view/modern-list-view.component';

// Import Header Module
import { HeaderModule } from '../header/header.module';

@NgModule({
  declarations: [
    LayoutComponent,
    ModernHeaderComponent,
    HybridNavigationComponent,
    ModernListViewComponent
  ],
  imports: [
    CommonModule,
    FormsModule,
    RouterModule,
    
    // Angular Material
    MatIconModule,
    MatButtonModule,
    MatTooltipModule,
    MatMenuModule,
    MatProgressSpinnerModule,
    MatDialogModule,
    
    // AG-Grid
    AgGridModule,
    
    // Header Module
    HeaderModule
  ],
  exports: [
    LayoutComponent,
    ModernHeaderComponent,
    HybridNavigationComponent,
    ModernListViewComponent
  ]
})
export class LayoutModule { }