import { NgModule, ModuleWithProviders } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ReactiveFormsModule } from '@angular/forms';

import { FlexLayoutModule } from '@angular/flex-layout';

import { MatButtonModule } from '@angular/material/button';
import { MatExpansionModule } from '@angular/material/expansion';
import { MatIconModule } from '@angular/material/icon';

import { ExpansionPanelComponent } from './components/expansion-panel.component';
import { ExpansionPanelItemDirective } from './directives/expansion-panel-item.directive';
import { MatCheckboxModule } from '@angular/material';

const COMPONENTS = [ExpansionPanelComponent];
const DIALOGS = [];
const DIRECTIVES = [ExpansionPanelItemDirective];
const SERVICES = [];

@NgModule({
  imports: [
    CommonModule,
    ReactiveFormsModule,
    FlexLayoutModule,
    MatButtonModule,
    MatExpansionModule,
    MatIconModule,
    MatCheckboxModule
  ],
  exports: [...COMPONENTS, ...DIRECTIVES],
  declarations: [...COMPONENTS, ...DIRECTIVES],
  entryComponents: []
})
export class UCapUiGroupModule {
  public static forRoot(): ModuleWithProviders<UCapUiGroupModule> {
    return {
      ngModule: UCapUiGroupModule,
      providers: [...SERVICES]
    };
  }
}
