{"version":3,"file":"cauca-911-core.mjs","sources":["../../../projects/cauca-core/src/lib/shared/models/log-level.enum.ts","../../../projects/cauca-core/src/lib/shared/models/core-module-options.ts","../../../projects/cauca-core/src/lib/shared/classes/configuration.ts","../../../projects/cauca-core/src/lib/cauca-core.service.ts","../../../projects/cauca-core/src/lib/cauca-core.component.ts","../../../projects/cauca-core/src/lib/cauca-core.component.html","../../../projects/cauca-core/src/lib/shared/constants/cauca-core-module-options.ts","../../../projects/cauca-core/src/lib/cauca-page-not-found/cauca-page-not-found.component.ts","../../../projects/cauca-core/src/lib/cauca-page-not-found/cauca-page-not-found.component.html","../../../projects/cauca-core/src/lib/shared/interceptors/interceptor-error.service.ts","../../../projects/cauca-core/src/lib/shared/interceptors/http-offline-interceptor.ts","../../../projects/cauca-core/src/lib/shared/models/http-error.ts","../../../projects/cauca-core/src/lib/shared/decorators/debounce.ts","../../../projects/cauca-core/src/lib/shared/services/log.service.ts","../../../projects/cauca-core/src/lib/shared/tokens/injection-tokens.ts","../../../projects/cauca-core/src/lib/shared/services/refresh-token.service.ts","../../../projects/cauca-core/src/lib/shared/services/http-token-provider.ts","../../../projects/cauca-core/src/lib/shared/interceptors/http-token-writer-interceptor.ts","../../../projects/cauca-core/src/lib/shared/interceptors/http-token-reader-interceptor.ts","../../../projects/cauca-core/src/lib/shared/interceptors/http-error-interceptor.ts","../../../projects/cauca-core/src/lib/shared/ngx-translate/custom-missing-translation-handler.ts","../../../projects/cauca-core/src/lib/shared/ngx-translate/custom-multi-translate-http-loader.ts","../../../projects/cauca-core/src/lib/shared/services/translate.service.ts","../../../projects/cauca-core/src/lib/cauca-core.module.ts","../../../projects/cauca-core/src/lib/cauca-core-for-child.module.ts","../../../projects/cauca-core/src/lib/shared/services/api-lookup.service.ts","../../../projects/cauca-core/src/lib/shared/classes/network-estimates.ts","../../../projects/cauca-core/src/lib/shared/services/network-information.service.ts","../../../projects/cauca-core/src/lib/cauca-core-testing.module.ts","../../../projects/cauca-core/src/lib/testing/provide-testing-translation.ts","../../../projects/cauca-core/src/lib/components/not-found/not-found.component.html","../../../projects/cauca-core/src/lib/components/not-found/not-found.component.ts","../../../projects/cauca-core/src/lib/shared/classes/browser.ts","../../../projects/cauca-core/src/lib/shared/classes/operating-system.ts","../../../projects/cauca-core/src/lib/shared/services/client-information.service.ts","../../../projects/cauca-core/src/lib/shared/services/fullscreen.service.ts","../../../projects/cauca-core/src/lib/shared/services/image.service.ts","../../../projects/cauca-core/src/lib/shared/models/version.ts","../../../projects/cauca-core/src/lib/shared/services/version-check.service.ts","../../../projects/cauca-core/src/lib/shared/services/refresh-url.service.ts","../../../projects/cauca-core/src/lib/shared/interceptors/interceptor-delay.service.ts","../../../projects/cauca-core/src/lib/shared/interceptors/http-delay.interceptor.ts","../../../projects/cauca-core/src/lib/shared/classes/color.ts","../../../projects/cauca-core/src/lib/functions/to-lower-case-and-without-diacritics.ts","../../../projects/cauca-core/src/public-api.ts","../../../projects/cauca-core/src/cauca-911-core.ts"],"sourcesContent":["export enum LogLevel {\r\n    trace = 0,\r\n    debug = 1,\r\n    information = 2,\r\n    warning = 3,\r\n    error = 4,\r\n    critical = 5,\r\n    disconnection = 6,\r\n}\r\n","import { Type } from '@angular/core';\r\nimport { BaseLogoutHandler } from '../services/logout-handler';\r\nimport { LogLevel } from './log-level.enum';\r\nimport { RefreshToken } from './refresh-token';\r\nimport { RefreshUrlService } from '../services/refresh-url.service';\r\n\r\nexport type LoginUrlFunction = () => string;\r\nexport type RefreshUrlFunction = () => string;\r\nexport type LogErrorFunction = (level: LogLevel, message: string, data: any) => void;\r\nexport type UpdateTokenFunction = (newToken: RefreshToken) => void;\r\nexport type HttpErrorFunction = (error: any, method: string, url: string) => void;\r\n\r\nexport class CoreModuleOptions {\r\n    public logLevel: LogLevel = LogLevel.error;\r\n    public apiUrl: string = '';\r\n    public languages: string[] = ['fr', 'en'];\r\n    public autoLoadMaterialLocales: boolean = true;\r\n    public refreshLoginURL: string | RefreshUrlFunction = '';\r\n    public allowRefreshToken: boolean = false;\r\n    public libraries: string[] = [];\r\n    public i18nPaths: string[] = [];\r\n    public locale: string = '';\r\n    public jsonConfigFile: string = '';\r\n    public nbRetryOnNetworkError: number = 2;\r\n    public contentSecurityPolicyActivated: boolean = false;\r\n    public loginURL: string | LoginUrlFunction = '';\r\n    public keepReturnUrlWhenRedirectingToLogin: boolean = false;\r\n    public logoutService?: Type<BaseLogoutHandler>;\r\n    public useLogoutService: boolean = false;\r\n    public refreshUrlService?: Type<RefreshUrlService>;\r\n    // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n    public logError: LogErrorFunction = (level: LogLevel, message: string, data: any = null) => {};\r\n    // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n    public updateToken: UpdateTokenFunction = (newToken: RefreshToken) => {};\r\n    // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n    public onHttpError: HttpErrorFunction = (error: any) => {};\r\n}\r\n","import { CoreModuleOptions, HttpErrorFunction, LogErrorFunction, LoginUrlFunction, RefreshUrlFunction, UpdateTokenFunction } from '../models/core-module-options';\r\nimport { LogLevel } from '../models/log-level.enum';\r\n\r\nexport class Configuration {\r\n    public jsonConfigFile: string = '';\r\n    public libraries: string[] = [];\r\n    public i18nPaths: string[] = [];\r\n    public loginURL: LoginUrlFunction;\r\n    public logError: LogErrorFunction;\r\n    public updateToken: UpdateTokenFunction;\r\n    public onHttpError: HttpErrorFunction;\r\n    public refreshLoginURL: RefreshUrlFunction;\r\n    public useLogoutService: boolean = false;\r\n    public allowRefreshToken: boolean = false;\r\n    public autoLoadMaterialLocales: boolean = true;\r\n    public logLevel: LogLevel = LogLevel.debug;\r\n    public apiUrl: string = '';\r\n    public nbRetryOnNetworkError: number = 2;\r\n    public contentSecurityPolicyActivated: boolean = false;\r\n    public keepReturnUrlWhenRedirectingToLogin: boolean = false;\r\n\r\n    private useCharset;\r\n    private useAuthorizationType;\r\n    private useAccessToken;\r\n    private useRefreshToken;\r\n    private useCSRFToken;\r\n    private useLocale: string;\r\n    private useLanguages: string[];\r\n\r\n    public constructor(options: CoreModuleOptions) {\r\n        this.useCharset = 'UTF-8';\r\n        this.useAuthorizationType = 'Bearer';\r\n        this.useAccessToken = '';\r\n        this.useRefreshToken = '';\r\n        this.useCSRFToken = '';\r\n        this.useLocale = options.locale || '';\r\n        this.useLanguages = options.languages || ['fr'];\r\n        this.autoLoadMaterialLocales = options.autoLoadMaterialLocales ?? true;\r\n        this.libraries = options.libraries || [];\r\n        this.i18nPaths = options.i18nPaths || [];\r\n        this.apiUrl = options.apiUrl || '/api/';\r\n        this.logLevel = options.logLevel || LogLevel.debug;\r\n        this.allowRefreshToken = options.allowRefreshToken || false;\r\n        this.nbRetryOnNetworkError = options.nbRetryOnNetworkError || 2;\r\n        this.contentSecurityPolicyActivated = options.contentSecurityPolicyActivated || false;\r\n        this.keepReturnUrlWhenRedirectingToLogin = options.keepReturnUrlWhenRedirectingToLogin || false;\r\n        this.logError = options.logError || this.defaultLogError;\r\n        this.updateToken = options.updateToken;\r\n        this.onHttpError = options.onHttpError;\r\n        this.useLogoutService = options.useLogoutService || false;\r\n        this.setRefreshUrl(options);\r\n        this.setLoginUrl(options);\r\n        this.setDefaultLocale();\r\n    }\r\n\r\n    public get locale(): string {\r\n        return this.useLocale;\r\n    }\r\n    public set locale(value: string) {\r\n        this.useLocale = value;\r\n    }\r\n\r\n    public get languages(): string[] {\r\n        return this.useLanguages;\r\n    }\r\n    public set languages(value: string[]) {\r\n        this.useLanguages = value;\r\n        this.setDefaultLocale();\r\n    }\r\n\r\n    public get charset(): string {\r\n        return this.useCharset;\r\n    }\r\n    public set charset(value: string) {\r\n        this.useCharset = value;\r\n    }\r\n\r\n    public get authorizationType(): string {\r\n        return this.useAuthorizationType;\r\n    }\r\n    public set authorizationType(value: string) {\r\n        this.useAuthorizationType = value;\r\n    }\r\n\r\n    public get refreshToken(): string {\r\n        if (this.contentSecurityPolicyActivated && !this.useRefreshToken) {\r\n            this.useRefreshToken = localStorage.getItem('refreshToken');\r\n        } else if (!this.useRefreshToken) {\r\n            this.useRefreshToken = sessionStorage.getItem('refreshToken');\r\n        }\r\n\r\n        return this.useRefreshToken;\r\n    }\r\n    public set refreshToken(value: string) {\r\n        this.setStorageValue('refreshToken', value);\r\n        this.useRefreshToken = value;\r\n    }\r\n\r\n    public get accessToken(): string {\r\n        if (this.contentSecurityPolicyActivated && !this.useAccessToken) {\r\n            this.useAccessToken = localStorage.getItem('accessToken');\r\n        } else if (!this.useAccessToken) {\r\n            this.useAccessToken = sessionStorage.getItem('accessToken');\r\n        }\r\n        return this.useAccessToken;\r\n    }\r\n    public set accessToken(value: string) {\r\n        this.setStorageValue('accessToken', value);\r\n        this.useAccessToken = value;\r\n    }\r\n\r\n    // eslint-disable-next-line @typescript-eslint/naming-convention\r\n    public get CSRFToken(): string {\r\n        if (this.contentSecurityPolicyActivated && !this.useAccessToken) {\r\n            this.useCSRFToken = localStorage.getItem('CSRFToken');\r\n        } else if (!this.useCSRFToken) {\r\n            this.useCSRFToken = sessionStorage.getItem('CSRFToken');\r\n        }\r\n\r\n        return this.useCSRFToken;\r\n    }\r\n    // eslint-disable-next-line @typescript-eslint/naming-convention\r\n    public set CSRFToken(value: string) {\r\n        this.setStorageValue('CSRFToken', value);\r\n        this.useCSRFToken = value;\r\n    }\r\n\r\n    // eslint-disable-next-line @typescript-eslint/naming-convention\r\n    public get CSRFCookie(): string {\r\n        return sessionStorage.getItem('CSRFCookie');\r\n    }\r\n    // eslint-disable-next-line @typescript-eslint/naming-convention\r\n    public set CSRFCookie(value: string) {\r\n        sessionStorage.setItem('CSRFCookie', value);\r\n    }\r\n\r\n    private setDefaultLocale(): void {\r\n        if (this.useLocale) {\r\n            return;\r\n        }\r\n\r\n        if (navigator && navigator.language.indexOf('-') > -1) {\r\n            if (this.languages.indexOf(navigator.language) > -1) {\r\n                this.locale = navigator.language;\r\n                return;\r\n            }\r\n\r\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n            const [langue, country] = navigator.language.split('-');\r\n\r\n            if (this.languages.indexOf(langue) > -1) {\r\n                this.locale = langue;\r\n                return;\r\n            }\r\n        } else if (navigator && navigator.languages.length > 0) {\r\n            for (const i in navigator.languages) {\r\n                if (this.languages.indexOf(navigator.languages[i]) > -1) {\r\n                    this.locale = navigator.languages[i];\r\n                    return;\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    private setLoginUrl(options: CoreModuleOptions): void {\r\n        if (typeof(options.loginURL) === 'function') {\r\n            this.loginURL = options.loginURL;\r\n        } else {\r\n            const url = options.loginURL?.toString() || '/login';\r\n            this.loginURL = () =>  url;\r\n        }\r\n    }\r\n\r\n    private setRefreshUrl(options: CoreModuleOptions): void {\r\n        if (typeof(options.refreshLoginURL) === 'function') {\r\n            this.refreshLoginURL = options.refreshLoginURL;\r\n        } else {\r\n            const url = options.refreshLoginURL?.toString() || '';\r\n            this.refreshLoginURL = () =>  url;\r\n        }\r\n    }\r\n\r\n    private defaultLogError(level: LogLevel, message: string, data: any): void {\r\n        if (level >= this.logLevel) {\r\n            console.log(`LogLevel: ${level} >= ${this.logLevel}`);\r\n            console.log(`Message: ${message}`);\r\n\r\n            if (data) {\r\n                console.log(data);\r\n            }\r\n        }\r\n    }\r\n\r\n    private setStorageValue(key: string, value: string): void {\r\n        if (this.contentSecurityPolicyActivated) {\r\n            if (!value) {\r\n                localStorage.removeItem(key);\r\n            } else {\r\n                localStorage.setItem(key, value);\r\n            }\r\n        } else {\r\n            if (!value) {\r\n                sessionStorage.removeItem(key);\r\n            } else {\r\n                sessionStorage.setItem(key, value);\r\n            }\r\n        }\r\n    }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CoreModuleOptions } from './shared/models/core-module-options';\r\nimport { Configuration } from './shared/classes/configuration';\r\nimport { HttpBackend, HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class CaucaCoreService {\r\n    private httpBackend = inject(HttpBackend);\r\n    private translateService = inject(TranslateService);\r\n\r\n    private config = new Configuration(new CoreModuleOptions());\r\n    private jsonIsLoaded: boolean = false;\r\n\r\n    public async appInitializer(coreOptions: CoreModuleOptions): Promise<void> {\r\n        this.config = new Configuration(coreOptions);\r\n        this.setupLocale();\r\n        this.config.languages = this.config.languages || ['fr', 'en'];\r\n        this.translateService.addLangs(this.config.languages);\r\n        this.translateService.setFallbackLang(this.config.locale);\r\n        this.translateService.use(this.config.locale);\r\n\r\n        if (coreOptions.jsonConfigFile && !this.jsonIsLoaded) {\r\n            const httpClient = new HttpClient(this.httpBackend);\r\n            const jsonConfig = await httpClient.get(coreOptions.jsonConfigFile).toPromise();\r\n\r\n            this.jsonIsLoaded = true;\r\n            this.config = Object.assign(this.config, jsonConfig);\r\n        }\r\n    }\r\n\r\n    public getConfig(): Configuration {\r\n        return this.config;\r\n    }\r\n\r\n    public toggleLanguage(): void {\r\n        if (this.config.languages.length < 2) {\r\n            throw new Error('You need to configure at least two languages.');\r\n        } else if (this.config.languages.length > 2) {\r\n            throw new Error('Since you had more then two languages, use \"setLanguage(language)\".');\r\n        }\r\n        localStorage.setItem('locale', this.config.locale === 'fr' ? 'en' : 'fr');\r\n    }\r\n\r\n    public setLanguage(language: string): void {\r\n        if (this.config.languages.length < 2) {\r\n            throw new Error('You need to configure at least two languages.');\r\n        } else if (!this.config.languages.includes(language)) {\r\n            throw new Error('This language is not available.');\r\n        }\r\n\r\n        localStorage.setItem('locale', language);\r\n    }\r\n\r\n    private setupLocale(): void {\r\n        const storedLocale = localStorage.getItem('locale');\r\n        if (storedLocale && this.config.languages.includes(storedLocale)) {\r\n            this.config.locale = storedLocale;\r\n        } else {\r\n            this.config.locale = this.config.locale || 'fr';\r\n        }\r\n    }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'cauca-core',\r\n    templateUrl: './cauca-core.component.html',\r\n    styleUrls: ['./cauca-core.component.scss'],\r\n    standalone: false\r\n})\r\nexport class CaucaCoreComponent {\r\n\r\n}\r\n","<div>{{'core.noGenericComponentOnThisLibrary' | translate}}</div>","import { InjectionToken } from '@angular/core';\r\nimport { CoreModuleOptions } from '../models/core-module-options';\r\n\r\nexport const CAUCA_CORE_MODULE_OPTIONS_FACTORY = (): CoreModuleOptions => new CoreModuleOptions();\r\n\r\nexport const CAUCA_CORE_MODULE_OPTIONS = new InjectionToken<CoreModuleOptions>('cauca-core-module-options', {\r\n    providedIn: 'root',\r\n    factory: CAUCA_CORE_MODULE_OPTIONS_FACTORY,\r\n});\r\n\r\n","import { Component } from '@angular/core';\r\n\r\n/**\r\n * @deprecated This is deprecated, please implement your own 404 page in your app and add it to your routing configuration.\r\n */\r\n@Component({\r\n    selector: 'cauca-page-not-found',\r\n    templateUrl: './cauca-page-not-found.component.html',\r\n    styleUrls: ['./cauca-page-not-found.component.scss'],\r\n    standalone: false\r\n})\r\nexport class CaucaPageNotFoundComponent {\r\n\r\n}\r\n","<div class=\"middle\">\r\n  <h1>Ooops... page not found</h1>\r\n</div>","import { EventEmitter, Injectable } from '@angular/core';\r\nimport { InterceptorError } from '../interfaces/interceptor-error';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class InterceptorErrorService {\r\n  public error = new EventEmitter<InterceptorError>();\r\n\r\n  public append(statusCode: number, message: string): void {\r\n    this.error.emit({\r\n      statusCode,\r\n      message\r\n    });\r\n  }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpRequest } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { InterceptorErrorService } from './interceptor-error.service';\r\n\r\n@Injectable()\r\nexport class HttpOfflineInterceptor {\r\n    private interceptorErrorService = inject(InterceptorErrorService);\r\n\r\n\r\n    public intercept(\r\n        request: HttpRequest<any>,\r\n        next: HttpHandler\r\n    ): Observable<HttpEvent<any>> {\r\n        request = request.clone();\r\n\r\n        if (!navigator.onLine) {\r\n            return this.onOffline(new HttpErrorResponse({\r\n                headers: request.headers,\r\n                status: 408,\r\n                statusText: 'Offline',\r\n                url: request.url,\r\n            }));\r\n        } else {\r\n            return next.handle(request).pipe(\r\n                catchError((error: any) => {\r\n                    if (error.status === 0) {\r\n                        return this.onOffline(error);\r\n                    }\r\n                    return throwError(() => error);\r\n                })\r\n            );\r\n        }\r\n    }\r\n\r\n    private onOffline(error: HttpErrorResponse): Observable<any> {\r\n        this.interceptorErrorService.append(error.status, error.statusText);\r\n        return throwError(() => error);\r\n    }\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\n\r\nexport class HttpError {\r\n    public status: number;\r\n    public statusText: string;\r\n    public url: string;\r\n    public data: string;\r\n    public body: string;\r\n\r\n    public constructor(error: HttpErrorResponse) {\r\n        this.url = error.url || '';\r\n        this.status = error.status;\r\n        this.statusText = error.statusText;\r\n\r\n        if (error.error instanceof ErrorEvent) {\r\n            this.body = error.error.message;\r\n        } else if (error.error) {\r\n            this.body = error.error.title || JSON.stringify(error.error);\r\n        }\r\n    }\r\n\r\n    public setData(data: any): void {\r\n        this.data = JSON.stringify(data);\r\n    }\r\n}\r\n","import { debounce } from 'lodash';\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport const Debounce = (ms: number): any => ((target: any, key: string, descriptor: PropertyDescriptor) => {\r\n    const oldFunc = descriptor.value;\r\n    const newFunc = debounce(oldFunc, ms);\r\n\r\n    descriptor.value = function(): any {\r\n        // eslint-disable-next-line prefer-rest-params\r\n        return newFunc.apply(this, arguments);\r\n    };\r\n});\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpBackend } from '@angular/common/http';\r\nimport { Subject } from 'rxjs';\r\nimport { CaucaCoreService } from '../../cauca-core.service';\r\nimport { Configuration } from '../classes/configuration';\r\nimport { HttpError } from '../models/http-error';\r\nimport { Debounce } from '../decorators/debounce';\r\nimport { LogLevel } from '../models/log-level.enum';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class LogService {\r\n  private coreService = inject(CaucaCoreService);\r\n\r\n  private config: Configuration;\r\n  private httpClient: HttpClient;\r\n  private errors: HttpError[] = [];\r\n  private activeSending = new Subject<void>();\r\n  private timer: any;\r\n\r\n  public constructor() {\r\n    const coreService = this.coreService;\r\n    const handler = inject(HttpBackend);\r\n\r\n    this.config = coreService.getConfig();\r\n    this.httpClient = new HttpClient(handler);\r\n    this.activeSending.subscribe(() => {\r\n      this.sendErrors();\r\n    });\r\n  }\r\n\r\n  public get errorCount(): number {\r\n    return this.errors.length;\r\n  }\r\n\r\n  public get waitToSendAgain(): boolean {\r\n    return this.timer ? true : false;\r\n  }\r\n\r\n  public information(message: string, data: any = null): void {\r\n    const config = this.coreService.getConfig();\r\n    config.logError(LogLevel.information, message, data);\r\n  }\r\n\r\n  public warning(message: string, data: any = null): void {\r\n    const config = this.coreService.getConfig();\r\n    config.logError(LogLevel.warning, message, data);\r\n  }\r\n\r\n  public error(message: string, data: any = null): void {\r\n    const config = this.coreService.getConfig();\r\n    config.logError(LogLevel.error, message, data);\r\n  }\r\n\r\n  public disconnection(message: string, data: any = null): void {\r\n    const config = this.coreService.getConfig();\r\n    config.logError(LogLevel.disconnection, message, data);\r\n  }\r\n\r\n  public publishInformation(error: any, data: any = null): void {\r\n    if (error instanceof HttpErrorResponse) {\r\n      const httpError = new HttpError(error);\r\n      httpError.setData(data);\r\n\r\n      this.httpClient.post(`${this.config.apiUrl}Error/LogInformation`, httpError).subscribe();\r\n    }\r\n  }\r\n\r\n  public publishWarning(error: any, data: any = null): void {\r\n    if (error instanceof HttpErrorResponse) {\r\n      const httpError = new HttpError(error);\r\n      httpError.setData(data);\r\n\r\n      this.httpClient.post(`${this.config.apiUrl}Error/LogWarning`, httpError).subscribe();\r\n    }\r\n  }\r\n\r\n  public publishError(error: any, data: any = null): void {\r\n    if (error instanceof HttpErrorResponse) {\r\n      const httpError = new HttpError(error);\r\n      httpError.setData(data);\r\n\r\n      this.errors.push(httpError);\r\n      this.activeSending.next();\r\n    }\r\n  }\r\n\r\n  @Debounce(1000)\r\n  private sendErrors(): void {\r\n    if (!navigator.onLine) {\r\n      return;\r\n    }\r\n\r\n    this.stopTimer();\r\n    this.httpClient.post(`${this.config.apiUrl}Error/LogErrors`, this.errors).subscribe({\r\n      next: () => {\r\n        this.errors = [];\r\n      },\r\n      error: () => {\r\n        this.httpClient.post(`${this.config.apiUrl}logErrors`, this.errors).subscribe({\r\n          next: () => {\r\n            this.errors = [];\r\n          },\r\n          error: () => {\r\n            const minuteToWait = 5 * 60 * 1000;\r\n            this.timer = setTimeout(() => this.sendErrors(), minuteToWait);\r\n          }\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  private stopTimer(): void {\r\n    if (this.timer) {\r\n      clearTimeout(this.timer);\r\n      this.timer = null;\r\n    }\r\n  }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { BaseLogoutHandler } from '../services/logout-handler';\r\nimport { RefreshUrlService } from '../services/refresh-url.service';\r\n\r\nexport const LOGOUT_HANDLER_TOKEN = new InjectionToken<BaseLogoutHandler>('CoreLogoutHandlerService');\r\nexport const REFRESH_URL_SERVICE_TOKEN = new InjectionToken<RefreshUrlService>('CoreRefreshUrlService');\r\n","import { HttpBackend, HttpClient } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map, retry } from 'rxjs/operators';\r\nimport { CaucaCoreService } from '../../cauca-core.service';\r\nimport { RefreshToken } from '../models/refresh-token';\r\nimport { LogService } from './log.service';\r\nimport { Router } from '@angular/router';\r\nimport { LOGOUT_HANDLER_TOKEN, REFRESH_URL_SERVICE_TOKEN } from '../tokens/injection-tokens';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class RefreshTokenService {\r\n  private coreService = inject(CaucaCoreService);\r\n  private logService = inject(LogService);\r\n  private router = inject(Router);\r\n  private logoutHandler = inject(LOGOUT_HANDLER_TOKEN, { optional: true }) ?? null;\r\n  private refreshUrlService = inject(REFRESH_URL_SERVICE_TOKEN, { optional: true }) ?? null;\r\n\r\n  private http: HttpClient;\r\n  private errorPrefix: string = 'Interceptor - HttpTokenWriter - ';\r\n\r\n  public constructor() {\r\n    const handler = inject(HttpBackend);\r\n\r\n    this.http = new HttpClient(handler);\r\n  }\r\n\r\n  public refreshToken(): Observable<boolean> {\r\n    const config = this.coreService.getConfig();\r\n\r\n    return this.postRefreshToken().pipe(\r\n        retry(3),\r\n        map((data: RefreshToken) => {\r\n            this.logService.information(`${this.errorPrefix}Response from refreshing token.`, data);\r\n\r\n            config.accessToken = data.accessToken || '';\r\n            if (config.updateToken) {\r\n              config.updateToken(data);\r\n            }\r\n            return data.accessToken ? true : false;\r\n        }),\r\n        catchError((error: any) => {\r\n            this.logService.information(`${this.errorPrefix}Error when refreshing token.`, error);\r\n\r\n            if (error.status === 0 || error.status === 408) {\r\n                return of(true);\r\n            }\r\n            config.accessToken = '';\r\n            if (config.updateToken) {\r\n              config.updateToken(null);\r\n            }\r\n            return of(false);\r\n        })\r\n    );\r\n  }\r\n\r\n  public refreshTokenWithRedirect(): Observable<boolean> {\r\n    const config = this.coreService.getConfig();\r\n    const loginUrl = config.loginURL();\r\n    return this.refreshToken().pipe(\r\n      map((response: any) => {\r\n          if (!response && location.pathname !== loginUrl) {\r\n              this.logout();\r\n          }\r\n          this.logService.information(`${this.errorPrefix}Refresh accessToken work.`);\r\n          return response;\r\n      })\r\n    );\r\n  }\r\n\r\n  private logout(): void {\r\n    const currentUrl = this.router.routerState.snapshot.url;\r\n    const config = this.coreService.getConfig();\r\n    this.logService.disconnection(`${this.errorPrefix}Could not refresh access token, redirect to login page.`);\r\n    if (config.useLogoutService) {\r\n        this.logoutHandler?.logoutWithMessage(currentUrl);\r\n    } else {\r\n        const params = config.keepReturnUrlWhenRedirectingToLogin ? { returnUrl: currentUrl } : {};\r\n        this.router.navigate([config.loginURL()], { queryParams: params });\r\n    }\r\n  }\r\n\r\n  private postRefreshToken(): Observable<RefreshToken> {\r\n    const config = this.coreService.getConfig();\r\n    const host = config.refreshLoginURL();\r\n    const token = {\r\n        accessToken: config.accessToken,\r\n        refreshToken: config.refreshToken,\r\n    } as RefreshToken;\r\n\r\n    let refreshUrl = this.refreshUrlService?.getRefreshUrl() || host;\r\n    if (!refreshUrl) {\r\n        refreshUrl = `/api/Authentication/Refresh`;\r\n    }\r\n\r\n    return this.http.post<RefreshToken>(refreshUrl, token);\r\n  }\r\n}\r\n","import { Injectable, Signal, inject } from \"@angular/core\";\r\nimport { toSignal } from \"@angular/core/rxjs-interop\";\r\n\r\nimport { BehaviorSubject, Observable, take, switchMap, finalize, filter, map } from \"rxjs\";\r\nimport { CaucaCoreService } from \"../../cauca-core.service\";\r\nimport { RefreshTokenService } from \"./refresh-token.service\";\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class HttpTokenProvider {\r\n    public isRefreshing: Signal<boolean>;\r\n\r\n    private isRefreshingToken: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n    private readonly core = inject(CaucaCoreService);\r\n    private readonly tokenRefresher = inject(RefreshTokenService);\r\n\r\n    public constructor() {\r\n        this.isRefreshing = toSignal(this.isRefreshingToken);\r\n    }\r\n\r\n    public getNewToken(): Observable<string> {\r\n        return this.isRefreshingToken.pipe(\r\n            take(1),\r\n            switchMap((refreshing) => refreshing ? this.getToken() : this.refreshToken().pipe(switchMap(() => this.getToken())))\r\n        );\r\n    }\r\n\r\n    public getToken(): Observable<string> {\r\n        return this.isRefreshingToken\r\n            .pipe(\r\n                filter(refreshing => !refreshing),\r\n                take(1),\r\n                map(() => this.core.getConfig().accessToken)\r\n            );\r\n    }\r\n\r\n    private refreshToken(): Observable<boolean> {\r\n        this.isRefreshingToken.next(true);\r\n        return this.tokenRefresher.refreshToken()\r\n            .pipe(finalize(() => this.isRefreshingToken.next(false)));\r\n    }\r\n}","import { inject, Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpRequest, HttpHeaders, HttpInterceptor } from '@angular/common/http';\r\nimport { Observable, of, throwError } from 'rxjs';\r\nimport { catchError, map, switchMap } from 'rxjs/operators';\r\nimport { CaucaCoreService } from '../../cauca-core.service';\r\nimport { LogService } from '../services/log.service';\r\nimport { Router } from '@angular/router';\r\nimport { HttpTokenProvider } from '../services/http-token-provider';\r\nimport { LOGOUT_HANDLER_TOKEN } from '../tokens/injection-tokens';\r\n\r\n@Injectable()\r\nexport class HttpTokenWriterInterceptor implements HttpInterceptor {\r\n    private logoutHandler = inject(LOGOUT_HANDLER_TOKEN, { optional: true }) ?? null;\r\n\r\n    private errorPrefix: string = 'Interceptor - HttpTokenWriter - ';\r\n\r\n    private readonly tokenProvider = inject(HttpTokenProvider);\r\n    private readonly coreService = inject(CaucaCoreService);\r\n    private readonly logService = inject(LogService);\r\n    private readonly router = inject(Router);\r\n\r\n    public intercept(request: HttpRequest<any>, next: HttpHandler,): Observable<HttpEvent<any>> {\r\n        return this.getRequestWithToken(request)\r\n            .pipe(switchMap((requestWithToken: HttpRequest<any>)=> this.executeRequest(requestWithToken, next, request)));\r\n    }\r\n\r\n    private executeRequest(request: HttpRequest<any>, next: HttpHandler, originalRequest: HttpRequest<any>): Observable<HttpEvent<any>> {\r\n        return next.handle(request).pipe(\r\n            catchError((error: any) => {\r\n                this.logService.information(`${this.errorPrefix}An error has been catch.`);\r\n                return this.checkIfWeCanManageError(error, originalRequest).pipe(\r\n                    switchMap((handledRequest: HttpRequest<any>) => this.handleRetry(handledRequest, next)),\r\n                    catchError((unHandleError: any) => this.handleExecutionError(unHandleError))\r\n                );\r\n            })\r\n        );\r\n    }\r\n\r\n    private handleRetry(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n        this.logService.information(`${this.errorPrefix}Occur error can be managed, we resend the original request.`);\r\n        return this.getRequestWithToken(request).pipe(switchMap((clonedRequest) => next.handle(clonedRequest)));\r\n    }\r\n\r\n    private handleExecutionError(unhandledError: any): Observable<never> {\r\n        this.logService.warning(`${this.errorPrefix}Occur error can't be managed.`, unhandledError);\r\n        return throwError(() => unhandledError);\r\n    }\r\n\r\n    private getRequestWithToken(request: HttpRequest<any>): Observable<HttpRequest<any>> {\r\n        return this.generateHeaders(request)\r\n            .pipe(map((headers: HttpHeaders) => request = request.clone({ headers, })));\r\n    }\r\n\r\n    private generateHeaders(request: HttpRequest<any>): Observable<HttpHeaders> {\r\n        const config = this.coreService.getConfig();\r\n        if (config.accessToken) {\r\n            return this.tokenProvider.getToken()\r\n                .pipe(map((token: string) => this.setupHeaders(request, token)));\r\n        } else {\r\n            return of(this.setupHeaders(request, null));\r\n        }\r\n    }\r\n\r\n    private setupHeaders(request: HttpRequest<any>, token: string): HttpHeaders {\r\n        let headers = request.headers;\r\n        const config = this.coreService.getConfig();\r\n        const isFormData = request.body instanceof FormData;\r\n\r\n        this.logService.information(`${this.errorPrefix}The request has a header authorization.`, config);\r\n\r\n        if (!headers.has('Authorization') && token) {\r\n            headers = headers.set('Authorization', `${config.authorizationType} ${token}`);\r\n        }\r\n        if (!headers.has('X-CSRF-Token') && config.CSRFToken) {\r\n            headers = headers.set('X-CSRF-Token', `${config.CSRFToken}`);\r\n\r\n            if (config.CSRFCookie) {\r\n                headers = headers.set('X-CSRF-Cookie', `${config.CSRFCookie}`);\r\n            }\r\n        }\r\n        if (!headers.has('Content-Type') && !isFormData) {\r\n            headers = headers.set('Content-Type', `application/json; charset=${config.charset}`);\r\n        }\r\n        if (!headers.has('Language-Code')) {\r\n            headers = headers.set('Language-Code', config.locale);\r\n        }\r\n        return headers;\r\n    }\r\n\r\n    private checkIfWeCanManageError(error: any, originalRequest: HttpRequest<any>): Observable<HttpRequest<any>> {\r\n        const config = this.coreService.getConfig();\r\n        const loginUrl = config.loginURL();\r\n        this.logService.information(`${this.errorPrefix}Check if we can refresh the accessToken.`, error);\r\n        if (error.status === 401 && config.accessToken && config.allowRefreshToken) {\r\n            this.logService.information(`${this.errorPrefix}Try to refresh the user access token.`);\r\n            return this.retryWithNewToken(originalRequest, loginUrl);\r\n        } else if (error.status === 401 && config.accessToken && location.pathname !== loginUrl) {\r\n            this.logout();\r\n        } else if (error.status === 200) {\r\n            if (error.message && error.message.indexOf('Http failure during parsing for') === 0) {\r\n                this.logService.information(`${this.errorPrefix}Does not receive a JSON, so the call is send with \"text/html\".`);\r\n                return of(this.resendAsHTML(originalRequest));\r\n            }\r\n        }\r\n\r\n        this.logService.information(`${this.errorPrefix}Error receive can't be manage.`);\r\n        return throwError(() => error);\r\n    }\r\n\r\n    private retryWithNewToken(request: HttpRequest<any>, loginUrl: string): Observable<HttpRequest<any>> {\r\n        return this.tokenProvider.getNewToken().pipe(map((token: string) => this.handleRefreshResponse(request, token, loginUrl)));\r\n    }\r\n\r\n    private handleRefreshResponse(request: HttpRequest<any>, token: any, loginUrl: string): HttpRequest<any> {\r\n        if (!token && location.pathname !== loginUrl) {\r\n            this.logout();\r\n        }\r\n        this.logService.information(`${this.errorPrefix}Refresh accessToken work.`);\r\n        return request;\r\n    }\r\n\r\n    private logout(): void {\r\n        const currentUrl = this.router.routerState.snapshot.url;\r\n        const config = this.coreService.getConfig();\r\n        this.logService.disconnection(`${this.errorPrefix}Could not refresh access token, redirect to login page.`);\r\n        if (config.useLogoutService) {\r\n            this.logoutHandler?.logoutWithMessage(currentUrl);\r\n        } else {\r\n            const params = config.keepReturnUrlWhenRedirectingToLogin ? { returnUrl: currentUrl } : {};\r\n            this.router.navigate([config.loginURL()], { queryParams: params });\r\n        }\r\n    }\r\n\r\n    private resendAsHTML(originalRequest: HttpRequest<any>): HttpRequest<any> {\r\n        const config = this.coreService.getConfig();\r\n        let headers = originalRequest.headers;\r\n        headers = headers.set('Content-Type', `text/html; charset=${config.charset}`);\r\n        return originalRequest.clone({ responseType: 'text', headers, });\r\n    }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport {Observable} from 'rxjs';\r\nimport {map} from 'rxjs/operators';\r\nimport {CaucaCoreService} from '../../cauca-core.service';\r\n\r\n@Injectable()\r\nexport class HttpTokenReaderInterceptor implements HttpInterceptor {\r\n    private coreService = inject(CaucaCoreService);\r\n\r\n\r\n    public intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n        return next.handle(request).pipe(\r\n            map((response: HttpResponse<any>) => {\r\n                if (response.headers && response.headers.get('x-csrf-token')) {\r\n                    this.coreService.getConfig().CSRFToken = response.headers.get('x-csrf-token');\r\n                }\r\n                if (response.headers && response.headers.get('x-csrf-cookie')) {\r\n                    this.coreService.getConfig().CSRFCookie = response.headers.get('x-csrf-cookie');\r\n                }\r\n\r\n                return response;\r\n            })\r\n        );\r\n    }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { HttpInterceptor, HttpErrorResponse, HttpEvent, HttpHandler, HttpRequest } from '@angular/common/http';\r\nimport { Observable, throwError, timer } from 'rxjs';\r\nimport { catchError, retry } from 'rxjs/operators';\r\nimport { Configuration } from '../classes/configuration';\r\nimport { CaucaCoreService } from '../../cauca-core.service';\r\nimport { InterceptorErrorService } from './interceptor-error.service';\r\nimport { LogService } from '../services/log.service';\r\n\r\n@Injectable()\r\nexport class HttpErrorInterceptor implements HttpInterceptor {\r\n    private logService = inject(LogService);\r\n    private interceptorErrorService = inject(InterceptorErrorService);\r\n\r\n    private config: Configuration;\r\n\r\n    public constructor() {\r\n        const coreService = inject(CaucaCoreService);\r\n\r\n        this.config = coreService.getConfig();\r\n    }\r\n\r\n    public intercept(\r\n        request: HttpRequest<any>,\r\n        next: HttpHandler,\r\n    ): Observable<HttpEvent<any>> {\r\n        return next.handle(request).pipe(\r\n            retry({\r\n                count: this.config.nbRetryOnNetworkError,\r\n                delay: (error: HttpErrorResponse) => this.handleRetry(error)\r\n            }),\r\n            catchError((error: any) => this.handleError(error, request))\r\n        );\r\n    }\r\n\r\n    private handleRetry(error: HttpErrorResponse): Observable<any> {\r\n        const isNetworkError = [0, 408, 502, 503, 504].includes(error.status);\r\n\r\n        this.logService.information(`Interceptor - HttpErrorInterceptor - Status code \"${error.status}\"`);\r\n        if (isNetworkError) {\r\n            return timer(100);\r\n        }\r\n\r\n        throw error;\r\n    }\r\n\r\n    private handleError(error: any, request: HttpRequest<any>): Observable<never> {\r\n        if (error instanceof HttpErrorResponse) {\r\n            if (error.status === 0) {\r\n                this.interceptorErrorService.append(0, 'La demande ne peut être complétée.');\r\n            } else if (error.status === 400) {\r\n                if (error.error && error.error.message) {\r\n                    this.interceptorErrorService.append(400, error.error.message);\r\n                } else if (error.error && error.error.title) {\r\n                    this.interceptorErrorService.append(400, error.error.title);\r\n                } else if (error.error) {\r\n                    if (typeof error.error === 'string') {\r\n                        this.interceptorErrorService.append(400, error.error);\r\n                    }\r\n                } else if (error.statusText) {\r\n                    this.interceptorErrorService.append(400, error.statusText);\r\n                } else {\r\n                    this.interceptorErrorService.append(400, 'La demande ne peut pas être complétée.');\r\n                }\r\n            } else if (error.status === 404) {\r\n                this.interceptorErrorService.append(404, 'Le URL demandé n\\'existe pas.');\r\n            } else if (error.status === 500) {\r\n                this.interceptorErrorService.append(500, 'Erreur de communication.');\r\n            } else if (error.status !== 200 && error.status !== 401) {\r\n                this.interceptorErrorService.append(error.status, error.statusText);\r\n            }\r\n        }\r\n        if (this.config.onHttpError != null) {\r\n            this.config.onHttpError(error, request.method, request.urlWithParams);\r\n        }\r\n        return throwError(() => error);\r\n    }\r\n}\r\n","\r\nexport class CustomMissingTranslationHandler {\r\n    public handle(params: any): string {\r\n        return `i18n \"${params.key}\" is missing`;\r\n    }\r\n}\r\n","import { HttpClient, HttpBackend } from '@angular/common/http';\r\nimport {forkJoin, of, Observable} from 'rxjs';\r\nimport {catchError, map} from 'rxjs/operators';\r\nimport {CoreModuleOptions} from '../models/core-module-options';\r\nimport {ResourceOptions} from './resource-options';\r\nimport { TranslateLoader } from '@ngx-translate/core';\r\n\r\nexport class CustomMultiTranslateHttpLoader implements TranslateLoader {\r\n    private http: HttpClient;\r\n    private resources: ResourceOptions[] = [{\r\n        prefix: '/assets/i18n/',\r\n        suffix: '.json',\r\n    }, {\r\n        prefix: '/assets/i18n/cauca/',\r\n        suffix: '-core.json',\r\n    }];\r\n\r\n    public constructor(\r\n        httpBackend: HttpBackend,\r\n        options: CoreModuleOptions\r\n    ) {\r\n        this.http = new HttpClient(httpBackend);\r\n\r\n        if (options && options.libraries) {\r\n            options.libraries.forEach((library: string) => {\r\n                this.resources.push({\r\n                    prefix: '/assets/i18n/cauca/',\r\n                    suffix: `-${library}.json`,\r\n                } as ResourceOptions);\r\n            });\r\n        }\r\n        if (options && options.i18nPaths) {\r\n            options.i18nPaths.forEach((path: string) => {\r\n                this.resources.push({\r\n                    prefix: `/assets/i18n/${path}/`,\r\n                    suffix: `.json`,\r\n                } as ResourceOptions);\r\n            });\r\n        }\r\n    }\r\n\r\n    public getTranslation(lang: string): Observable<any> {\r\n        return forkJoin(\r\n            this.resources.map((config: ResourceOptions) => this.getOneResourceTranslation(lang, config))\r\n        ).pipe(\r\n            map((response: any) => response.reduce((a: any, b: any) => Object.assign(a, b)))\r\n        );\r\n    }\r\n\r\n    public getOneResourceTranslation(lang: string, config: ResourceOptions): Observable<any> {\r\n        return this.http.get(`${config.prefix}${lang}${config.suffix}`).pipe(\r\n            catchError(() => of({}))\r\n        );\r\n    }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { HttpClient, HttpBackend } from '@angular/common/http';\r\nimport { forkJoin, Observable, Observer } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { of } from 'rxjs';\r\nimport { TranslateService as NgxTranslateService } from '@ngx-translate/core';\r\nimport { CaucaCoreService } from '../../cauca-core.service';\r\n\r\n/**\r\n* @deprecated Use TranslateService from @ngx-translate/core instead. You need to use provideCaucaCore to make it work.\r\n* You can also use the `provideTestingTranslation()` function in your tests to provide a mock TranslateService.\r\n*/\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class TranslateService extends NgxTranslateService {\r\n    private coreService = inject(CaucaCoreService);\r\n\r\n    private http: HttpClient;\r\n    private multiLangDictionary: any = {};\r\n\r\n    public constructor() {\r\n        super();\r\n        this.http = new HttpClient(inject(HttpBackend));\r\n    }\r\n\r\n    public async appInitializer(): Promise<void> {\r\n        const config = this.coreService.getConfig();\r\n        this.addLangs(config.languages);\r\n        this.setFallbackLang(config.locale);\r\n        return new Promise((resolve: any) => {\r\n            this.use(config.locale)\r\n                .subscribe({ complete: () => resolve() });\r\n        });\r\n    }\r\n\r\n    public getMultilingualTranslations(languages: string[], wordsToTranslate: string[]): Observable<any> {\r\n        if (!this.multiLangDictionary[languages[0]]) {\r\n            return forkJoin(\r\n                this.coreService.getConfig().languages.map((lang: string) => this.loadOneLanguage(lang))\r\n            ).pipe(\r\n                map(() => this.getTranslationForSpecificLanguages(languages, wordsToTranslate))\r\n            );\r\n        }\r\n\r\n        return new Observable((observer: Observer<any>) => {\r\n            observer.next(this.getTranslationForSpecificLanguages(languages, wordsToTranslate));\r\n            observer.complete();\r\n        });\r\n    }\r\n\r\n    private loadOneLanguage(lang: string): Observable<void> {\r\n        return this.currentLoader.getTranslation(lang).pipe(\r\n            catchError(() => of({})),\r\n            map((result: any) => {\r\n                this.multiLangDictionary[lang] = result;\r\n            })\r\n        );\r\n    }\r\n\r\n    private getTranslationForSpecificLanguages(languages: string[], wordsToTranslate: string[]): any {\r\n        const objectToReturn = {};\r\n\r\n        languages.forEach((lang: string) => {\r\n            objectToReturn[lang] = {};\r\n            wordsToTranslate.forEach((word: string) => {\r\n                const levels = word.split('.');\r\n                let translation = this.multiLangDictionary[lang];\r\n                levels.forEach((level: string) => {\r\n                    translation = translation[level];\r\n                });\r\n                objectToReturn[lang][word] = translation;\r\n            });\r\n        });\r\n\r\n        return objectToReturn;\r\n    }\r\n}\r\n","import { EnvironmentProviders, Injector, LOCALE_ID, NgModule, Provider, inject, provideAppInitializer } from '@angular/core';\r\nimport { LOCATION_INITIALIZED } from '@angular/common';\r\nimport { HTTP_INTERCEPTORS, HttpBackend, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport { MissingTranslationHandler, TranslateLoader, TranslateModule, provideTranslateService } from '@ngx-translate/core';\r\nimport { CaucaCoreComponent } from './cauca-core.component';\r\nimport { CaucaCoreService } from './cauca-core.service';\r\nimport { CAUCA_CORE_MODULE_OPTIONS } from './shared/constants/cauca-core-module-options';\r\nimport { CaucaPageNotFoundComponent } from './cauca-page-not-found/cauca-page-not-found.component';\r\nimport { HttpOfflineInterceptor } from './shared/interceptors/http-offline-interceptor';\r\nimport { HttpTokenWriterInterceptor } from './shared/interceptors/http-token-writer-interceptor';\r\nimport { HttpTokenReaderInterceptor } from './shared/interceptors/http-token-reader-interceptor';\r\nimport { HttpErrorInterceptor } from './shared/interceptors/http-error-interceptor';\r\nimport { CustomMissingTranslationHandler } from './shared/ngx-translate/custom-missing-translation-handler';\r\nimport { CustomMultiTranslateHttpLoader } from './shared/ngx-translate/custom-multi-translate-http-loader';\r\nimport { TranslateService } from './shared/services/translate.service';\r\nimport { CoreModuleOptions } from './shared/models/core-module-options';\r\nimport { LogService } from './shared/services/log.service';\r\nimport { RefreshTokenService } from './shared/services/refresh-token.service';\r\nimport { LOGOUT_HANDLER_TOKEN, REFRESH_URL_SERVICE_TOKEN } from './shared/tokens/injection-tokens';\r\n\r\nconst configFactory = (coreService: CaucaCoreService): string => (\r\n    coreService.getConfig().locale\r\n);\r\n\r\n const translateFactory = (\r\n    translateService: TranslateService,\r\n    coreOptions: CoreModuleOptions,\r\n    coreService: CaucaCoreService,\r\n    logService: LogService,\r\n    injector: Injector\r\n): any => {\r\n    const promise = async () => {\r\n        await coreService.appInitializer(coreOptions);\r\n        await injector.get(LOCATION_INITIALIZED, Promise.resolve(null));\r\n\r\n        logService.information(`CaucaCoreModule - Use config.`, coreService.getConfig());\r\n\r\n        return translateService.appInitializer();\r\n    };\r\n    return promise;\r\n};\r\n\r\nconst TRANSLATE_CONFIGURATION = {\r\n    loader: {\r\n        provide: TranslateLoader,\r\n        useClass: CustomMultiTranslateHttpLoader,\r\n        deps: [HttpBackend, CAUCA_CORE_MODULE_OPTIONS]\r\n    },\r\n    missingTranslationHandler: {\r\n        provide: MissingTranslationHandler,\r\n        useClass: CustomMissingTranslationHandler,\r\n    },\r\n};\r\n\r\nexport function provideCaucaCore(options: CoreModuleOptions): (Provider|EnvironmentProviders)[] {\r\n    const providers: (Provider|EnvironmentProviders)[] = [\r\n        CaucaCoreService,\r\n        RefreshTokenService,\r\n        { provide: CAUCA_CORE_MODULE_OPTIONS, useValue: options },\r\n        {\r\n            provide: HTTP_INTERCEPTORS,\r\n            useClass: HttpOfflineInterceptor,\r\n            multi: true\r\n        }, {\r\n            provide: HTTP_INTERCEPTORS,\r\n            useClass: HttpTokenWriterInterceptor,\r\n            multi: true\r\n        }, {\r\n            provide: HTTP_INTERCEPTORS,\r\n            useClass: HttpTokenReaderInterceptor,\r\n            multi: true\r\n        }, {\r\n            provide: HTTP_INTERCEPTORS,\r\n            useClass: HttpErrorInterceptor,\r\n            multi: true\r\n        }, {\r\n            provide: options.locale,\r\n            useFactory: configFactory,\r\n            deps: [CaucaCoreService]\r\n        },\r\n        provideAppInitializer(() => {\r\n            const initializerFn = (translateFactory)(inject(TranslateService), inject(CAUCA_CORE_MODULE_OPTIONS), inject(CaucaCoreService), inject(LogService), inject(Injector));\r\n            return initializerFn();\r\n        }),\r\n        { provide: LOCALE_ID, useFactory: configFactory, deps: [CaucaCoreService] },\r\n        ...provideTranslateService(TRANSLATE_CONFIGURATION),\r\n    ];\r\n\r\n    if (options.logoutService) {\r\n        providers.push({ provide: LOGOUT_HANDLER_TOKEN, useClass: options.logoutService });\r\n    }\r\n    if (options.refreshUrlService) {\r\n        providers.push({ provide: REFRESH_URL_SERVICE_TOKEN, useClass: options.refreshUrlService });\r\n    }\r\n\r\n    return providers;\r\n}\r\n\r\n/**\r\n * @deprecated Use provideCaucaCore() instead\r\n */\r\n@NgModule({ declarations: [\r\n    CaucaCoreComponent,\r\n    CaucaPageNotFoundComponent,\r\n    ],\r\n    exports: [\r\n        CaucaCoreComponent,\r\n        CaucaPageNotFoundComponent,\r\n        TranslateModule,\r\n    ],\r\n    imports: [\r\n        TranslateModule.forRoot(TRANSLATE_CONFIGURATION)], providers: [\r\n        CaucaCoreService,\r\n        RefreshTokenService,\r\n        {\r\n            provide: HTTP_INTERCEPTORS,\r\n            useClass: HttpOfflineInterceptor,\r\n            multi: true\r\n        }, {\r\n            provide: HTTP_INTERCEPTORS,\r\n            useClass: HttpTokenWriterInterceptor,\r\n            multi: true\r\n        }, {\r\n            provide: HTTP_INTERCEPTORS,\r\n            useClass: HttpTokenReaderInterceptor,\r\n            multi: true\r\n        }, {\r\n            provide: HTTP_INTERCEPTORS,\r\n            useClass: HttpErrorInterceptor,\r\n            multi: true\r\n        }, {\r\n            provide: LOCALE_ID,\r\n            useFactory: configFactory,\r\n            deps: [CaucaCoreService]\r\n        },\r\n        provideAppInitializer(() => {\r\n        const initializerFn = (translateFactory)(inject(TranslateService), inject(CAUCA_CORE_MODULE_OPTIONS), inject(CaucaCoreService), inject(LogService), inject(Injector));\r\n        return initializerFn();\r\n        }),\r\n        provideHttpClient(withInterceptorsFromDi())\r\n    ] })\r\nexport class CaucaCoreModule {\r\n}","import { NgModule } from '@angular/core';\r\nimport { HttpBackend } from '@angular/common/http';\r\nimport { MissingTranslationHandler, TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { CaucaCoreService } from './cauca-core.service';\r\nimport { CAUCA_CORE_MODULE_OPTIONS } from './shared/constants/cauca-core-module-options';\r\nimport { CustomMissingTranslationHandler } from './shared/ngx-translate/custom-missing-translation-handler';\r\nimport { CustomMultiTranslateHttpLoader } from './shared/ngx-translate/custom-multi-translate-http-loader';\r\n\r\nexport const configFactoryForLazyLoading = (coreService: CaucaCoreService): string => (\r\n    coreService.getConfig().locale\r\n);\r\n\r\nconst TRANSLATE_CONFIGURATION = {\r\n    loader: {\r\n        provide: TranslateLoader,\r\n        useClass: CustomMultiTranslateHttpLoader,\r\n        deps: [HttpBackend, CAUCA_CORE_MODULE_OPTIONS]\r\n    },\r\n    missingTranslationHandler: {\r\n        provide: MissingTranslationHandler,\r\n        useClass: CustomMissingTranslationHandler,\r\n    },\r\n};\r\n\r\n/**\r\n * @deprecated Import TranslatePipe directly in your standalone components and use the `provideTestingTranslation()` function in your tests.\r\n */\r\n@NgModule({\r\n    declarations: [],\r\n    exports: [\r\n        TranslateModule,\r\n    ],\r\n    imports: [\r\n        TranslateModule.forChild(TRANSLATE_CONFIGURATION),\r\n    ],\r\n    providers: [],\r\n})\r\nexport class CaucaCoreForChildModule {\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Observer } from 'rxjs';\r\nimport { ApiLookup } from '../models/api-lookup';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ApiLookupService {\r\n  private http = inject(HttpClient);\r\n\r\n\r\n  public constructor() {\r\n    const http = this.http;\r\n\r\n    this.http = http;\r\n  }\r\n\r\n  public getIpInformation(): Observable<ApiLookup> {\r\n    return new Observable((observer: Observer<ApiLookup>) => {\r\n      this.lookupIpWithIpApi().subscribe((result: ApiLookup) => {\r\n        observer.next(result);\r\n        observer.complete();\r\n      }, () => {\r\n        this.lookupIpWithGeoIpDb().subscribe((result: ApiLookup) => {\r\n          observer.next(result);\r\n          observer.complete();\r\n        }, () => {\r\n          observer.error('Can\\'t lookup the IP address');\r\n        });\r\n      });\r\n    });\r\n  }\r\n\r\n  private lookupIpWithGeoIpDb(): Observable<ApiLookup> {\r\n    return new Observable((observer: Observer<ApiLookup>) => {\r\n      this.http.get('http://geoip-db.com/json').subscribe((response: any) => {\r\n        observer.next({\r\n          country: response['country_code'],\r\n          countryName: response['country_name'],\r\n          stateName: response['state'],\r\n          cityName: response['city'],\r\n          longitude: response['longitude'],\r\n          latitude: response['latitude'],\r\n          ipAddress: response['IPv4'],\r\n        } as ApiLookup);\r\n        observer.complete();\r\n      }, (error: any) => {\r\n        observer.error(error);\r\n      });\r\n    });\r\n  }\r\n\r\n  private lookupIpWithIpApi(): Observable<ApiLookup> {\r\n    return new Observable((observer: Observer<ApiLookup>) => {\r\n      this.http.get('http://ip-api.com/json').subscribe((response: any) => {\r\n        observer.next({\r\n          country: response['countryCode'],\r\n          countryName: response['country'],\r\n          state: response['region'],\r\n          stateName: response['regionName'],\r\n          cityName: response['city'],\r\n          isp: response['isp'],\r\n          longitude: response['lon'],\r\n          latitude: response['lat'],\r\n          ipAddress: response['query'],\r\n        } as ApiLookup);\r\n        observer.complete();\r\n      }, (error: any) => {\r\n        observer.error(error);\r\n      });\r\n    });\r\n  }\r\n}\r\n","import {NetworkQuality} from '../models/network-quality';\r\n\r\nexport class NetworkEstimates {\r\n    public qualities: NetworkQuality[] = [{\r\n        type: 'GPRS',\r\n        minimum: (20 * 1024),\r\n        estimate: '50 Kb/s (max estimate)',\r\n    }, {\r\n        type: 'Regular2G',\r\n        minimum: (50 * 1024),\r\n        estimate: '250 Kb/s (max estimate)',\r\n    }, {\r\n        type: 'Good2G',\r\n        minimum: (250 * 1024),\r\n        estimate: '450 Kb/s (max estimate)',\r\n    }, {\r\n        type: 'Regular3G',\r\n        minimum: (450 * 1024),\r\n        estimate: '750 Kb/s (max estimate)',\r\n    }, {\r\n        type: 'Good3G',\r\n        minimum: (750 * 1024),\r\n        estimate: '1.5 Mb/s (max estimate)',\r\n    }, {\r\n        type: 'DSL',\r\n        minimum: (1.5 * 1024 * 1024),\r\n        estimate: '',\r\n    }, {\r\n        type: 'Regular4G',\r\n        minimum: (3 * 1024 * 1024),\r\n        estimate: '4 Mb/s (max estimate)',\r\n    }, {\r\n        type: 'WIFI',\r\n        minimum: (15 * 1024 * 1024),\r\n        estimate: '30 Mb/s (min estimate)',\r\n    }, {\r\n        type: 'Fiber',\r\n        minimum: (30 * 1024 * 1024),\r\n        estimate: '30 Mb/s (max estimate)',\r\n    }, {\r\n        type: 'LAN',\r\n        minimum: (0.5 * 1024 * 1024 * 1024),\r\n        estimate: '500 Mb/s (min estimate)',\r\n    }];\r\n\r\n    public estimate(speedBps: number): string {\r\n        let estimate = '';\r\n\r\n        this.qualities.forEach((quality: NetworkQuality) => {\r\n            if (speedBps > quality.minimum) {\r\n                estimate = quality.estimate;\r\n            }\r\n        });\r\n\r\n        return estimate;\r\n    }\r\n}\r\n","import { EventEmitter, Injectable, inject } from '@angular/core';\r\nimport { Observable, Observer } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ApiLookupService } from './api-lookup.service';\r\nimport { ApiLookup } from '../models/api-lookup';\r\nimport { NetworkEstimates } from '../classes/network-estimates';\r\nimport { LogService } from './log.service';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class NetworkInformationService {\r\n\r\n  public statusChange = new EventEmitter();\r\n\r\n  private estimates: NetworkEstimates = new NetworkEstimates();\r\n  private readonly apiLookupService = inject(ApiLookupService);\r\n  private readonly logService = inject(LogService);\r\n\r\n  public constructor() {\r\n    window.addEventListener('online', () => this.onStatusChange(true));\r\n    window.addEventListener('offline', () => this.onStatusChange(false));\r\n  }\r\n\r\n  public getConnectionSpeed(): Observable<string> {\r\n    return new Observable<string>((observer: Observer<string>) => {\r\n      if (navigator && navigator['connection'] && navigator['connection']['downlink']) {\r\n        observer.next(`${navigator['connection']['downlink']} Mb/s`);\r\n        observer.complete();\r\n      } else {\r\n        this.estimateDownlink(observer);\r\n      }\r\n    });\r\n  }\r\n\r\n  public getIpAddress(): Observable<string> {\r\n    return this.apiLookupService.getIpInformation().pipe(\r\n      map((info: ApiLookup) => info.ipAddress)\r\n    );\r\n  }\r\n\r\n  private estimateDownlink(observer: Observer<string>): void {\r\n    const startTime = (new Date()).getTime();\r\n    const download = new Image();\r\n    const imageUrl = 'https://eoimages.gsfc.nasa.gov/images/imagerecords/73000/73751/world.topo.bathy.200407.3x21600x10800.jpg';\r\n\r\n    download.onload = () => {\r\n      const duration = ((new Date()).getTime() - startTime) / 1000;\r\n      const downloadSize = 27201049;\r\n      const bitsLoaded = downloadSize * 8;\r\n      const speedBps = (bitsLoaded / duration);\r\n\r\n      observer.next(this.estimates.estimate(speedBps));\r\n      observer.complete();\r\n    };\r\n    download.onerror = (error: any) => {\r\n      this.logService.warning('Error when estimate connection speed', error);\r\n      observer.error(error);\r\n    };\r\n    download.src = `${imageUrl}?_=${startTime}`;\r\n  }\r\n\r\n  private onStatusChange(online: boolean): void {\r\n    this.statusChange.emit(online);\r\n  }\r\n}\r\n","import { EventEmitter, NgModule } from '@angular/core';\r\nimport { provideHttpClientTesting } from '@angular/common/http/testing';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CaucaCoreModule } from './cauca-core.module';\r\nimport { Observable } from 'rxjs';\r\nimport { TranslateService } from './shared/services/translate.service';\r\nimport { NetworkInformationService } from './shared/services/network-information.service';\r\nimport { ApiLookupService } from './shared/services/api-lookup.service';\r\nimport { ApiLookup } from './shared/models/api-lookup';\r\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\n\r\nconst getIpInformation = () => new Observable<ApiLookup>();\r\nexport const createApiLookupServiceSpy = (): any => ({\r\n  getIpInformation\r\n});\r\n\r\nconst getConnectionSpeed = () => new Observable<string>();\r\nconst getIpAddress = () => new Observable<string>();\r\nexport const createNetworkInformationServiceSpy = (): any => ({\r\n  statusChange: new EventEmitter(),\r\n  getConnectionSpeed,\r\n  getIpAddress,\r\n});\r\n\r\nconst get = (): Observable<any> => new Observable();\r\nconst appInitializer = (): Promise<void> => Promise.resolve();\r\nconst getMultilingualTranslations = (): Observable<any> => new Observable();\r\nconst instant = (): string => '';\r\nexport const createTranslateServiceSpy = (): any => ({\r\n  get,\r\n  appInitializer,\r\n  getMultilingualTranslations,\r\n  instant\r\n});\r\n\r\n/**\r\n * @deprecated This was mocking CaucaCoreModule which is deprecated.\r\n * - You can create your own mock for ApiLookupService, NetworkInformationService.\r\n * - You should not use CaucaCore's TranslateService.\r\n * - You can mock TranslateService and TranslatePipe if needed.\r\n * - You can use provideHttpclient(..) and provideHttpclientTesting() for http testing.\r\n */\r\n@NgModule({ exports: [\r\n        CaucaCoreModule,\r\n    ], imports: [CaucaCoreModule,\r\n        TranslateModule.forRoot()], providers: [\r\n        { provide: ApiLookupService, useValue: createApiLookupServiceSpy() },\r\n        { provide: NetworkInformationService, useValue: createNetworkInformationServiceSpy() },\r\n        { provide: TranslateService, useValue: createTranslateServiceSpy() },\r\n        provideHttpClient(withInterceptorsFromDi()),\r\n        provideHttpClientTesting()\r\n    ] })\r\nexport class CaucaCoreTestingModule {\r\n}\r\n","import { Provider } from '@angular/core';\r\nimport {\r\n  MissingTranslationHandler,\r\n  MissingTranslationHandlerParams,\r\n  provideTranslateService,\r\n  TranslateLoader,\r\n} from '@ngx-translate/core';\r\nimport { of } from 'rxjs';\r\n\r\nclass FakeMissingTranslationHandler implements MissingTranslationHandler {\r\n  public handle(params: MissingTranslationHandlerParams): string {\r\n    return params.key;\r\n  }\r\n}\r\n\r\nexport function provideTestingTranslation(\r\n  translations: Record<string, string> = {}\r\n): Provider[] {\r\n  return [\r\n    provideTranslateService({\r\n      lang: 'en',\r\n      fallbackLang: 'en',\r\n      loader: {\r\n        provide: TranslateLoader,\r\n        useValue: {\r\n          getTranslation: () => of(translations),\r\n        } satisfies TranslateLoader,\r\n      },\r\n      missingTranslationHandler: {\r\n        provide: MissingTranslationHandler,\r\n        useClass: FakeMissingTranslationHandler,\r\n      },\r\n    }),\r\n  ];\r\n}","<mat-card class=\"page-content\">\n    <h1 class=\"title-label title\">{{ 'core.pageNotFound.title' | translate }}</h1>\n    <div class=\"actions\">\n        @if (homeRoute()) {\n            <span class=\"action action-link\" (click)=\"onGoHome()\">{{ 'core.pageNotFound.goHome' | translate }}</span>\n        }\n        @if (showGoBack()) {\n            <span class=\"action action-link\" (click)=\"onGoBack()\">{{ 'core.pageNotFound.goBack' | translate }}</span>\n        }\n    </div>\n</mat-card>\n","import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { MatCard } from '@angular/material/card';\nimport { MatButton } from '@angular/material/button';\n\n@Component({\n    selector: 'cauca-not-found',\n    templateUrl: './not-found.component.html',\n    styleUrls: ['./not-found.component.scss'],\n    standalone: true,\n    imports: [TranslatePipe, MatCard, MatButton],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NotFoundComponent {\n    public readonly homeRoute = input<string>();\n    public readonly showGoBack = input(false);\n\n    private readonly router = inject(Router);\n    private readonly location = inject(Location);\n\n    public onGoHome(): void {\n        const route = this.homeRoute();\n        if (route) {\n            void this.router.navigateByUrl(route);\n        }\n    }\n\n    public onGoBack(): void {\n        this.location.back();\n    }\n}\n","export class Browser {\r\n    public browserName = 'unknown';\r\n    public browserVersion = 'unknown';\r\n    public engineName = 'unknown';\r\n    public engineVersion = 'unknown';\r\n\r\n    private agent = (typeof(navigator) === 'object' ? navigator.userAgent.toLowerCase() : '' );\r\n    private pattern: {\r\n        browser: RegExp;\r\n        engine: RegExp;\r\n    };\r\n\r\n    public constructor() {\r\n        this.detectBrowser();\r\n        this.detectVersion();\r\n    }\r\n\r\n    public toString(): string {\r\n        return `Browser: ${this.browserName} (${this.browserVersion}), Engine: ${this.engineName} (${this.engineVersion})`;\r\n    }\r\n\r\n    private detectVersion(): void {\r\n        if (this.browserVersion === 'unknown') {\r\n            const browserVersion = this.agent.match(this.pattern.browser);\r\n            this.browserVersion = (browserVersion ? (browserVersion[2] ? browserVersion[2] : browserVersion[1]) : 'unknown');\r\n        }\r\n\r\n        if (this.engineVersion === 'unknown') {\r\n            const engineVersion = this.agent.match(this.pattern.engine);\r\n            this.engineVersion = (engineVersion ? engineVersion[1] : 'unknown');\r\n        }\r\n    }\r\n\r\n    private detectBrowser(): void {\r\n        if (this.agent.match(/webkit/)) {\r\n            this.detectWebkitBrowser();\r\n        } else if (this.agent.match(/trident|msie/)) {\r\n            this.detectTridentBrowser();\r\n        } else if (this.agent.match(/gecko/)) {\r\n            this.detectGeckoBrowser();\r\n        } else if (this.agent.match(/presto/)) {\r\n            this.pattern = {\r\n                browser: /version\\/([0-9\\.]+)/,\r\n                engine: /presto\\/([0-9\\.]+)/,\r\n            };\r\n            this.engineName = 'presto';\r\n            this.browserName = 'opera';\r\n        }\r\n    }\r\n\r\n    private detectGeckoBrowser(): void {\r\n        this.pattern = {\r\n            browser: /gecko\\/([0-9\\.]+)/,\r\n            engine: /rv:([0-9\\.]+)/,\r\n        };\r\n        this.engineName = 'gecko';\r\n\r\n        if (this.agent.match(/firefox/)) {\r\n            this.pattern.browser = /firefox\\/([0-9\\.]+)/;\r\n            this.browserName = 'firefox';\r\n        }\r\n    }\r\n\r\n    private detectTridentBrowser(): void {\r\n        this.pattern = {\r\n            browser: /msie ([0-9\\.]+)/,\r\n            engine: /trident\\/([0-9\\.]+)/,\r\n        };\r\n        this.engineName = 'trident';\r\n        this.browserName = 'msie';\r\n\r\n        if (this.agent.match(/rv:/)) {\t\t\t\t// Internet Explorer 11 et +\r\n            this.pattern.browser = /rv:([0-9\\.]+)/;\r\n        } else if (!this.agent.match(/msie/)) {      // No \"rv:\" and no \"msie\", we assume that it's IE 11\r\n            this.browserVersion = '11.0';\r\n        }\r\n    }\r\n\r\n    private detectWebkitBrowser(): void {\r\n        this.pattern = {\r\n            browser: /webkit\\/([0-9\\.]+)/,\r\n            engine: /applewebkit\\/([0-9\\.]+)/,\r\n        };\r\n        this.engineName = 'webkit';\r\n\r\n        if (this.agent.match(/edge/)) {              // Microsoft Edge\r\n            this.pattern.browser = /edge\\/([0-9\\.]+)/;\r\n            this.engineName = 'edgeHTML';\r\n            this.browserName = 'edge';\r\n        } else if (this.agent.match(/chrome/)) {\r\n            // The web engine \"blink\" is used on many browser (Chrome, Opera, Vivaldi)\r\n            this.engineName = 'blink';\r\n\r\n            if (this.agent.match(/vivaldi/)) {\t\t// Vivaldi\r\n                this.pattern.browser = /vivaldi\\/([0-9\\.]+)/;\r\n                this.browserName = 'vivaldi';\r\n            } else if (this.agent.match(/opr/)) {\t\t// Opera\r\n                this.pattern.browser = /opr\\/([0-9\\.]+)/;\r\n                this.browserName = 'opera';\r\n            } else if (this.agent.match(/crios/)) {  // Chrome on iOS\r\n                this.pattern.browser = /crios\\/([0-9\\.]+)/;\r\n                this.browserName = 'chrome';\r\n            } else {\t\t\t\t\t\t\t\t\t    // Chrome\r\n                this.pattern.browser = /chrom(e|ium)\\/([0-9\\.]+)/;\r\n                this.browserName = 'chrome';\r\n            }\r\n        } else if (this.agent.match(/safari/)) {\t   \t// Safari\r\n            this.pattern.browser = /version\\/([0-9\\.]+)/;\r\n            this.browserName = 'safari';\r\n        }\r\n    }\r\n}\r\n","export class OperatingSystem {\r\n    public name = 'unknown';\r\n    public version = 'unknown';\r\n\r\n    private agent = (typeof(navigator) === 'object' ? navigator.userAgent.toLowerCase() : '' );\r\n\r\n    public constructor() {\r\n        this.detect();\r\n    }\r\n\r\n    public toString(): string {\r\n        return `OS: ${this.name} (${this.version})`;\r\n    }\r\n\r\n    private detect(): void {\r\n        const os = [\r\n            {name: 'iOS', pattern: /iphone|ipad|ipod/},\r\n            {name: 'Android', pattern: /android/},\r\n            {name: 'Blackberry', pattern: /blackberry/},\r\n            {name: 'Windows', pattern: /win/},\r\n            {name: 'Chrome OS', pattern: /cros/},\r\n            {name: 'Mac OS', pattern: /mac/},\r\n            {name: 'Linux', pattern: /linux|x11/},\r\n            {name: 'Open BSD', pattern: /openbsd/},\r\n            {name: 'Unix', pattern: /unix/},\r\n            {name: 'Sun OS', pattern: /sunos/},\r\n            {name: 'beOS', pattern: /beos/},\r\n            {name: 'QNX', pattern: /qnx/},\r\n            {name: 'os2', pattern: /os\\/2/}\r\n        ];\r\n\r\n        for (let i = 0, j = os.length; i < j; i++) {\r\n            if (this.agent.match(os[i].pattern)) {\r\n                this.name = os[i].name;\r\n                break;\r\n            }\r\n        }\r\n\r\n        this.detectVersion();\r\n    }\r\n\r\n    private detectVersion(): void {\r\n        if (this.name === 'Windows') {\r\n            if (this.agent.match(/phone/)) {\r\n                this.detectVersionWindowsPhone();\r\n            } else {\r\n                this.detectVersionWindows();\r\n            }\r\n        } else if (this.name === 'Mac OS') {\r\n            this.detectVersionMac();\r\n        } else if (this.name === 'Android') {\r\n            const androidVersion = this.agent.match(/android ([0-9\\.]+)/);\r\n\r\n            this.version = (androidVersion ? ' ' + androidVersion[1] : '');\r\n        } else if (this.name === 'iOS') {\r\n            const iOSVersion = this.agent.match(/os ([0-9\\_]+)/);\r\n\r\n            this.version = (iOSVersion ? ' ' + iOSVersion[1].replace('_', '.') : '');\r\n        }\r\n    }\r\n\r\n    private detectVersionWindows(): void {\r\n        this.name = 'Windows';\r\n\r\n        const windows = [\r\n            {name: '10', pattern: /windows nt 10.0|windows 10.0/},\r\n            {name: '10 Technical Preview', pattern: /windows nt 6.4/},\r\n            {name: '8.1', pattern: /windows nt 6.3|windows 8.1/},\r\n            {name: '8', pattern: /windows nt 6.2|windows 8.0|wow64/},\r\n            {name: '7 / Server 2008 RC2', pattern: /windows nt 6.1|windows 7/},\r\n            {name: 'Vista', pattern: /windows nt 6.0/},\r\n            {name: 'Server 2003', pattern: /windows nt 5.2/},\r\n            {name: 'XP', pattern: /windows nt 5.1|windows xp/},\r\n            {name: '2000', pattern: /windows nt 5.0|windows 2000/},\r\n            {name: 'NT 4.0', pattern: /windows nt 4.0|winnt4.0|winnt|windows nt/},\r\n            {name: 'CE', pattern: /windows ce/},\r\n            {name: 'ME', pattern: /windows me/},\r\n            {name: '98', pattern: /windows 98|win98/},\r\n            {name: '95', pattern: /windows 95|win95|windows_95/},\r\n            {name: '3.11', pattern: /win16/}\r\n        ];\r\n\r\n        for (let i = 0, j = windows.length; i < j; i++) {\r\n            if (this.agent.match(windows[i].pattern)) {\r\n                this.version = windows[i].name;\r\n                break;\r\n            }\r\n        }\r\n    }\r\n\r\n    private detectVersionWindowsPhone(): void {\r\n        this.name = 'Windows Phone';\r\n\r\n        const windows = [\r\n            {name: '10', pattern: /windows phone 10/},\r\n            {name: '8.1', pattern: /windows phone 8.1/},\r\n            {name: '8', pattern: /windows phone 8/},\r\n            {name: '7.5', pattern: /windows phone os 7.5/},\r\n            {name: '7', pattern: /windows phone os 7/},\r\n        ];\r\n\r\n        for (let i = 0, j = windows.length; i < j; i++) {\r\n            if (this.agent.match(windows[i].pattern)) {\r\n                this.version = windows[i].name;\r\n                break;\r\n            }\r\n        }\r\n    }\r\n\r\n    private detectVersionMac(): void {\r\n        if (this.agent.match(/mac os x/)) {\r\n            const macVersion = this.agent.match(/mac os x ([0-9\\_]+)/);\r\n\r\n            this.name = 'Mac OS X';\r\n            this.version = (macVersion ? ' ' + macVersion[1].replace('_', '.') : '');\r\n        } else if (this.agent.match(/macppc|macintel|mac_powerpc|macintosh/)) {\r\n            this.name = 'Mac OS';\r\n        }\r\n    }\r\n}\r\n","import { EventEmitter, Injectable, inject } from '@angular/core';\r\nimport { Observable, Observer } from 'rxjs';\r\nimport { ApiLookupService } from './api-lookup.service';\r\nimport { Configuration } from '../classes/configuration';\r\nimport { Browser } from '../classes/browser';\r\nimport { OperatingSystem } from '../classes/operating-system';\r\nimport { CaucaCoreService } from './../../cauca-core.service';\r\nimport { ApiLookup } from '../models/api-lookup';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ClientInformationService {\r\n\r\n  public visibilityChange = new EventEmitter();\r\n\r\n  private config: Configuration;\r\n  private readonly apiLookup = inject(ApiLookupService);\r\n\r\n  public constructor() {\r\n    const coreService = inject(CaucaCoreService);\r\n\r\n    this.config = coreService.getConfig();\r\n\r\n    document.addEventListener('visibilitychange webkitvisibilitychange mozvisibilitychange msvisibilitychange',\r\n        () => this.onVisibilityChange(document.visibilityState === 'visible')\r\n    );\r\n  }\r\n\r\n  public getCoordinates(): Observable<number[]> {\r\n    return new Observable((observer: Observer<number[]>) => {\r\n      if (navigator && 'geolocation' in navigator) {\r\n        navigator.geolocation.getCurrentPosition((position: any) => {\r\n          observer.next([\r\n            position.coords.longitude,\r\n            position.coords.latitude,\r\n          ]);\r\n          observer.complete();\r\n        }, () => this.getCoordinatesWithClientIP(observer));\r\n      } else {\r\n        this.getCoordinatesWithClientIP(observer);\r\n      }\r\n    });\r\n  }\r\n\r\n  public getLanguage(): Observable<string[]> {\r\n    return new Observable((observer: Observer<string[]>) => {\r\n      let lang = [this.config.locale];\r\n\r\n      if (navigator && 'languages' in navigator) {\r\n        lang = navigator.languages as string[];\r\n      } else if (navigator && 'language' in navigator) {\r\n        lang = [navigator.language];\r\n      } else if (navigator && 'userLanguage' in navigator) {\r\n        lang = [navigator['userLanguage'].toString()];\r\n      }\r\n\r\n      observer.next(lang);\r\n      observer.complete();\r\n    });\r\n  }\r\n\r\n  public getBrowser(): Observable<Browser> {\r\n    return new Observable((observer: Observer<Browser>) => {\r\n      const browser = new Browser();\r\n\r\n      observer.next(browser);\r\n      observer.complete();\r\n    });\r\n  }\r\n\r\n  public getOperatingSystem(): Observable<OperatingSystem> {\r\n    return new Observable((observer: Observer<OperatingSystem>) => {\r\n      const os = new OperatingSystem();\r\n\r\n      observer.next(os);\r\n      observer.complete();\r\n    });\r\n  }\r\n\r\n  private getCoordinatesWithClientIP(observer: Observer<number[]>): void {\r\n    this.apiLookup.getIpInformation().subscribe((info: ApiLookup) => {\r\n      observer.next([\r\n        info.longitude,\r\n        info.latitude,\r\n      ]);\r\n      observer.complete();\r\n    }, () => {\r\n      observer.next([-71.00, 48.00]);\r\n      observer.error('Can\\'t find the client location');\r\n    });\r\n  }\r\n\r\n  private onVisibilityChange(visible: boolean): void {\r\n    this.visibilityChange.emit(visible);\r\n  }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class FullscreenService {\r\n  public statusChange = new EventEmitter();\r\n\r\n  public constructor() {\r\n    document.addEventListener('fullscreenchange webkitfullscreenchange mozfullscreenchange msfullscreenchange',\r\n    () => this.onChange()\r\n    );\r\n  }\r\n\r\n  public show(element: any): void {\r\n    if (!element) {\r\n      element = document.querySelector('body');\r\n    }\r\n    if (element.requestFullscreen) {\r\n      element.requestFullscreen();\r\n    } else if (element.webkitRequestFullscreen) {\r\n      element.webkitRequestFullscreen();\r\n    } else if (element.mozRequestFullScreen) {\r\n      element.mozRequestFullScreen();\r\n    } else if (element.msRequestFullscreen) {\r\n      element.msRequestFullscreen();\r\n    }\r\n  }\r\n\r\n  public exit(): void {\r\n    document.querySelector('body').classList.remove('is-fullscreen');\r\n\r\n    if (document.exitFullscreen) {\r\n      document.exitFullscreen();\r\n    } else if (document['webkitExitFullscreen']) {\r\n      document['webkitExitFullscreen']();\r\n    } else if (document['mozCancelFullScreen']) {\r\n      document['mozCancelFullScreen']();\r\n    } else if (document['msRequestFullscreen']) {\r\n      document['msRequestFullscreen']();\r\n    }\r\n  }\r\n\r\n  public isActive(): boolean {\r\n    if ((screen.availHeight || screen.height - 30) <= window.innerHeight) {\r\n      return true;\r\n    }\r\n\r\n    return false;\r\n  }\r\n\r\n  private onChange(): void {\r\n    if (this.isActive()) {\r\n      document.querySelector('body').classList.add('is-fullscreen');\r\n    } else {\r\n      document.querySelector('body').classList.remove('is-fullscreen');\r\n    }\r\n\r\n    this.statusChange.emit(this.isActive());\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subscriber } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ImageService {\r\n\r\n  public compress(file: File, maxWidth: number = 0, maxHeight: number = 0): Observable<File> {\r\n    const fileName = file.name;\r\n    const reader = new FileReader();\r\n\r\n    return new Observable((observer: Subscriber<File>) => {\r\n      reader.readAsDataURL(file);\r\n      reader.onload = (e: any) => {\r\n        const image = new Image();\r\n\r\n        image.src = e.target['result'].toString();\r\n        image.onload = () => {\r\n          const ratio = this.findRatio(image, maxWidth, maxHeight);\r\n\r\n          if (ratio !== null) {\r\n            const elem = document.createElement('canvas');\r\n            elem.width = ratio.width;\r\n            elem.height = ratio.height;\r\n\r\n            const ctx = elem.getContext('2d');\r\n            ctx.drawImage(image, 0, 0, ratio.width, ratio.height);\r\n            ctx.canvas.toBlob((blob: any) => {\r\n              const resizeFile = new File([blob], fileName, {\r\n                type: file.type,\r\n                lastModified: Date.now()\r\n              });\r\n\r\n              observer.next(resizeFile);\r\n            }, file.type, 1);\r\n          } else {\r\n            observer.next(file);\r\n          }\r\n        };\r\n      };\r\n    });\r\n  }\r\n\r\n  private findRatio(image: HTMLImageElement, maxWidth: number = 0, maxHeight: number = 0): { width: number; height: number } {\r\n    if (maxWidth === 0 && maxHeight === 0) {\r\n      return null;\r\n    }\r\n\r\n    const aspectRatio = (image.width / image.height);\r\n    const aspect = aspectRatio > 1 ? 'horizontal' : 'vertical';\r\n\r\n    maxWidth = maxWidth || image.width;\r\n    maxHeight = maxHeight || image.height;\r\n\r\n    if (image.width < maxWidth && image.height < maxHeight) {\r\n      return null;\r\n    }\r\n\r\n    if (aspect === 'horizontal' && maxWidth < image.width) {\r\n      return {\r\n        width: maxWidth,\r\n        height: (maxWidth / aspectRatio)\r\n      };\r\n    } else {\r\n      return {\r\n        width: (maxHeight * aspectRatio),\r\n        height: maxHeight\r\n      };\r\n    }\r\n  }\r\n}\r\n","export class Version {\r\n    public major: number;\r\n    public minor: number;\r\n    public maintenance: number;\r\n    public build: number;\r\n\r\n    public constructor(private version: string) {\r\n        [this.major, this.minor, this.maintenance, this.build] = this.stringToVar(this.version);\r\n    }\r\n\r\n    public areEqual(compareVersionTo: Version): boolean {\r\n        if (\r\n            this.major === compareVersionTo.major &&\r\n            this.minor === compareVersionTo.minor &&\r\n            this.maintenance === compareVersionTo.maintenance &&\r\n            this.build === compareVersionTo.build\r\n        ) {\r\n            return true;\r\n        }\r\n\r\n        return false;\r\n    }\r\n\r\n    public moreRecent(compareToVersion: Version): boolean {\r\n        if (\r\n            this.major < compareToVersion.major ||\r\n            (this.major === compareToVersion.major && this.minor < compareToVersion.minor) ||\r\n            (\r\n                this.major === compareToVersion.major && this.minor === compareToVersion.minor &&\r\n                this.maintenance < compareToVersion.maintenance\r\n            ) ||\r\n            (\r\n                this.major === compareToVersion.major && this.minor === compareToVersion.minor &&\r\n                this.maintenance === compareToVersion.maintenance && this.build < compareToVersion.build\r\n            )\r\n        ) {\r\n            return true;\r\n        }\r\n\r\n        return false;\r\n    }\r\n\r\n    private stringToVar(version: string): number[] {\r\n        const sequences = version.split('.');\r\n        const major = parseInt(sequences[0] || '0', 10);\r\n        const minor = parseInt(sequences[1] || '0', 10);\r\n        let maintenance = 0;\r\n        let build = 0;\r\n\r\n        if (sequences[2].includes('-')) {\r\n            const info = sequences[2].split('-');\r\n            maintenance = parseInt(info[0] || '0', 10);\r\n            build = parseInt(info[1] || '0', 10);\r\n        } else {\r\n            maintenance = parseInt(sequences[2] || '0', 10);\r\n            build = parseInt(sequences[3] || '0', 10);\r\n        }\r\n\r\n        return [major, minor, maintenance, build];\r\n    }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { HttpClient, HttpBackend } from '@angular/common/http';\r\nimport { Version } from '../models/version';\r\nimport { PackageJson } from '../models/package-json';\r\n\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class VersionCheckService {\r\n  private httpClient: HttpClient;\r\n  private activeVersion: Version;\r\n  private timeInMinute: number;\r\n\r\n  public constructor() {\r\n    const handler = inject(HttpBackend);\r\n\r\n    this.httpClient = new HttpClient(handler);\r\n  }\r\n\r\n  public initVersionCheck(activeVersion: string, url: string = '/assets/config/package.json', frequency: number = 30): void {\r\n    this.activeVersion = new Version(activeVersion);\r\n    this.timeInMinute = frequency * 1000 * 60;\r\n\r\n    setInterval(() => {\r\n      this.checkVersion(url);\r\n    }, this.timeInMinute);\r\n  }\r\n\r\n  public checkVersion(url: string): void {\r\n    this.httpClient.get(`${url}?t=${new Date().getTime()}`).subscribe((data: PackageJson) => {\r\n      const newVersion = new Version(data.version);\r\n      if (this.activeVersion.moreRecent(newVersion)) {\r\n        this.activeVersion = newVersion;\r\n\r\n        if (confirm(`Une nouvelle version est disponible, voulez-vous recharger pour y accèder?`)) {\r\n          window.location.reload();\r\n        }\r\n      }\r\n    });\r\n  }\r\n}\r\n","export abstract class RefreshUrlService {\r\n  public abstract getRefreshUrl();\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\nimport { InterceptorDelay } from '../interfaces/interceptor-delay';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class InterceptorDelayService {\r\n  public delay = new EventEmitter<InterceptorDelay>();\r\n\r\n  private listOfDelay: InterceptorDelay[] = [];\r\n\r\n  public append(interceptorDelay: InterceptorDelay): void {\r\n    this.listOfDelay = this.listOfDelay.splice(-100);\r\n    this.listOfDelay.push(interceptorDelay);\r\n\r\n    this.delay.emit(interceptorDelay);\r\n  }\r\n\r\n  public getLongestRequest(): InterceptorDelay {\r\n    const delays = [...this.listOfDelay];\r\n\r\n    delays.sort((delayA: InterceptorDelay, delayB: InterceptorDelay) => delayA.totalInMilliseconds > delayB.totalInMilliseconds ? -1 : 1);\r\n\r\n    return delays.slice(0, 1)[0];\r\n  }\r\n\r\n  public getLatestRequests(): InterceptorDelay[] {\r\n    return this.listOfDelay.slice(-50);\r\n  }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { InterceptorDelayService } from './interceptor-delay.service';\r\nimport { LogService } from '../services/log.service';\r\n\r\n@Injectable()\r\nexport class HttpDelayInterceptor implements HttpInterceptor {\r\n  private logService = inject(LogService);\r\n  private interceptorDelayService = inject(InterceptorDelayService);\r\n\r\n  private startingTime: Date;\r\n\r\n  public intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\r\n    this.startingTime = new Date();\r\n\r\n    return next.handle(request).pipe(\r\n      map((data: any) => {\r\n        const endingTime = new Date();\r\n        const time = endingTime.getTime() - this.startingTime.getTime();\r\n\r\n        this.logService.information(`Interceptor - HttpDelay - Delay for HTTP request on \"${request.url}\" is ${time}ms`);\r\n        this.interceptorDelayService.append({\r\n          url: request.url,\r\n          startingTime: this.startingTime,\r\n          endingTime,\r\n          totalInMilliseconds: time,\r\n        });\r\n\r\n        return data;\r\n      })\r\n    );\r\n  }\r\n}\r\n","export class Color {\r\n    public hslToRgb(h: number, s: number, l: number): number[] {\r\n        let r; let g; let b;\r\n\r\n        if (s === 0) {\r\n            r = g = b = l;\r\n        } else {\r\n            const q1 = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n            const p1 = 2 * l - q1;\r\n            const hue2rgb = (p2: number, q2: number, t: number) => {\r\n                if (t < 0) {\r\n                    t += 1;\r\n                }\r\n                if (t > 1) {\r\n                    t -= 1;\r\n                }\r\n                if (t < 1 / 6) {\r\n                    return p2 + (q2 - p2) * 6 * t;\r\n                }\r\n                if (t < 1 / 2) {\r\n                    return q2;\r\n                }\r\n                if (t < 2 / 3) {\r\n                    return p2 + (q2 - p2) * (2 / 3 - t) * 6;\r\n                }\r\n                return p2;\r\n            };\r\n\r\n            r = hue2rgb(p1, q1, h + 1 / 3);\r\n            g = hue2rgb(p1, q1, h);\r\n            b = hue2rgb(p1, q1, h - 1 / 3);\r\n        }\r\n\r\n        return [Math.floor(r * 255), Math.floor(g * 255), Math.floor(b * 255)];\r\n    }\r\n\r\n    public getContrast50(hexColor: string): string {\r\n        return (parseInt(hexColor, 16) > 0xffffff / 2) ? 'black' : 'white';\r\n    }\r\n\r\n    public getContrastYIQ(hexColor: string): string {\r\n        const r = parseInt(hexColor.substr(0, 2), 16);\r\n        const g = parseInt(hexColor.substr(2, 2), 16);\r\n        const b = parseInt(hexColor.substr(4, 2), 16);\r\n        const yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;\r\n\r\n        return (yiq >= 128) ? 'black' : 'white';\r\n    }\r\n}\r\n","  export function toLowerCaseAndWithoutDiacritics(value: string): string {\r\n    return (value??'').normalize('NFD').replace(/\\p{Diacritic}/gu, '').toLowerCase();\r\n  }\r\n","/*\r\n * Public API Surface of cauca-core\r\n */\r\n\r\nexport * from './lib/cauca-core.service';\r\nexport * from './lib/cauca-core.component';\r\nexport * from './lib/cauca-core.module';\r\nexport * from './lib/cauca-core-for-child.module';\r\nexport * from './lib/cauca-core-testing.module';\r\nexport { provideTestingTranslation } from './lib/testing/provide-testing-translation';\r\nexport * from './lib/cauca-page-not-found/cauca-page-not-found.component';\r\nexport * from './lib/components/not-found/not-found.component';\r\n\r\nexport { TranslatePipe, TranslateDirective } from '@ngx-translate/core';\r\nexport { CAUCA_CORE_MODULE_OPTIONS } from './lib/shared/constants/cauca-core-module-options';\r\nexport { LOGOUT_HANDLER_TOKEN, REFRESH_URL_SERVICE_TOKEN } from './lib/shared/tokens/injection-tokens';\r\n\r\nexport { Debounce } from './lib/shared/decorators/debounce';\r\n\r\nexport { LogLevel } from './lib/shared/models/log-level.enum';\r\n\r\nexport { RefreshTokenService } from './lib/shared/services/refresh-token.service';\r\nexport { ClientInformationService } from './lib/shared/services/client-information.service';\r\nexport { FullscreenService } from './lib/shared/services/fullscreen.service';\r\nexport { ImageService } from './lib/shared/services/image.service';\r\nexport { LogService } from './lib/shared/services/log.service';\r\nexport { NetworkInformationService } from './lib/shared/services/network-information.service';\r\nexport { VersionCheckService } from './lib/shared/services/version-check.service';\r\nexport { TranslateService } from './lib/shared/services/translate.service';\r\nexport { RefreshUrlService } from './lib/shared/services/refresh-url.service';\r\nexport { BaseLogoutHandler } from './lib/shared/services/logout-handler';\r\n\r\nexport { InterceptorError } from './lib/shared/interfaces/interceptor-error';\r\nexport { InterceptorDelay } from './lib/shared/interfaces/interceptor-delay';\r\nexport { InterceptorErrorService } from './lib/shared/interceptors/interceptor-error.service';\r\nexport { InterceptorDelayService } from './lib/shared/interceptors/interceptor-delay.service';\r\nexport { HttpDelayInterceptor } from './lib/shared/interceptors/http-delay.interceptor';\r\n\r\nexport { Configuration } from './lib/shared/classes/configuration';\r\nexport { Browser } from './lib/shared/classes/browser';\r\nexport { Color } from './lib/shared/classes/color';\r\nexport { OperatingSystem } from './lib/shared/classes/operating-system';\r\nexport { toLowerCaseAndWithoutDiacritics } from './lib/functions/to-lower-case-and-without-diacritics';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["TranslateService","map","switchMap","NgxTranslateService","TRANSLATE_CONFIGURATION"],"mappings":"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"}