import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpClientModule } from '@angular/common/http';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MatMomentDateModule } from '@angular/material-moment-adapter';
import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { TranslateModule } from '@ngx-translate/core';

import { FuseModule } from 'src/@fuse/fuse.module';
import { FuseSharedModule } from 'src/@fuse/shared.module';
import {
  FuseProgressBarModule,
  FuseSidebarModule,
  FuseThemeOptionsModule
} from 'src/@fuse/components';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { AppStoreModule } from './app-store.module';
import { AppProviderModule } from './app-provider.module';
import { appFuseConfig } from './app.fuse';

import { LayoutModule } from './layout/layout.module';

import { AuthModule } from 'src/modules/auth/auth.module';
import { DashboardModule } from 'src/modules/dashboard/dashboard.module';
import { UserModule } from 'src/modules/user/user.module';
import { GameModule } from 'src/modules/game/game.module';
import { SitesModule } from 'src/modules/sites/sites.module';

import { from } from 'rxjs';
@NgModule({
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    TranslateModule.forRoot(),

    // Material moment date module
    MatMomentDateModule,

    // Material
    MatButtonModule,
    MatIconModule,

    // Fuse modules
    FuseModule.forRoot(appFuseConfig),
    FuseProgressBarModule,
    FuseSharedModule,
    FuseSidebarModule,
    FuseThemeOptionsModule,

    HttpClientModule,
    // App modules
    AppRoutingModule,
    AppStoreModule,
    AppProviderModule,
    LayoutModule,

    AuthModule.forRoot(),
    DashboardModule.forRoot(),
    UserModule.forRoot(),
    GameModule.forRoot(),
    SitesModule.forRoot()
  ],
  declarations: [AppComponent],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule {}
