import { NgModule } from '@angular/core';

import { MatButtonModule } from '@angular/material/button';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
import { MatSelectModule } from '@angular/material/select';
import { MatTabsModule } from '@angular/material/tabs';

import { GridsterModule } from 'angular-gridster2';

import { ChartsModule } from 'ng2-charts';
import { NgxChartsModule } from '@swimlane/ngx-charts';

import { FuseSharedModule } from 'src/@fuse/shared.module';
import { FuseWidgetModule } from 'src/@fuse/components/widget/widget.module';

import { ChartModule as APMChartModule } from 'src/modules/chart/chart.module';

import { DashboardRoutingModule } from './dashboard-routing.module';

import { COMPONENTS } from './component';
import { DIRECTIVES } from './directive';
import { SERVICES } from './service';

@NgModule({
  imports: [
    MatButtonModule,
    MatFormFieldModule,
    MatIconModule,
    MatMenuModule,
    MatSelectModule,
    MatTabsModule,

    GridsterModule,
    ChartsModule,
    NgxChartsModule,

    FuseSharedModule,
    FuseWidgetModule,

    APMChartModule,

    DashboardRoutingModule
  ],
  declarations: [...COMPONENTS, ...DIRECTIVES],
  providers: [...SERVICES]
})
export class DashboardModule {}
