import { NgModule } from '@angular/core';
import { ErrorHandlingModule } from '../error-handling/error-handling.module';
import { ObjectsViewModule } from '@objects-view/objects-view.module';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatInputModule } from '@angular/material/input';
import { MatRadioModule } from '@angular/material/radio';
import { MatExpansionModule } from '@angular/material/expansion';
import { MatSelectModule } from '@angular/material/select';
import { CommonModule } from '@angular/common';
import {
  UserProfileDetailsPanelComponent
} from './profile/user-profile/user-profile-details-panel/user-profile-details-panel.component';
import { UiModule } from '../ui/ui.module';
import { MatButtonModule } from '@angular/material/button';
import { RouterModule } from '@angular/router';
import {
  UserProfileEditFormComponent
} from './profile/user-profile/user-profile-edit-form/user-profile-edit-form.component';
import { MatIconModule } from '@angular/material/icon';
import {
  NotificationDetailsMessageComponent
} from './notifications/notification-details-message/notification-details-message.component';
import { PluginsModule } from '../plugins/plugins.module';
import { MatTableModule } from '@angular/material/table';
import { MatDatepickerModule } from '@angular/material/datepicker';
import { EditorModule } from '@tinymce/tinymce-angular';
import {
  ServiceDetailsOverviewComponent
} from '@billing-service-tabs/service-details-overview/service-details-overview.component';
import {
  GoogleAuthenticatorConfirmComponent
} from './second-factor-authentication/google-authenticator/google-authenticator-confirm/google-authenticator-confirm.component';
import { MatCardModule } from '@angular/material/card';
import {
  InvoiceDetailsOverviewComponent
} from './billing/invoices/invoice-details-overview/invoice-details-overview.component';
import { MatAutocompleteModule } from '@angular/material/autocomplete';
import { ConfirmOptionsComponent } from './second-factor-authentication/confirm-options/confirm-options.component';
import {
  SfaOptionsOverviewComponent
} from './second-factor-authentication/sfa-options-overview/sfa-options-overview.component';
import {
  GoogleAuthenticatorDetailsComponent
} from './second-factor-authentication/google-authenticator/google-authenticator-details/google-authenticator-details.component';
import { MatDialogModule } from '@angular/material/dialog';
import { DashboardBaseComponent } from './dashboard/dashboard-base/dashboard-base.component';
import { MatMenuModule } from '@angular/material/menu';
import { GridsterModule } from 'angular-gridster2';
import {
  SfaConfirmPasswordFormComponent
} from './second-factor-authentication/sfa-confirm-password-form/sfa-confirm-password-form.component';
import {
  SmsAuthenticatorDetailsComponent
} from './second-factor-authentication/sms-authenticator/sms-authenticator-details/sms-authenticator-details.component';
import {
  SmsAuthenticatorConfirmComponent
} from './second-factor-authentication/sms-authenticator/sms-authenticator-confirm/sms-authenticator-confirm.component';
import {
  ApiUserEditFormComponent
} from '@shared/common-tabs/openstack/api-users/api-user-edit-form/api-user-edit-form.component';
import {
  ApiUserDetailsOverviewComponent
} from '@shared/common-tabs/openstack/api-users/api-user-details-overview/api-user-details-overview.component';
import {
  ApiUserCreateFormComponent
} from '@shared/common-tabs/openstack/api-users/api-user-create-form/api-user-edit-form.component';
import {
  SshKeyDetailsOverviewComponent
} from '@shared/common-tabs/openstack/ssh-keys/ssh-key-details-overview/ssh-key-details-overview.component';
import {
  SshKeyEditFormComponent
} from '@shared/common-tabs/openstack/ssh-keys/ssh-key-edit-form/ssh-key-edit-form.component';
import {
  VolumeDetailsOverviewComponent
} from '@shared/common-tabs/openstack/volumes/volume-details-overview/volume-details-overview.component';
import {
  VolumeEditFormComponent
} from '@shared/common-tabs/openstack/volumes/volume-edit-form/volume-edit-form.component';
import { ClusterDetailsInfoComponent } from './openstack/clusters/cluster-details-info/cluster-details-info.component';
import {
  ClusterDetailsNodesComponent
} from './openstack/clusters/cluster-details-nodes/cluster-details-nodes.component';
import {
  ClusterDetailsMiscellaneousComponent
} from './openstack/clusters/cluster-details-miscellaneous/cluster-details-miscellaneous.component';
import {
  ClusterDetailsLabelsComponent
} from './openstack/clusters/cluster-details-labels/cluster-details-labels.component';
import { ClusterResizeFormComponent } from './openstack/clusters/cluster-resize-form/cluster-resize-form.component';
import { ClusterCreateFormComponent } from './openstack/clusters/cluster-create-form/cluster-create-form.component';
import {
  ImageDetailsOverviewComponent
} from '@shared/common-tabs/openstack/images/image-details-overview/image-details-overview.component';
import { ImageEditFormComponent } from '@shared/common-tabs/openstack/images/image-edit-form/image-edit-form.component';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import {
  ClusterTemplateDetailsInfoComponent
} from './openstack/cluster-templates/cluster-template-details-info/cluster-template-details-info.component';
import {
  ClusterTemplateDetailsNodeSpecComponent
} from './openstack/cluster-templates/cluster-template-details-node-spec/cluster-template-details-node-spec.component';
import {
  ClusterTemplateDetailsNetworkComponent
} from './openstack/cluster-templates/cluster-template-details-network/cluster-template-details-network.component';
import {
  ClusterTemplateDetailsLabelsComponent
} from './openstack/cluster-templates/cluster-template-details-labels/cluster-template-details-labels.component';
import {
  ClusterTemplateEditFormComponent
} from './openstack/cluster-templates/cluster-template-edit-form/cluster-template-edit-form.component';
import {
  SecurityGroupEditFormComponent
} from './openstack/security-groups/security-group-create-form/security-group-edit-form.component';
import {
  SecurityGroupsDetailsOverviewComponent
} from './openstack/security-groups/security-groups-details-overview/security-groups-details-overview.component';
import {
  SecurityGroupAddRuleFormComponent
} from './openstack/security-groups/security-group-add-rule-form/security-group-add-rule-form.component';
import { MatListModule } from '@angular/material/list';
import {
  InstanceResizeFormComponent
} from '@shared/common-tabs/openstack/instances/instance-resize-form/instance-resize-form.component';
import {
  InstanceRescueFormComponent
} from '@shared/common-tabs/openstack/instances/instance-rescue-form/instance-rescue-form.component';
import {
  InstanceRebuildFormComponent
} from '@shared/common-tabs/openstack/instances/instance-rebuild-form/instance-rebuild-form.component';
import {
  InstanceDetailsVolumesComponent
} from '@shared/common-tabs/openstack/instances/instance-details-volumes/instance-details-volumes.component';
import {
  InstanceDetailsSystemLogComponent
} from '@shared/common-tabs/openstack/instances/instance-details-system-log/instance-details-system-log.component';
import {
  InstanceDetailsSnapshotsComponent
} from '@shared/common-tabs/openstack/instances/instance-details-snapshots/instance-details-snapshots.component';
import {
  InstanceDetailsSecurityGroupsComponent
} from '@shared/common-tabs/openstack/instances/instance-details-security-groups/instance-details-security-groups.component';
import {
  InstanceDetailsNetworkingComponent
} from '@shared/common-tabs/openstack/instances/instance-details-networking/instance-details-networking.component';
import {
  InstanceDetailsMetricsComponent
} from '@shared/common-tabs/openstack/instances/instance-details-metrics/instance-details-metrics.component';
import {
  InstanceDetailsInfoComponent
} from '@shared/common-tabs/openstack/instances/instance-details-info/instance-details-info.component';
import {
  InstanceDetailsHistoryLogComponent
} from '@shared/common-tabs/openstack/instances/instance-details-history-log/instance-details-history-log.component';
import {
  InstanceCreateFormComponent
} from '@shared/common-tabs/openstack/instances/instance-create-form/instance-create-form.component';
import {
  BootSourceSelectComponent
} from '@shared/common-tabs/openstack/instances/instance-create-form/boot-source-select/boot-source-select.component';
import { MatTabsModule } from '@angular/material/tabs';
import { MatDividerModule } from '@angular/material/divider';
import {
  InstanceDetailsBackupsComponent
} from './openstack/instances/instance-details-backups/instance-details-backups.component';
import { ClusterUpgradeFormComponent } from './openstack/clusters/cluster-upgrade-form/cluster-upgrade-form.component';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import {
  OperationDetailsOverviewComponent
} from '@shared/common-tabs/utilities/operations/operation-details-overview/operation-details-overview.component';
import { ServiceChangeFormComponent } from '@billing-service-tabs/service-change-form/service-change-form.component';
import { CommonComponentsModule } from '@shared/common-components/common-components.module';
import {
  RouterEditFormComponent
} from '@shared/common-tabs/openstack/routers/router-edit-form/router-edit-form.component';
import {
  RouterDetailsOverviewComponent
} from '@shared/common-tabs/openstack/routers/router-details-overview/router-details-overview.component';
import {
  RouterAddInterfaceFormComponent
} from '@shared/common-tabs/openstack/routers/router-add-interface-form/router-add-interface-form.component';
import {
  NetworkDetailsOverviewComponent
} from '@shared/common-tabs/openstack/networks/network-details-overview/network-details-overview.component';
import {
  NetworkEditSubnetFormComponent
} from '@shared/common-tabs/openstack/networks/network-edit-subnet-form/network-edit-subnet-form.component';
import {
  NetworkAutoCreateFormComponent
} from '@shared/common-tabs/openstack/networks/network-auto-create-form/network-auto-create-form.component';
import {
  FloatingIpDetailsOverviewComponent
} from '@shared/common-tabs/openstack/floating-ips/floating-ip-details-overview/floating-ip-details-overview.component';
import {
  FloatingIpEditFormComponent
} from '@shared/common-tabs/openstack/floating-ips/floating-ip-edit-form/floating-ip-edit-form.component';
import {
  ZoneDetailsOverviewComponent
} from '@shared/common-tabs/openstack/zones/zone-details-overview/zone-details-overview.component';
import {
  PortCreateFormComponent
} from '@shared/common-tabs/openstack/ports/port-create-form/port-create-form.component';
import {
  PortDetailsOverviewComponent
} from '@shared/common-tabs/openstack/ports/port-details-overview/port-details-overview.component';
import { PortEditFormComponent } from '@shared/common-tabs/openstack/ports/port-edit-form/port-edit-form.component';
import {
  ImageEditPropertiesFormComponent
} from '@openstack-images-tabs/image-edit-properties-form/image-edit-properties-form.component';
import {
  VolumeSnapshotDetailsOverviewComponent
} from '@shared/common-tabs/openstack/volume-snapshots/volume-snapshot-details-overview/volume-snapshot-details-overview.component';
import {
  VolumeBackupDetailsOverviewComponent
} from './openstack/volume-backups/volume-backup-details-overview/volume-backup-details-overview.component';
import {
  VolumeDetailsBackupsComponent
} from '@shared/common-tabs/openstack/volumes/volume-details-backups/volume-details-backups.component';
import {
  VolumeDetailsSnapshotsComponent
} from '@shared/common-tabs/openstack/volumes/volume-details-snapshots/volume-details-snapshots.component';
import {
  VolumeUploadToImageFormComponent
} from './openstack/volumes/volume-upload-to-image-form/volume-upload-to-image-form.component';
import {
  RoleDetailsOverviewComponent
} from './clients-users/roles/role-details-overview/role-details-overview.component';
import {
  RoleDetailsPermissionsComponent
} from './clients-users/roles/role-details-permissions/role-details-permissions.component';
import { RoleEditFormComponent } from './clients-users/roles/role-edit-form/role-edit-form.component';
import {
  EmailMessageLogDetailsOverviewComponent
} from './utilities/email-message-log/email-message-log-details-overview/email-message-log-details-overview.component';
import {
  ClientDetailsEmailMessageLogComponent
} from './clients-users/clients/client-details-email-message-log/client-details-email-message-log.component';
import {
  InstanceDetailsTrafficComponent
} from './openstack/instances/instance-details-traffic/instance-details-traffic.component';
import { MatChipsModule } from '@angular/material/chips';
import { CommonDialogsModule } from '@shared/common-dialogs/common-dialogs.module';
import {
  DbaasInstanceCreateFormComponent
} from '@shared/common-tabs/openstack/dbaas/dbaas-instance-create-form/dbaas-instance-create-form.component';
import {
  DbaasInstanceOverviewTabComponent
} from '@shared/common-tabs/openstack/dbaas/dbaas-instance-overview-tab/dbaas-instance-overview-tab.component';
import {
  DbaasInstanceUsersTabComponent
} from '@shared/common-tabs/openstack/dbaas/dbaas-instance-users-tab/dbaas-instance-users-tab.component';
import {
  DbaasInstanceDatabasesTabComponent
} from '@shared/common-tabs/openstack/dbaas/dbaas-instance-databases-tab/dbaas-instance-databases-tab.component';
import {
  DbaasInstanceResizeFlavorFormComponent
} from './openstack/dbaas/dbaas-instance-resize-flavor-form/dbaas-instance-resize-flavor-form.component';
import {
  DbaasInstanceRootUserTabComponent
} from './openstack/dbaas/dbaas-instance-root-user-tab/dbaas-instance-root-user-tab.component';
import { SelectDomainComponent } from '@shared/common-tabs/billing/orders/select-domain/select-domain.component';
import {
  CartDetailsOverviewComponent
} from '@shared/common-tabs/billing/orders/cart-details-overview/cart-details-overview.component';
import { DomainOptionsComponent } from './billing/orders/domain-options/domain-options.component';
import { CartItemComponent } from '@shared/common-tabs/billing/orders/cart-item/cart-item.component';
import { FleioDataControlsModule } from '@shared/fleio-data-controls/fleio-data-controls.module';
import {
  ClientEditFormComponent
} from '@shared/common-tabs/clients-users/clients/client-edit-form/client-edit-form.component';
import { DbaasInstanceBackupsTabComponent } from './openstack/dbaas/dbaas-instance-backups-tab/dbaas-instance-backups-tab.component';
import { DbaasInstanceLogsComponent } from './openstack/dbaas/dbaas-instance-logs/dbaas-instance-logs.component';
import {
  RouterStaticRoutesFormComponent
} from '@shared/common-tabs/openstack/routers/router-static-routes-form/router-static-routes-form.component';
import {
  DbaasInstanceBackupSchedulesComponent
} from '@shared/common-tabs/openstack/dbaas/dbaas-instance-backup-schedules/dbaas-instance-backup-schedules.component';


