93 lines
3.0 KiB
TypeScript
93 lines
3.0 KiB
TypeScript
import {
|
|
ApplicationConfig,
|
|
provideZoneChangeDetection,
|
|
importProvidersFrom,
|
|
} from '@angular/core';
|
|
import {
|
|
HttpClient,
|
|
provideHttpClient,
|
|
withInterceptorsFromDi,
|
|
} from '@angular/common/http';
|
|
import { routes } from './app.routes';
|
|
import {
|
|
provideRouter,
|
|
withComponentInputBinding,
|
|
withInMemoryScrolling,
|
|
} from '@angular/router';
|
|
import { provideAnimationsAsync } from '@angular/platform-browser/animations/async';
|
|
import { provideClientHydration } from '@angular/platform-browser';
|
|
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
|
|
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
|
|
import { ToastrModule } from 'ngx-toastr';
|
|
import { provideToastr } from 'ngx-toastr';
|
|
|
|
// icons
|
|
import { TablerIconsModule } from 'angular-tabler-icons';
|
|
import * as TablerIcons from 'angular-tabler-icons/icons';
|
|
|
|
// perfect scrollbar
|
|
import { NgScrollbarModule } from 'ngx-scrollbar';
|
|
import { NgxPermissionsModule } from 'ngx-permissions';
|
|
//Import all material modules
|
|
import { MaterialModule } from './material.module';
|
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
import { CalendarModule, DateAdapter } from 'angular-calendar';
|
|
import { adapterFactory } from 'angular-calendar/date-adapters/date-fns';
|
|
|
|
// code view
|
|
import { provideHighlightOptions } from 'ngx-highlightjs';
|
|
import 'highlight.js/styles/atom-one-dark.min.css';
|
|
|
|
export function HttpLoaderFactory(http: HttpClient): any {
|
|
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
|
|
}
|
|
|
|
export const appConfig: ApplicationConfig = {
|
|
providers: [
|
|
provideAnimationsAsync(), // required animations providers
|
|
provideToastr(), // Toastr providers
|
|
provideZoneChangeDetection({ eventCoalescing: true }),
|
|
provideHighlightOptions({
|
|
coreLibraryLoader: () => import('highlight.js/lib/core'),
|
|
lineNumbersLoader: () => import('ngx-highlightjs/line-numbers'), // Optional, add line numbers if needed
|
|
languages: {
|
|
typescript: () => import('highlight.js/lib/languages/typescript'),
|
|
css: () => import('highlight.js/lib/languages/css'),
|
|
xml: () => import('highlight.js/lib/languages/xml'),
|
|
},
|
|
}),
|
|
provideRouter(
|
|
routes,
|
|
withInMemoryScrolling({
|
|
scrollPositionRestoration: 'enabled',
|
|
anchorScrolling: 'enabled',
|
|
}),
|
|
withComponentInputBinding()
|
|
),
|
|
provideHttpClient(withInterceptorsFromDi()),
|
|
provideClientHydration(),
|
|
provideAnimationsAsync(),
|
|
importProvidersFrom(
|
|
FormsModule,
|
|
ToastrModule.forRoot(),
|
|
ReactiveFormsModule,
|
|
MaterialModule,
|
|
NgxPermissionsModule.forRoot(),
|
|
TablerIconsModule.pick(TablerIcons),
|
|
NgScrollbarModule,
|
|
CalendarModule.forRoot({
|
|
provide: DateAdapter,
|
|
useFactory: adapterFactory,
|
|
}),
|
|
TranslateModule.forRoot({
|
|
loader: {
|
|
provide: TranslateLoader,
|
|
useFactory: HttpLoaderFactory,
|
|
deps: [HttpClient],
|
|
},
|
|
})
|
|
),
|
|
],
|
|
};
|