import { DragDropModule } from '@angular/cdk/drag-drop';
import { CommonModule } from '@angular/common';
import { HttpClientModule } from '@angular/common/http';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { StoreRouterConnectingModule } from '@ngrx/router-store';
import { StoreModule } from '@ngrx/store';
import { TranslateModule } from '@ngx-translate/core';
import { ScrollToModule } from '@nicky-lenaers/ngx-scroll-to';

import { ItemPageComponent } from './app/item-page/simple/item-page.component';
import { CommunityPageComponent } from './app/community-page/community-page.component';
import { CollectionPageComponent } from './app/collection-page/collection-page.component';
import { EditItemTemplatePageComponent } from './app/collection-page/edit-item-template-page/edit-item-template-page.component';
import { CommunityPageSubCollectionListComponent } from './app/community-page/sections/sub-com-col-section/sub-collection-list/community-page-sub-collection-list.component';
import { CommunityPageSubCommunityListComponent } from './app/community-page/sections/sub-com-col-section/sub-community-list/community-page-sub-community-list.component';
import { TypeBadgeComponent } from './app/shared/object-collection/shared/badges/type-badge/type-badge.component';
import { ObjectListComponent } from './app/shared/object-list/object-list.component';
ObjectListComponent

import { EndUserAgreementComponent } from './app/info/end-user-agreement/end-user-agreement.component';
import { FeedbackComponent } from './app/info/feedback/feedback.component';
import { FeedbackFormComponent } from './app/info/feedback/feedback-form/feedback-form.component';
import { PrivacyComponent } from './app/info/privacy/privacy.component';
import { FaqComponent } from './app/info/faq/faq.component';
import { ImprintComponent } from './app/info/imprint/imprint.component';
import { OverviewComponent } from './app/info/overview/overview.component';
import { NewFeaturesComponent } from './app/info/newfeatures/newfeatures.component';
import { StatisticsComponent } from './app/info/statistics/statistics.component';
import { HomePageComponent } from './app/home-page/home-page.component';

import { RootModule } from '../../app/root.module';

const DECLARATIONS = [
];

@NgModule({
  imports: [
    RootModule,
    CommonModule,
    DragDropModule,
    FormsModule,
    HttpClientModule,
    NgbModule,
    RouterModule,
    ScrollToModule,
    StoreModule,
    StoreRouterConnectingModule,
    TranslateModule,
    FormsModule,
    EndUserAgreementComponent,
    FeedbackComponent,
    FeedbackFormComponent,
    PrivacyComponent,
    HomePageComponent,
    StatisticsComponent,
    TypeBadgeComponent,
    ObjectListComponent,
    CommunityPageComponent,
    CollectionPageComponent,
  ],
  declarations: DECLARATIONS,
})

/**
 * This module serves as an index for all the components in this theme.
 * It should import all other modules, so the compiler knows where to find any components referenced
 * from a component in this theme
 * It is purposefully not exported, it should never be imported anywhere else, its only purpose is
 * to give lazily loaded components a context in which they can be compiled successfully
 */
class LazyThemeModule {
}