import { APP_INITIALIZER, ApplicationConfig, importProvidersFrom } from '@angular/core'; import { provideRouter } from '@angular/router'; import { routes } from './app.routes'; import { provideClientHydration } from '@angular/platform-browser'; import { provideAnimations } from '@angular/platform-browser/animations'; import { HTTP_INTERCEPTORS, provideHttpClient, withFetch, withInterceptorsFromDi } from '@angular/common/http'; import { environment } from '../environments/environment'; import { SelectOptionsService } from './services/select-options.service'; import { KeycloakService } from './services/keycloak.service'; import { UserService } from './services/user.service'; // provideClientHydration() export const appConfig: ApplicationConfig = { providers: [ provideHttpClient(withInterceptorsFromDi()), {provide:KeycloakService}, { provide: APP_INITIALIZER, useFactory: initializeKeycloak, multi: true, deps: [KeycloakService], }, { provide: APP_INITIALIZER, useFactory: initServices, multi: true, deps: [SelectOptionsService], }, provideRouter(routes),provideAnimations() ] }; function initUserService(userService:UserService) { return () => { //selectOptions.init(); } } function initServices(selectOptions:SelectOptionsService) { return () => { selectOptions.init(); } } function initializeKeycloak(keycloak: KeycloakService) { return () => keycloak.init({ config: { url: environment.keycloak.url, realm: environment.keycloak.realm, clientId: environment.keycloak.clientId, }, initOptions: { onLoad: 'check-sso', silentCheckSsoRedirectUri: (window).location.origin + '/assets/silent-check-sso.html' }, }); }