import { MatTooltipModule } from '@angular/material/tooltip';
import { MatCardModule } from '@angular/material/card';
import { NgModule, ModuleWithProviders } from '@angular/core';
import { CommonModule } from '@angular/common';

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

import { MatRippleModule, MatCheckboxModule } from '@angular/material';
import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';

import { UCapUiModule } from '@ucap-webmessenger/ui';

import { ListItemComponent } from './components/list-item.component';
import { UserListItemComponent } from './components/user-list-item.component';
import { ProfileComponent } from './components/profile.component';
import { MyProfileWidgetComponent } from './components/my-profile-widget.component';

const COMPONENTS = [
  ListItemComponent,
  UserListItemComponent,
  ProfileComponent,
  MyProfileWidgetComponent
];

const SERVICES = [];

@NgModule({
  imports: [
    CommonModule,
    FlexLayoutModule,
    MatButtonModule,
    MatIconModule,
    MatRippleModule,
    MatCheckboxModule,
    MatCardModule,
    MatTooltipModule,

    UCapUiModule
  ],
  exports: [...COMPONENTS],
  declarations: [...COMPONENTS]
})
export class UCapUiProfileModule {
  public static forRoot(): ModuleWithProviders<UCapUiProfileModule> {
    return {
      ngModule: UCapUiProfileModule,
      providers: [...SERVICES]
    };
  }
}
