template-frontend/src/app/app.module.ts
2025-01-04 04:17:53 +01:00

63 lines
1.9 KiB
TypeScript

import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { HttpClient, provideHttpClient, withInterceptorsFromDi } from "@angular/common/http";
import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
import { TranslateModule, TranslateLoader, TranslatePipe } from "@ngx-translate/core";
import { TranslateHttpLoader } from "@ngx-translate/http-loader";
import { AppComponent } from "./app.component";
import { RouterModule, Routes } from "@angular/router";
import { SharedModule } from "./shared/shared.module";
import { CoreModule } from "./core/core.module";
import { AngularSvgIconModule } from 'angular-svg-icon';
import { DatePipe } from "@angular/common";
import { AuthService } from "./core/auth/services/auth.service";
import { AuthGuard } from "./core/auth/guards/auth.guard";
import { UserService } from "./core/user/services/user.service";
const routes: Routes = [
{
path: "auth",
loadChildren: () =>
import("./core/auth/auth.module").then((m) => m.AuthModule),
},
{
path: "",
loadChildren: () =>
import("./core/home/home.module").then((m) => m.HomeModule),
}
];
export function createTranslateLoader(http: HttpClient) {
return new TranslateHttpLoader(http, "./assets/i18n/", ".json");
}
@NgModule({
declarations: [AppComponent],
bootstrap: [AppComponent],
imports: [
BrowserModule,
BrowserAnimationsModule,
RouterModule,
RouterModule.forRoot(routes),
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: createTranslateLoader,
deps: [HttpClient],
},
}),
AngularSvgIconModule.forRoot(),
SharedModule,
CoreModule
],
providers: [
provideHttpClient(withInterceptorsFromDi()),
TranslatePipe,
DatePipe,
AuthGuard,
AuthService,
UserService,
],
})
export class AppModule {}