This is the codeAbility Sharing Platform! Learn more about the codeAbility Sharing Platform.

Skip to content
Snippets Groups Projects
app.module.ts 3.22 KiB
Newer Older
Michael Breu's avatar
Michael Breu committed
import { NgModule, LOCALE_ID, Injector } from '@angular/core';
Michael Breu's avatar
Michael Breu committed
import { registerLocaleData } from '@angular/common';
import { HttpClientModule } from '@angular/common/http';
import locale from '@angular/common/locales/en';
import { BrowserModule, Title } from '@angular/platform-browser';
import { ServiceWorkerModule } from '@angular/service-worker';
import { FaIconLibrary } from '@fortawesome/angular-fontawesome';
import { NgxWebstorageModule } from 'ngx-webstorage';
import dayjs from 'dayjs/esm';
import { NgbDateAdapter, NgbDatepickerConfig } from '@ng-bootstrap/ng-bootstrap';
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
Michael Breu's avatar
Michael Breu committed
import { ApplicationConfigService } from 'app/core/config/application-config.service';
import './config/dayjs';
import { SharedModule } from 'app/shared/shared.module';
import { TranslationModule } from 'app/shared/language/translation.module';
import { AppRoutingModule } from './app-routing.module';
import { HomeModule } from './home/home.module';
Lukas Kaltenbrunner's avatar
Lukas Kaltenbrunner committed
// jhipster-needle-angular-add-module-import JHipster will add new module here
Michael Breu's avatar
Michael Breu committed
import { NgbDateDayjsAdapter } from './config/datepicker-adapter';
import { fontAwesomeIcons } from './config/font-awesome-icons';
import { httpInterceptorProviders } from './core/interceptor';
Lukas Kaltenbrunner's avatar
Lukas Kaltenbrunner committed
import { MainComponent } from './layouts/main/main.component';
import { NavbarComponent } from './layouts/navbar/navbar.component';
import { FooterComponent } from './layouts/footer/footer.component';
import { PageRibbonComponent } from './layouts/profiles/page-ribbon.component';
import { ActiveMenuDirective } from './layouts/navbar/active-menu.directive';
import { ErrorComponent } from './layouts/error/error.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
Eduard Frankford's avatar
Eduard Frankford committed
import { fas } from '@fortawesome/free-solid-svg-icons';
import { far } from '@fortawesome/free-regular-svg-icons';

Michael Breu's avatar
Michael Breu committed
export let AppInjector: Injector;

Lukas Kaltenbrunner's avatar
Lukas Kaltenbrunner committed
@NgModule({
  imports: [
    BrowserModule,
Michael Breu's avatar
Michael Breu committed
    SharedModule,
    HomeModule,
Lukas Kaltenbrunner's avatar
Lukas Kaltenbrunner committed
    // jhipster-needle-angular-add-module JHipster will add new module here
Michael Breu's avatar
Michael Breu committed
    AppRoutingModule,
    // Set this to true to enable service worker (PWA)
    ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
    HttpClientModule,
    NgxWebstorageModule.forRoot({ prefix: 'jhi', separator: '-', caseSensitive: true }),
    TranslationModule,
Michael Breu's avatar
Michael Breu committed
    FontAwesomeModule,
    BrowserAnimationsModule,
Michael Breu's avatar
Michael Breu committed
  ],
  providers: [
    Title,
    { provide: LOCALE_ID, useValue: 'en' },
    { provide: NgbDateAdapter, useClass: NgbDateDayjsAdapter },
    httpInterceptorProviders,
Lukas Kaltenbrunner's avatar
Lukas Kaltenbrunner committed
  ],
  declarations: [MainComponent, NavbarComponent, ErrorComponent, PageRibbonComponent, ActiveMenuDirective, FooterComponent],
Lukas Kaltenbrunner's avatar
Lukas Kaltenbrunner committed
  bootstrap: [MainComponent],
})
Michael Breu's avatar
Michael Breu committed
export class AppModule {
  constructor(
    applicationConfigService: ApplicationConfigService,
    iconLibrary: FaIconLibrary,
    dpConfig: NgbDatepickerConfig,
    private injector: Injector
  ) {
Michael Breu's avatar
Michael Breu committed
    AppInjector = injector;
Michael Breu's avatar
Michael Breu committed
    applicationConfigService.setEndpointPrefix(SERVER_API_URL);
    registerLocaleData(locale);
Eduard Frankford's avatar
Eduard Frankford committed
    iconLibrary.addIconPacks(fas);
    iconLibrary.addIconPacks(far);
Michael Breu's avatar
Michael Breu committed
    iconLibrary.addIcons(...fontAwesomeIcons);
    dpConfig.minDate = { year: dayjs().subtract(100, 'year').year(), month: 1, day: 1 };
  }
}