import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { DashboardComponent } from './dashboard/dashboard.component';
import { DashboardRoutingModule } from './dashboard-routing.module';
import { GridsterModule } from 'angular-gridster2';
import { MatButtonModule } from '@angular/material/button';
import { ObjectsViewModule } from '@objects-view/objects-view.module';
import { MatTableModule } from '@angular/material/table';
import { MatIconModule } from '@angular/material/icon';
import { CommonTabsModule } from '@shared/common-tabs/common-tabs.module';
import { MatCardModule } from '@angular/material/card';
import { ConfirmEmailComponent } from './confirm-email/confirm-email.component';
import { ConfirmEmailFormComponent } from './tabs/confirm-email-form/confirm-email-form.component';
import { UiModule } from '@shared/ui/ui.module';
import { ErrorHandlingModule } from '@shared/error-handling/error-handling.module';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { ReactiveFormsModule } from '@angular/forms';
import { PluginsModule } from '@shared/plugins/plugins.module';
import { AgreeWithTermsOfServiceComponent } from './agree-with-terms-of-service/agree-with-terms-of-service.component';
import { TermsOfServiceAgreeFormComponent } from './tabs/terms-of-service-agree-form/terms-of-service-agree-form.component';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { TermsOfServicePreviewComponent } from './tabs/terms-of-service-preview/terms-of-service-preview.component';
import { RecurringPaymentOptionsComponent } from './recurring-payment-options/recurring-payment-options.component';
import { RecurringPaymentOptionsDetailsComponent } from './tabs/recurring-payment-options-details/recurring-payment-options-details.component';
import { CardEditDialogComponent } from './dialogs/card-edit-dialog/card-edit-dialog.component';
import { MatDialogModule } from '@angular/material/dialog';
import { MatDatepickerModule } from '@angular/material/datepicker';
import { CommonDialogsModule } from '@shared/common-dialogs/common-dialogs.module';

@NgModule({
    declarations: [
        DashboardComponent,
        ConfirmEmailComponent,
        ConfirmEmailFormComponent,
        RecurringPaymentOptionsComponent,
        RecurringPaymentOptionsDetailsComponent,
        AgreeWithTermsOfServiceComponent,
        TermsOfServiceAgreeFormComponent,
        TermsOfServicePreviewComponent,
        CardEditDialogComponent,
    ],
    imports: [
        CommonModule,
        DashboardRoutingModule,
        GridsterModule,
        MatButtonModule,
        MatIconModule,
        ObjectsViewModule,
        MatTableModule,
        CommonTabsModule,
        MatCardModule,
        UiModule,
        ErrorHandlingModule,
        MatFormFieldModule,
        MatInputModule,
        ReactiveFormsModule,
        MatCardModule,
        PluginsModule,
        MatCheckboxModule,
        MatDialogModule,
        MatDatepickerModule,
        CommonDialogsModule
    ]
})
export class DashboardModule { }
