import {NgModule} from '@angular/core'; import {BrowserModule} from '@angular/platform-browser'; import {ReactiveFormsModule} from '@angular/forms'; import {HttpClientModule, HTTP_INTERCEPTORS, HttpClient} from '@angular/common/http'; import {AppRoutingModule} from './app-routing.module'; import {JwtInterceptor, ErrorInterceptor} from './_helpers'; import {AppComponent} from './app.component'; import {AlertComponent} from './_components'; import {HomeComponent} from './home'; import {NgbModule} from "@ng-bootstrap/ng-bootstrap"; import {ApiModule, Configuration, ConfigurationParameters} from "@app/core/api/v1"; import {environment} from "@environments/environment"; import {MatCardModule} from "@angular/material/card"; import {TranslateLoader, TranslateModule} from "@ngx-translate/core"; import {TranslateHttpLoader} from "@ngx-translate/http-loader"; import {NgOptimizedImage} from "@angular/common"; import {BrowserAnimationsModule} from "@angular/platform-browser/animations"; import {TwoColumnComponent} from './layout/two-column/two-column.component'; import {ProductsComponent} from './products/products.component'; import {ProductsDetailComponent} from './products/products-detail/products-detail.component'; import {DocumentsComponent} from './documents/documents.component'; import {PartnersComponent} from './partners/partners.component'; import {PartnersDetailComponent} from './partners/partners-detail/partners-detail.component'; import {NewContactComponent} from './contacts/new-contact/new-contact.component'; import {ContactsComponent} from './contacts/contacts.component'; import {ContactsDetailComponent} from './contacts/contacts-detail/contacts-detail.component'; import {ModalComponent} from './_components/modal/modal.component'; import {PropertyInterceptor} from "@app/_helpers/property.interceptor"; import {MatPaginatorModule} from "@angular/material/paginator"; import {MatSortModule} from "@angular/material/sort"; import {MatTableModule} from "@angular/material/table"; import { PostingsComponent } from './postings/postings.component'; import { NewPostingComponent } from './postings/new-posting/new-posting.component'; import { TasksComponent } from './tasks/tasks.component'; import { NewTaskComponent } from './tasks/new-task/new-task.component'; import { NewPartnerComponent } from './partners/new-partner/new-partner.component'; import { NewDocumentComponent } from './documents/new-document/new-document.component'; import { NewProductComponent } from './products/new-product/new-product.component'; import { NewCommentComponent } from './postings/new-comment/new-comment.component'; export function apiConfigFactory(): Configuration { const params: ConfigurationParameters = { basePath: environment.basePath, withCredentials: false }; return new Configuration(params); } // AoT requires an exported function for factories export function HttpLoaderFactory(http: HttpClient) { return new TranslateHttpLoader(http); } @NgModule({ imports: [ ApiModule.forRoot(apiConfigFactory), BrowserModule, BrowserAnimationsModule, TranslateModule.forRoot({ defaultLanguage: 'de', loader: { provide: TranslateLoader, useFactory: HttpLoaderFactory, deps: [HttpClient] } }), ReactiveFormsModule, HttpClientModule, NgbModule, AppRoutingModule, MatCardModule, NgOptimizedImage, PartnersComponent, ProductsComponent, DocumentsComponent, MatPaginatorModule, MatSortModule, MatTableModule ], declarations: [ AppComponent, AlertComponent, HomeComponent, TwoColumnComponent, ProductsDetailComponent, ModalComponent, PartnersDetailComponent, NewContactComponent, ContactsComponent, ContactsDetailComponent, PostingsComponent, NewPostingComponent, TasksComponent, NewTaskComponent, NewPartnerComponent, NewDocumentComponent, NewProductComponent, NewCommentComponent ], providers: [ {provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true}, {provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true}, {provide: HTTP_INTERCEPTORS, useClass: PropertyInterceptor, multi: true}, ], bootstrap: [AppComponent] }) export class AppModule { };