import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ClientsRoutingModule } from './clients-routing.module';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { ReactiveFormsModule } from '@angular/forms';
import { MatInputModule } from '@angular/material/input';
import { MatAutocompleteModule } from '@angular/material/autocomplete';
import { MatSelectModule } from '@angular/material/select';
import { MatExpansionModule } from '@angular/material/expansion';
import { MatTableModule } from '@angular/material/table';
import { MatDividerModule } from '@angular/material/divider';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatButtonModule } from '@angular/material/button';
import { MatDialogModule } from '@angular/material/dialog';
import { ClientEditComponent } from './client-edit/client-edit.component';
import { ClientCreateComponent } from './client-create/client-create.component';
import { ClientListComponent } from './client-list/client-list.component';
import { MatRadioModule } from '@angular/material/radio';
import { UiModule } from '@shared/ui/ui.module';
import { CommonTabsModule } from '@shared/common-tabs/common-tabs.module';
import { ObjectsViewModule } from '@objects-view/objects-view.module';
import { ConfigureAutoInvoicingComponent } from './configure-auto-invoicing/configure-auto-invoicing.component';
import {
  ConfigureAutoInvoicingFormComponent
} from './tabs/configure-auto-invoicing-form/configure-auto-invoicing-form.component';
import { ErrorHandlingModule } from '@shared/error-handling/error-handling.module';
import { ClientDetailComponent } from './client-detail/client-detail.component';
import { FleioDataControlsModule } from '@shared/fleio-data-controls/fleio-data-controls.module';
import { EnduserClientUsersTabComponent } from './tabs/enduser-client-users-tab/enduser-client-users-tab.component';
import {
  ChangeUserNotificationsSettingsComponent
} from './dialogs/change-user-notifications-settings/change-user-notifications-settings.component';
import { MatIconModule } from '@angular/material/icon';
import { CommonDialogsModule } from '@shared/common-dialogs/common-dialogs.module';
import {
  EnduserClientDetailOverviewComponent
} from './tabs/enduser-client-detail-overview/enduser-client-detail-overview.component';


@NgModule({
  declarations: [
    ClientListComponent,
    ClientEditComponent,
    ClientCreateComponent,
    ConfigureAutoInvoicingComponent,
    ConfigureAutoInvoicingFormComponent,
    ClientDetailComponent,
    EnduserClientDetailOverviewComponent,
    EnduserClientUsersTabComponent,
    ChangeUserNotificationsSettingsComponent,
  ],
  imports: [
    CommonModule,
    ClientsRoutingModule,
    MatFormFieldModule,
    MatCheckboxModule,
    ReactiveFormsModule,
    MatInputModule,
    MatAutocompleteModule,
    MatSelectModule,
    MatExpansionModule,
    MatTableModule,
    MatDividerModule,
    MatSlideToggleModule,
    UiModule,
    MatButtonModule,
    MatDialogModule,
    MatRadioModule,
    CommonTabsModule,
    ObjectsViewModule,
    ErrorHandlingModule,
    FleioDataControlsModule,
    MatIconModule,
    CommonDialogsModule,
  ]
})
export class ClientsModule {
}