@NgModule({
  declarations: [
    UserProfileDetailsPanelComponent,
    UserProfileEditFormComponent,
    NotificationDetailsMessageComponent,
    InvoiceDetailsOverviewComponent,
    ServiceDetailsOverviewComponent,
    GoogleAuthenticatorConfirmComponent,
    ConfirmOptionsComponent,
    SfaOptionsOverviewComponent,
    GoogleAuthenticatorDetailsComponent,
    SfaConfirmPasswordFormComponent,
    SmsAuthenticatorDetailsComponent,
    SmsAuthenticatorConfirmComponent,
    DashboardBaseComponent,
    ApiUserEditFormComponent,
    ApiUserDetailsOverviewComponent,
    ApiUserCreateFormComponent,
    SshKeyDetailsOverviewComponent,
    SshKeyEditFormComponent,
    VolumeDetailsOverviewComponent,
    VolumeEditFormComponent,
    ClusterDetailsInfoComponent,
    ClusterDetailsNodesComponent,
    ClusterDetailsMiscellaneousComponent,
    ClusterDetailsLabelsComponent,
    ClusterResizeFormComponent,
    ClusterCreateFormComponent,
    ImageDetailsOverviewComponent,
    ImageEditFormComponent,
    ClusterTemplateDetailsInfoComponent,
    ClusterTemplateDetailsNodeSpecComponent,
    ClusterTemplateDetailsNetworkComponent,
    ClusterTemplateDetailsLabelsComponent,
    ClusterTemplateEditFormComponent,
    SecurityGroupEditFormComponent,
    SecurityGroupsDetailsOverviewComponent,
    SecurityGroupAddRuleFormComponent,
    InstanceResizeFormComponent,
    InstanceRescueFormComponent,
    InstanceRebuildFormComponent,
    InstanceDetailsVolumesComponent,
    InstanceDetailsSystemLogComponent,
    InstanceDetailsSnapshotsComponent,
    InstanceDetailsSecurityGroupsComponent,
    InstanceDetailsNetworkingComponent,
    InstanceDetailsMetricsComponent,
    InstanceDetailsInfoComponent,
    InstanceDetailsHistoryLogComponent,
    InstanceCreateFormComponent,
    BootSourceSelectComponent,
    InstanceDetailsBackupsComponent,
    ClusterUpgradeFormComponent,
    OperationDetailsOverviewComponent,
    ServiceChangeFormComponent,
    RouterEditFormComponent,
    RouterDetailsOverviewComponent,
    RouterAddInterfaceFormComponent,
    NetworkDetailsOverviewComponent,
    NetworkEditSubnetFormComponent,
    NetworkAutoCreateFormComponent,
    ZoneDetailsOverviewComponent,
    PortCreateFormComponent,
    PortDetailsOverviewComponent,
    PortEditFormComponent,
    VolumeSnapshotDetailsOverviewComponent,
    ImageEditPropertiesFormComponent,
    FloatingIpEditFormComponent,
    FloatingIpDetailsOverviewComponent,
    VolumeBackupDetailsOverviewComponent,
    VolumeDetailsBackupsComponent,
    VolumeDetailsSnapshotsComponent,
    VolumeUploadToImageFormComponent,
    RoleDetailsOverviewComponent,
    RoleDetailsPermissionsComponent,
    RoleEditFormComponent,
    EmailMessageLogDetailsOverviewComponent,
    ClientDetailsEmailMessageLogComponent,
    InstanceDetailsTrafficComponent,
    DbaasInstanceCreateFormComponent,
    DbaasInstanceOverviewTabComponent,
    DbaasInstanceUsersTabComponent,
    DbaasInstanceDatabasesTabComponent,
    DbaasInstanceResizeFlavorFormComponent,
    DbaasInstanceRootUserTabComponent,
    SelectDomainComponent,
    CartDetailsOverviewComponent,
    DomainOptionsComponent,
    CartItemComponent,
    ClientEditFormComponent,
    DbaasInstanceBackupsTabComponent,
    DbaasInstanceLogsComponent,
    RouterStaticRoutesFormComponent,
    DbaasInstanceBackupSchedulesComponent,
  ],
  exports: [
    UserProfileDetailsPanelComponent,
    UserProfileEditFormComponent,
    NotificationDetailsMessageComponent,
    ServiceDetailsOverviewComponent,
    GoogleAuthenticatorConfirmComponent,
    InvoiceDetailsOverviewComponent,
    ConfirmOptionsComponent,
    SfaOptionsOverviewComponent,
    SfaConfirmPasswordFormComponent,
    SmsAuthenticatorDetailsComponent,
    DashboardBaseComponent,
    ApiUserEditFormComponent,
    ApiUserDetailsOverviewComponent,
    ApiUserCreateFormComponent,
    SshKeyDetailsOverviewComponent,
    SshKeyEditFormComponent,
    VolumeDetailsOverviewComponent,
    VolumeEditFormComponent,
    ClusterDetailsInfoComponent,
    ClusterDetailsNodesComponent,
    ClusterDetailsMiscellaneousComponent,
    ClusterDetailsLabelsComponent,
    ClusterResizeFormComponent,
    ClusterCreateFormComponent,
    ImageDetailsOverviewComponent,
    ImageEditFormComponent,
    ClusterTemplateDetailsInfoComponent,
    ClusterTemplateDetailsNodeSpecComponent,
    ClusterTemplateDetailsNetworkComponent,
    ClusterTemplateDetailsLabelsComponent,
    ClusterTemplateEditFormComponent,
    SecurityGroupEditFormComponent,
    SecurityGroupsDetailsOverviewComponent,
    SecurityGroupAddRuleFormComponent,
    InstanceResizeFormComponent,
    InstanceRescueFormComponent,
    InstanceRebuildFormComponent,
    InstanceDetailsVolumesComponent,
    InstanceDetailsSystemLogComponent,
    InstanceDetailsSnapshotsComponent,
    InstanceDetailsSecurityGroupsComponent,
    InstanceDetailsNetworkingComponent,
    InstanceDetailsMetricsComponent,
    InstanceDetailsInfoComponent,
    InstanceDetailsHistoryLogComponent,
    InstanceCreateFormComponent,
    BootSourceSelectComponent,
    InstanceDetailsBackupsComponent,
    ClusterUpgradeFormComponent,
    OperationDetailsOverviewComponent,
    ServiceChangeFormComponent,
    RouterEditFormComponent,
    RouterDetailsOverviewComponent,
    RouterAddInterfaceFormComponent,
    NetworkDetailsOverviewComponent,
    NetworkEditSubnetFormComponent,
    ZoneDetailsOverviewComponent,
    PortCreateFormComponent,
    PortDetailsOverviewComponent,
    PortEditFormComponent,
    VolumeSnapshotDetailsOverviewComponent,
    ImageEditPropertiesFormComponent,
    NetworkAutoCreateFormComponent,
    FloatingIpEditFormComponent,
    FloatingIpDetailsOverviewComponent,
    VolumeBackupDetailsOverviewComponent,
    VolumeDetailsBackupsComponent,
    VolumeDetailsSnapshotsComponent,
    VolumeUploadToImageFormComponent,
    RoleDetailsOverviewComponent,
    RoleDetailsPermissionsComponent,
    RoleEditFormComponent,
    ClientDetailsEmailMessageLogComponent,
    DbaasInstanceCreateFormComponent,
    DbaasInstanceOverviewTabComponent,
    DbaasInstanceUsersTabComponent,
    DbaasInstanceDatabasesTabComponent,
    SelectDomainComponent,
    CartDetailsOverviewComponent,
    DomainOptionsComponent,
    CartItemComponent,
    ClientEditFormComponent,
    DbaasInstanceBackupsTabComponent,
    RouterStaticRoutesFormComponent,
    DbaasInstanceBackupSchedulesComponent,
  ],
  imports: [
    CommonModule,
    ErrorHandlingModule,
    ReactiveFormsModule,
    ErrorHandlingModule,
    ObjectsViewModule,
    MatFormFieldModule,
    MatCheckboxModule,
    MatInputModule,
    MatSelectModule,
    MatRadioModule,
    MatExpansionModule,
    UiModule,
    MatButtonModule,
    RouterModule,
    MatIconModule,
    PluginsModule,
    MatTableModule,
    MatDatepickerModule,
    FormsModule,
    EditorModule,
    FleioDataControlsModule,
    MatAutocompleteModule,
    MatDialogModule,
    MatCardModule,
    MatMenuModule,
    GridsterModule,
    MatProgressBarModule,
    MatTabsModule,
    MatDividerModule,
    MatListModule,
    MatSlideToggleModule,
    CommonComponentsModule,
    MatChipsModule,
    CommonDialogsModule,
  ]
})
export class CommonTabsModule {
}
