Skip to content
Snippets Groups Projects
shared.module.ts 2.45 KiB
import {CommonModule} from "@angular/common";
import {NgModule} from "@angular/core";
import {FormsModule, ReactiveFormsModule} from "@angular/forms";
import {MaterialModule} from "@app/material.module";
import {AbstractFormComponent} from "@app/shared/components/abstract-form/abstract-form.component";
import {DataTableComponent} from "@app/shared/components/data-table/data-table.component";
import {SearchComponent} from "@app/shared/components/search/search.component";
import {LanguageState} from "@app/shared/language.state";
import {LicenseState} from "@app/shared/license.state";
import {ApiService} from "@app/shared/services/api.service";
import {ClickEventService} from "@app/shared/services/clickevent.service";
import {SharedState} from "@app/shared/shared.state";
import {AbstractCreateView} from "@app/shared/views/abstract-create/abstract-create.view";
import {AbstractDetailView} from "@app/shared/views/abstract-detail/abstract-detail.view";
import {AbstractEditView} from "@app/shared/views/abstract-edit/abstract-edit.view";
import {AbstractListView} from "@app/shared/views/abstract-list/abstract-list.view";
import {FontAwesomeModule} from "@fortawesome/angular-fontawesome";
import {library} from "@fortawesome/fontawesome-svg-core";
import {fas} from "@fortawesome/free-solid-svg-icons";
import {TranslateModule} from "@ngx-translate/core";
import {NgxsModule} from "@ngxs/store";
import {TableModule} from "primeng/table";
import {BreadcrumbComponent} from "./components/breadcrumb/breadcrumb.component";
import {PaginatorComponent} from "./components/paginator/paginator.component";

const views = [
  AbstractListView,
  AbstractCreateView,
  AbstractDetailView,
  AbstractEditView,
];
const dialogs = [];
const components = [
  SearchComponent,
  DataTableComponent,
  PaginatorComponent,
  AbstractFormComponent,
  BreadcrumbComponent,
];
const directives = [];
const modules = [
  CommonModule,
  FormsModule,
  ReactiveFormsModule,
  MaterialModule,
  FontAwesomeModule,
  TableModule,
  TranslateModule,
];

@NgModule({
  declarations: [
    ...views,
    ...dialogs,
    ...components,
    ...directives,
  ],
  imports: [
    ...modules,
    NgxsModule.forFeature([
      SharedState,
      LicenseState,
      LanguageState,
    ]),
  ],
  exports: [
    ...modules,
    ...views,
    ...dialogs,
    ...components,
    ...directives,
  ],
  providers: [
    ClickEventService,
    ApiService,
  ],
})
export class SharedModule {
}

// Fontawesome library
library.add(fas);