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

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

import { MatRippleModule } from '@angular/material/core';
import { MatCheckboxModule } from '@angular/material/checkbox';

import { I18nModule, UCAP_I18N_NAMESPACE } from '@ucap/ng-i18n';
import { UiModule } from '@ucap/ng-ui';
import { GroupUiModule } from '@ucap/ng-ui-group';
import { OrganizationUiModule } from '@ucap/ng-ui-organization';
import { ChatUiModule } from '@ucap/ng-ui-chat';

import { COMPONENTS } from './components';
import { AppLayoutsModule } from '@app/layouts/layouts.module';
import { MatIconModule } from '@angular/material/icon';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import { MatSliderModule } from '@angular/material/slider';
import { MatTooltipModule } from '@angular/material/tooltip';
import { MatTabsModule } from '@angular/material/tabs';
import { MatSelectModule } from '@angular/material/select';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';

@NgModule({
  imports: [
    CommonModule,
    FormsModule,
    ReactiveFormsModule,
    FlexLayoutModule,

    MatCheckboxModule,
    MatRippleModule,
    MatIconModule,
    MatProgressBarModule,
    MatSliderModule,
    MatSlideToggleModule,
    MatTooltipModule,
    MatTabsModule,
    MatSelectModule,

    I18nModule,
    UiModule,
    OrganizationUiModule,
    GroupUiModule,
    ChatUiModule,

    AppLayoutsModule
  ],
  exports: [...COMPONENTS],
  declarations: [...COMPONENTS],
  entryComponents: [],
  providers: [
    {
      provide: UCAP_I18N_NAMESPACE,
      useValue: ['chat', 'common']
    }
  ]
})
export class AppChatModule {}
