@eui/core 17.0.0-next.23 → 17.0.0-next.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/docs/dependencies.html +41 -39
  2. package/docs/js/search/search_index.js +2 -2
  3. package/esm2022/lib/eui-core.module.mjs +5 -5
  4. package/esm2022/lib/interceptors/add-lang-param.interceptor.mjs +4 -4
  5. package/esm2022/lib/interceptors/cache-prevention.interceptor.mjs +4 -4
  6. package/esm2022/lib/interceptors/cors-security.interceptor.mjs +4 -4
  7. package/esm2022/lib/interceptors/csrf-prevention.interceptor.mjs +4 -4
  8. package/esm2022/lib/interceptors/eu-login-session-timeout-handling.interceptor.mjs +4 -4
  9. package/esm2022/lib/interceptors/openid/openid-connect.interceptor.mjs +4 -4
  10. package/esm2022/lib/interceptors/openid/openid-connect.service.mjs +4 -4
  11. package/esm2022/lib/interceptors/ux-request-error-model.interceptor.mjs +4 -4
  12. package/esm2022/lib/services/dynamic-component/dynamic-component.service.mjs +4 -4
  13. package/esm2022/lib/services/dynamic-menu/dynamic-menu.service.mjs +4 -4
  14. package/esm2022/lib/services/errors/global-error-handler.mjs +4 -4
  15. package/esm2022/lib/services/errors/http-error-handler.interceptor.mjs +4 -4
  16. package/esm2022/lib/services/eui-app-shell.service.mjs +4 -4
  17. package/esm2022/lib/services/eui-timezone.service.mjs +4 -4
  18. package/esm2022/lib/services/growl/eui-growl.service.mjs +4 -4
  19. package/esm2022/lib/services/i18n/i18n.loader.mjs +4 -4
  20. package/esm2022/lib/services/i18n/i18n.service.mjs +4 -4
  21. package/esm2022/lib/services/locale/locale.service.mjs +4 -4
  22. package/esm2022/lib/services/locale/locale.service.mock.mjs +4 -4
  23. package/esm2022/lib/services/log/log.module.mjs +5 -5
  24. package/esm2022/lib/services/log/log.service.mjs +4 -4
  25. package/esm2022/lib/services/permission/permission.service.mjs +4 -4
  26. package/esm2022/lib/services/queue/api-queue.service.mjs +4 -4
  27. package/esm2022/lib/services/storage/local-forage.service.mjs +4 -4
  28. package/esm2022/lib/services/storage/local-storage.service.mjs +4 -4
  29. package/esm2022/lib/services/storage/session-storage.service.mjs +4 -4
  30. package/esm2022/lib/services/store/effects/app.effects.mjs +4 -4
  31. package/esm2022/lib/services/store/store.service.mjs +4 -4
  32. package/esm2022/lib/services/store/store.service.mock.mjs +4 -4
  33. package/esm2022/lib/services/user/user.service.mjs +4 -4
  34. package/esm2022/lib/services/user/user.service.mock.mjs +4 -4
  35. package/fesm2022/eui-core.mjs +98 -98
  36. package/fesm2022/eui-core.mjs.map +1 -1
  37. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"eui-core.mjs","sources":["../../src/lib/services/config/defaults.ts","../../src/lib/services/config/tokens.ts","../../src/lib/services/store/actions/app.actions.ts","../../src/lib/services/store/actions/i18n.actions.ts","../../src/lib/services/store/actions/user.actions.ts","../../src/lib/services/store/actions/notifications.actions.ts","../../src/lib/services/store/actions/locale.actions.ts","../../src/lib/services/growl/eui-growl.service.ts","../../src/lib/services/store/effects/app.effects.ts","../../src/lib/services/store/effects/index.ts","../../src/lib/services/store/reducers/app.reducers.ts","../../src/lib/services/store/reducers/user.reducers.ts","../../src/lib/services/store/reducers/notifications.reducers.ts","../../src/lib/services/store/reducers/i18n.reducers.ts","../../src/lib/services/store/reducers/locale.reducers.ts","../../src/lib/services/store/reducers/core.reducers.ts","../../src/lib/services/store/reducers/meta.reducers.ts","../../src/lib/services/log/log.service.ts","../../src/lib/services/log/log.service.mock.ts","../../src/lib/services/app/factories/log.ts","../../src/lib/services/log/log.module.ts","../../src/lib/services/store/store.service.ts","../../src/lib/services/store/store.service.mock.ts","../../src/lib/services/app/eui-init-app.ts","../../src/lib/services/app/eui-startup.ts","../../src/lib/eui-core.module.ts","../../src/lib/services/app/eui-pre-init-app.ts","../../src/lib/services/errors/eui.error.ts","../../src/lib/services/errors/global-error-handler.ts","../../src/lib/services/errors/http-error-handler.interceptor.ts","../../src/lib/services/errors/http-error-handler-callback-functions.ts","../../src/lib/services/queue/api-queue.service.ts","../../src/lib/services/queue/api-queue.service.mock.ts","../../src/lib/services/i18n/i18n.resource.ts","../../src/lib/services/i18n/i18n.loader.ts","../../src/lib/services/i18n/i18n.service.ts","../../src/lib/services/i18n/index.ts","../../src/lib/helpers/date-helpers.ts","../../src/lib/helpers/dom-helpers.ts","../../src/lib/helpers/event-helpers.ts","../../src/lib/helpers/form-helpers.ts","../../src/lib/helpers/format-helpers.ts","../../src/lib/helpers/http-helpers.ts","../../src/lib/helpers/utils.ts","../../src/lib/services/permission/permission.service.ts","../../src/lib/services/dynamic-menu/dynamic-menu.service.ts","../../src/lib/services/dynamic-component/dynamic-component.service.ts","../../src/lib/services/eui-app-shell.service.ts","../../src/lib/services/eui-timezone.service.ts","../../src/lib/services/storage/storage.service.ts","../../src/lib/services/storage/storage.service.mock.ts","../../src/lib/services/storage/async-storage.service.ts","../../src/lib/services/storage/async-storage.service.mock.ts","../../src/lib/services/storage/local-storage.service.ts","../../src/lib/services/storage/session-storage.service.ts","../../src/lib/services/storage/local-forage.service.ts","../../src/lib/services/locale/locale.service.ts","../../src/lib/services/locale/locale.service.mock.ts","../../src/lib/services/user/user.service.ts","../../src/lib/services/user/user.service.mock.ts","../../src/lib/interceptors/add-lang-param.interceptor.ts","../../src/lib/interceptors/cache-prevention.interceptor.ts","../../src/lib/interceptors/cors-security.interceptor.ts","../../src/lib/interceptors/csrf-prevention.interceptor.ts","../../src/lib/interceptors/eu-login-session-timeout-handling.interceptor.ts","../../src/lib/interceptors/ux-request-error-model.interceptor.ts","../../src/lib/interceptors/openid/openid-connect.interceptor.ts","../../src/lib/interceptors/openid/openid-connect.service.ts","../../src/lib/interceptors/openid/openid-connect.service.mock.ts","../../src/index.ts","../../src/eui-core.ts"],"sourcesContent":["import {\n EuiConfig,\n EuiAppConfig,\n EuiEnvConfig,\n GlobalConfig,\n LogLevel,\n LogConfig,\n ConsoleAppender,\n HttpErrorHandlerConfig,\n I18nLoaderConfig,\n I18nServiceConfig,\n LocaleServiceConfig,\n} from '@eui/base';\n\n/** default log configuration */\nexport const DEFAULT_LOG_CONFIG: LogConfig = {\n baseLoggerName: 'root',\n logLevel: LogLevel.ERROR,\n logAppenders: {\n type: ConsoleAppender,\n prefixFormat: '[{level}]',\n },\n};\n\nexport const DEFAULT_I18N_SERVICE_CONFIG: I18nServiceConfig = {\n languages: ['en'],\n defaultLanguage: 'en',\n};\n\nexport const DEFAULT_I18N_LOADER_CONFIG: I18nLoaderConfig = {};\n\nexport const DEFAULT_LOCALE_SERVICE_CONFIG: LocaleServiceConfig = {\n id: 'en',\n available: ['en'],\n registered: ['en'],\n bindWithTranslate: false,\n affectGlobalLocale: false,\n};\n\nexport const DEFAULT_HTTP_ERROR_HANDLER_CONFIG: HttpErrorHandlerConfig = {\n routes: [],\n};\n\nexport const DEFAULT_GLOBAL_CONFIG: GlobalConfig = {\n showConnectionStatus: {\n messageBox: {\n lifespan: 0,\n },\n enabled: true,\n },\n i18n: {\n i18nService: {\n ...DEFAULT_I18N_SERVICE_CONFIG,\n },\n i18nLoader: {\n ...DEFAULT_I18N_LOADER_CONFIG,\n },\n },\n locale: {\n ...DEFAULT_LOCALE_SERVICE_CONFIG,\n },\n user: {\n defaultUserPreferences: {\n locale: {\n ...DEFAULT_LOCALE_SERVICE_CONFIG,\n },\n },\n },\n};\nexport const DEFAULT_EUI_APP_CONFIG: EuiAppConfig = {\n global: {\n ...DEFAULT_GLOBAL_CONFIG,\n },\n};\n\nexport const DEFAULT_EUI_ENV_CONFIG: EuiEnvConfig = {\n envAppHandlersConfig: {},\n};\n\nexport const DEFAULT_EUI_CONFIG: EuiConfig = {\n appConfig: {\n ...DEFAULT_EUI_APP_CONFIG,\n },\n environment: {\n ...DEFAULT_EUI_ENV_CONFIG,\n },\n};\n","import {\n EuiAppConfig,\n EuiAppHandlersConfig,\n EuiAppJsonConfig,\n EuiConfig,\n LogConfig,\n ModuleConfig,\n GlobalConfig,\n HttpErrorHandlerConfig,\n ConnectionStatus,\n} from '@eui/base';\nimport * as extendProxy from 'extend';\n\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst extend = (<any>extendProxy).default || extendProxy;\n\nimport { InjectionToken } from '@angular/core';\nimport { DEFAULT_EUI_CONFIG } from './defaults';\n\nexport const EUI_CONFIG_TOKEN = new InjectionToken<EuiConfig>('EuiConfig');\nexport const MODULE_NAME_TOKEN = new InjectionToken<string>('moduleName');\nexport const MODULE_CONFIG_TOKEN = new InjectionToken<ModuleConfig>('moduleConfig');\nexport const CONFIG_TOKEN = new InjectionToken<EuiAppConfig>('finalConfigToken');\nexport const GLOBAL_CONFIG_TOKEN = new InjectionToken<GlobalConfig>('globalConfig');\nexport const BASE_NAME_TOKEN = new InjectionToken<string>('baseName');\nexport const ROOT_LOG_CONFIG_TOKEN = new InjectionToken<LogConfig>('logConfig');\nexport const SHOW_CONNECTION_STATUS_TOKEN = new InjectionToken<boolean>('SHOW_CONNECTION_STATUS');\n\nexport const HTTP_ERROR_HANDLER_CONFIG_TOKEN = new InjectionToken<HttpErrorHandlerConfig>('HTTP_ERROR_HANDLER_CONFIG');\n\nexport function getGlobalConfig(appConfig: EuiAppConfig): GlobalConfig {\n return Object.assign(DEFAULT_EUI_CONFIG.appConfig.global, appConfig && appConfig.global);\n}\n\nexport function getShowConnectionStatus(globalConfig: GlobalConfig): boolean | ConnectionStatus {\n // TODO: remove on eUI 14\n if (typeof globalConfig?.showConnectionStatus === 'boolean') {\n console.warn('Usage of showConnectionStatus as boolean is deprecated, please use ConnectionStatus type');\n }\n return Object.assign({}, DEFAULT_EUI_CONFIG.appConfig.global.showConnectionStatus, globalConfig && globalConfig.showConnectionStatus);\n}\n\nexport function getModuleConfig(appConfig: EuiAppConfig, moduleName: string): ModuleConfig {\n return Object.assign({}, appConfig && appConfig.modules && appConfig.modules[moduleName]);\n}\n\nexport function getHttpErrorHandlingConfig(appConfig: EuiAppConfig): HttpErrorHandlerConfig {\n return Object.assign({}, appConfig && appConfig.httpErrorHandler);\n}\n\nexport function getRootLogConfig(appConfig: EuiAppConfig): LogConfig {\n return Object.assign({}, appConfig && appConfig.log);\n}\n\nexport function prepareEuiAppConfigToken(euiConfig: EuiConfig): EuiAppConfig {\n const environment = euiConfig && euiConfig.environment;\n const merge: Array<string> =\n environment.envDynamicConfig && environment.envDynamicConfig.merge && Array.isArray(environment.envDynamicConfig.merge)\n ? environment.envDynamicConfig.merge\n : [];\n const isDeepMerge: boolean =\n environment.envDynamicConfig && environment.envDynamicConfig.deepMerge ? environment.envDynamicConfig.deepMerge : false;\n const envAppJsonConfig: EuiAppJsonConfig = environment && environment.loadedEnvDynamicConfig;\n const initialAppConfig = euiConfig && euiConfig.appConfig;\n const envAppHandlersConfig: EuiAppHandlersConfig = environment && environment.envAppHandlersConfig;\n\n const envHandlersMergedAppConfig = mergeAppHandlerConfigToAppConfig(initialAppConfig, envAppHandlersConfig);\n const finalConfig = mergeAppJsonConfigToAppConfig(envHandlersMergedAppConfig, envAppJsonConfig, merge, isDeepMerge);\n return finalConfig;\n}\n\nexport function mergeAppHandlerConfigToAppConfig(euiAppConfig: EuiAppConfig, envAppHandler: EuiAppHandlersConfig): EuiAppConfig {\n return Object.assign({}, euiAppConfig, envAppHandler);\n}\n\nexport function mergeAppJsonConfigToAppConfig(\n euiAppConfig: EuiAppConfig,\n envAppJsonConfig: EuiAppJsonConfig,\n merge: Array<string>,\n isDeepMerge: boolean,\n): EuiAppConfig {\n const deepMerged = {};\n if (merge && merge.length > 0) {\n merge.forEach((key) => {\n if (\n envAppJsonConfig != null &&\n envAppJsonConfig[key] &&\n typeof envAppJsonConfig[key] === 'object' &&\n euiAppConfig != null &&\n euiAppConfig[key] &&\n typeof euiAppConfig[key] === 'object'\n ) {\n if (isDeepMerge) {\n deepMerged[key] = {};\n extend(true, deepMerged[key], euiAppConfig[key], envAppJsonConfig[key]);\n } else {\n envAppJsonConfig[key] = {\n ...euiAppConfig[key],\n ...envAppJsonConfig[key],\n };\n }\n }\n });\n }\n return Object.assign({}, euiAppConfig, envAppJsonConfig, deepMerged);\n}\n","import { ActivatedRoute } from '@angular/router';\nimport { Action } from '@ngrx/store';\nimport { ModuleConfig, ApiQueueItem } from '@eui/base';\n\nexport enum CoreAppActionTypes {\n INIT_STORE = '[App] Init store',\n UPDATE_APP_VERSION = '[App] Update version',\n UPDATE_APP_CONNECTION = '[App] Update connection',\n ADD_APP_LOADED_CONFIG_MODULES = '[App] Update app loaded config modules',\n UPDATE_APP_STATUS = '[App] Update status',\n UPDATE_CURRENT_MODULE = '[App] Update current module',\n ACTIVATED_ROUTE = '[App] Activated route',\n ADD_API_QUEUE_ITEM = '[App] Add API queue item',\n REMOVE_API_QUEUE_ITEM = '[App] Remove API queue item',\n EMPTY_API_QUEUE = '[App] empty API queue',\n}\n\nexport class InitStoreAction implements Action {\n type = CoreAppActionTypes.INIT_STORE;\n\n constructor(public payload: { version?: string }) {}\n}\n\nexport class UpdateAppVersionAction implements Action {\n type = CoreAppActionTypes.UPDATE_APP_VERSION;\n\n constructor(public payload: string) {}\n}\n\nexport class UpdateAppConnectionAction implements Action {\n type = CoreAppActionTypes.UPDATE_APP_CONNECTION;\n\n constructor(public payload: boolean) {}\n}\n\nexport class AddAppLoadedConfigModulesAction implements Action {\n type = CoreAppActionTypes.ADD_APP_LOADED_CONFIG_MODULES;\n\n constructor(public payload: { moduleName: string; moduleConfig: ModuleConfig }) {}\n}\n\nexport class UpdateAppStatusAction implements Action {\n type = CoreAppActionTypes.UPDATE_APP_STATUS;\n\n constructor(public payload: string) {}\n}\n\nexport class UpdateCurrentModuleAction implements Action {\n type = CoreAppActionTypes.UPDATE_CURRENT_MODULE;\n\n constructor(public payload: string) {}\n}\n\nexport class ActivatedRouteAction implements Action {\n type = CoreAppActionTypes.ACTIVATED_ROUTE;\n\n constructor(public payload: ActivatedRoute) {}\n}\n\nexport class AddApiQueueItemAction implements Action {\n type = CoreAppActionTypes.ADD_API_QUEUE_ITEM;\n\n constructor(public payload: { id: string; item: ApiQueueItem }) {}\n}\n\nexport class RemoveApiQueueItemAction implements Action {\n type = CoreAppActionTypes.REMOVE_API_QUEUE_ITEM;\n\n constructor(public payload: string) {}\n}\n\nexport class EmptyApiQueueAction implements Action {\n type = CoreAppActionTypes.EMPTY_API_QUEUE;\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(public payload: any) {}\n}\n\nexport type CoreAppActions =\n | InitStoreAction\n | UpdateAppVersionAction\n | UpdateAppConnectionAction\n | AddAppLoadedConfigModulesAction\n | UpdateAppStatusAction\n | UpdateCurrentModuleAction\n | ActivatedRouteAction\n | AddApiQueueItemAction\n | RemoveApiQueueItemAction;\n","import { Action } from '@ngrx/store';\nimport { I18nState } from '@eui/base';\n\nexport enum CoreI18nActionTypes {\n UPDATE_I18N_STATE = '[I18n] Update I18n State',\n}\n\nexport class UpdateI18nStateAction implements Action {\n type = CoreI18nActionTypes.UPDATE_I18N_STATE;\n constructor(public payload: I18nState) {}\n}\n\nexport type CoreI18nActions = UpdateI18nStateAction;\n","import { Action } from '@ngrx/store';\nimport { UserState, UserDetails, UserPreferences, EuiUserRight } from '@eui/base';\n\nexport enum CoreUserActionTypes {\n UPDATE_USER_STATE = '[User] Update User state',\n UPDATE_USER_DETAILS = '[User] Update details',\n UPDATE_USER_PREFERENCES = '[User] Update preferences',\n UPDATE_USER_RIGHTS = '[User] Update rights',\n UPDATE_USER_DASHBOARD = '[User] Update dashboard',\n}\n\nexport class UpdateUserStateAction implements Action {\n type = CoreUserActionTypes.UPDATE_USER_STATE;\n\n constructor(public payload: UserState) {}\n}\n\nexport class UpdateUserDetailsAction implements Action {\n type = CoreUserActionTypes.UPDATE_USER_DETAILS;\n\n constructor(public payload: UserDetails) {}\n}\n\nexport class UpdateUserPreferencesAction implements Action {\n type = CoreUserActionTypes.UPDATE_USER_PREFERENCES;\n\n constructor(public payload: UserPreferences) {}\n}\n\nexport class UpdateUserRightsAction implements Action {\n type = CoreUserActionTypes.UPDATE_USER_RIGHTS;\n\n constructor(public payload: EuiUserRight[]) {}\n}\n\nexport class UpdateUserDashboardAction implements Action {\n type = CoreUserActionTypes.UPDATE_USER_DASHBOARD;\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(public payload: any) {}\n}\n\nexport type CoreUserActions = UpdateUserDetailsAction | UpdateUserPreferencesAction | UpdateUserRightsAction | UpdateUserDashboardAction;\n","import { Action } from '@ngrx/store';\n\nexport enum CoreNotificationsActionTypes {\n UPDATE_NOTIFICATIONS_LIST = '[Notif] Update list',\n}\n\nexport class UpdateNotificationsListAction implements Action {\n type = CoreNotificationsActionTypes.UPDATE_NOTIFICATIONS_LIST;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(public payload: any[]) {}\n}\n\nexport type CoreNotificationsActions = UpdateNotificationsListAction;\n","import { Action } from '@ngrx/store';\nimport { LocaleState } from '@eui/base';\n\nexport enum CoreLocaleActionTypes {\n UPDATE_LOCALE_STATE = '[Locale] Update Locale State',\n}\n\nexport class UpdateLocaleStateAction implements Action {\n type = CoreLocaleActionTypes.UPDATE_LOCALE_STATE;\n constructor(public payload: LocaleState) {}\n}\n\nexport type CoreLocaleActions = UpdateLocaleStateAction;\n","import { Injectable } from '@angular/core';\nimport { EuiGrowlMessage } from '@eui/base';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EuiGrowlService {\n growlMessages = [];\n isGrowlSticky = false;\n isCloseAllSticky = false;\n growlLife = 3000;\n growlPosition = 'bottom-right';\n growlCallback = null;\n\n /**\n * displays a growl UxMessage item, isSticky\n */\n growl(msg: EuiGrowlMessage, isSticky?: boolean, isMultiple?: boolean, life?: number, position?: string, callback?: () => void): void {\n if (msg.severity !== 'info' && msg.severity !== 'warning' && msg.severity !== 'success' && msg.severity !== 'danger') {\n throw new Error('EuiGrowlService.growl() ERROR : message severity must be either : success, warning, info, danger');\n } else {\n if (isMultiple === undefined || !isMultiple) {\n this.growlMessages = [];\n }\n this.growlMessages = this.growlMessages.concat(msg);\n msg.life = life || msg.life;\n msg.sticky = isSticky || msg.sticky;\n\n if (life === undefined || isNaN(life)) {\n if (msg.severity === 'danger') {\n isSticky = true;\n } else {\n this.growlLife = 3000;\n }\n } else {\n this.growlLife = life;\n }\n\n if (isSticky) {\n this.isGrowlSticky = isSticky;\n } else {\n this.isGrowlSticky = false;\n }\n\n if (position) {\n this.growlPosition = position;\n }\n\n if (callback) {\n this.growlCallback = callback;\n } else {\n this.growlCallback = (): void => {/** empty */};\n }\n }\n }\n\n clearGrowl(): void {\n this.growlMessages = [];\n }\n\n growlSuccess(msg: string, position?: string): void {\n this.growl({ severity: 'success', summary: 'SUCCESS', detail: msg }, false, false, undefined, position);\n }\n\n growlError(msg: string, position?: string): void {\n this.growl({ severity: 'danger', summary: 'ERROR', detail: msg }, false, false, undefined, position);\n }\n\n // date helpers\n\n growlWarning(msg: string, position?: string): void {\n this.growl({ severity: 'warning', summary: 'WARNING', detail: msg }, false, false, undefined, position);\n }\n\n growlInfo(msg: string, position?: string): void {\n this.growl({ severity: 'info', summary: 'INFO', detail: msg }, false, false, undefined, position);\n }\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Action } from '@ngrx/store';\nimport { Actions, ofType, createEffect } from '@ngrx/effects';\nimport { Observable, fromEvent, merge } from 'rxjs';\nimport { map, mapTo, mergeMap, tap } from 'rxjs/operators';\n\nimport { CoreAppActionTypes, ActivatedRouteAction, UpdateCurrentModuleAction, UpdateAppConnectionAction } from '../actions/app.actions';\n\nimport { EuiGrowlService } from '../../growl/eui-growl.service';\nimport { SHOW_CONNECTION_STATUS_TOKEN } from '../../config/tokens';\nimport { ConnectionStatus } from '@eui/base';\n\n@Injectable()\nexport class CoreAppEffects {\n getAppConnectionInformation: Observable<Action> = createEffect(() =>\n merge(fromEvent(window, 'online').pipe(mapTo(true)), fromEvent(window, 'offline').pipe(mapTo(false))).pipe(\n map((connected) => new UpdateAppConnectionAction(connected)),\n ),\n );\n\n activatedRoute: Observable<Action> = createEffect(() =>\n this.actions.pipe(\n ofType(CoreAppActionTypes.ACTIVATED_ROUTE),\n map((action: ActivatedRouteAction) => action.payload),\n mergeMap((route) => {\n // extract the module name, if defined\n const module = route.snapshot.data['module'] || 'undefined';\n return [new UpdateCurrentModuleAction(module)];\n }),\n ),\n );\n\n updateAppConnection = createEffect(\n () =>\n this.actions.pipe(\n ofType(CoreAppActionTypes.UPDATE_APP_CONNECTION),\n map((action: UpdateAppConnectionAction) => action.payload),\n tap((connected) => {\n // TODO: for eUI 14, drop boolean support and refactor\n // check if feature is enabled\n const isFeatureEnabled =\n typeof this.showConnectionStatus !== 'boolean' ? this.showConnectionStatus?.enabled : this.showConnectionStatus;\n // extract lifespan if any\n const lifespan =\n typeof this.showConnectionStatus !== 'boolean' ? this.showConnectionStatus?.messageBox?.lifespan || 0 : 0;\n\n // if the user needs to be informed about the connection status\n if (isFeatureEnabled) {\n if (connected) {\n this.translateService.get('eui.CONNECTED').subscribe((translation) => {\n this.asService.growl(\n { severity: 'success', summary: 'MESSAGE', detail: translation, life: lifespan },\n lifespan < 1,\n false,\n );\n });\n } else {\n this.translateService.get('eui.NOTCONNECTED').subscribe((translation) => {\n this.asService.growl(\n { severity: 'danger', summary: 'ERROR', detail: translation, life: lifespan },\n lifespan < 1,\n false,\n );\n });\n }\n }\n }),\n ),\n { dispatch: false },\n );\n\n constructor(\n protected actions: Actions,\n // TODO: remove on eUI 14\n @Inject(SHOW_CONNECTION_STATUS_TOKEN) protected showConnectionStatus: boolean | ConnectionStatus,\n protected translateService: TranslateService,\n protected asService: EuiGrowlService,\n ) {}\n}\n","export * from './app.effects';\n\nimport { CoreAppEffects } from './app.effects';\n\nexport const CoreModuleEffects = [CoreAppEffects];\n","import { Action } from '@ngrx/store';\nimport {\n CoreAppActionTypes,\n CoreAppActions,\n UpdateAppVersionAction,\n UpdateAppConnectionAction,\n AddAppLoadedConfigModulesAction,\n UpdateAppStatusAction,\n UpdateCurrentModuleAction,\n AddApiQueueItemAction,\n RemoveApiQueueItemAction,\n EmptyApiQueueAction,\n} from '../actions';\nimport { AppState, initialAppState } from '@eui/base';\n\nconst updateAppVersion = (state: AppState, action: UpdateAppVersionAction): AppState => ({ ...state, version: action.payload });\n\nconst updateAppConnection = (state: AppState, action: UpdateAppConnectionAction): AppState => ({ ...state, connected: action.payload });\n\nconst AddAppLoadedConfigModules = (state: AppState, action: AddAppLoadedConfigModulesAction): AppState => ({\n ...state,\n loadedConfigModules: {\n lastAddedModule: action.payload.moduleName,\n modulesConfig: {\n ...state.loadedConfigModules.modulesConfig,\n [action.payload.moduleName]: {\n ...action.payload.moduleConfig,\n },\n },\n },\n});\n\nconst updateAppStatus = (state: AppState, action: UpdateAppStatusAction): AppState => ({ ...state, status: action.payload });\n\nconst updateCurrentModule = (state: AppState, action: UpdateCurrentModuleAction): AppState =>\n Object.assign({}, state, { currentModule: action.payload });\n\nconst addApiQueueItem = (state: AppState, action: AddApiQueueItemAction): AppState => {\n // apply the timestamp to the queue item\n const apiQueueItem = Object.assign({}, action.payload.item, { timestamp: new Date().getTime() });\n // update the queue\n const apiQueue = Object.assign({}, state.apiQueue, { [action.payload.id]: apiQueueItem });\n return Object.assign({}, state, { apiQueue });\n};\n\nconst removeApiQueueItem = (state: AppState, action: RemoveApiQueueItemAction): AppState => {\n // remove the specified id from the list of item ids and recreate the apiQueue from the remaining ids\n const apiQueue = Object.keys(state.apiQueue)\n .filter((id) => id !== action.payload)\n .reduce((queue, key) => {\n queue[key] = state.apiQueue[key];\n return queue;\n }, {});\n return Object.assign({}, state, { apiQueue });\n};\n\nconst emptyApiQueue = (state: AppState, action: EmptyApiQueueAction): AppState =>\n // remove all items in the Api Queue\n Object.assign({}, state, { apiQueue: {} });\nconst actionToReducerMap: { [key: string]: (state: AppState, action: CoreAppActions) => AppState } = {\n [CoreAppActionTypes.UPDATE_APP_VERSION]: updateAppVersion,\n [CoreAppActionTypes.UPDATE_APP_CONNECTION]: updateAppConnection,\n [CoreAppActionTypes.ADD_APP_LOADED_CONFIG_MODULES]: AddAppLoadedConfigModules,\n [CoreAppActionTypes.UPDATE_APP_STATUS]: updateAppStatus,\n [CoreAppActionTypes.UPDATE_CURRENT_MODULE]: updateCurrentModule,\n [CoreAppActionTypes.ADD_API_QUEUE_ITEM]: addApiQueueItem,\n [CoreAppActionTypes.REMOVE_API_QUEUE_ITEM]: removeApiQueueItem,\n [CoreAppActionTypes.EMPTY_API_QUEUE]: emptyApiQueue,\n};\n\nexport const coreAppReducers: (state: AppState, action: Action) => AppState = (state = initialAppState, action: CoreAppActions) => {\n if (actionToReducerMap[action.type]) {\n return actionToReducerMap[action.type](state, action);\n }\n // if the action type is not in the map, call the base reducers method\n return state;\n};\n","import { Action } from '@ngrx/store';\nimport {\n CoreUserActionTypes,\n CoreUserActions,\n UpdateUserDashboardAction,\n UpdateUserStateAction,\n UpdateUserDetailsAction,\n UpdateUserPreferencesAction,\n UpdateUserRightsAction,\n} from '../actions';\nimport { UserState, initialUserState, UserPreferences } from '@eui/base';\n\nconst updateUser = (state: UserState, action: UpdateUserStateAction): UserState => {\n let fullName = action.payload.fullName;\n if (!fullName) {\n fullName = `${action.payload.firstName || ''} ${action.payload.lastName || ''}`.trim();\n }\n return Object.assign({}, state, action.payload, { fullName });\n};\n\nconst updateUserDetails = (state: UserState, action: UpdateUserDetailsAction): UserState => {\n let fullName = action.payload.fullName;\n if (!fullName) {\n fullName = `${action.payload.firstName || ''} ${action.payload.lastName || ''}`.trim();\n }\n // todo should be checked if state.details is really there\n const details = Object.assign({}, state.details, action.payload, { fullName });\n return Object.assign({}, state, details);\n};\n\nconst updateUserPreferences = (state: UserState, action: UpdateUserPreferencesAction): UserState => {\n const preferences = Object.assign({}, state.preferences, action.payload);\n return Object.assign({}, state, { preferences });\n};\n\nconst updateUserRights = (state: UserState, action: UpdateUserRightsAction): UserState =>\n Object.assign({}, state, { rights: [...action.payload] });\n\nconst updateUserDashboard = (state: UserState, action: UpdateUserDashboardAction): UserState & { preferences: UserPreferences } => {\n // apply the dashboard to preferences\n const preferences = Object.assign({}, state.preferences, { dashboard: action.payload });\n // update the state\n return { ...state, preferences };\n};\n\nconst actionToReducerMap: { [key: string]: (state: UserState, action: CoreUserActions) => UserState } = {\n [CoreUserActionTypes.UPDATE_USER_DETAILS]: updateUserDetails,\n [CoreUserActionTypes.UPDATE_USER_PREFERENCES]: updateUserPreferences,\n [CoreUserActionTypes.UPDATE_USER_STATE]: updateUser,\n [CoreUserActionTypes.UPDATE_USER_RIGHTS]: updateUserRights,\n [CoreUserActionTypes.UPDATE_USER_DASHBOARD]: updateUserDashboard,\n};\n\nexport const coreUserReducers: (state: UserState, action: Action) => UserState = (state = initialUserState, action: CoreUserActions) => {\n if (actionToReducerMap[action.type]) {\n return actionToReducerMap[action.type](state, action);\n }\n return state;\n};\n","import { Action } from '@ngrx/store';\nimport { NotificationsState, initialNotificationsState } from '@eui/base';\nimport { CoreNotificationsActionTypes, CoreNotificationsActions, UpdateNotificationsListAction } from '../actions';\n\nconst updateNotificationsList = (state: NotificationsState, action: UpdateNotificationsListAction): NotificationsState =>\n Object.assign({}, state, { list: [...action.payload] });\n\nconst actionToReducerMap: { [key: string]: (state: NotificationsState, action: CoreNotificationsActions) => NotificationsState } = {\n [CoreNotificationsActionTypes.UPDATE_NOTIFICATIONS_LIST]: updateNotificationsList,\n};\n\nexport const coreNotificationsReducers: (state: NotificationsState, action: Action) => NotificationsState = (\n state = initialNotificationsState,\n action: CoreNotificationsActions,\n) => {\n if (actionToReducerMap[action.type]) {\n return actionToReducerMap[action.type](state, action);\n }\n return state;\n};\n","import { Action } from '@ngrx/store';\nimport { I18nState, initialI18nState } from '@eui/base';\nimport { CoreI18nActionTypes, CoreI18nActions, UpdateI18nStateAction } from '../actions';\n\nconst updateI18nState = (state: I18nState, action: UpdateI18nStateAction): {activeLang: string} => ({\n ...state,\n ...action.payload,\n});\n\nconst actionToReducerMap: { [key: string]: (state: I18nState, action: CoreI18nActions) => I18nState } = {\n [CoreI18nActionTypes.UPDATE_I18N_STATE]: updateI18nState,\n};\n\nexport const corI18nReducers: (state: I18nState, action: Action) => I18nState = (state = initialI18nState, action: CoreI18nActions) => {\n if (actionToReducerMap[action.type]) {\n return actionToReducerMap[action.type](state, action);\n }\n return state;\n};\n","import { Action } from '@ngrx/store';\nimport { LocaleState, initialLocaleState } from '@eui/base';\nimport { CoreLocaleActionTypes, CoreLocaleActions, UpdateLocaleStateAction } from '../actions/locale.actions';\n\nconst updateLocaleState = (state: LocaleState, action: UpdateLocaleStateAction): LocaleState => ({\n ...state,\n ...action.payload,\n});\n\nconst actionToReducerMap: { [key: string]: (state: LocaleState, action: CoreLocaleActions) => LocaleState } = {\n [CoreLocaleActionTypes.UPDATE_LOCALE_STATE]: updateLocaleState,\n};\n\nexport const coreLocaleReducers: (state: LocaleState, action: Action) => LocaleState = (\n state = initialLocaleState,\n action: CoreLocaleActions,\n) => {\n if (actionToReducerMap[action.type]) {\n return actionToReducerMap[action.type](state, action);\n }\n return state;\n};\n","import { ActionReducerMap } from '@ngrx/store';\nimport { CoreState } from '@eui/base';\nimport { coreAppReducers } from './app.reducers';\nimport { coreUserReducers } from './user.reducers';\nimport { coreNotificationsReducers } from './notifications.reducers';\nimport { corI18nReducers } from './i18n.reducers';\nimport { coreLocaleReducers } from './locale.reducers';\n\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const coreReducers: ActionReducerMap<CoreState, any> = Object.assign(\n {},\n {\n app: coreAppReducers,\n user: coreUserReducers,\n notifications: coreNotificationsReducers,\n i18n: corI18nReducers,\n locale: coreLocaleReducers,\n },\n);\n","import { Action, ActionReducer } from '@ngrx/store';\nimport { CoreAppActionTypes, InitStoreAction } from '../actions/app.actions';\nimport { AppState, CoreState } from '@eui/base';\nimport * as extendProxy from 'extend';\n\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst extend = (<any>extendProxy).default || extendProxy;\n\n/**\n * Utility meta-reducer to load the state from the local storage\n * @param reducer the action reducer\n */\nexport function localStorageSync<S extends CoreState>(reducer: ActionReducer<S>): (state: S, action: Action) => S {\n return cb<S>(reducer, localStorage);\n}\n\n/**\n * Utility meta-reducer to load the state from the session storage\n * @param reducer the action reducer\n */\nexport function sessionStorageSync<S extends CoreState>(reducer: ActionReducer<S>): (state: S, action: Action) => S {\n return cb<S>(reducer, sessionStorage);\n}\n\n// Keys that are allowed to be synced with NgRx state from BrowserStorage\nconst disallowedKeys = ['loadedConfigModules', 'connect', 'currentModule', 'status', 'apiQueue'];\n\n/**\n * filters the AppState by removing those keys from the state and return a new state Object\n * @param app the AppState\n */\nconst filterAppState = (app: AppState): AppState => {\n // in case app is undefined or null it should return empty object\n if (!app) {\n return {};\n }\n\n return (\n Object.keys(app)\n // select keys that are present in the allowed list\n .filter((key) => !disallowedKeys.includes(key))\n // build a new object with only the allowed properties\n .reduce((obj, key) => {\n obj[key] = app[key];\n return obj;\n }, {})\n );\n};\n\n/**\n *\n * @param storage Type of storage to load the state from\n */\nexport const loadState = <S extends CoreState>(storage: Storage = localStorage): S => {\n try {\n // by default falls back to localStorage\n const serializedState = storage.getItem('state');\n\n if (serializedState === null) {\n return undefined;\n }\n\n // deserialize state\n let state: S = JSON.parse(serializedState);\n\n // filter AppState and replace\n state = { ...state, app: filterAppState(state?.app) };\n\n return state;\n } catch (err) {\n return undefined;\n }\n};\n\nconst cb =\n <S extends CoreState>(reducer: ActionReducer<S>, storage: Storage) =>\n (state: S, action: Action): S => {\n if (action.type === CoreAppActionTypes.INIT_STORE) {\n // This action must be dispatched from an app initializer\n // We load the state from a storage and compare the version and userId with the provided ones.\n // If they are the same, we merge the local state into the initial state.\n // If there is a mismatch, we don't merge the local state, but update only the initial state.\n\n // load the state from the localStorage\n const localState: S = loadState<S>(storage);\n\n // extract the details about user and app version from the action payload\n const payload = (action as InitStoreAction).payload;\n const payloadVersion = payload?.version;\n\n if (localState) {\n // TODO: Why all these checks here? What is the purpose of this code?\n // extract the details about user and app version from the storage state\n const localVersion = localState?.app?.version;\n // const localUserId = localState.user && localState.user.userId;\n\n const isVersionOK = !localVersion || !payloadVersion || localVersion === payloadVersion;\n // const isUserIdOK = (localUserId === payloadUserId);\n\n // update the entire state with deep merge of states, if the version and user are the same\n if (isVersionOK) {\n state = extend(true, {}, state, localState);\n }\n }\n\n // update the app version, if defined\n if (payloadVersion) {\n state = { ...state, app: { ...state?.app, version: payloadVersion } };\n }\n }\n\n return reducer(state, action);\n };\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { LogAppender, Logger, LogLevel } from '@eui/base';\n\nexport const BASE_LOGGER_NAME_TOKEN = new InjectionToken<string>('BASE_LOGGER_NAME');\nexport const LOG_LEVEL_TOKEN = new InjectionToken<LogLevel>('LOG_LEVEL');\nexport const LOG_APPENDERS_TOKEN = new InjectionToken<LogAppender[]>('LOG_APPENDERS');\n\n/**\n * Log service, responsible for getting or creating loggers. It itself acts as a base logger\n */\n@Injectable()\nexport class LogService extends Logger {\n /** the list of persistent loggers */\n protected loggers = {};\n\n constructor(\n @Inject(BASE_LOGGER_NAME_TOKEN) protected name: string,\n @Inject(LOG_LEVEL_TOKEN) protected level: LogLevel,\n @Inject(LOG_APPENDERS_TOKEN) protected appenders: LogAppender[],\n ) {\n super(name, level, appenders);\n }\n\n /**\n * Gets a logger by name. If the logger does not exist, it is created\n *\n * @param loggerName logger name\n * @param persist optional parameter. Set it to true if you want to reuse the logger. By default, it is set to false\n * @returns the logger\n */\n getLogger(loggerName: string, persist = false): Logger {\n // create the logger, if necessary\n const logger = (persist && <Logger>this.loggers[loggerName]) || new Logger(loggerName, this.level, this.appenders);\n\n // if the logger is persistent, add it to the list of persistent loggers\n if (persist) {\n this.loggers[loggerName] = logger;\n }\n\n return logger;\n }\n}\n","import { LoggerMock } from '@eui/base';\n\nexport class LogServiceMock extends LoggerMock {\n getLogger(): LoggerMock {\n return new LoggerMock();\n }\n}\n","import { Injector } from '@angular/core';\nimport { LogAppender, LogConfig } from '@eui/base';\nimport { DEFAULT_LOG_CONFIG } from '../../config/defaults';\nimport { LogService } from '../../log/log.service';\n\nconst LOG_INSTANCES = {};\n\n/**\n * Helper function to check if the log config is defined.\n * Does not check only for empty object, because the config can have other (non-log) parameters\n * @params config log configuration\n * @returns true/false\n */\nexport function isLogConfigDefined(config: LogConfig): boolean {\n return config && ('baseLoggerName' in config || 'logLevel' in config || 'logAppenders' in config);\n}\n\n/**\n * Helper function to provide a list of log appenders from a log configuration\n *\n * @params config log configuration\n * @returns an array of log appenders\n */\nexport function getLogAppendersConfig(config: LogConfig = DEFAULT_LOG_CONFIG, injector: Injector = null): LogAppender[] {\n config = Object.assign({}, DEFAULT_LOG_CONFIG, config);\n config.logAppenders = config.logAppenders || [];\n config.logAppenders = Array.isArray(config.logAppenders) ? config.logAppenders : [config.logAppenders];\n return config.logAppenders.map((logAppender) => {\n const appenderType = typeof logAppender === 'object' ? logAppender.type : logAppender;\n const appenderParams = typeof logAppender === 'object' ? logAppender : undefined;\n return new appenderType(appenderParams, injector);\n });\n}\n\n/**\n * Helper function to provide an instance of LogService from a configuration\n *\n * @params config log configuration\n * @returns an instance of log service\n */\nexport function logServiceFactory(config: LogConfig = DEFAULT_LOG_CONFIG, injector: Injector = null): LogService {\n // add the default values to config\n config = Object.assign({}, DEFAULT_LOG_CONFIG, config);\n // extract parameters from config\n const logLevel = config.logLevel;\n const logAppenders = getLogAppendersConfig(config, injector);\n // return an instance of LogService\n return new LogService(config.baseLoggerName, logLevel, logAppenders);\n}\n\nexport function euiLogServiceFactory(\n injector: Injector,\n rootBaseLoggerName: string,\n rootConfig: LogConfig,\n childBaseLoggerName: string = null,\n childConfig: LogConfig = {},\n): LogService {\n // determine if the configuration is for non-root modules\n const forChild = isLogConfigDefined(childConfig);\n const baseLoggerName = forChild ? childBaseLoggerName : rootBaseLoggerName;\n // create the proper configuration\n const config = Object.assign({ baseLoggerName }, forChild ? Object.assign({}, rootConfig, childConfig) : rootConfig);\n\n // re-use the log service or create a new instance\n const logService = LOG_INSTANCES[baseLoggerName] || logServiceFactory(config, injector);\n LOG_INSTANCES[baseLoggerName] = logService;\n return logService;\n}\n","import { InjectionToken, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { LogConfig } from '@eui/base';\n\nimport { LogService } from './log.service';\nimport { DEFAULT_LOG_CONFIG } from '../config/defaults';\nimport { logServiceFactory } from '../app/factories/log';\n\nconst LOG_MODULE_CONFIG_TOKEN = new InjectionToken<LogConfig>('LOG_CONFIG');\n\n/**\n * Log Module\n */\n@NgModule()\nexport class LogModule {\n /** method called in your root module to provide the LogService */\n static forRoot(config: LogConfig = DEFAULT_LOG_CONFIG): ModuleWithProviders<LogModule> {\n return {\n ngModule: LogModule,\n providers: [\n { provide: LOG_MODULE_CONFIG_TOKEN, useValue: config },\n { provide: LogService, useFactory: logServiceFactory, deps: [LOG_MODULE_CONFIG_TOKEN, Injector] },\n ],\n };\n }\n\n /** method called in your other (non root, lazy loaded) modules to import a different instance of LogService */\n static forChild(config: LogConfig = DEFAULT_LOG_CONFIG): ModuleWithProviders<LogModule> {\n return {\n ngModule: LogModule,\n providers: [\n { provide: LOG_MODULE_CONFIG_TOKEN, useValue: config },\n { provide: LogService, useFactory: logServiceFactory, deps: [LOG_MODULE_CONFIG_TOKEN, Injector] },\n ],\n };\n }\n}\n","import { Injectable, Optional } from '@angular/core';\nimport { Action, ActionReducer, Store } from '@ngrx/store';\nimport { Observable, throwError } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\n\nimport { LogService } from '../log';\nimport { InitStoreAction } from './actions';\nimport { CoreState } from '@eui/base';\n\nexport enum BrowserStorageType {\n local,\n session,\n}\n\n// todo should stay here but all the store directory should be moved upper level\n@Injectable({\n providedIn: 'root',\n})\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class StoreService<T = any> {\n /**\n * autoSave handlers to call before saving in local Storage\n */\n protected _autoSaveHandlers: { [key: string]: Function } = {};\n /** storage instance e.g. localStorage, sessionStorage */\n private _storage: Storage = localStorage;\n\n constructor(\n @Optional() protected store: Store<T>,\n @Optional() protected logService: LogService,\n ) {}\n\n // use init with just version info, to update to user state, UserService.updateState\n // initializeStore(version?: string, userDetails?: BaseUserDetails) {\n // this.dispatch(new InitStoreAction({ version, userDetails }));\n // }\n init(version?: string, storageType?: BrowserStorageType): void {\n this.dispatch(new InitStoreAction({ version }));\n\n this._storage = storageType === BrowserStorageType.session ? sessionStorage : localStorage;\n }\n\n addAutoSaveHandler(stateSlice: string, handler: Function): void {\n if (!this.store) {\n if (this.logService) {\n this.logService.warn('StoreService.addAutoSaveHandler() not available without NGRX');\n }\n return;\n }\n this._autoSaveHandlers[stateSlice] = handler;\n }\n\n handleAutoSave(): void {\n if (!this.store) {\n return;\n }\n\n this.store.pipe(debounceTime(1000), distinctUntilChanged()).subscribe((state) => {\n this.saveState(state);\n });\n }\n\n /**\n * Proxy to NGRX store.dispatch()\n * that allows to intercept if the store is present\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dispatch(action: any): void {\n if (this.store) {\n return this.store.dispatch(action);\n }\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dispatchAction(state: T, actionKey: string, reducer: ActionReducer<any, Action>): void {\n if (this.store) {\n this.store.addReducer(actionKey, reducer);\n return this.store.dispatch({ type: actionKey, payload: state });\n }\n }\n\n /**\n * Proxy to NGRX store.select()\n * that allows to intercept if the store is present\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n select(key: any): Observable<T[any]> {\n if (!this.store) {\n return throwError(() => new Error('NGRX Store not configured'));\n }\n return this.store.select(key);\n }\n\n /**\n * filters and save the state with the Browser storage\n * @param state type of CoreState\n */\n protected saveState(state: CoreState): void {\n let stateToSave: CoreState = {\n app: state.app,\n };\n\n if (state.user) {\n const { userId, preferences } = state.user;\n stateToSave.user = { userId, preferences };\n }\n\n Object.keys(this._autoSaveHandlers).forEach((sliceState: string) => {\n const handler = this._autoSaveHandlers[sliceState];\n stateToSave = Object.assign(stateToSave, { [sliceState]: handler(state[sliceState]) });\n });\n\n try {\n const serializedState = JSON.stringify(stateToSave);\n this._storage.setItem('state', serializedState);\n } catch (err) {\n // Ignore write errors.\n }\n }\n}\n","import { Observable, of } from 'rxjs';\nimport { StoreService } from './store.service';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class StoreServiceMock extends StoreService {\n constructor() {\n super(null, null);\n }\n\n init(): void {/* empty */}\n\n addAutoSaveHandler(): void {/* empty */}\n\n handleAutoSave(): void {/* empty */}\n\n dispatch(): void {/* empty */}\n\n select(): Observable<object> {\n return of({});\n }\n}\n","import { LOCATION_INITIALIZED } from '@angular/common';\nimport { Injector } from '@angular/core';\nimport { EuiAppConfig } from '@eui/base';\nimport { CONFIG_TOKEN } from '../config/tokens';\nimport { BrowserStorageType, StoreService } from '../store';\n\nexport const euiInitApp = (injector: Injector) => (): Promise<null> =>\n new Promise((resolve) => {\n const locationInitialized = injector.get(LOCATION_INITIALIZED, Promise.resolve(null));\n\n locationInitialized.then(() => {\n const appConfig: EuiAppConfig = injector.get(CONFIG_TOKEN);\n // necessary config parameters\n let appVersion: string;\n if (appConfig && appConfig.versions && appConfig.versions.app) {\n appVersion = appConfig.versions.app;\n } else {\n appVersion = '0.0.0';\n }\n let storageType: BrowserStorageType;\n if (appConfig && appConfig.saveStateStorage) {\n storageType = appConfig.saveStateStorage;\n } else {\n storageType = BrowserStorageType.local;\n }\n\n const storeService = injector.get(StoreService);\n storeService.init(appVersion, storageType);\n storeService.handleAutoSave();\n resolve(null);\n });\n });\n","import { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { APP_INITIALIZER, Injector, Provider } from '@angular/core';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport {\n BASE_NAME_TOKEN,\n EUI_CONFIG_TOKEN,\n MODULE_CONFIG_TOKEN,\n MODULE_NAME_TOKEN,\n GLOBAL_CONFIG_TOKEN,\n CONFIG_TOKEN,\n HTTP_ERROR_HANDLER_CONFIG_TOKEN,\n SHOW_CONNECTION_STATUS_TOKEN,\n ROOT_LOG_CONFIG_TOKEN,\n prepareEuiAppConfigToken,\n getGlobalConfig,\n getShowConnectionStatus,\n getModuleConfig,\n getHttpErrorHandlingConfig,\n getRootLogConfig,\n} from '../config/tokens';\nimport { euiLogServiceFactory } from './factories/log';\nimport { euiInitApp } from './eui-init-app';\nimport { LogService } from '../log/log.service';\n\nexport function getCoreProviders(): Provider[] {\n return [\n // core config\n ...getDependencyProviders(),\n { provide: BASE_NAME_TOKEN, useValue: 'eui-core' },\n // app config\n { provide: CONFIG_TOKEN, useFactory: prepareEuiAppConfigToken, deps: [EUI_CONFIG_TOKEN] },\n // global config\n { provide: GLOBAL_CONFIG_TOKEN, useFactory: getGlobalConfig, deps: [CONFIG_TOKEN] },\n { provide: ROOT_LOG_CONFIG_TOKEN, useFactory: getRootLogConfig, deps: [CONFIG_TOKEN] },\n { provide: SHOW_CONNECTION_STATUS_TOKEN, useFactory: getShowConnectionStatus, deps: [GLOBAL_CONFIG_TOKEN] },\n { provide: LogService, useFactory: euiLogServiceFactory, deps: [Injector, BASE_NAME_TOKEN, ROOT_LOG_CONFIG_TOKEN] },\n { provide: HTTP_ERROR_HANDLER_CONFIG_TOKEN, useFactory: getHttpErrorHandlingConfig, deps: [CONFIG_TOKEN] },\n { provide: APP_INITIALIZER, useFactory: euiInitApp, multi: true, deps: [Injector] },\n ];\n}\n\nexport function getDependencyProviders(): Provider[] {\n return [{ provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] }];\n}\n\nexport function getCoreChildProviders(moduleName: string): Provider[] {\n return [\n // module config\n { provide: MODULE_NAME_TOKEN, useValue: moduleName },\n { provide: MODULE_CONFIG_TOKEN, useFactory: getModuleConfig, deps: [CONFIG_TOKEN, MODULE_NAME_TOKEN] },\n // log config\n {\n provide: LogService,\n useFactory: euiLogServiceFactory,\n deps: [Injector, BASE_NAME_TOKEN, ROOT_LOG_CONFIG_TOKEN, MODULE_NAME_TOKEN, MODULE_CONFIG_TOKEN],\n },\n ];\n}\n","import { Injector, ModuleWithProviders, NgModule, Optional, SkipSelf, InjectionToken, Inject } from '@angular/core';\n\nimport { MODULE_CONFIG_TOKEN, MODULE_NAME_TOKEN } from './services/config/tokens';\nimport { StoreService, AddAppLoadedConfigModulesAction } from './services/store/index';\nimport { getCoreChildProviders, getCoreProviders } from './services/app/eui-startup';\n\nexport const CORE_ROOT_GUARD = new InjectionToken<void>('Internal Theme ForRoot Guard');\n\n@NgModule({\n imports: [\n // HttpClientModule, no more..\n ],\n})\nexport class CoreModule {\n /**\n * No more providing config from forRoot, you have to use EUI_CONFIG_TOKEN to pass config via providers.\n */\n static forRoot(): ModuleWithProviders<CoreModule> {\n return {\n ngModule: CoreModule,\n providers: [\n {\n provide: EuiCoreRootGuardClass,\n useFactory: euiCoreRootGuardClass,\n deps: [],\n },\n {\n provide: CORE_ROOT_GUARD,\n useFactory: createEuiCoreRootGuard,\n deps: [[EuiCoreRootGuardClass, new Optional(), new SkipSelf()]],\n },\n ...getCoreProviders(),\n ],\n };\n }\n\n static forChild(moduleName: string): ModuleWithProviders<CoreModule> {\n return {\n ngModule: CoreModule,\n providers: getCoreChildProviders(moduleName),\n };\n }\n\n constructor(@Optional() @Inject(CORE_ROOT_GUARD) guard: null, @Optional() @SkipSelf() parentModule: CoreModule, injector: Injector) {\n // if there is a parentModule, a new instance is created in a lazy loaded module\n if (parentModule) {\n // extract the i18n service and the i18n loader config\n // todo, this thing should be achieved by store, and localization service dependency should be removed\n const storeService = injector.get(StoreService);\n const moduleName = injector.get(MODULE_NAME_TOKEN);\n const moduleConfig = injector.get(MODULE_CONFIG_TOKEN);\n storeService.dispatch(new AddAppLoadedConfigModulesAction({ moduleName, moduleConfig }));\n }\n }\n}\n\nconst createEuiCoreRootGuard = (core): string => {\n if (core) {\n throw new TypeError('CoreModule.forRoot() called twice. Feature modules should use ThemeModule.forChild() instead.');\n }\n return 'guarded';\n};\n\nexport class EuiCoreRootGuardClass {\n constructor() { /* empty */ }\n}\n\nconst euiCoreRootGuardClass = (): EuiCoreRootGuardClass => new EuiCoreRootGuardClass();\n\nexport { createEuiCoreRootGuard, euiCoreRootGuardClass };\n","import { EnvDynamicConfig, EuiAppJsonConfig, EuiEnvConfig, xhr } from '@eui/base';\n\n/**\n * Function to be used before the AppModule is bootstrapped. It is currently used to load dynamic configurations.\n * It needs to be added in your application main.ts file.\n * @param envConfig the current environment configuration\n * @returns the updated environment configuration, as a promise\n */\nexport async function preInitApp(envConfig: EuiEnvConfig): Promise<EuiEnvConfig> {\n const envDynamicConfig: EnvDynamicConfig = envConfig && envConfig.envDynamicConfig;\n if (envDynamicConfig) {\n // load the local configuration file, if defined\n const euiAppJsonConfig: EuiAppJsonConfig = await loadEuiDynamicEnvironmentConfig(\n envDynamicConfig.uri,\n envDynamicConfig.configTimeout || 2000,\n );\n envConfig.loadedEnvDynamicConfig = euiAppJsonConfig;\n return envConfig;\n }\n return envConfig;\n}\n\n/**\n * Function to load asynchronously a dynamic configuration (from a local path or a web service)\n *\n * @param url the path to the configuration\n * @param timeout possible timeout\n * @returns EuiAppJsonConfig promise\n */\nexport async function loadEuiDynamicEnvironmentConfig(url: string, timeout?: number): Promise<EuiAppJsonConfig> {\n // if the url is specified\n if (url) {\n // fetch the config\n try {\n return await xhr<EuiAppJsonConfig>({\n url,\n timeout,\n });\n } catch (error) {\n // send a warning to the console\n console.warn('Dynamic configuration cannot be loaded from url', url, error);\n }\n }\n // the dynamic config is not loaded\n return null;\n}\n","export const errorCodes = {\n ERR_GENERIC: 'ERR_GENERIC',\n};\n\nconst messages = {\n ERR_GENERIC: 'An error occured',\n};\n\n// Intermediate \"hacky\" subclass taken from\n// https://www.bennadel.com/blog/3226-experimenting-with-error-sub-classing-using-es5-and-typescript-2-1-5.htm\n\nexport class ErrorSubClass {\n public code?: string;\n public message: string;\n public stack: string;\n public name: string;\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(code?: string, msg?: string, args?: any) {\n if (!msg && code && code in messages) {\n if (typeof messages[code] === 'function') {\n msg = messages[code](...args.messageParams);\n } else {\n msg = messages[code];\n }\n }\n\n this.name = 'ErrorSubClass';\n this.message = msg;\n this.code = code;\n this.stack = new Error(msg).stack;\n\n if (args) {\n Object.keys(args).forEach((k) => {\n if (k !== 'messageParams') {\n this[k] = args[k];\n }\n });\n }\n }\n}\n\n// This replaces the \"extends\" on the Class\n// ErrorSubClass.prototype = <any>Object.create(Error.prototype);\n\nexport class EuiError extends ErrorSubClass {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(code: string = errorCodes.ERR_GENERIC, msg?: string, args?: any) {\n super(code, msg, args);\n\n this.name = 'EuiError';\n }\n}\n","import { ErrorHandler, Injectable } from '@angular/core';\n\nimport { LogService } from '../log';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GlobalErrorHandler extends ErrorHandler {\n constructor(protected logService: LogService) {\n super();\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handleError(error: any): void {\n // log error\n this.logService.error(error.message || error.toString());\n\n // throw error;\n super.handleError(error);\n }\n}\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { HttpErrorHandlerConfig, HttpErrorRouteConfig } from '@eui/base';\nimport { HTTP_ERROR_HANDLER_CONFIG_TOKEN } from '../config/tokens';\nimport { DEFAULT_HTTP_ERROR_HANDLER_CONFIG } from '../config/defaults';\n\n@Injectable()\nexport class HttpErrorHandlerInterceptor implements HttpInterceptor {\n constructor(\n @Inject(HTTP_ERROR_HANDLER_CONFIG_TOKEN) protected config: HttpErrorHandlerConfig = DEFAULT_HTTP_ERROR_HANDLER_CONFIG,\n protected injector: Injector,\n protected router: Router,\n ) {}\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return next.handle(req).pipe(\n tap({\n next: () => { /* empty */ },\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error: (error: any) => {\n // in case of http error\n if (error instanceof HttpErrorResponse) {\n const routeConfig = this.getRouteConfig(error);\n const rule = routeConfig && (routeConfig[error.status] || routeConfig.default);\n\n if (typeof rule === 'string') {\n // perform a redirect\n this.router.navigate([rule]);\n } else if (typeof rule === 'function') {\n // callback function\n rule.call(null, error, this.injector);\n }\n }\n },\n }),\n );\n }\n\n /**\n * Search in the configuration for the first matching route\n *\n * @param error http error response\n * @returns HttpErrorRouteConfig or null\n */\n protected getRouteConfig(error: HttpErrorResponse): HttpErrorRouteConfig | null {\n // filter the routes\n const routes = this.config.routes.filter((route) => {\n const regex = new RegExp('^' + route.path.split('*').join('.*') + '$');\n return regex.test(error.url) && (typeof route[error.status] !== 'undefined' || typeof route.default !== 'undefined');\n });\n // return the first matching route, if any\n return routes.length > 0 ? routes[0] : null;\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injector } from '@angular/core';\nimport { LogService } from '../log';\nimport { EuiGrowlService } from '../growl/eui-growl.service';\n\nexport function AlertHttpErrorCallbackFn(error: HttpErrorResponse): void {\n alert(error.statusText);\n}\n\nexport function ConsoleHttpErrorCallbackFn(error: HttpErrorResponse): void {\n console.error('HttpError', error);\n}\n\nexport function LogHttpErrorCallbackFn(error: HttpErrorResponse, injector: Injector): void {\n const logService = injector.get(LogService);\n logService.error('HttpError', error);\n}\n\nexport function GrowlHttpErrorCallbackFn(error: HttpErrorResponse, injector: Injector): void {\n const asService = injector.get(EuiGrowlService);\n asService.growlError(error.statusText);\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, of, forkJoin } from 'rxjs';\nimport { tap, switchMap, take, map, catchError, concatMap } from 'rxjs/operators';\nimport { getApiQueue, getApiQueueItem, ApiQueue, ApiQueueItem } from '@eui/base';\n\nimport { LogService } from '../log';\nimport { StoreService, AddApiQueueItemAction, RemoveApiQueueItemAction, EmptyApiQueueAction } from '../store';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiQueueService {\n constructor(\n protected store: StoreService,\n protected http: HttpClient,\n protected logService: LogService,\n ) {}\n\n /**\n * Adds an item in the queue by dispatching an action to the store.\n * @param id - The id of the item inside the queue.\n * WARNING if matches any other queue item id will overwrite it.\n * @param item - an item for Queue\n */\n addQueueItem(id: string, item: ApiQueueItem): void {\n const allowedMethods = ['post', 'put', 'get'];\n\n if (allowedMethods.indexOf(item.method) < 0) {\n throw new Error(`[ApiQueue] method \"${item.method}\" is not allowed`);\n }\n\n this.store.dispatch(new AddApiQueueItemAction({ id, item }));\n }\n\n /**\n * Subscribes to the store to retrieve queue and then converts the queue object to an array of items.\n * @return An Observable of array of all items inside the current queue (ApiQueueItem[])\n */\n getQueue(): Observable<ApiQueueItem[]> {\n return this.store.select(getApiQueue).pipe(\n take(1),\n map((queue: ApiQueue) => {\n const queueArray = queue && Object.values<ApiQueueItem>(queue);\n if (!queueArray || queueArray.length < 1) {\n this.logService.warn('No items in the queue exist.');\n }\n\n return queueArray;\n }),\n );\n }\n\n /**\n * Subscribes to the store to retrieve an item from the queue.\n * @param id - id of the item inside the queue\n * @return An Observable of ApiQueueItem type\n */\n getQueueItem(id: string): Observable<ApiQueueItem> {\n return this.store.select(getApiQueueItem(id)).pipe(\n take(1),\n map((queue: ApiQueueItem) => {\n if (!queue) {\n this.logService.warn(`Queue item with id \"${id}\" does not exist`);\n return null;\n }\n return queue;\n }),\n );\n }\n\n /**\n * Removes a given item from the queue.\n * @param id - id of the item inside the queue\n */\n removeQueueItem(id: string): void {\n this.store.dispatch(new RemoveApiQueueItemAction(id));\n }\n\n /**\n * Removes all items placed in the queue.\n */\n removeAllQueueItem(): void {\n this.store.dispatch(new EmptyApiQueueAction(null));\n }\n\n /**\n * Process an item from the queue.\n * @param id - id of the item inside the queue\n * @return An Observable of type any\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n processQueueItem(id: string): Observable<any> {\n return this.store.select(getApiQueueItem(id)).pipe(\n take(1),\n switchMap((queue: ApiQueueItem) => {\n if (!queue) {\n this.logService.warn(`Queue item with id \"${id}\" does not exist`);\n return of(null);\n }\n\n return this.buildHttpRequest(id, queue);\n }),\n );\n }\n\n /**\n * Process all the items inside the queue.\n * @param [continueOnError=true] - in case of an item request fails continue with the rest in queue\n * @return An Observable with an array which contains all responses from all items in queue.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n processAllQueueItems(continueOnError = true): Observable<any[]> {\n return this.store.select(getApiQueue).pipe(\n map((queue: ApiQueue) =>\n Object.entries(queue).map(([key, value]) =>\n this.buildHttpRequest(key, value).pipe(\n catchError((error: Error) => {\n this.logService.error(`Queue Item with id ${key} failed.`, error.message, error.stack);\n\n if (!continueOnError) {\n throw error;\n }\n\n return of(error);\n }),\n ),\n ),\n ),\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n switchMap((obsQueue: Observable<any>[]) => forkJoin(Array.from(obsQueue))),\n );\n }\n\n /**\n * Process all items in queue after it order them based on their timestamp. Beware that order\n * matter in execution of Http Request in queue. When a request completes only then next will begin. Emission\n * or Http response follows order.\n * @param [ascending=true] - sets the order of queue items based on timestamp\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n processAllQueueItemsSequential(ascending = true): Observable<any> {\n return this.store.select(getApiQueue).pipe(\n concatMap((queue: ApiQueue) =>\n Object.entries(queue)\n .sort((a, b) => (ascending ? this.sortOnTimestamp(a, b) : this.sortOnTimestamp(b, a)))\n .map(([id, item]) => this.buildHttpRequest(id, item)),\n ),\n );\n }\n\n /**\n * Short dates ascending based on input\n * @param a - Date one\n * @param b - Date two\n *\n * @beta\n */\n protected sortOnTimestamp(a: [string, ApiQueueItem], b: [string, ApiQueueItem]): number {\n return +new Date(a[1].timestamp) - +new Date(b[1].timestamp);\n }\n\n /**\n * build and HttpRequest Observable based on the given queue.\n * After successful request completion removes the item from the queue.\n * @param id - id of the item inside the queue\n * @param item - the item of the queue that matches the id.\n * @return An Observable of HttpClient Request\n */\n // TODO: add type for T and deprecate old function\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private buildHttpRequest<T = any>(id: string, item: ApiQueueItem): Observable<T> {\n return this.http[item.method.toLowerCase()](item.uri, item.payload).pipe(tap(() => this.removeQueueItem(id)));\n }\n}\n","import { ApiQueueService } from './api-queue.service';\nimport { Observable, of } from 'rxjs';\nimport { ApiQueueItem } from '@eui/base';\n\nexport class ApiQueueServiceMock extends ApiQueueService {\n constructor() {\n super(null, null, null);\n }\n getQueue(): Observable<ApiQueueItem[]> {\n return of([]);\n }\n getQueueItem(id: string): Observable<ApiQueueItem> {\n return of({ uri: id, method: 'GET' });\n }\n removeAllQueueItem(): void { /* empty */ }\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n processAllQueueItems(): Observable<any> {\n return of({});\n }\n addQueueItem(): void { /* empty */ }\n removeQueueItem(): void { /* empty */ }\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n processQueueItem(): Observable<any> {\n return of({});\n }\n}\n","export class I18nResourceImpl {\n /**\n * Resource constructor\n *\n * @param prefix the prefix of the resource\n * @param suffix the suffix of the resource, optional parameter\n * @param compileTranslationsFn compiler function, optional parameter\n */\n constructor(\n protected prefix: string,\n protected suffix = '',\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-function-return-type\n protected compileTranslationsFn: (translations: any, lang: string) => any = (translations: any) => translations,\n ) {}\n\n /**\n * Translations pre-processor\n *\n * @param translations the object to be pre-processed\n * @param lang the translations language\n * @returns the pre-processed translations\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public compileTranslations(translations: any, lang: string): any {\n return this.compileTranslationsFn(translations, lang);\n }\n\n /**\n * Indicates whether other object is equal-to this one.\n *\n * @param obj the reference object with which to compare\n * @returns true if this object is the same as obj, false otherwise\n */\n public equals(obj: I18nResourceImpl): boolean {\n return this.prefix === obj.prefix && this.suffix === obj.suffix;\n }\n\n /**\n * The path to the resource\n *\n * @param lang the resource language\n * @returns the path\n */\n public getPath(lang: string): string {\n return `${this.prefix}${lang}${this.suffix}`;\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TranslateLoader } from '@ngx-translate/core';\nimport { forkJoin, Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { getI18nLoaderConfig, I18nResource, type EuiAppConfig } from '@eui/base';\nimport { I18nResourceImpl } from './i18n.resource';\nimport { mergeAll } from '@eui/base';\nimport { I18nLoaderConfig, I18nConfig, TranslationsCompiler } from '@eui/base';\nimport { CONFIG_TOKEN } from '../config/tokens';\nimport { LogService } from '../log/log.service';\n\n// export const I18N_LOADER_CONFIG_TOKEN = new InjectionToken<I18nLoaderConfig>('I18N_LOADER_CONFIG');\ninterface ResourceError {\n isError: boolean;\n error?: string;\n resource?: I18nResourceImpl;\n}\n\nexport interface LoadedResources {\n translations: object;\n hasError: boolean;\n errors?: Array<LoadedResourcesError>;\n}\n\nexport interface LoadedResourcesError {\n resource: I18nResourceImpl;\n error: string;\n}\n\n@Injectable()\nexport class I18nLoader implements TranslateLoader {\n protected resources: I18nResourceImpl[] = [];\n protected failedResources: Array<LoadedResourcesError> = [];\n\n constructor(\n protected http: HttpClient,\n @Optional() protected logService: LogService,\n @Inject(CONFIG_TOKEN) protected euiAppConfig: EuiAppConfig,\n ) {\n // create the resources from the config object\n const i18nConfig: I18nConfig = this.euiAppConfig.global && this.euiAppConfig.global.i18n;\n const i18nLoaderConfig: I18nLoaderConfig = i18nConfig && i18nConfig.i18nLoader;\n this.resources.push(...this.createResources(i18nLoaderConfig));\n }\n\n /**\n * Gets the translations from the server\n *\n * @param lang\n * @returns Observable<any>\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public getTranslation(lang: string): Observable<any> {\n return this.loadResources(this.resources, lang).pipe(\n map((loadedResources: LoadedResources) => {\n this.failedResources = loadedResources.hasError ? loadedResources.errors : [];\n return loadedResources.translations;\n }),\n );\n }\n\n /**\n * Adds resources\n *\n * @param config loader configuration\n * @returns Observable<any> | false\n */\n public addResources(config: I18nLoaderConfig): I18nResourceImpl[] {\n // create the resources\n let resources = this.createResources(config);\n\n // filter the resources first, to avoid duplicates\n resources = resources.filter((resource) => !this.resources.some((res) => res.equals(resource)));\n\n // add the new resources to the list of existing resources\n this.resources.push(...resources);\n\n // return the filtered resources\n return resources;\n }\n\n /**\n * Removes resources from the loader instance\n */\n public removeResources(removedResources: I18nResourceImpl[]): void {\n this.resources = this.resources.filter((res) => !removedResources.some((removedResource) => removedResource.equals(res)));\n }\n\n /**\n * Loads an array of resources, by language\n *\n * @param resources the definition of the resources\n * @param lang the resource language to load\n * @returns Observable<any>\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public loadResources(resources: I18nResourceImpl[], lang: string): Observable<any> {\n // if there are resources to load\n if (Array.isArray(resources) && resources.length > 0) {\n // load all the resources in an array of Observable\n const requests = resources.map((resource) => this.loadResource(resource, lang));\n // group all the observables with forkJoin and deep merge them\n return forkJoin(requests).pipe(\n map((response) => {\n const successResp = [];\n const errResp: Array<LoadedResourcesError> = [];\n response.forEach((item) => {\n if ((<ResourceError>item).isError) {\n errResp.push({ resource: (<ResourceError>item).resource, error: (<ResourceError>item).error });\n } else {\n successResp.push(item);\n }\n });\n if (successResp.length === response.length) {\n return { hasError: false, translations: mergeAll(successResp) };\n } else {\n return { hasError: true, translations: mergeAll(successResp), errors: errResp };\n }\n }),\n );\n } else {\n // no resources to load\n return of({ hasError: false, translations: {} });\n }\n }\n\n /**\n * Returns resources that failed\n */\n public getFailedResources(): Array<LoadedResourcesError> {\n return this.failedResources;\n }\n\n /**\n * Create resources from a config file\n *\n * @param config loader configuration\n * @returns I18nResourceImpl[] resources\n */\n protected createResources(config: I18nLoaderConfig): I18nResourceImpl[] {\n // use the default config as a reference base\n config = getI18nLoaderConfig(config);\n\n const resources = [];\n\n // extract the i18n folders from config\n const i18nFolders: string[] = Array.isArray(config.i18nFolders)\n ? config.i18nFolders\n : config.i18nFolders\n ? [config.i18nFolders]\n : [];\n if (i18nFolders) {\n // add the i18n folders to resources\n resources.push(...i18nFolders.map((folder) => new I18nResourceImpl(`assets/${folder}/`, '.json')));\n }\n\n // extract the i18n services from config\n const i18nServices: string[] = Array.isArray(config.i18nServices)\n ? config.i18nServices\n : config.i18nServices\n ? [config.i18nServices]\n : [];\n if (i18nServices) {\n // add the i18n services to resources\n resources.push(...i18nServices.map((service) => new I18nResourceImpl(service)));\n }\n\n // extract the i18n resources from config\n const i18nResources: I18nResource[] = Array.isArray(config.i18nResources)\n ? config.i18nResources\n : config.i18nResources\n ? [config.i18nResources]\n : [];\n if (i18nResources) {\n // add the i18n resources to resources\n resources.push(\n ...i18nResources.map(\n (resource) =>\n new I18nResourceImpl(\n resource.prefix,\n resource.suffix,\n this.getResourceCompileFunction(resource.compileTranslations),\n ),\n ),\n );\n }\n\n return resources;\n }\n\n /**\n * Loads a resource, by language\n *\n * @param resource the definition of the resource\n * @param lang the resource language to load\n * @returns Observable<any>\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected loadResource(resource: I18nResourceImpl, lang: string): Observable<any> {\n // the path to the resource\n const path = resource.getPath(lang);\n\n // load the translations from the path\n return this.http.get(path).pipe(\n // preprocess the translations using the resource compiler\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n map((translations: any) => resource.compileTranslations(translations, lang)),\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n map((translations: any) => {\n // resource loaded properly, send a info message\n if (this.logService) {\n this.logService.info(`I18n resource loaded from path ${path}`);\n }\n // return the translations\n return translations;\n }),\n catchError((err) => {\n // remove failed resource from loaded resource array\n this.removeResources([resource]);\n // resource not loaded properly, send a warning message\n if (this.logService) {\n this.logService.warn(`I18n resource NOT loaded from path ${path}`, err);\n }\n const resourceError: ResourceError = { error: `I18n resource NOT loaded from path ${path}`, resource, isError: true };\n return of(resourceError);\n }),\n );\n }\n\n private getResourceCompileFunction(id: string): TranslationsCompiler {\n const customHandlers = this.euiAppConfig.customHandler;\n if (customHandlers && typeof customHandlers[id] === 'function') {\n return customHandlers[id];\n }\n return undefined;\n }\n}\n\nexport const translateConfig = {\n loader: {\n provide: TranslateLoader,\n useClass: I18nLoader,\n },\n};\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, forkJoin, Observable, of } from 'rxjs';\nimport { catchError, filter, map, take, tap, switchMap } from 'rxjs/operators';\nimport {\n GlobalConfig,\n EuiLazyService,\n EuiServiceStatus,\n getI18nServiceConfigFromBase,\n getI18nState,\n getActiveLang,\n getLastAddedModule,\n I18nLoaderConfig,\n I18nServiceConfig,\n I18nState,\n ModuleConfig,\n getBrowserDefaultLanguage,\n EuiEuLanguages,\n} from '@eui/base';\n\nimport { I18nLoader, LoadedResources } from './i18n.loader';\nimport { GLOBAL_CONFIG_TOKEN } from '../config/tokens';\nimport { LogService } from '../log';\nimport { StoreService, UpdateI18nStateAction } from '../store';\nimport { DEFAULT_I18N_SERVICE_CONFIG } from '../config/defaults';\nimport { createSelector } from '@ngrx/store';\n\nexport interface ModuleLoadEvent {\n ready: boolean;\n name: string;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error?: any;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class I18nService<T extends I18nState = I18nState> extends EuiLazyService<T | I18nState> {\n protected config: I18nServiceConfig;\n protected onModuleLoad: BehaviorSubject<ModuleLoadEvent>;\n\n constructor(\n @Inject(GLOBAL_CONFIG_TOKEN) protected baseGlobalConfig: GlobalConfig,\n protected translateService: TranslateService,\n @Optional() protected logService: LogService,\n protected store: StoreService,\n @Inject(DOCUMENT) private document: Document,\n ) {\n super({ activeLang: 'en' });\n this.config = getI18nServiceConfigFromBase(this.baseGlobalConfig);\n this.onModuleLoad = new BehaviorSubject<ModuleLoadEvent>({ ready: false, name: null });\n }\n\n getState<K = T>(mapFn?: (state: T) => K): Observable<K>;\n getState<a extends keyof T>(key?: a): Observable<T[a]>;\n getState<K>(keyOrMapFn?: ((state: T) => K) | string): Observable<K> {\n let selector: (s:T) => K | I18nState = getI18nState;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const dotNotationToObject = (obj, key): any => key.split('.').reduce((slice, i) => slice[i], obj);\n\n if (keyOrMapFn) {\n switch (typeof keyOrMapFn) {\n case 'function':\n selector = createSelector(getI18nState, keyOrMapFn);\n break;\n case 'string':\n selector = createSelector(getI18nState, (state) => dotNotationToObject(state, keyOrMapFn));\n break;\n }\n }\n return this.store.select(selector);\n }\n\n updateState(langState: T | I18nState): void {\n this.updateHTMLDOMLang(langState.activeLang);\n this.store.dispatch(new UpdateI18nStateAction(langState));\n }\n\n init(langState?: T): Observable<EuiServiceStatus> {\n const initLang = langState && langState.activeLang ? langState.activeLang : this.preparedDefaultLanguage();\n const initState = {\n ...langState,\n activeLang: initLang,\n };\n if (typeof initLang === 'string') {\n super.initEuiService(this.store);\n this.updateState(initState);\n return this.setup(initLang);\n }\n return of({ success: false, error: 'Initial active lang should be string' });\n }\n\n /**\n * A pipe function that could serve as a wrapper of another observable\n * e.g. ngx-translate i18n.onReady('my_module').pipe(switchMap(()=>translate.get('eui.KEY')));\n * WARNING: onReady will emit only once for a loaded Module, going to another and then going back will not result\n * into another emission.\n *\n * @param moduleName the name of the module that has been given through the eUI globalConfig. In case non provided\n * fetch module name from the state.\n */\n // @deprecated expect return type to be Observable<ModuleLoadEvent> instead of Observable<any> on v17 it will be removed\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onReady(moduleName?: string): Observable<any>;\n onReady(moduleName?: string): Observable<ModuleLoadEvent> {\n return this.onModuleLoad.pipe(\n switchMap((evt: ModuleLoadEvent) =>\n moduleName\n ? of(evt)\n : this.store.select(getLastAddedModule).pipe(\n tap((m) => (moduleName = m)),\n map(() => evt),\n ),\n ),\n // emit only if event emitted matches the module name and is ready\n filter((evt: ModuleLoadEvent) => evt.ready === true && evt.name === moduleName),\n // make sure that observable completes\n take(1),\n );\n }\n\n public lazyLoad(config: I18nLoaderConfig): Observable<EuiServiceStatus> {\n const moduleId = Math.floor(Math.random() * 100000 + 1).toLocaleString();\n return this.addResources(config, moduleId);\n }\n\n lazyLoadInit(moduleConfig: ModuleConfig, moduleName?: string): Observable<EuiServiceStatus> {\n const i18nLoaderConfig = moduleConfig as I18nLoaderConfig;\n // add resources\n return this.addResources(i18nLoaderConfig, moduleName);\n }\n\n /**\n * Add resources based of a config loader\n *\n * @param config I18nLoaderConfig\n * @param moduleName\n * @return Promise<EuiServiceStatus> an EuiServiceStatus when translation has fully loaded\n */\n public addResources(config: I18nLoaderConfig, moduleName?: string): Observable<EuiServiceStatus> {\n // emit that module is loading\n this.onModuleLoad.next({ ready: false, name: moduleName });\n\n const loader = this.translateService.currentLoader;\n if (loader instanceof I18nLoader) {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const langSubscription: Observable<any>[] = [];\n const i18nLoader = <I18nLoader>loader;\n\n // add the resources to the loader\n const resources = i18nLoader.addResources(config);\n\n // manually load the resources for the CURRENT language and add them to the translate service\n langSubscription.push(\n i18nLoader.loadResources(resources, this.translateService.currentLang).pipe(\n take(1),\n tap((loadedResources: LoadedResources) => {\n // add the new set of translations to the current language\n this.translateService.setTranslation(this.translateService.currentLang, loadedResources.translations, true);\n }),\n ),\n );\n\n // if the current language is different from the DEFAULT language\n const defaultLang = this.config.defaultLanguage || this.translateService.defaultLang;\n if (this.translateService.currentLang !== defaultLang) {\n // manually load the resources for the default language and add them to the translation service\n langSubscription.push(\n i18nLoader.loadResources(resources, defaultLang).pipe(\n take(1),\n tap((loadedResources: LoadedResources) => {\n this.translateService.setTranslation(defaultLang, loadedResources.translations, true);\n }),\n ),\n );\n }\n\n return forkJoin(langSubscription).pipe(\n map((loadedResourcesArr: LoadedResources[]) =>\n !loadedResourcesArr[0].hasError ? { success: true } : { success: false, error: loadedResourcesArr[0].errors },\n ),\n tap(() => {\n // emit status of module loading progress\n this.onModuleLoad.next({ ready: true, name: moduleName });\n }),\n catchError((error) => {\n // emit status of module loading progress\n this.onModuleLoad.next({ ready: true, name: moduleName, error });\n return of({ success: false, error });\n }),\n );\n } else {\n return of({ success: false, error: 'currentLoader is not an I18nLoader.' });\n }\n }\n\n /**\n * Prepares the default language\n */\n private preparedDefaultLanguage(): string {\n const browserPref = getBrowserDefaultLanguage();\n // If user has browser preferred lang, and that language is part of the languages array\n if (browserPref && this.config.languages && EuiEuLanguages.getLanguageCodes(this.config.languages).includes(browserPref)) {\n return browserPref;\n }\n return this.config.defaultLanguage;\n }\n\n /**\n * @param default_language if given default language to override default language coming from the\n * configuration token.\n */\n private setup(initLanguage: string): Observable<EuiServiceStatus> {\n // use the default config as a reference base\n this.config = Object.assign({}, DEFAULT_I18N_SERVICE_CONFIG, this.config);\n // configure the translate config service\n if (this.config.languages) {\n this.translateService.addLangs(EuiEuLanguages.getLanguageCodes(this.config.languages));\n if (this.logService) {\n this.logService.info(`I18n accepted languages set to ${EuiEuLanguages.getLanguageCodes(this.config.languages)}`);\n }\n }\n // set the current language, causing to load translations\n return this.translateService.use(initLanguage).pipe(\n tap(() => {\n this.bindActiveLangStateToTranslateService();\n this.bindTranslateServiceLangChangeToState();\n if (this.config.defaultLanguage) {\n this.setDefaultLanguage(this.config.defaultLanguage);\n }\n }),\n map(() => {\n if (this.translateService.currentLoader instanceof I18nLoader) {\n const failedResources = this.translateService.currentLoader.getFailedResources();\n if (failedResources.length > 0) {\n return { success: false, error: failedResources };\n }\n }\n return { success: true };\n }),\n catchError((error) => of({ success: false, error })),\n );\n }\n\n private bindActiveLangStateToTranslateService(): void {\n this.store.select(getActiveLang).subscribe((lang: string) => {\n if (lang !== null && this.translateService.currentLang !== lang) {\n this.use(lang);\n }\n });\n }\n\n private bindTranslateServiceLangChangeToState(): void {\n this.translateService.onLangChange.subscribe((event: LangChangeEvent) => {\n if (this.stateInstance.activeLang !== event.lang) {\n this.updateState({ activeLang: event.lang });\n }\n if (this.logService) {\n this.logService.info(`I18n current language set to ${event.lang}`);\n }\n });\n }\n\n private setDefaultLanguage(defaultLanguage: string): void {\n // removed, current language is already calculated in init, setup function fill use it directly, not default\n // this.translateService.currentLang = default_language || this.config.defaultLanguage;\n this.translateService.setDefaultLang(defaultLanguage);\n if (this.logService) {\n this.logService.info(`I18n default language set to ${defaultLanguage}`);\n }\n }\n\n /**\n * change the currently used language\n *\n * @param lang is the language code based on the convention you used e.g. (en or en-EN)\n * @returns Observable that returns an object contain the object translation for given language after language\n * fully loaded.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private use(lang: string): Observable<any> {\n return this.translateService.use(lang);\n }\n\n /**\n * updates the HTML element lang attribute\n *\n * @private\n */\n private updateHTMLDOMLang(lang: string): void {\n this.document.documentElement.lang = lang;\n }\n}\n","export * from './i18n.resource';\nexport * from './i18n.loader';\n// export * from './i18n.module';\nexport * from './i18n.service';\n// export * from './i18n.service.mock';\n","export const diffDays = (dateStart: Date, dateEnd: Date): number =>\n Math.round((dateEnd.getTime() - dateStart.getTime()) / 1000 / 60 / 60 / 24);\n\nexport const diffDaysFromToday = (date: Date): number => diffDays(new Date(), date);\n","import { By } from '@angular/platform-browser';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { DebugElement } from '@angular/core';\n\n/**\n * Provides read-only equivalent of jQuery's position function:\n * http://api.jquery.com/position/\n */\nexport const position = (nativeEl: HTMLElement): { width: number; height: number; top: number; left: number } => {\n const elBCR = offset(nativeEl);\n let offsetParentBCR = { top: 0, left: 0 };\n const offsetParentEl = parentOffsetEl(nativeEl);\n if (offsetParentEl !== document) {\n offsetParentBCR = offset(offsetParentEl as HTMLElement);\n offsetParentBCR.top += (offsetParentEl as Element).clientTop - (offsetParentEl as Element).scrollTop;\n offsetParentBCR.left += (offsetParentEl as Element).clientLeft - (offsetParentEl as Element).scrollLeft;\n }\n\n const boundingClientRect = nativeEl.getBoundingClientRect();\n return {\n width: boundingClientRect.width || nativeEl.offsetWidth,\n height: boundingClientRect.height || nativeEl.offsetHeight,\n top: elBCR.top - offsetParentBCR.top,\n left: elBCR.left - offsetParentBCR.left,\n };\n};\n\n/**\n * Provides read-only equivalent of jQuery's offset function:\n * http://api.jquery.com/offset/\n */\nexport const offset = (nativeEl: HTMLElement): { width: number; height: number; top: number; left: number } => {\n const boundingClientRect = nativeEl.getBoundingClientRect();\n return {\n width: boundingClientRect.width || nativeEl.offsetWidth,\n height: boundingClientRect.height || nativeEl.offsetHeight,\n top: boundingClientRect.top + (window.pageYOffset || document.documentElement.scrollTop),\n left: boundingClientRect.left + (window.pageXOffset || document.documentElement.scrollLeft),\n };\n};\n\n// PRIVATE FUNCTIONS\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst getStyle = (nativeEl: any, cssProp: string): CSSStyleDeclaration => {\n // IE\n if (nativeEl.currentStyle) {\n return nativeEl.currentStyle[cssProp];\n }\n\n if (window.getComputedStyle) {\n return window.getComputedStyle(nativeEl)[cssProp];\n }\n // finally try and get inline style\n return nativeEl.style[cssProp];\n};\n\n/**\n * Checks if a given element is statically positioned\n */\nconst isStaticPositioned = (nativeEl: Element): boolean => (getStyle(nativeEl, 'position') || 'static') === 'static';\n\n/**\n * returns the closest, non-statically positioned parentOffset of a given element\n * @param nativeEl\n */\nconst parentOffsetEl = (nativeEl: HTMLElement): Element | Document => {\n let offsetParent = nativeEl.offsetParent || document;\n while (offsetParent && offsetParent !== document && isStaticPositioned(offsetParent as Element)) {\n offsetParent = (offsetParent as HTMLElement).offsetParent;\n }\n return offsetParent || document;\n};\n\nexport const getViewElement = <F>(fixture: ComponentFixture<F>, componentClass, klass?): {de: DebugElement, el: HTMLElement, domElement: HTMLElement} => {\n let el: HTMLElement, domElement: NodeList | HTMLElement;\n\n const de = fixture.debugElement.query(By.css(componentClass));\n if (de) {\n el = de.nativeElement;\n\n if (el && klass) {\n domElement = el.querySelectorAll(klass);\n\n if (domElement.length <= 1) {\n domElement = el.querySelector(klass);\n }\n }\n }\n\n return { de, el, domElement: domElement as HTMLElement };\n};\n\nexport const closestMatchingParent = (target: HTMLElement, className: string): HTMLElement | null => {\n let element = target;\n\n while (element && element.nodeType === Node.ELEMENT_NODE) {\n if (element.classList.contains(className)) {\n return element;\n }\n\n element = element.parentElement;\n }\n\n return null;\n};\n","export const consumeEvent = (event: Event): boolean => {\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n event.cancelBubble = true;\n }\n return false;\n};\n","import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';\n\nconst forOwn = (object, iteratee): void => {\n object = Object(object);\n Object.keys(object).forEach((key) => iteratee(object[key], key, object));\n};\n\nexport const markFormGroupTouched = (FormControls: { [key: string]: AbstractControl } | AbstractControl[]): void => {\n const markFormGroupTouchedRecursive = (controls: { [key: string]: AbstractControl } | AbstractControl[]): void => {\n forOwn(controls, (c) => {\n if (c instanceof FormGroup || c instanceof FormArray) {\n markFormGroupTouchedRecursive(c.controls);\n } else {\n c.markAsTouched();\n c.updateValueAndValidity();\n }\n });\n };\n markFormGroupTouchedRecursive(FormControls);\n};\n\nexport const markControlsTouched = (group: FormGroup | FormArray): void => {\n Object.keys(group.controls).forEach((key: string) => {\n const abstractControl = group.controls[key];\n if (abstractControl instanceof FormGroup || abstractControl instanceof FormArray) {\n markControlsTouched(abstractControl);\n } else {\n abstractControl.markAsTouched();\n }\n });\n};\n\nexport const validateEmail = (c: FormControl): { validateEmail: { valid: boolean } } => {\n const EMAIL_REGEXP =\n // eslint-disable-next-line max-len, no-useless-escape\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\n const error = {\n validateEmail: {\n valid: false,\n },\n };\n return EMAIL_REGEXP.test(c.value) ? null : error;\n};\n","/**\n * returns a random string with radix=36\n */\nexport const uniqueId = (): string => Math.random().toString(36).substr(2, 9);\n\n/**\n * Its job is to parse number and format it based on given input.\n * @param value can be a number or a string number\n * @param fractionSize size of fraction of a number e.g. 1000.88 fraction is 2 (88) default is 2\n * @param inDecimalSeparator separator for decimal part of the number default is ','\n * @param inThousandSeparator separator for the whole part of the number default is ''\n */\nexport const formatNumber = (\n value: number | string,\n fractionSize = 2,\n inDecimalSeparator = ',',\n inThousandSeparator = '',\n): string => {\n if (inDecimalSeparator || inThousandSeparator) {\n console.warn(\n 'The inDecimalSeparator and inThousandSeparator are deprecated. They will be a ' +\n 'BREAKING CHANGE for eUI 9 and be replaced by localization strategy.',\n );\n }\n\n let decimalSeparator = '';\n let thousandsSeparator = '';\n\n if (value === null || value === undefined) {\n return null;\n }\n\n if (typeof value === 'string') {\n // get all non characters\n const nonChars: string[] = value.match(/[^0-9]+/g) || [];\n\n // get all unique chars\n const uniqueChars = nonChars.reduce((acc, e) => acc.set(e, (acc.get(e) || 0) + 1), new Map());\n\n // get separators\n const separators = Array.from<string>(uniqueChars.keys());\n\n // sense where decimal separator and where thousand separator is\n if (separators.length > 1) {\n // left detected separator will be thousand and second will be decimal\n thousandsSeparator = separators[0];\n decimalSeparator = separators[1];\n } else if (separators.length > 0) {\n // in case there is only one separator you don't know exactly who this separator is.\n // in case there are more than two occurrences means we have a thousand otherwise we'll\n // agree by conventions that is decimal\n if (nonChars.length > 1) {\n return value\n .split(separators[0])\n .join('')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, inThousandSeparator);\n } else {\n return value.replace(separators[0], inDecimalSeparator).replace(/\\B(?=(\\d{3})+(?!\\d))/g, inThousandSeparator);\n }\n } else {\n // in case there are no separators then only format based on thousand one\n return value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, inThousandSeparator);\n }\n\n // do the replacement of separators and parseInt\n // Beware! Always replace a thousand separator first and then decimal\n value = value.split(thousandsSeparator).join('').replace(decimalSeparator, '.');\n }\n\n decimalSeparator = inDecimalSeparator;\n thousandsSeparator = inThousandSeparator;\n\n const maxFraction = '0'.repeat(fractionSize);\n\n // eslint-disable-next-line prefer-const\n let [integer, fraction = maxFraction] = (value || '0').toString().split('.');\n fraction = fractionSize > 0 ? (fraction + maxFraction).substring(0, fractionSize) : '';\n\n // this rule makes sense only in number in case fraction is all zero\n fraction = typeof value === 'number' && fraction === maxFraction ? '' : decimalSeparator + fraction;\n\n return integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparator) + fraction;\n};\n","import { Observable } from 'rxjs';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nexport const handleError = (error: HttpErrorResponse): Observable<never> => {\n const errMsg = error.message ? error.message : error.status ? `${error.status} - ${error.statusText}` : 'Server error';\n throw new Error(errMsg);\n};\n","/**\n * check if a value is null or undefined. If it's not both returns true otherwise false\n *\n * @param value\n */\nexport const isDefined = <T>(value: T | undefined | null): value is T => <T>value !== undefined && <T>value !== null;\n","import { Injectable, Optional } from '@angular/core';\nimport { EuiService, EuiServiceStatus, getUserRights, EuiUserRight, Logger } from '@eui/base';\nimport { Observable, of } from 'rxjs';\nimport { LogService } from '../log/log.service';\nimport { StoreService } from '../store/store.service';\nimport { UpdateUserRightsAction } from '../store/actions/user.actions';\nimport { isDefined } from '../../helpers';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EuiPermissionService extends EuiService<EuiUserRight[]> {\n private readonly logger: Logger;\n\n constructor(\n @Optional() private log: LogService,\n protected store: StoreService,\n ) {\n super([]);\n if (log) {\n this.logger = log.getLogger('core.PermissionService');\n }\n }\n\n /**\n * initialize the service by providing a state\n * @param rights\n */\n init(rights: EuiUserRight[]): Observable<EuiServiceStatus> {\n super.initEuiService();\n if (Array.isArray(rights)) {\n this.updateState(rights);\n return of({ success: true });\n }\n\n if (this.logger) {\n this.logger.error('Init object should be instance of BaseUserState');\n }\n return of({ success: false, error: 'Init object should be instance of BaseUserState' });\n }\n\n protected get userRights(): EuiUserRight[] {\n return this.stateInstance;\n }\n\n /**\n * get the user's Rights from the state\n */\n getState<K = EuiUserRight[]>(): Observable<K> {\n return this.store.select(getUserRights);\n }\n\n /**\n * update the state with the given user's rights\n * @param rights\n */\n updateState(rights: EuiUserRight[]): void {\n this.store.dispatch(new UpdateUserRightsAction(rights || []));\n }\n\n /**\n * accepts a string of right and or a permission. In string first comes the right and or followed by permission in\n * a dot separated way e.g. 'RIGHT.PERMISSION' or 'RIGHT'. The string can contain more that 2 separated fields.\n * In that case the last field should be the permission and all the others a Right. e.g. 'RIGHT1.RIGHT2.PERMISSION'\n * The last part is useful where you want a user to have multiple rights and the permission of the last right.\n * @param rightsAndPermission\n */\n checkAttributePermission(rightsAndPermission: string): boolean {\n const permProps = rightsAndPermission.split('.');\n const rightId = permProps[0];\n const hasRight = this.checkRight(rightId);\n\n if (hasRight) {\n if (permProps.length === 2) {\n // in case of 'RIGHT.PERMISSION'\n const permission = permProps[1];\n return this.checkPermission(rightId, permission);\n } else if (permProps.length > 2) {\n // in case of 'RIGHT1.RIGHT2.....PERMISSION' string call recursively\n return this.checkAttributePermission(rightsAndPermission.slice(rightId.length + 1));\n }\n }\n\n return hasRight;\n }\n\n /**\n * check if a user has the right.\n * @param rightId the id of Right\n */\n checkRight(rightId: string): boolean {\n return this.userRights.some((right) => right && right.id === rightId);\n }\n\n /**\n * check if a user has that right and that right has the permission given.\n * @param rightId the right of the user\n * @param permission the permission of the right\n */\n checkPermission(rightId: string, permission: string): boolean {\n // the user has to have that right and that right has to have the given permission\n return this.userRights.some(\n (right) => right && right.id === rightId && right.permissions && right.permissions.includes(permission),\n );\n }\n\n /**\n * checks whether a user have all rights passed as an argument\n * @param rights an array of EuiUserRight\n */\n private haveAllRights(rights: EuiUserRight[]): boolean {\n if (!isDefined(rights)) {\n throw Error('The rights should be an array but instead it\\'s not defined!');\n }\n\n return rights.every((right: EuiUserRight) => this.userRights.find((uRight: EuiUserRight) => uRight.id === right.id));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { getUserState, EuiMenuItem } from '@eui/base';\nimport { EuiPermissionService } from '../permission/permission.service';\nimport { StoreService } from '../store';\n\n@Injectable({\n providedIn: 'root',\n})\n// TODO: Type of LINK should be UxLink or something relevant. Do we need that service anymore?\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EuiDynamicMenuService<LINK = any> {\n menuLinks: Array<LINK> = [];\n\n // TODO: it should be moved euiservice, or it should be static\n // TODO: can we moved that service inside the module of the component that's using it?\n constructor(\n private euiPermission: EuiPermissionService,\n private store: StoreService,\n ) {\n this.store.select(getUserState).subscribe((user) => {\n if (user.menuLinks) {\n this.menuLinks = user.menuLinks;\n }\n });\n }\n\n getMenuLinks(): LINK[] {\n return this.menuLinks;\n }\n\n filterEuiMenuItemsWithRights(links: Array<EuiMenuItem>): Array<EuiMenuItem> {\n return links.filter((link) => {\n if (link.hasChildren) {\n link.children = this.filterEuiMenuItemsWithRights(link.children);\n }\n\n // First check if the user is denied access:\n if (link.deniedRightId) {\n if (this.euiPermission.checkRight(link.deniedRightId)) {\n return false;\n }\n }\n if (link.deniedRightIds) {\n for (const deniedRightId of link.deniedRightIds) {\n if (this.euiPermission.checkRight(deniedRightId)) {\n return false;\n }\n }\n }\n\n // Then check if the user needs to be allowed access explicitly:\n if (link.allowedRightId) {\n return this.euiPermission.checkRight(link.allowedRightId);\n }\n if (link.allowedRightIds) {\n for (const allowedRightId of link.allowedRightIds) {\n if (this.euiPermission.checkRight(allowedRightId)) {\n return true;\n }\n }\n // User doesn't have one of the allowed rights. Deny access:\n return false;\n }\n\n // Access to the menu item is not denied, therefore allow it:\n return true;\n });\n }\n}\n","// TODO: Do we need that service anymore? Can we remove it?\n\nimport { ApplicationRef, ComponentFactoryResolver, ComponentRef, ElementRef, Injectable, InjectionToken, Injector } from '@angular/core';\nimport { ComponentPortal, DomPortalOutlet, PortalInjector, ComponentType } from '@angular/cdk/portal';\n\nexport const DYNAMIC_COMPONENT_CONFIG = new InjectionToken<object>('DYNAMIC_COMPONENT_CONFIG');\n\n@Injectable()\nexport class EuiDynamicComponentService {\n private portalHost: DomPortalOutlet;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private portal: ComponentPortal<any>;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private portalComponentInstance: ComponentRef<any>;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private injector: Injector,\n private appRef: ApplicationRef,\n ) {}\n\n /**\n * Adds a component to portal host dynamically\n * @param component The component to be injected\n * @param el The element reference for the component to be injected\n * @param config The data to be passed (config) for the DYNAMIC_COMPONENT_CONFIG token\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public add<T>(component: ComponentType<T>, el?: ElementRef, config?: any): any {\n // TODO: take a look and replace deprecated componentFactoryResolver https://github.com/angular/components/issues/24334\n // Create a portalHost from a DOM element\n this.portalHost = new DomPortalOutlet(\n el ? el.nativeElement : document.body,\n this.componentFactoryResolver,\n this.appRef,\n this.injector,\n );\n\n // Locate the component factory for the ComponentToIncludeDynamicallyComponent\n this.portal = new ComponentPortal<T>(component, null, config ? this.createInjector(config) : null);\n\n // Attach portal to host\n this.portalComponentInstance = this.portalHost.attach(this.portal);\n\n if (config) {\n Object.assign(config, {\n portalHostRef: this.portalHost,\n portalRef: this.portal,\n portalComponentInstanceRef: this.portalComponentInstance,\n });\n }\n\n return {\n portalHost: this.portalHost,\n portal: this.portal,\n portalComponentInstance: this.portalComponentInstance,\n };\n }\n\n /**\n * detaches a portalHost\n * @param portalHostRef reference of portal host to be detached\n */\n public remove(portalHostRef: DomPortalOutlet): void {\n portalHostRef.detach();\n\n this.portalHost = null;\n this.portal = null;\n this.portalComponentInstance = null;\n }\n\n /**\n * creates a custom injector to be used when providing custom injection tokens to components inside a portal\n * @param data to be used by DYNAMIC_COMPONENT_CONFIG token\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private createInjector(data: any): Injector {\n const injectorTokens = new WeakMap();\n injectorTokens.set(DYNAMIC_COMPONENT_CONFIG, data);\n return new PortalInjector(this.injector, injectorTokens);\n }\n}\n","import { Inject, Injectable, Optional, PLATFORM_ID } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { isPlatformBrowser } from '@angular/common';\nimport { BehaviorSubject, defer, firstValueFrom, Observable } from 'rxjs';\nimport { EuiEuLanguages, GlobalConfig, getActiveLang, EuiLanguage, EuiMenuItem, UxModalLegacy } from '@eui/base';\nimport { GLOBAL_CONFIG_TOKEN } from './config/tokens';\nimport { I18nService } from './i18n';\nimport { Router, NavigationEnd } from '@angular/router';\nimport { StoreService } from './store';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\nimport isEqual from 'lodash-es/isEqual';\nimport get from 'lodash-es/get';\n\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface UIState<BP = any, DI = any, AMD =any> {\n // app state\n appName?: string;\n appShortName?: string;\n appSubTitle?: string;\n appBaseFontSize?: string;\n\n // user state\n userInfos?: string;\n userSubInfos?: string;\n impersonatedUserInfos?: string;\n\n // Sidebar state\n isSidebarOpen?: boolean;\n isSidebarHover?: boolean;\n isSidebarActive?: boolean;\n isSidebarInnerActive?: boolean;\n isSidebarStateCloseWithIcons?: boolean;\n isSidebarExpandOnHover?: boolean;\n hasSidebar?: boolean;\n hasBreadcrumb?: boolean;\n hasHeader?: boolean;\n hasHeaderLogo?: boolean;\n hasHeaderEnvironment?: boolean;\n hasToolbar?: boolean;\n hasToolbarMenu?: boolean;\n environmentValue?: string;\n isSidebarHidden?: boolean;\n hasTopMessage?: boolean;\n\n // window state\n windowWidth?: number;\n windowHeight?: number;\n mainContentHeight?: number;\n pageHeaderHeight?: number;\n breakpoint?: string;\n wrapperClasses?: string;\n breakpoints?: BP;\n\n // navigation state\n menuLinks?: EuiMenuItem[];\n sidebarLinks?: EuiMenuItem[];\n combinedLinks?: EuiMenuItem[];\n\n // other states\n isBlockDocumentActive?: boolean;\n\n // device info\n deviceInfo: DI;\n\n // language infos\n activeLanguage: string;\n languages: (string | EuiLanguage)[];\n\n // app metadata\n appMetadata: AMD;\n\n // various dynamic state\n hasModalActive?: boolean;\n isDimmerActive?: boolean; // Usage: map to eui base directive input coerce euiHighlighted\n}\n\nconst initialState: UIState = {\n appName: '',\n appShortName: '',\n appSubTitle: '',\n appBaseFontSize: '',\n userInfos: null,\n userSubInfos: null,\n impersonatedUserInfos: null,\n isSidebarOpen: true,\n isSidebarHover: false,\n isSidebarActive: false,\n isSidebarInnerActive: false,\n isSidebarStateCloseWithIcons: false,\n isSidebarExpandOnHover: true,\n hasSidebar: false,\n hasHeader: false,\n hasBreadcrumb: false,\n hasHeaderLogo: false,\n hasHeaderEnvironment: false,\n hasToolbar: false,\n hasToolbarMenu: false,\n environmentValue: '',\n isSidebarHidden: false,\n hasTopMessage: false,\n windowWidth: 0,\n windowHeight: 0,\n mainContentHeight: 0,\n pageHeaderHeight: 0,\n wrapperClasses: '',\n breakpoint: '',\n breakpoints: {\n isMobile: false,\n isTablet: false,\n isLtDesktop: false,\n isDesktop: false,\n isXL: false,\n isXXL: false,\n isFHD: false,\n is2K: false,\n is4K: false,\n },\n menuLinks: [],\n sidebarLinks: [],\n combinedLinks: [],\n isBlockDocumentActive: false,\n deviceInfo: null,\n activeLanguage: 'en',\n languages: EuiEuLanguages.getLanguages(),\n appMetadata: null,\n hasModalActive: false,\n isDimmerActive: false,\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EuiAppShellService {\n navigationStartCustomHandler: () => void;\n navigationEndCustomHandler: () => void;\n\n /**\n * @deprecated don't remove as it's used for external legacy project under v17 (csdr-eui-legacy) to support MWP transition\n */\n openModalId = new BehaviorSubject<string>('');\n\n /**\n * @deprecated don't remove as it's used for external legacy project under v17 (csdr-eui-legacy) to support MWP transition\n */\n activeModals: UxModalLegacy[] = [];\n\n // -------------------\n get state$(): Observable<UIState> {\n return this._state$.asObservable();\n }\n\n // -------------------\n // exposed observables\n\n get breakpoint$(): Observable<string> {\n return this._breakpoint$.asObservable();\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get breakpoints$(): Observable<any> {\n return this._breakpoints$.asObservable();\n }\n\n // ----------------\n // state operations\n // ----------------\n get state(): UIState {\n return this._state$.getValue();\n }\n\n // ----------------------------\n // public setters and functions\n // ----------------------------\n set isSidebarOpen(isOpen: boolean) {\n this.setState({\n ...this.state,\n isSidebarOpen: isOpen,\n });\n }\n\n get isSidebarOpen(): boolean {\n return this.state.isSidebarOpen;\n }\n\n set isSidebarHover(isHover: boolean) {\n if (this.state.isSidebarExpandOnHover) {\n this.setState({\n ...this.state,\n isSidebarHover: isHover,\n });\n }\n }\n\n get isSidebarHover(): boolean {\n return this.state.isSidebarHover;\n }\n\n set isSidebarActive(isActive: boolean) {\n this.setState({\n ...this.state,\n isSidebarActive: isActive,\n });\n }\n\n set isSidebarInnerActive(isOpen: boolean) {\n this.setState({\n ...this.state,\n isSidebarInnerActive: isOpen,\n });\n }\n\n set sidebarLinks(links: EuiMenuItem[]) {\n this.setState({\n ...this.state,\n sidebarLinks: links,\n });\n }\n\n set menuLinks(links: EuiMenuItem[]) {\n this.setState({\n ...this.state,\n menuLinks: links,\n });\n }\n\n set isBlockDocumentActive(isActive: boolean) {\n this.setState({\n ...this.state,\n isBlockDocumentActive: isActive,\n });\n }\n\n get hasHeader(): boolean {\n return this.state.hasHeader;\n }\n\n // Edit mode\n get isDimmerActive(): boolean {\n return this.state.isDimmerActive;\n }\n\n set isDimmerActive(isActive: boolean) {\n this.setState({\n ...this.state,\n isDimmerActive: isActive,\n });\n }\n\n private cssVars = [];\n private _state$: BehaviorSubject<UIState>;\n private _breakpoint$: BehaviorSubject<string>;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _breakpoints$: BehaviorSubject<any>;\n\n constructor(\n @Optional() @Inject(GLOBAL_CONFIG_TOKEN) protected config: GlobalConfig,\n private http: HttpClient,\n @Inject(PLATFORM_ID) private platformId: object,\n private router: Router,\n private storeService: StoreService,\n @Optional() private i18nService: I18nService,\n ) {\n let stateWithConfig = initialState;\n const languages = config?.i18n?.i18nService?.languages || initialState.languages;\n const defaultLanguage = config?.i18n?.i18nService?.defaultLanguage || initialState.activeLanguage;\n stateWithConfig = {\n ...stateWithConfig,\n ...{\n languages,\n activeLanguage: defaultLanguage,\n },\n };\n this._state$ = new BehaviorSubject(stateWithConfig);\n this._breakpoint$ = new BehaviorSubject('');\n this._breakpoints$ = new BehaviorSubject({});\n this.bindActiveLanguageToAppShellState();\n\n if (isPlatformBrowser(this.platformId)) {\n router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n window.scrollTo(0, 0);\n }\n });\n }\n }\n\n setState(nextState: UIState, updateI18 = true): void {\n let breakpoint, breakpoints;\n let combinedLinks;\n\n const state = this.state;\n\n // check if window width has been updated from previous state\n if (this.state.windowWidth !== nextState.windowWidth) {\n breakpoint = this.getBreakpoint(nextState.windowWidth);\n breakpoints = this.getBreakpoints(breakpoint);\n\n this._breakpoint$.next(breakpoint);\n this._breakpoints$.next(breakpoints);\n\n // if not propagate the old ones without doing any calculations\n } else {\n breakpoint = state.breakpoint;\n breakpoints = state.breakpoints;\n }\n\n // finally get the wrapper classes when both the state and breakpoint are known\n const wrapperClasses = this.getWrapperClasses(nextState, breakpoint);\n\n // check if the menuLinks or sidebarLinks have changed from previous state\n if (this.state.menuLinks !== nextState.menuLinks || this.state.sidebarLinks !== nextState.sidebarLinks) {\n combinedLinks = [...nextState.menuLinks, ...nextState.sidebarLinks];\n } else {\n combinedLinks = this.state.combinedLinks;\n }\n\n const stateBeforeUpdate = { ...this.state };\n\n // we put it all together with the calculated properties\n this._state$.next({\n ...nextState,\n wrapperClasses,\n breakpoint,\n breakpoints,\n combinedLinks,\n });\n\n // update the Store Language\n if (updateI18 && nextState.activeLanguage !== stateBeforeUpdate.activeLanguage) {\n this.i18nService.updateState({ activeLang: nextState.activeLanguage });\n }\n }\n\n /**\n * Emits a slice from the state whether that changes\n *\n * @param key can be 'key' or 'key.sub.sub'\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getState(key?: string): Observable<any> {\n return defer(() =>\n // check if key exists\n key\n ? this.state$.pipe(\n map((state) => get(state, key)),\n // filter((state) => state),\n distinctUntilChanged((x, y) => isEqual(x, y)),\n )\n : this.state$,\n );\n }\n\n public sidebarToggle(): void {\n this.isSidebarOpen = !this.state.isSidebarOpen;\n }\n\n // Edit mode\n public dimmerActiveToggle(): void {\n const isActive = this.isDimmerActive;\n this.setState({\n ...this.state,\n isDimmerActive: !isActive,\n });\n this.activateEditModeCssVars(!isActive);\n }\n\n public setDimmerActiveState(activeState: boolean): void {\n this.setState({\n ...this.state,\n isDimmerActive: activeState,\n });\n this.activateEditModeCssVars(activeState);\n }\n\n public activateEditModeCssVars(isActive: boolean): void {\n if (isActive) {\n this._setCssVarValue('--eui-docpage-navigation-z-index', 'inherit'); // Reset doc-page-navigation-column z-index\n this._setCssVarValue('--eui-z-index-sidebar', 'inherit'); // Reset eui-app-sidebar z-index\n this._setCssVarValue('--eui-z-index-root', 'inherit'); // Reset eui-app-main-content z-index\n } else {\n this._setCssVarValue('--eui-docpage-navigation-z-index', '2'); // Restore doc-page-navigation-column z-index\n this._setCssVarValue('--eui-z-index-sidebar', '1044'); // Restore eui-app-sidebar z-index\n this._setCssVarValue('--eui-z-index-root', '1'); // Restore eui-app-main-content z-index\n }\n }\n\n // --------------\n // public methods\n // --------------\n public fetchAppMetadata(metadataFilePath = 'assets/app-metadata.json'): void {\n this.getJson(metadataFilePath).then((data) => {\n this.setState({\n ...this.state,\n appMetadata: data,\n });\n });\n }\n\n public activateSidebar(): void {\n this.setState({\n ...this.state,\n hasSidebar: true,\n });\n\n if (!this.state.isSidebarHidden) {\n this.activateSidebarCssVars();\n }\n }\n\n public activateSidebarHeader(): void {\n this.activateSidebarHeaderCssVars();\n }\n\n public activateSidebarFooter(): void {\n this.activateSidebarFooterCssVars();\n }\n\n public activateHeader(): void {\n this.setState({\n ...this.state,\n hasHeader: true,\n });\n this.activateHeaderCssVars();\n }\n\n public activateBreadcrumb(): void {\n this.setState({\n ...this.state,\n hasBreadcrumb: true,\n });\n this.activateBreadcrumbCssVars();\n }\n\n public activateTopMessage(height: number): void {\n this.setState({\n ...this.state,\n hasTopMessage: true,\n });\n this.activateTopMessageCssVars(height);\n }\n\n public activateToolbar(): void {\n this.setState({\n ...this.state,\n hasToolbar: true,\n });\n this.activateToolbarCssVars();\n }\n\n public activateToolbarMenu(): void {\n this.setState({\n ...this.state,\n hasToolbarMenu: true,\n });\n }\n\n public fetchCssVars(): void {\n const cssVarNames = [\n '--eui-app-header-height-default',\n '--eui-app-header-height-active',\n '--eui-app-header-height-shrink',\n '--eui-app-breadcrumb-height-default',\n '--eui-app-breadcrumb-height-active',\n '--eui-app-top-message-height-default',\n '--eui-app-top-message-height-active',\n '--eui-app-top-message-height-shrink',\n '--eui-app-toolbar-height-default',\n '--eui-app-toolbar-height-active',\n '--eui-app-sidebar-width-default',\n '--eui-app-sidebar-width-active',\n '--eui-app-sidebar-width-close-default',\n '--eui-app-sidebar-width-close-active',\n '--eui-app-sidebar-header-height-default',\n '--eui-app-sidebar-header-height-active',\n '--eui-app-sidebar-footer-height-default',\n '--eui-app-sidebar-footer-height-active',\n ];\n\n this.cssVars = cssVarNames.map((v) => ({ key: v, value: this.getCssVarValue(v) }));\n }\n\n public initCssVars(): void {\n this.setCssVar('--eui-app-header-height-default', '--eui-app-header-height');\n this.setCssVar('--eui-app-breadcrumb-height-default', '--eui-app-breadcrumb-height');\n this.setCssVar('--eui-app-top-message-height-default', '--eui-app-top-message-height');\n this.setCssVar('--eui-app-toolbar-height-default', '--eui-app-toolbar-height');\n this.setCssVar('--eui-app-sidebar-width-default', '--eui-app-sidebar-width');\n this.setCssVar('--eui-app-sidebar-width-close-default', '--eui-app-sidebar-width-close');\n this.setCssVar('--eui-app-sidebar-header-height-default', '--eui-app-sidebar-header-height');\n this.setCssVar('--eui-app-sidebar-footer-height-default', '--eui-app-sidebar-footer-height');\n }\n\n public activateHeaderCssVars(): void {\n this.setCssVar('--eui-app-header-height-active', '--eui-app-header-height');\n }\n public activateBreadcrumbCssVars(): void {\n this.setCssVar('--eui-app-breadcrumb-height-active', '--eui-app-breadcrumb-height');\n }\n\n public activateTopMessageCssVars(height: number): void {\n this._setCssVarValue('--eui-app-top-message-height', `${height}px`);\n }\n\n public activateToolbarCssVars(): void {\n this.setCssVar('--eui-app-toolbar-height-active', '--eui-app-toolbar-height');\n }\n\n public activateFooterCssVars(): void {\n this.setCssVar('--eui-app-footer-height-active', '--eui-app-footer-height');\n }\n\n public setHeaderShrinkCssVar(active: boolean): void {\n if (active) {\n this.setCssVar('--eui-app-header-height-shrink', '--eui-app-header-height');\n } else {\n this.setCssVar('--eui-app-header-height-active', '--eui-app-header-height');\n }\n }\n\n public activateSidebarCssVars(): void {\n this.setCssVar('--eui-app-sidebar-width-active', '--eui-app-sidebar-width');\n this.setCssVar('--eui-app-sidebar-width-close-active', '--eui-app-sidebar-width-close');\n }\n\n public removeSidebarCssVars(): void {\n document.documentElement.style.removeProperty('--eui-app-sidebar-header-height');\n document.documentElement.style.removeProperty('--eui-app-sidebar-footer-height');\n document.documentElement.style.removeProperty('--eui-app-sidebar-width');\n document.documentElement.style.removeProperty('--eui-app-sidebar-width-close');\n }\n\n public activateSidebarHeaderCssVars(): void {\n this.setCssVar('--eui-app-sidebar-header-height-active', '--eui-app-sidebar-header-height');\n }\n\n public activateSidebarFooterCssVars(): void {\n this.setCssVar('--eui-app-sidebar-footer-height-active', '--eui-app-sidebar-footer-height');\n }\n\n /**\n * Gets the viewport height and width and multiple it by 1% to get a value for a vh/vw unit\n * Sets the value in the --eui-app-vh custom property to the root of the document\n * Sets the value in the --eui-app-vw custom property to the root of the document\n * Example for 100% height: calc(var(--eui-app-vh, 1vh) * 100);\n * Example for 50% height: calc(var(--eui-app-vh, 1vh) * 50);\n * Example for 50% width: calc(var(--eui-app-vw, 1vw) * 50);\n */\n public setAppViewportCssVars(): void {\n const vh = window.innerHeight * 0.01;\n const vw = window.innerWidth * 0.01;\n this._setCssVarValue('--eui-app-vh', `${vh}px`);\n this._setCssVarValue('--eui-app-vw', `${vw}px`);\n }\n\n /**\n * Returns the current value of --eui-base-font-size CSS variable\n */\n public getBaseFontSize(): string {\n return this.state.appBaseFontSize || this.getCssVarValue('--eui-base-font-size');\n }\n\n /**\n * Updates the current value of --eui-base-font-size CSS variable and the UIState appBaseFontSize\n */\n public setBaseFontSize(newsize: string): void {\n this.setState(\n {\n ...this.state,\n appBaseFontSize: newsize,\n },\n false,\n );\n this._setCssVarValue('--eui-base-font-size', newsize);\n }\n\n /**\n * @deprecated don't remove as it's used for external legacy project under v17 (csdr-eui-legacy) to support MWP transition\n */\n openModal(modalId?: string): void {\n document.body.classList.add('modal-open');\n if (!modalId) {\n modalId = 'single_modal';\n }\n\n this.activeModals.push({\n id: modalId,\n isOpen: true,\n });\n\n setTimeout(() => {\n const el = document.getElementById(modalId + '-close-button');\n if (el) {\n el.focus();\n }\n }, 100);\n }\n\n /**\n * @deprecated don't remove as it's used for external legacy project under v17 (csdr-eui-legacy) to support MWP transition\n */\n openMessageBox(messageBoxId?: string): void {\n if (!messageBoxId) {\n messageBoxId = 'messagebox_modal';\n }\n this.openModal(messageBoxId);\n }\n\n /**\n * @deprecated don't remove as it's used for external legacy project under v17 (csdr-eui-legacy) to support MWP transition\n */\n closeMessageBox(messageBoxId?: string): void {\n if (!messageBoxId) {\n messageBoxId = 'messagebox_modal';\n }\n this.closeModal(messageBoxId);\n }\n\n /**\n * @deprecated don't remove as it's used for external legacy project under v17 (csdr-eui-legacy) to support MWP transition\n */\n isModalOpen(modalId?: string): boolean {\n if (!modalId) {\n modalId = 'single_modal';\n }\n if (this.activeModals.length) {\n const modalIndex: number = this.findModalIndex(modalId);\n if (modalIndex !== -1) {\n return this.activeModals[modalIndex].isOpen;\n }\n }\n return false;\n }\n\n /**\n * @deprecated don't remove as it's used for external legacy project under v17 (csdr-eui-legacy) to support MWP transition\n */\n closeModal(modalId?: string): void {\n if (!modalId) {\n modalId = 'single_modal';\n }\n\n /**\n * Make sure we find the modal before splicing the activeModals array\n */\n const index = this.findModalIndex(modalId);\n if (index >= 0) {\n this.activeModals.splice(index, 1);\n }\n\n if (this.activeModals && this.activeModals.length <= 0) {\n document.body.classList.remove('modal-open');\n } else {\n // If there is still another (parent) modal dialog open, ensure it is focused upon to be able to close is with the ESC key:\n const lastModalId = this.activeModals[this.activeModals.length - 1].id;\n if (lastModalId) {\n setTimeout(() => {\n const el = document.getElementById(lastModalId + '-close-button');\n if (el) {\n el.focus();\n }\n }, 100);\n }\n }\n }\n\n /**\n * @deprecated don't remove as it's used for external legacy project under v17 (csdr-eui-legacy) to support MWP transition\n */\n findModalIndex(modalId: string): number {\n let index = -1;\n\n if (this.activeModals.length) {\n for (let i = 0; i < this.activeModals.length; i++) {\n if (this.activeModals[i].id === modalId) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n // ---------------\n // private getters\n // ---------------\n private getCssVarValue(inputProperty): string {\n return getComputedStyle(document.documentElement).getPropertyValue(inputProperty);\n }\n\n private setCssVar(inputProperty, outputProperty): void {\n const cssVarValue = this.cssVars.filter((v) => v.key === inputProperty)[0].value;\n this._setCssVarValue(outputProperty, cssVarValue);\n // console.log(inputProperty, outputProperty, cssVarValue);\n }\n\n private _setCssVarValue(varName, varValue): void {\n document.documentElement.style.setProperty(varName, varValue);\n }\n\n private getWrapperClasses(state: UIState, breakpoint: string): string {\n const classes: string[] = [];\n\n classes.push(breakpoint);\n\n if (state.hasSidebar) {\n if (state.isSidebarOpen && (state.isSidebarActive || state.isSidebarInnerActive)) {\n classes.push('sidebar-state-open');\n }\n if (!state.isSidebarOpen && (state.isSidebarActive || state.isSidebarInnerActive)) {\n classes.push('sidebar-state-close');\n }\n if (state.isSidebarActive) {\n classes.push('sidebar-active');\n }\n if (state.isSidebarInnerActive) {\n classes.push('sidebar-inner-active');\n }\n if (state.isSidebarStateCloseWithIcons) {\n classes.push('sidebar-state-close-with-icons');\n }\n\n // NEW APP-SHELL props\n if (state.isSidebarHidden) {\n classes.push('sidebar--hidden');\n }\n if (state.isSidebarOpen) {\n classes.push('sidebar--open');\n } else {\n classes.push('sidebar--close');\n }\n if (state.isSidebarHover) {\n classes.push('sidebar--hover');\n }\n }\n if (state.deviceInfo && state.deviceInfo.isFF) {\n classes.push('ff');\n }\n if (state.deviceInfo && state.deviceInfo.isIE) {\n classes.push('ie');\n }\n if (state.deviceInfo && state.deviceInfo.isIE11) {\n classes.push('ie11');\n }\n if (state.deviceInfo && state.deviceInfo.isChrome) {\n classes.push('chrome');\n }\n return classes.join(' ');\n }\n\n private getBreakpoint(windowWidth: number): string {\n let bkp = '';\n\n switch (true) {\n case windowWidth >= 0 && windowWidth < 576:\n bkp = 'xs';\n break;\n case windowWidth >= 576 && windowWidth < 768:\n bkp = 'sm';\n break;\n case windowWidth >= 768 && windowWidth < 992:\n bkp = 'md';\n break;\n case windowWidth >= 992 && windowWidth < 1200:\n bkp = 'lg';\n break;\n case windowWidth >= 1200 && windowWidth < 1400:\n bkp = 'xl';\n break;\n case windowWidth >= 1400 && windowWidth < 1920:\n bkp = 'xxl';\n break;\n case windowWidth >= 1920 && windowWidth < 2560:\n bkp = 'fhd';\n break;\n case windowWidth >= 2560 && windowWidth < 3840:\n bkp = '2k';\n break;\n case windowWidth >= 3840:\n bkp = '4k';\n break;\n }\n return bkp;\n }\n\n private getBreakpoints(bkp: string): object {\n return {\n isMobile: bkp === 'xs' || bkp === 'sm',\n isTablet: bkp === 'md',\n isLtDesktop: bkp === 'xs' || bkp === 'sm' || bkp === 'md',\n isDesktop: bkp === 'lg',\n isXL: bkp === 'xl',\n isXXL: bkp === 'xxl',\n isFHD: bkp === 'fhd',\n is2K: bkp === '2k',\n is4K: bkp === '4k',\n };\n }\n\n private getJson(url: string): Promise<object> {\n return firstValueFrom(this.http.get(url)).then(this.extractData).catch(this.handleError);\n }\n\n private extractData(res: Response): object {\n const body = res;\n return body || {};\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private handleError(error: any): Promise<any> {\n console.error('An error occurred', error);\n return Promise.reject(error.message || error);\n }\n\n private bindActiveLanguageToAppShellState(): void {\n this.storeService.select(getActiveLang).subscribe((activeLang) => {\n if (activeLang !== this.state.activeLanguage) {\n this.setState(\n {\n ...this.state,\n activeLanguage: activeLang,\n },\n false,\n );\n }\n });\n }\n}\n","/* eslint-disable */\n\nimport { Injectable } from '@angular/core';\n\nexport const EUI_COUNTRIES = {\n AF: 'Afghanistan',\n AX: 'Aland Islands',\n AL: 'Albania',\n DZ: 'Algeria',\n AS: 'American Samoa',\n AD: 'Andorra',\n AO: 'Angola',\n AI: 'Anguilla',\n AQ: 'Antarctica',\n AG: 'Antigua and Barbuda',\n AR: 'Argentina',\n AM: 'Armenia',\n AW: 'Aruba',\n AU: 'Australia',\n AT: 'Austria',\n AZ: 'Azerbaijan',\n BS: 'Bahamas',\n BH: 'Bahrain',\n BD: 'Bangladesh',\n BB: 'Barbados',\n BY: 'Belarus',\n BE: 'Belgium',\n BZ: 'Belize',\n BJ: 'Benin',\n BM: 'Bermuda',\n BT: 'Bhutan',\n BO: 'Bolivia',\n BA: 'Bosnia and Herzegovina',\n BW: 'Botswana',\n BV: 'Bouvet Island',\n BR: 'Brazil',\n VG: 'British Virgin Islands',\n IO: 'British Indian Ocean Territory',\n BN: 'Brunei Darussalam',\n BG: 'Bulgaria',\n BF: 'Burkina Faso',\n BI: 'Burundi',\n KH: 'Cambodia',\n CM: 'Cameroon',\n CA: 'Canada',\n CV: 'Cape Verde',\n KY: 'Cayman Islands',\n CF: 'Central African Republic',\n TD: 'Chad',\n CL: 'Chile',\n CN: 'China',\n HK: 'Hong Kong',\n MO: 'Macao',\n CX: 'Christmas Island',\n CC: 'Cocos (Keeling) Islands',\n CO: 'Colombia',\n KM: 'Comoros',\n CG: 'Congo (Brazzaville)',\n CD: 'Congo, (Kinshasa)',\n CK: 'Cook Islands',\n CR: 'Costa Rica',\n CI: \"Côte d'Ivoire\",\n HR: 'Croatia',\n CU: 'Cuba',\n CY: 'Cyprus',\n CZ: 'Czech Republic',\n DK: 'Denmark',\n DJ: 'Djibouti',\n DM: 'Dominica',\n DO: 'Dominican Republic',\n EC: 'Ecuador',\n EG: 'Egypt',\n SV: 'El Salvador',\n GQ: 'Equatorial Guinea',\n ER: 'Eritrea',\n EE: 'Estonia',\n ET: 'Ethiopia',\n FK: 'Falkland Islands (Malvinas)',\n FO: 'Faroe Islands',\n FJ: 'Fiji',\n FI: 'Finland',\n FR: 'France',\n GF: 'French Guiana',\n PF: 'French Polynesia',\n TF: 'French Southern Territories',\n GA: 'Gabon',\n GM: 'Gambia',\n GE: 'Georgia',\n DE: 'Germany',\n GH: 'Ghana',\n GI: 'Gibraltar',\n GR: 'Greece',\n GL: 'Greenland',\n GD: 'Grenada',\n GP: 'Guadeloupe',\n GU: 'Guam',\n GT: 'Guatemala',\n GG: 'Guernsey',\n GN: 'Guinea',\n GW: 'Guinea-Bissau',\n GY: 'Guyana',\n HT: 'Haiti',\n HM: 'Heard and Mcdonald Islands',\n VA: 'Vatican City State',\n HN: 'Honduras',\n HU: 'Hungary',\n IS: 'Iceland',\n IN: 'India',\n ID: 'Indonesia',\n IR: 'Iran',\n IQ: 'Iraq',\n IE: 'Ireland',\n IM: 'Isle of Man',\n IL: 'Israel',\n IT: 'Italy',\n JM: 'Jamaica',\n JP: 'Japan',\n JE: 'Jersey',\n JO: 'Jordan',\n KZ: 'Kazakhstan',\n KE: 'Kenya',\n KI: 'Kiribati',\n KP: 'Korea (North)',\n KR: 'Korea (South)',\n KW: 'Kuwait',\n KG: 'Kyrgyzstan',\n LA: 'Lao PDR',\n LV: 'Latvia',\n LB: 'Lebanon',\n LS: 'Lesotho',\n LR: 'Liberia',\n LY: 'Libya',\n LI: 'Liechtenstein',\n LT: 'Lithuania',\n LU: 'Luxembourg',\n MK: 'Macedonia',\n MG: 'Madagascar',\n MW: 'Malawi',\n MY: 'Malaysia',\n MV: 'Maldives',\n ML: 'Mali',\n MT: 'Malta',\n MH: 'Marshall Islands',\n MQ: 'Martinique',\n MR: 'Mauritania',\n MU: 'Mauritius',\n YT: 'Mayotte',\n MX: 'Mexico',\n FM: 'Micronesia',\n MD: 'Moldova',\n MC: 'Monaco',\n MN: 'Mongolia',\n ME: 'Montenegro',\n MS: 'Montserrat',\n MA: 'Morocco',\n MZ: 'Mozambique',\n MM: 'Myanmar',\n NA: 'Namibia',\n NR: 'Nauru',\n NP: 'Nepal',\n NL: 'Netherlands',\n AN: 'Netherlands Antilles',\n NC: 'New Caledonia',\n NZ: 'New Zealand',\n NI: 'Nicaragua',\n NE: 'Niger',\n NG: 'Nigeria',\n NU: 'Niue',\n NF: 'Norfolk Island',\n MP: 'Northern Mariana Islands',\n NO: 'Norway',\n OM: 'Oman',\n PK: 'Pakistan',\n PW: 'Palau',\n PS: 'Palestinian Territory',\n PA: 'Panama',\n PG: 'Papua New Guinea',\n PY: 'Paraguay',\n PE: 'Peru',\n PH: 'Philippines',\n PN: 'Pitcairn',\n PL: 'Poland',\n PT: 'Portugal',\n PR: 'Puerto Rico',\n QA: 'Qatar',\n RE: 'Réunion',\n RO: 'Romania',\n RU: 'Russian Federation',\n RW: 'Rwanda',\n BL: 'Saint-Barthélemy',\n SH: 'Saint Helena',\n KN: 'Saint Kitts and Nevis',\n LC: 'Saint Lucia',\n MF: 'Saint-Martin (French part)',\n PM: 'Saint Pierre and Miquelon',\n VC: 'Saint Vincent and Grenadines',\n WS: 'Samoa',\n SM: 'San Marino',\n ST: 'Sao Tome and Principe',\n SA: 'Saudi Arabia',\n SN: 'Senegal',\n RS: 'Serbia',\n SC: 'Seychelles',\n SL: 'Sierra Leone',\n SG: 'Singapore',\n SK: 'Slovakia',\n SI: 'Slovenia',\n SB: 'Solomon Islands',\n SO: 'Somalia',\n ZA: 'South Africa',\n GS: 'South Georgia and the South Sandwich Islands',\n SS: 'South Sudan',\n ES: 'Spain',\n LK: 'Sri Lanka',\n SD: 'Sudan',\n SR: 'Suriname',\n SJ: 'Svalbard and Jan Mayen Islands',\n SZ: 'Swaziland',\n SE: 'Sweden',\n CH: 'Switzerland',\n SY: 'Syria',\n TW: 'Taiwan',\n TJ: 'Tajikistan',\n TZ: 'Tanzania',\n TH: 'Thailand',\n TL: 'Timor-Leste',\n TG: 'Togo',\n TK: 'Tokelau',\n TO: 'Tonga',\n TT: 'Trinidad and Tobago',\n TN: 'Tunisia',\n TR: 'Turkey',\n TM: 'Turkmenistan',\n TC: 'Turks and Caicos Islands',\n TV: 'Tuvalu',\n UG: 'Uganda',\n UA: 'Ukraine',\n AE: 'United Arab Emirates',\n GB: 'United Kingdom (GB)',\n US: 'United States of America (USA)',\n UM: 'US Minor Outlying Islands',\n UY: 'Uruguay',\n UZ: 'Uzbekistan',\n VU: 'Vanuatu',\n VE: 'Venezuela',\n VN: 'Viet Nam',\n VI: 'Virgin Islands, US',\n WF: 'Wallis and Futuna Islands',\n EH: 'Western Sahara',\n YE: 'Yemen',\n ZM: 'Zambia',\n ZW: 'Zimbabwe',\n};\n\nexport interface EuiTimeZone {\n name: string;\n desc: string;\n}\n\nexport const EUI_TIMEZONES: EuiTimeZone[] = [\n { name: 'Europe/Andorra', desc: 'Andorra - Andorra (GMT+02:00)' },\n { name: 'Asia/Dubai', desc: 'United Arab Emirates - Dubai (GMT+04:00)' },\n { name: 'Asia/Kabul', desc: 'Afghanistan - Kabul (GMT+04:30)' },\n { name: 'America/Antigua', desc: 'Antigua and Barbuda - Antigua (GMT-04:00)' },\n { name: 'America/Anguilla', desc: 'Anguilla - Anguilla (GMT-04:00)' },\n { name: 'Europe/Tirane', desc: 'Albania - Tirane (GMT+02:00)' },\n { name: 'Asia/Yerevan', desc: 'Armenia - Yerevan (GMT+04:00)' },\n { name: 'Africa/Luanda', desc: 'Angola - Luanda (GMT+01:00)' },\n { name: 'Antarctica/McMurdo', desc: 'Antarctica - McMurdo (GMT+12:00)' },\n { name: 'Antarctica/Rothera', desc: 'Antarctica - Rothera (GMT-03:00)' },\n { name: 'Antarctica/Palmer', desc: 'Antarctica - Palmer (GMT-03:00)' },\n { name: 'Antarctica/Mawson', desc: 'Antarctica - Mawson (GMT+05:00)' },\n { name: 'Antarctica/Davis', desc: 'Antarctica - Davis (GMT+07:00)' },\n { name: 'Antarctica/Casey', desc: 'Antarctica - Casey (GMT+08:00)' },\n { name: 'Antarctica/Vostok', desc: 'Antarctica - Vostok (GMT+06:00)' },\n { name: 'Antarctica/DumontDUrville', desc: 'Antarctica - DumontDUrville (GMT+10:00)' },\n { name: 'Antarctica/Syowa', desc: 'Antarctica - Syowa (GMT+03:00)' },\n { name: 'Antarctica/Troll', desc: 'Antarctica - Troll (GMT+02:00)' },\n { name: 'America/Argentina/Buenos_Aires', desc: 'Argentina - Buenos Aires (GMT-03:00)' },\n { name: 'America/Argentina/Cordoba', desc: 'Argentina - Cordoba (GMT-03:00)' },\n { name: 'America/Argentina/Salta', desc: 'Argentina - Salta (GMT-03:00)' },\n { name: 'America/Argentina/Jujuy', desc: 'Argentina - Jujuy (GMT-03:00)' },\n { name: 'America/Argentina/Tucuman', desc: 'Argentina - Tucuman (GMT-03:00)' },\n { name: 'America/Argentina/Catamarca', desc: 'Argentina - Catamarca (GMT-03:00)' },\n { name: 'America/Argentina/La_Rioja', desc: 'Argentina - La Rioja (GMT-03:00)' },\n { name: 'America/Argentina/San_Juan', desc: 'Argentina - San Juan (GMT-03:00)' },\n { name: 'America/Argentina/Mendoza', desc: 'Argentina - Mendoza (GMT-03:00)' },\n { name: 'America/Argentina/San_Luis', desc: 'Argentina - San Luis (GMT-03:00)' },\n { name: 'America/Argentina/Rio_Gallegos', desc: 'Argentina - Rio Gallegos (GMT-03:00)' },\n { name: 'America/Argentina/Ushuaia', desc: 'Argentina - Ushuaia (GMT-03:00)' },\n { name: 'Pacific/Pago_Pago', desc: 'American Samoa - Pago Pago (GMT-11:00)' },\n { name: 'Pacific/Samoa', desc: 'American Samoa - Samoa (GMT-11:00)' },\n { name: 'Europe/Vienna', desc: 'Austria - Vienna (GMT+02:00)' },\n { name: 'Australia/Lord_Howe', desc: 'Australia - Lord Howe (GMT+10:30)' },\n { name: 'Antarctica/Macquarie', desc: 'Australia - Macquarie (GMT+11:00)' },\n { name: 'Australia/Hobart', desc: 'Australia - Hobart (GMT+10:00)' },\n { name: 'Australia/Currie', desc: 'Australia - Currie (GMT+10:00)' },\n { name: 'Australia/Melbourne', desc: 'Australia - Melbourne (GMT+10:00)' },\n { name: 'Australia/Sydney', desc: 'Australia - Sydney (GMT+10:00)' },\n { name: 'Australia/Broken_Hill', desc: 'Australia - Broken Hill (GMT+09:30)' },\n { name: 'Australia/Brisbane', desc: 'Australia - Brisbane (GMT+10:00)' },\n { name: 'Australia/Lindeman', desc: 'Australia - Lindeman (GMT+10:00)' },\n { name: 'Australia/Adelaide', desc: 'Australia - Adelaide (GMT+09:30)' },\n { name: 'Australia/Darwin', desc: 'Australia - Darwin (GMT+09:30)' },\n { name: 'Australia/Perth', desc: 'Australia - Perth (GMT+08:00)' },\n { name: 'Australia/Eucla', desc: 'Australia - Eucla (GMT+08:45)' },\n { name: 'Australia/Canberra', desc: 'Australia - Canberra (GMT+10:00)' },\n { name: 'Australia/Queensland', desc: 'Australia - Queensland (GMT+10:00)' },\n { name: 'Australia/Tasmania', desc: 'Australia - Tasmania (GMT+10:00)' },\n { name: 'Australia/Victoria', desc: 'Australia - Victoria (GMT+10:00)' },\n { name: 'America/Aruba', desc: 'Aruba - Aruba (GMT-04:00)' },\n { name: 'Europe/Mariehamn', desc: 'Aland Islands - Mariehamn (GMT+03:00)' },\n { name: 'Asia/Baku', desc: 'Azerbaijan - Baku (GMT+04:00)' },\n { name: 'Europe/Sarajevo', desc: 'Bosnia and Herzegovina - Sarajevo (GMT+02:00)' },\n { name: 'America/Barbados', desc: 'Barbados - Barbados (GMT-04:00)' },\n { name: 'Asia/Dhaka', desc: 'Bangladesh - Dhaka (GMT+06:00)' },\n { name: 'Europe/Brussels', desc: 'Belgium - Brussels (GMT+02:00)' },\n { name: 'Africa/Ouagadougou', desc: 'Burkina Faso - Ouagadougou (GMT+00:00)' },\n { name: 'Europe/Sofia', desc: 'Bulgaria - Sofia (GMT+03:00)' },\n { name: 'Asia/Bahrain', desc: 'Bahrain - Bahrain (GMT+03:00)' },\n { name: 'Africa/Bujumbura', desc: 'Burundi - Bujumbura (GMT+02:00)' },\n { name: 'Africa/Porto-Novo', desc: 'Benin - Porto-Novo (GMT+01:00)' },\n { name: 'America/St_Barthelemy', desc: 'Saint-Barthélemy - St Barthelemy (GMT-04:00)' },\n { name: 'Atlantic/Bermuda', desc: 'Bermuda - Bermuda (GMT-03:00)' },\n { name: 'Asia/Brunei', desc: 'Brunei Darussalam - Brunei (GMT+08:00)' },\n { name: 'America/La_Paz', desc: 'Bolivia - La Paz (GMT-04:00)' },\n { name: 'America/Kralendijk', desc: 'BQ - Kralendijk (GMT-04:00)' },\n { name: 'America/Noronha', desc: 'Brazil - Noronha (GMT-02:00)' },\n { name: 'America/Belem', desc: 'Brazil - Belem (GMT-03:00)' },\n { name: 'America/Fortaleza', desc: 'Brazil - Fortaleza (GMT-03:00)' },\n { name: 'America/Recife', desc: 'Brazil - Recife (GMT-03:00)' },\n { name: 'America/Araguaina', desc: 'Brazil - Araguaina (GMT-03:00)' },\n { name: 'America/Maceio', desc: 'Brazil - Maceio (GMT-03:00)' },\n { name: 'America/Bahia', desc: 'Brazil - Bahia (GMT-03:00)' },\n { name: 'America/Sao_Paulo', desc: 'Brazil - Sao Paulo (GMT-03:00)' },\n { name: 'America/Campo_Grande', desc: 'Brazil - Campo Grande (GMT-04:00)' },\n { name: 'America/Cuiaba', desc: 'Brazil - Cuiaba (GMT-04:00)' },\n { name: 'America/Santarem', desc: 'Brazil - Santarem (GMT-03:00)' },\n { name: 'America/Porto_Velho', desc: 'Brazil - Porto Velho (GMT-04:00)' },\n { name: 'America/Boa_Vista', desc: 'Brazil - Boa Vista (GMT-04:00)' },\n { name: 'America/Manaus', desc: 'Brazil - Manaus (GMT-04:00)' },\n { name: 'America/Eirunepe', desc: 'Brazil - Eirunepe (GMT-05:00)' },\n { name: 'America/Rio_Branco', desc: 'Brazil - Rio Branco (GMT-05:00)' },\n { name: 'America/Nassau', desc: 'Bahamas - Nassau (GMT-04:00)' },\n { name: 'Asia/Thimphu', desc: 'Bhutan - Thimphu (GMT+06:00)' },\n { name: 'Africa/Gaborone', desc: 'Botswana - Gaborone (GMT+02:00)' },\n { name: 'Europe/Minsk', desc: 'Belarus - Minsk (GMT+03:00)' },\n { name: 'America/Belize', desc: 'Belize - Belize (GMT-06:00)' },\n { name: 'America/St_Johns', desc: 'Canada - St Johns (GMT-02:30)' },\n { name: 'America/Halifax', desc: 'Canada - Halifax (GMT-03:00)' },\n { name: 'America/Glace_Bay', desc: 'Canada - Glace Bay (GMT-03:00)' },\n { name: 'America/Moncton', desc: 'Canada - Moncton (GMT-03:00)' },\n { name: 'America/Goose_Bay', desc: 'Canada - Goose Bay (GMT-03:00)' },\n { name: 'America/Blanc-Sablon', desc: 'Canada - Blanc-Sablon (GMT-04:00)' },\n { name: 'America/Toronto', desc: 'Canada - Toronto (GMT-04:00)' },\n { name: 'America/Nipigon', desc: 'Canada - Nipigon (GMT-04:00)' },\n { name: 'America/Thunder_Bay', desc: 'Canada - Thunder Bay (GMT-04:00)' },\n { name: 'America/Iqaluit', desc: 'Canada - Iqaluit (GMT-04:00)' },\n { name: 'America/Pangnirtung', desc: 'Canada - Pangnirtung (GMT-04:00)' },\n { name: 'America/Resolute', desc: 'Canada - Resolute (GMT-05:00)' },\n { name: 'America/Atikokan', desc: 'Canada - Atikokan (GMT-05:00)' },\n { name: 'America/Rankin_Inlet', desc: 'Canada - Rankin Inlet (GMT-05:00)' },\n { name: 'America/Winnipeg', desc: 'Canada - Winnipeg (GMT-05:00)' },\n { name: 'America/Rainy_River', desc: 'Canada - Rainy River (GMT-05:00)' },\n { name: 'America/Regina', desc: 'Canada - Regina (GMT-06:00)' },\n { name: 'America/Swift_Current', desc: 'Canada - Swift Current (GMT-06:00)' },\n { name: 'America/Edmonton', desc: 'Canada - Edmonton (GMT-06:00)' },\n { name: 'America/Cambridge_Bay', desc: 'Canada - Cambridge Bay (GMT-06:00)' },\n { name: 'America/Yellowknife', desc: 'Canada - Yellowknife (GMT-06:00)' },\n { name: 'America/Inuvik', desc: 'Canada - Inuvik (GMT-06:00)' },\n { name: 'America/Creston', desc: 'Canada - Creston (GMT-07:00)' },\n { name: 'America/Dawson_Creek', desc: 'Canada - Dawson Creek (GMT-07:00)' },\n { name: 'America/Vancouver', desc: 'Canada - Vancouver (GMT-07:00)' },\n { name: 'America/Whitehorse', desc: 'Canada - Whitehorse (GMT-07:00)' },\n { name: 'America/Dawson', desc: 'Canada - Dawson (GMT-07:00)' },\n { name: 'America/Montreal', desc: 'Canada - Montreal (GMT-04:00)' },\n { name: 'Canada/Atlantic', desc: 'Canada - Atlantic (GMT-03:00)' },\n { name: 'Canada/Central', desc: 'Canada - Central (GMT-05:00)' },\n { name: 'Canada/Eastern', desc: 'Canada - Eastern (GMT-04:00)' },\n { name: 'Canada/Mountain', desc: 'Canada - Mountain (GMT-06:00)' },\n { name: 'Canada/Newfoundland', desc: 'Canada - Newfoundland (GMT-02:30)' },\n { name: 'Canada/Pacific', desc: 'Canada - Pacific (GMT-07:00)' },\n { name: 'Canada/Saskatchewan', desc: 'Canada - Saskatchewan (GMT-06:00)' },\n { name: 'Canada/Yukon', desc: 'Canada - Yukon (GMT-07:00)' },\n { name: 'Indian/Cocos', desc: 'Cocos (Keeling) Islands - Cocos (GMT+06:30)' },\n { name: 'Africa/Kinshasa', desc: 'Congo, (Kinshasa) - Kinshasa (GMT+01:00)' },\n { name: 'Africa/Lubumbashi', desc: 'Congo, (Kinshasa) - Lubumbashi (GMT+02:00)' },\n { name: 'Africa/Bangui', desc: 'Central African Republic - Bangui (GMT+01:00)' },\n { name: 'Africa/Brazzaville', desc: 'Congo (Brazzaville) - Brazzaville (GMT+01:00)' },\n { name: 'Europe/Zurich', desc: 'Switzerland - Zurich (GMT+02:00)' },\n { name: 'Africa/Abidjan', desc: \"Côte d'Ivoire - Abidjan (GMT+00:00)\" },\n { name: 'Pacific/Rarotonga', desc: 'Cook Islands - Rarotonga (GMT-10:00)' },\n { name: 'America/Santiago', desc: 'Chile - Santiago (GMT-04:00)' },\n { name: 'Pacific/Easter', desc: 'Chile - Easter (GMT-06:00)' },\n { name: 'Chile/Continental', desc: 'Chile - Continental (GMT-04:00)' },\n { name: 'Chile/EasterIsland', desc: 'Chile - EasterIsland (GMT-06:00)' },\n { name: 'Africa/Douala', desc: 'Cameroon - Douala (GMT+01:00)' },\n { name: 'Asia/Shanghai', desc: 'China - Shanghai (GMT+08:00)' },\n { name: 'Asia/Harbin', desc: 'China - Harbin (GMT+08:00)' },\n { name: 'Asia/Chongqing', desc: 'China - Chongqing (GMT+08:00)' },\n { name: 'Asia/Urumqi', desc: 'China - Urumqi (GMT+06:00)' },\n { name: 'Asia/Kashgar', desc: 'China - Kashgar (GMT+06:00)' },\n { name: 'America/Bogota', desc: 'Colombia - Bogota (GMT-05:00)' },\n { name: 'America/Costa_Rica', desc: 'Costa Rica - Costa Rica (GMT-06:00)' },\n { name: 'America/Havana', desc: 'Cuba - Havana (GMT-04:00)' },\n { name: 'Atlantic/Cape_Verde', desc: 'Cape Verde - Cape Verde (GMT-01:00)' },\n { name: 'America/Curacao', desc: 'CW - Curacao (GMT-04:00)' },\n { name: 'Indian/Christmas', desc: 'Christmas Island - Christmas (GMT+07:00)' },\n { name: 'Asia/Nicosia', desc: 'Cyprus - Nicosia (GMT+03:00)' },\n { name: 'Europe/Prague', desc: 'Czech Republic - Prague (GMT+02:00)' },\n { name: 'Europe/Berlin', desc: 'Germany - Berlin (GMT+02:00)' },\n { name: 'Africa/Djibouti', desc: 'Djibouti - Djibouti (GMT+03:00)' },\n { name: 'Europe/Copenhagen', desc: 'Denmark - Copenhagen (GMT+02:00)' },\n { name: 'America/Dominica', desc: 'Dominica - Dominica (GMT-04:00)' },\n { name: 'America/Santo_Domingo', desc: 'Dominican Republic - Santo Domingo (GMT-04:00)' },\n { name: 'Africa/Algiers', desc: 'Algeria - Algiers (GMT+01:00)' },\n { name: 'America/Guayaquil', desc: 'Ecuador - Guayaquil (GMT-05:00)' },\n { name: 'Pacific/Galapagos', desc: 'Ecuador - Galapagos (GMT-06:00)' },\n { name: 'Europe/Tallinn', desc: 'Estonia - Tallinn (GMT+03:00)' },\n { name: 'Egypt', desc: 'Egypt - Egypt (GMT+02:00)' },\n { name: 'Africa/El_Aaiun', desc: 'Western Sahara - El Aaiun (GMT+00:00)' },\n { name: 'Africa/Asmara', desc: 'Eritrea - Asmara (GMT+03:00)' },\n { name: 'Europe/Madrid', desc: 'Spain - Madrid (GMT+02:00)' },\n { name: 'Africa/Ceuta', desc: 'Spain - Ceuta (GMT+02:00)' },\n { name: 'Atlantic/Canary', desc: 'Spain - Canary (GMT+01:00)' },\n { name: 'Africa/Addis_Ababa', desc: 'Ethiopia - Addis Ababa (GMT+03:00)' },\n { name: 'Europe/Helsinki', desc: 'Finland - Helsinki (GMT+03:00)' },\n { name: 'Pacific/Fiji', desc: 'Fiji - Fiji (GMT+12:00)' },\n { name: 'Atlantic/Stanley', desc: 'Falkland Islands (Malvinas) - Stanley (GMT-03:00)' },\n { name: 'Pacific/Chuuk', desc: 'Micronesia - Chuuk (GMT+10:00)' },\n { name: 'Pacific/Pohnpei', desc: 'Micronesia - Pohnpei (GMT+11:00)' },\n { name: 'Pacific/Kosrae', desc: 'Micronesia - Kosrae (GMT+11:00)' },\n { name: 'Atlantic/Faroe', desc: 'Faroe Islands - Faroe (GMT+01:00)' },\n { name: 'Europe/Paris', desc: 'France - Paris (GMT+02:00)' },\n { name: 'Africa/Libreville', desc: 'Gabon - Libreville (GMT+01:00)' },\n { name: 'Europe/London', desc: 'United Kingdom (GB) - London (GMT+01:00)' },\n { name: 'America/Grenada', desc: 'Grenada - Grenada (GMT-04:00)' },\n { name: 'Asia/Tbilisi', desc: 'Georgia - Tbilisi (GMT+04:00)' },\n { name: 'America/Cayenne', desc: 'French Guiana - Cayenne (GMT-03:00)' },\n { name: 'Europe/Guernsey', desc: 'Guernsey - Guernsey (GMT+01:00)' },\n { name: 'Africa/Accra', desc: 'Ghana - Accra (GMT+00:00)' },\n { name: 'Europe/Gibraltar', desc: 'Gibraltar - Gibraltar (GMT+02:00)' },\n { name: 'America/Godthab', desc: 'Greenland - Godthab (GMT-02:00)' },\n { name: 'America/Danmarkshavn', desc: 'Greenland - Danmarkshavn (GMT+00:00)' },\n { name: 'America/Scoresbysund', desc: 'Greenland - Scoresbysund (GMT+00:00)' },\n { name: 'America/Thule', desc: 'Greenland - Thule (GMT-03:00)' },\n { name: 'Africa/Banjul', desc: 'Gambia - Banjul (GMT+00:00)' },\n { name: 'Africa/Conakry', desc: 'Guinea - Conakry (GMT+00:00)' },\n { name: 'America/Guadeloupe', desc: 'Guadeloupe - Guadeloupe (GMT-04:00)' },\n { name: 'Africa/Malabo', desc: 'Equatorial Guinea - Malabo (GMT+01:00)' },\n { name: 'Europe/Athens', desc: 'Greece - Athens (GMT+03:00)' },\n { name: 'Atlantic/South_Georgia', desc: 'South Georgia and the South Sandwich Islands - South Georgia (GMT-02:00)' },\n { name: 'America/Guatemala', desc: 'Guatemala - Guatemala (GMT-06:00)' },\n { name: 'Pacific/Guam', desc: 'Guam - Guam (GMT+10:00)' },\n { name: 'Africa/Bissau', desc: 'Guinea-Bissau - Bissau (GMT+00:00)' },\n { name: 'America/Guyana', desc: 'Guyana - Guyana (GMT-04:00)' },\n { name: 'Asia/Hong_Kong', desc: 'Hong Kong - Hong Kong (GMT+08:00)' },\n { name: 'America/Tegucigalpa', desc: 'Honduras - Tegucigalpa (GMT-06:00)' },\n { name: 'Europe/Zagreb', desc: 'Croatia - Zagreb (GMT+02:00)' },\n { name: 'America/Port-au-Prince', desc: 'Haiti - Port-au-Prince (GMT-04:00)' },\n { name: 'Europe/Budapest', desc: 'Hungary - Budapest (GMT+02:00)' },\n { name: 'Asia/Jakarta', desc: 'Indonesia - Jakarta (GMT+07:00)' },\n { name: 'Asia/Pontianak', desc: 'Indonesia - Pontianak (GMT+07:00)' },\n { name: 'Asia/Makassar', desc: 'Indonesia - Makassar (GMT+08:00)' },\n { name: 'Asia/Jayapura', desc: 'Indonesia - Jayapura (GMT+09:00)' },\n { name: 'Europe/Dublin', desc: 'Ireland - Dublin (GMT+01:00)' },\n { name: 'Asia/Jerusalem', desc: 'Israel - Jerusalem (GMT+03:00)' },\n { name: 'Europe/Isle_of_Man', desc: 'Isle of Man - Isle of_Man (GMT+01:00)' },\n { name: 'Asia/Kolkata', desc: 'India - Kolkata (GMT+05:30)' },\n { name: 'Indian/Chagos', desc: 'British Indian Ocean Territory - Chagos (GMT+06:00)' },\n { name: 'Asia/Baghdad', desc: 'Iraq - Baghdad (GMT+03:00)' },\n { name: 'Asia/Tehran', desc: 'Iran - Tehran (GMT+04:30)' },\n { name: 'Atlantic/Reykjavik', desc: 'Iceland - Reykjavik (GMT+00:00)' },\n { name: 'Europe/Rome', desc: 'Italy - Rome (GMT+02:00)' },\n { name: 'Europe/Jersey', desc: 'Jersey - Jersey (GMT+01:00)' },\n { name: 'America/Jamaica', desc: 'Jamaica - Jamaica (GMT-05:00)' },\n { name: 'Asia/Amman', desc: 'Jordan - Amman (GMT+03:00)' },\n { name: 'Asia/Tokyo', desc: 'Japan - Tokyo (GMT+09:00)' },\n { name: 'Africa/Nairobi', desc: 'Kenya - Nairobi (GMT+03:00)' },\n { name: 'Asia/Bishkek', desc: 'Kyrgyzstan - Bishkek (GMT+06:00)' },\n { name: 'Asia/Phnom_Penh', desc: 'Cambodia - Phnom Penh (GMT+07:00)' },\n { name: 'Pacific/Tarawa', desc: 'Kiribati - Tarawa (GMT+12:00)' },\n { name: 'Pacific/Enderbury', desc: 'Kiribati - Enderbury (GMT+13:00)' },\n { name: 'Pacific/Kiritimati', desc: 'Kiribati - Kiritimati (GMT+14:00)' },\n { name: 'Indian/Comoro', desc: 'Comoros - Comoro (GMT+03:00)' },\n { name: 'America/St_Kitts', desc: 'Saint Kitts and Nevis - St Kitts (GMT-04:00)' },\n { name: 'Asia/Pyongyang', desc: 'Korea (North) - Pyongyang (GMT+09:00)' },\n { name: 'Asia/Seoul', desc: 'Korea (South) - Seoul (GMT+09:00)' },\n { name: 'Asia/Kuwait', desc: 'Kuwait - Kuwait (GMT+03:00)' },\n { name: 'America/Cayman', desc: 'Cayman Islands - Cayman (GMT-05:00)' },\n { name: 'Asia/Almaty', desc: 'Kazakhstan - Almaty (GMT+06:00)' },\n { name: 'Asia/Qyzylorda', desc: 'Kazakhstan - Qyzylorda (GMT+06:00)' },\n { name: 'Asia/Aqtobe', desc: 'Kazakhstan - Aqtobe (GMT+05:00)' },\n { name: 'Asia/Aqtau', desc: 'Kazakhstan - Aqtau (GMT+05:00)' },\n { name: 'Asia/Oral', desc: 'Kazakhstan - Oral (GMT+05:00)' },\n { name: 'Asia/Vientiane', desc: 'Lao PDR - Vientiane (GMT+07:00)' },\n { name: 'Asia/Beirut', desc: 'Lebanon - Beirut (GMT+03:00)' },\n { name: 'America/St_Lucia', desc: 'Saint Lucia - St Lucia (GMT-04:00)' },\n { name: 'Europe/Vaduz', desc: 'Liechtenstein - Vaduz (GMT+02:00)' },\n { name: 'Asia/Colombo', desc: 'Sri Lanka - Colombo (GMT+05:30)' },\n { name: 'Africa/Monrovia', desc: 'Liberia - Monrovia (GMT+00:00)' },\n { name: 'Africa/Maseru', desc: 'Lesotho - Maseru (GMT+02:00)' },\n { name: 'Europe/Vilnius', desc: 'Lithuania - Vilnius (GMT+03:00)' },\n { name: 'Europe/Luxembourg', desc: 'Luxembourg - Luxembourg (GMT+02:00)' },\n { name: 'Europe/Riga', desc: 'Latvia - Riga (GMT+03:00)' },\n { name: 'Africa/Tripoli', desc: 'Libya - Tripoli (GMT+02:00)' },\n { name: 'Africa/Casablanca', desc: 'Morocco - Casablanca (GMT+00:00)' },\n { name: 'Europe/Monaco', desc: 'Monaco - Monaco (GMT+02:00)' },\n { name: 'Europe/Chisinau', desc: 'Moldova - Chisinau (GMT+03:00)' },\n { name: 'Europe/Podgorica', desc: 'Montenegro - Podgorica (GMT+02:00)' },\n { name: 'America/Marigot', desc: 'Saint-Martin (French part) - Marigot (GMT-04:00)' },\n { name: 'Indian/Antananarivo', desc: 'Madagascar - Antananarivo (GMT+03:00)' },\n { name: 'Pacific/Majuro', desc: 'Marshall Islands - Majuro (GMT+12:00)' },\n { name: 'Pacific/Kwajalein', desc: 'Marshall Islands - Kwajalein (GMT+12:00)' },\n { name: 'Europe/Skopje', desc: 'Macedonia - Skopje (GMT+02:00)' },\n { name: 'Africa/Bamako', desc: 'Mali - Bamako (GMT+00:00)' },\n { name: 'Asia/Rangoon', desc: 'Myanmar - Rangoon (GMT+06:30)' },\n { name: 'Asia/Ulaanbaatar', desc: 'Mongolia - Ulaanbaatar (GMT+08:00)' },\n { name: 'Asia/Hovd', desc: 'Mongolia - Hovd (GMT+07:00)' },\n { name: 'Asia/Choibalsan', desc: 'Mongolia - Choibalsan (GMT+08:00)' },\n { name: 'Asia/Macau', desc: 'Macao - Macau (GMT+08:00)' },\n { name: 'Pacific/Saipan', desc: 'Northern Mariana Islands - Saipan (GMT+10:00)' },\n { name: 'America/Martinique', desc: 'Martinique - Martinique (GMT-04:00)' },\n { name: 'Africa/Nouakchott', desc: 'Mauritania - Nouakchott (GMT+00:00)' },\n { name: 'America/Montserrat', desc: 'Montserrat - Montserrat (GMT-04:00)' },\n { name: 'Europe/Malta', desc: 'Malta - Malta (GMT+02:00)' },\n { name: 'Indian/Mauritius', desc: 'Mauritius - Mauritius (GMT+04:00)' },\n { name: 'Indian/Maldives', desc: 'Maldives - Maldives (GMT+05:00)' },\n { name: 'Africa/Blantyre', desc: 'Malawi - Blantyre (GMT+02:00)' },\n { name: 'America/Mexico_City', desc: 'Mexico - Mexico City (GMT-05:00)' },\n { name: 'America/Cancun', desc: 'Mexico - Cancun (GMT-05:00)' },\n { name: 'America/Merida', desc: 'Mexico - Merida (GMT-05:00)' },\n { name: 'America/Monterrey', desc: 'Mexico - Monterrey (GMT-05:00)' },\n { name: 'America/Matamoros', desc: 'Mexico - Matamoros (GMT-05:00)' },\n { name: 'America/Mazatlan', desc: 'Mexico - Mazatlan (GMT-06:00)' },\n { name: 'America/Chihuahua', desc: 'Mexico - Chihuahua (GMT-06:00)' },\n { name: 'America/Ojinaga', desc: 'Mexico - Ojinaga (GMT-06:00)' },\n { name: 'America/Hermosillo', desc: 'Mexico - Hermosillo (GMT-07:00)' },\n { name: 'America/Tijuana', desc: 'Mexico - Tijuana (GMT-07:00)' },\n { name: 'America/Santa_Isabel', desc: 'Mexico - Santa Isabel (GMT-07:00)' },\n { name: 'America/Bahia_Banderas', desc: 'Mexico - Bahia Banderas (GMT-05:00)' },\n { name: 'Asia/Kuala_Lumpur', desc: 'Malaysia - Kuala Lumpur (GMT+08:00)' },\n { name: 'Asia/Kuching', desc: 'Malaysia - Kuching (GMT+08:00)' },\n { name: 'Africa/Maputo', desc: 'Mozambique - Maputo (GMT+02:00)' },\n { name: 'Africa/Windhoek', desc: 'Namibia - Windhoek (GMT+02:00)' },\n { name: 'Pacific/Noumea', desc: 'New Caledonia - Noumea (GMT+11:00)' },\n { name: 'Africa/Niamey', desc: 'Niger - Niamey (GMT+01:00)' },\n { name: 'Pacific/Norfolk', desc: 'Norfolk Island - Norfolk (GMT+11:00)' },\n { name: 'Africa/Lagos', desc: 'Nigeria - Lagos (GMT+01:00)' },\n { name: 'America/Managua', desc: 'Nicaragua - Managua (GMT-06:00)' },\n { name: 'Europe/Amsterdam', desc: 'Netherlands - Amsterdam (GMT+02:00)' },\n { name: 'Europe/Oslo', desc: 'Norway - Oslo (GMT+02:00)' },\n { name: 'Asia/Kathmandu', desc: 'Nepal - Kathmandu (GMT+05:45)' },\n { name: 'Pacific/Nauru', desc: 'Nauru - Nauru (GMT+12:00)' },\n { name: 'Pacific/Niue', desc: 'Niue - Niue (GMT-11:00)' },\n { name: 'Pacific/Auckland', desc: 'New Zealand - Auckland (GMT+12:00)' },\n { name: 'Pacific/Chatham', desc: 'New Zealand - Chatham (GMT+12:45)' },\n { name: 'Asia/Muscat', desc: 'Oman - Muscat (GMT+04:00)' },\n { name: 'America/Panama', desc: 'Panama - Panama (GMT-05:00)' },\n { name: 'America/Lima', desc: 'Peru - Lima (GMT-05:00)' },\n { name: 'Pacific/Tahiti', desc: 'French Polynesia - Tahiti (GMT-10:00)' },\n { name: 'Pacific/Marquesas', desc: 'French Polynesia - Marquesas (GMT-09:30)' },\n { name: 'Pacific/Gambier', desc: 'French Polynesia - Gambier (GMT-09:00)' },\n { name: 'Pacific/Port_Moresby', desc: 'Papua New Guinea - Port Moresby (GMT+10:00)' },\n { name: 'Asia/Manila', desc: 'Philippines - Manila (GMT+08:00)' },\n { name: 'Asia/Karachi', desc: 'Pakistan - Karachi (GMT+05:00)' },\n { name: 'Europe/Warsaw', desc: 'Poland - Warsaw (GMT+02:00)' },\n { name: 'Poland', desc: 'Poland - Poland (GMT+02:00)' },\n { name: 'America/Miquelon', desc: 'Saint Pierre and Miquelon - Miquelon (GMT-02:00)' },\n { name: 'Pacific/Pitcairn', desc: 'Pitcairn - Pitcairn (GMT-08:00)' },\n { name: 'America/Puerto_Rico', desc: 'Puerto Rico - Puerto Rico (GMT-04:00)' },\n { name: 'Asia/Gaza', desc: 'Palestinian Territory - Gaza (GMT+03:00)' },\n { name: 'Asia/Hebron', desc: 'Palestinian Territory - Hebron (GMT+03:00)' },\n { name: 'Europe/Lisbon', desc: 'Portugal - Lisbon (GMT+01:00)' },\n { name: 'Atlantic/Madeira', desc: 'Portugal - Madeira (GMT+01:00)' },\n { name: 'Atlantic/Azores', desc: 'Portugal - Azores (GMT+00:00)' },\n { name: 'Pacific/Palau', desc: 'Palau - Palau (GMT+09:00)' },\n { name: 'America/Asuncion', desc: 'Paraguay - Asuncion (GMT-04:00)' },\n { name: 'Asia/Qatar', desc: 'Qatar - Qatar (GMT+03:00)' },\n { name: 'Indian/Reunion', desc: 'Réunion - Reunion (GMT+04:00)' },\n { name: 'Europe/Bucharest', desc: 'Romania - Bucharest (GMT+03:00)' },\n { name: 'Europe/Belgrade', desc: 'Serbia - Belgrade (GMT+02:00)' },\n { name: 'Europe/Kaliningrad', desc: 'Russian Federation - Kaliningrad (GMT+02:00)' },\n { name: 'Europe/Moscow', desc: 'Russian Federation - Moscow (GMT+03:00)' },\n { name: 'Europe/Volgograd', desc: 'Russian Federation - Volgograd (GMT+03:00)' },\n { name: 'Europe/Samara', desc: 'Russian Federation - Samara (GMT+04:00)' },\n { name: 'Europe/Simferopol', desc: 'Russian Federation - Simferopol (GMT+03:00)' },\n { name: 'Asia/Yekaterinburg', desc: 'Russian Federation - Yekaterinburg (GMT+05:00)' },\n { name: 'Asia/Omsk', desc: 'Russian Federation - Omsk (GMT+06:00)' },\n { name: 'Asia/Novosibirsk', desc: 'Russian Federation - Novosibirsk (GMT+07:00)' },\n { name: 'Asia/Novokuznetsk', desc: 'Russian Federation - Novokuznetsk (GMT+07:00)' },\n { name: 'Asia/Krasnoyarsk', desc: 'Russian Federation - Krasnoyarsk (GMT+07:00)' },\n { name: 'Asia/Irkutsk', desc: 'Russian Federation - Irkutsk (GMT+08:00)' },\n { name: 'Asia/Yakutsk', desc: 'Russian Federation - Yakutsk (GMT+09:00)' },\n { name: 'Asia/Khandyga', desc: 'Russian Federation - Khandyga (GMT+09:00)' },\n { name: 'Asia/Vladivostok', desc: 'Russian Federation - Vladivostok (GMT+10:00)' },\n { name: 'Asia/Sakhalin', desc: 'Russian Federation - Sakhalin (GMT+11:00)' },\n { name: 'Asia/Ust-Nera', desc: 'Russian Federation - Ust-Nera (GMT+10:00)' },\n { name: 'Asia/Magadan', desc: 'Russian Federation - Magadan (GMT+11:00)' },\n { name: 'Asia/Kamchatka', desc: 'Russian Federation - Kamchatka (GMT+12:00)' },\n { name: 'Asia/Anadyr', desc: 'Russian Federation - Anadyr (GMT+12:00)' },\n { name: 'Africa/Kigali', desc: 'Rwanda - Kigali (GMT+02:00)' },\n { name: 'Asia/Riyadh', desc: 'Saudi Arabia - Riyadh (GMT+03:00)' },\n { name: 'Pacific/Guadalcanal', desc: 'Solomon Islands - Guadalcanal (GMT+11:00)' },\n { name: 'Indian/Mahe', desc: 'Seychelles - Mahe (GMT+04:00)' },\n { name: 'Africa/Khartoum', desc: 'Sudan - Khartoum (GMT+02:00)' },\n { name: 'Europe/Stockholm', desc: 'Sweden - Stockholm (GMT+02:00)' },\n { name: 'Asia/Singapore', desc: 'Singapore - Singapore (GMT+08:00)' },\n { name: 'Atlantic/St_Helena', desc: 'Saint Helena - St Helena (GMT+00:00)' },\n { name: 'Europe/Ljubljana', desc: 'Slovenia - Ljubljana (GMT+02:00)' },\n { name: 'Arctic/Longyearbyen', desc: 'Svalbard and Jan Mayen Islands - Longyearbyen (GMT+02:00)' },\n { name: 'Europe/Bratislava', desc: 'Slovakia - Bratislava (GMT+02:00)' },\n { name: 'Africa/Freetown', desc: 'Sierra Leone - Freetown (GMT+00:00)' },\n { name: 'Europe/San_Marino', desc: 'San Marino - San Marino (GMT+02:00)' },\n { name: 'Africa/Dakar', desc: 'Senegal - Dakar (GMT+00:00)' },\n { name: 'Africa/Mogadishu', desc: 'Somalia - Mogadishu (GMT+03:00)' },\n { name: 'America/Paramaribo', desc: 'Suriname - Paramaribo (GMT-03:00)' },\n { name: 'Africa/Juba', desc: 'South Sudan - Juba (GMT+03:00)' },\n { name: 'Africa/Sao_Tome', desc: 'Sao Tome and Principe - Sao Tome (GMT+01:00)' },\n { name: 'America/El_Salvador', desc: 'El Salvador - El Salvador (GMT-06:00)' },\n { name: 'America/Lower_Princes', desc: 'SX - Lower Princes (GMT-04:00)' },\n { name: 'Asia/Damascus', desc: 'Syria - Damascus (GMT+03:00)' },\n { name: 'Africa/Mbabane', desc: 'Swaziland - Mbabane (GMT+02:00)' },\n { name: 'America/Grand_Turk', desc: 'Turks and Caicos Islands - Grand Turk (GMT-04:00)' },\n { name: 'Africa/Ndjamena', desc: 'Chad - Ndjamena (GMT+01:00)' },\n { name: 'Indian/Kerguelen', desc: 'French Southern Territories - Kerguelen (GMT+05:00)' },\n { name: 'Africa/Lome', desc: 'Togo - Lome (GMT+00:00)' },\n { name: 'Asia/Bangkok', desc: 'Thailand - Bangkok (GMT+07:00)' },\n { name: 'Asia/Dushanbe', desc: 'Tajikistan - Dushanbe (GMT+05:00)' },\n { name: 'Pacific/Fakaofo', desc: 'Tokelau - Fakaofo (GMT+13:00)' },\n { name: 'Asia/Dili', desc: 'Timor-Leste - Dili (GMT+09:00)' },\n { name: 'Asia/Ashgabat', desc: 'Turkmenistan - Ashgabat (GMT+05:00)' },\n { name: 'Africa/Tunis', desc: 'Tunisia - Tunis (GMT+01:00)' },\n { name: 'Pacific/Tongatapu', desc: 'Tonga - Tongatapu (GMT+13:00)' },\n { name: 'Europe/Istanbul', desc: 'Turkey - Istanbul (GMT+03:00)' },\n { name: 'America/Port_of_Spain', desc: 'Trinidad and Tobago - Port of_Spain (GMT-04:00)' },\n { name: 'Pacific/Funafuti', desc: 'Tuvalu - Funafuti (GMT+12:00)' },\n { name: 'Asia/Taipei', desc: 'Taiwan - Taipei (GMT+08:00)' },\n { name: 'Africa/Dar_es_Salaam', desc: 'Tanzania - Dar es_Salaam (GMT+03:00)' },\n { name: 'Europe/Kiev', desc: 'Ukraine - Kiev (GMT+03:00)' },\n { name: 'Europe/Uzhgorod', desc: 'Ukraine - Uzhgorod (GMT+03:00)' },\n { name: 'Europe/Zaporozhye', desc: 'Ukraine - Zaporozhye (GMT+03:00)' },\n { name: 'Africa/Kampala', desc: 'Uganda - Kampala (GMT+03:00)' },\n { name: 'Pacific/Johnston', desc: 'US Minor Outlying Islands - Johnston (GMT-10:00)' },\n { name: 'Pacific/Midway', desc: 'US Minor Outlying Islands - Midway (GMT-11:00)' },\n { name: 'Pacific/Wake', desc: 'US Minor Outlying Islands - Wake (GMT+12:00)' },\n { name: 'America/New_York', desc: 'United States of America (USA) - New York (GMT-04:00)' },\n { name: 'America/Detroit', desc: 'United States of America (USA) - Detroit (GMT-04:00)' },\n { name: 'America/Kentucky/Louisville', desc: 'United States of America (USA) - Louisville (GMT-04:00)' },\n { name: 'America/Kentucky/Monticello', desc: 'United States of America (USA) - Monticello (GMT-04:00)' },\n { name: 'America/Indiana/Indianapolis', desc: 'United States of America (USA) - Indianapolis (GMT-04:00)' },\n { name: 'America/Indiana/Vincennes', desc: 'United States of America (USA) - Vincennes (GMT-04:00)' },\n { name: 'America/Indiana/Winamac', desc: 'United States of America (USA) - Winamac (GMT-04:00)' },\n { name: 'America/Indiana/Marengo', desc: 'United States of America (USA) - Marengo (GMT-04:00)' },\n { name: 'America/Indiana/Petersburg', desc: 'United States of America (USA) - Petersburg (GMT-04:00)' },\n { name: 'America/Indiana/Vevay', desc: 'United States of America (USA) - Vevay (GMT-04:00)' },\n { name: 'America/Chicago', desc: 'United States of America (USA) - Chicago (GMT-05:00)' },\n { name: 'America/Indiana/Tell_City', desc: 'United States of America (USA) - Tell City (GMT-05:00)' },\n { name: 'America/Indiana/Knox', desc: 'United States of America (USA) - Knox (GMT-05:00)' },\n { name: 'America/Menominee', desc: 'United States of America (USA) - Menominee (GMT-05:00)' },\n { name: 'America/North_Dakota/Center', desc: 'United States of America (USA) - Center (GMT-05:00)' },\n { name: 'America/North_Dakota/New_Salem', desc: 'United States of America (USA) - New Salem (GMT-05:00)' },\n { name: 'America/North_Dakota/Beulah', desc: 'United States of America (USA) - Beulah (GMT-05:00)' },\n { name: 'America/Denver', desc: 'United States of America (USA) - Denver (GMT-06:00)' },\n { name: 'America/Boise', desc: 'United States of America (USA) - Boise (GMT-06:00)' },\n { name: 'America/Phoenix', desc: 'United States of America (USA) - Phoenix (GMT-07:00)' },\n { name: 'America/Los_Angeles', desc: 'United States of America (USA) - Los Angeles (GMT-07:00)' },\n { name: 'America/Anchorage', desc: 'United States of America (USA) - Anchorage (GMT-08:00)' },\n { name: 'America/Juneau', desc: 'United States of America (USA) - Juneau (GMT-08:00)' },\n { name: 'America/Sitka', desc: 'United States of America (USA) - Sitka (GMT-08:00)' },\n { name: 'America/Yakutat', desc: 'United States of America (USA) - Yakutat (GMT-08:00)' },\n { name: 'America/Nome', desc: 'United States of America (USA) - Nome (GMT-08:00)' },\n { name: 'America/Adak', desc: 'United States of America (USA) - Adak (GMT-09:00)' },\n { name: 'America/Metlakatla', desc: 'United States of America (USA) - Metlakatla (GMT-08:00)' },\n { name: 'Pacific/Honolulu', desc: 'United States of America (USA) - Honolulu (GMT-10:00)' },\n { name: 'America/Montevideo', desc: 'Uruguay - Montevideo (GMT-03:00)' },\n { name: 'Asia/Samarkand', desc: 'Uzbekistan - Samarkand (GMT+05:00)' },\n { name: 'Asia/Tashkent', desc: 'Uzbekistan - Tashkent (GMT+05:00)' },\n { name: 'Europe/Vatican', desc: 'Vatican City State - Vatican (GMT+02:00)' },\n { name: 'America/St_Vincent', desc: 'Saint Vincent and Grenadines - St Vincent (GMT-04:00)' },\n { name: 'America/Caracas', desc: 'Venezuela - Caracas (GMT-04:00)' },\n { name: 'America/Tortola', desc: 'British Virgin Islands - Tortola (GMT-04:00)' },\n { name: 'America/St_Thomas', desc: 'Virgin Islands, US - St Thomas (GMT-04:00)' },\n { name: 'Asia/Ho_Chi_Minh', desc: 'Viet Nam - Ho Chi_Minh (GMT+07:00)' },\n { name: 'Pacific/Efate', desc: 'Vanuatu - Efate (GMT+11:00)' },\n { name: 'Pacific/Wallis', desc: 'Wallis and Futuna Islands - Wallis (GMT+12:00)' },\n { name: 'Pacific/Apia', desc: 'Samoa - Apia (GMT+13:00)' },\n { name: 'Asia/Aden', desc: 'Yemen - Aden (GMT+03:00)' },\n { name: 'Indian/Mayotte', desc: 'Mayotte - Mayotte (GMT+03:00)' },\n { name: 'Africa/Johannesburg', desc: 'South Africa - Johannesburg (GMT+02:00)' },\n { name: 'Africa/Lusaka', desc: 'Zambia - Lusaka (GMT+02:00)' },\n { name: 'Africa/Harare', desc: 'Zimbabwe - Harare (GMT+02:00)' },\n];\n\n@Injectable()\nexport class EuiTimezoneService {\n /**\n * Convert country ISO code to country name (in english)\n */\n iso2country(iso: string): string {\n return EUI_COUNTRIES[iso] ? EUI_COUNTRIES[iso] : iso;\n }\n\n /**\n * Gets the list of ISO-codes for all countries\n */\n getCountries(): string[] {\n const res: string[] = [];\n for (const prop of Object.keys(EUI_COUNTRIES)) {\n res.push(prop);\n }\n return res;\n }\n\n getTimezones(): EuiTimeZone[] {\n return EUI_TIMEZONES;\n }\n\n getTimezone(tz: string): EuiTimeZone {\n return EUI_TIMEZONES.find((item) => item.name === tz);\n }\n}\n","/**\n * Generic storage service. Concrete storage services must extend this class\n */\nexport abstract class StorageService {\n /**\n * utility function, to determine the storage implementation\n */\n abstract name(): string;\n\n /**\n * retrieve an object from storage\n * @param key the associated key\n * @returns the value or undefined, if case of error\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n abstract get(key: string): any;\n abstract get<T>(key: string): T;\n\n /**\n * sets an object in storage\n * @param key the associated key\n * @param value the value to set\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n abstract set(key: string, value: any): void;\n abstract set<T>(key: string, value: T): void;\n\n /**\n * removes an object from storage\n * @param key the associated key\n */\n abstract remove(key: string): void;\n}\n","import { StorageService } from './storage.service';\n\nexport class StorageServiceMock extends StorageService {\n name(): string {\n return null;\n }\n\n get(): null {\n return null;\n }\n\n set(): void { /* empty */ }\n\n remove(): void { /* empty */ }\n}\n","import { StorageService } from './storage.service';\nimport { Observable } from 'rxjs';\n\n/**\n * Generic asynchronous storage service. Concrete asynchronous storage services must extend this class\n */\nexport abstract class AsyncStorageService extends StorageService {\n /**\n * reflects the readiness of the storage\n * @returns one time emission Observable<any>\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n abstract ready(): Observable<any>;\n\n /**\n * retrieve an object from async storage\n * @param key the associated key\n * @returns one time emission Observable of value\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n abstract get(key: string): Observable<any>;\n abstract get<T>(key: string): Observable<T>;\n\n /**\n * sets an object in async storage\n * @param key the associated key\n * @param value the value to set\n * @returns one time emission Observable\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n abstract set(key: string, value: any): Observable<any>;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n abstract set<T>(key: string, value: T): Observable<any>;\n\n /**\n * removes an object from async storage\n * @param key the associated key\n * @returns one time emission Observable\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n abstract remove(key: string): Observable<any>;\n\n /**\n * asynchronous helper for set function\n * @param key the associated key\n * @param value the value to set\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setAsync(key: string, value: any): void;\n setAsync<T>(key: string, value: T): void {\n this.set(key, value).subscribe(() => { /* empty */ });\n }\n\n /**\n * asynchronous helper for remove function\n * @param key the associated key\n */\n removeAsync(key: string): void {\n this.remove(key).subscribe(() => { /* empty */ });\n }\n}\n","import { AsyncStorageService } from './async-storage.service';\nimport { Observable, of } from 'rxjs';\n\nexport class AsyncStorageServiceMock extends AsyncStorageService {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ready(): Observable<any> {\n return of({});\n }\n\n name(): string {\n return null;\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(): Observable<any> {\n return of({});\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(): Observable<any> {\n return of({});\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n remove(): Observable<any> {\n return of({});\n }\n\n setAsync(): void { /* empty */ }\n\n removeAsync(): void { /* empty */ }\n}\n","import { Injectable, Optional } from '@angular/core';\nimport { StorageService } from './storage.service';\nimport { LogService } from '../log/log.service';\n\n/**\n * localStorage service\n */\n@Injectable()\nexport class LocalStorageService extends StorageService {\n static NAME = 'LocalStorageService';\n\n constructor(@Optional() protected log: LogService) {\n super();\n }\n\n /**\n * the name of the storage service\n */\n name(): string {\n return LocalStorageService.NAME;\n }\n\n /**\n * retrieve an object from local storage\n * @param key the associated key\n * @returns the value or undefined, if case of error\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(key: string): any {\n try {\n const serialized = localStorage.getItem(key);\n return serialized && JSON.parse(serialized);\n } catch (err) {\n if (this.log) {\n this.log.error(this.name(), 'get', err);\n }\n return undefined;\n }\n }\n\n /**\n * sets an object in local storage\n * @param key the associated key\n * @param value the value to set\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(key: string, value: any): void {\n try {\n const serialized = JSON.stringify(value);\n localStorage.setItem(key, serialized);\n } catch (err) {\n if (this.log) {\n this.log.error(this.name(), 'set', err);\n }\n }\n }\n\n /**\n * removes an object from local storage\n * @param key the associated key\n */\n remove(key: string): void {\n try {\n localStorage.removeItem(key);\n } catch (err) {\n if (this.log) {\n this.log.error(this.name(), 'remove', err);\n }\n }\n }\n}\n","import { Injectable, Optional } from '@angular/core';\nimport { StorageService } from './storage.service';\nimport { LogService } from '../log/log.service';\n\n/**\n * sessionStorage service\n */\n@Injectable()\nexport class SessionStorageService extends StorageService {\n static NAME = 'SessionStorageService';\n\n constructor(@Optional() protected log: LogService) {\n super();\n }\n\n /**\n * the name of the storage service\n */\n name(): string {\n return SessionStorageService.NAME;\n }\n\n /**\n * retrieve an object from session storage\n * @param key the associated key\n * @returns the value or undefined, if case of error\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(key: string): any {\n try {\n const serialized = sessionStorage.getItem(key);\n return serialized && JSON.parse(serialized);\n } catch (err) {\n if (this.log) {\n this.log.error(this.name(), 'get', err);\n }\n return undefined;\n }\n }\n\n /**\n * sets an object in session storage\n * @param key the associated key\n * @param value the value to set\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(key: string, value: any): void {\n try {\n const serialized = JSON.stringify(value);\n sessionStorage.setItem(key, serialized);\n } catch (err) {\n if (this.log) {\n this.log.error(this.name(), 'set', err);\n }\n }\n }\n\n /**\n * removes an object from session storage\n * @param key the associated key\n */\n remove(key: string): void {\n try {\n sessionStorage.removeItem(key);\n } catch (err) {\n if (this.log) {\n this.log.error(this.name(), 'remove', err);\n }\n }\n }\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport { from, Observable } from 'rxjs';\nimport { take, tap } from 'rxjs/operators';\nimport * as lf from 'localforage';\nimport { AsyncStorageService } from './async-storage.service';\nimport { LogService } from '../log';\n\n/** @internal */\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const localForage: any = 'defineDriver' in lf ? lf : lf['default'];\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const LOCAL_FORAGE_SERVICE_CONFIG_TOKEN = new InjectionToken<any>('LOCAL_FORAGE_SERVICE_CONFIG');\n\n/**\n * localforage service, using the localForage javascript library\n * https://localforage.github.io/localForage\n */\n@Injectable()\nexport class LocalForageService extends AsyncStorageService {\n static NAME = 'LocalForageService';\n\n constructor(\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Inject(LOCAL_FORAGE_SERVICE_CONFIG_TOKEN) @Optional() protected config: any,\n @Optional() protected log: LogService,\n ) {\n super();\n // configure localforage, if specified\n if (config) {\n localForage.config(config);\n }\n }\n\n /**\n * the name of the storage service\n */\n name(): string {\n return LocalForageService.NAME;\n }\n\n /**\n * reflects the readiness of the storage\n * @returns one time emission Observable<void>\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ready(): Observable<any> {\n return from(localForage.ready()).pipe(\n take(1),\n tap({\n next: () => { /* empty */ },\n error: (err) => {\n if (this.log) {\n this.log.error(this.name(), 'ready', err);\n }\n },\n }),\n );\n }\n\n /**\n * retrieve an object from localforage\n * @param key the associated key\n * @returns one time emission Observable of value\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(key: string): Observable<any> {\n return from(localForage.getItem(key)).pipe(\n take(1),\n tap(\n () => { /* empty */ },\n (err) => {\n if (this.log) {\n this.log.error(this.name(), 'get', err);\n }\n },\n ),\n );\n }\n\n /**\n * sets an object in localforage\n * @param key the associated key\n * @param value the value to set\n * @returns one time emission Observable\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(key: string, value: any): Observable<any> {\n return from(localForage.setItem(key, value)).pipe(\n take(1),\n tap({\n next: () => { /* empty */\n },\n error: (err) => {\n if (this.log) {\n this.log.error(this.name(), 'set', err);\n }\n },\n }),\n );\n }\n\n /**\n * removes an object from localforage\n * @param key the associated key\n * @returns one time emission Observable\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n remove(key: string): Observable<any> {\n return from(localForage.removeItem(key)).pipe(\n take(1),\n tap({\n next: () => { /* empty */ },\n error: (err) => {\n if (this.log) {\n this.log.error(this.name(), 'remove', err);\n }\n },\n }),\n );\n }\n}\n","/**\n * Angular is using a gulp task to generate the locales that we dynamically import. This task can be found here\n * https://github.com/angular/angular/blob/master/tools/gulp-tasks/cldr/cldr-data.js\n * That task is utilizing the CLDR library to load and construct the locale for each region. This service is responsible\n * to load those locale dynamically upon request and to update the state of the eUI app.\n *\n * Parts that are handles through configuration:\n * - update of the LOCALE_ID token\n * - initial dynamical load of locales\n * - bind to translation service for locale changes\n */\n\nimport { Inject, Injectable, InjectionToken, LOCALE_ID, OnDestroy, Optional } from '@angular/core';\nimport { getLocaleId } from '@angular/common';\nimport {\n EuiService,\n EuiServiceStatus,\n getLocaleState,\n getLocaleServiceConfigFromBase,\n GlobalConfig,\n LocaleServiceConfig,\n LocaleState,\n Logger, CoreState,\n} from '@eui/base';\nimport { Observable, of, Subject, throwError } from 'rxjs';\nimport { catchError, filter, map, switchMap, take, takeUntil, tap } from 'rxjs/operators';\nimport { StoreService, UpdateLocaleStateAction } from '../store';\nimport { LogService } from '../log';\nimport { I18nService } from '../i18n';\nimport { GLOBAL_CONFIG_TOKEN } from '../config/tokens';\nimport { createSelector } from '@ngrx/store';\n\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type LocaleMapper = (locale: string) => any;\nexport const LOCALE_ID_MAPPER = new InjectionToken<LocaleMapper>('localeIdMapper');\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LocaleService<T extends LocaleState = LocaleState> extends EuiService<T | LocaleState> implements OnDestroy {\n private readonly logger: Logger;\n private subNotifier: Subject<void> = new Subject();\n protected config: LocaleServiceConfig;\n\n constructor(\n protected store: StoreService,\n @Inject(GLOBAL_CONFIG_TOKEN) protected baseGlobalConfig: GlobalConfig,\n @Inject(LOCALE_ID) protected locale_id: string,\n @Optional() @Inject(LOCALE_ID_MAPPER) private localeMapper: LocaleMapper,\n @Optional() private i18n: I18nService,\n @Optional() private log: LogService,\n ) {\n super({ id: getLocaleId(locale_id) });\n if (log) {\n this.logger = log.getLogger('core.LocaleService');\n }\n\n this.config = getLocaleServiceConfigFromBase(this.baseGlobalConfig);\n // in case no localeMapper provided, set the angular getLocaleId as default\n if (!this.localeMapper) {\n this.localeMapper = getLocaleId;\n }\n }\n\n ngOnDestroy(): void {\n this.subNotifier.next(void 0);\n this.subNotifier.complete();\n }\n\n getState<K = T>(mapFn?: (state: T) => K): Observable<K>;\n getState<a extends keyof T>(key?: a): Observable<T[a]>;\n getState<K>(keyOrMapFn?: ((state: T) => K) | string): Observable<K> {\n let selector: (s: T) => K | LocaleState = getLocaleState;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const dotNotationToObject = <O>(obj: O, key: string): any => key.split('.').reduce((slice, i) => slice[i], obj);\n\n if (keyOrMapFn) {\n switch (typeof keyOrMapFn) {\n case 'function':\n selector = createSelector(getLocaleState, keyOrMapFn);\n break;\n case 'string':\n selector = createSelector(getLocaleState, (state) => dotNotationToObject(state, keyOrMapFn));\n break;\n }\n }\n return this.store.select(selector).pipe(\n takeUntil(this.subNotifier),\n // in case service didn't init fallback to LOCALE_ID token value\n map((state) => (state ? state : this.stateInstance ? this.stateInstance : this.locale_id)),\n );\n }\n\n init(state?: LocaleState | undefined): Observable<EuiServiceStatus> {\n super.initEuiService();\n\n // bind language changes to locale changes\n if (this.config?.bindWithTranslate) {\n this.bindTranslateServiceLangChangeToState();\n }\n\n // dynamically load locale based on provided configuration\n const availableLocales = state?.available || this.config?.available || this.getBrowserLocales() || [this.currentLocale];\n return this.loadLocale(availableLocales).pipe(\n takeUntil(this.subNotifier),\n tap(() => this.updateState(state || { id: this.currentLocale })),\n );\n }\n\n /**\n * dynamically load locale and update the state\n */\n updateState(state: LocaleState): void {\n try {\n const id = this.localeMapper(state.id);\n this.store.dispatch(new UpdateLocaleStateAction({ ...state, id }));\n // update global TOKEN ID based on configuration\n if (this.config.affectGlobalLocale) {\n this.locale_id = id;\n }\n } catch (e) {\n const message = `Locale for '${state.id}' is not available.\n Please use addLocale('${state.id}') first`;\n if (this.log) {\n this.logger.info(message, e);\n }\n throw new Error(message);\n }\n }\n\n addLocale(id: string): Observable<EuiServiceStatus> {\n return this.loadLocale(id);\n }\n\n get previousLocale(): string {\n return this.prevStateInstance?.id || this.currentLocale;\n }\n\n get currentLocale(): string {\n return this.stateInstance?.id;\n }\n\n /**\n * load and register locale data dynamically\n *\n * @param locale array of locale to load\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private loadLocale(locale: string[] | string): Observable<EuiServiceStatus> {\n // locale = Array.isArray(locale) ? locale : [locale];\n // const localeImports: Observable<{ data: any, localeId: string, extraData: any }>[]\n // = this.filterRegisteredLocales(locale).map(this.importDataAndExtraLocale.bind(this));\n //\n // // in case localeImports array is empty because locale exists, Observable still needs to complete\n // if (localeImports.length < 1) {\n // return of({ success: true });\n // }\n //\n // return forkJoin(...localeImports).pipe(\n // takeUntil(this.subNotifier),\n // map(localeData => {\n // // filter out null results and registerLocaleData including extra\n // localeData.filter(({ data }) => data)\n // .forEach(({ data, localeId, extraData }) => registerLocaleData(data, localeId, extraData));\n // return { success: true };\n // }),\n // catchError(error => {\n // if (this.log) {\n // this.logger.debug(`Locale load error: ${error.message}`, error);\n // }\n // return of({ success: false, error: error });\n // })\n // );\n return of({ success: true });\n }\n\n /**\n * listen for language changes and dynamically set locale accordingly. In case of non registered locale register it\n * dynamically.\n */\n private bindTranslateServiceLangChangeToState(): void {\n if (this.i18n) {\n this.i18n.onStateChange\n .pipe(\n takeUntil(this.subNotifier),\n // filter out null values\n filter((state) => state?.activeLang !== null && state?.activeLang !== undefined),\n // BEWARE: filter is based on convention that locale id sliced(2) will match activeLang e.g. en-US => en\n // Also, if activeLang is 'en' and locale is 'en-GB' it will not trigger locale change\n filter((state) => state.activeLang.toLowerCase() !== this.stateInstance?.id.slice(0, 2).toLowerCase()),\n // to check if registration of locale otherwise register it\n switchMap((value) =>\n of(value).pipe(\n // getLocaleId may throw Error(`Missing locale data for the locale \"${locale}\".`);\n switchMap((i18state) => {\n // check if activeLang is null or undefined\n if (!i18state.activeLang) {\n return throwError('Has i18nService initialized? If not make sure i18nService.init().subscribe(..)');\n }\n return of(this.localeMapper(i18state.activeLang));\n }),\n catchError((error) => {\n if (this.log) {\n this.logger.debug(error);\n }\n return this.loadLocale(value?.activeLang).pipe(\n filter((s: EuiServiceStatus) => s.success),\n map(() => this.localeMapper(value?.activeLang)),\n catchError((e) => {\n if (this.log) {\n this.logger.debug('Something went terribly really wrong during locale loading', e.err.message);\n }\n return of(e);\n }),\n );\n }),\n ),\n ),\n // update the \"available\" array attribute with newly registered\n switchMap((id) =>\n this.getState().pipe(\n take(1),\n map((state: LocaleState) => {\n const available = state?.available ? state.available : [];\n return { ...state, id, available: Array.from(new Set([...available, id])) };\n }),\n ),\n ),\n )\n .subscribe((state: LocaleState) => {\n this.updateState(state);\n });\n }\n }\n\n /**\n * retrieve locales from browser\n *\n * @param options\n */\n private getBrowserLocales(): string[] {\n const browserLocales = navigator.languages === undefined ? [navigator.language] : navigator.languages;\n\n if (!browserLocales) {\n return undefined;\n }\n\n return browserLocales.map((locale) => locale.trim());\n }\n\n /**\n * if locale is already registered filtered out.\n *\n * @param locales A string array contains all locale id e.g. [\"el\", \"el-CY\"]\n */\n private filterRegisteredLocales(locales: string[]): string[] {\n return locales.filter((loc: string) => {\n try {\n getLocaleId(loc);\n return false;\n } catch (e) {\n return true;\n }\n });\n }\n\n /**\n * returns an Observable which loads the locale based on provided ID\n *\n * @param id the locale id e.g. en, el-CY\n * @private\n */\n // private importLocale(id: string): Promise<any> {\n // // in case of an error, catch it and return null\n // return import(\n // /* webpackExclude: /\\.d\\.ts$/ */\n // /* webpackMode: \"lazy-once\" */\n // /* webpackChunkName: \"i18n-base\" */\n // `@/../node_modules/@angular/common/locales/${id}`)\n // .then(m => m.default)\n // .catch(error => {\n // if (this.log) {\n // this.logger.debug(`Locale with ID: \"${id}\" failed to load. Error: ${error.message}`, error);\n // }\n // return null;\n // });\n // }\n\n /**\n * returns a Promise which loads the locale based on provided ID\n *\n * @param id the locale id e.g. en, el-CY\n * @private\n */\n // private importExtraLocale(id: string): Promise<any> {\n // // in case of an error, catch it and return null\n // return import(\n // /* webpackExclude: /\\.d\\.ts$/ */\n // /* webpackMode: \"lazy-once\" */\n // /* webpackChunkName: \"i18n-extra\" */\n // `@/../node_modules/@angular/common/locales/extra/${id}`)\n // .then(m => m.default)\n // .catch(error => {\n // if (this.log) {\n // this.logger.debug(`Extra Locale with ID: \"${id}\" failed to load. Error: ${error.message}`, error);\n // }\n // return null;\n // });\n // }\n\n /**\n * Imports Locale and then Extra. It returns the Object which registerLocale(...) function needs.\n *\n * @param localeId The id of the locale\n * @private\n */\n // private importDataAndExtraLocale(localeId: string): Observable<{ data: any, localeId: string, extraData: any }> {\n // return from(this.importLocale(localeId)).pipe(\n // mergeMap((data) => from(this.importExtraLocale(localeId)).pipe(map((extraData) =>\n // Object.assign({}, { data, localeId, extraData }))),\n // 1\n // ));\n // }\n}\n","import { Optional, Inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { EuiServiceStatus, LocaleState } from '@eui/base';\nimport { LocaleService } from './locale.service';\nimport localeFr from '@angular/common/locales/fr';\nimport localeEl from '@angular/common/locales/el';\nimport { registerLocaleData } from '@angular/common';\n\n@Injectable()\nexport class LocaleServiceMock extends LocaleService {\n private DEFAULT_LOCALE = 'en';\n private stateSubject: BehaviorSubject<LocaleState> = new BehaviorSubject<LocaleState>({ id: this.DEFAULT_LOCALE });\n\n constructor(@Optional() @Inject(LOCALE_ID) protected locale_id: string) {\n super(null, { locale: { id: 'en', available: [] } }, locale_id, null, null, null);\n }\n\n getState(): Observable<LocaleState> {\n return this.stateSubject.asObservable();\n }\n\n updateState(state: LocaleState): void {\n this.DEFAULT_LOCALE = state.id || 'en';\n if (state.id === 'fr') {\n registerLocaleData(localeFr, 'fr');\n } else if (state.id === 'el') {\n registerLocaleData(localeEl, 'fr');\n }\n this.stateSubject.next(state);\n }\n\n init(state?: LocaleState): Observable<EuiServiceStatus> {\n this.DEFAULT_LOCALE = state.id || 'en';\n return of({ success: true });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { EuiService, EuiServiceStatus, getUserState, UserState } from '@eui/base';\nimport { StoreService, UpdateUserStateAction } from '../store';\nimport { createSelector } from '@ngrx/store';\n\n// export const USER_API_CONFIG_TOKEN = new InjectionToken<UserApiConfig>('USER_API_CONFIG');\n// export const DEFAULT_USER_PREFERENCES_TOKEN = new InjectionToken<BaseUserPreferences>('DEFAULT_USER_PREFERENCES');\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserService<T extends UserState = UserState> extends EuiService<T | UserState> {\n constructor(protected store: StoreService) {\n super({ userId: 'annonymous' });\n }\n\n init(userState: T): Observable<EuiServiceStatus> {\n super.initEuiService();\n // eslint-disable-next-line no-prototype-builtins\n if (typeof userState === 'object' && userState.hasOwnProperty('userId')) {\n this.updateState(userState);\n return of({ success: true });\n }\n return of({ success: false, error: 'Init object should be instance of BaseUserState' });\n }\n\n getState<K = T>(mapFn?: (state: T) => K): Observable<K>;\n getState<a extends keyof T>(key?: a): Observable<T[a]>;\n getState<K>(keyOrMapFn?: ((state: T) => K) | string): Observable<K> {\n let selector: (s: T) => K | UserState = getUserState;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const dotNotationToObject = <O>(obj: O, key: string): any => key.split('.').reduce((slice, i) => slice[i], obj);\n\n if (keyOrMapFn) {\n switch (typeof keyOrMapFn) {\n case 'function':\n selector = createSelector(getUserState, keyOrMapFn);\n break;\n case 'string':\n selector = createSelector(getUserState, (state) => dotNotationToObject(state, keyOrMapFn));\n break;\n }\n }\n\n return this.store.select(selector);\n }\n\n updateState(userState: T): void;\n // updateState<a extends keyof T>(slice: T[a], path: string);\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n updateState<a extends keyof T>(slice: T[a], reducer: (state: any, action: T[a]) => any): void;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n updateState<K extends UserState<T>>(userState: K | T, reducer?: any): void {\n // if (typeof pathOrReducer === 'string') {\n // let dotNotationToObject = (obj, key) => key.split('.').reduce((obj, i) => obj[i], obj);\n //\n // const customReducer = (state: UserState, action: UpdateUserDetailsAction): UserState => {\n // return Object.assign({}, dotNotationToObject(state, pathOrReducer), action.payload);\n // };\n // this.store.dispatchAction(userState, 'user', customReducer);\n // }\n\n if (reducer) {\n this.store.dispatchAction(userState, 'user', reducer);\n } else {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.store.dispatch(new UpdateUserStateAction(userState as any));\n }\n }\n}\n","import { Observable, of } from 'rxjs';\nimport { UserService } from './user.service';\nimport { Injectable } from '@angular/core';\nimport { EuiServiceStatus, UserState } from '@eui/base';\n\n@Injectable()\nexport class UserServiceMock<T> extends UserService {\n constructor() {\n super(null);\n }\n\n init(userState: UserState<T>): Observable<EuiServiceStatus> {\n return of({ success: true });\n }\n\n getState<K = T>(mapFn?: (state: T) => K): Observable<K>;\n getState<a extends keyof T>(key?: a): Observable<T[a]>;\n getState<K>(keyOrMapFn?: ((state: T) => K) | string): Observable<K> {\n return of({} as K);\n }\n\n updateState(userState: UserState<T>): void;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n updateState<a extends keyof T>(slice: T[a], reducer: (state: any, action: T[a]) => any): void;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n updateState<K>(userState: K | T, reducer?: any): void {\n /* empty */\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\n\nexport const LANG_PARAM_KEY = 'X-Lang-Param';\n\n/**\n * Interceptor for adding the current language as parameter\n * Add the header (LANG_PARAM_KEY, <language parameter>) to your request http headers\n */\n@Injectable()\nexport class AddLangParamInterceptor implements HttpInterceptor {\n constructor(protected translateService: TranslateService) {}\n\n intercept<T>(req: HttpRequest<T>, next: HttpHandler): Observable<HttpEvent<T>> {\n // take the lang param name from header, if specified\n const langParam = req.headers.get(LANG_PARAM_KEY);\n\n // if not specified, do nothing\n if (!langParam) {\n return next.handle(req);\n }\n\n // take the current language from the translate service\n const langValue = this.translateService.currentLang;\n\n return next.handle(\n req.clone({\n // remove the lang param header from headers\n headers: req.headers.delete(LANG_PARAM_KEY),\n // set the lang value as new parameter\n params: req.params.set(langParam, langValue),\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class CachePreventionInterceptor implements HttpInterceptor {\n intercept<T>(req: HttpRequest<T>, next: HttpHandler): Observable<HttpEvent<T>> {\n // if Cache-Control is already specified\n if (req.headers.get('Cache-Control')) {\n // keep the current configuration\n return next.handle(req);\n }\n\n return next.handle(\n req.clone({\n // prevent the cache\n headers: req.headers.set('Cache-Control', 'No-Cache'),\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class CorsSecurityInterceptor implements HttpInterceptor {\n intercept<T>(request: HttpRequest<T>, next: HttpHandler): Observable<HttpEvent<T>> {\n return next.handle(\n request.clone({\n withCredentials: true,\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class CsrfPreventionInterceptor implements HttpInterceptor {\n intercept<T>(request: HttpRequest<T>, next: HttpHandler): Observable<HttpEvent<T>> {\n return next.handle(\n request.clone({\n headers: request.headers.set('X-Requested-With', 'XMLHttpRequest'),\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse, HttpResponseBase } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\n// The EuLoginSessionTimeoutHandlingInterceptor assumes that the EU login client is configured with:\n// <redirectionInterceptor>eu.cec.digit.ecas.client.http.ajax.JsonAjaxRedirectionInterceptor</redirectionInterceptor>\n// WARNING: The default EU login client behaviour that provides the JSON-un-parsable login HTML page, is no longer supported!\n@Injectable()\nexport class EuLoginSessionTimeoutHandlingInterceptor implements HttpInterceptor {\n intercept<T>(request: HttpRequest<T>, next: HttpHandler): Observable<HttpEvent<T>> {\n return next.handle(request).pipe(\n tap(\n (event) => {\n this.checkRequestSuccessForEULoginSessionTimeout(request, event);\n return event;\n },\n (error) => {\n this.checkRequestErrorForEULoginSessionTimeout(request, error);\n },\n ),\n );\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected checkRequestSuccessForEULoginSessionTimeout(request: HttpRequest<any>, event: HttpEvent<any>): void {\n if (event instanceof HttpResponse) {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isSsoResponse((<HttpResponse<any>>event).body)) {\n this.reauthenticate();\n }\n }\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected checkRequestErrorForEULoginSessionTimeout(request: HttpRequest<any>, response: HttpResponseBase): void {\n /* intentionally blank; meant for overriding */\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected isSsoResponse(body: any): boolean {\n if (body) {\n if (typeof body !== 'string') {\n return (\n body.success === false &&\n body.status === 'ECAS_AUTHENTICATION_REQUIRED' &&\n body.code === 303 &&\n body.message === 'session expired'\n );\n } else {\n const html = body;\n try {\n return (\n (html.indexOf('<meta name=\"Keywords\" content=\"EU Login, ECAS, Authentication, Security\" />') >= 0 &&\n html.indexOf('<meta name=\"Description\" content=\"EU Login\" />') >= 0) ||\n html.indexOf('<meta name=\"Description\" content=\"European Commission Authentication Service\" />') >= 0 ||\n html.indexOf('<title>Mock Login Form</title>') >= 0 ||\n html.indexOf('<title>Redirecting To ECAS</title>') >= 0 ||\n html === '{ success : false, status : \"ECAS_AUTHENTICATION_REQUIRED\", code : 303, message : \"session expired\" }' ||\n // eslint-disable-next-line max-len\n JSON.stringify(JSON.parse(html)) ===\n JSON.stringify({\n success: false,\n status: 'ECAS_AUTHENTICATION_REQUIRED',\n code: 303,\n message: 'session expired',\n })\n );\n } catch (e) {\n return false;\n }\n }\n } else {\n return false;\n }\n }\n\n protected reauthenticate(): void {\n document.location.reload();\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { ErrorMappingHandler, transformToUxHttpResponse, UxHttpErrorResponse } from '@eui/base';\n\nexport const UX_ERROR_MAPPING_HANDLER_TOKEN = new InjectionToken<ErrorMappingHandler>('UX_ERROR_MAPPING_HANDLER');\n\n@Injectable()\nexport class UxRequestErrorModelInterceptor implements HttpInterceptor {\n constructor(@Inject(UX_ERROR_MAPPING_HANDLER_TOKEN) private errorMappingHandler: ErrorMappingHandler) {}\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return next.handle(req).pipe(\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n catchError((err: any) => {\n if (this.errorMappingHandler) {\n if (err instanceof HttpErrorResponse) {\n err = transformToUxHttpResponse(err, this.errorMappingHandler) as UxHttpErrorResponse;\n }\n }\n return of(err);\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpErrorResponse,\n HttpEvent,\n HttpEventType,\n HttpHandler,\n HttpHeaders,\n HttpInterceptor,\n HttpRequest,\n HttpResponse,\n} from '@angular/common/http';\nimport { Observable, of, Subject, Subscription, throwError } from 'rxjs';\nimport { catchError, finalize } from 'rxjs/operators';\n\n// This variable is declared in the javascript file openid-login.js\n// and will be imported in the eUI applications' index.html file, when necessary.\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndeclare let OpenIdConnect: any;\n\n@Injectable()\nexport class OpenIdConnectInterceptor implements HttpInterceptor {\n // By default, the original request should at least be retries once in case the cached API Gateway token expires:\n defaultMaximumRequestRetries = 1;\n\n constructor() {\n // check if the OpenIdConnect is defined\n if (typeof OpenIdConnect === 'undefined') {\n console.error(\n 'Please include the script openid-login.js in your index.html file.',\n 'For more details, please consult the documentation regarding the Http Interceptors and OpenID Connect configuration.',\n );\n }\n }\n\n intercept(\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n request: HttpRequest<any>,\n next: HttpHandler,\n retryCount = 0,\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n retryCallback?: Subject<HttpEvent<any>>,\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Observable<HttpEvent<any>> {\n if (typeof OpenIdConnect !== 'undefined') {\n let authorizedRequest = retryCallback;\n if (!authorizedRequest) {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n authorizedRequest = new Subject<HttpEvent<any>>();\n }\n\n let subscription = null;\n OpenIdConnect.getAuthorizationHeaders(\n request.urlWithParams,\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (headers: any) => {\n let newRequest = request;\n if (headers) {\n let newHeaders = request.headers;\n if (newHeaders) {\n for (const headerName in headers) {\n // eslint-disable-next-line no-prototype-builtins\n if (headers.hasOwnProperty(headerName)) {\n newHeaders = newHeaders.set(headerName, headers[headerName]);\n }\n }\n } else {\n newHeaders = new HttpHeaders(headers);\n }\n newRequest = request.clone({\n withCredentials: false,\n headers: newHeaders,\n });\n }\n\n // Don't mix the next line with the line below it.\n // We would get a \"Cannot access 'subscription' before initialization\" error.\n subscription = next\n .handle(newRequest)\n .pipe(\n catchError((response: HttpErrorResponse) =>\n this.handleErrorResponse(response, request, next, retryCount, authorizedRequest, subscription),\n ),\n )\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .subscribe((httpEvent: HttpResponse<any>) => {\n if (httpEvent) {\n authorizedRequest.next(httpEvent);\n if (httpEvent.type === HttpEventType.Response) {\n if (subscription) {\n subscription.unsubscribe();\n }\n authorizedRequest.complete();\n }\n }\n });\n },\n (errorResponse: XMLHttpRequest) => {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const errorProperties: any = {\n error: errorResponse,\n };\n if (errorResponse) {\n errorProperties.status = errorResponse.status;\n errorProperties.statusText = errorResponse.statusText;\n }\n\n return this.handleErrorResponse(\n new HttpErrorResponse(errorProperties),\n request,\n next,\n retryCount,\n authorizedRequest,\n null,\n );\n },\n );\n\n // EUI-3992 will cancel the xhr request when observable is unsubscribed from or terminated\n return authorizedRequest.pipe(\n finalize(() => {\n if (subscription) {\n subscription.unsubscribe();\n }\n }),\n );\n } else {\n return next.handle(request);\n }\n }\n\n protected handleErrorResponse(\n response: HttpErrorResponse,\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n originalRequest: HttpRequest<any>,\n next: HttpHandler,\n retryCount = 0,\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n retryCallback: Subject<HttpEvent<any>>,\n subscription: Subscription,\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Observable<HttpEvent<any>> {\n if (response) {\n if (response.error && response.error.error === 'invalid_request') {\n // The ID token is invalid or incorrect; retrieve another one:\n OpenIdConnect.renewIdToken();\n } else if (this.apiGatewayTokenExpired(response)) {\n OpenIdConnect.clearCachedApiGatewayAccessToken();\n return this.retryRequest(originalRequest, response, next, retryCount, retryCallback, subscription);\n } else if (response.status === 401 || response.status === 403) {\n // The EU Login access token is invalid. (403)\n // The target service is unable to read the access token, for example because the EU Login session ended. (401)\n // Retry in case the access token became invalid too quickly:\n return this.retryRequest(originalRequest, response, next, retryCount, retryCallback, subscription);\n } else if (response.status === 0) {\n // One of the access token requests or the original request was not sent.\n // Most likely one of the CORS pre-flight requests failed, or the browser is offline.\n console.warn(\n 'The OpenID Connect call may have issues:\\n' +\n '* the CORS pre-flight requests for the OpenID Connect access tokens or for the REST call could be failing\\n' +\n '* the browser could be currently offline.',\n );\n }\n }\n\n if (subscription) {\n subscription.unsubscribe();\n }\n if (retryCallback) {\n retryCallback.error(response);\n retryCallback.complete();\n }\n\n return throwError(response);\n }\n\n protected retryRequest(\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n originalRequest: HttpRequest<any>,\n response: HttpErrorResponse,\n next: HttpHandler,\n retryCount = 0,\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n retryCallback: Subject<HttpEvent<any>>,\n subscription: Subscription,\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Observable<HttpEvent<any>> {\n if (retryCount < this.maximumRequestRetries()) {\n this.intercept(originalRequest, next, retryCount + 1, retryCallback);\n } else {\n console.error(\n 'The OpenID Connect call may have issues:\\n' +\n '* the client ID could be invalid\\n' +\n '* the API Gateway access token could be invalid\\n' +\n '* the EU Login access token for the target service could be invalid.',\n );\n if (subscription) {\n subscription.unsubscribe();\n }\n if (retryCallback) {\n retryCallback.error(response);\n retryCallback.complete();\n }\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return of<HttpEvent<any>>(null);\n }\n\n protected apiGatewayTokenExpired(response: HttpErrorResponse): boolean {\n if (response && response.status === 401) {\n const message = '' + response.error;\n return message.indexOf('<ams:code>900901</ams:code>') >= 0;\n } else {\n return false;\n }\n }\n\n protected maximumRequestRetries(): number {\n if (OpenIdConnect.config && OpenIdConnect.config.maximumRequestRetries >= 0) {\n return OpenIdConnect.config.maximumRequestRetries;\n } else {\n return this.defaultMaximumRequestRetries;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n// This variable is declared in the javascript file openid-login.js\n// and injected in the eUI applications' index.html file, if necessary\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndeclare let OpenIdConnect: any;\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndeclare let ApiGateway: any;\n\nexport interface OpenIdConnectUserDetails {\n domain?: string;\n domainUsername?: string;\n firstName?: string;\n lastName?: string;\n email?: string;\n departmentNumber?: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OpenIdConnectService {\n private userDetails: Observable<OpenIdConnectUserDetails>;\n\n constructor() {\n this.userDetails = new Observable((observer) => {\n if (typeof ApiGateway !== 'undefined') {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ApiGateway.getUser((user: any) => {\n if (user) {\n observer.next({\n domain: null,\n domainUsername: user.username,\n firstName: user.given_name,\n lastName: user.family_name,\n email: user.email,\n departmentNumber: user['https://ecas.ec.europa.eu/claims/department_number'],\n });\n } else {\n observer.next(null);\n }\n observer.complete();\n });\n } else if (typeof OpenIdConnect !== 'undefined') {\n OpenIdConnect.getIdToken(() => {\n const detailsString = sessionStorage.getItem(OpenIdConnect.SESSION_STORAGE_KEY_USER_DETAILS);\n if (detailsString) {\n observer.next(<OpenIdConnectUserDetails>JSON.parse(detailsString));\n observer.complete();\n } else {\n observer.next(null);\n observer.complete();\n }\n });\n } else {\n observer.next(null);\n observer.complete();\n }\n });\n }\n\n getUserDetails(): Observable<OpenIdConnectUserDetails> {\n return this.userDetails;\n }\n}\n","import { Observable, of } from 'rxjs';\nimport { OpenIdConnectService, OpenIdConnectUserDetails } from './openid-connect.service';\n\nexport class OpenIdConnectServiceMock extends OpenIdConnectService {\n getUserDetails(): Observable<OpenIdConnectUserDetails> {\n return of(null);\n }\n}\n","/* BASE PACKAGE */\nexport * from '@eui/base';\n\n/* CORE MODULES */\nexport * from './lib/eui-core.module';\n\n/* CORE SERVICES */\nexport * from './lib/services/index';\n\n// /* CORE CONFIG TOKENS */\n// export * from './lib/services/config/tokens';\n\n/* CORE INTERCEPTORS */\nexport * from './lib/interceptors/index';\n\n/* CORE HELPERS */\nexport * from './lib/helpers/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["extend","i2","i3.EuiGrowlService","actionToReducerMap","i1","i2.LogService","i1.LogService","i1.StoreService","i3.LogService","i3.StoreService","i2.StoreService","i1.EuiPermissionService","i4.I18nService","i2.I18nService"],"mappings":"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"}
1
+ {"version":3,"file":"eui-core.mjs","sources":["../../src/lib/services/config/defaults.ts","../../src/lib/services/config/tokens.ts","../../src/lib/services/store/actions/app.actions.ts","../../src/lib/services/store/actions/i18n.actions.ts","../../src/lib/services/store/actions/user.actions.ts","../../src/lib/services/store/actions/notifications.actions.ts","../../src/lib/services/store/actions/locale.actions.ts","../../src/lib/services/growl/eui-growl.service.ts","../../src/lib/services/store/effects/app.effects.ts","../../src/lib/services/store/effects/index.ts","../../src/lib/services/store/reducers/app.reducers.ts","../../src/lib/services/store/reducers/user.reducers.ts","../../src/lib/services/store/reducers/notifications.reducers.ts","../../src/lib/services/store/reducers/i18n.reducers.ts","../../src/lib/services/store/reducers/locale.reducers.ts","../../src/lib/services/store/reducers/core.reducers.ts","../../src/lib/services/store/reducers/meta.reducers.ts","../../src/lib/services/log/log.service.ts","../../src/lib/services/log/log.service.mock.ts","../../src/lib/services/app/factories/log.ts","../../src/lib/services/log/log.module.ts","../../src/lib/services/store/store.service.ts","../../src/lib/services/store/store.service.mock.ts","../../src/lib/services/app/eui-init-app.ts","../../src/lib/services/app/eui-startup.ts","../../src/lib/eui-core.module.ts","../../src/lib/services/app/eui-pre-init-app.ts","../../src/lib/services/errors/eui.error.ts","../../src/lib/services/errors/global-error-handler.ts","../../src/lib/services/errors/http-error-handler.interceptor.ts","../../src/lib/services/errors/http-error-handler-callback-functions.ts","../../src/lib/services/queue/api-queue.service.ts","../../src/lib/services/queue/api-queue.service.mock.ts","../../src/lib/services/i18n/i18n.resource.ts","../../src/lib/services/i18n/i18n.loader.ts","../../src/lib/services/i18n/i18n.service.ts","../../src/lib/services/i18n/index.ts","../../src/lib/helpers/date-helpers.ts","../../src/lib/helpers/dom-helpers.ts","../../src/lib/helpers/event-helpers.ts","../../src/lib/helpers/form-helpers.ts","../../src/lib/helpers/format-helpers.ts","../../src/lib/helpers/http-helpers.ts","../../src/lib/helpers/utils.ts","../../src/lib/services/permission/permission.service.ts","../../src/lib/services/dynamic-menu/dynamic-menu.service.ts","../../src/lib/services/dynamic-component/dynamic-component.service.ts","../../src/lib/services/eui-app-shell.service.ts","../../src/lib/services/eui-timezone.service.ts","../../src/lib/services/storage/storage.service.ts","../../src/lib/services/storage/storage.service.mock.ts","../../src/lib/services/storage/async-storage.service.ts","../../src/lib/services/storage/async-storage.service.mock.ts","../../src/lib/services/storage/local-storage.service.ts","../../src/lib/services/storage/session-storage.service.ts","../../src/lib/services/storage/local-forage.service.ts","../../src/lib/services/locale/locale.service.ts","../../src/lib/services/locale/locale.service.mock.ts","../../src/lib/services/user/user.service.ts","../../src/lib/services/user/user.service.mock.ts","../../src/lib/interceptors/add-lang-param.interceptor.ts","../../src/lib/interceptors/cache-prevention.interceptor.ts","../../src/lib/interceptors/cors-security.interceptor.ts","../../src/lib/interceptors/csrf-prevention.interceptor.ts","../../src/lib/interceptors/eu-login-session-timeout-handling.interceptor.ts","../../src/lib/interceptors/ux-request-error-model.interceptor.ts","../../src/lib/interceptors/openid/openid-connect.interceptor.ts","../../src/lib/interceptors/openid/openid-connect.service.ts","../../src/lib/interceptors/openid/openid-connect.service.mock.ts","../../src/index.ts","../../src/eui-core.ts"],"sourcesContent":["import {\n EuiConfig,\n EuiAppConfig,\n EuiEnvConfig,\n GlobalConfig,\n LogLevel,\n LogConfig,\n ConsoleAppender,\n HttpErrorHandlerConfig,\n I18nLoaderConfig,\n I18nServiceConfig,\n LocaleServiceConfig,\n} from '@eui/base';\n\n/** default log configuration */\nexport const DEFAULT_LOG_CONFIG: LogConfig = {\n baseLoggerName: 'root',\n logLevel: LogLevel.ERROR,\n logAppenders: {\n type: ConsoleAppender,\n prefixFormat: '[{level}]',\n },\n};\n\nexport const DEFAULT_I18N_SERVICE_CONFIG: I18nServiceConfig = {\n languages: ['en'],\n defaultLanguage: 'en',\n};\n\nexport const DEFAULT_I18N_LOADER_CONFIG: I18nLoaderConfig = {};\n\nexport const DEFAULT_LOCALE_SERVICE_CONFIG: LocaleServiceConfig = {\n id: 'en',\n available: ['en'],\n registered: ['en'],\n bindWithTranslate: false,\n affectGlobalLocale: false,\n};\n\nexport const DEFAULT_HTTP_ERROR_HANDLER_CONFIG: HttpErrorHandlerConfig = {\n routes: [],\n};\n\nexport const DEFAULT_GLOBAL_CONFIG: GlobalConfig = {\n showConnectionStatus: {\n messageBox: {\n lifespan: 0,\n },\n enabled: true,\n },\n i18n: {\n i18nService: {\n ...DEFAULT_I18N_SERVICE_CONFIG,\n },\n i18nLoader: {\n ...DEFAULT_I18N_LOADER_CONFIG,\n },\n },\n locale: {\n ...DEFAULT_LOCALE_SERVICE_CONFIG,\n },\n user: {\n defaultUserPreferences: {\n locale: {\n ...DEFAULT_LOCALE_SERVICE_CONFIG,\n },\n },\n },\n};\nexport const DEFAULT_EUI_APP_CONFIG: EuiAppConfig = {\n global: {\n ...DEFAULT_GLOBAL_CONFIG,\n },\n};\n\nexport const DEFAULT_EUI_ENV_CONFIG: EuiEnvConfig = {\n envAppHandlersConfig: {},\n};\n\nexport const DEFAULT_EUI_CONFIG: EuiConfig = {\n appConfig: {\n ...DEFAULT_EUI_APP_CONFIG,\n },\n environment: {\n ...DEFAULT_EUI_ENV_CONFIG,\n },\n};\n","import {\n EuiAppConfig,\n EuiAppHandlersConfig,\n EuiAppJsonConfig,\n EuiConfig,\n LogConfig,\n ModuleConfig,\n GlobalConfig,\n HttpErrorHandlerConfig,\n ConnectionStatus,\n} from '@eui/base';\nimport * as extendProxy from 'extend';\n\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst extend = (<any>extendProxy).default || extendProxy;\n\nimport { InjectionToken } from '@angular/core';\nimport { DEFAULT_EUI_CONFIG } from './defaults';\n\nexport const EUI_CONFIG_TOKEN = new InjectionToken<EuiConfig>('EuiConfig');\nexport const MODULE_NAME_TOKEN = new InjectionToken<string>('moduleName');\nexport const MODULE_CONFIG_TOKEN = new InjectionToken<ModuleConfig>('moduleConfig');\nexport const CONFIG_TOKEN = new InjectionToken<EuiAppConfig>('finalConfigToken');\nexport const GLOBAL_CONFIG_TOKEN = new InjectionToken<GlobalConfig>('globalConfig');\nexport const BASE_NAME_TOKEN = new InjectionToken<string>('baseName');\nexport const ROOT_LOG_CONFIG_TOKEN = new InjectionToken<LogConfig>('logConfig');\nexport const SHOW_CONNECTION_STATUS_TOKEN = new InjectionToken<boolean>('SHOW_CONNECTION_STATUS');\n\nexport const HTTP_ERROR_HANDLER_CONFIG_TOKEN = new InjectionToken<HttpErrorHandlerConfig>('HTTP_ERROR_HANDLER_CONFIG');\n\nexport function getGlobalConfig(appConfig: EuiAppConfig): GlobalConfig {\n return Object.assign(DEFAULT_EUI_CONFIG.appConfig.global, appConfig && appConfig.global);\n}\n\nexport function getShowConnectionStatus(globalConfig: GlobalConfig): boolean | ConnectionStatus {\n // TODO: remove on eUI 14\n if (typeof globalConfig?.showConnectionStatus === 'boolean') {\n console.warn('Usage of showConnectionStatus as boolean is deprecated, please use ConnectionStatus type');\n }\n return Object.assign({}, DEFAULT_EUI_CONFIG.appConfig.global.showConnectionStatus, globalConfig && globalConfig.showConnectionStatus);\n}\n\nexport function getModuleConfig(appConfig: EuiAppConfig, moduleName: string): ModuleConfig {\n return Object.assign({}, appConfig && appConfig.modules && appConfig.modules[moduleName]);\n}\n\nexport function getHttpErrorHandlingConfig(appConfig: EuiAppConfig): HttpErrorHandlerConfig {\n return Object.assign({}, appConfig && appConfig.httpErrorHandler);\n}\n\nexport function getRootLogConfig(appConfig: EuiAppConfig): LogConfig {\n return Object.assign({}, appConfig && appConfig.log);\n}\n\nexport function prepareEuiAppConfigToken(euiConfig: EuiConfig): EuiAppConfig {\n const environment = euiConfig && euiConfig.environment;\n const merge: Array<string> =\n environment.envDynamicConfig && environment.envDynamicConfig.merge && Array.isArray(environment.envDynamicConfig.merge)\n ? environment.envDynamicConfig.merge\n : [];\n const isDeepMerge: boolean =\n environment.envDynamicConfig && environment.envDynamicConfig.deepMerge ? environment.envDynamicConfig.deepMerge : false;\n const envAppJsonConfig: EuiAppJsonConfig = environment && environment.loadedEnvDynamicConfig;\n const initialAppConfig = euiConfig && euiConfig.appConfig;\n const envAppHandlersConfig: EuiAppHandlersConfig = environment && environment.envAppHandlersConfig;\n\n const envHandlersMergedAppConfig = mergeAppHandlerConfigToAppConfig(initialAppConfig, envAppHandlersConfig);\n const finalConfig = mergeAppJsonConfigToAppConfig(envHandlersMergedAppConfig, envAppJsonConfig, merge, isDeepMerge);\n return finalConfig;\n}\n\nexport function mergeAppHandlerConfigToAppConfig(euiAppConfig: EuiAppConfig, envAppHandler: EuiAppHandlersConfig): EuiAppConfig {\n return Object.assign({}, euiAppConfig, envAppHandler);\n}\n\nexport function mergeAppJsonConfigToAppConfig(\n euiAppConfig: EuiAppConfig,\n envAppJsonConfig: EuiAppJsonConfig,\n merge: Array<string>,\n isDeepMerge: boolean,\n): EuiAppConfig {\n const deepMerged = {};\n if (merge && merge.length > 0) {\n merge.forEach((key) => {\n if (\n envAppJsonConfig != null &&\n envAppJsonConfig[key] &&\n typeof envAppJsonConfig[key] === 'object' &&\n euiAppConfig != null &&\n euiAppConfig[key] &&\n typeof euiAppConfig[key] === 'object'\n ) {\n if (isDeepMerge) {\n deepMerged[key] = {};\n extend(true, deepMerged[key], euiAppConfig[key], envAppJsonConfig[key]);\n } else {\n envAppJsonConfig[key] = {\n ...euiAppConfig[key],\n ...envAppJsonConfig[key],\n };\n }\n }\n });\n }\n return Object.assign({}, euiAppConfig, envAppJsonConfig, deepMerged);\n}\n","import { ActivatedRoute } from '@angular/router';\nimport { Action } from '@ngrx/store';\nimport { ModuleConfig, ApiQueueItem } from '@eui/base';\n\nexport enum CoreAppActionTypes {\n INIT_STORE = '[App] Init store',\n UPDATE_APP_VERSION = '[App] Update version',\n UPDATE_APP_CONNECTION = '[App] Update connection',\n ADD_APP_LOADED_CONFIG_MODULES = '[App] Update app loaded config modules',\n UPDATE_APP_STATUS = '[App] Update status',\n UPDATE_CURRENT_MODULE = '[App] Update current module',\n ACTIVATED_ROUTE = '[App] Activated route',\n ADD_API_QUEUE_ITEM = '[App] Add API queue item',\n REMOVE_API_QUEUE_ITEM = '[App] Remove API queue item',\n EMPTY_API_QUEUE = '[App] empty API queue',\n}\n\nexport class InitStoreAction implements Action {\n type = CoreAppActionTypes.INIT_STORE;\n\n constructor(public payload: { version?: string }) {}\n}\n\nexport class UpdateAppVersionAction implements Action {\n type = CoreAppActionTypes.UPDATE_APP_VERSION;\n\n constructor(public payload: string) {}\n}\n\nexport class UpdateAppConnectionAction implements Action {\n type = CoreAppActionTypes.UPDATE_APP_CONNECTION;\n\n constructor(public payload: boolean) {}\n}\n\nexport class AddAppLoadedConfigModulesAction implements Action {\n type = CoreAppActionTypes.ADD_APP_LOADED_CONFIG_MODULES;\n\n constructor(public payload: { moduleName: string; moduleConfig: ModuleConfig }) {}\n}\n\nexport class UpdateAppStatusAction implements Action {\n type = CoreAppActionTypes.UPDATE_APP_STATUS;\n\n constructor(public payload: string) {}\n}\n\nexport class UpdateCurrentModuleAction implements Action {\n type = CoreAppActionTypes.UPDATE_CURRENT_MODULE;\n\n constructor(public payload: string) {}\n}\n\nexport class ActivatedRouteAction implements Action {\n type = CoreAppActionTypes.ACTIVATED_ROUTE;\n\n constructor(public payload: ActivatedRoute) {}\n}\n\nexport class AddApiQueueItemAction implements Action {\n type = CoreAppActionTypes.ADD_API_QUEUE_ITEM;\n\n constructor(public payload: { id: string; item: ApiQueueItem }) {}\n}\n\nexport class RemoveApiQueueItemAction implements Action {\n type = CoreAppActionTypes.REMOVE_API_QUEUE_ITEM;\n\n constructor(public payload: string) {}\n}\n\nexport class EmptyApiQueueAction implements Action {\n type = CoreAppActionTypes.EMPTY_API_QUEUE;\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(public payload: any) {}\n}\n\nexport type CoreAppActions =\n | InitStoreAction\n | UpdateAppVersionAction\n | UpdateAppConnectionAction\n | AddAppLoadedConfigModulesAction\n | UpdateAppStatusAction\n | UpdateCurrentModuleAction\n | ActivatedRouteAction\n | AddApiQueueItemAction\n | RemoveApiQueueItemAction;\n","import { Action } from '@ngrx/store';\nimport { I18nState } from '@eui/base';\n\nexport enum CoreI18nActionTypes {\n UPDATE_I18N_STATE = '[I18n] Update I18n State',\n}\n\nexport class UpdateI18nStateAction implements Action {\n type = CoreI18nActionTypes.UPDATE_I18N_STATE;\n constructor(public payload: I18nState) {}\n}\n\nexport type CoreI18nActions = UpdateI18nStateAction;\n","import { Action } from '@ngrx/store';\nimport { UserState, UserDetails, UserPreferences, EuiUserRight } from '@eui/base';\n\nexport enum CoreUserActionTypes {\n UPDATE_USER_STATE = '[User] Update User state',\n UPDATE_USER_DETAILS = '[User] Update details',\n UPDATE_USER_PREFERENCES = '[User] Update preferences',\n UPDATE_USER_RIGHTS = '[User] Update rights',\n UPDATE_USER_DASHBOARD = '[User] Update dashboard',\n}\n\nexport class UpdateUserStateAction implements Action {\n type = CoreUserActionTypes.UPDATE_USER_STATE;\n\n constructor(public payload: UserState) {}\n}\n\nexport class UpdateUserDetailsAction implements Action {\n type = CoreUserActionTypes.UPDATE_USER_DETAILS;\n\n constructor(public payload: UserDetails) {}\n}\n\nexport class UpdateUserPreferencesAction implements Action {\n type = CoreUserActionTypes.UPDATE_USER_PREFERENCES;\n\n constructor(public payload: UserPreferences) {}\n}\n\nexport class UpdateUserRightsAction implements Action {\n type = CoreUserActionTypes.UPDATE_USER_RIGHTS;\n\n constructor(public payload: EuiUserRight[]) {}\n}\n\nexport class UpdateUserDashboardAction implements Action {\n type = CoreUserActionTypes.UPDATE_USER_DASHBOARD;\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(public payload: any) {}\n}\n\nexport type CoreUserActions = UpdateUserDetailsAction | UpdateUserPreferencesAction | UpdateUserRightsAction | UpdateUserDashboardAction;\n","import { Action } from '@ngrx/store';\n\nexport enum CoreNotificationsActionTypes {\n UPDATE_NOTIFICATIONS_LIST = '[Notif] Update list',\n}\n\nexport class UpdateNotificationsListAction implements Action {\n type = CoreNotificationsActionTypes.UPDATE_NOTIFICATIONS_LIST;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(public payload: any[]) {}\n}\n\nexport type CoreNotificationsActions = UpdateNotificationsListAction;\n","import { Action } from '@ngrx/store';\nimport { LocaleState } from '@eui/base';\n\nexport enum CoreLocaleActionTypes {\n UPDATE_LOCALE_STATE = '[Locale] Update Locale State',\n}\n\nexport class UpdateLocaleStateAction implements Action {\n type = CoreLocaleActionTypes.UPDATE_LOCALE_STATE;\n constructor(public payload: LocaleState) {}\n}\n\nexport type CoreLocaleActions = UpdateLocaleStateAction;\n","import { Injectable } from '@angular/core';\nimport { EuiGrowlMessage } from '@eui/base';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EuiGrowlService {\n growlMessages = [];\n isGrowlSticky = false;\n isCloseAllSticky = false;\n growlLife = 3000;\n growlPosition = 'bottom-right';\n growlCallback = null;\n\n /**\n * displays a growl UxMessage item, isSticky\n */\n growl(msg: EuiGrowlMessage, isSticky?: boolean, isMultiple?: boolean, life?: number, position?: string, callback?: () => void): void {\n if (msg.severity !== 'info' && msg.severity !== 'warning' && msg.severity !== 'success' && msg.severity !== 'danger') {\n throw new Error('EuiGrowlService.growl() ERROR : message severity must be either : success, warning, info, danger');\n } else {\n if (isMultiple === undefined || !isMultiple) {\n this.growlMessages = [];\n }\n this.growlMessages = this.growlMessages.concat(msg);\n msg.life = life || msg.life;\n msg.sticky = isSticky || msg.sticky;\n\n if (life === undefined || isNaN(life)) {\n if (msg.severity === 'danger') {\n isSticky = true;\n } else {\n this.growlLife = 3000;\n }\n } else {\n this.growlLife = life;\n }\n\n if (isSticky) {\n this.isGrowlSticky = isSticky;\n } else {\n this.isGrowlSticky = false;\n }\n\n if (position) {\n this.growlPosition = position;\n }\n\n if (callback) {\n this.growlCallback = callback;\n } else {\n this.growlCallback = (): void => {/** empty */};\n }\n }\n }\n\n clearGrowl(): void {\n this.growlMessages = [];\n }\n\n growlSuccess(msg: string, position?: string): void {\n this.growl({ severity: 'success', summary: 'SUCCESS', detail: msg }, false, false, undefined, position);\n }\n\n growlError(msg: string, position?: string): void {\n this.growl({ severity: 'danger', summary: 'ERROR', detail: msg }, false, false, undefined, position);\n }\n\n // date helpers\n\n growlWarning(msg: string, position?: string): void {\n this.growl({ severity: 'warning', summary: 'WARNING', detail: msg }, false, false, undefined, position);\n }\n\n growlInfo(msg: string, position?: string): void {\n this.growl({ severity: 'info', summary: 'INFO', detail: msg }, false, false, undefined, position);\n }\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Action } from '@ngrx/store';\nimport { Actions, ofType, createEffect } from '@ngrx/effects';\nimport { Observable, fromEvent, merge } from 'rxjs';\nimport { map, mapTo, mergeMap, tap } from 'rxjs/operators';\n\nimport { CoreAppActionTypes, ActivatedRouteAction, UpdateCurrentModuleAction, UpdateAppConnectionAction } from '../actions/app.actions';\n\nimport { EuiGrowlService } from '../../growl/eui-growl.service';\nimport { SHOW_CONNECTION_STATUS_TOKEN } from '../../config/tokens';\nimport { ConnectionStatus } from '@eui/base';\n\n@Injectable()\nexport class CoreAppEffects {\n getAppConnectionInformation: Observable<Action> = createEffect(() =>\n merge(fromEvent(window, 'online').pipe(mapTo(true)), fromEvent(window, 'offline').pipe(mapTo(false))).pipe(\n map((connected) => new UpdateAppConnectionAction(connected)),\n ),\n );\n\n activatedRoute: Observable<Action> = createEffect(() =>\n this.actions.pipe(\n ofType(CoreAppActionTypes.ACTIVATED_ROUTE),\n map((action: ActivatedRouteAction) => action.payload),\n mergeMap((route) => {\n // extract the module name, if defined\n const module = route.snapshot.data['module'] || 'undefined';\n return [new UpdateCurrentModuleAction(module)];\n }),\n ),\n );\n\n updateAppConnection = createEffect(\n () =>\n this.actions.pipe(\n ofType(CoreAppActionTypes.UPDATE_APP_CONNECTION),\n map((action: UpdateAppConnectionAction) => action.payload),\n tap((connected) => {\n // TODO: for eUI 14, drop boolean support and refactor\n // check if feature is enabled\n const isFeatureEnabled =\n typeof this.showConnectionStatus !== 'boolean' ? this.showConnectionStatus?.enabled : this.showConnectionStatus;\n // extract lifespan if any\n const lifespan =\n typeof this.showConnectionStatus !== 'boolean' ? this.showConnectionStatus?.messageBox?.lifespan || 0 : 0;\n\n // if the user needs to be informed about the connection status\n if (isFeatureEnabled) {\n if (connected) {\n this.translateService.get('eui.CONNECTED').subscribe((translation) => {\n this.asService.growl(\n { severity: 'success', summary: 'MESSAGE', detail: translation, life: lifespan },\n lifespan < 1,\n false,\n );\n });\n } else {\n this.translateService.get('eui.NOTCONNECTED').subscribe((translation) => {\n this.asService.growl(\n { severity: 'danger', summary: 'ERROR', detail: translation, life: lifespan },\n lifespan < 1,\n false,\n );\n });\n }\n }\n }),\n ),\n { dispatch: false },\n );\n\n constructor(\n protected actions: Actions,\n // TODO: remove on eUI 14\n @Inject(SHOW_CONNECTION_STATUS_TOKEN) protected showConnectionStatus: boolean | ConnectionStatus,\n protected translateService: TranslateService,\n protected asService: EuiGrowlService,\n ) {}\n}\n","export * from './app.effects';\n\nimport { CoreAppEffects } from './app.effects';\n\nexport const CoreModuleEffects = [CoreAppEffects];\n","import { Action } from '@ngrx/store';\nimport {\n CoreAppActionTypes,\n CoreAppActions,\n UpdateAppVersionAction,\n UpdateAppConnectionAction,\n AddAppLoadedConfigModulesAction,\n UpdateAppStatusAction,\n UpdateCurrentModuleAction,\n AddApiQueueItemAction,\n RemoveApiQueueItemAction,\n EmptyApiQueueAction,\n} from '../actions';\nimport { AppState, initialAppState } from '@eui/base';\n\nconst updateAppVersion = (state: AppState, action: UpdateAppVersionAction): AppState => ({ ...state, version: action.payload });\n\nconst updateAppConnection = (state: AppState, action: UpdateAppConnectionAction): AppState => ({ ...state, connected: action.payload });\n\nconst AddAppLoadedConfigModules = (state: AppState, action: AddAppLoadedConfigModulesAction): AppState => ({\n ...state,\n loadedConfigModules: {\n lastAddedModule: action.payload.moduleName,\n modulesConfig: {\n ...state.loadedConfigModules.modulesConfig,\n [action.payload.moduleName]: {\n ...action.payload.moduleConfig,\n },\n },\n },\n});\n\nconst updateAppStatus = (state: AppState, action: UpdateAppStatusAction): AppState => ({ ...state, status: action.payload });\n\nconst updateCurrentModule = (state: AppState, action: UpdateCurrentModuleAction): AppState =>\n Object.assign({}, state, { currentModule: action.payload });\n\nconst addApiQueueItem = (state: AppState, action: AddApiQueueItemAction): AppState => {\n // apply the timestamp to the queue item\n const apiQueueItem = Object.assign({}, action.payload.item, { timestamp: new Date().getTime() });\n // update the queue\n const apiQueue = Object.assign({}, state.apiQueue, { [action.payload.id]: apiQueueItem });\n return Object.assign({}, state, { apiQueue });\n};\n\nconst removeApiQueueItem = (state: AppState, action: RemoveApiQueueItemAction): AppState => {\n // remove the specified id from the list of item ids and recreate the apiQueue from the remaining ids\n const apiQueue = Object.keys(state.apiQueue)\n .filter((id) => id !== action.payload)\n .reduce((queue, key) => {\n queue[key] = state.apiQueue[key];\n return queue;\n }, {});\n return Object.assign({}, state, { apiQueue });\n};\n\nconst emptyApiQueue = (state: AppState, action: EmptyApiQueueAction): AppState =>\n // remove all items in the Api Queue\n Object.assign({}, state, { apiQueue: {} });\nconst actionToReducerMap: { [key: string]: (state: AppState, action: CoreAppActions) => AppState } = {\n [CoreAppActionTypes.UPDATE_APP_VERSION]: updateAppVersion,\n [CoreAppActionTypes.UPDATE_APP_CONNECTION]: updateAppConnection,\n [CoreAppActionTypes.ADD_APP_LOADED_CONFIG_MODULES]: AddAppLoadedConfigModules,\n [CoreAppActionTypes.UPDATE_APP_STATUS]: updateAppStatus,\n [CoreAppActionTypes.UPDATE_CURRENT_MODULE]: updateCurrentModule,\n [CoreAppActionTypes.ADD_API_QUEUE_ITEM]: addApiQueueItem,\n [CoreAppActionTypes.REMOVE_API_QUEUE_ITEM]: removeApiQueueItem,\n [CoreAppActionTypes.EMPTY_API_QUEUE]: emptyApiQueue,\n};\n\nexport const coreAppReducers: (state: AppState, action: Action) => AppState = (state = initialAppState, action: CoreAppActions) => {\n if (actionToReducerMap[action.type]) {\n return actionToReducerMap[action.type](state, action);\n }\n // if the action type is not in the map, call the base reducers method\n return state;\n};\n","import { Action } from '@ngrx/store';\nimport {\n CoreUserActionTypes,\n CoreUserActions,\n UpdateUserDashboardAction,\n UpdateUserStateAction,\n UpdateUserDetailsAction,\n UpdateUserPreferencesAction,\n UpdateUserRightsAction,\n} from '../actions';\nimport { UserState, initialUserState, UserPreferences } from '@eui/base';\n\nconst updateUser = (state: UserState, action: UpdateUserStateAction): UserState => {\n let fullName = action.payload.fullName;\n if (!fullName) {\n fullName = `${action.payload.firstName || ''} ${action.payload.lastName || ''}`.trim();\n }\n return Object.assign({}, state, action.payload, { fullName });\n};\n\nconst updateUserDetails = (state: UserState, action: UpdateUserDetailsAction): UserState => {\n let fullName = action.payload.fullName;\n if (!fullName) {\n fullName = `${action.payload.firstName || ''} ${action.payload.lastName || ''}`.trim();\n }\n // todo should be checked if state.details is really there\n const details = Object.assign({}, state.details, action.payload, { fullName });\n return Object.assign({}, state, details);\n};\n\nconst updateUserPreferences = (state: UserState, action: UpdateUserPreferencesAction): UserState => {\n const preferences = Object.assign({}, state.preferences, action.payload);\n return Object.assign({}, state, { preferences });\n};\n\nconst updateUserRights = (state: UserState, action: UpdateUserRightsAction): UserState =>\n Object.assign({}, state, { rights: [...action.payload] });\n\nconst updateUserDashboard = (state: UserState, action: UpdateUserDashboardAction): UserState & { preferences: UserPreferences } => {\n // apply the dashboard to preferences\n const preferences = Object.assign({}, state.preferences, { dashboard: action.payload });\n // update the state\n return { ...state, preferences };\n};\n\nconst actionToReducerMap: { [key: string]: (state: UserState, action: CoreUserActions) => UserState } = {\n [CoreUserActionTypes.UPDATE_USER_DETAILS]: updateUserDetails,\n [CoreUserActionTypes.UPDATE_USER_PREFERENCES]: updateUserPreferences,\n [CoreUserActionTypes.UPDATE_USER_STATE]: updateUser,\n [CoreUserActionTypes.UPDATE_USER_RIGHTS]: updateUserRights,\n [CoreUserActionTypes.UPDATE_USER_DASHBOARD]: updateUserDashboard,\n};\n\nexport const coreUserReducers: (state: UserState, action: Action) => UserState = (state = initialUserState, action: CoreUserActions) => {\n if (actionToReducerMap[action.type]) {\n return actionToReducerMap[action.type](state, action);\n }\n return state;\n};\n","import { Action } from '@ngrx/store';\nimport { NotificationsState, initialNotificationsState } from '@eui/base';\nimport { CoreNotificationsActionTypes, CoreNotificationsActions, UpdateNotificationsListAction } from '../actions';\n\nconst updateNotificationsList = (state: NotificationsState, action: UpdateNotificationsListAction): NotificationsState =>\n Object.assign({}, state, { list: [...action.payload] });\n\nconst actionToReducerMap: { [key: string]: (state: NotificationsState, action: CoreNotificationsActions) => NotificationsState } = {\n [CoreNotificationsActionTypes.UPDATE_NOTIFICATIONS_LIST]: updateNotificationsList,\n};\n\nexport const coreNotificationsReducers: (state: NotificationsState, action: Action) => NotificationsState = (\n state = initialNotificationsState,\n action: CoreNotificationsActions,\n) => {\n if (actionToReducerMap[action.type]) {\n return actionToReducerMap[action.type](state, action);\n }\n return state;\n};\n","import { Action } from '@ngrx/store';\nimport { I18nState, initialI18nState } from '@eui/base';\nimport { CoreI18nActionTypes, CoreI18nActions, UpdateI18nStateAction } from '../actions';\n\nconst updateI18nState = (state: I18nState, action: UpdateI18nStateAction): {activeLang: string} => ({\n ...state,\n ...action.payload,\n});\n\nconst actionToReducerMap: { [key: string]: (state: I18nState, action: CoreI18nActions) => I18nState } = {\n [CoreI18nActionTypes.UPDATE_I18N_STATE]: updateI18nState,\n};\n\nexport const corI18nReducers: (state: I18nState, action: Action) => I18nState = (state = initialI18nState, action: CoreI18nActions) => {\n if (actionToReducerMap[action.type]) {\n return actionToReducerMap[action.type](state, action);\n }\n return state;\n};\n","import { Action } from '@ngrx/store';\nimport { LocaleState, initialLocaleState } from '@eui/base';\nimport { CoreLocaleActionTypes, CoreLocaleActions, UpdateLocaleStateAction } from '../actions/locale.actions';\n\nconst updateLocaleState = (state: LocaleState, action: UpdateLocaleStateAction): LocaleState => ({\n ...state,\n ...action.payload,\n});\n\nconst actionToReducerMap: { [key: string]: (state: LocaleState, action: CoreLocaleActions) => LocaleState } = {\n [CoreLocaleActionTypes.UPDATE_LOCALE_STATE]: updateLocaleState,\n};\n\nexport const coreLocaleReducers: (state: LocaleState, action: Action) => LocaleState = (\n state = initialLocaleState,\n action: CoreLocaleActions,\n) => {\n if (actionToReducerMap[action.type]) {\n return actionToReducerMap[action.type](state, action);\n }\n return state;\n};\n","import { ActionReducerMap } from '@ngrx/store';\nimport { CoreState } from '@eui/base';\nimport { coreAppReducers } from './app.reducers';\nimport { coreUserReducers } from './user.reducers';\nimport { coreNotificationsReducers } from './notifications.reducers';\nimport { corI18nReducers } from './i18n.reducers';\nimport { coreLocaleReducers } from './locale.reducers';\n\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const coreReducers: ActionReducerMap<CoreState, any> = Object.assign(\n {},\n {\n app: coreAppReducers,\n user: coreUserReducers,\n notifications: coreNotificationsReducers,\n i18n: corI18nReducers,\n locale: coreLocaleReducers,\n },\n);\n","import { Action, ActionReducer } from '@ngrx/store';\nimport { CoreAppActionTypes, InitStoreAction } from '../actions/app.actions';\nimport { AppState, CoreState } from '@eui/base';\nimport * as extendProxy from 'extend';\n\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst extend = (<any>extendProxy).default || extendProxy;\n\n/**\n * Utility meta-reducer to load the state from the local storage\n * @param reducer the action reducer\n */\nexport function localStorageSync<S extends CoreState>(reducer: ActionReducer<S>): (state: S, action: Action) => S {\n return cb<S>(reducer, localStorage);\n}\n\n/**\n * Utility meta-reducer to load the state from the session storage\n * @param reducer the action reducer\n */\nexport function sessionStorageSync<S extends CoreState>(reducer: ActionReducer<S>): (state: S, action: Action) => S {\n return cb<S>(reducer, sessionStorage);\n}\n\n// Keys that are allowed to be synced with NgRx state from BrowserStorage\nconst disallowedKeys = ['loadedConfigModules', 'connect', 'currentModule', 'status', 'apiQueue'];\n\n/**\n * filters the AppState by removing those keys from the state and return a new state Object\n * @param app the AppState\n */\nconst filterAppState = (app: AppState): AppState => {\n // in case app is undefined or null it should return empty object\n if (!app) {\n return {};\n }\n\n return (\n Object.keys(app)\n // select keys that are present in the allowed list\n .filter((key) => !disallowedKeys.includes(key))\n // build a new object with only the allowed properties\n .reduce((obj, key) => {\n obj[key] = app[key];\n return obj;\n }, {})\n );\n};\n\n/**\n *\n * @param storage Type of storage to load the state from\n */\nexport const loadState = <S extends CoreState>(storage: Storage = localStorage): S => {\n try {\n // by default falls back to localStorage\n const serializedState = storage.getItem('state');\n\n if (serializedState === null) {\n return undefined;\n }\n\n // deserialize state\n let state: S = JSON.parse(serializedState);\n\n // filter AppState and replace\n state = { ...state, app: filterAppState(state?.app) };\n\n return state;\n } catch (err) {\n return undefined;\n }\n};\n\nconst cb =\n <S extends CoreState>(reducer: ActionReducer<S>, storage: Storage) =>\n (state: S, action: Action): S => {\n if (action.type === CoreAppActionTypes.INIT_STORE) {\n // This action must be dispatched from an app initializer\n // We load the state from a storage and compare the version and userId with the provided ones.\n // If they are the same, we merge the local state into the initial state.\n // If there is a mismatch, we don't merge the local state, but update only the initial state.\n\n // load the state from the localStorage\n const localState: S = loadState<S>(storage);\n\n // extract the details about user and app version from the action payload\n const payload = (action as InitStoreAction).payload;\n const payloadVersion = payload?.version;\n\n if (localState) {\n // TODO: Why all these checks here? What is the purpose of this code?\n // extract the details about user and app version from the storage state\n const localVersion = localState?.app?.version;\n // const localUserId = localState.user && localState.user.userId;\n\n const isVersionOK = !localVersion || !payloadVersion || localVersion === payloadVersion;\n // const isUserIdOK = (localUserId === payloadUserId);\n\n // update the entire state with deep merge of states, if the version and user are the same\n if (isVersionOK) {\n state = extend(true, {}, state, localState);\n }\n }\n\n // update the app version, if defined\n if (payloadVersion) {\n state = { ...state, app: { ...state?.app, version: payloadVersion } };\n }\n }\n\n return reducer(state, action);\n };\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { LogAppender, Logger, LogLevel } from '@eui/base';\n\nexport const BASE_LOGGER_NAME_TOKEN = new InjectionToken<string>('BASE_LOGGER_NAME');\nexport const LOG_LEVEL_TOKEN = new InjectionToken<LogLevel>('LOG_LEVEL');\nexport const LOG_APPENDERS_TOKEN = new InjectionToken<LogAppender[]>('LOG_APPENDERS');\n\n/**\n * Log service, responsible for getting or creating loggers. It itself acts as a base logger\n */\n@Injectable()\nexport class LogService extends Logger {\n /** the list of persistent loggers */\n protected loggers = {};\n\n constructor(\n @Inject(BASE_LOGGER_NAME_TOKEN) protected name: string,\n @Inject(LOG_LEVEL_TOKEN) protected level: LogLevel,\n @Inject(LOG_APPENDERS_TOKEN) protected appenders: LogAppender[],\n ) {\n super(name, level, appenders);\n }\n\n /**\n * Gets a logger by name. If the logger does not exist, it is created\n *\n * @param loggerName logger name\n * @param persist optional parameter. Set it to true if you want to reuse the logger. By default, it is set to false\n * @returns the logger\n */\n getLogger(loggerName: string, persist = false): Logger {\n // create the logger, if necessary\n const logger = (persist && <Logger>this.loggers[loggerName]) || new Logger(loggerName, this.level, this.appenders);\n\n // if the logger is persistent, add it to the list of persistent loggers\n if (persist) {\n this.loggers[loggerName] = logger;\n }\n\n return logger;\n }\n}\n","import { LoggerMock } from '@eui/base';\n\nexport class LogServiceMock extends LoggerMock {\n getLogger(): LoggerMock {\n return new LoggerMock();\n }\n}\n","import { Injector } from '@angular/core';\nimport { LogAppender, LogConfig } from '@eui/base';\nimport { DEFAULT_LOG_CONFIG } from '../../config/defaults';\nimport { LogService } from '../../log/log.service';\n\nconst LOG_INSTANCES = {};\n\n/**\n * Helper function to check if the log config is defined.\n * Does not check only for empty object, because the config can have other (non-log) parameters\n * @params config log configuration\n * @returns true/false\n */\nexport function isLogConfigDefined(config: LogConfig): boolean {\n return config && ('baseLoggerName' in config || 'logLevel' in config || 'logAppenders' in config);\n}\n\n/**\n * Helper function to provide a list of log appenders from a log configuration\n *\n * @params config log configuration\n * @returns an array of log appenders\n */\nexport function getLogAppendersConfig(config: LogConfig = DEFAULT_LOG_CONFIG, injector: Injector = null): LogAppender[] {\n config = Object.assign({}, DEFAULT_LOG_CONFIG, config);\n config.logAppenders = config.logAppenders || [];\n config.logAppenders = Array.isArray(config.logAppenders) ? config.logAppenders : [config.logAppenders];\n return config.logAppenders.map((logAppender) => {\n const appenderType = typeof logAppender === 'object' ? logAppender.type : logAppender;\n const appenderParams = typeof logAppender === 'object' ? logAppender : undefined;\n return new appenderType(appenderParams, injector);\n });\n}\n\n/**\n * Helper function to provide an instance of LogService from a configuration\n *\n * @params config log configuration\n * @returns an instance of log service\n */\nexport function logServiceFactory(config: LogConfig = DEFAULT_LOG_CONFIG, injector: Injector = null): LogService {\n // add the default values to config\n config = Object.assign({}, DEFAULT_LOG_CONFIG, config);\n // extract parameters from config\n const logLevel = config.logLevel;\n const logAppenders = getLogAppendersConfig(config, injector);\n // return an instance of LogService\n return new LogService(config.baseLoggerName, logLevel, logAppenders);\n}\n\nexport function euiLogServiceFactory(\n injector: Injector,\n rootBaseLoggerName: string,\n rootConfig: LogConfig,\n childBaseLoggerName: string = null,\n childConfig: LogConfig = {},\n): LogService {\n // determine if the configuration is for non-root modules\n const forChild = isLogConfigDefined(childConfig);\n const baseLoggerName = forChild ? childBaseLoggerName : rootBaseLoggerName;\n // create the proper configuration\n const config = Object.assign({ baseLoggerName }, forChild ? Object.assign({}, rootConfig, childConfig) : rootConfig);\n\n // re-use the log service or create a new instance\n const logService = LOG_INSTANCES[baseLoggerName] || logServiceFactory(config, injector);\n LOG_INSTANCES[baseLoggerName] = logService;\n return logService;\n}\n","import { InjectionToken, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { LogConfig } from '@eui/base';\n\nimport { LogService } from './log.service';\nimport { DEFAULT_LOG_CONFIG } from '../config/defaults';\nimport { logServiceFactory } from '../app/factories/log';\n\nconst LOG_MODULE_CONFIG_TOKEN = new InjectionToken<LogConfig>('LOG_CONFIG');\n\n/**\n * Log Module\n */\n@NgModule()\nexport class LogModule {\n /** method called in your root module to provide the LogService */\n static forRoot(config: LogConfig = DEFAULT_LOG_CONFIG): ModuleWithProviders<LogModule> {\n return {\n ngModule: LogModule,\n providers: [\n { provide: LOG_MODULE_CONFIG_TOKEN, useValue: config },\n { provide: LogService, useFactory: logServiceFactory, deps: [LOG_MODULE_CONFIG_TOKEN, Injector] },\n ],\n };\n }\n\n /** method called in your other (non root, lazy loaded) modules to import a different instance of LogService */\n static forChild(config: LogConfig = DEFAULT_LOG_CONFIG): ModuleWithProviders<LogModule> {\n return {\n ngModule: LogModule,\n providers: [\n { provide: LOG_MODULE_CONFIG_TOKEN, useValue: config },\n { provide: LogService, useFactory: logServiceFactory, deps: [LOG_MODULE_CONFIG_TOKEN, Injector] },\n ],\n };\n }\n}\n","import { Injectable, Optional } from '@angular/core';\nimport { Action, ActionReducer, Store } from '@ngrx/store';\nimport { Observable, throwError } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\n\nimport { LogService } from '../log';\nimport { InitStoreAction } from './actions';\nimport { CoreState } from '@eui/base';\n\nexport enum BrowserStorageType {\n local,\n session,\n}\n\n// todo should stay here but all the store directory should be moved upper level\n@Injectable({\n providedIn: 'root',\n})\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class StoreService<T = any> {\n /**\n * autoSave handlers to call before saving in local Storage\n */\n protected _autoSaveHandlers: { [key: string]: Function } = {};\n /** storage instance e.g. localStorage, sessionStorage */\n private _storage: Storage = localStorage;\n\n constructor(\n @Optional() protected store: Store<T>,\n @Optional() protected logService: LogService,\n ) {}\n\n // use init with just version info, to update to user state, UserService.updateState\n // initializeStore(version?: string, userDetails?: BaseUserDetails) {\n // this.dispatch(new InitStoreAction({ version, userDetails }));\n // }\n init(version?: string, storageType?: BrowserStorageType): void {\n this.dispatch(new InitStoreAction({ version }));\n\n this._storage = storageType === BrowserStorageType.session ? sessionStorage : localStorage;\n }\n\n addAutoSaveHandler(stateSlice: string, handler: Function): void {\n if (!this.store) {\n if (this.logService) {\n this.logService.warn('StoreService.addAutoSaveHandler() not available without NGRX');\n }\n return;\n }\n this._autoSaveHandlers[stateSlice] = handler;\n }\n\n handleAutoSave(): void {\n if (!this.store) {\n return;\n }\n\n this.store.pipe(debounceTime(1000), distinctUntilChanged()).subscribe((state) => {\n this.saveState(state);\n });\n }\n\n /**\n * Proxy to NGRX store.dispatch()\n * that allows to intercept if the store is present\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dispatch(action: any): void {\n if (this.store) {\n return this.store.dispatch(action);\n }\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dispatchAction(state: T, actionKey: string, reducer: ActionReducer<any, Action>): void {\n if (this.store) {\n this.store.addReducer(actionKey, reducer);\n return this.store.dispatch({ type: actionKey, payload: state });\n }\n }\n\n /**\n * Proxy to NGRX store.select()\n * that allows to intercept if the store is present\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n select(key: any): Observable<T[any]> {\n if (!this.store) {\n return throwError(() => new Error('NGRX Store not configured'));\n }\n return this.store.select(key);\n }\n\n /**\n * filters and save the state with the Browser storage\n * @param state type of CoreState\n */\n protected saveState(state: CoreState): void {\n let stateToSave: CoreState = {\n app: state.app,\n };\n\n if (state.user) {\n const { userId, preferences } = state.user;\n stateToSave.user = { userId, preferences };\n }\n\n Object.keys(this._autoSaveHandlers).forEach((sliceState: string) => {\n const handler = this._autoSaveHandlers[sliceState];\n stateToSave = Object.assign(stateToSave, { [sliceState]: handler(state[sliceState]) });\n });\n\n try {\n const serializedState = JSON.stringify(stateToSave);\n this._storage.setItem('state', serializedState);\n } catch (err) {\n // Ignore write errors.\n }\n }\n}\n","import { Observable, of } from 'rxjs';\nimport { StoreService } from './store.service';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class StoreServiceMock extends StoreService {\n constructor() {\n super(null, null);\n }\n\n init(): void {/* empty */}\n\n addAutoSaveHandler(): void {/* empty */}\n\n handleAutoSave(): void {/* empty */}\n\n dispatch(): void {/* empty */}\n\n select(): Observable<object> {\n return of({});\n }\n}\n","import { LOCATION_INITIALIZED } from '@angular/common';\nimport { Injector } from '@angular/core';\nimport { EuiAppConfig } from '@eui/base';\nimport { CONFIG_TOKEN } from '../config/tokens';\nimport { BrowserStorageType, StoreService } from '../store';\n\nexport const euiInitApp = (injector: Injector) => (): Promise<null> =>\n new Promise((resolve) => {\n const locationInitialized = injector.get(LOCATION_INITIALIZED, Promise.resolve(null));\n\n locationInitialized.then(() => {\n const appConfig: EuiAppConfig = injector.get(CONFIG_TOKEN);\n // necessary config parameters\n let appVersion: string;\n if (appConfig && appConfig.versions && appConfig.versions.app) {\n appVersion = appConfig.versions.app;\n } else {\n appVersion = '0.0.0';\n }\n let storageType: BrowserStorageType;\n if (appConfig && appConfig.saveStateStorage) {\n storageType = appConfig.saveStateStorage;\n } else {\n storageType = BrowserStorageType.local;\n }\n\n const storeService = injector.get(StoreService);\n storeService.init(appVersion, storageType);\n storeService.handleAutoSave();\n resolve(null);\n });\n });\n","import { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { APP_INITIALIZER, Injector, Provider } from '@angular/core';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport {\n BASE_NAME_TOKEN,\n EUI_CONFIG_TOKEN,\n MODULE_CONFIG_TOKEN,\n MODULE_NAME_TOKEN,\n GLOBAL_CONFIG_TOKEN,\n CONFIG_TOKEN,\n HTTP_ERROR_HANDLER_CONFIG_TOKEN,\n SHOW_CONNECTION_STATUS_TOKEN,\n ROOT_LOG_CONFIG_TOKEN,\n prepareEuiAppConfigToken,\n getGlobalConfig,\n getShowConnectionStatus,\n getModuleConfig,\n getHttpErrorHandlingConfig,\n getRootLogConfig,\n} from '../config/tokens';\nimport { euiLogServiceFactory } from './factories/log';\nimport { euiInitApp } from './eui-init-app';\nimport { LogService } from '../log/log.service';\n\nexport function getCoreProviders(): Provider[] {\n return [\n // core config\n ...getDependencyProviders(),\n { provide: BASE_NAME_TOKEN, useValue: 'eui-core' },\n // app config\n { provide: CONFIG_TOKEN, useFactory: prepareEuiAppConfigToken, deps: [EUI_CONFIG_TOKEN] },\n // global config\n { provide: GLOBAL_CONFIG_TOKEN, useFactory: getGlobalConfig, deps: [CONFIG_TOKEN] },\n { provide: ROOT_LOG_CONFIG_TOKEN, useFactory: getRootLogConfig, deps: [CONFIG_TOKEN] },\n { provide: SHOW_CONNECTION_STATUS_TOKEN, useFactory: getShowConnectionStatus, deps: [GLOBAL_CONFIG_TOKEN] },\n { provide: LogService, useFactory: euiLogServiceFactory, deps: [Injector, BASE_NAME_TOKEN, ROOT_LOG_CONFIG_TOKEN] },\n { provide: HTTP_ERROR_HANDLER_CONFIG_TOKEN, useFactory: getHttpErrorHandlingConfig, deps: [CONFIG_TOKEN] },\n { provide: APP_INITIALIZER, useFactory: euiInitApp, multi: true, deps: [Injector] },\n ];\n}\n\nexport function getDependencyProviders(): Provider[] {\n return [{ provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] }];\n}\n\nexport function getCoreChildProviders(moduleName: string): Provider[] {\n return [\n // module config\n { provide: MODULE_NAME_TOKEN, useValue: moduleName },\n { provide: MODULE_CONFIG_TOKEN, useFactory: getModuleConfig, deps: [CONFIG_TOKEN, MODULE_NAME_TOKEN] },\n // log config\n {\n provide: LogService,\n useFactory: euiLogServiceFactory,\n deps: [Injector, BASE_NAME_TOKEN, ROOT_LOG_CONFIG_TOKEN, MODULE_NAME_TOKEN, MODULE_CONFIG_TOKEN],\n },\n ];\n}\n","import { Injector, ModuleWithProviders, NgModule, Optional, SkipSelf, InjectionToken, Inject } from '@angular/core';\n\nimport { MODULE_CONFIG_TOKEN, MODULE_NAME_TOKEN } from './services/config/tokens';\nimport { StoreService, AddAppLoadedConfigModulesAction } from './services/store/index';\nimport { getCoreChildProviders, getCoreProviders } from './services/app/eui-startup';\n\nexport const CORE_ROOT_GUARD = new InjectionToken<void>('Internal Theme ForRoot Guard');\n\n@NgModule({\n imports: [\n // HttpClientModule, no more..\n ],\n})\nexport class CoreModule {\n /**\n * No more providing config from forRoot, you have to use EUI_CONFIG_TOKEN to pass config via providers.\n */\n static forRoot(): ModuleWithProviders<CoreModule> {\n return {\n ngModule: CoreModule,\n providers: [\n {\n provide: EuiCoreRootGuardClass,\n useFactory: euiCoreRootGuardClass,\n deps: [],\n },\n {\n provide: CORE_ROOT_GUARD,\n useFactory: createEuiCoreRootGuard,\n deps: [[EuiCoreRootGuardClass, new Optional(), new SkipSelf()]],\n },\n ...getCoreProviders(),\n ],\n };\n }\n\n static forChild(moduleName: string): ModuleWithProviders<CoreModule> {\n return {\n ngModule: CoreModule,\n providers: getCoreChildProviders(moduleName),\n };\n }\n\n constructor(@Optional() @Inject(CORE_ROOT_GUARD) guard: null, @Optional() @SkipSelf() parentModule: CoreModule, injector: Injector) {\n // if there is a parentModule, a new instance is created in a lazy loaded module\n if (parentModule) {\n // extract the i18n service and the i18n loader config\n // todo, this thing should be achieved by store, and localization service dependency should be removed\n const storeService = injector.get(StoreService);\n const moduleName = injector.get(MODULE_NAME_TOKEN);\n const moduleConfig = injector.get(MODULE_CONFIG_TOKEN);\n storeService.dispatch(new AddAppLoadedConfigModulesAction({ moduleName, moduleConfig }));\n }\n }\n}\n\nconst createEuiCoreRootGuard = (core): string => {\n if (core) {\n throw new TypeError('CoreModule.forRoot() called twice. Feature modules should use ThemeModule.forChild() instead.');\n }\n return 'guarded';\n};\n\nexport class EuiCoreRootGuardClass {\n constructor() { /* empty */ }\n}\n\nconst euiCoreRootGuardClass = (): EuiCoreRootGuardClass => new EuiCoreRootGuardClass();\n\nexport { createEuiCoreRootGuard, euiCoreRootGuardClass };\n","import { EnvDynamicConfig, EuiAppJsonConfig, EuiEnvConfig, xhr } from '@eui/base';\n\n/**\n * Function to be used before the AppModule is bootstrapped. It is currently used to load dynamic configurations.\n * It needs to be added in your application main.ts file.\n * @param envConfig the current environment configuration\n * @returns the updated environment configuration, as a promise\n */\nexport async function preInitApp(envConfig: EuiEnvConfig): Promise<EuiEnvConfig> {\n const envDynamicConfig: EnvDynamicConfig = envConfig && envConfig.envDynamicConfig;\n if (envDynamicConfig) {\n // load the local configuration file, if defined\n const euiAppJsonConfig: EuiAppJsonConfig = await loadEuiDynamicEnvironmentConfig(\n envDynamicConfig.uri,\n envDynamicConfig.configTimeout || 2000,\n );\n envConfig.loadedEnvDynamicConfig = euiAppJsonConfig;\n return envConfig;\n }\n return envConfig;\n}\n\n/**\n * Function to load asynchronously a dynamic configuration (from a local path or a web service)\n *\n * @param url the path to the configuration\n * @param timeout possible timeout\n * @returns EuiAppJsonConfig promise\n */\nexport async function loadEuiDynamicEnvironmentConfig(url: string, timeout?: number): Promise<EuiAppJsonConfig> {\n // if the url is specified\n if (url) {\n // fetch the config\n try {\n return await xhr<EuiAppJsonConfig>({\n url,\n timeout,\n });\n } catch (error) {\n // send a warning to the console\n console.warn('Dynamic configuration cannot be loaded from url', url, error);\n }\n }\n // the dynamic config is not loaded\n return null;\n}\n","export const errorCodes = {\n ERR_GENERIC: 'ERR_GENERIC',\n};\n\nconst messages = {\n ERR_GENERIC: 'An error occured',\n};\n\n// Intermediate \"hacky\" subclass taken from\n// https://www.bennadel.com/blog/3226-experimenting-with-error-sub-classing-using-es5-and-typescript-2-1-5.htm\n\nexport class ErrorSubClass {\n public code?: string;\n public message: string;\n public stack: string;\n public name: string;\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(code?: string, msg?: string, args?: any) {\n if (!msg && code && code in messages) {\n if (typeof messages[code] === 'function') {\n msg = messages[code](...args.messageParams);\n } else {\n msg = messages[code];\n }\n }\n\n this.name = 'ErrorSubClass';\n this.message = msg;\n this.code = code;\n this.stack = new Error(msg).stack;\n\n if (args) {\n Object.keys(args).forEach((k) => {\n if (k !== 'messageParams') {\n this[k] = args[k];\n }\n });\n }\n }\n}\n\n// This replaces the \"extends\" on the Class\n// ErrorSubClass.prototype = <any>Object.create(Error.prototype);\n\nexport class EuiError extends ErrorSubClass {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(code: string = errorCodes.ERR_GENERIC, msg?: string, args?: any) {\n super(code, msg, args);\n\n this.name = 'EuiError';\n }\n}\n","import { ErrorHandler, Injectable } from '@angular/core';\n\nimport { LogService } from '../log';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GlobalErrorHandler extends ErrorHandler {\n constructor(protected logService: LogService) {\n super();\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handleError(error: any): void {\n // log error\n this.logService.error(error.message || error.toString());\n\n // throw error;\n super.handleError(error);\n }\n}\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { HttpErrorHandlerConfig, HttpErrorRouteConfig } from '@eui/base';\nimport { HTTP_ERROR_HANDLER_CONFIG_TOKEN } from '../config/tokens';\nimport { DEFAULT_HTTP_ERROR_HANDLER_CONFIG } from '../config/defaults';\n\n@Injectable()\nexport class HttpErrorHandlerInterceptor implements HttpInterceptor {\n constructor(\n @Inject(HTTP_ERROR_HANDLER_CONFIG_TOKEN) protected config: HttpErrorHandlerConfig = DEFAULT_HTTP_ERROR_HANDLER_CONFIG,\n protected injector: Injector,\n protected router: Router,\n ) {}\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return next.handle(req).pipe(\n tap({\n next: () => { /* empty */ },\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error: (error: any) => {\n // in case of http error\n if (error instanceof HttpErrorResponse) {\n const routeConfig = this.getRouteConfig(error);\n const rule = routeConfig && (routeConfig[error.status] || routeConfig.default);\n\n if (typeof rule === 'string') {\n // perform a redirect\n this.router.navigate([rule]);\n } else if (typeof rule === 'function') {\n // callback function\n rule.call(null, error, this.injector);\n }\n }\n },\n }),\n );\n }\n\n /**\n * Search in the configuration for the first matching route\n *\n * @param error http error response\n * @returns HttpErrorRouteConfig or null\n */\n protected getRouteConfig(error: HttpErrorResponse): HttpErrorRouteConfig | null {\n // filter the routes\n const routes = this.config.routes.filter((route) => {\n const regex = new RegExp('^' + route.path.split('*').join('.*') + '$');\n return regex.test(error.url) && (typeof route[error.status] !== 'undefined' || typeof route.default !== 'undefined');\n });\n // return the first matching route, if any\n return routes.length > 0 ? routes[0] : null;\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injector } from '@angular/core';\nimport { LogService } from '../log';\nimport { EuiGrowlService } from '../growl/eui-growl.service';\n\nexport function AlertHttpErrorCallbackFn(error: HttpErrorResponse): void {\n alert(error.statusText);\n}\n\nexport function ConsoleHttpErrorCallbackFn(error: HttpErrorResponse): void {\n console.error('HttpError', error);\n}\n\nexport function LogHttpErrorCallbackFn(error: HttpErrorResponse, injector: Injector): void {\n const logService = injector.get(LogService);\n logService.error('HttpError', error);\n}\n\nexport function GrowlHttpErrorCallbackFn(error: HttpErrorResponse, injector: Injector): void {\n const asService = injector.get(EuiGrowlService);\n asService.growlError(error.statusText);\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, of, forkJoin } from 'rxjs';\nimport { tap, switchMap, take, map, catchError, concatMap } from 'rxjs/operators';\nimport { getApiQueue, getApiQueueItem, ApiQueue, ApiQueueItem } from '@eui/base';\n\nimport { LogService } from '../log';\nimport { StoreService, AddApiQueueItemAction, RemoveApiQueueItemAction, EmptyApiQueueAction } from '../store';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiQueueService {\n constructor(\n protected store: StoreService,\n protected http: HttpClient,\n protected logService: LogService,\n ) {}\n\n /**\n * Adds an item in the queue by dispatching an action to the store.\n * @param id - The id of the item inside the queue.\n * WARNING if matches any other queue item id will overwrite it.\n * @param item - an item for Queue\n */\n addQueueItem(id: string, item: ApiQueueItem): void {\n const allowedMethods = ['post', 'put', 'get'];\n\n if (allowedMethods.indexOf(item.method) < 0) {\n throw new Error(`[ApiQueue] method \"${item.method}\" is not allowed`);\n }\n\n this.store.dispatch(new AddApiQueueItemAction({ id, item }));\n }\n\n /**\n * Subscribes to the store to retrieve queue and then converts the queue object to an array of items.\n * @return An Observable of array of all items inside the current queue (ApiQueueItem[])\n */\n getQueue(): Observable<ApiQueueItem[]> {\n return this.store.select(getApiQueue).pipe(\n take(1),\n map((queue: ApiQueue) => {\n const queueArray = queue && Object.values<ApiQueueItem>(queue);\n if (!queueArray || queueArray.length < 1) {\n this.logService.warn('No items in the queue exist.');\n }\n\n return queueArray;\n }),\n );\n }\n\n /**\n * Subscribes to the store to retrieve an item from the queue.\n * @param id - id of the item inside the queue\n * @return An Observable of ApiQueueItem type\n */\n getQueueItem(id: string): Observable<ApiQueueItem> {\n return this.store.select(getApiQueueItem(id)).pipe(\n take(1),\n map((queue: ApiQueueItem) => {\n if (!queue) {\n this.logService.warn(`Queue item with id \"${id}\" does not exist`);\n return null;\n }\n return queue;\n }),\n );\n }\n\n /**\n * Removes a given item from the queue.\n * @param id - id of the item inside the queue\n */\n removeQueueItem(id: string): void {\n this.store.dispatch(new RemoveApiQueueItemAction(id));\n }\n\n /**\n * Removes all items placed in the queue.\n */\n removeAllQueueItem(): void {\n this.store.dispatch(new EmptyApiQueueAction(null));\n }\n\n /**\n * Process an item from the queue.\n * @param id - id of the item inside the queue\n * @return An Observable of type any\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n processQueueItem(id: string): Observable<any> {\n return this.store.select(getApiQueueItem(id)).pipe(\n take(1),\n switchMap((queue: ApiQueueItem) => {\n if (!queue) {\n this.logService.warn(`Queue item with id \"${id}\" does not exist`);\n return of(null);\n }\n\n return this.buildHttpRequest(id, queue);\n }),\n );\n }\n\n /**\n * Process all the items inside the queue.\n * @param [continueOnError=true] - in case of an item request fails continue with the rest in queue\n * @return An Observable with an array which contains all responses from all items in queue.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n processAllQueueItems(continueOnError = true): Observable<any[]> {\n return this.store.select(getApiQueue).pipe(\n map((queue: ApiQueue) =>\n Object.entries(queue).map(([key, value]) =>\n this.buildHttpRequest(key, value).pipe(\n catchError((error: Error) => {\n this.logService.error(`Queue Item with id ${key} failed.`, error.message, error.stack);\n\n if (!continueOnError) {\n throw error;\n }\n\n return of(error);\n }),\n ),\n ),\n ),\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n switchMap((obsQueue: Observable<any>[]) => forkJoin(Array.from(obsQueue))),\n );\n }\n\n /**\n * Process all items in queue after it order them based on their timestamp. Beware that order\n * matter in execution of Http Request in queue. When a request completes only then next will begin. Emission\n * or Http response follows order.\n * @param [ascending=true] - sets the order of queue items based on timestamp\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n processAllQueueItemsSequential(ascending = true): Observable<any> {\n return this.store.select(getApiQueue).pipe(\n concatMap((queue: ApiQueue) =>\n Object.entries(queue)\n .sort((a, b) => (ascending ? this.sortOnTimestamp(a, b) : this.sortOnTimestamp(b, a)))\n .map(([id, item]) => this.buildHttpRequest(id, item)),\n ),\n );\n }\n\n /**\n * Short dates ascending based on input\n * @param a - Date one\n * @param b - Date two\n *\n * @beta\n */\n protected sortOnTimestamp(a: [string, ApiQueueItem], b: [string, ApiQueueItem]): number {\n return +new Date(a[1].timestamp) - +new Date(b[1].timestamp);\n }\n\n /**\n * build and HttpRequest Observable based on the given queue.\n * After successful request completion removes the item from the queue.\n * @param id - id of the item inside the queue\n * @param item - the item of the queue that matches the id.\n * @return An Observable of HttpClient Request\n */\n // TODO: add type for T and deprecate old function\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private buildHttpRequest<T = any>(id: string, item: ApiQueueItem): Observable<T> {\n return this.http[item.method.toLowerCase()](item.uri, item.payload).pipe(tap(() => this.removeQueueItem(id)));\n }\n}\n","import { ApiQueueService } from './api-queue.service';\nimport { Observable, of } from 'rxjs';\nimport { ApiQueueItem } from '@eui/base';\n\nexport class ApiQueueServiceMock extends ApiQueueService {\n constructor() {\n super(null, null, null);\n }\n getQueue(): Observable<ApiQueueItem[]> {\n return of([]);\n }\n getQueueItem(id: string): Observable<ApiQueueItem> {\n return of({ uri: id, method: 'GET' });\n }\n removeAllQueueItem(): void { /* empty */ }\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n processAllQueueItems(): Observable<any> {\n return of({});\n }\n addQueueItem(): void { /* empty */ }\n removeQueueItem(): void { /* empty */ }\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n processQueueItem(): Observable<any> {\n return of({});\n }\n}\n","export class I18nResourceImpl {\n /**\n * Resource constructor\n *\n * @param prefix the prefix of the resource\n * @param suffix the suffix of the resource, optional parameter\n * @param compileTranslationsFn compiler function, optional parameter\n */\n constructor(\n protected prefix: string,\n protected suffix = '',\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-function-return-type\n protected compileTranslationsFn: (translations: any, lang: string) => any = (translations: any) => translations,\n ) {}\n\n /**\n * Translations pre-processor\n *\n * @param translations the object to be pre-processed\n * @param lang the translations language\n * @returns the pre-processed translations\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public compileTranslations(translations: any, lang: string): any {\n return this.compileTranslationsFn(translations, lang);\n }\n\n /**\n * Indicates whether other object is equal-to this one.\n *\n * @param obj the reference object with which to compare\n * @returns true if this object is the same as obj, false otherwise\n */\n public equals(obj: I18nResourceImpl): boolean {\n return this.prefix === obj.prefix && this.suffix === obj.suffix;\n }\n\n /**\n * The path to the resource\n *\n * @param lang the resource language\n * @returns the path\n */\n public getPath(lang: string): string {\n return `${this.prefix}${lang}${this.suffix}`;\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TranslateLoader } from '@ngx-translate/core';\nimport { forkJoin, Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { getI18nLoaderConfig, I18nResource, type EuiAppConfig } from '@eui/base';\nimport { I18nResourceImpl } from './i18n.resource';\nimport { mergeAll } from '@eui/base';\nimport { I18nLoaderConfig, I18nConfig, TranslationsCompiler } from '@eui/base';\nimport { CONFIG_TOKEN } from '../config/tokens';\nimport { LogService } from '../log/log.service';\n\n// export const I18N_LOADER_CONFIG_TOKEN = new InjectionToken<I18nLoaderConfig>('I18N_LOADER_CONFIG');\ninterface ResourceError {\n isError: boolean;\n error?: string;\n resource?: I18nResourceImpl;\n}\n\nexport interface LoadedResources {\n translations: object;\n hasError: boolean;\n errors?: Array<LoadedResourcesError>;\n}\n\nexport interface LoadedResourcesError {\n resource: I18nResourceImpl;\n error: string;\n}\n\n@Injectable()\nexport class I18nLoader implements TranslateLoader {\n protected resources: I18nResourceImpl[] = [];\n protected failedResources: Array<LoadedResourcesError> = [];\n\n constructor(\n protected http: HttpClient,\n @Optional() protected logService: LogService,\n @Inject(CONFIG_TOKEN) protected euiAppConfig: EuiAppConfig,\n ) {\n // create the resources from the config object\n const i18nConfig: I18nConfig = this.euiAppConfig.global && this.euiAppConfig.global.i18n;\n const i18nLoaderConfig: I18nLoaderConfig = i18nConfig && i18nConfig.i18nLoader;\n this.resources.push(...this.createResources(i18nLoaderConfig));\n }\n\n /**\n * Gets the translations from the server\n *\n * @param lang\n * @returns Observable<any>\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public getTranslation(lang: string): Observable<any> {\n return this.loadResources(this.resources, lang).pipe(\n map((loadedResources: LoadedResources) => {\n this.failedResources = loadedResources.hasError ? loadedResources.errors : [];\n return loadedResources.translations;\n }),\n );\n }\n\n /**\n * Adds resources\n *\n * @param config loader configuration\n * @returns Observable<any> | false\n */\n public addResources(config: I18nLoaderConfig): I18nResourceImpl[] {\n // create the resources\n let resources = this.createResources(config);\n\n // filter the resources first, to avoid duplicates\n resources = resources.filter((resource) => !this.resources.some((res) => res.equals(resource)));\n\n // add the new resources to the list of existing resources\n this.resources.push(...resources);\n\n // return the filtered resources\n return resources;\n }\n\n /**\n * Removes resources from the loader instance\n */\n public removeResources(removedResources: I18nResourceImpl[]): void {\n this.resources = this.resources.filter((res) => !removedResources.some((removedResource) => removedResource.equals(res)));\n }\n\n /**\n * Loads an array of resources, by language\n *\n * @param resources the definition of the resources\n * @param lang the resource language to load\n * @returns Observable<any>\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public loadResources(resources: I18nResourceImpl[], lang: string): Observable<any> {\n // if there are resources to load\n if (Array.isArray(resources) && resources.length > 0) {\n // load all the resources in an array of Observable\n const requests = resources.map((resource) => this.loadResource(resource, lang));\n // group all the observables with forkJoin and deep merge them\n return forkJoin(requests).pipe(\n map((response) => {\n const successResp = [];\n const errResp: Array<LoadedResourcesError> = [];\n response.forEach((item) => {\n if ((<ResourceError>item).isError) {\n errResp.push({ resource: (<ResourceError>item).resource, error: (<ResourceError>item).error });\n } else {\n successResp.push(item);\n }\n });\n if (successResp.length === response.length) {\n return { hasError: false, translations: mergeAll(successResp) };\n } else {\n return { hasError: true, translations: mergeAll(successResp), errors: errResp };\n }\n }),\n );\n } else {\n // no resources to load\n return of({ hasError: false, translations: {} });\n }\n }\n\n /**\n * Returns resources that failed\n */\n public getFailedResources(): Array<LoadedResourcesError> {\n return this.failedResources;\n }\n\n /**\n * Create resources from a config file\n *\n * @param config loader configuration\n * @returns I18nResourceImpl[] resources\n */\n protected createResources(config: I18nLoaderConfig): I18nResourceImpl[] {\n // use the default config as a reference base\n config = getI18nLoaderConfig(config);\n\n const resources = [];\n\n // extract the i18n folders from config\n const i18nFolders: string[] = Array.isArray(config.i18nFolders)\n ? config.i18nFolders\n : config.i18nFolders\n ? [config.i18nFolders]\n : [];\n if (i18nFolders) {\n // add the i18n folders to resources\n resources.push(...i18nFolders.map((folder) => new I18nResourceImpl(`assets/${folder}/`, '.json')));\n }\n\n // extract the i18n services from config\n const i18nServices: string[] = Array.isArray(config.i18nServices)\n ? config.i18nServices\n : config.i18nServices\n ? [config.i18nServices]\n : [];\n if (i18nServices) {\n // add the i18n services to resources\n resources.push(...i18nServices.map((service) => new I18nResourceImpl(service)));\n }\n\n // extract the i18n resources from config\n const i18nResources: I18nResource[] = Array.isArray(config.i18nResources)\n ? config.i18nResources\n : config.i18nResources\n ? [config.i18nResources]\n : [];\n if (i18nResources) {\n // add the i18n resources to resources\n resources.push(\n ...i18nResources.map(\n (resource) =>\n new I18nResourceImpl(\n resource.prefix,\n resource.suffix,\n this.getResourceCompileFunction(resource.compileTranslations),\n ),\n ),\n );\n }\n\n return resources;\n }\n\n /**\n * Loads a resource, by language\n *\n * @param resource the definition of the resource\n * @param lang the resource language to load\n * @returns Observable<any>\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected loadResource(resource: I18nResourceImpl, lang: string): Observable<any> {\n // the path to the resource\n const path = resource.getPath(lang);\n\n // load the translations from the path\n return this.http.get(path).pipe(\n // preprocess the translations using the resource compiler\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n map((translations: any) => resource.compileTranslations(translations, lang)),\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n map((translations: any) => {\n // resource loaded properly, send a info message\n if (this.logService) {\n this.logService.info(`I18n resource loaded from path ${path}`);\n }\n // return the translations\n return translations;\n }),\n catchError((err) => {\n // remove failed resource from loaded resource array\n this.removeResources([resource]);\n // resource not loaded properly, send a warning message\n if (this.logService) {\n this.logService.warn(`I18n resource NOT loaded from path ${path}`, err);\n }\n const resourceError: ResourceError = { error: `I18n resource NOT loaded from path ${path}`, resource, isError: true };\n return of(resourceError);\n }),\n );\n }\n\n private getResourceCompileFunction(id: string): TranslationsCompiler {\n const customHandlers = this.euiAppConfig.customHandler;\n if (customHandlers && typeof customHandlers[id] === 'function') {\n return customHandlers[id];\n }\n return undefined;\n }\n}\n\nexport const translateConfig = {\n loader: {\n provide: TranslateLoader,\n useClass: I18nLoader,\n },\n};\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, forkJoin, Observable, of } from 'rxjs';\nimport { catchError, filter, map, take, tap, switchMap } from 'rxjs/operators';\nimport {\n GlobalConfig,\n EuiLazyService,\n EuiServiceStatus,\n getI18nServiceConfigFromBase,\n getI18nState,\n getActiveLang,\n getLastAddedModule,\n I18nLoaderConfig,\n I18nServiceConfig,\n I18nState,\n ModuleConfig,\n getBrowserDefaultLanguage,\n EuiEuLanguages,\n} from '@eui/base';\n\nimport { I18nLoader, LoadedResources } from './i18n.loader';\nimport { GLOBAL_CONFIG_TOKEN } from '../config/tokens';\nimport { LogService } from '../log';\nimport { StoreService, UpdateI18nStateAction } from '../store';\nimport { DEFAULT_I18N_SERVICE_CONFIG } from '../config/defaults';\nimport { createSelector } from '@ngrx/store';\n\nexport interface ModuleLoadEvent {\n ready: boolean;\n name: string;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error?: any;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class I18nService<T extends I18nState = I18nState> extends EuiLazyService<T | I18nState> {\n protected config: I18nServiceConfig;\n protected onModuleLoad: BehaviorSubject<ModuleLoadEvent>;\n\n constructor(\n @Inject(GLOBAL_CONFIG_TOKEN) protected baseGlobalConfig: GlobalConfig,\n protected translateService: TranslateService,\n @Optional() protected logService: LogService,\n protected store: StoreService,\n @Inject(DOCUMENT) private document: Document,\n ) {\n super({ activeLang: 'en' });\n this.config = getI18nServiceConfigFromBase(this.baseGlobalConfig);\n this.onModuleLoad = new BehaviorSubject<ModuleLoadEvent>({ ready: false, name: null });\n }\n\n getState<K = T>(mapFn?: (state: T) => K): Observable<K>;\n getState<a extends keyof T>(key?: a): Observable<T[a]>;\n getState<K>(keyOrMapFn?: ((state: T) => K) | string): Observable<K> {\n let selector: (s:T) => K | I18nState = getI18nState;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const dotNotationToObject = (obj, key): any => key.split('.').reduce((slice, i) => slice[i], obj);\n\n if (keyOrMapFn) {\n switch (typeof keyOrMapFn) {\n case 'function':\n selector = createSelector(getI18nState, keyOrMapFn);\n break;\n case 'string':\n selector = createSelector(getI18nState, (state) => dotNotationToObject(state, keyOrMapFn));\n break;\n }\n }\n return this.store.select(selector);\n }\n\n updateState(langState: T | I18nState): void {\n this.updateHTMLDOMLang(langState.activeLang);\n this.store.dispatch(new UpdateI18nStateAction(langState));\n }\n\n init(langState?: T): Observable<EuiServiceStatus> {\n const initLang = langState && langState.activeLang ? langState.activeLang : this.preparedDefaultLanguage();\n const initState = {\n ...langState,\n activeLang: initLang,\n };\n if (typeof initLang === 'string') {\n super.initEuiService(this.store);\n this.updateState(initState);\n return this.setup(initLang);\n }\n return of({ success: false, error: 'Initial active lang should be string' });\n }\n\n /**\n * A pipe function that could serve as a wrapper of another observable\n * e.g. ngx-translate i18n.onReady('my_module').pipe(switchMap(()=>translate.get('eui.KEY')));\n * WARNING: onReady will emit only once for a loaded Module, going to another and then going back will not result\n * into another emission.\n *\n * @param moduleName the name of the module that has been given through the eUI globalConfig. In case non provided\n * fetch module name from the state.\n */\n // @deprecated expect return type to be Observable<ModuleLoadEvent> instead of Observable<any> on v17 it will be removed\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onReady(moduleName?: string): Observable<any>;\n onReady(moduleName?: string): Observable<ModuleLoadEvent> {\n return this.onModuleLoad.pipe(\n switchMap((evt: ModuleLoadEvent) =>\n moduleName\n ? of(evt)\n : this.store.select(getLastAddedModule).pipe(\n tap((m) => (moduleName = m)),\n map(() => evt),\n ),\n ),\n // emit only if event emitted matches the module name and is ready\n filter((evt: ModuleLoadEvent) => evt.ready === true && evt.name === moduleName),\n // make sure that observable completes\n take(1),\n );\n }\n\n public lazyLoad(config: I18nLoaderConfig): Observable<EuiServiceStatus> {\n const moduleId = Math.floor(Math.random() * 100000 + 1).toLocaleString();\n return this.addResources(config, moduleId);\n }\n\n lazyLoadInit(moduleConfig: ModuleConfig, moduleName?: string): Observable<EuiServiceStatus> {\n const i18nLoaderConfig = moduleConfig as I18nLoaderConfig;\n // add resources\n return this.addResources(i18nLoaderConfig, moduleName);\n }\n\n /**\n * Add resources based of a config loader\n *\n * @param config I18nLoaderConfig\n * @param moduleName\n * @return Promise<EuiServiceStatus> an EuiServiceStatus when translation has fully loaded\n */\n public addResources(config: I18nLoaderConfig, moduleName?: string): Observable<EuiServiceStatus> {\n // emit that module is loading\n this.onModuleLoad.next({ ready: false, name: moduleName });\n\n const loader = this.translateService.currentLoader;\n if (loader instanceof I18nLoader) {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const langSubscription: Observable<any>[] = [];\n const i18nLoader = <I18nLoader>loader;\n\n // add the resources to the loader\n const resources = i18nLoader.addResources(config);\n\n // manually load the resources for the CURRENT language and add them to the translate service\n langSubscription.push(\n i18nLoader.loadResources(resources, this.translateService.currentLang).pipe(\n take(1),\n tap((loadedResources: LoadedResources) => {\n // add the new set of translations to the current language\n this.translateService.setTranslation(this.translateService.currentLang, loadedResources.translations, true);\n }),\n ),\n );\n\n // if the current language is different from the DEFAULT language\n const defaultLang = this.config.defaultLanguage || this.translateService.defaultLang;\n if (this.translateService.currentLang !== defaultLang) {\n // manually load the resources for the default language and add them to the translation service\n langSubscription.push(\n i18nLoader.loadResources(resources, defaultLang).pipe(\n take(1),\n tap((loadedResources: LoadedResources) => {\n this.translateService.setTranslation(defaultLang, loadedResources.translations, true);\n }),\n ),\n );\n }\n\n return forkJoin(langSubscription).pipe(\n map((loadedResourcesArr: LoadedResources[]) =>\n !loadedResourcesArr[0].hasError ? { success: true } : { success: false, error: loadedResourcesArr[0].errors },\n ),\n tap(() => {\n // emit status of module loading progress\n this.onModuleLoad.next({ ready: true, name: moduleName });\n }),\n catchError((error) => {\n // emit status of module loading progress\n this.onModuleLoad.next({ ready: true, name: moduleName, error });\n return of({ success: false, error });\n }),\n );\n } else {\n return of({ success: false, error: 'currentLoader is not an I18nLoader.' });\n }\n }\n\n /**\n * Prepares the default language\n */\n private preparedDefaultLanguage(): string {\n const browserPref = getBrowserDefaultLanguage();\n // If user has browser preferred lang, and that language is part of the languages array\n if (browserPref && this.config.languages && EuiEuLanguages.getLanguageCodes(this.config.languages).includes(browserPref)) {\n return browserPref;\n }\n return this.config.defaultLanguage;\n }\n\n /**\n * @param default_language if given default language to override default language coming from the\n * configuration token.\n */\n private setup(initLanguage: string): Observable<EuiServiceStatus> {\n // use the default config as a reference base\n this.config = Object.assign({}, DEFAULT_I18N_SERVICE_CONFIG, this.config);\n // configure the translate config service\n if (this.config.languages) {\n this.translateService.addLangs(EuiEuLanguages.getLanguageCodes(this.config.languages));\n if (this.logService) {\n this.logService.info(`I18n accepted languages set to ${EuiEuLanguages.getLanguageCodes(this.config.languages)}`);\n }\n }\n // set the current language, causing to load translations\n return this.translateService.use(initLanguage).pipe(\n tap(() => {\n this.bindActiveLangStateToTranslateService();\n this.bindTranslateServiceLangChangeToState();\n if (this.config.defaultLanguage) {\n this.setDefaultLanguage(this.config.defaultLanguage);\n }\n }),\n map(() => {\n if (this.translateService.currentLoader instanceof I18nLoader) {\n const failedResources = this.translateService.currentLoader.getFailedResources();\n if (failedResources.length > 0) {\n return { success: false, error: failedResources };\n }\n }\n return { success: true };\n }),\n catchError((error) => of({ success: false, error })),\n );\n }\n\n private bindActiveLangStateToTranslateService(): void {\n this.store.select(getActiveLang).subscribe((lang: string) => {\n if (lang !== null && this.translateService.currentLang !== lang) {\n this.use(lang);\n }\n });\n }\n\n private bindTranslateServiceLangChangeToState(): void {\n this.translateService.onLangChange.subscribe((event: LangChangeEvent) => {\n if (this.stateInstance.activeLang !== event.lang) {\n this.updateState({ activeLang: event.lang });\n }\n if (this.logService) {\n this.logService.info(`I18n current language set to ${event.lang}`);\n }\n });\n }\n\n private setDefaultLanguage(defaultLanguage: string): void {\n // removed, current language is already calculated in init, setup function fill use it directly, not default\n // this.translateService.currentLang = default_language || this.config.defaultLanguage;\n this.translateService.setDefaultLang(defaultLanguage);\n if (this.logService) {\n this.logService.info(`I18n default language set to ${defaultLanguage}`);\n }\n }\n\n /**\n * change the currently used language\n *\n * @param lang is the language code based on the convention you used e.g. (en or en-EN)\n * @returns Observable that returns an object contain the object translation for given language after language\n * fully loaded.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private use(lang: string): Observable<any> {\n return this.translateService.use(lang);\n }\n\n /**\n * updates the HTML element lang attribute\n *\n * @private\n */\n private updateHTMLDOMLang(lang: string): void {\n this.document.documentElement.lang = lang;\n }\n}\n","export * from './i18n.resource';\nexport * from './i18n.loader';\n// export * from './i18n.module';\nexport * from './i18n.service';\n// export * from './i18n.service.mock';\n","export const diffDays = (dateStart: Date, dateEnd: Date): number =>\n Math.round((dateEnd.getTime() - dateStart.getTime()) / 1000 / 60 / 60 / 24);\n\nexport const diffDaysFromToday = (date: Date): number => diffDays(new Date(), date);\n","import { By } from '@angular/platform-browser';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { DebugElement } from '@angular/core';\n\n/**\n * Provides read-only equivalent of jQuery's position function:\n * http://api.jquery.com/position/\n */\nexport const position = (nativeEl: HTMLElement): { width: number; height: number; top: number; left: number } => {\n const elBCR = offset(nativeEl);\n let offsetParentBCR = { top: 0, left: 0 };\n const offsetParentEl = parentOffsetEl(nativeEl);\n if (offsetParentEl !== document) {\n offsetParentBCR = offset(offsetParentEl as HTMLElement);\n offsetParentBCR.top += (offsetParentEl as Element).clientTop - (offsetParentEl as Element).scrollTop;\n offsetParentBCR.left += (offsetParentEl as Element).clientLeft - (offsetParentEl as Element).scrollLeft;\n }\n\n const boundingClientRect = nativeEl.getBoundingClientRect();\n return {\n width: boundingClientRect.width || nativeEl.offsetWidth,\n height: boundingClientRect.height || nativeEl.offsetHeight,\n top: elBCR.top - offsetParentBCR.top,\n left: elBCR.left - offsetParentBCR.left,\n };\n};\n\n/**\n * Provides read-only equivalent of jQuery's offset function:\n * http://api.jquery.com/offset/\n */\nexport const offset = (nativeEl: HTMLElement): { width: number; height: number; top: number; left: number } => {\n const boundingClientRect = nativeEl.getBoundingClientRect();\n return {\n width: boundingClientRect.width || nativeEl.offsetWidth,\n height: boundingClientRect.height || nativeEl.offsetHeight,\n top: boundingClientRect.top + (window.pageYOffset || document.documentElement.scrollTop),\n left: boundingClientRect.left + (window.pageXOffset || document.documentElement.scrollLeft),\n };\n};\n\n// PRIVATE FUNCTIONS\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst getStyle = (nativeEl: any, cssProp: string): CSSStyleDeclaration => {\n // IE\n if (nativeEl.currentStyle) {\n return nativeEl.currentStyle[cssProp];\n }\n\n if (window.getComputedStyle) {\n return window.getComputedStyle(nativeEl)[cssProp];\n }\n // finally try and get inline style\n return nativeEl.style[cssProp];\n};\n\n/**\n * Checks if a given element is statically positioned\n */\nconst isStaticPositioned = (nativeEl: Element): boolean => (getStyle(nativeEl, 'position') || 'static') === 'static';\n\n/**\n * returns the closest, non-statically positioned parentOffset of a given element\n * @param nativeEl\n */\nconst parentOffsetEl = (nativeEl: HTMLElement): Element | Document => {\n let offsetParent = nativeEl.offsetParent || document;\n while (offsetParent && offsetParent !== document && isStaticPositioned(offsetParent as Element)) {\n offsetParent = (offsetParent as HTMLElement).offsetParent;\n }\n return offsetParent || document;\n};\n\nexport const getViewElement = <F>(fixture: ComponentFixture<F>, componentClass, klass?): {de: DebugElement, el: HTMLElement, domElement: HTMLElement} => {\n let el: HTMLElement, domElement: NodeList | HTMLElement;\n\n const de = fixture.debugElement.query(By.css(componentClass));\n if (de) {\n el = de.nativeElement;\n\n if (el && klass) {\n domElement = el.querySelectorAll(klass);\n\n if (domElement.length <= 1) {\n domElement = el.querySelector(klass);\n }\n }\n }\n\n return { de, el, domElement: domElement as HTMLElement };\n};\n\nexport const closestMatchingParent = (target: HTMLElement, className: string): HTMLElement | null => {\n let element = target;\n\n while (element && element.nodeType === Node.ELEMENT_NODE) {\n if (element.classList.contains(className)) {\n return element;\n }\n\n element = element.parentElement;\n }\n\n return null;\n};\n","export const consumeEvent = (event: Event): boolean => {\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n event.cancelBubble = true;\n }\n return false;\n};\n","import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';\n\nconst forOwn = (object, iteratee): void => {\n object = Object(object);\n Object.keys(object).forEach((key) => iteratee(object[key], key, object));\n};\n\nexport const markFormGroupTouched = (FormControls: { [key: string]: AbstractControl } | AbstractControl[]): void => {\n const markFormGroupTouchedRecursive = (controls: { [key: string]: AbstractControl } | AbstractControl[]): void => {\n forOwn(controls, (c) => {\n if (c instanceof FormGroup || c instanceof FormArray) {\n markFormGroupTouchedRecursive(c.controls);\n } else {\n c.markAsTouched();\n c.updateValueAndValidity();\n }\n });\n };\n markFormGroupTouchedRecursive(FormControls);\n};\n\nexport const markControlsTouched = (group: FormGroup | FormArray): void => {\n Object.keys(group.controls).forEach((key: string) => {\n const abstractControl = group.controls[key];\n if (abstractControl instanceof FormGroup || abstractControl instanceof FormArray) {\n markControlsTouched(abstractControl);\n } else {\n abstractControl.markAsTouched();\n }\n });\n};\n\nexport const validateEmail = (c: FormControl): { validateEmail: { valid: boolean } } => {\n const EMAIL_REGEXP =\n // eslint-disable-next-line max-len, no-useless-escape\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\n const error = {\n validateEmail: {\n valid: false,\n },\n };\n return EMAIL_REGEXP.test(c.value) ? null : error;\n};\n","/**\n * returns a random string with radix=36\n */\nexport const uniqueId = (): string => Math.random().toString(36).substr(2, 9);\n\n/**\n * Its job is to parse number and format it based on given input.\n * @param value can be a number or a string number\n * @param fractionSize size of fraction of a number e.g. 1000.88 fraction is 2 (88) default is 2\n * @param inDecimalSeparator separator for decimal part of the number default is ','\n * @param inThousandSeparator separator for the whole part of the number default is ''\n */\nexport const formatNumber = (\n value: number | string,\n fractionSize = 2,\n inDecimalSeparator = ',',\n inThousandSeparator = '',\n): string => {\n if (inDecimalSeparator || inThousandSeparator) {\n console.warn(\n 'The inDecimalSeparator and inThousandSeparator are deprecated. They will be a ' +\n 'BREAKING CHANGE for eUI 9 and be replaced by localization strategy.',\n );\n }\n\n let decimalSeparator = '';\n let thousandsSeparator = '';\n\n if (value === null || value === undefined) {\n return null;\n }\n\n if (typeof value === 'string') {\n // get all non characters\n const nonChars: string[] = value.match(/[^0-9]+/g) || [];\n\n // get all unique chars\n const uniqueChars = nonChars.reduce((acc, e) => acc.set(e, (acc.get(e) || 0) + 1), new Map());\n\n // get separators\n const separators = Array.from<string>(uniqueChars.keys());\n\n // sense where decimal separator and where thousand separator is\n if (separators.length > 1) {\n // left detected separator will be thousand and second will be decimal\n thousandsSeparator = separators[0];\n decimalSeparator = separators[1];\n } else if (separators.length > 0) {\n // in case there is only one separator you don't know exactly who this separator is.\n // in case there are more than two occurrences means we have a thousand otherwise we'll\n // agree by conventions that is decimal\n if (nonChars.length > 1) {\n return value\n .split(separators[0])\n .join('')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, inThousandSeparator);\n } else {\n return value.replace(separators[0], inDecimalSeparator).replace(/\\B(?=(\\d{3})+(?!\\d))/g, inThousandSeparator);\n }\n } else {\n // in case there are no separators then only format based on thousand one\n return value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, inThousandSeparator);\n }\n\n // do the replacement of separators and parseInt\n // Beware! Always replace a thousand separator first and then decimal\n value = value.split(thousandsSeparator).join('').replace(decimalSeparator, '.');\n }\n\n decimalSeparator = inDecimalSeparator;\n thousandsSeparator = inThousandSeparator;\n\n const maxFraction = '0'.repeat(fractionSize);\n\n // eslint-disable-next-line prefer-const\n let [integer, fraction = maxFraction] = (value || '0').toString().split('.');\n fraction = fractionSize > 0 ? (fraction + maxFraction).substring(0, fractionSize) : '';\n\n // this rule makes sense only in number in case fraction is all zero\n fraction = typeof value === 'number' && fraction === maxFraction ? '' : decimalSeparator + fraction;\n\n return integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparator) + fraction;\n};\n","import { Observable } from 'rxjs';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nexport const handleError = (error: HttpErrorResponse): Observable<never> => {\n const errMsg = error.message ? error.message : error.status ? `${error.status} - ${error.statusText}` : 'Server error';\n throw new Error(errMsg);\n};\n","/**\n * check if a value is null or undefined. If it's not both returns true otherwise false\n *\n * @param value\n */\nexport const isDefined = <T>(value: T | undefined | null): value is T => <T>value !== undefined && <T>value !== null;\n","import { Injectable, Optional } from '@angular/core';\nimport { EuiService, EuiServiceStatus, getUserRights, EuiUserRight, Logger } from '@eui/base';\nimport { Observable, of } from 'rxjs';\nimport { LogService } from '../log/log.service';\nimport { StoreService } from '../store/store.service';\nimport { UpdateUserRightsAction } from '../store/actions/user.actions';\nimport { isDefined } from '../../helpers';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EuiPermissionService extends EuiService<EuiUserRight[]> {\n private readonly logger: Logger;\n\n constructor(\n @Optional() private log: LogService,\n protected store: StoreService,\n ) {\n super([]);\n if (log) {\n this.logger = log.getLogger('core.PermissionService');\n }\n }\n\n /**\n * initialize the service by providing a state\n * @param rights\n */\n init(rights: EuiUserRight[]): Observable<EuiServiceStatus> {\n super.initEuiService();\n if (Array.isArray(rights)) {\n this.updateState(rights);\n return of({ success: true });\n }\n\n if (this.logger) {\n this.logger.error('Init object should be instance of BaseUserState');\n }\n return of({ success: false, error: 'Init object should be instance of BaseUserState' });\n }\n\n protected get userRights(): EuiUserRight[] {\n return this.stateInstance;\n }\n\n /**\n * get the user's Rights from the state\n */\n getState<K = EuiUserRight[]>(): Observable<K> {\n return this.store.select(getUserRights);\n }\n\n /**\n * update the state with the given user's rights\n * @param rights\n */\n updateState(rights: EuiUserRight[]): void {\n this.store.dispatch(new UpdateUserRightsAction(rights || []));\n }\n\n /**\n * accepts a string of right and or a permission. In string first comes the right and or followed by permission in\n * a dot separated way e.g. 'RIGHT.PERMISSION' or 'RIGHT'. The string can contain more that 2 separated fields.\n * In that case the last field should be the permission and all the others a Right. e.g. 'RIGHT1.RIGHT2.PERMISSION'\n * The last part is useful where you want a user to have multiple rights and the permission of the last right.\n * @param rightsAndPermission\n */\n checkAttributePermission(rightsAndPermission: string): boolean {\n const permProps = rightsAndPermission.split('.');\n const rightId = permProps[0];\n const hasRight = this.checkRight(rightId);\n\n if (hasRight) {\n if (permProps.length === 2) {\n // in case of 'RIGHT.PERMISSION'\n const permission = permProps[1];\n return this.checkPermission(rightId, permission);\n } else if (permProps.length > 2) {\n // in case of 'RIGHT1.RIGHT2.....PERMISSION' string call recursively\n return this.checkAttributePermission(rightsAndPermission.slice(rightId.length + 1));\n }\n }\n\n return hasRight;\n }\n\n /**\n * check if a user has the right.\n * @param rightId the id of Right\n */\n checkRight(rightId: string): boolean {\n return this.userRights.some((right) => right && right.id === rightId);\n }\n\n /**\n * check if a user has that right and that right has the permission given.\n * @param rightId the right of the user\n * @param permission the permission of the right\n */\n checkPermission(rightId: string, permission: string): boolean {\n // the user has to have that right and that right has to have the given permission\n return this.userRights.some(\n (right) => right && right.id === rightId && right.permissions && right.permissions.includes(permission),\n );\n }\n\n /**\n * checks whether a user have all rights passed as an argument\n * @param rights an array of EuiUserRight\n */\n private haveAllRights(rights: EuiUserRight[]): boolean {\n if (!isDefined(rights)) {\n throw Error('The rights should be an array but instead it\\'s not defined!');\n }\n\n return rights.every((right: EuiUserRight) => this.userRights.find((uRight: EuiUserRight) => uRight.id === right.id));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { getUserState, EuiMenuItem } from '@eui/base';\nimport { EuiPermissionService } from '../permission/permission.service';\nimport { StoreService } from '../store';\n\n@Injectable({\n providedIn: 'root',\n})\n// TODO: Type of LINK should be UxLink or something relevant. Do we need that service anymore?\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EuiDynamicMenuService<LINK = any> {\n menuLinks: Array<LINK> = [];\n\n // TODO: it should be moved euiservice, or it should be static\n // TODO: can we moved that service inside the module of the component that's using it?\n constructor(\n private euiPermission: EuiPermissionService,\n private store: StoreService,\n ) {\n this.store.select(getUserState).subscribe((user) => {\n if (user.menuLinks) {\n this.menuLinks = user.menuLinks;\n }\n });\n }\n\n getMenuLinks(): LINK[] {\n return this.menuLinks;\n }\n\n filterEuiMenuItemsWithRights(links: Array<EuiMenuItem>): Array<EuiMenuItem> {\n return links.filter((link) => {\n if (link.hasChildren) {\n link.children = this.filterEuiMenuItemsWithRights(link.children);\n }\n\n // First check if the user is denied access:\n if (link.deniedRightId) {\n if (this.euiPermission.checkRight(link.deniedRightId)) {\n return false;\n }\n }\n if (link.deniedRightIds) {\n for (const deniedRightId of link.deniedRightIds) {\n if (this.euiPermission.checkRight(deniedRightId)) {\n return false;\n }\n }\n }\n\n // Then check if the user needs to be allowed access explicitly:\n if (link.allowedRightId) {\n return this.euiPermission.checkRight(link.allowedRightId);\n }\n if (link.allowedRightIds) {\n for (const allowedRightId of link.allowedRightIds) {\n if (this.euiPermission.checkRight(allowedRightId)) {\n return true;\n }\n }\n // User doesn't have one of the allowed rights. Deny access:\n return false;\n }\n\n // Access to the menu item is not denied, therefore allow it:\n return true;\n });\n }\n}\n","// TODO: Do we need that service anymore? Can we remove it?\n\nimport { ApplicationRef, ComponentFactoryResolver, ComponentRef, ElementRef, Injectable, InjectionToken, Injector } from '@angular/core';\nimport { ComponentPortal, DomPortalOutlet, PortalInjector, ComponentType } from '@angular/cdk/portal';\n\nexport const DYNAMIC_COMPONENT_CONFIG = new InjectionToken<object>('DYNAMIC_COMPONENT_CONFIG');\n\n@Injectable()\nexport class EuiDynamicComponentService {\n private portalHost: DomPortalOutlet;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private portal: ComponentPortal<any>;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private portalComponentInstance: ComponentRef<any>;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private injector: Injector,\n private appRef: ApplicationRef,\n ) {}\n\n /**\n * Adds a component to portal host dynamically\n * @param component The component to be injected\n * @param el The element reference for the component to be injected\n * @param config The data to be passed (config) for the DYNAMIC_COMPONENT_CONFIG token\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public add<T>(component: ComponentType<T>, el?: ElementRef, config?: any): any {\n // TODO: take a look and replace deprecated componentFactoryResolver https://github.com/angular/components/issues/24334\n // Create a portalHost from a DOM element\n this.portalHost = new DomPortalOutlet(\n el ? el.nativeElement : document.body,\n this.componentFactoryResolver,\n this.appRef,\n this.injector,\n );\n\n // Locate the component factory for the ComponentToIncludeDynamicallyComponent\n this.portal = new ComponentPortal<T>(component, null, config ? this.createInjector(config) : null);\n\n // Attach portal to host\n this.portalComponentInstance = this.portalHost.attach(this.portal);\n\n if (config) {\n Object.assign(config, {\n portalHostRef: this.portalHost,\n portalRef: this.portal,\n portalComponentInstanceRef: this.portalComponentInstance,\n });\n }\n\n return {\n portalHost: this.portalHost,\n portal: this.portal,\n portalComponentInstance: this.portalComponentInstance,\n };\n }\n\n /**\n * detaches a portalHost\n * @param portalHostRef reference of portal host to be detached\n */\n public remove(portalHostRef: DomPortalOutlet): void {\n portalHostRef.detach();\n\n this.portalHost = null;\n this.portal = null;\n this.portalComponentInstance = null;\n }\n\n /**\n * creates a custom injector to be used when providing custom injection tokens to components inside a portal\n * @param data to be used by DYNAMIC_COMPONENT_CONFIG token\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private createInjector(data: any): Injector {\n const injectorTokens = new WeakMap();\n injectorTokens.set(DYNAMIC_COMPONENT_CONFIG, data);\n return new PortalInjector(this.injector, injectorTokens);\n }\n}\n","import { Inject, Injectable, Optional, PLATFORM_ID } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { isPlatformBrowser } from '@angular/common';\nimport { BehaviorSubject, defer, firstValueFrom, Observable } from 'rxjs';\nimport { EuiEuLanguages, GlobalConfig, getActiveLang, EuiLanguage, EuiMenuItem, UxModalLegacy } from '@eui/base';\nimport { GLOBAL_CONFIG_TOKEN } from './config/tokens';\nimport { I18nService } from './i18n';\nimport { Router, NavigationEnd } from '@angular/router';\nimport { StoreService } from './store';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\nimport isEqual from 'lodash-es/isEqual';\nimport get from 'lodash-es/get';\n\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface UIState<BP = any, DI = any, AMD =any> {\n // app state\n appName?: string;\n appShortName?: string;\n appSubTitle?: string;\n appBaseFontSize?: string;\n\n // user state\n userInfos?: string;\n userSubInfos?: string;\n impersonatedUserInfos?: string;\n\n // Sidebar state\n isSidebarOpen?: boolean;\n isSidebarHover?: boolean;\n isSidebarActive?: boolean;\n isSidebarInnerActive?: boolean;\n isSidebarStateCloseWithIcons?: boolean;\n isSidebarExpandOnHover?: boolean;\n hasSidebar?: boolean;\n hasBreadcrumb?: boolean;\n hasHeader?: boolean;\n hasHeaderLogo?: boolean;\n hasHeaderEnvironment?: boolean;\n hasToolbar?: boolean;\n hasToolbarMenu?: boolean;\n environmentValue?: string;\n isSidebarHidden?: boolean;\n hasTopMessage?: boolean;\n\n // window state\n windowWidth?: number;\n windowHeight?: number;\n mainContentHeight?: number;\n pageHeaderHeight?: number;\n breakpoint?: string;\n wrapperClasses?: string;\n breakpoints?: BP;\n\n // navigation state\n menuLinks?: EuiMenuItem[];\n sidebarLinks?: EuiMenuItem[];\n combinedLinks?: EuiMenuItem[];\n\n // other states\n isBlockDocumentActive?: boolean;\n\n // device info\n deviceInfo: DI;\n\n // language infos\n activeLanguage: string;\n languages: (string | EuiLanguage)[];\n\n // app metadata\n appMetadata: AMD;\n\n // various dynamic state\n hasModalActive?: boolean;\n isDimmerActive?: boolean; // Usage: map to eui base directive input coerce euiHighlighted\n}\n\nconst initialState: UIState = {\n appName: '',\n appShortName: '',\n appSubTitle: '',\n appBaseFontSize: '',\n userInfos: null,\n userSubInfos: null,\n impersonatedUserInfos: null,\n isSidebarOpen: true,\n isSidebarHover: false,\n isSidebarActive: false,\n isSidebarInnerActive: false,\n isSidebarStateCloseWithIcons: false,\n isSidebarExpandOnHover: true,\n hasSidebar: false,\n hasHeader: false,\n hasBreadcrumb: false,\n hasHeaderLogo: false,\n hasHeaderEnvironment: false,\n hasToolbar: false,\n hasToolbarMenu: false,\n environmentValue: '',\n isSidebarHidden: false,\n hasTopMessage: false,\n windowWidth: 0,\n windowHeight: 0,\n mainContentHeight: 0,\n pageHeaderHeight: 0,\n wrapperClasses: '',\n breakpoint: '',\n breakpoints: {\n isMobile: false,\n isTablet: false,\n isLtDesktop: false,\n isDesktop: false,\n isXL: false,\n isXXL: false,\n isFHD: false,\n is2K: false,\n is4K: false,\n },\n menuLinks: [],\n sidebarLinks: [],\n combinedLinks: [],\n isBlockDocumentActive: false,\n deviceInfo: null,\n activeLanguage: 'en',\n languages: EuiEuLanguages.getLanguages(),\n appMetadata: null,\n hasModalActive: false,\n isDimmerActive: false,\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EuiAppShellService {\n navigationStartCustomHandler: () => void;\n navigationEndCustomHandler: () => void;\n\n /**\n * @deprecated don't remove as it's used for external legacy project under v17 (csdr-eui-legacy) to support MWP transition\n */\n openModalId = new BehaviorSubject<string>('');\n\n /**\n * @deprecated don't remove as it's used for external legacy project under v17 (csdr-eui-legacy) to support MWP transition\n */\n activeModals: UxModalLegacy[] = [];\n\n // -------------------\n get state$(): Observable<UIState> {\n return this._state$.asObservable();\n }\n\n // -------------------\n // exposed observables\n\n get breakpoint$(): Observable<string> {\n return this._breakpoint$.asObservable();\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get breakpoints$(): Observable<any> {\n return this._breakpoints$.asObservable();\n }\n\n // ----------------\n // state operations\n // ----------------\n get state(): UIState {\n return this._state$.getValue();\n }\n\n // ----------------------------\n // public setters and functions\n // ----------------------------\n set isSidebarOpen(isOpen: boolean) {\n this.setState({\n ...this.state,\n isSidebarOpen: isOpen,\n });\n }\n\n get isSidebarOpen(): boolean {\n return this.state.isSidebarOpen;\n }\n\n set isSidebarHover(isHover: boolean) {\n if (this.state.isSidebarExpandOnHover) {\n this.setState({\n ...this.state,\n isSidebarHover: isHover,\n });\n }\n }\n\n get isSidebarHover(): boolean {\n return this.state.isSidebarHover;\n }\n\n set isSidebarActive(isActive: boolean) {\n this.setState({\n ...this.state,\n isSidebarActive: isActive,\n });\n }\n\n set isSidebarInnerActive(isOpen: boolean) {\n this.setState({\n ...this.state,\n isSidebarInnerActive: isOpen,\n });\n }\n\n set sidebarLinks(links: EuiMenuItem[]) {\n this.setState({\n ...this.state,\n sidebarLinks: links,\n });\n }\n\n set menuLinks(links: EuiMenuItem[]) {\n this.setState({\n ...this.state,\n menuLinks: links,\n });\n }\n\n set isBlockDocumentActive(isActive: boolean) {\n this.setState({\n ...this.state,\n isBlockDocumentActive: isActive,\n });\n }\n\n get hasHeader(): boolean {\n return this.state.hasHeader;\n }\n\n // Edit mode\n get isDimmerActive(): boolean {\n return this.state.isDimmerActive;\n }\n\n set isDimmerActive(isActive: boolean) {\n this.setState({\n ...this.state,\n isDimmerActive: isActive,\n });\n }\n\n private cssVars = [];\n private _state$: BehaviorSubject<UIState>;\n private _breakpoint$: BehaviorSubject<string>;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _breakpoints$: BehaviorSubject<any>;\n\n constructor(\n @Optional() @Inject(GLOBAL_CONFIG_TOKEN) protected config: GlobalConfig,\n private http: HttpClient,\n @Inject(PLATFORM_ID) private platformId: object,\n private router: Router,\n private storeService: StoreService,\n @Optional() private i18nService: I18nService,\n ) {\n let stateWithConfig = initialState;\n const languages = config?.i18n?.i18nService?.languages || initialState.languages;\n const defaultLanguage = config?.i18n?.i18nService?.defaultLanguage || initialState.activeLanguage;\n stateWithConfig = {\n ...stateWithConfig,\n ...{\n languages,\n activeLanguage: defaultLanguage,\n },\n };\n this._state$ = new BehaviorSubject(stateWithConfig);\n this._breakpoint$ = new BehaviorSubject('');\n this._breakpoints$ = new BehaviorSubject({});\n this.bindActiveLanguageToAppShellState();\n\n if (isPlatformBrowser(this.platformId)) {\n router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n window.scrollTo(0, 0);\n }\n });\n }\n }\n\n setState(nextState: UIState, updateI18 = true): void {\n let breakpoint, breakpoints;\n let combinedLinks;\n\n const state = this.state;\n\n // check if window width has been updated from previous state\n if (this.state.windowWidth !== nextState.windowWidth) {\n breakpoint = this.getBreakpoint(nextState.windowWidth);\n breakpoints = this.getBreakpoints(breakpoint);\n\n this._breakpoint$.next(breakpoint);\n this._breakpoints$.next(breakpoints);\n\n // if not propagate the old ones without doing any calculations\n } else {\n breakpoint = state.breakpoint;\n breakpoints = state.breakpoints;\n }\n\n // finally get the wrapper classes when both the state and breakpoint are known\n const wrapperClasses = this.getWrapperClasses(nextState, breakpoint);\n\n // check if the menuLinks or sidebarLinks have changed from previous state\n if (this.state.menuLinks !== nextState.menuLinks || this.state.sidebarLinks !== nextState.sidebarLinks) {\n combinedLinks = [...nextState.menuLinks, ...nextState.sidebarLinks];\n } else {\n combinedLinks = this.state.combinedLinks;\n }\n\n const stateBeforeUpdate = { ...this.state };\n\n // we put it all together with the calculated properties\n this._state$.next({\n ...nextState,\n wrapperClasses,\n breakpoint,\n breakpoints,\n combinedLinks,\n });\n\n // update the Store Language\n if (updateI18 && nextState.activeLanguage !== stateBeforeUpdate.activeLanguage) {\n this.i18nService.updateState({ activeLang: nextState.activeLanguage });\n }\n }\n\n /**\n * Emits a slice from the state whether that changes\n *\n * @param key can be 'key' or 'key.sub.sub'\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getState(key?: string): Observable<any> {\n return defer(() =>\n // check if key exists\n key\n ? this.state$.pipe(\n map((state) => get(state, key)),\n // filter((state) => state),\n distinctUntilChanged((x, y) => isEqual(x, y)),\n )\n : this.state$,\n );\n }\n\n public sidebarToggle(): void {\n this.isSidebarOpen = !this.state.isSidebarOpen;\n }\n\n // Edit mode\n public dimmerActiveToggle(): void {\n const isActive = this.isDimmerActive;\n this.setState({\n ...this.state,\n isDimmerActive: !isActive,\n });\n this.activateEditModeCssVars(!isActive);\n }\n\n public setDimmerActiveState(activeState: boolean): void {\n this.setState({\n ...this.state,\n isDimmerActive: activeState,\n });\n this.activateEditModeCssVars(activeState);\n }\n\n public activateEditModeCssVars(isActive: boolean): void {\n if (isActive) {\n this._setCssVarValue('--eui-docpage-navigation-z-index', 'inherit'); // Reset doc-page-navigation-column z-index\n this._setCssVarValue('--eui-z-index-sidebar', 'inherit'); // Reset eui-app-sidebar z-index\n this._setCssVarValue('--eui-z-index-root', 'inherit'); // Reset eui-app-main-content z-index\n } else {\n this._setCssVarValue('--eui-docpage-navigation-z-index', '2'); // Restore doc-page-navigation-column z-index\n this._setCssVarValue('--eui-z-index-sidebar', '1044'); // Restore eui-app-sidebar z-index\n this._setCssVarValue('--eui-z-index-root', '1'); // Restore eui-app-main-content z-index\n }\n }\n\n // --------------\n // public methods\n // --------------\n public fetchAppMetadata(metadataFilePath = 'assets/app-metadata.json'): void {\n this.getJson(metadataFilePath).then((data) => {\n this.setState({\n ...this.state,\n appMetadata: data,\n });\n });\n }\n\n public activateSidebar(): void {\n this.setState({\n ...this.state,\n hasSidebar: true,\n });\n\n if (!this.state.isSidebarHidden) {\n this.activateSidebarCssVars();\n }\n }\n\n public activateSidebarHeader(): void {\n this.activateSidebarHeaderCssVars();\n }\n\n public activateSidebarFooter(): void {\n this.activateSidebarFooterCssVars();\n }\n\n public activateHeader(): void {\n this.setState({\n ...this.state,\n hasHeader: true,\n });\n this.activateHeaderCssVars();\n }\n\n public activateBreadcrumb(): void {\n this.setState({\n ...this.state,\n hasBreadcrumb: true,\n });\n this.activateBreadcrumbCssVars();\n }\n\n public activateTopMessage(height: number): void {\n this.setState({\n ...this.state,\n hasTopMessage: true,\n });\n this.activateTopMessageCssVars(height);\n }\n\n public activateToolbar(): void {\n this.setState({\n ...this.state,\n hasToolbar: true,\n });\n this.activateToolbarCssVars();\n }\n\n public activateToolbarMenu(): void {\n this.setState({\n ...this.state,\n hasToolbarMenu: true,\n });\n }\n\n public fetchCssVars(): void {\n const cssVarNames = [\n '--eui-app-header-height-default',\n '--eui-app-header-height-active',\n '--eui-app-header-height-shrink',\n '--eui-app-breadcrumb-height-default',\n '--eui-app-breadcrumb-height-active',\n '--eui-app-top-message-height-default',\n '--eui-app-top-message-height-active',\n '--eui-app-top-message-height-shrink',\n '--eui-app-toolbar-height-default',\n '--eui-app-toolbar-height-active',\n '--eui-app-sidebar-width-default',\n '--eui-app-sidebar-width-active',\n '--eui-app-sidebar-width-close-default',\n '--eui-app-sidebar-width-close-active',\n '--eui-app-sidebar-header-height-default',\n '--eui-app-sidebar-header-height-active',\n '--eui-app-sidebar-footer-height-default',\n '--eui-app-sidebar-footer-height-active',\n ];\n\n this.cssVars = cssVarNames.map((v) => ({ key: v, value: this.getCssVarValue(v) }));\n }\n\n public initCssVars(): void {\n this.setCssVar('--eui-app-header-height-default', '--eui-app-header-height');\n this.setCssVar('--eui-app-breadcrumb-height-default', '--eui-app-breadcrumb-height');\n this.setCssVar('--eui-app-top-message-height-default', '--eui-app-top-message-height');\n this.setCssVar('--eui-app-toolbar-height-default', '--eui-app-toolbar-height');\n this.setCssVar('--eui-app-sidebar-width-default', '--eui-app-sidebar-width');\n this.setCssVar('--eui-app-sidebar-width-close-default', '--eui-app-sidebar-width-close');\n this.setCssVar('--eui-app-sidebar-header-height-default', '--eui-app-sidebar-header-height');\n this.setCssVar('--eui-app-sidebar-footer-height-default', '--eui-app-sidebar-footer-height');\n }\n\n public activateHeaderCssVars(): void {\n this.setCssVar('--eui-app-header-height-active', '--eui-app-header-height');\n }\n public activateBreadcrumbCssVars(): void {\n this.setCssVar('--eui-app-breadcrumb-height-active', '--eui-app-breadcrumb-height');\n }\n\n public activateTopMessageCssVars(height: number): void {\n this._setCssVarValue('--eui-app-top-message-height', `${height}px`);\n }\n\n public activateToolbarCssVars(): void {\n this.setCssVar('--eui-app-toolbar-height-active', '--eui-app-toolbar-height');\n }\n\n public activateFooterCssVars(): void {\n this.setCssVar('--eui-app-footer-height-active', '--eui-app-footer-height');\n }\n\n public setHeaderShrinkCssVar(active: boolean): void {\n if (active) {\n this.setCssVar('--eui-app-header-height-shrink', '--eui-app-header-height');\n } else {\n this.setCssVar('--eui-app-header-height-active', '--eui-app-header-height');\n }\n }\n\n public activateSidebarCssVars(): void {\n this.setCssVar('--eui-app-sidebar-width-active', '--eui-app-sidebar-width');\n this.setCssVar('--eui-app-sidebar-width-close-active', '--eui-app-sidebar-width-close');\n }\n\n public removeSidebarCssVars(): void {\n document.documentElement.style.removeProperty('--eui-app-sidebar-header-height');\n document.documentElement.style.removeProperty('--eui-app-sidebar-footer-height');\n document.documentElement.style.removeProperty('--eui-app-sidebar-width');\n document.documentElement.style.removeProperty('--eui-app-sidebar-width-close');\n }\n\n public activateSidebarHeaderCssVars(): void {\n this.setCssVar('--eui-app-sidebar-header-height-active', '--eui-app-sidebar-header-height');\n }\n\n public activateSidebarFooterCssVars(): void {\n this.setCssVar('--eui-app-sidebar-footer-height-active', '--eui-app-sidebar-footer-height');\n }\n\n /**\n * Gets the viewport height and width and multiple it by 1% to get a value for a vh/vw unit\n * Sets the value in the --eui-app-vh custom property to the root of the document\n * Sets the value in the --eui-app-vw custom property to the root of the document\n * Example for 100% height: calc(var(--eui-app-vh, 1vh) * 100);\n * Example for 50% height: calc(var(--eui-app-vh, 1vh) * 50);\n * Example for 50% width: calc(var(--eui-app-vw, 1vw) * 50);\n */\n public setAppViewportCssVars(): void {\n const vh = window.innerHeight * 0.01;\n const vw = window.innerWidth * 0.01;\n this._setCssVarValue('--eui-app-vh', `${vh}px`);\n this._setCssVarValue('--eui-app-vw', `${vw}px`);\n }\n\n /**\n * Returns the current value of --eui-base-font-size CSS variable\n */\n public getBaseFontSize(): string {\n return this.state.appBaseFontSize || this.getCssVarValue('--eui-base-font-size');\n }\n\n /**\n * Updates the current value of --eui-base-font-size CSS variable and the UIState appBaseFontSize\n */\n public setBaseFontSize(newsize: string): void {\n this.setState(\n {\n ...this.state,\n appBaseFontSize: newsize,\n },\n false,\n );\n this._setCssVarValue('--eui-base-font-size', newsize);\n }\n\n /**\n * @deprecated don't remove as it's used for external legacy project under v17 (csdr-eui-legacy) to support MWP transition\n */\n openModal(modalId?: string): void {\n document.body.classList.add('modal-open');\n if (!modalId) {\n modalId = 'single_modal';\n }\n\n this.activeModals.push({\n id: modalId,\n isOpen: true,\n });\n\n setTimeout(() => {\n const el = document.getElementById(modalId + '-close-button');\n if (el) {\n el.focus();\n }\n }, 100);\n }\n\n /**\n * @deprecated don't remove as it's used for external legacy project under v17 (csdr-eui-legacy) to support MWP transition\n */\n openMessageBox(messageBoxId?: string): void {\n if (!messageBoxId) {\n messageBoxId = 'messagebox_modal';\n }\n this.openModal(messageBoxId);\n }\n\n /**\n * @deprecated don't remove as it's used for external legacy project under v17 (csdr-eui-legacy) to support MWP transition\n */\n closeMessageBox(messageBoxId?: string): void {\n if (!messageBoxId) {\n messageBoxId = 'messagebox_modal';\n }\n this.closeModal(messageBoxId);\n }\n\n /**\n * @deprecated don't remove as it's used for external legacy project under v17 (csdr-eui-legacy) to support MWP transition\n */\n isModalOpen(modalId?: string): boolean {\n if (!modalId) {\n modalId = 'single_modal';\n }\n if (this.activeModals.length) {\n const modalIndex: number = this.findModalIndex(modalId);\n if (modalIndex !== -1) {\n return this.activeModals[modalIndex].isOpen;\n }\n }\n return false;\n }\n\n /**\n * @deprecated don't remove as it's used for external legacy project under v17 (csdr-eui-legacy) to support MWP transition\n */\n closeModal(modalId?: string): void {\n if (!modalId) {\n modalId = 'single_modal';\n }\n\n /**\n * Make sure we find the modal before splicing the activeModals array\n */\n const index = this.findModalIndex(modalId);\n if (index >= 0) {\n this.activeModals.splice(index, 1);\n }\n\n if (this.activeModals && this.activeModals.length <= 0) {\n document.body.classList.remove('modal-open');\n } else {\n // If there is still another (parent) modal dialog open, ensure it is focused upon to be able to close is with the ESC key:\n const lastModalId = this.activeModals[this.activeModals.length - 1].id;\n if (lastModalId) {\n setTimeout(() => {\n const el = document.getElementById(lastModalId + '-close-button');\n if (el) {\n el.focus();\n }\n }, 100);\n }\n }\n }\n\n /**\n * @deprecated don't remove as it's used for external legacy project under v17 (csdr-eui-legacy) to support MWP transition\n */\n findModalIndex(modalId: string): number {\n let index = -1;\n\n if (this.activeModals.length) {\n for (let i = 0; i < this.activeModals.length; i++) {\n if (this.activeModals[i].id === modalId) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n // ---------------\n // private getters\n // ---------------\n private getCssVarValue(inputProperty): string {\n return getComputedStyle(document.documentElement).getPropertyValue(inputProperty);\n }\n\n private setCssVar(inputProperty, outputProperty): void {\n const cssVarValue = this.cssVars.filter((v) => v.key === inputProperty)[0].value;\n this._setCssVarValue(outputProperty, cssVarValue);\n // console.log(inputProperty, outputProperty, cssVarValue);\n }\n\n private _setCssVarValue(varName, varValue): void {\n document.documentElement.style.setProperty(varName, varValue);\n }\n\n private getWrapperClasses(state: UIState, breakpoint: string): string {\n const classes: string[] = [];\n\n classes.push(breakpoint);\n\n if (state.hasSidebar) {\n if (state.isSidebarOpen && (state.isSidebarActive || state.isSidebarInnerActive)) {\n classes.push('sidebar-state-open');\n }\n if (!state.isSidebarOpen && (state.isSidebarActive || state.isSidebarInnerActive)) {\n classes.push('sidebar-state-close');\n }\n if (state.isSidebarActive) {\n classes.push('sidebar-active');\n }\n if (state.isSidebarInnerActive) {\n classes.push('sidebar-inner-active');\n }\n if (state.isSidebarStateCloseWithIcons) {\n classes.push('sidebar-state-close-with-icons');\n }\n\n // NEW APP-SHELL props\n if (state.isSidebarHidden) {\n classes.push('sidebar--hidden');\n }\n if (state.isSidebarOpen) {\n classes.push('sidebar--open');\n } else {\n classes.push('sidebar--close');\n }\n if (state.isSidebarHover) {\n classes.push('sidebar--hover');\n }\n }\n if (state.deviceInfo && state.deviceInfo.isFF) {\n classes.push('ff');\n }\n if (state.deviceInfo && state.deviceInfo.isIE) {\n classes.push('ie');\n }\n if (state.deviceInfo && state.deviceInfo.isIE11) {\n classes.push('ie11');\n }\n if (state.deviceInfo && state.deviceInfo.isChrome) {\n classes.push('chrome');\n }\n return classes.join(' ');\n }\n\n private getBreakpoint(windowWidth: number): string {\n let bkp = '';\n\n switch (true) {\n case windowWidth >= 0 && windowWidth < 576:\n bkp = 'xs';\n break;\n case windowWidth >= 576 && windowWidth < 768:\n bkp = 'sm';\n break;\n case windowWidth >= 768 && windowWidth < 992:\n bkp = 'md';\n break;\n case windowWidth >= 992 && windowWidth < 1200:\n bkp = 'lg';\n break;\n case windowWidth >= 1200 && windowWidth < 1400:\n bkp = 'xl';\n break;\n case windowWidth >= 1400 && windowWidth < 1920:\n bkp = 'xxl';\n break;\n case windowWidth >= 1920 && windowWidth < 2560:\n bkp = 'fhd';\n break;\n case windowWidth >= 2560 && windowWidth < 3840:\n bkp = '2k';\n break;\n case windowWidth >= 3840:\n bkp = '4k';\n break;\n }\n return bkp;\n }\n\n private getBreakpoints(bkp: string): object {\n return {\n isMobile: bkp === 'xs' || bkp === 'sm',\n isTablet: bkp === 'md',\n isLtDesktop: bkp === 'xs' || bkp === 'sm' || bkp === 'md',\n isDesktop: bkp === 'lg',\n isXL: bkp === 'xl',\n isXXL: bkp === 'xxl',\n isFHD: bkp === 'fhd',\n is2K: bkp === '2k',\n is4K: bkp === '4k',\n };\n }\n\n private getJson(url: string): Promise<object> {\n return firstValueFrom(this.http.get(url)).then(this.extractData).catch(this.handleError);\n }\n\n private extractData(res: Response): object {\n const body = res;\n return body || {};\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private handleError(error: any): Promise<any> {\n console.error('An error occurred', error);\n return Promise.reject(error.message || error);\n }\n\n private bindActiveLanguageToAppShellState(): void {\n this.storeService.select(getActiveLang).subscribe((activeLang) => {\n if (activeLang !== this.state.activeLanguage) {\n this.setState(\n {\n ...this.state,\n activeLanguage: activeLang,\n },\n false,\n );\n }\n });\n }\n}\n","/* eslint-disable */\n\nimport { Injectable } from '@angular/core';\n\nexport const EUI_COUNTRIES = {\n AF: 'Afghanistan',\n AX: 'Aland Islands',\n AL: 'Albania',\n DZ: 'Algeria',\n AS: 'American Samoa',\n AD: 'Andorra',\n AO: 'Angola',\n AI: 'Anguilla',\n AQ: 'Antarctica',\n AG: 'Antigua and Barbuda',\n AR: 'Argentina',\n AM: 'Armenia',\n AW: 'Aruba',\n AU: 'Australia',\n AT: 'Austria',\n AZ: 'Azerbaijan',\n BS: 'Bahamas',\n BH: 'Bahrain',\n BD: 'Bangladesh',\n BB: 'Barbados',\n BY: 'Belarus',\n BE: 'Belgium',\n BZ: 'Belize',\n BJ: 'Benin',\n BM: 'Bermuda',\n BT: 'Bhutan',\n BO: 'Bolivia',\n BA: 'Bosnia and Herzegovina',\n BW: 'Botswana',\n BV: 'Bouvet Island',\n BR: 'Brazil',\n VG: 'British Virgin Islands',\n IO: 'British Indian Ocean Territory',\n BN: 'Brunei Darussalam',\n BG: 'Bulgaria',\n BF: 'Burkina Faso',\n BI: 'Burundi',\n KH: 'Cambodia',\n CM: 'Cameroon',\n CA: 'Canada',\n CV: 'Cape Verde',\n KY: 'Cayman Islands',\n CF: 'Central African Republic',\n TD: 'Chad',\n CL: 'Chile',\n CN: 'China',\n HK: 'Hong Kong',\n MO: 'Macao',\n CX: 'Christmas Island',\n CC: 'Cocos (Keeling) Islands',\n CO: 'Colombia',\n KM: 'Comoros',\n CG: 'Congo (Brazzaville)',\n CD: 'Congo, (Kinshasa)',\n CK: 'Cook Islands',\n CR: 'Costa Rica',\n CI: \"Côte d'Ivoire\",\n HR: 'Croatia',\n CU: 'Cuba',\n CY: 'Cyprus',\n CZ: 'Czech Republic',\n DK: 'Denmark',\n DJ: 'Djibouti',\n DM: 'Dominica',\n DO: 'Dominican Republic',\n EC: 'Ecuador',\n EG: 'Egypt',\n SV: 'El Salvador',\n GQ: 'Equatorial Guinea',\n ER: 'Eritrea',\n EE: 'Estonia',\n ET: 'Ethiopia',\n FK: 'Falkland Islands (Malvinas)',\n FO: 'Faroe Islands',\n FJ: 'Fiji',\n FI: 'Finland',\n FR: 'France',\n GF: 'French Guiana',\n PF: 'French Polynesia',\n TF: 'French Southern Territories',\n GA: 'Gabon',\n GM: 'Gambia',\n GE: 'Georgia',\n DE: 'Germany',\n GH: 'Ghana',\n GI: 'Gibraltar',\n GR: 'Greece',\n GL: 'Greenland',\n GD: 'Grenada',\n GP: 'Guadeloupe',\n GU: 'Guam',\n GT: 'Guatemala',\n GG: 'Guernsey',\n GN: 'Guinea',\n GW: 'Guinea-Bissau',\n GY: 'Guyana',\n HT: 'Haiti',\n HM: 'Heard and Mcdonald Islands',\n VA: 'Vatican City State',\n HN: 'Honduras',\n HU: 'Hungary',\n IS: 'Iceland',\n IN: 'India',\n ID: 'Indonesia',\n IR: 'Iran',\n IQ: 'Iraq',\n IE: 'Ireland',\n IM: 'Isle of Man',\n IL: 'Israel',\n IT: 'Italy',\n JM: 'Jamaica',\n JP: 'Japan',\n JE: 'Jersey',\n JO: 'Jordan',\n KZ: 'Kazakhstan',\n KE: 'Kenya',\n KI: 'Kiribati',\n KP: 'Korea (North)',\n KR: 'Korea (South)',\n KW: 'Kuwait',\n KG: 'Kyrgyzstan',\n LA: 'Lao PDR',\n LV: 'Latvia',\n LB: 'Lebanon',\n LS: 'Lesotho',\n LR: 'Liberia',\n LY: 'Libya',\n LI: 'Liechtenstein',\n LT: 'Lithuania',\n LU: 'Luxembourg',\n MK: 'Macedonia',\n MG: 'Madagascar',\n MW: 'Malawi',\n MY: 'Malaysia',\n MV: 'Maldives',\n ML: 'Mali',\n MT: 'Malta',\n MH: 'Marshall Islands',\n MQ: 'Martinique',\n MR: 'Mauritania',\n MU: 'Mauritius',\n YT: 'Mayotte',\n MX: 'Mexico',\n FM: 'Micronesia',\n MD: 'Moldova',\n MC: 'Monaco',\n MN: 'Mongolia',\n ME: 'Montenegro',\n MS: 'Montserrat',\n MA: 'Morocco',\n MZ: 'Mozambique',\n MM: 'Myanmar',\n NA: 'Namibia',\n NR: 'Nauru',\n NP: 'Nepal',\n NL: 'Netherlands',\n AN: 'Netherlands Antilles',\n NC: 'New Caledonia',\n NZ: 'New Zealand',\n NI: 'Nicaragua',\n NE: 'Niger',\n NG: 'Nigeria',\n NU: 'Niue',\n NF: 'Norfolk Island',\n MP: 'Northern Mariana Islands',\n NO: 'Norway',\n OM: 'Oman',\n PK: 'Pakistan',\n PW: 'Palau',\n PS: 'Palestinian Territory',\n PA: 'Panama',\n PG: 'Papua New Guinea',\n PY: 'Paraguay',\n PE: 'Peru',\n PH: 'Philippines',\n PN: 'Pitcairn',\n PL: 'Poland',\n PT: 'Portugal',\n PR: 'Puerto Rico',\n QA: 'Qatar',\n RE: 'Réunion',\n RO: 'Romania',\n RU: 'Russian Federation',\n RW: 'Rwanda',\n BL: 'Saint-Barthélemy',\n SH: 'Saint Helena',\n KN: 'Saint Kitts and Nevis',\n LC: 'Saint Lucia',\n MF: 'Saint-Martin (French part)',\n PM: 'Saint Pierre and Miquelon',\n VC: 'Saint Vincent and Grenadines',\n WS: 'Samoa',\n SM: 'San Marino',\n ST: 'Sao Tome and Principe',\n SA: 'Saudi Arabia',\n SN: 'Senegal',\n RS: 'Serbia',\n SC: 'Seychelles',\n SL: 'Sierra Leone',\n SG: 'Singapore',\n SK: 'Slovakia',\n SI: 'Slovenia',\n SB: 'Solomon Islands',\n SO: 'Somalia',\n ZA: 'South Africa',\n GS: 'South Georgia and the South Sandwich Islands',\n SS: 'South Sudan',\n ES: 'Spain',\n LK: 'Sri Lanka',\n SD: 'Sudan',\n SR: 'Suriname',\n SJ: 'Svalbard and Jan Mayen Islands',\n SZ: 'Swaziland',\n SE: 'Sweden',\n CH: 'Switzerland',\n SY: 'Syria',\n TW: 'Taiwan',\n TJ: 'Tajikistan',\n TZ: 'Tanzania',\n TH: 'Thailand',\n TL: 'Timor-Leste',\n TG: 'Togo',\n TK: 'Tokelau',\n TO: 'Tonga',\n TT: 'Trinidad and Tobago',\n TN: 'Tunisia',\n TR: 'Turkey',\n TM: 'Turkmenistan',\n TC: 'Turks and Caicos Islands',\n TV: 'Tuvalu',\n UG: 'Uganda',\n UA: 'Ukraine',\n AE: 'United Arab Emirates',\n GB: 'United Kingdom (GB)',\n US: 'United States of America (USA)',\n UM: 'US Minor Outlying Islands',\n UY: 'Uruguay',\n UZ: 'Uzbekistan',\n VU: 'Vanuatu',\n VE: 'Venezuela',\n VN: 'Viet Nam',\n VI: 'Virgin Islands, US',\n WF: 'Wallis and Futuna Islands',\n EH: 'Western Sahara',\n YE: 'Yemen',\n ZM: 'Zambia',\n ZW: 'Zimbabwe',\n};\n\nexport interface EuiTimeZone {\n name: string;\n desc: string;\n}\n\nexport const EUI_TIMEZONES: EuiTimeZone[] = [\n { name: 'Europe/Andorra', desc: 'Andorra - Andorra (GMT+02:00)' },\n { name: 'Asia/Dubai', desc: 'United Arab Emirates - Dubai (GMT+04:00)' },\n { name: 'Asia/Kabul', desc: 'Afghanistan - Kabul (GMT+04:30)' },\n { name: 'America/Antigua', desc: 'Antigua and Barbuda - Antigua (GMT-04:00)' },\n { name: 'America/Anguilla', desc: 'Anguilla - Anguilla (GMT-04:00)' },\n { name: 'Europe/Tirane', desc: 'Albania - Tirane (GMT+02:00)' },\n { name: 'Asia/Yerevan', desc: 'Armenia - Yerevan (GMT+04:00)' },\n { name: 'Africa/Luanda', desc: 'Angola - Luanda (GMT+01:00)' },\n { name: 'Antarctica/McMurdo', desc: 'Antarctica - McMurdo (GMT+12:00)' },\n { name: 'Antarctica/Rothera', desc: 'Antarctica - Rothera (GMT-03:00)' },\n { name: 'Antarctica/Palmer', desc: 'Antarctica - Palmer (GMT-03:00)' },\n { name: 'Antarctica/Mawson', desc: 'Antarctica - Mawson (GMT+05:00)' },\n { name: 'Antarctica/Davis', desc: 'Antarctica - Davis (GMT+07:00)' },\n { name: 'Antarctica/Casey', desc: 'Antarctica - Casey (GMT+08:00)' },\n { name: 'Antarctica/Vostok', desc: 'Antarctica - Vostok (GMT+06:00)' },\n { name: 'Antarctica/DumontDUrville', desc: 'Antarctica - DumontDUrville (GMT+10:00)' },\n { name: 'Antarctica/Syowa', desc: 'Antarctica - Syowa (GMT+03:00)' },\n { name: 'Antarctica/Troll', desc: 'Antarctica - Troll (GMT+02:00)' },\n { name: 'America/Argentina/Buenos_Aires', desc: 'Argentina - Buenos Aires (GMT-03:00)' },\n { name: 'America/Argentina/Cordoba', desc: 'Argentina - Cordoba (GMT-03:00)' },\n { name: 'America/Argentina/Salta', desc: 'Argentina - Salta (GMT-03:00)' },\n { name: 'America/Argentina/Jujuy', desc: 'Argentina - Jujuy (GMT-03:00)' },\n { name: 'America/Argentina/Tucuman', desc: 'Argentina - Tucuman (GMT-03:00)' },\n { name: 'America/Argentina/Catamarca', desc: 'Argentina - Catamarca (GMT-03:00)' },\n { name: 'America/Argentina/La_Rioja', desc: 'Argentina - La Rioja (GMT-03:00)' },\n { name: 'America/Argentina/San_Juan', desc: 'Argentina - San Juan (GMT-03:00)' },\n { name: 'America/Argentina/Mendoza', desc: 'Argentina - Mendoza (GMT-03:00)' },\n { name: 'America/Argentina/San_Luis', desc: 'Argentina - San Luis (GMT-03:00)' },\n { name: 'America/Argentina/Rio_Gallegos', desc: 'Argentina - Rio Gallegos (GMT-03:00)' },\n { name: 'America/Argentina/Ushuaia', desc: 'Argentina - Ushuaia (GMT-03:00)' },\n { name: 'Pacific/Pago_Pago', desc: 'American Samoa - Pago Pago (GMT-11:00)' },\n { name: 'Pacific/Samoa', desc: 'American Samoa - Samoa (GMT-11:00)' },\n { name: 'Europe/Vienna', desc: 'Austria - Vienna (GMT+02:00)' },\n { name: 'Australia/Lord_Howe', desc: 'Australia - Lord Howe (GMT+10:30)' },\n { name: 'Antarctica/Macquarie', desc: 'Australia - Macquarie (GMT+11:00)' },\n { name: 'Australia/Hobart', desc: 'Australia - Hobart (GMT+10:00)' },\n { name: 'Australia/Currie', desc: 'Australia - Currie (GMT+10:00)' },\n { name: 'Australia/Melbourne', desc: 'Australia - Melbourne (GMT+10:00)' },\n { name: 'Australia/Sydney', desc: 'Australia - Sydney (GMT+10:00)' },\n { name: 'Australia/Broken_Hill', desc: 'Australia - Broken Hill (GMT+09:30)' },\n { name: 'Australia/Brisbane', desc: 'Australia - Brisbane (GMT+10:00)' },\n { name: 'Australia/Lindeman', desc: 'Australia - Lindeman (GMT+10:00)' },\n { name: 'Australia/Adelaide', desc: 'Australia - Adelaide (GMT+09:30)' },\n { name: 'Australia/Darwin', desc: 'Australia - Darwin (GMT+09:30)' },\n { name: 'Australia/Perth', desc: 'Australia - Perth (GMT+08:00)' },\n { name: 'Australia/Eucla', desc: 'Australia - Eucla (GMT+08:45)' },\n { name: 'Australia/Canberra', desc: 'Australia - Canberra (GMT+10:00)' },\n { name: 'Australia/Queensland', desc: 'Australia - Queensland (GMT+10:00)' },\n { name: 'Australia/Tasmania', desc: 'Australia - Tasmania (GMT+10:00)' },\n { name: 'Australia/Victoria', desc: 'Australia - Victoria (GMT+10:00)' },\n { name: 'America/Aruba', desc: 'Aruba - Aruba (GMT-04:00)' },\n { name: 'Europe/Mariehamn', desc: 'Aland Islands - Mariehamn (GMT+03:00)' },\n { name: 'Asia/Baku', desc: 'Azerbaijan - Baku (GMT+04:00)' },\n { name: 'Europe/Sarajevo', desc: 'Bosnia and Herzegovina - Sarajevo (GMT+02:00)' },\n { name: 'America/Barbados', desc: 'Barbados - Barbados (GMT-04:00)' },\n { name: 'Asia/Dhaka', desc: 'Bangladesh - Dhaka (GMT+06:00)' },\n { name: 'Europe/Brussels', desc: 'Belgium - Brussels (GMT+02:00)' },\n { name: 'Africa/Ouagadougou', desc: 'Burkina Faso - Ouagadougou (GMT+00:00)' },\n { name: 'Europe/Sofia', desc: 'Bulgaria - Sofia (GMT+03:00)' },\n { name: 'Asia/Bahrain', desc: 'Bahrain - Bahrain (GMT+03:00)' },\n { name: 'Africa/Bujumbura', desc: 'Burundi - Bujumbura (GMT+02:00)' },\n { name: 'Africa/Porto-Novo', desc: 'Benin - Porto-Novo (GMT+01:00)' },\n { name: 'America/St_Barthelemy', desc: 'Saint-Barthélemy - St Barthelemy (GMT-04:00)' },\n { name: 'Atlantic/Bermuda', desc: 'Bermuda - Bermuda (GMT-03:00)' },\n { name: 'Asia/Brunei', desc: 'Brunei Darussalam - Brunei (GMT+08:00)' },\n { name: 'America/La_Paz', desc: 'Bolivia - La Paz (GMT-04:00)' },\n { name: 'America/Kralendijk', desc: 'BQ - Kralendijk (GMT-04:00)' },\n { name: 'America/Noronha', desc: 'Brazil - Noronha (GMT-02:00)' },\n { name: 'America/Belem', desc: 'Brazil - Belem (GMT-03:00)' },\n { name: 'America/Fortaleza', desc: 'Brazil - Fortaleza (GMT-03:00)' },\n { name: 'America/Recife', desc: 'Brazil - Recife (GMT-03:00)' },\n { name: 'America/Araguaina', desc: 'Brazil - Araguaina (GMT-03:00)' },\n { name: 'America/Maceio', desc: 'Brazil - Maceio (GMT-03:00)' },\n { name: 'America/Bahia', desc: 'Brazil - Bahia (GMT-03:00)' },\n { name: 'America/Sao_Paulo', desc: 'Brazil - Sao Paulo (GMT-03:00)' },\n { name: 'America/Campo_Grande', desc: 'Brazil - Campo Grande (GMT-04:00)' },\n { name: 'America/Cuiaba', desc: 'Brazil - Cuiaba (GMT-04:00)' },\n { name: 'America/Santarem', desc: 'Brazil - Santarem (GMT-03:00)' },\n { name: 'America/Porto_Velho', desc: 'Brazil - Porto Velho (GMT-04:00)' },\n { name: 'America/Boa_Vista', desc: 'Brazil - Boa Vista (GMT-04:00)' },\n { name: 'America/Manaus', desc: 'Brazil - Manaus (GMT-04:00)' },\n { name: 'America/Eirunepe', desc: 'Brazil - Eirunepe (GMT-05:00)' },\n { name: 'America/Rio_Branco', desc: 'Brazil - Rio Branco (GMT-05:00)' },\n { name: 'America/Nassau', desc: 'Bahamas - Nassau (GMT-04:00)' },\n { name: 'Asia/Thimphu', desc: 'Bhutan - Thimphu (GMT+06:00)' },\n { name: 'Africa/Gaborone', desc: 'Botswana - Gaborone (GMT+02:00)' },\n { name: 'Europe/Minsk', desc: 'Belarus - Minsk (GMT+03:00)' },\n { name: 'America/Belize', desc: 'Belize - Belize (GMT-06:00)' },\n { name: 'America/St_Johns', desc: 'Canada - St Johns (GMT-02:30)' },\n { name: 'America/Halifax', desc: 'Canada - Halifax (GMT-03:00)' },\n { name: 'America/Glace_Bay', desc: 'Canada - Glace Bay (GMT-03:00)' },\n { name: 'America/Moncton', desc: 'Canada - Moncton (GMT-03:00)' },\n { name: 'America/Goose_Bay', desc: 'Canada - Goose Bay (GMT-03:00)' },\n { name: 'America/Blanc-Sablon', desc: 'Canada - Blanc-Sablon (GMT-04:00)' },\n { name: 'America/Toronto', desc: 'Canada - Toronto (GMT-04:00)' },\n { name: 'America/Nipigon', desc: 'Canada - Nipigon (GMT-04:00)' },\n { name: 'America/Thunder_Bay', desc: 'Canada - Thunder Bay (GMT-04:00)' },\n { name: 'America/Iqaluit', desc: 'Canada - Iqaluit (GMT-04:00)' },\n { name: 'America/Pangnirtung', desc: 'Canada - Pangnirtung (GMT-04:00)' },\n { name: 'America/Resolute', desc: 'Canada - Resolute (GMT-05:00)' },\n { name: 'America/Atikokan', desc: 'Canada - Atikokan (GMT-05:00)' },\n { name: 'America/Rankin_Inlet', desc: 'Canada - Rankin Inlet (GMT-05:00)' },\n { name: 'America/Winnipeg', desc: 'Canada - Winnipeg (GMT-05:00)' },\n { name: 'America/Rainy_River', desc: 'Canada - Rainy River (GMT-05:00)' },\n { name: 'America/Regina', desc: 'Canada - Regina (GMT-06:00)' },\n { name: 'America/Swift_Current', desc: 'Canada - Swift Current (GMT-06:00)' },\n { name: 'America/Edmonton', desc: 'Canada - Edmonton (GMT-06:00)' },\n { name: 'America/Cambridge_Bay', desc: 'Canada - Cambridge Bay (GMT-06:00)' },\n { name: 'America/Yellowknife', desc: 'Canada - Yellowknife (GMT-06:00)' },\n { name: 'America/Inuvik', desc: 'Canada - Inuvik (GMT-06:00)' },\n { name: 'America/Creston', desc: 'Canada - Creston (GMT-07:00)' },\n { name: 'America/Dawson_Creek', desc: 'Canada - Dawson Creek (GMT-07:00)' },\n { name: 'America/Vancouver', desc: 'Canada - Vancouver (GMT-07:00)' },\n { name: 'America/Whitehorse', desc: 'Canada - Whitehorse (GMT-07:00)' },\n { name: 'America/Dawson', desc: 'Canada - Dawson (GMT-07:00)' },\n { name: 'America/Montreal', desc: 'Canada - Montreal (GMT-04:00)' },\n { name: 'Canada/Atlantic', desc: 'Canada - Atlantic (GMT-03:00)' },\n { name: 'Canada/Central', desc: 'Canada - Central (GMT-05:00)' },\n { name: 'Canada/Eastern', desc: 'Canada - Eastern (GMT-04:00)' },\n { name: 'Canada/Mountain', desc: 'Canada - Mountain (GMT-06:00)' },\n { name: 'Canada/Newfoundland', desc: 'Canada - Newfoundland (GMT-02:30)' },\n { name: 'Canada/Pacific', desc: 'Canada - Pacific (GMT-07:00)' },\n { name: 'Canada/Saskatchewan', desc: 'Canada - Saskatchewan (GMT-06:00)' },\n { name: 'Canada/Yukon', desc: 'Canada - Yukon (GMT-07:00)' },\n { name: 'Indian/Cocos', desc: 'Cocos (Keeling) Islands - Cocos (GMT+06:30)' },\n { name: 'Africa/Kinshasa', desc: 'Congo, (Kinshasa) - Kinshasa (GMT+01:00)' },\n { name: 'Africa/Lubumbashi', desc: 'Congo, (Kinshasa) - Lubumbashi (GMT+02:00)' },\n { name: 'Africa/Bangui', desc: 'Central African Republic - Bangui (GMT+01:00)' },\n { name: 'Africa/Brazzaville', desc: 'Congo (Brazzaville) - Brazzaville (GMT+01:00)' },\n { name: 'Europe/Zurich', desc: 'Switzerland - Zurich (GMT+02:00)' },\n { name: 'Africa/Abidjan', desc: \"Côte d'Ivoire - Abidjan (GMT+00:00)\" },\n { name: 'Pacific/Rarotonga', desc: 'Cook Islands - Rarotonga (GMT-10:00)' },\n { name: 'America/Santiago', desc: 'Chile - Santiago (GMT-04:00)' },\n { name: 'Pacific/Easter', desc: 'Chile - Easter (GMT-06:00)' },\n { name: 'Chile/Continental', desc: 'Chile - Continental (GMT-04:00)' },\n { name: 'Chile/EasterIsland', desc: 'Chile - EasterIsland (GMT-06:00)' },\n { name: 'Africa/Douala', desc: 'Cameroon - Douala (GMT+01:00)' },\n { name: 'Asia/Shanghai', desc: 'China - Shanghai (GMT+08:00)' },\n { name: 'Asia/Harbin', desc: 'China - Harbin (GMT+08:00)' },\n { name: 'Asia/Chongqing', desc: 'China - Chongqing (GMT+08:00)' },\n { name: 'Asia/Urumqi', desc: 'China - Urumqi (GMT+06:00)' },\n { name: 'Asia/Kashgar', desc: 'China - Kashgar (GMT+06:00)' },\n { name: 'America/Bogota', desc: 'Colombia - Bogota (GMT-05:00)' },\n { name: 'America/Costa_Rica', desc: 'Costa Rica - Costa Rica (GMT-06:00)' },\n { name: 'America/Havana', desc: 'Cuba - Havana (GMT-04:00)' },\n { name: 'Atlantic/Cape_Verde', desc: 'Cape Verde - Cape Verde (GMT-01:00)' },\n { name: 'America/Curacao', desc: 'CW - Curacao (GMT-04:00)' },\n { name: 'Indian/Christmas', desc: 'Christmas Island - Christmas (GMT+07:00)' },\n { name: 'Asia/Nicosia', desc: 'Cyprus - Nicosia (GMT+03:00)' },\n { name: 'Europe/Prague', desc: 'Czech Republic - Prague (GMT+02:00)' },\n { name: 'Europe/Berlin', desc: 'Germany - Berlin (GMT+02:00)' },\n { name: 'Africa/Djibouti', desc: 'Djibouti - Djibouti (GMT+03:00)' },\n { name: 'Europe/Copenhagen', desc: 'Denmark - Copenhagen (GMT+02:00)' },\n { name: 'America/Dominica', desc: 'Dominica - Dominica (GMT-04:00)' },\n { name: 'America/Santo_Domingo', desc: 'Dominican Republic - Santo Domingo (GMT-04:00)' },\n { name: 'Africa/Algiers', desc: 'Algeria - Algiers (GMT+01:00)' },\n { name: 'America/Guayaquil', desc: 'Ecuador - Guayaquil (GMT-05:00)' },\n { name: 'Pacific/Galapagos', desc: 'Ecuador - Galapagos (GMT-06:00)' },\n { name: 'Europe/Tallinn', desc: 'Estonia - Tallinn (GMT+03:00)' },\n { name: 'Egypt', desc: 'Egypt - Egypt (GMT+02:00)' },\n { name: 'Africa/El_Aaiun', desc: 'Western Sahara - El Aaiun (GMT+00:00)' },\n { name: 'Africa/Asmara', desc: 'Eritrea - Asmara (GMT+03:00)' },\n { name: 'Europe/Madrid', desc: 'Spain - Madrid (GMT+02:00)' },\n { name: 'Africa/Ceuta', desc: 'Spain - Ceuta (GMT+02:00)' },\n { name: 'Atlantic/Canary', desc: 'Spain - Canary (GMT+01:00)' },\n { name: 'Africa/Addis_Ababa', desc: 'Ethiopia - Addis Ababa (GMT+03:00)' },\n { name: 'Europe/Helsinki', desc: 'Finland - Helsinki (GMT+03:00)' },\n { name: 'Pacific/Fiji', desc: 'Fiji - Fiji (GMT+12:00)' },\n { name: 'Atlantic/Stanley', desc: 'Falkland Islands (Malvinas) - Stanley (GMT-03:00)' },\n { name: 'Pacific/Chuuk', desc: 'Micronesia - Chuuk (GMT+10:00)' },\n { name: 'Pacific/Pohnpei', desc: 'Micronesia - Pohnpei (GMT+11:00)' },\n { name: 'Pacific/Kosrae', desc: 'Micronesia - Kosrae (GMT+11:00)' },\n { name: 'Atlantic/Faroe', desc: 'Faroe Islands - Faroe (GMT+01:00)' },\n { name: 'Europe/Paris', desc: 'France - Paris (GMT+02:00)' },\n { name: 'Africa/Libreville', desc: 'Gabon - Libreville (GMT+01:00)' },\n { name: 'Europe/London', desc: 'United Kingdom (GB) - London (GMT+01:00)' },\n { name: 'America/Grenada', desc: 'Grenada - Grenada (GMT-04:00)' },\n { name: 'Asia/Tbilisi', desc: 'Georgia - Tbilisi (GMT+04:00)' },\n { name: 'America/Cayenne', desc: 'French Guiana - Cayenne (GMT-03:00)' },\n { name: 'Europe/Guernsey', desc: 'Guernsey - Guernsey (GMT+01:00)' },\n { name: 'Africa/Accra', desc: 'Ghana - Accra (GMT+00:00)' },\n { name: 'Europe/Gibraltar', desc: 'Gibraltar - Gibraltar (GMT+02:00)' },\n { name: 'America/Godthab', desc: 'Greenland - Godthab (GMT-02:00)' },\n { name: 'America/Danmarkshavn', desc: 'Greenland - Danmarkshavn (GMT+00:00)' },\n { name: 'America/Scoresbysund', desc: 'Greenland - Scoresbysund (GMT+00:00)' },\n { name: 'America/Thule', desc: 'Greenland - Thule (GMT-03:00)' },\n { name: 'Africa/Banjul', desc: 'Gambia - Banjul (GMT+00:00)' },\n { name: 'Africa/Conakry', desc: 'Guinea - Conakry (GMT+00:00)' },\n { name: 'America/Guadeloupe', desc: 'Guadeloupe - Guadeloupe (GMT-04:00)' },\n { name: 'Africa/Malabo', desc: 'Equatorial Guinea - Malabo (GMT+01:00)' },\n { name: 'Europe/Athens', desc: 'Greece - Athens (GMT+03:00)' },\n { name: 'Atlantic/South_Georgia', desc: 'South Georgia and the South Sandwich Islands - South Georgia (GMT-02:00)' },\n { name: 'America/Guatemala', desc: 'Guatemala - Guatemala (GMT-06:00)' },\n { name: 'Pacific/Guam', desc: 'Guam - Guam (GMT+10:00)' },\n { name: 'Africa/Bissau', desc: 'Guinea-Bissau - Bissau (GMT+00:00)' },\n { name: 'America/Guyana', desc: 'Guyana - Guyana (GMT-04:00)' },\n { name: 'Asia/Hong_Kong', desc: 'Hong Kong - Hong Kong (GMT+08:00)' },\n { name: 'America/Tegucigalpa', desc: 'Honduras - Tegucigalpa (GMT-06:00)' },\n { name: 'Europe/Zagreb', desc: 'Croatia - Zagreb (GMT+02:00)' },\n { name: 'America/Port-au-Prince', desc: 'Haiti - Port-au-Prince (GMT-04:00)' },\n { name: 'Europe/Budapest', desc: 'Hungary - Budapest (GMT+02:00)' },\n { name: 'Asia/Jakarta', desc: 'Indonesia - Jakarta (GMT+07:00)' },\n { name: 'Asia/Pontianak', desc: 'Indonesia - Pontianak (GMT+07:00)' },\n { name: 'Asia/Makassar', desc: 'Indonesia - Makassar (GMT+08:00)' },\n { name: 'Asia/Jayapura', desc: 'Indonesia - Jayapura (GMT+09:00)' },\n { name: 'Europe/Dublin', desc: 'Ireland - Dublin (GMT+01:00)' },\n { name: 'Asia/Jerusalem', desc: 'Israel - Jerusalem (GMT+03:00)' },\n { name: 'Europe/Isle_of_Man', desc: 'Isle of Man - Isle of_Man (GMT+01:00)' },\n { name: 'Asia/Kolkata', desc: 'India - Kolkata (GMT+05:30)' },\n { name: 'Indian/Chagos', desc: 'British Indian Ocean Territory - Chagos (GMT+06:00)' },\n { name: 'Asia/Baghdad', desc: 'Iraq - Baghdad (GMT+03:00)' },\n { name: 'Asia/Tehran', desc: 'Iran - Tehran (GMT+04:30)' },\n { name: 'Atlantic/Reykjavik', desc: 'Iceland - Reykjavik (GMT+00:00)' },\n { name: 'Europe/Rome', desc: 'Italy - Rome (GMT+02:00)' },\n { name: 'Europe/Jersey', desc: 'Jersey - Jersey (GMT+01:00)' },\n { name: 'America/Jamaica', desc: 'Jamaica - Jamaica (GMT-05:00)' },\n { name: 'Asia/Amman', desc: 'Jordan - Amman (GMT+03:00)' },\n { name: 'Asia/Tokyo', desc: 'Japan - Tokyo (GMT+09:00)' },\n { name: 'Africa/Nairobi', desc: 'Kenya - Nairobi (GMT+03:00)' },\n { name: 'Asia/Bishkek', desc: 'Kyrgyzstan - Bishkek (GMT+06:00)' },\n { name: 'Asia/Phnom_Penh', desc: 'Cambodia - Phnom Penh (GMT+07:00)' },\n { name: 'Pacific/Tarawa', desc: 'Kiribati - Tarawa (GMT+12:00)' },\n { name: 'Pacific/Enderbury', desc: 'Kiribati - Enderbury (GMT+13:00)' },\n { name: 'Pacific/Kiritimati', desc: 'Kiribati - Kiritimati (GMT+14:00)' },\n { name: 'Indian/Comoro', desc: 'Comoros - Comoro (GMT+03:00)' },\n { name: 'America/St_Kitts', desc: 'Saint Kitts and Nevis - St Kitts (GMT-04:00)' },\n { name: 'Asia/Pyongyang', desc: 'Korea (North) - Pyongyang (GMT+09:00)' },\n { name: 'Asia/Seoul', desc: 'Korea (South) - Seoul (GMT+09:00)' },\n { name: 'Asia/Kuwait', desc: 'Kuwait - Kuwait (GMT+03:00)' },\n { name: 'America/Cayman', desc: 'Cayman Islands - Cayman (GMT-05:00)' },\n { name: 'Asia/Almaty', desc: 'Kazakhstan - Almaty (GMT+06:00)' },\n { name: 'Asia/Qyzylorda', desc: 'Kazakhstan - Qyzylorda (GMT+06:00)' },\n { name: 'Asia/Aqtobe', desc: 'Kazakhstan - Aqtobe (GMT+05:00)' },\n { name: 'Asia/Aqtau', desc: 'Kazakhstan - Aqtau (GMT+05:00)' },\n { name: 'Asia/Oral', desc: 'Kazakhstan - Oral (GMT+05:00)' },\n { name: 'Asia/Vientiane', desc: 'Lao PDR - Vientiane (GMT+07:00)' },\n { name: 'Asia/Beirut', desc: 'Lebanon - Beirut (GMT+03:00)' },\n { name: 'America/St_Lucia', desc: 'Saint Lucia - St Lucia (GMT-04:00)' },\n { name: 'Europe/Vaduz', desc: 'Liechtenstein - Vaduz (GMT+02:00)' },\n { name: 'Asia/Colombo', desc: 'Sri Lanka - Colombo (GMT+05:30)' },\n { name: 'Africa/Monrovia', desc: 'Liberia - Monrovia (GMT+00:00)' },\n { name: 'Africa/Maseru', desc: 'Lesotho - Maseru (GMT+02:00)' },\n { name: 'Europe/Vilnius', desc: 'Lithuania - Vilnius (GMT+03:00)' },\n { name: 'Europe/Luxembourg', desc: 'Luxembourg - Luxembourg (GMT+02:00)' },\n { name: 'Europe/Riga', desc: 'Latvia - Riga (GMT+03:00)' },\n { name: 'Africa/Tripoli', desc: 'Libya - Tripoli (GMT+02:00)' },\n { name: 'Africa/Casablanca', desc: 'Morocco - Casablanca (GMT+00:00)' },\n { name: 'Europe/Monaco', desc: 'Monaco - Monaco (GMT+02:00)' },\n { name: 'Europe/Chisinau', desc: 'Moldova - Chisinau (GMT+03:00)' },\n { name: 'Europe/Podgorica', desc: 'Montenegro - Podgorica (GMT+02:00)' },\n { name: 'America/Marigot', desc: 'Saint-Martin (French part) - Marigot (GMT-04:00)' },\n { name: 'Indian/Antananarivo', desc: 'Madagascar - Antananarivo (GMT+03:00)' },\n { name: 'Pacific/Majuro', desc: 'Marshall Islands - Majuro (GMT+12:00)' },\n { name: 'Pacific/Kwajalein', desc: 'Marshall Islands - Kwajalein (GMT+12:00)' },\n { name: 'Europe/Skopje', desc: 'Macedonia - Skopje (GMT+02:00)' },\n { name: 'Africa/Bamako', desc: 'Mali - Bamako (GMT+00:00)' },\n { name: 'Asia/Rangoon', desc: 'Myanmar - Rangoon (GMT+06:30)' },\n { name: 'Asia/Ulaanbaatar', desc: 'Mongolia - Ulaanbaatar (GMT+08:00)' },\n { name: 'Asia/Hovd', desc: 'Mongolia - Hovd (GMT+07:00)' },\n { name: 'Asia/Choibalsan', desc: 'Mongolia - Choibalsan (GMT+08:00)' },\n { name: 'Asia/Macau', desc: 'Macao - Macau (GMT+08:00)' },\n { name: 'Pacific/Saipan', desc: 'Northern Mariana Islands - Saipan (GMT+10:00)' },\n { name: 'America/Martinique', desc: 'Martinique - Martinique (GMT-04:00)' },\n { name: 'Africa/Nouakchott', desc: 'Mauritania - Nouakchott (GMT+00:00)' },\n { name: 'America/Montserrat', desc: 'Montserrat - Montserrat (GMT-04:00)' },\n { name: 'Europe/Malta', desc: 'Malta - Malta (GMT+02:00)' },\n { name: 'Indian/Mauritius', desc: 'Mauritius - Mauritius (GMT+04:00)' },\n { name: 'Indian/Maldives', desc: 'Maldives - Maldives (GMT+05:00)' },\n { name: 'Africa/Blantyre', desc: 'Malawi - Blantyre (GMT+02:00)' },\n { name: 'America/Mexico_City', desc: 'Mexico - Mexico City (GMT-05:00)' },\n { name: 'America/Cancun', desc: 'Mexico - Cancun (GMT-05:00)' },\n { name: 'America/Merida', desc: 'Mexico - Merida (GMT-05:00)' },\n { name: 'America/Monterrey', desc: 'Mexico - Monterrey (GMT-05:00)' },\n { name: 'America/Matamoros', desc: 'Mexico - Matamoros (GMT-05:00)' },\n { name: 'America/Mazatlan', desc: 'Mexico - Mazatlan (GMT-06:00)' },\n { name: 'America/Chihuahua', desc: 'Mexico - Chihuahua (GMT-06:00)' },\n { name: 'America/Ojinaga', desc: 'Mexico - Ojinaga (GMT-06:00)' },\n { name: 'America/Hermosillo', desc: 'Mexico - Hermosillo (GMT-07:00)' },\n { name: 'America/Tijuana', desc: 'Mexico - Tijuana (GMT-07:00)' },\n { name: 'America/Santa_Isabel', desc: 'Mexico - Santa Isabel (GMT-07:00)' },\n { name: 'America/Bahia_Banderas', desc: 'Mexico - Bahia Banderas (GMT-05:00)' },\n { name: 'Asia/Kuala_Lumpur', desc: 'Malaysia - Kuala Lumpur (GMT+08:00)' },\n { name: 'Asia/Kuching', desc: 'Malaysia - Kuching (GMT+08:00)' },\n { name: 'Africa/Maputo', desc: 'Mozambique - Maputo (GMT+02:00)' },\n { name: 'Africa/Windhoek', desc: 'Namibia - Windhoek (GMT+02:00)' },\n { name: 'Pacific/Noumea', desc: 'New Caledonia - Noumea (GMT+11:00)' },\n { name: 'Africa/Niamey', desc: 'Niger - Niamey (GMT+01:00)' },\n { name: 'Pacific/Norfolk', desc: 'Norfolk Island - Norfolk (GMT+11:00)' },\n { name: 'Africa/Lagos', desc: 'Nigeria - Lagos (GMT+01:00)' },\n { name: 'America/Managua', desc: 'Nicaragua - Managua (GMT-06:00)' },\n { name: 'Europe/Amsterdam', desc: 'Netherlands - Amsterdam (GMT+02:00)' },\n { name: 'Europe/Oslo', desc: 'Norway - Oslo (GMT+02:00)' },\n { name: 'Asia/Kathmandu', desc: 'Nepal - Kathmandu (GMT+05:45)' },\n { name: 'Pacific/Nauru', desc: 'Nauru - Nauru (GMT+12:00)' },\n { name: 'Pacific/Niue', desc: 'Niue - Niue (GMT-11:00)' },\n { name: 'Pacific/Auckland', desc: 'New Zealand - Auckland (GMT+12:00)' },\n { name: 'Pacific/Chatham', desc: 'New Zealand - Chatham (GMT+12:45)' },\n { name: 'Asia/Muscat', desc: 'Oman - Muscat (GMT+04:00)' },\n { name: 'America/Panama', desc: 'Panama - Panama (GMT-05:00)' },\n { name: 'America/Lima', desc: 'Peru - Lima (GMT-05:00)' },\n { name: 'Pacific/Tahiti', desc: 'French Polynesia - Tahiti (GMT-10:00)' },\n { name: 'Pacific/Marquesas', desc: 'French Polynesia - Marquesas (GMT-09:30)' },\n { name: 'Pacific/Gambier', desc: 'French Polynesia - Gambier (GMT-09:00)' },\n { name: 'Pacific/Port_Moresby', desc: 'Papua New Guinea - Port Moresby (GMT+10:00)' },\n { name: 'Asia/Manila', desc: 'Philippines - Manila (GMT+08:00)' },\n { name: 'Asia/Karachi', desc: 'Pakistan - Karachi (GMT+05:00)' },\n { name: 'Europe/Warsaw', desc: 'Poland - Warsaw (GMT+02:00)' },\n { name: 'Poland', desc: 'Poland - Poland (GMT+02:00)' },\n { name: 'America/Miquelon', desc: 'Saint Pierre and Miquelon - Miquelon (GMT-02:00)' },\n { name: 'Pacific/Pitcairn', desc: 'Pitcairn - Pitcairn (GMT-08:00)' },\n { name: 'America/Puerto_Rico', desc: 'Puerto Rico - Puerto Rico (GMT-04:00)' },\n { name: 'Asia/Gaza', desc: 'Palestinian Territory - Gaza (GMT+03:00)' },\n { name: 'Asia/Hebron', desc: 'Palestinian Territory - Hebron (GMT+03:00)' },\n { name: 'Europe/Lisbon', desc: 'Portugal - Lisbon (GMT+01:00)' },\n { name: 'Atlantic/Madeira', desc: 'Portugal - Madeira (GMT+01:00)' },\n { name: 'Atlantic/Azores', desc: 'Portugal - Azores (GMT+00:00)' },\n { name: 'Pacific/Palau', desc: 'Palau - Palau (GMT+09:00)' },\n { name: 'America/Asuncion', desc: 'Paraguay - Asuncion (GMT-04:00)' },\n { name: 'Asia/Qatar', desc: 'Qatar - Qatar (GMT+03:00)' },\n { name: 'Indian/Reunion', desc: 'Réunion - Reunion (GMT+04:00)' },\n { name: 'Europe/Bucharest', desc: 'Romania - Bucharest (GMT+03:00)' },\n { name: 'Europe/Belgrade', desc: 'Serbia - Belgrade (GMT+02:00)' },\n { name: 'Europe/Kaliningrad', desc: 'Russian Federation - Kaliningrad (GMT+02:00)' },\n { name: 'Europe/Moscow', desc: 'Russian Federation - Moscow (GMT+03:00)' },\n { name: 'Europe/Volgograd', desc: 'Russian Federation - Volgograd (GMT+03:00)' },\n { name: 'Europe/Samara', desc: 'Russian Federation - Samara (GMT+04:00)' },\n { name: 'Europe/Simferopol', desc: 'Russian Federation - Simferopol (GMT+03:00)' },\n { name: 'Asia/Yekaterinburg', desc: 'Russian Federation - Yekaterinburg (GMT+05:00)' },\n { name: 'Asia/Omsk', desc: 'Russian Federation - Omsk (GMT+06:00)' },\n { name: 'Asia/Novosibirsk', desc: 'Russian Federation - Novosibirsk (GMT+07:00)' },\n { name: 'Asia/Novokuznetsk', desc: 'Russian Federation - Novokuznetsk (GMT+07:00)' },\n { name: 'Asia/Krasnoyarsk', desc: 'Russian Federation - Krasnoyarsk (GMT+07:00)' },\n { name: 'Asia/Irkutsk', desc: 'Russian Federation - Irkutsk (GMT+08:00)' },\n { name: 'Asia/Yakutsk', desc: 'Russian Federation - Yakutsk (GMT+09:00)' },\n { name: 'Asia/Khandyga', desc: 'Russian Federation - Khandyga (GMT+09:00)' },\n { name: 'Asia/Vladivostok', desc: 'Russian Federation - Vladivostok (GMT+10:00)' },\n { name: 'Asia/Sakhalin', desc: 'Russian Federation - Sakhalin (GMT+11:00)' },\n { name: 'Asia/Ust-Nera', desc: 'Russian Federation - Ust-Nera (GMT+10:00)' },\n { name: 'Asia/Magadan', desc: 'Russian Federation - Magadan (GMT+11:00)' },\n { name: 'Asia/Kamchatka', desc: 'Russian Federation - Kamchatka (GMT+12:00)' },\n { name: 'Asia/Anadyr', desc: 'Russian Federation - Anadyr (GMT+12:00)' },\n { name: 'Africa/Kigali', desc: 'Rwanda - Kigali (GMT+02:00)' },\n { name: 'Asia/Riyadh', desc: 'Saudi Arabia - Riyadh (GMT+03:00)' },\n { name: 'Pacific/Guadalcanal', desc: 'Solomon Islands - Guadalcanal (GMT+11:00)' },\n { name: 'Indian/Mahe', desc: 'Seychelles - Mahe (GMT+04:00)' },\n { name: 'Africa/Khartoum', desc: 'Sudan - Khartoum (GMT+02:00)' },\n { name: 'Europe/Stockholm', desc: 'Sweden - Stockholm (GMT+02:00)' },\n { name: 'Asia/Singapore', desc: 'Singapore - Singapore (GMT+08:00)' },\n { name: 'Atlantic/St_Helena', desc: 'Saint Helena - St Helena (GMT+00:00)' },\n { name: 'Europe/Ljubljana', desc: 'Slovenia - Ljubljana (GMT+02:00)' },\n { name: 'Arctic/Longyearbyen', desc: 'Svalbard and Jan Mayen Islands - Longyearbyen (GMT+02:00)' },\n { name: 'Europe/Bratislava', desc: 'Slovakia - Bratislava (GMT+02:00)' },\n { name: 'Africa/Freetown', desc: 'Sierra Leone - Freetown (GMT+00:00)' },\n { name: 'Europe/San_Marino', desc: 'San Marino - San Marino (GMT+02:00)' },\n { name: 'Africa/Dakar', desc: 'Senegal - Dakar (GMT+00:00)' },\n { name: 'Africa/Mogadishu', desc: 'Somalia - Mogadishu (GMT+03:00)' },\n { name: 'America/Paramaribo', desc: 'Suriname - Paramaribo (GMT-03:00)' },\n { name: 'Africa/Juba', desc: 'South Sudan - Juba (GMT+03:00)' },\n { name: 'Africa/Sao_Tome', desc: 'Sao Tome and Principe - Sao Tome (GMT+01:00)' },\n { name: 'America/El_Salvador', desc: 'El Salvador - El Salvador (GMT-06:00)' },\n { name: 'America/Lower_Princes', desc: 'SX - Lower Princes (GMT-04:00)' },\n { name: 'Asia/Damascus', desc: 'Syria - Damascus (GMT+03:00)' },\n { name: 'Africa/Mbabane', desc: 'Swaziland - Mbabane (GMT+02:00)' },\n { name: 'America/Grand_Turk', desc: 'Turks and Caicos Islands - Grand Turk (GMT-04:00)' },\n { name: 'Africa/Ndjamena', desc: 'Chad - Ndjamena (GMT+01:00)' },\n { name: 'Indian/Kerguelen', desc: 'French Southern Territories - Kerguelen (GMT+05:00)' },\n { name: 'Africa/Lome', desc: 'Togo - Lome (GMT+00:00)' },\n { name: 'Asia/Bangkok', desc: 'Thailand - Bangkok (GMT+07:00)' },\n { name: 'Asia/Dushanbe', desc: 'Tajikistan - Dushanbe (GMT+05:00)' },\n { name: 'Pacific/Fakaofo', desc: 'Tokelau - Fakaofo (GMT+13:00)' },\n { name: 'Asia/Dili', desc: 'Timor-Leste - Dili (GMT+09:00)' },\n { name: 'Asia/Ashgabat', desc: 'Turkmenistan - Ashgabat (GMT+05:00)' },\n { name: 'Africa/Tunis', desc: 'Tunisia - Tunis (GMT+01:00)' },\n { name: 'Pacific/Tongatapu', desc: 'Tonga - Tongatapu (GMT+13:00)' },\n { name: 'Europe/Istanbul', desc: 'Turkey - Istanbul (GMT+03:00)' },\n { name: 'America/Port_of_Spain', desc: 'Trinidad and Tobago - Port of_Spain (GMT-04:00)' },\n { name: 'Pacific/Funafuti', desc: 'Tuvalu - Funafuti (GMT+12:00)' },\n { name: 'Asia/Taipei', desc: 'Taiwan - Taipei (GMT+08:00)' },\n { name: 'Africa/Dar_es_Salaam', desc: 'Tanzania - Dar es_Salaam (GMT+03:00)' },\n { name: 'Europe/Kiev', desc: 'Ukraine - Kiev (GMT+03:00)' },\n { name: 'Europe/Uzhgorod', desc: 'Ukraine - Uzhgorod (GMT+03:00)' },\n { name: 'Europe/Zaporozhye', desc: 'Ukraine - Zaporozhye (GMT+03:00)' },\n { name: 'Africa/Kampala', desc: 'Uganda - Kampala (GMT+03:00)' },\n { name: 'Pacific/Johnston', desc: 'US Minor Outlying Islands - Johnston (GMT-10:00)' },\n { name: 'Pacific/Midway', desc: 'US Minor Outlying Islands - Midway (GMT-11:00)' },\n { name: 'Pacific/Wake', desc: 'US Minor Outlying Islands - Wake (GMT+12:00)' },\n { name: 'America/New_York', desc: 'United States of America (USA) - New York (GMT-04:00)' },\n { name: 'America/Detroit', desc: 'United States of America (USA) - Detroit (GMT-04:00)' },\n { name: 'America/Kentucky/Louisville', desc: 'United States of America (USA) - Louisville (GMT-04:00)' },\n { name: 'America/Kentucky/Monticello', desc: 'United States of America (USA) - Monticello (GMT-04:00)' },\n { name: 'America/Indiana/Indianapolis', desc: 'United States of America (USA) - Indianapolis (GMT-04:00)' },\n { name: 'America/Indiana/Vincennes', desc: 'United States of America (USA) - Vincennes (GMT-04:00)' },\n { name: 'America/Indiana/Winamac', desc: 'United States of America (USA) - Winamac (GMT-04:00)' },\n { name: 'America/Indiana/Marengo', desc: 'United States of America (USA) - Marengo (GMT-04:00)' },\n { name: 'America/Indiana/Petersburg', desc: 'United States of America (USA) - Petersburg (GMT-04:00)' },\n { name: 'America/Indiana/Vevay', desc: 'United States of America (USA) - Vevay (GMT-04:00)' },\n { name: 'America/Chicago', desc: 'United States of America (USA) - Chicago (GMT-05:00)' },\n { name: 'America/Indiana/Tell_City', desc: 'United States of America (USA) - Tell City (GMT-05:00)' },\n { name: 'America/Indiana/Knox', desc: 'United States of America (USA) - Knox (GMT-05:00)' },\n { name: 'America/Menominee', desc: 'United States of America (USA) - Menominee (GMT-05:00)' },\n { name: 'America/North_Dakota/Center', desc: 'United States of America (USA) - Center (GMT-05:00)' },\n { name: 'America/North_Dakota/New_Salem', desc: 'United States of America (USA) - New Salem (GMT-05:00)' },\n { name: 'America/North_Dakota/Beulah', desc: 'United States of America (USA) - Beulah (GMT-05:00)' },\n { name: 'America/Denver', desc: 'United States of America (USA) - Denver (GMT-06:00)' },\n { name: 'America/Boise', desc: 'United States of America (USA) - Boise (GMT-06:00)' },\n { name: 'America/Phoenix', desc: 'United States of America (USA) - Phoenix (GMT-07:00)' },\n { name: 'America/Los_Angeles', desc: 'United States of America (USA) - Los Angeles (GMT-07:00)' },\n { name: 'America/Anchorage', desc: 'United States of America (USA) - Anchorage (GMT-08:00)' },\n { name: 'America/Juneau', desc: 'United States of America (USA) - Juneau (GMT-08:00)' },\n { name: 'America/Sitka', desc: 'United States of America (USA) - Sitka (GMT-08:00)' },\n { name: 'America/Yakutat', desc: 'United States of America (USA) - Yakutat (GMT-08:00)' },\n { name: 'America/Nome', desc: 'United States of America (USA) - Nome (GMT-08:00)' },\n { name: 'America/Adak', desc: 'United States of America (USA) - Adak (GMT-09:00)' },\n { name: 'America/Metlakatla', desc: 'United States of America (USA) - Metlakatla (GMT-08:00)' },\n { name: 'Pacific/Honolulu', desc: 'United States of America (USA) - Honolulu (GMT-10:00)' },\n { name: 'America/Montevideo', desc: 'Uruguay - Montevideo (GMT-03:00)' },\n { name: 'Asia/Samarkand', desc: 'Uzbekistan - Samarkand (GMT+05:00)' },\n { name: 'Asia/Tashkent', desc: 'Uzbekistan - Tashkent (GMT+05:00)' },\n { name: 'Europe/Vatican', desc: 'Vatican City State - Vatican (GMT+02:00)' },\n { name: 'America/St_Vincent', desc: 'Saint Vincent and Grenadines - St Vincent (GMT-04:00)' },\n { name: 'America/Caracas', desc: 'Venezuela - Caracas (GMT-04:00)' },\n { name: 'America/Tortola', desc: 'British Virgin Islands - Tortola (GMT-04:00)' },\n { name: 'America/St_Thomas', desc: 'Virgin Islands, US - St Thomas (GMT-04:00)' },\n { name: 'Asia/Ho_Chi_Minh', desc: 'Viet Nam - Ho Chi_Minh (GMT+07:00)' },\n { name: 'Pacific/Efate', desc: 'Vanuatu - Efate (GMT+11:00)' },\n { name: 'Pacific/Wallis', desc: 'Wallis and Futuna Islands - Wallis (GMT+12:00)' },\n { name: 'Pacific/Apia', desc: 'Samoa - Apia (GMT+13:00)' },\n { name: 'Asia/Aden', desc: 'Yemen - Aden (GMT+03:00)' },\n { name: 'Indian/Mayotte', desc: 'Mayotte - Mayotte (GMT+03:00)' },\n { name: 'Africa/Johannesburg', desc: 'South Africa - Johannesburg (GMT+02:00)' },\n { name: 'Africa/Lusaka', desc: 'Zambia - Lusaka (GMT+02:00)' },\n { name: 'Africa/Harare', desc: 'Zimbabwe - Harare (GMT+02:00)' },\n];\n\n@Injectable()\nexport class EuiTimezoneService {\n /**\n * Convert country ISO code to country name (in english)\n */\n iso2country(iso: string): string {\n return EUI_COUNTRIES[iso] ? EUI_COUNTRIES[iso] : iso;\n }\n\n /**\n * Gets the list of ISO-codes for all countries\n */\n getCountries(): string[] {\n const res: string[] = [];\n for (const prop of Object.keys(EUI_COUNTRIES)) {\n res.push(prop);\n }\n return res;\n }\n\n getTimezones(): EuiTimeZone[] {\n return EUI_TIMEZONES;\n }\n\n getTimezone(tz: string): EuiTimeZone {\n return EUI_TIMEZONES.find((item) => item.name === tz);\n }\n}\n","/**\n * Generic storage service. Concrete storage services must extend this class\n */\nexport abstract class StorageService {\n /**\n * utility function, to determine the storage implementation\n */\n abstract name(): string;\n\n /**\n * retrieve an object from storage\n * @param key the associated key\n * @returns the value or undefined, if case of error\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n abstract get(key: string): any;\n abstract get<T>(key: string): T;\n\n /**\n * sets an object in storage\n * @param key the associated key\n * @param value the value to set\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n abstract set(key: string, value: any): void;\n abstract set<T>(key: string, value: T): void;\n\n /**\n * removes an object from storage\n * @param key the associated key\n */\n abstract remove(key: string): void;\n}\n","import { StorageService } from './storage.service';\n\nexport class StorageServiceMock extends StorageService {\n name(): string {\n return null;\n }\n\n get(): null {\n return null;\n }\n\n set(): void { /* empty */ }\n\n remove(): void { /* empty */ }\n}\n","import { StorageService } from './storage.service';\nimport { Observable } from 'rxjs';\n\n/**\n * Generic asynchronous storage service. Concrete asynchronous storage services must extend this class\n */\nexport abstract class AsyncStorageService extends StorageService {\n /**\n * reflects the readiness of the storage\n * @returns one time emission Observable<any>\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n abstract ready(): Observable<any>;\n\n /**\n * retrieve an object from async storage\n * @param key the associated key\n * @returns one time emission Observable of value\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n abstract get(key: string): Observable<any>;\n abstract get<T>(key: string): Observable<T>;\n\n /**\n * sets an object in async storage\n * @param key the associated key\n * @param value the value to set\n * @returns one time emission Observable\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n abstract set(key: string, value: any): Observable<any>;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n abstract set<T>(key: string, value: T): Observable<any>;\n\n /**\n * removes an object from async storage\n * @param key the associated key\n * @returns one time emission Observable\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n abstract remove(key: string): Observable<any>;\n\n /**\n * asynchronous helper for set function\n * @param key the associated key\n * @param value the value to set\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setAsync(key: string, value: any): void;\n setAsync<T>(key: string, value: T): void {\n this.set(key, value).subscribe(() => { /* empty */ });\n }\n\n /**\n * asynchronous helper for remove function\n * @param key the associated key\n */\n removeAsync(key: string): void {\n this.remove(key).subscribe(() => { /* empty */ });\n }\n}\n","import { AsyncStorageService } from './async-storage.service';\nimport { Observable, of } from 'rxjs';\n\nexport class AsyncStorageServiceMock extends AsyncStorageService {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ready(): Observable<any> {\n return of({});\n }\n\n name(): string {\n return null;\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(): Observable<any> {\n return of({});\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(): Observable<any> {\n return of({});\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n remove(): Observable<any> {\n return of({});\n }\n\n setAsync(): void { /* empty */ }\n\n removeAsync(): void { /* empty */ }\n}\n","import { Injectable, Optional } from '@angular/core';\nimport { StorageService } from './storage.service';\nimport { LogService } from '../log/log.service';\n\n/**\n * localStorage service\n */\n@Injectable()\nexport class LocalStorageService extends StorageService {\n static NAME = 'LocalStorageService';\n\n constructor(@Optional() protected log: LogService) {\n super();\n }\n\n /**\n * the name of the storage service\n */\n name(): string {\n return LocalStorageService.NAME;\n }\n\n /**\n * retrieve an object from local storage\n * @param key the associated key\n * @returns the value or undefined, if case of error\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(key: string): any {\n try {\n const serialized = localStorage.getItem(key);\n return serialized && JSON.parse(serialized);\n } catch (err) {\n if (this.log) {\n this.log.error(this.name(), 'get', err);\n }\n return undefined;\n }\n }\n\n /**\n * sets an object in local storage\n * @param key the associated key\n * @param value the value to set\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(key: string, value: any): void {\n try {\n const serialized = JSON.stringify(value);\n localStorage.setItem(key, serialized);\n } catch (err) {\n if (this.log) {\n this.log.error(this.name(), 'set', err);\n }\n }\n }\n\n /**\n * removes an object from local storage\n * @param key the associated key\n */\n remove(key: string): void {\n try {\n localStorage.removeItem(key);\n } catch (err) {\n if (this.log) {\n this.log.error(this.name(), 'remove', err);\n }\n }\n }\n}\n","import { Injectable, Optional } from '@angular/core';\nimport { StorageService } from './storage.service';\nimport { LogService } from '../log/log.service';\n\n/**\n * sessionStorage service\n */\n@Injectable()\nexport class SessionStorageService extends StorageService {\n static NAME = 'SessionStorageService';\n\n constructor(@Optional() protected log: LogService) {\n super();\n }\n\n /**\n * the name of the storage service\n */\n name(): string {\n return SessionStorageService.NAME;\n }\n\n /**\n * retrieve an object from session storage\n * @param key the associated key\n * @returns the value or undefined, if case of error\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(key: string): any {\n try {\n const serialized = sessionStorage.getItem(key);\n return serialized && JSON.parse(serialized);\n } catch (err) {\n if (this.log) {\n this.log.error(this.name(), 'get', err);\n }\n return undefined;\n }\n }\n\n /**\n * sets an object in session storage\n * @param key the associated key\n * @param value the value to set\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(key: string, value: any): void {\n try {\n const serialized = JSON.stringify(value);\n sessionStorage.setItem(key, serialized);\n } catch (err) {\n if (this.log) {\n this.log.error(this.name(), 'set', err);\n }\n }\n }\n\n /**\n * removes an object from session storage\n * @param key the associated key\n */\n remove(key: string): void {\n try {\n sessionStorage.removeItem(key);\n } catch (err) {\n if (this.log) {\n this.log.error(this.name(), 'remove', err);\n }\n }\n }\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport { from, Observable } from 'rxjs';\nimport { take, tap } from 'rxjs/operators';\nimport * as lf from 'localforage';\nimport { AsyncStorageService } from './async-storage.service';\nimport { LogService } from '../log';\n\n/** @internal */\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const localForage: any = 'defineDriver' in lf ? lf : lf['default'];\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const LOCAL_FORAGE_SERVICE_CONFIG_TOKEN = new InjectionToken<any>('LOCAL_FORAGE_SERVICE_CONFIG');\n\n/**\n * localforage service, using the localForage javascript library\n * https://localforage.github.io/localForage\n */\n@Injectable()\nexport class LocalForageService extends AsyncStorageService {\n static NAME = 'LocalForageService';\n\n constructor(\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Inject(LOCAL_FORAGE_SERVICE_CONFIG_TOKEN) @Optional() protected config: any,\n @Optional() protected log: LogService,\n ) {\n super();\n // configure localforage, if specified\n if (config) {\n localForage.config(config);\n }\n }\n\n /**\n * the name of the storage service\n */\n name(): string {\n return LocalForageService.NAME;\n }\n\n /**\n * reflects the readiness of the storage\n * @returns one time emission Observable<void>\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ready(): Observable<any> {\n return from(localForage.ready()).pipe(\n take(1),\n tap({\n next: () => { /* empty */ },\n error: (err) => {\n if (this.log) {\n this.log.error(this.name(), 'ready', err);\n }\n },\n }),\n );\n }\n\n /**\n * retrieve an object from localforage\n * @param key the associated key\n * @returns one time emission Observable of value\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(key: string): Observable<any> {\n return from(localForage.getItem(key)).pipe(\n take(1),\n tap(\n () => { /* empty */ },\n (err) => {\n if (this.log) {\n this.log.error(this.name(), 'get', err);\n }\n },\n ),\n );\n }\n\n /**\n * sets an object in localforage\n * @param key the associated key\n * @param value the value to set\n * @returns one time emission Observable\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(key: string, value: any): Observable<any> {\n return from(localForage.setItem(key, value)).pipe(\n take(1),\n tap({\n next: () => { /* empty */\n },\n error: (err) => {\n if (this.log) {\n this.log.error(this.name(), 'set', err);\n }\n },\n }),\n );\n }\n\n /**\n * removes an object from localforage\n * @param key the associated key\n * @returns one time emission Observable\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n remove(key: string): Observable<any> {\n return from(localForage.removeItem(key)).pipe(\n take(1),\n tap({\n next: () => { /* empty */ },\n error: (err) => {\n if (this.log) {\n this.log.error(this.name(), 'remove', err);\n }\n },\n }),\n );\n }\n}\n","/**\n * Angular is using a gulp task to generate the locales that we dynamically import. This task can be found here\n * https://github.com/angular/angular/blob/master/tools/gulp-tasks/cldr/cldr-data.js\n * That task is utilizing the CLDR library to load and construct the locale for each region. This service is responsible\n * to load those locale dynamically upon request and to update the state of the eUI app.\n *\n * Parts that are handles through configuration:\n * - update of the LOCALE_ID token\n * - initial dynamical load of locales\n * - bind to translation service for locale changes\n */\n\nimport { Inject, Injectable, InjectionToken, LOCALE_ID, OnDestroy, Optional } from '@angular/core';\nimport { getLocaleId } from '@angular/common';\nimport {\n EuiService,\n EuiServiceStatus,\n getLocaleState,\n getLocaleServiceConfigFromBase,\n GlobalConfig,\n LocaleServiceConfig,\n LocaleState,\n Logger, CoreState,\n} from '@eui/base';\nimport { Observable, of, Subject, throwError } from 'rxjs';\nimport { catchError, filter, map, switchMap, take, takeUntil, tap } from 'rxjs/operators';\nimport { StoreService, UpdateLocaleStateAction } from '../store';\nimport { LogService } from '../log';\nimport { I18nService } from '../i18n';\nimport { GLOBAL_CONFIG_TOKEN } from '../config/tokens';\nimport { createSelector } from '@ngrx/store';\n\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type LocaleMapper = (locale: string) => any;\nexport const LOCALE_ID_MAPPER = new InjectionToken<LocaleMapper>('localeIdMapper');\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LocaleService<T extends LocaleState = LocaleState> extends EuiService<T | LocaleState> implements OnDestroy {\n private readonly logger: Logger;\n private subNotifier: Subject<void> = new Subject();\n protected config: LocaleServiceConfig;\n\n constructor(\n protected store: StoreService,\n @Inject(GLOBAL_CONFIG_TOKEN) protected baseGlobalConfig: GlobalConfig,\n @Inject(LOCALE_ID) protected locale_id: string,\n @Optional() @Inject(LOCALE_ID_MAPPER) private localeMapper: LocaleMapper,\n @Optional() private i18n: I18nService,\n @Optional() private log: LogService,\n ) {\n super({ id: getLocaleId(locale_id) });\n if (log) {\n this.logger = log.getLogger('core.LocaleService');\n }\n\n this.config = getLocaleServiceConfigFromBase(this.baseGlobalConfig);\n // in case no localeMapper provided, set the angular getLocaleId as default\n if (!this.localeMapper) {\n this.localeMapper = getLocaleId;\n }\n }\n\n ngOnDestroy(): void {\n this.subNotifier.next(void 0);\n this.subNotifier.complete();\n }\n\n getState<K = T>(mapFn?: (state: T) => K): Observable<K>;\n getState<a extends keyof T>(key?: a): Observable<T[a]>;\n getState<K>(keyOrMapFn?: ((state: T) => K) | string): Observable<K> {\n let selector: (s: T) => K | LocaleState = getLocaleState;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const dotNotationToObject = <O>(obj: O, key: string): any => key.split('.').reduce((slice, i) => slice[i], obj);\n\n if (keyOrMapFn) {\n switch (typeof keyOrMapFn) {\n case 'function':\n selector = createSelector(getLocaleState, keyOrMapFn);\n break;\n case 'string':\n selector = createSelector(getLocaleState, (state) => dotNotationToObject(state, keyOrMapFn));\n break;\n }\n }\n return this.store.select(selector).pipe(\n takeUntil(this.subNotifier),\n // in case service didn't init fallback to LOCALE_ID token value\n map((state) => (state ? state : this.stateInstance ? this.stateInstance : this.locale_id)),\n );\n }\n\n init(state?: LocaleState | undefined): Observable<EuiServiceStatus> {\n super.initEuiService();\n\n // bind language changes to locale changes\n if (this.config?.bindWithTranslate) {\n this.bindTranslateServiceLangChangeToState();\n }\n\n // dynamically load locale based on provided configuration\n const availableLocales = state?.available || this.config?.available || this.getBrowserLocales() || [this.currentLocale];\n return this.loadLocale(availableLocales).pipe(\n takeUntil(this.subNotifier),\n tap(() => this.updateState(state || { id: this.currentLocale })),\n );\n }\n\n /**\n * dynamically load locale and update the state\n */\n updateState(state: LocaleState): void {\n try {\n const id = this.localeMapper(state.id);\n this.store.dispatch(new UpdateLocaleStateAction({ ...state, id }));\n // update global TOKEN ID based on configuration\n if (this.config.affectGlobalLocale) {\n this.locale_id = id;\n }\n } catch (e) {\n const message = `Locale for '${state.id}' is not available.\n Please use addLocale('${state.id}') first`;\n if (this.log) {\n this.logger.info(message, e);\n }\n throw new Error(message);\n }\n }\n\n addLocale(id: string): Observable<EuiServiceStatus> {\n return this.loadLocale(id);\n }\n\n get previousLocale(): string {\n return this.prevStateInstance?.id || this.currentLocale;\n }\n\n get currentLocale(): string {\n return this.stateInstance?.id;\n }\n\n /**\n * load and register locale data dynamically\n *\n * @param locale array of locale to load\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private loadLocale(locale: string[] | string): Observable<EuiServiceStatus> {\n // locale = Array.isArray(locale) ? locale : [locale];\n // const localeImports: Observable<{ data: any, localeId: string, extraData: any }>[]\n // = this.filterRegisteredLocales(locale).map(this.importDataAndExtraLocale.bind(this));\n //\n // // in case localeImports array is empty because locale exists, Observable still needs to complete\n // if (localeImports.length < 1) {\n // return of({ success: true });\n // }\n //\n // return forkJoin(...localeImports).pipe(\n // takeUntil(this.subNotifier),\n // map(localeData => {\n // // filter out null results and registerLocaleData including extra\n // localeData.filter(({ data }) => data)\n // .forEach(({ data, localeId, extraData }) => registerLocaleData(data, localeId, extraData));\n // return { success: true };\n // }),\n // catchError(error => {\n // if (this.log) {\n // this.logger.debug(`Locale load error: ${error.message}`, error);\n // }\n // return of({ success: false, error: error });\n // })\n // );\n return of({ success: true });\n }\n\n /**\n * listen for language changes and dynamically set locale accordingly. In case of non registered locale register it\n * dynamically.\n */\n private bindTranslateServiceLangChangeToState(): void {\n if (this.i18n) {\n this.i18n.onStateChange\n .pipe(\n takeUntil(this.subNotifier),\n // filter out null values\n filter((state) => state?.activeLang !== null && state?.activeLang !== undefined),\n // BEWARE: filter is based on convention that locale id sliced(2) will match activeLang e.g. en-US => en\n // Also, if activeLang is 'en' and locale is 'en-GB' it will not trigger locale change\n filter((state) => state.activeLang.toLowerCase() !== this.stateInstance?.id.slice(0, 2).toLowerCase()),\n // to check if registration of locale otherwise register it\n switchMap((value) =>\n of(value).pipe(\n // getLocaleId may throw Error(`Missing locale data for the locale \"${locale}\".`);\n switchMap((i18state) => {\n // check if activeLang is null or undefined\n if (!i18state.activeLang) {\n return throwError('Has i18nService initialized? If not make sure i18nService.init().subscribe(..)');\n }\n return of(this.localeMapper(i18state.activeLang));\n }),\n catchError((error) => {\n if (this.log) {\n this.logger.debug(error);\n }\n return this.loadLocale(value?.activeLang).pipe(\n filter((s: EuiServiceStatus) => s.success),\n map(() => this.localeMapper(value?.activeLang)),\n catchError((e) => {\n if (this.log) {\n this.logger.debug('Something went terribly really wrong during locale loading', e.err.message);\n }\n return of(e);\n }),\n );\n }),\n ),\n ),\n // update the \"available\" array attribute with newly registered\n switchMap((id) =>\n this.getState().pipe(\n take(1),\n map((state: LocaleState) => {\n const available = state?.available ? state.available : [];\n return { ...state, id, available: Array.from(new Set([...available, id])) };\n }),\n ),\n ),\n )\n .subscribe((state: LocaleState) => {\n this.updateState(state);\n });\n }\n }\n\n /**\n * retrieve locales from browser\n *\n * @param options\n */\n private getBrowserLocales(): string[] {\n const browserLocales = navigator.languages === undefined ? [navigator.language] : navigator.languages;\n\n if (!browserLocales) {\n return undefined;\n }\n\n return browserLocales.map((locale) => locale.trim());\n }\n\n /**\n * if locale is already registered filtered out.\n *\n * @param locales A string array contains all locale id e.g. [\"el\", \"el-CY\"]\n */\n private filterRegisteredLocales(locales: string[]): string[] {\n return locales.filter((loc: string) => {\n try {\n getLocaleId(loc);\n return false;\n } catch (e) {\n return true;\n }\n });\n }\n\n /**\n * returns an Observable which loads the locale based on provided ID\n *\n * @param id the locale id e.g. en, el-CY\n * @private\n */\n // private importLocale(id: string): Promise<any> {\n // // in case of an error, catch it and return null\n // return import(\n // /* webpackExclude: /\\.d\\.ts$/ */\n // /* webpackMode: \"lazy-once\" */\n // /* webpackChunkName: \"i18n-base\" */\n // `@/../node_modules/@angular/common/locales/${id}`)\n // .then(m => m.default)\n // .catch(error => {\n // if (this.log) {\n // this.logger.debug(`Locale with ID: \"${id}\" failed to load. Error: ${error.message}`, error);\n // }\n // return null;\n // });\n // }\n\n /**\n * returns a Promise which loads the locale based on provided ID\n *\n * @param id the locale id e.g. en, el-CY\n * @private\n */\n // private importExtraLocale(id: string): Promise<any> {\n // // in case of an error, catch it and return null\n // return import(\n // /* webpackExclude: /\\.d\\.ts$/ */\n // /* webpackMode: \"lazy-once\" */\n // /* webpackChunkName: \"i18n-extra\" */\n // `@/../node_modules/@angular/common/locales/extra/${id}`)\n // .then(m => m.default)\n // .catch(error => {\n // if (this.log) {\n // this.logger.debug(`Extra Locale with ID: \"${id}\" failed to load. Error: ${error.message}`, error);\n // }\n // return null;\n // });\n // }\n\n /**\n * Imports Locale and then Extra. It returns the Object which registerLocale(...) function needs.\n *\n * @param localeId The id of the locale\n * @private\n */\n // private importDataAndExtraLocale(localeId: string): Observable<{ data: any, localeId: string, extraData: any }> {\n // return from(this.importLocale(localeId)).pipe(\n // mergeMap((data) => from(this.importExtraLocale(localeId)).pipe(map((extraData) =>\n // Object.assign({}, { data, localeId, extraData }))),\n // 1\n // ));\n // }\n}\n","import { Optional, Inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { EuiServiceStatus, LocaleState } from '@eui/base';\nimport { LocaleService } from './locale.service';\nimport localeFr from '@angular/common/locales/fr';\nimport localeEl from '@angular/common/locales/el';\nimport { registerLocaleData } from '@angular/common';\n\n@Injectable()\nexport class LocaleServiceMock extends LocaleService {\n private DEFAULT_LOCALE = 'en';\n private stateSubject: BehaviorSubject<LocaleState> = new BehaviorSubject<LocaleState>({ id: this.DEFAULT_LOCALE });\n\n constructor(@Optional() @Inject(LOCALE_ID) protected locale_id: string) {\n super(null, { locale: { id: 'en', available: [] } }, locale_id, null, null, null);\n }\n\n getState(): Observable<LocaleState> {\n return this.stateSubject.asObservable();\n }\n\n updateState(state: LocaleState): void {\n this.DEFAULT_LOCALE = state.id || 'en';\n if (state.id === 'fr') {\n registerLocaleData(localeFr, 'fr');\n } else if (state.id === 'el') {\n registerLocaleData(localeEl, 'fr');\n }\n this.stateSubject.next(state);\n }\n\n init(state?: LocaleState): Observable<EuiServiceStatus> {\n this.DEFAULT_LOCALE = state.id || 'en';\n return of({ success: true });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { EuiService, EuiServiceStatus, getUserState, UserState } from '@eui/base';\nimport { StoreService, UpdateUserStateAction } from '../store';\nimport { createSelector } from '@ngrx/store';\n\n// export const USER_API_CONFIG_TOKEN = new InjectionToken<UserApiConfig>('USER_API_CONFIG');\n// export const DEFAULT_USER_PREFERENCES_TOKEN = new InjectionToken<BaseUserPreferences>('DEFAULT_USER_PREFERENCES');\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserService<T extends UserState = UserState> extends EuiService<T | UserState> {\n constructor(protected store: StoreService) {\n super({ userId: 'annonymous' });\n }\n\n init(userState: T): Observable<EuiServiceStatus> {\n super.initEuiService();\n // eslint-disable-next-line no-prototype-builtins\n if (typeof userState === 'object' && userState.hasOwnProperty('userId')) {\n this.updateState(userState);\n return of({ success: true });\n }\n return of({ success: false, error: 'Init object should be instance of BaseUserState' });\n }\n\n getState<K = T>(mapFn?: (state: T) => K): Observable<K>;\n getState<a extends keyof T>(key?: a): Observable<T[a]>;\n getState<K>(keyOrMapFn?: ((state: T) => K) | string): Observable<K> {\n let selector: (s: T) => K | UserState = getUserState;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const dotNotationToObject = <O>(obj: O, key: string): any => key.split('.').reduce((slice, i) => slice[i], obj);\n\n if (keyOrMapFn) {\n switch (typeof keyOrMapFn) {\n case 'function':\n selector = createSelector(getUserState, keyOrMapFn);\n break;\n case 'string':\n selector = createSelector(getUserState, (state) => dotNotationToObject(state, keyOrMapFn));\n break;\n }\n }\n\n return this.store.select(selector);\n }\n\n updateState(userState: T): void;\n // updateState<a extends keyof T>(slice: T[a], path: string);\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n updateState<a extends keyof T>(slice: T[a], reducer: (state: any, action: T[a]) => any): void;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n updateState<K extends UserState<T>>(userState: K | T, reducer?: any): void {\n // if (typeof pathOrReducer === 'string') {\n // let dotNotationToObject = (obj, key) => key.split('.').reduce((obj, i) => obj[i], obj);\n //\n // const customReducer = (state: UserState, action: UpdateUserDetailsAction): UserState => {\n // return Object.assign({}, dotNotationToObject(state, pathOrReducer), action.payload);\n // };\n // this.store.dispatchAction(userState, 'user', customReducer);\n // }\n\n if (reducer) {\n this.store.dispatchAction(userState, 'user', reducer);\n } else {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.store.dispatch(new UpdateUserStateAction(userState as any));\n }\n }\n}\n","import { Observable, of } from 'rxjs';\nimport { UserService } from './user.service';\nimport { Injectable } from '@angular/core';\nimport { EuiServiceStatus, UserState } from '@eui/base';\n\n@Injectable()\nexport class UserServiceMock<T> extends UserService {\n constructor() {\n super(null);\n }\n\n init(userState: UserState<T>): Observable<EuiServiceStatus> {\n return of({ success: true });\n }\n\n getState<K = T>(mapFn?: (state: T) => K): Observable<K>;\n getState<a extends keyof T>(key?: a): Observable<T[a]>;\n getState<K>(keyOrMapFn?: ((state: T) => K) | string): Observable<K> {\n return of({} as K);\n }\n\n updateState(userState: UserState<T>): void;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n updateState<a extends keyof T>(slice: T[a], reducer: (state: any, action: T[a]) => any): void;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n updateState<K>(userState: K | T, reducer?: any): void {\n /* empty */\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\n\nexport const LANG_PARAM_KEY = 'X-Lang-Param';\n\n/**\n * Interceptor for adding the current language as parameter\n * Add the header (LANG_PARAM_KEY, <language parameter>) to your request http headers\n */\n@Injectable()\nexport class AddLangParamInterceptor implements HttpInterceptor {\n constructor(protected translateService: TranslateService) {}\n\n intercept<T>(req: HttpRequest<T>, next: HttpHandler): Observable<HttpEvent<T>> {\n // take the lang param name from header, if specified\n const langParam = req.headers.get(LANG_PARAM_KEY);\n\n // if not specified, do nothing\n if (!langParam) {\n return next.handle(req);\n }\n\n // take the current language from the translate service\n const langValue = this.translateService.currentLang;\n\n return next.handle(\n req.clone({\n // remove the lang param header from headers\n headers: req.headers.delete(LANG_PARAM_KEY),\n // set the lang value as new parameter\n params: req.params.set(langParam, langValue),\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class CachePreventionInterceptor implements HttpInterceptor {\n intercept<T>(req: HttpRequest<T>, next: HttpHandler): Observable<HttpEvent<T>> {\n // if Cache-Control is already specified\n if (req.headers.get('Cache-Control')) {\n // keep the current configuration\n return next.handle(req);\n }\n\n return next.handle(\n req.clone({\n // prevent the cache\n headers: req.headers.set('Cache-Control', 'No-Cache'),\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class CorsSecurityInterceptor implements HttpInterceptor {\n intercept<T>(request: HttpRequest<T>, next: HttpHandler): Observable<HttpEvent<T>> {\n return next.handle(\n request.clone({\n withCredentials: true,\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class CsrfPreventionInterceptor implements HttpInterceptor {\n intercept<T>(request: HttpRequest<T>, next: HttpHandler): Observable<HttpEvent<T>> {\n return next.handle(\n request.clone({\n headers: request.headers.set('X-Requested-With', 'XMLHttpRequest'),\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse, HttpResponseBase } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\n// The EuLoginSessionTimeoutHandlingInterceptor assumes that the EU login client is configured with:\n// <redirectionInterceptor>eu.cec.digit.ecas.client.http.ajax.JsonAjaxRedirectionInterceptor</redirectionInterceptor>\n// WARNING: The default EU login client behaviour that provides the JSON-un-parsable login HTML page, is no longer supported!\n@Injectable()\nexport class EuLoginSessionTimeoutHandlingInterceptor implements HttpInterceptor {\n intercept<T>(request: HttpRequest<T>, next: HttpHandler): Observable<HttpEvent<T>> {\n return next.handle(request).pipe(\n tap(\n (event) => {\n this.checkRequestSuccessForEULoginSessionTimeout(request, event);\n return event;\n },\n (error) => {\n this.checkRequestErrorForEULoginSessionTimeout(request, error);\n },\n ),\n );\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected checkRequestSuccessForEULoginSessionTimeout(request: HttpRequest<any>, event: HttpEvent<any>): void {\n if (event instanceof HttpResponse) {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isSsoResponse((<HttpResponse<any>>event).body)) {\n this.reauthenticate();\n }\n }\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected checkRequestErrorForEULoginSessionTimeout(request: HttpRequest<any>, response: HttpResponseBase): void {\n /* intentionally blank; meant for overriding */\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected isSsoResponse(body: any): boolean {\n if (body) {\n if (typeof body !== 'string') {\n return (\n body.success === false &&\n body.status === 'ECAS_AUTHENTICATION_REQUIRED' &&\n body.code === 303 &&\n body.message === 'session expired'\n );\n } else {\n const html = body;\n try {\n return (\n (html.indexOf('<meta name=\"Keywords\" content=\"EU Login, ECAS, Authentication, Security\" />') >= 0 &&\n html.indexOf('<meta name=\"Description\" content=\"EU Login\" />') >= 0) ||\n html.indexOf('<meta name=\"Description\" content=\"European Commission Authentication Service\" />') >= 0 ||\n html.indexOf('<title>Mock Login Form</title>') >= 0 ||\n html.indexOf('<title>Redirecting To ECAS</title>') >= 0 ||\n html === '{ success : false, status : \"ECAS_AUTHENTICATION_REQUIRED\", code : 303, message : \"session expired\" }' ||\n // eslint-disable-next-line max-len\n JSON.stringify(JSON.parse(html)) ===\n JSON.stringify({\n success: false,\n status: 'ECAS_AUTHENTICATION_REQUIRED',\n code: 303,\n message: 'session expired',\n })\n );\n } catch (e) {\n return false;\n }\n }\n } else {\n return false;\n }\n }\n\n protected reauthenticate(): void {\n document.location.reload();\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { ErrorMappingHandler, transformToUxHttpResponse, UxHttpErrorResponse } from '@eui/base';\n\nexport const UX_ERROR_MAPPING_HANDLER_TOKEN = new InjectionToken<ErrorMappingHandler>('UX_ERROR_MAPPING_HANDLER');\n\n@Injectable()\nexport class UxRequestErrorModelInterceptor implements HttpInterceptor {\n constructor(@Inject(UX_ERROR_MAPPING_HANDLER_TOKEN) private errorMappingHandler: ErrorMappingHandler) {}\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return next.handle(req).pipe(\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n catchError((err: any) => {\n if (this.errorMappingHandler) {\n if (err instanceof HttpErrorResponse) {\n err = transformToUxHttpResponse(err, this.errorMappingHandler) as UxHttpErrorResponse;\n }\n }\n return of(err);\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpErrorResponse,\n HttpEvent,\n HttpEventType,\n HttpHandler,\n HttpHeaders,\n HttpInterceptor,\n HttpRequest,\n HttpResponse,\n} from '@angular/common/http';\nimport { Observable, of, Subject, Subscription, throwError } from 'rxjs';\nimport { catchError, finalize } from 'rxjs/operators';\n\n// This variable is declared in the javascript file openid-login.js\n// and will be imported in the eUI applications' index.html file, when necessary.\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndeclare let OpenIdConnect: any;\n\n@Injectable()\nexport class OpenIdConnectInterceptor implements HttpInterceptor {\n // By default, the original request should at least be retries once in case the cached API Gateway token expires:\n defaultMaximumRequestRetries = 1;\n\n constructor() {\n // check if the OpenIdConnect is defined\n if (typeof OpenIdConnect === 'undefined') {\n console.error(\n 'Please include the script openid-login.js in your index.html file.',\n 'For more details, please consult the documentation regarding the Http Interceptors and OpenID Connect configuration.',\n );\n }\n }\n\n intercept(\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n request: HttpRequest<any>,\n next: HttpHandler,\n retryCount = 0,\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n retryCallback?: Subject<HttpEvent<any>>,\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Observable<HttpEvent<any>> {\n if (typeof OpenIdConnect !== 'undefined') {\n let authorizedRequest = retryCallback;\n if (!authorizedRequest) {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n authorizedRequest = new Subject<HttpEvent<any>>();\n }\n\n let subscription = null;\n OpenIdConnect.getAuthorizationHeaders(\n request.urlWithParams,\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (headers: any) => {\n let newRequest = request;\n if (headers) {\n let newHeaders = request.headers;\n if (newHeaders) {\n for (const headerName in headers) {\n // eslint-disable-next-line no-prototype-builtins\n if (headers.hasOwnProperty(headerName)) {\n newHeaders = newHeaders.set(headerName, headers[headerName]);\n }\n }\n } else {\n newHeaders = new HttpHeaders(headers);\n }\n newRequest = request.clone({\n withCredentials: false,\n headers: newHeaders,\n });\n }\n\n // Don't mix the next line with the line below it.\n // We would get a \"Cannot access 'subscription' before initialization\" error.\n subscription = next\n .handle(newRequest)\n .pipe(\n catchError((response: HttpErrorResponse) =>\n this.handleErrorResponse(response, request, next, retryCount, authorizedRequest, subscription),\n ),\n )\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .subscribe((httpEvent: HttpResponse<any>) => {\n if (httpEvent) {\n authorizedRequest.next(httpEvent);\n if (httpEvent.type === HttpEventType.Response) {\n if (subscription) {\n subscription.unsubscribe();\n }\n authorizedRequest.complete();\n }\n }\n });\n },\n (errorResponse: XMLHttpRequest) => {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const errorProperties: any = {\n error: errorResponse,\n };\n if (errorResponse) {\n errorProperties.status = errorResponse.status;\n errorProperties.statusText = errorResponse.statusText;\n }\n\n return this.handleErrorResponse(\n new HttpErrorResponse(errorProperties),\n request,\n next,\n retryCount,\n authorizedRequest,\n null,\n );\n },\n );\n\n // EUI-3992 will cancel the xhr request when observable is unsubscribed from or terminated\n return authorizedRequest.pipe(\n finalize(() => {\n if (subscription) {\n subscription.unsubscribe();\n }\n }),\n );\n } else {\n return next.handle(request);\n }\n }\n\n protected handleErrorResponse(\n response: HttpErrorResponse,\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n originalRequest: HttpRequest<any>,\n next: HttpHandler,\n retryCount = 0,\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n retryCallback: Subject<HttpEvent<any>>,\n subscription: Subscription,\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Observable<HttpEvent<any>> {\n if (response) {\n if (response.error && response.error.error === 'invalid_request') {\n // The ID token is invalid or incorrect; retrieve another one:\n OpenIdConnect.renewIdToken();\n } else if (this.apiGatewayTokenExpired(response)) {\n OpenIdConnect.clearCachedApiGatewayAccessToken();\n return this.retryRequest(originalRequest, response, next, retryCount, retryCallback, subscription);\n } else if (response.status === 401 || response.status === 403) {\n // The EU Login access token is invalid. (403)\n // The target service is unable to read the access token, for example because the EU Login session ended. (401)\n // Retry in case the access token became invalid too quickly:\n return this.retryRequest(originalRequest, response, next, retryCount, retryCallback, subscription);\n } else if (response.status === 0) {\n // One of the access token requests or the original request was not sent.\n // Most likely one of the CORS pre-flight requests failed, or the browser is offline.\n console.warn(\n 'The OpenID Connect call may have issues:\\n' +\n '* the CORS pre-flight requests for the OpenID Connect access tokens or for the REST call could be failing\\n' +\n '* the browser could be currently offline.',\n );\n }\n }\n\n if (subscription) {\n subscription.unsubscribe();\n }\n if (retryCallback) {\n retryCallback.error(response);\n retryCallback.complete();\n }\n\n return throwError(response);\n }\n\n protected retryRequest(\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n originalRequest: HttpRequest<any>,\n response: HttpErrorResponse,\n next: HttpHandler,\n retryCount = 0,\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n retryCallback: Subject<HttpEvent<any>>,\n subscription: Subscription,\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Observable<HttpEvent<any>> {\n if (retryCount < this.maximumRequestRetries()) {\n this.intercept(originalRequest, next, retryCount + 1, retryCallback);\n } else {\n console.error(\n 'The OpenID Connect call may have issues:\\n' +\n '* the client ID could be invalid\\n' +\n '* the API Gateway access token could be invalid\\n' +\n '* the EU Login access token for the target service could be invalid.',\n );\n if (subscription) {\n subscription.unsubscribe();\n }\n if (retryCallback) {\n retryCallback.error(response);\n retryCallback.complete();\n }\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return of<HttpEvent<any>>(null);\n }\n\n protected apiGatewayTokenExpired(response: HttpErrorResponse): boolean {\n if (response && response.status === 401) {\n const message = '' + response.error;\n return message.indexOf('<ams:code>900901</ams:code>') >= 0;\n } else {\n return false;\n }\n }\n\n protected maximumRequestRetries(): number {\n if (OpenIdConnect.config && OpenIdConnect.config.maximumRequestRetries >= 0) {\n return OpenIdConnect.config.maximumRequestRetries;\n } else {\n return this.defaultMaximumRequestRetries;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n// This variable is declared in the javascript file openid-login.js\n// and injected in the eUI applications' index.html file, if necessary\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndeclare let OpenIdConnect: any;\n// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndeclare let ApiGateway: any;\n\nexport interface OpenIdConnectUserDetails {\n domain?: string;\n domainUsername?: string;\n firstName?: string;\n lastName?: string;\n email?: string;\n departmentNumber?: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OpenIdConnectService {\n private userDetails: Observable<OpenIdConnectUserDetails>;\n\n constructor() {\n this.userDetails = new Observable((observer) => {\n if (typeof ApiGateway !== 'undefined') {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ApiGateway.getUser((user: any) => {\n if (user) {\n observer.next({\n domain: null,\n domainUsername: user.username,\n firstName: user.given_name,\n lastName: user.family_name,\n email: user.email,\n departmentNumber: user['https://ecas.ec.europa.eu/claims/department_number'],\n });\n } else {\n observer.next(null);\n }\n observer.complete();\n });\n } else if (typeof OpenIdConnect !== 'undefined') {\n OpenIdConnect.getIdToken(() => {\n const detailsString = sessionStorage.getItem(OpenIdConnect.SESSION_STORAGE_KEY_USER_DETAILS);\n if (detailsString) {\n observer.next(<OpenIdConnectUserDetails>JSON.parse(detailsString));\n observer.complete();\n } else {\n observer.next(null);\n observer.complete();\n }\n });\n } else {\n observer.next(null);\n observer.complete();\n }\n });\n }\n\n getUserDetails(): Observable<OpenIdConnectUserDetails> {\n return this.userDetails;\n }\n}\n","import { Observable, of } from 'rxjs';\nimport { OpenIdConnectService, OpenIdConnectUserDetails } from './openid-connect.service';\n\nexport class OpenIdConnectServiceMock extends OpenIdConnectService {\n getUserDetails(): Observable<OpenIdConnectUserDetails> {\n return of(null);\n }\n}\n","/* BASE PACKAGE */\nexport * from '@eui/base';\n\n/* CORE MODULES */\nexport * from './lib/eui-core.module';\n\n/* CORE SERVICES */\nexport * from './lib/services/index';\n\n// /* CORE CONFIG TOKENS */\n// export * from './lib/services/config/tokens';\n\n/* CORE INTERCEPTORS */\nexport * from './lib/interceptors/index';\n\n/* CORE HELPERS */\nexport * from './lib/helpers/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["extend","i2","i3.EuiGrowlService","actionToReducerMap","i1","i2.LogService","i1.LogService","i1.StoreService","i3.LogService","i3.StoreService","i2.StoreService","i1.EuiPermissionService","i4.I18nService","i2.I18nService"],"mappings":"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"}