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 './_views/home'; import {NgbModule} from "@ng-bootstrap/ng-bootstrap"; 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 "./_components/layout/two-column/two-column.component"; import {ProductsComponent} from './_views/products/products.component'; import {ProductsDetailComponent} from './_views/products/products-detail/products-detail.component'; import {DocumentsComponent} from './_views/documents/documents.component'; import {PartnersComponent} from './_views/partners/partners.component'; import {PartnersDetailComponent} from './_views/partners/partners-detail/partners-detail.component'; import {NewContactComponent} from './_views/contacts/new-contact/new-contact.component'; import {ContactsComponent} from './_views/contacts/contacts.component'; import {ContactsDetailComponent} from './_views/contacts/contacts-detail/contacts-detail.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 { PostsComponent } from './_views/posts/posts.component'; import { NewPostComponent } from './_views/posts/new-post/new-post.component'; import { TasksComponent } from './_views/tasks/tasks.component'; import { NewTaskComponent } from './_views/tasks/new-task/new-task.component'; import { NewPartnerComponent } from './_views/partners/new-partner/new-partner.component'; import { NewDocumentComponent } from './_views/documents/new-document/new-document.component'; import { NewProductComponent } from './_views/products/new-product/new-product.component'; import { NewCommentComponent } from './_views/posts/new-comment/new-comment.component'; import {MatOptionModule} from "@angular/material/core"; import {MatAutocompleteModule} from "@angular/material/autocomplete"; import {MatFormFieldModule} from "@angular/material/form-field"; import {MatInputModule} from "@angular/material/input"; import { NewTaskNoteComponent } from './_views/tasks/new-task-note/new-task-note.component'; import { DocumentsDetailComponent } from './_views/documents/documents-detail/documents-detail.component'; import { SalesComponent } from './_views/sales/sales.component'; import { SalesDetailComponent } from './_views/sales/sales-detail/sales-detail.component'; import { NewSaleComponent } from './_views/sales/new-sale/new-sale.component'; import { ToggleComponent } from './_components/toggle/toggle.component'; import { ProfileComponent } from './_views/profile/profile.component'; import { PostListComponent } from './_views/posts/post-list/post-list.component'; import {ContactListComponent} from "@app/_views/contacts/contact-list/contact-list.component"; import {ApiModule, Configuration, ConfigurationParameters} from "@app/core/api/v1"; import { TaskListComponent } from './_views/tasks/task-list/task-list.component'; import { SearchInputComponent } from './_components/search-input/search-input.component'; import { PagingComponent } from '@app/_components/paging/paging.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, MatOptionModule, MatAutocompleteModule, MatFormFieldModule, MatInputModule ], declarations: [ AppComponent, AlertComponent, HomeComponent, TwoColumnComponent, ProductsDetailComponent, PartnersDetailComponent, NewContactComponent, ContactListComponent, ContactsDetailComponent, PostsComponent, NewPostComponent, TasksComponent, NewTaskComponent, NewPartnerComponent, NewDocumentComponent, NewProductComponent, NewCommentComponent, NewTaskNoteComponent, DocumentsDetailComponent, SalesComponent, SalesDetailComponent, NewSaleComponent, ToggleComponent, ProfileComponent, PostListComponent, ContactListComponent, ContactListComponent, TaskListComponent, SearchInputComponent, PagingComponent, ], 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 { };