import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { SettingsGeneralComponent } from './settings-general/settings-general.component';
import { GeneralRoutingModule } from './general-routing.module';
import { CurrenciesComponent } from './tabs/currencies/currencies.component';
import { ObjectsViewModule } from '@objects-view/objects-view.module';
import { SignUpFormComponent } from './tabs/sign-up/sign-up-form.component';
import { AuthenticationComponent } from './tabs/authentication/authentication.component';
import { LicenseComponent } from './tabs/license/license.component';
import { TermsOfServiceComponent } from './tabs/terms-of-service/terms-of-service.component';
import { UiModule } from '@shared/ui/ui.module';
import { MatButtonModule } from '@angular/material/button';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { ErrorHandlingModule } from '@shared/error-handling/error-handling.module';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatSelectModule } from '@angular/material/select';
import { MatInputModule } from '@angular/material/input';
import {
  EditCurrencyDialogComponent
} from './tabs/currencies/dialogs/edit-currency-dialog/edit-currency-dialog.component';
import { MatDialogModule } from '@angular/material/dialog';
import { MatAutocompleteModule } from '@angular/material/autocomplete';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { EditorModule } from '@tinymce/tinymce-angular';
import {
  EditTermsOfServiceFormComponent
} from './tabs/edit-terms-of-service-form/edit-terms-of-service-form.component';
import { MatTableModule } from '@angular/material/table';
import { EditTosComponent } from './edit-tos/edit-tos.component';
import { NewTosComponent } from './new-tos/new-tos.component';
import { AdvancedSettingsComponent } from './tabs/advanced-settings/advanced-settings.component';
import { MatIconModule } from '@angular/material/icon';
import { FormattingSettingsComponent } from './tabs/formatting-settings/formatting-settings.component';
import { CommonDialogsModule } from '@shared/common-dialogs/common-dialogs.module';
import { FleioDataControlsModule } from '@shared/fleio-data-controls/fleio-data-controls.module';
import { SingleSignOnComponent } from './tabs/single-sign-on/single-sign-on.component';
import {
  GetSaml2MetadataDialogComponent
} from './tabs/single-sign-on/dialogs/get-saml2-metadata-dialog/get-saml2-metadata-dialog.component';
import {
  Saml2IdentityProviderCreateComponent
} from './saml2-identity-provider-create/saml2-identity-provider-create.component';
import {
  Saml2IdentityProviderEditComponent
} from './saml2-identity-provider-edit/saml2-identity-provider-edit.component';
import {
  EditSaml2IdentityProviderComponent
} from './tabs/edit-saml2-identity-provider/edit-saml2-identity-provider.component';
import {
  RegenerateSaml2CertificateDialogComponent
} from './tabs/single-sign-on/dialogs/regenerate-saml2-certificate-dialog/regenerate-saml2-certificate-dialog.component';
import {
  UploadNewSaml2CertificateDialogComponent
} from './tabs/single-sign-on/dialogs/upload-new-saml2-certificate-dialog/upload-new-saml2-certificate-dialog.component';
import { MatRadioModule } from '@angular/material/radio';
import { ReferralSettingsComponent } from './tabs/referral-settings/referral-settings.component';


@NgModule({
  declarations: [
    SettingsGeneralComponent,
    CurrenciesComponent,
    SignUpFormComponent,
    AuthenticationComponent,
    LicenseComponent,
    TermsOfServiceComponent,
    EditCurrencyDialogComponent,
    EditTermsOfServiceFormComponent,
    EditTosComponent,
    NewTosComponent,
    AdvancedSettingsComponent,
    FormattingSettingsComponent,
    SingleSignOnComponent,
    GetSaml2MetadataDialogComponent,
    Saml2IdentityProviderCreateComponent,
    Saml2IdentityProviderEditComponent,
    EditSaml2IdentityProviderComponent,
    RegenerateSaml2CertificateDialogComponent,
    UploadNewSaml2CertificateDialogComponent,
    ReferralSettingsComponent,
  ],
  imports: [
    CommonModule,
    GeneralRoutingModule,
    ObjectsViewModule,
    UiModule,
    MatButtonModule,
    ReactiveFormsModule,
    ErrorHandlingModule,
    MatCheckboxModule,
    MatFormFieldModule,
    MatSelectModule,
    MatInputModule,
    MatDialogModule,
    MatAutocompleteModule,
    MatSlideToggleModule,
    FormsModule,
    EditorModule,
    MatTableModule,
    MatIconModule,
    CommonDialogsModule,
    FleioDataControlsModule,
    MatRadioModule,
  ]
})
export class GeneralModule {
}
