{"version":3,"file":"eui-base.mjs","sources":["../../src/lib/util/merge.ts","../../src/lib/util/xhr.ts","../../src/lib/ux-models/ux-error-feedback.model.ts","../../src/lib/ux-models/ux-link-legacy.model.ts","../../src/lib/eui-models/eui-service.model.ts","../../src/lib/eui-models/log/log.appender.ts","../../src/lib/eui-models/log/log.model.ts","../../src/lib/eui-models/log/console.appender.ts","../../src/lib/eui-models/log/log.logger.ts","../../src/lib/eui-models/log/log.logger.mock.ts","../../src/lib/eui-models/log/url.appender.ts","../../src/lib/eui-models/eui-config/i18n.config.ts","../../src/lib/eui-models/eui-config/locale.config.ts","../../src/lib/eui-models/eui-store/models/user.models.ts","../../src/lib/eui-models/eui-store/selectors/core.selectors.ts","../../src/lib/eui-models/eui-store/selectors/app.selectors.ts","../../src/lib/eui-models/eui-store/selectors/i18n.selectors.ts","../../src/lib/eui-models/eui-store/selectors/user.selectors.ts","../../src/lib/eui-models/eui-store/selectors/notifications.selectors.ts","../../src/lib/eui-models/eui-store/state/app.state.ts","../../src/lib/eui-models/eui-store/state/user.state.ts","../../src/lib/eui-models/eui-store/state/notifications.state.ts","../../src/lib/eui-models/eui-store/state/i18n.state.ts","../../src/lib/eui-models/eui-store/state/locale.state.ts","../../src/lib/eui-models/eui-store/state/core.state.ts","../../src/lib/eui-models/eui-pagination/eui-pagination.model.ts","../../src/lib/eui-models/eui-constants.ts","../../src/lib/eui-models/eui-auth-config.model.ts","../../src/lib/eui-models/eui-language/eui-eu-languages.model.ts","../../src/lib/polyfill/crypto.polyfill.ts","../../src/eui-base.ts"],"sourcesContent":["export const isObject = <T>(item: T): boolean => item && typeof item === 'object' && !Array.isArray(item);\n\n/* eslint-disable */\nexport function merge<T>(target: T): T;\nexport function merge<T, A>(target: T, a: A): T & A;\nexport function merge<T, A, B>(target: T, a: A, b: B): T & A & B;\nexport function merge<T, A, B, C>(target: T, a: A, b: B, c: C): T & A & B & C;\nexport function merge<T, A, B, C, D>(target: T, a: A, b: B, c: C, d: D): T & A & B & C & D;\nexport function merge<T, A, B, C, D, E>(target: T, a: A, b: B, c: C, d: D, e: E): T & A & B & C & D & E;\nexport function merge<T, A, B, C, D, E, F>(target: T, a: A, b: B, c: C, d: D, e: E, f: F): T & A & B & C & D & E & F;\nexport function merge(target: any, ...sources: any[]): any {\n    return mergeDeep(target, ...sources);\n}\n/* eslint-enable */\n\n/**\n * deep merge of two or more objects\n *\n * @param target immutable target\n * @param sources immutable sources to apply to target\n * @returns a new merged object\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 mergeDeep = <T extends object, S>(target: T, ...sources: S[]): any => {\n    const output: object & T = Object.assign({}, target);\n    if (!sources.length) {\n        return output as T | T & S;\n    }\n    const source = sources.shift();\n\n    if (isObject(target) && isObject(source)) {\n        Object.keys(source).forEach((key: string) => {\n            if (isObject(source[key])) {\n                if (!(key in target)) {\n                    /* istanbul ignore next */\n                    Object.assign(output, { [key]: source[key] });\n                } else {\n                    output[key] = mergeDeep(target[key], source[key]);\n                }\n            } else {\n                Object.assign(output, { [key]: source[key] });\n            }\n        });\n    }\n    return mergeDeep(output, ...sources);\n};\n/* istanbul ignore next */\nexport const mergeAll = <T>(array: Array<T>): T => array.reduce((prev, next) => mergeDeep(prev, next), {});\n","/**\n * XMLHttpRequest configuration having the following parameters\n * url: the path to the request, mandatory\n * method: possible http methods: GET, POST, PUT, PATCH, DELETE, etc\n * responseType: arraybuffer, blob, document, json, text or empty string\n * headers: object containing headers as name: value pairs\n * body: request body\n * withCredentials: True when credentials are to be included in a cross-origin request. False otherwise.\n * timeout - time in milliseconds. A non-zero value will terminate the execution after the given time has passed\n */\nexport interface XHRConfig {\n    url: string;\n    method?: string;\n    responseType?: XMLHttpRequestResponseType;\n    headers?: {\n        [key: string]: string;\n    };\n    body?: Document | XMLHttpRequestBodyInit;\n    withCredentials?: boolean;\n    timeout?: number;\n}\n\n/**\n * Default xhr configuration\n */\nexport const DEFAULT_XHR_CONFIG: XHRConfig = {\n    url: null,\n    method: 'GET',\n    responseType: 'json',\n    headers: {},\n    body: null,\n    withCredentials: false,\n    timeout: 0,\n};\n\n/**\n * Utility function to call a XMLHttpRequest and send the response as a Promise. The response can be parameterized\n *\n * @param config xhr configuration\n */\n/* eslint-disable */\nexport async function xhr<T>(urlOrConfig: string | XHRConfig): Promise<T>;\nexport async function xhr(urlOrConfig: string | XHRConfig): Promise<any> {\n    // create the configuration and apply the default values\n    let config: XHRConfig = typeof urlOrConfig === 'string' ? { url: urlOrConfig } : urlOrConfig;\n    config = Object.assign({}, DEFAULT_XHR_CONFIG, config);\n\n    // create the promise\n    return new Promise((resolve, reject) => {\n        // configure and open the request\n        const request = new XMLHttpRequest();\n        request.open(config.method, config.url, true);\n        request.responseType = config.responseType;\n        Object.keys(config.headers || {}).map((name) => request.setRequestHeader(name, config.headers[name]));\n        request.withCredentials = config.withCredentials;\n        request.timeout = config.timeout;\n\n        // called in case of timeout\n        request.ontimeout = function () {\n            reject(`Request timeout after ${request.timeout} milliseconds`);\n        };\n\n        // called after the response is received\n        request.onload = function () {\n            if (request.status === 200) {\n                // the response is loaded properly\n                resolve(request.response);\n            } else {\n                // status error\n                reject(`Request failed with status ${request.status} (${request.statusText})`);\n            }\n        };\n\n        // called in case of generic error\n        request.onerror = function () {\n            reject(`Request failed`);\n        };\n\n        // send the request\n        request.send(config.body);\n    });\n}\n/* eslint-enable */\n","import { HttpErrorResponse } from '@angular/common/http';\n\nexport class UxErrorOutput<DETAILS = unknown> implements UxErrorInfo, UxHttpErrorInfo, UxErrorFeedback {\n    code?: string;\n    requestId?: string;\n    doc?: string;\n    details?: DETAILS;\n    severity = UxMessageSeverity.danger;\n    msgId: string;\n    description: string;\n    errGroupMap?: Array<UxErrorGroupMap>;\n    subErrors?: SubErrors;\n\n    constructor(\n        info: UxErrorInfo & UxHttpErrorInfo,\n        errorFeedback: UxErrorFeedback,\n        subErrors?: SubErrors,\n        errGroupMap?: Array<UxErrorGroupMap>,\n    ) {\n        if (!subErrors) {\n            Object.assign(this, { ...info }, { ...errorFeedback });\n        } else {\n            Object.assign(this, { ...info }, { ...errorFeedback }, { subErrors }, { errGroupMap });\n        }\n    }\n\n    getFeedBacks(byKey?: string): Array<UxErrorFeedback> {\n        if (this.subErrors) {\n            return this.subErrors\n                .filter((err) => {\n                    if (err instanceof UxValidationErrorClass) {\n                        if (byKey && err.attributes) {\n                            return this.checkAttribute(byKey, err.attributes);\n                        } else if (byKey && !err.attributes) {\n                            return false;\n                        } else if (!byKey) {\n                            return true;\n                        }\n                    }\n                })\n                .map((err) => ({\n                    msgId: err.msgId,\n                    description: err.description,\n                    severity: err.severity,\n                    attributes: err.attributes,\n                    errGroupId: err.errGroupId,\n                    br: err.br,\n                    doc: err.doc,\n                }));\n        } else {\n            if (!byKey) {\n                return [{ msgId: this.msgId, description: this.description, severity: this.severity, doc: this.doc }];\n            } else {\n                return [];\n            }\n        }\n    }\n\n    private checkAttribute(key: string, attributes: UxValidationErrorAttributes): boolean {\n        return attributes.some((attr) => key === attr.key);\n    }\n}\n\nexport class UxErrorGroupOnClickEvent {\n    constructor(public groupId: string, public err?: UxErrorFeedback) {}\n}\n\nexport interface UxErrorFollowMap {\n    [groupId: string]: boolean;\n}\n\nexport type UxErrorGroupMap = {\n    id: string;\n    description: string;\n    severity: UxMessageSeverity;\n};\n\nexport type UxErrorGroupItem = {\n    groupId: string;\n    description: string;\n    severity: UxMessageSeverity;\n    errors: Array<UxErrorFeedback>;\n};\n\n// T extends U ? X : Y\n// Let's look at the ways to do detailed generic, like error\nexport interface UxErrorInfo<DETAILS = unknown> {\n    code?: string;\n    doc?: string;\n    details?: DETAILS;\n}\n\nexport interface UxHttpErrorInfo {\n    requestId?: string;\n}\n\nexport interface UxErrorFeedback extends UxErrorMessage {\n    severity?: UxMessageSeverity;\n    attributes?: UxValidationErrorAttributes;\n    errGroupId?: string;\n    br?: string;\n    doc?: string;\n}\n\nexport interface UxErrorMessage {\n    msgId: string;\n    description?: string;\n}\n\nexport type UxValidationErrorAttributes = Array<UxValidationErrorAttribute>;\n\nexport interface UxValidationErrorAttribute {\n    key: string | Array<string>;\n    value: string;\n}\n\nexport enum UxMessageSeverity {\n    info = 'info',\n    warning = 'warning',\n    danger = 'danger',\n    success = 'success',\n}\n\nexport enum UxMessageSeverityMetrics {\n    info = 0,\n    warning = 1,\n    danger = 2,\n    success = 3,\n}\n\nexport type SubErrors = Array<UxValidationErrorClass>;\n\nexport class UxValidationErrorClass<Details = object> implements UxErrorInfo<Details>, UxErrorFeedback {\n    msgId: string;\n    description?: string;\n    severity = UxMessageSeverity.danger;\n    attributes: UxValidationErrorAttributes;\n    br?: string;\n    doc?: string;\n    details?: Details;\n    errGroupId?: string;\n\n    constructor(data: UxValidationErrorClass) {\n        Object.assign(this, data);\n    }\n}\n\nexport type ErrorMappingHandler<Error = object> = (err: Error) => UxErrorOutput;\n\nexport interface UxHttpErrorResponse extends HttpErrorResponse {\n    uxHttpErrorOutput: UxErrorOutput;\n}\n\nexport const transformToUxHttpResponse = (resp: HttpErrorResponse, mapper: ErrorMappingHandler): UxHttpErrorResponse => {\n    const updatedErr = resp as UxHttpErrorResponse;\n    updatedErr.uxHttpErrorOutput = mapper(resp.error);\n    return updatedErr;\n};\n\nexport type UxErrorFeedbackEventType = UxPublishErrorFeedbackEvent | UxClearErrorFeedbackEvent;\n\nexport class UxPublishErrorFeedbackEvent {\n    constructor(public err: UxErrorOutput, public id?: string, public groupId?: string, public accumulate?: boolean) {}\n}\n\nexport class UxClearErrorFeedbackEvent {\n    constructor(public id?: string, public groupId?: string) {}\n}\n","export class UxBadgeLegacy {\n    label: string;\n    typeClass = 'secondary';\n\n    constructor(values: object = {}) {\n        Object.assign(this, values);\n    }\n}\n\nexport class UxLinkLegacy<METADATA = unknown> {\n    id: string;\n    label: string;\n    ariaIconLabel: string;\n    subLabel: string;\n    typeLabel: string;\n    typeLabelClass: string;\n    url: string;\n    urlExternal: string;\n    urlExternalTarget = '_blank';\n    disabled = false;\n    children: UxLinkLegacy<METADATA>[];\n    parent: UxLinkLegacy<METADATA>;\n    iconClass: string;\n    iconTypeClass: string;\n    hasIconBg = false;\n    active = false;\n    metadata: METADATA;\n    visible = true;\n    expanded = false;\n    command: () => void;\n    hasMarker = false;\n    markerTypeClass: string;\n    hasTag = false;\n    tagTypeClass: string;\n    tagLabel: string;\n    tagCount: string;\n    badgeTypeClass = 'secondary';\n    badgeLabel: string;\n    badges: UxBadgeLegacy[];\n    tooltipLabel: string;\n    typeClass: string;\n    isHome = false;\n    isSeparator = false;\n    isScreenReaderClickable = false;\n    allowedRightId: string;\n    allowedRightIds: string[];\n    deniedRightId: string;\n    deniedRightIds: string[];\n    selected = false;\n    indeterminate = false;\n    e2eAttr: string;\n    category: string;\n    constructor(values: object = {}) {\n        Object.assign(this, values);\n        if (this.id === null || this.id === undefined) {\n            this.id = 'no_id';\n        }\n        this.e2eAttr = 'ux-link-e2e-' + this.id;\n    }\n    get hasChildren(): boolean {\n        return this.children != null;\n    }\n}\n","import { Observable, Subject, Subscription } from 'rxjs';\nimport { ModuleConfig } from './eui-config/eui-app-config';\nimport { LoadedConfigModules } from './eui-store/state/app.state';\nimport { EuiStoreServiceModel } from './eui-store/eui-store-service.model';\nimport { filter, switchMap } from 'rxjs/operators';\nimport { Selector } from 'reselect';\nimport { CoreState } from './eui-store';\n\nexport interface EuiServiceModel<T> {\n    init(t: T): Observable<EuiServiceStatus>;\n\n    /**\n     * retrieves the State of the service. If you don't pass anything it will retrieve the whole State\n     * of that service. If you pass a selector or MapFunction it will retrieve a slice of the state. If\n     * you pass a string that's a key of the Service State type it will retrieve that slice of the state.\n     */\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    getState<K = T>(): Observable<T>;\n    getState<K>(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\n    updateState(t: T): void;\n}\n\nexport type DeepPartial<T> = {\n    [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];\n};\n\nexport abstract class EuiService<T> implements EuiServiceModel<T> {\n    protected stateInstance: T;\n    protected prevStateInstance: T;\n    protected $stateSubs: Subscription;\n    protected $stateLazyLoadSubs: Subscription;\n    onStateChange: Subject<T> = new Subject<T>();\n\n    protected constructor(defaultState: T) {\n        this.stateInstance = defaultState;\n    }\n\n    initEuiService(): void {\n        this.unSubscribe();\n        this.$stateSubs = this.getState().subscribe((newState: T) => {\n            // set previous state of service\n            this.prevStateInstance = this.copy(this.stateInstance);\n            // update state before emit event\n            this.stateInstance = this.copy(newState);\n            // inform about state change\n            this.onStateChange.next(newState);\n        });\n    }\n\n    abstract init(t?: T): Observable<EuiServiceStatus>;\n\n    abstract getState<K = T>(): Observable<T>;\n    abstract getState<K>(mapFn?: (state: T) => K): Observable<K>;\n    abstract getState<A extends keyof T>(key?: A): Observable<T[A]>;\n    abstract getState<K>(keyOrMapFn?: ((state: T) => K) | string): Observable<K>;\n\n    abstract updateState(t: DeepPartial<T>): void;\n\n    protected unSubscribe(): void {\n        if (this.$stateSubs && this.$stateSubs.unsubscribe) {\n            this.$stateSubs.unsubscribe();\n        }\n        if (this.$stateLazyLoadSubs && this.$stateLazyLoadSubs.unsubscribe) {\n            this.$stateLazyLoadSubs.unsubscribe();\n        }\n    }\n\n    /**\n     * deep merge two objects\n     * @param target the object that will be merged into\n     * @param source the object that will be merged from\n     */\n    protected deepMerge<T>(target: T, source: DeepPartial<T>): T {\n        const output = Object.assign({}, target);\n        if (this.isObject(target) && this.isObject(source)) {\n            Object.keys(source).forEach(key => {\n                // Check if source[key] is an object and target[key] is either undefined, null, or an object\n                if (this.isObject(source[key])) {\n                    if (!(key in target) || target[key] === null) {\n                        // If target[key] doesn't exist or is null, directly assign source[key]\n                        Object.assign(output, { [key]: structuredClone(source[key]) });\n                    } else {\n                        // Only deep merge if target[key] is also an object\n                        output[key] = this.isObject(target[key])\n                            ? this.deepMerge(target[key], source[key])\n                            : structuredClone(source[key]);\n                    }\n                } else {\n                    Object.assign(output, { [key]: source[key] });\n                }\n            });\n        }\n        return output;\n    }\n\n    /**\n     * checks if the given item is an object\n     * @param item the item that will be checked\n     */\n    private isObject(item: unknown): item is object {\n        return item && typeof item === 'object' && !Array.isArray(item);\n    }\n\n    /**\n     * returns a copy of the given value whether this value is object or primitive. For the arrays it will cover\n     * multidimensional arrays, but it will not cover an object that contain functions. JSON.parse and JSON.stringify\n     * might have performance issues on large scale objects but that's an edge case scenario. In case that happens in\n     * the future follow the technique of NGRX with function caching.\n     *\n     * @param state\n     */\n    private copy(state: T): T {\n        if (typeof state === 'undefined') {\n            return undefined;\n        }\n        return JSON.parse(JSON.stringify(state));\n    }\n}\n\nconst getAppLoadedConfigModules: Selector<CoreState, LoadedConfigModules> = (state: CoreState) => state?.app?.loadedConfigModules\n\nexport abstract class EuiLazyService<T> extends EuiService<T> {\n    protected stateInstance: T;\n    protected $stateSubs: Subscription;\n    protected $stateLazyLoadSubs: Subscription;\n\n    protected constructor(defaultState: T) {\n        super(defaultState);\n    }\n\n    abstract lazyLoadInit(moduleConfig: ModuleConfig, moduleName?: string): Observable<EuiServiceStatus>;\n\n    // todo it should use abstract store service\n    initEuiService(storeForLazyLoad?: EuiStoreServiceModel<T>): void {\n        super.initEuiService();\n\n        if (storeForLazyLoad) {\n            this.$stateLazyLoadSubs = storeForLazyLoad\n                .select(getAppLoadedConfigModules)\n                .pipe(\n                    filter((loadedConfigModules: LoadedConfigModules) =>\n                        loadedConfigModules?.modulesConfig?.[loadedConfigModules.lastAddedModule] ? true : false,\n                    ),\n                    switchMap((loadedConfigModules: LoadedConfigModules) =>\n                        this.lazyLoadInit(\n                            loadedConfigModules.modulesConfig[loadedConfigModules.lastAddedModule],\n                            loadedConfigModules.lastAddedModule,\n                        ),\n                    ),\n                )\n                .subscribe(null);\n        }\n    }\n}\n\n/**\n * EuiServiceStatus is a model that represents the status of the service. It has a boolean property that indicates\n * whether the service was successful or not. If the service was not successful it will have an error property that\n * contains the error message.\n * @param T the type of the error message\n * @property success a boolean property that indicates whether the service was successful or not\n * @property error an optional property that contains the error message\n */\nexport interface EuiServiceStatus<T = unknown> {\n    success: boolean;\n    error?: T;\n}\n","import { Injector } from '@angular/core';\nimport { LogAppenderConfig } from '../eui-config';\nimport { LogEvent } from './log.model';\n\n/**\n * Abstract Log Appender\n */\nexport abstract class LogAppender<CFG extends LogAppenderConfig = LogAppenderConfig> {\n    constructor(protected config: CFG, protected injector: Injector = null) {}\n\n    /**\n     * Gets the config\n     *\n     * @returns the config\n     */\n    getConfig(): CFG {\n        return this.config;\n    }\n\n    /**\n     * Logs a Log Event\n     *\n     * @param event log event\n     */\n    abstract append(event: LogEvent): void;\n}\n","/** Log level */\nexport enum LogLevel {\n    OFF = 0,\n    FATAL = 1,\n    ERROR = 2,\n    WARN = 3,\n    INFO = 4,\n    DEBUG = 5,\n    TRACE = 6,\n    ALL = 7,\n}\n\n/** Associated log level names */\nexport enum LogLevelName {\n    FATAL = 'FATAL',\n    ERROR = 'ERROR',\n    WARN = 'WARNING',\n    INFO = 'INFO',\n    DEBUG = 'DEBUG',\n    TRACE = 'TRACE',\n}\n\n/** The code position from where the log has been triggered */\nexport interface LogPosition {\n    file: string;\n    line: number;\n    column: number;\n}\n\n/** The log event sent to the log appenders */\nexport interface LogEvent<MESSAGES = unknown> {\n    /** event's log level */\n    level: LogLevel;\n    /** event's log level name */\n    levelName: string;\n    /** the name of the logger who triggered the event */\n    loggerName: string;\n    /** event's timestamp */\n    timestamp: Date;\n    /** log messages */\n    messages: MESSAGES[];\n}\n","import { LogAppender } from './log.appender';\nimport { ConsoleAppenderConfig, ConsoleAppenderPrefixConverters } from '../eui-config';\nimport { LogEvent, LogLevel } from './log.model';\n\n/** Default console prefix converters */\nexport const DEFAULT_CONSOLE_APPENDER_PREFIX_CONVERTERS: ConsoleAppenderPrefixConverters = {\n    '{level}': (event: LogEvent) => event.levelName,\n    '{logger}': (event: LogEvent) => event.loggerName,\n    '{date}': (event: LogEvent) => event.timestamp.toLocaleDateString(),\n    '{time}': (event: LogEvent) => event.timestamp.toLocaleTimeString(),\n};\n\n/**\n * Console Appender\n */\nexport class ConsoleAppender extends LogAppender<ConsoleAppenderConfig> {\n    constructor(public config: ConsoleAppenderConfig = {}) {\n        super(config);\n        // apply the default prefix converters\n        config.prefixConverters = Object.assign({}, DEFAULT_CONSOLE_APPENDER_PREFIX_CONVERTERS, config.prefixConverters);\n    }\n\n    /**\n     * Logs an event in the console\n     */\n    append(event: LogEvent): void {\n        // retrieve the prefix\n        const prefix = this.getPrefix(event);\n        // append it to the message array\n        const messages = prefix ? [prefix, ...event.messages] : event.messages;\n\n        // log the event in the console\n        switch (event.level) {\n            case LogLevel.FATAL:\n            case LogLevel.ERROR:\n                console.error(...messages);\n                break;\n            case LogLevel.WARN:\n                console.warn(...messages);\n                break;\n            default:\n                console.log(...messages);\n                break;\n        }\n    }\n\n    /**\n     * Returns the prefix to be added to the messages\n     *\n     * @param event the log event\n     * @returns the formatted prefix, as string\n     */\n    protected getPrefix(event: LogEvent): string {\n        // in case of no prefixFormat, return null\n        if (!this.config || !this.config.prefixFormat) {\n            return null;\n        }\n\n        // start creating the prefix from the format\n        let prefix = this.config.prefixFormat;\n\n        // apply the prefix converters\n        Object.keys(this.config.prefixConverters).forEach((key) => {\n            prefix = this.convert(prefix, key, this.config.prefixConverters[key](event));\n        });\n\n        return prefix;\n    }\n\n    /**\n     * Utility method to replace a placeholder\n     *\n     * @param str the string with placeholders\n     * @param find the placeholder\n     * @param replace the string to replace the placeholder\n     * @returns the converted string\n     */\n    protected convert(str: string, find: string, replace: string): string {\n        return str.replace(new RegExp(find, 'g'), replace);\n    }\n}\n","import { LogEvent, LogLevel, LogLevelName } from './log.model';\nimport { LogAppender } from './log.appender';\n\n/**\n * Logger\n */\nexport class Logger {\n    constructor(protected name: string, protected level: LogLevel, protected appenders: LogAppender[]) {}\n\n    static isEnabledFor(enabledFromLevel: LogLevel, level: LogLevel): boolean {\n        return enabledFromLevel >= level;\n    }\n\n    /**\n     * Gets the logger name\n     *\n     * @returns the logger name\n     */\n    getName(): string {\n        return this.name;\n    }\n\n    /**\n     * Gets the log level\n     *\n     * @returns the log level\n     */\n    getLevel(): LogLevel {\n        return this.level;\n    }\n\n    /**\n     * Sets the log level\n     *\n     * @param level log level\n     */\n    setLevel(level: LogLevel): void {\n        this.level = level;\n    }\n\n    /**\n     * Fatal log\n     *\n     * @param message mandatory message\n     * @param additionalMessages optional messages\n     */\n    fatal<T, S>(message: T, ...additionalMessages: S[]): void {\n        return this.log({\n            level: LogLevel.FATAL,\n            levelName: LogLevelName.FATAL,\n            loggerName: this.name,\n            timestamp: new Date(),\n            messages: [message, ...additionalMessages],\n        });\n    }\n\n    /**\n     * Error log\n     *\n     * @param message mandatory message\n     * @param additionalMessages optional messages\n     */\n    error<M, A>(message: M, ...additionalMessages: A[]): void {\n        return this.log({\n            level: LogLevel.ERROR,\n            levelName: LogLevelName.ERROR,\n            loggerName: this.name,\n            timestamp: new Date(),\n            messages: [message, ...additionalMessages],\n        });\n    }\n\n    /**\n     * Warning log\n     *\n     * @param message mandatory message\n     * @param additionalMessages optional messages\n     */\n    warn<M, A>(message: M, ...additionalMessages: A[]): void {\n        return this.log({\n            level: LogLevel.WARN,\n            levelName: LogLevelName.WARN,\n            loggerName: this.name,\n            timestamp: new Date(),\n            messages: [message, ...additionalMessages],\n        });\n    }\n\n    /**\n     * Info log\n     *\n     * @param message mandatory message\n     * @param additionalMessages optional messages\n     */\n    info<M, A>(message: M, ...additionalMessages: A[]): void {\n        return this.log({\n            level: LogLevel.INFO,\n            levelName: LogLevelName.INFO,\n            loggerName: this.name,\n            timestamp: new Date(),\n            messages: [message, ...additionalMessages],\n        });\n    }\n\n    /**\n     * Debug log\n     *\n     * @param message mandatory message\n     * @param additionalMessages optional messages\n     */\n    debug<M, A>(message: M, ...additionalMessages: A[]): void {\n        return this.log({\n            level: LogLevel.DEBUG,\n            levelName: LogLevelName.DEBUG,\n            loggerName: this.name,\n            timestamp: new Date(),\n            messages: [message, ...additionalMessages],\n        });\n    }\n\n    /**\n     * Trace log\n     *\n     * @param message mandatory message\n     * @param additionalMessages optional messages\n     */\n    trace<M, A>(message: M, ...additionalMessages: A[]): void {\n        return this.log({\n            level: LogLevel.TRACE,\n            levelName: LogLevelName.TRACE,\n            loggerName: this.name,\n            timestamp: new Date(),\n            messages: [message, ...additionalMessages],\n        });\n    }\n\n    isDisabled = (): boolean => this.level === LogLevel.OFF;\n    isEnabledFor = (level: LogLevel): boolean => Logger.isEnabledFor(this.level, level);\n    isFatalEnabled = (): boolean => this.isEnabledFor(LogLevel.FATAL);\n    isErrorEnabled = (): boolean => this.isEnabledFor(LogLevel.ERROR);\n    isWarnEnabled = (): boolean => this.isEnabledFor(LogLevel.WARN);\n    isInfoEnabled = (): boolean => this.isEnabledFor(LogLevel.INFO);\n    isDebugEnabled = (): boolean => this.isEnabledFor(LogLevel.DEBUG);\n    isTraceEnabled = (): boolean => this.isEnabledFor(LogLevel.TRACE);\n    isAllEnabled = (): boolean => this.isEnabledFor(LogLevel.ALL);\n\n    /**\n     * Generic log method, checking the log level and calling the specified appenders\n     *\n     * @param event the log event\n     */\n    protected log(event: LogEvent): void {\n        this.appenders\n            // filter the appender by their custom logLevel or the logger (main) logLevel\n            .filter((appender) => Logger.isEnabledFor(appender.getConfig().logLevel || this.level, event.level), this)\n            // execute the remaining appenders\n            .forEach((appender) => appender.append(event));\n    }\n}\n","import { Logger } from './log.logger';\n\nexport class LoggerMock extends Logger {\n    constructor() {\n        super(null, null, null);\n    }\n\n    getLevel(): null {\n        return null;\n    }\n\n    setLevel(): void {\n        /* empty */\n    }\n\n    fatal(): void {\n        /* empty */\n    }\n\n    error(): void {\n        /* empty */\n    }\n\n    warn(): void {\n        /* empty */\n    }\n\n    info(): void {\n        /* empty */\n    }\n\n    debug(): void {\n        /* empty */\n    }\n\n    trace(): void {\n        /* empty */\n    }\n\n    isDisabled = (): boolean => false;\n    isEnabledFor = (): boolean => false;\n    isFatalEnabled = (): boolean => false;\n    isErrorEnabled = (): boolean => false;\n    isWarnEnabled = (): boolean => false;\n    isInfoEnabled = (): boolean => false;\n    isDebugEnabled = (): boolean => false;\n    isTraceEnabled = (): boolean => false;\n    isAllEnabled = (): boolean => false;\n}\n","import { Injector } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { LogEvent, LogPosition } from './log.model';\nimport { LogAppender } from './log.appender';\nimport { Logger } from './log.logger';\nimport { UrlAppenderConfig, UrlLogEvent } from '../eui-config';\n\n/**\n * Url Appender\n */\nexport class UrlAppender extends LogAppender<UrlAppenderConfig> {\n    protected http: HttpClient;\n\n    constructor(public config: UrlAppenderConfig, protected injector: Injector) {\n        super(config, injector);\n        // set the http client\n        this.http = injector && injector.get(HttpClient, null);\n        if (!this.http) {\n            console.error('UrlAppender needs HttpClient service to be defined as a provider.');\n        }\n    }\n\n    /**\n     * Logs an event to a server\n     */\n    append(event: LogEvent): void {\n        // eventual http errors will be caught by the HttpErrorHandlerInterceptor\n        if (this.http) {\n            this.http.post(this.config.url, this.toUrlEvent(event)).subscribe();\n        }\n    }\n\n    /**\n     * Maps a LogEvent into a UrlLogEvent\n     */\n    protected toUrlEvent(event: LogEvent): UrlLogEvent {\n        // check if the urlEventFromLevel allows the mapping to url log event\n        const toUrlEvent = this.config.detailedEventFromLevel && Logger.isEnabledFor(this.config.detailedEventFromLevel, event.level);\n        // returns the url event or the regular log event\n        return toUrlEvent\n            ? Object.assign({}, this.filterErrorType(event), {\n                  position: this.getPosition(),\n                  location: this.getLocation(),\n              })\n            : event;\n    }\n\n    /**\n     * returns the code position from where the log has been triggered\n     */\n    protected getPosition(): LogPosition {\n        // create a dummy error, just for the stack trace\n        const error = new Error();\n\n        try {\n            // throw it ...\n            throw error;\n        } catch (e) {\n            // ... and catch it\n            try {\n                // extract the correct stack line\n                let stackLine = error.stack.split('\\n')[3].trim();\n                if (stackLine.startsWith('at ')) {\n                    stackLine = stackLine.substring('at '.length);\n                }\n                // if the path is specified in parentheses\n                if (stackLine.lastIndexOf('(') > 0) {\n                    stackLine = stackLine.substring(stackLine.lastIndexOf('(') + 1, stackLine.indexOf(')'));\n                }\n                // strip base path, then parse file, line and column\n                const data = stackLine.substring(stackLine.lastIndexOf('/') + 1).split(':');\n                // if the data is parsed correctly\n                if (data.length === 3) {\n                    return {\n                        file: data[0],\n                        line: +data[1],\n                        column: +data[2],\n                    };\n                }\n            } catch (err) {\n                /* empty */\n            }\n        }\n        /* istanbul ignore next */\n        return null;\n    }\n\n    /**\n     * returns the url of the current page\n     */\n    protected getLocation(): string {\n        return window && window.location && window.location.href;\n    }\n\n    /**\n     * check messages if object type is Error and make its properties enumerable\n     */\n    protected filterErrorType(event: LogEvent): LogEvent {\n        event.messages = event.messages.map((m) => (m instanceof Error ? Object.getOwnPropertyDescriptors(m) : m));\n        return event;\n    }\n}\n","import { GlobalConfig } from './eui-app-config';\nimport { EuiLanguage } from '../eui-language/eui-language.model';\n\nexport interface I18nResource {\n    /** prefix of the resource could be like the 2 char language code e.g. /en */\n    prefix: string;\n    /** suffix can be either .json or anything related of the resource HTTP call */\n    suffix?: string;\n    /**\n     It is an ID of the function which should be defined into the customHandlers with the interface TranslationsCompiler\n     */\n    compileTranslations?: string;\n}\n\n/**\n * a factory to compile translations into the main object holding them all\n *\n * @param translations the object to be pre-processed\n * @param lang the translations language\n * @returns the pre-processed translations\n */\nexport type TranslationsCompiler<T = unknown, C = unknown> = (translations: T, lang: string) => C;\n\nexport interface I18nConfig {\n    i18nService: I18nServiceConfig;\n    i18nLoader: I18nLoaderConfig;\n}\n\nexport interface I18nServiceConfig {\n    /** an ISO 2 char code array of available languages */\n    languages?: (string | EuiLanguage)[];\n    /** default language to be used in case of not any has been set */\n    defaultLanguage?: string;\n}\n\nexport interface I18nLoaderConfig {\n    /**\n     * Those folders will be used to load the translations files from {@link https://angular.io/guide/workspace-config#extra-build-and-test-options assets}.\n     * e.g [`${environment.apiBaseUrl}translations/`, `${environment.apiBaseUrl}translations?lang=`]\n     * Important! the language code will be added automatically to the end of the url except if the url ends with a slash.\n     */\n    i18nFolders?: string | string[];\n    /**\n     * Array of service urls to translation, don't add the language it will be added e.g. http://net1/trans/en\n     * Keep in mind that the url should be the prefix and not contain any suffix.\n     */\n    i18nServices?: string | string[];\n    /**\n     * It is a set of more customized resources to be loaded. You can provide a function to compile the translations or simply\n     * provide the prefix and suffix of the resource, or both.\n     *\n     * @example\n     * ```typescript\n     * export function CompileTranslations(translations: any): any {\n     *     const result = {};\n     *     translations.forEach((translation: any) => {\n     *         // extract the key and value from the translation object\n     *         const key = translation['key'];\n     *         const value = translation['value'];\n     *         if (key && value) {\n     *             result[key] = value;\n     *         }\n     *     });\n     *     return result;\n     * }\n     * export const appConfig: EuiAppConfig = {\n     *     ...,\n     *     customHandler: {\n     *         'CompileTranslations_ID': CompileTranslations\n     *     }\n     * };\n     * export const GLOBAL: GlobalConfig = {\n     *     ...,\n     *     i18n: {\n     *       i18nLoader: {\n     *         i18nFolders: ['i18n-eui'],\n     *         i18nResources: [{\n     *             prefix: 'api/translations/',\n     *             compileTranslations: 'CompileTranslations_ID',\n     *         }]\n     *       }\n     *     }\n     * };\n     *\n     */\n    i18nResources?: I18nResource | I18nResource[];\n}\n\nexport const getI18nServiceConfigFromBase = (baseGlobalConfig: GlobalConfig): I18nServiceConfig => {\n    if(!baseGlobalConfig) throw new Error('baseGlobalConfig is required');\n    const i18nServiceConfig = baseGlobalConfig && baseGlobalConfig.i18n && baseGlobalConfig.i18n.i18nService;\n    const { languages, defaultLanguage } = getI18nServiceConfig(i18nServiceConfig);\n\n    return { languages, defaultLanguage };\n};\n\nexport const getI18nServiceConfig = (config: I18nServiceConfig): I18nServiceConfig => Object.assign({}, config);\n\nexport const getI18nLoaderConfig = (config: I18nLoaderConfig): I18nLoaderConfig => {\n    const { i18nFolders, i18nServices, i18nResources } = Object.assign({}, config);\n    return { i18nFolders, i18nServices, i18nResources };\n};\n\n/**\n * returns a language code based on https://tools.ietf.org/rfc/bcp/bcp47.txt specification. To get the Browser's\n * it's using the navigator.language, splits by hyphen and get the first part.\n */\nexport const getBrowserDefaultLanguage = (): string => navigator.language.split('-')[0];\n\n/**\n * returns an array of DOMStrings representing the user's preferred languages. The language is described using BCP 47\n * language tags. In the returned array they are ordered by preference with the most preferred language first.\n * The array languages will be lower cased 2 char code.\n */\nexport const getBrowserPreferredLanguages = (): string[] => navigator.languages.map((lang) => lang.split('-')[0]);\n","/** User API configuration */\nimport { GlobalConfig } from './eui-app-config';\n\nexport interface LocaleServiceConfig {\n    /**\n     * When enabled changes from I18nService will be reflected to locale state\n     */\n    bindWithTranslate?: boolean;\n}\n\n/**\n * responsible to extract the attributes \"available\" and \"id\" from the locale configuration\n */\nexport const getLocaleServiceConfigFromBase = (baseGlobalConfig: GlobalConfig): LocaleServiceConfig => {\n    const { bindWithTranslate } = baseGlobalConfig.locale;\n    return { bindWithTranslate };\n};\n","export interface UserDetails {\n    userId: string;\n    firstName?: string;\n    lastName?: string;\n    fullName?: string;\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface UserPreferences<DASHBOARD = any, T = any> {\n    dashboard?: DASHBOARD;\n    lang?: string;\n\n    [key: string]: string | DASHBOARD | T;\n}\n\nexport const initialUserPreferences: UserPreferences = Object.assign(\n    {},\n    {\n        lang: null,\n        dashboard: null,\n    },\n);\n","import { CoreState, AppState, I18nState, LocaleState, NotificationsState, UserState } from '../state';\n\nexport const getAppState = (state: CoreState): AppState => state.app;\nexport const getUserState = (state: CoreState): UserState => state.user;\nexport const getNotificationsState = (state: CoreState): NotificationsState => state.notifications;\nexport const getI18nState = (state: CoreState): I18nState => state.i18n;\nexport const getLocaleState = (state: CoreState): LocaleState => state.locale;\n","import { createSelector, Selector } from 'reselect';\nimport { AppState, LoadedConfigModules } from '../state';\nimport { getAppState } from './core.selectors';\nimport { ApiQueue, ApiQueueItem } from '../models';\n\nexport const getAppVersion: Selector<AppState, string> = createSelector(getAppState, (state: AppState) => state.version);\nexport const getAppConnection: Selector<AppState, boolean> = createSelector(getAppState, (state: AppState) => state.connected);\n/**\n * Returns the loaded config modules from the app state\n * @deprecated It will be removed in the future.\n */\nexport const getAppLoadedConfigModules: Selector<AppState, LoadedConfigModules> = createSelector(\n    getAppState,\n    (state: AppState) => state.loadedConfigModules,\n);\n/**\n * Returns the last added module from the app state\n * @deprecated It will be removed in the future.\n */\nexport const getLastAddedModule: Selector<AppState, string> = createSelector(\n    getAppState,\n    (state: AppState) => state.loadedConfigModules.lastAddedModule,\n);\n\nexport const getAppStatus: Selector<AppState, string> = createSelector(getAppState, (state: AppState) => state.status);\nexport const getCurrentModule: Selector<AppState, string> = createSelector(getAppState, (state: AppState) => state.currentModule);\nexport const getApiQueue: Selector<AppState, ApiQueue> = createSelector(getAppState, (state: AppState) => state.apiQueue);\nexport const getApiQueueItem = (itemId: string): Selector<AppState, ApiQueueItem> =>\n    createSelector(getAppState, (state: AppState) => state.apiQueue[itemId]);\n","import { createSelector, Selector } from 'reselect';\nimport { getI18nState } from '../selectors';\nimport { I18nState, CoreState } from '../state';\n\nexport const getActiveLang: Selector<CoreState, string> = createSelector(getI18nState, (state: I18nState) => state.activeLang);\n","import { createSelector, Selector } from 'reselect';\nimport { UserDetails, UserPreferences } from '../models/user.models';\nimport { CoreState, EuiUserRight } from '../../../eui-models';\nimport { getUserState } from './core.selectors';\nimport { UserState } from '../state/user.state';\n\nexport const getUserDetails: Selector<CoreState, UserDetails> = createSelector(getUserState, (state: UserState) => state as UserDetails);\nexport const getUserPreferences: Selector<CoreState, UserPreferences> = createSelector(\n    getUserState,\n    (state: UserState) => state.preferences,\n);\n\nexport const getUserId: Selector<CoreState, string> = createSelector(getUserDetails, (state: UserDetails) => state.userId);\nexport const getUserFirstName: Selector<CoreState, string> = createSelector(getUserDetails, (state: UserDetails) => state.firstName);\nexport const getUserLastName: Selector<CoreState, string> = createSelector(getUserDetails, (state: UserDetails) => state.lastName);\nexport const getUserFullName: Selector<CoreState, string> = createSelector(getUserDetails, (state: UserDetails) => state.fullName);\n\nexport const getUserLang: Selector<UserPreferences, string> = createSelector(getUserPreferences, (state: UserPreferences) => state.lang);\n\nexport const getUserRights: Selector<CoreState, EuiUserRight[]> = createSelector(getUserState, (state: UserState) => state.rights);\nexport const getUserRight = (rightId: string): Selector<CoreState, EuiUserRight> =>\n    createSelector(getUserRights, (state: EuiUserRight[]) => state.find((right) => right && right.id === rightId));\nexport const getUserRightPermissions = (rightId: string): Selector<CoreState, string[]> =>\n    createSelector(getUserRight(rightId), (state: EuiUserRight) => state && state.permissions);\n\nexport const getUserDashboard: Selector<UserPreferences<unknown>, unknown> = createSelector(\n    getUserPreferences,\n    (state: UserPreferences) => state.dashboard,\n);\n","import { createSelector, Selector } from 'reselect';\n\nimport { getNotificationsState } from './core.selectors';\nimport { NotificationsState } from '../state/notifications.state';\nimport { AppState } from '../state';\n\nexport const getNotificationsList: Selector<AppState, unknown[]> = createSelector(\n    getNotificationsState,\n    (state: NotificationsState) => state.list,\n);\n","import { ApiQueue } from '../models';\nimport { ModulesConfig } from '../../eui-config';\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface AppState<T = any> {\n    version?: string;\n    /** flag to indicate if the application is online/offline. Default: true */\n    connected?: boolean;\n    loadedConfigModules?: LoadedConfigModules;\n\n    status?: string;\n    currentModule?: string;\n    apiQueue?: ApiQueue;\n\n    [key: string]: string | boolean | LoadedConfigModules | ApiQueue | T;\n}\n\nexport const initialAppState: AppState = Object.assign(\n    {},\n    {\n        version: '0.0.0',\n        connected: true,\n        loadedConfigModules: {\n            modulesConfig: {},\n        },\n        status: 'idle',\n        currentModule: '',\n        apiQueue: {},\n    },\n);\n\n/**\n * LoadedConfigModules\n * @property lastAddedModule - the last module added to the store\n * @property modulesConfig - the modules configuration\n */\nexport interface LoadedConfigModules {\n    lastAddedModule?: string;\n    modulesConfig: ModulesConfig;\n}\n","import { UserPreferences, initialUserPreferences } from '../models/user.models';\nimport { EuiUserRight } from '../../../eui-models';\nimport { UserDetails } from '../models';\n\nexport interface UserState extends UserDetails {\n    userId: string;\n    firstName?: string;\n    lastName?: string;\n    fullName?: string;\n    preferences?: UserPreferences;\n    rights?: EuiUserRight[];\n}\n\nexport const initialUserState: UserState = Object.assign(\n    {},\n    {\n        userId: '',\n        firstName: '',\n        lastName: '',\n        fullName: '',\n        preferences: initialUserPreferences,\n        rights: [],\n    },\n);\n","/**\n * The notifications state.\n * @template LIST The type of the list of notifications.\n */\nexport interface NotificationsState<LIST = unknown> {\n    list?: LIST[];\n}\n\n/**\n * The initial state of the notifications state.\n */\nexport const initialNotificationsState: NotificationsState = {\n    list: [],\n};\n","export interface I18nState {\n    activeLang: string;\n}\n\nexport const initialI18nState: I18nState = {\n    activeLang: null,\n};\n","/**\n * The locale state is used to store the current locale id and the list of available locales.\n */\nexport interface LocaleState {\n    /** The current locale id e.g. 'en-US' */\n    id: string;\n}\n\n/**\n * The initial state of the locale state. The default locale is English US ('en').\n */\nexport const initialLocaleState: LocaleState = {\n    id: 'en',\n};\n","import { AppState, initialAppState } from './app.state';\nimport { UserState, initialUserState } from './user.state';\nimport { NotificationsState, initialNotificationsState } from './notifications.state';\nimport { I18nState, initialI18nState } from './i18n.state';\nimport { LocaleState, initialLocaleState } from './locale.state';\n\nexport interface CoreState {\n    app?: AppState;\n    user?: UserState;\n    notifications?: NotificationsState;\n    i18n?: I18nState;\n    locale?: LocaleState;\n}\n\nexport const initialCoreState: CoreState = Object.assign(\n    {},\n    {\n        app: initialAppState,\n        user: initialUserState,\n        notifications: initialNotificationsState,\n        i18n: initialI18nState,\n        locale: initialLocaleState,\n    },\n);\n","export interface EuiPaginationConfig {\n    totalItems?: number;\n    pageSize?: number;\n    currentPage?: number;\n    pageWindowSize?: number;\n}\n\nexport const DefaultConfig: EuiPaginationConfig = {\n    totalItems: 0,\n    pageSize: 10,\n    currentPage: 1,\n    pageWindowSize: 5,\n};\n\nexport class EuiPagination {\n    private constructor(\n        private totalItems: number = DefaultConfig.totalItems,\n        private pageSize: number = DefaultConfig.pageSize,\n        private currentPage: number = DefaultConfig.currentPage,\n        private pageWindowSize: number = DefaultConfig.pageWindowSize,\n    ) {}\n\n    public static create(config: EuiPaginationConfig = DefaultConfig): EuiPagination {\n        if (config.totalItems < 0) {\n            throw new Error('total items cannot be negative');\n        }\n\n        if (config.pageSize <= 0) {\n            throw new Error('page size must be bigger than zero');\n        }\n\n        if (config.pageWindowSize <= 0) {\n            throw new Error('page window size must be bigger than zero');\n        }\n\n        return new EuiPagination(config.totalItems, config.pageSize, config.currentPage, config.pageWindowSize);\n    }\n\n    getFirstPage(): number {\n        return 1;\n    }\n\n    getLastPage(): number {\n        return this.getPagesCount();\n    }\n\n    isFirstPageActive(): boolean {\n        return this.getCurrentPage() === 1;\n    }\n\n    isLastPageActive(): boolean {\n        return this.getCurrentPage() === this.getPagesCount();\n    }\n\n    hasItems(): boolean {\n        return this.getTotalItems() > 0;\n    }\n\n    getPagesCount(): number {\n        const pagesCount = Math.ceil(this.totalItems / this.pageSize);\n        return Math.max(pagesCount, 1);\n    }\n\n    getPages(): Array<number> {\n        const pageWindowSize = this.getPageWindowSize();\n        const pagesCount = this.getPagesCount();\n        const currentPage = this.getCurrentPage();\n\n        let leftPageWindowSize;\n        let rightPageWindowSize;\n        let startPage;\n        let endPage;\n\n        // should not be bigger than pages count\n        const truncatedPageWindowSize = Math.min(...[this.getPageWindowSize(), this.getPagesCount()]);\n\n        if (truncatedPageWindowSize % 2 === 0) {\n            // nonsymetrical pager (...*....)\n            leftPageWindowSize = truncatedPageWindowSize / 2 - 1;\n            rightPageWindowSize = leftPageWindowSize + 1;\n        } else {\n            // symmetrical pager (...*...)\n            leftPageWindowSize = rightPageWindowSize = Math.floor(pageWindowSize / 2);\n        }\n\n        if (currentPage <= leftPageWindowSize) {\n            // start\n            startPage = 1;\n            endPage = truncatedPageWindowSize;\n        } else if (currentPage > pagesCount - rightPageWindowSize) {\n            // end\n            startPage = pagesCount - truncatedPageWindowSize + 1;\n            endPage = pagesCount;\n        } else {\n            // middle\n            startPage = currentPage - leftPageWindowSize;\n            endPage = currentPage + rightPageWindowSize;\n        }\n\n        return range(startPage, endPage + 1);\n    }\n\n    goToPage(page: number): void {\n        const pagesCount = this.getPagesCount();\n        const upperTrunc = Math.min(...[page, pagesCount]);\n        const truncated = Math.max(...[upperTrunc, 1]);\n\n        this.currentPage = truncated;\n    }\n\n    goToFirstPage(): void {\n        this.goToPage(1);\n    }\n\n    goToLastPage(): void {\n        const lastPage = this.getPagesCount();\n        this.goToPage(lastPage);\n    }\n\n    goToNextPage(): void {\n        const nextPage = this.getCurrentPage() + 1;\n        this.goToPage(nextPage);\n    }\n\n    goToPreviousPage(): void {\n        const previousPage = this.getCurrentPage() - 1;\n        this.goToPage(previousPage);\n    }\n\n    hasPreviousPage(): boolean {\n        return this.getCurrentPage() > 1;\n    }\n\n    hasNextPage(): boolean {\n        return this.getCurrentPage() < this.getPagesCount();\n    }\n\n    getTotalItems(): number {\n        return this.totalItems;\n    }\n\n    getPageSize(): number {\n        return this.pageSize;\n    }\n\n    setPageSize(size: number): void {\n        const truncated = Math.max(...[size, 1]);\n        this.pageSize = truncated;\n    }\n\n    getCurrentPage(): number {\n        return this.currentPage;\n    }\n\n    getPageWindowSize(): number {\n        return this.pageWindowSize;\n    }\n\n    setPageWindowSize(size: number): void {\n        const truncated = Math.max(...[size, 1]);\n        this.pageWindowSize = truncated;\n    }\n\n    getShowingFrom(): number {\n        const startingIndex = (this.getCurrentPage() - 1) * this.getPageSize();\n        let startingPage = startingIndex + 1;\n\n        if (!this.hasItems()) {\n            startingPage = 0;\n        }\n\n        return startingPage;\n    }\n\n    getShowingTo(): number {\n        const displayStartItem = this.getShowingFrom();\n        const pageSize = this.getPageSize();\n        const totalItems = this.getTotalItems();\n\n        if (!this.hasItems()) {\n            return 0;\n        }\n\n        const pageEnd = Math.min(...[displayStartItem + pageSize - 1, totalItems]);\n\n        return pageEnd;\n    }\n}\n\nexport const range = (start: number, end?: number, step = 1): Array<number> => {\n    const output = [];\n    if (typeof end === 'undefined') {\n        end = start;\n        start = 0;\n    }\n    for (let i = start; i < end; i += step) {\n        output.push(i);\n    }\n    return output;\n};\n","export const EUI_COLORS = {\n    text: '#333333',\n    default: '#333333',\n    black: '#000000',\n    white: '#ffffff',\n\n    primary: '#004494',\n    primaryDark: '#003e8c',\n    primaryDarker: '#003581',\n    primaryDarkest: '#002d77',\n    primaryDarkester: '#001f65',\n    primaryDarkester2: '#00174c',\n    primaryLight: '#2660a4',\n    primaryLighter: '#4d7cb4',\n    primaryLightest: '#80a2ca',\n    primaryLightester: '#b3c7df',\n    primaryLightester2: '#e0e9f2 ',\n\n    accent: '#ffeb3b',\n    accentDark: '#ffd114',\n    accentDarker: '#fc1',\n    accentDarkest: '#ffc60d',\n    accentDarkester: '#ffbc07',\n    accentDarkester2: '#edad00',\n    accentLight: '#ffdc3a',\n    accentLighter: '#ffe25d',\n    accentLightest: '#ffeb8b',\n    accentLightester: '#fff3b9',\n    accentLightester2: '#fffae3',\n\n    info: '#03a9f4',\n    infoDark: '#039be5',\n    infoDarker: '#0288d1',\n    infoDarkest: '#0277bd',\n    infoDarkester: '#01579b',\n    infoDarkester2: '#003473',\n    infoLight: '#29b6f6',\n    infoLighter: '#4fc3f7',\n    infoLightest: '#81d4fa',\n    infoLightester: '#b3e5fc',\n    infoLightester2: '#e0eef6',\n\n    success: '#4caf50',\n    successDark: '#3f7233',\n    successDarker: '#37672c',\n    successDarkest: '#2f5d24',\n    successDarkester: '#204a17',\n    successDarkester2: '#183711',\n    successLight: '#628e57',\n    successLighter: '#7ea274',\n    successLightest: '#a3bd9c',\n    successLightester: '#c8d7c4',\n    successLightester2: '#e9efe7',\n\n    warning: '#ff9800',\n    warningDark: '#f08d23',\n    warningDarker: '#ee821d',\n    warningDarkest: '#ec7817',\n    warningDarkester: '#e8670e',\n    warningDarkester2: '#d05c0d',\n    warningLight: '#f4a547',\n    warningLighter: '#f6b568',\n    warningLightest: '#f9ca93',\n    warningLightester: '#fbdfbe',\n    warningLightester2: '#fdf2e5',\n\n    danger: '#f44336',\n    dangerDark: '#d61d2b',\n    dangerDarker: '#d01824',\n    dangerDarkest: '#cb141e',\n    dangerDarkester: '#c20b13',\n    dangerDarkester2: '#aa0a11',\n    dangerLight: '#e0424f',\n    dangerLighter: '#e5646e',\n    dangerLightest: '#ed9098',\n    dangerLightester: '#f4bcc1',\n    dangerLightester2: '#fbe4e6',\n\n    grey: '#9e9e9e',\n    greyDark: '#757575',\n    greyDarker: '#616161',\n    greyDarkest: '#424242',\n    greyDarkester: '#212121',\n    greyDarkester2: '#141414',\n    greyLight: '#bdbdbd',\n    greyLighter: '#d2d2d2',\n    greyLightest: '#eeeeee',\n    greyLightester: '#f5f5f5',\n    greyLightester2: '#fafafa',\n};\n","export interface EuiAuthConfig {\n    isLoggedIn?: boolean;\n    redirectUrl?: string;\n    loginPageUrl?: string;\n}\n\nexport const EUI_DEFAULT_AUTH_CONFIG: EuiAuthConfig = {\n    isLoggedIn: true,\n    redirectUrl: '',\n    loginPageUrl: '',\n};\n","import { EuiLanguage } from './eui-language.model';\n\nexport type EuiLanguageCode = string | EuiLanguage;\n\nexport class EuiEuLanguages {\n    private static languages: { [code: string]: EuiLanguage } = {\n        bg: {\n            code: 'bg',\n            label: 'български',\n        },\n        cs: {\n            code: 'cs',\n            label: 'čeština',\n        },\n        da: {\n            code: 'da',\n            label: 'dansk',\n        },\n        de: {\n            code: 'de',\n            label: 'Deutsch',\n        },\n        et: {\n            code: 'et',\n            label: 'eesti keel',\n        },\n        el: {\n            code: 'el',\n            label: 'ελληνικά',\n        },\n        en: {\n            code: 'en',\n            label: 'English',\n        },\n        es: {\n            code: 'es',\n            label: 'español',\n        },\n        fr: {\n            code: 'fr',\n            label: 'français',\n        },\n        ga: {\n            code: 'ga',\n            label: 'Gaeilge',\n        },\n        hr: {\n            code: 'hr',\n            label: 'hrvatski',\n        },\n        it: {\n            code: 'it',\n            label: 'italiano',\n        },\n        lv: {\n            code: 'lv',\n            label: 'latviešu valoda',\n        },\n        lt: {\n            code: 'lt',\n            label: 'lietuvių kalba',\n        },\n        hu: {\n            code: 'hu',\n            label: 'magyar',\n        },\n        mt: {\n            code: 'mt',\n            label: 'Malti',\n        },\n        nl: {\n            code: 'nl',\n            label: 'Nederlands',\n        },\n        pl: {\n            code: 'pl',\n            label: 'polski',\n        },\n        pt: {\n            code: 'pt',\n            label: 'português',\n        },\n        ro: {\n            code: 'ro',\n            label: 'română',\n        },\n        sk: {\n            code: 'sk',\n            label: 'slovenčina',\n        },\n        sl: {\n            code: 'sl',\n            label: 'slovenščina',\n        },\n        fi: {\n            code: 'fi',\n            label: 'suomi',\n        },\n        sv: {\n            code: 'sv',\n            label: 'svenska',\n        },\n    };\n\n    private static allLanguages = [\n            { code: 'aa', label: 'Afaraf' },\n            { code: 'ab', label: 'аҧсуа' },\n            { code: 'ae', label: 'avesta' },\n            { code: 'af', label: 'Afrikaans' },\n            { code: 'ak', label: 'Akan' },\n            { code: 'am', label: 'አማርኛ' },\n            { code: 'an', label: 'Aragonés' },\n            { code: 'ar', label: 'العربية', isRtl: true },\n            { code: 'as', label: 'অসমীয়া' },\n            { code: 'av', label: 'авар мацӀ, магӀарул мацӀ' },\n            { code: 'ay', label: 'aymar aru' },\n            { code: 'az', label: 'azərbaycan dili' },\n            { code: 'ba', label: 'башҡорт теле' },\n            { code: 'be', label: 'Беларуская' },\n            { code: 'bg', label: 'български' },\n            { code: 'bh', label: 'भोजपुरी' },\n            { code: 'bi', label: 'Bislama' },\n            { code: 'bm', label: 'bamanankan' },\n            { code: 'bn', label: 'বাংলা' },\n            { code: 'bo', label: 'བོད་ཡིག' },\n            { code: 'br', label: 'brezhoneg' },\n            { code: 'bs', label: 'bosanski jezik' },\n            { code: 'ca', label: 'Català' },\n            { code: 'ce', label: 'нохчийн мотт' },\n            { code: 'ch', label: 'Chamoru' },\n            { code: 'co', label: 'corsu, lingua corsa' },\n            { code: 'cr', label: 'ᓀᐦᐃᔭᐍᐏᐣ' },\n            { code: 'cs', label: 'čeština' },\n            { code: 'cu', label: 'ѩзыкъ словѣньскъ' },\n            { code: 'cv', label: 'чӑваш чӗлхи' },\n            { code: 'cy', label: 'Cymraeg' },\n            { code: 'da', label: 'dansk' },\n            { code: 'de', label: 'Deutsch' },\n            { code: 'dv', label: 'ދިވެހި' },\n            { code: 'ee', label: 'Eʋegbe' },\n            { code: 'el', label: 'Ελληνικά' },\n            { code: 'en', label: 'English' },\n            { code: 'eo', label: 'Esperanto' },\n            { code: 'es', label: 'español' },\n            { code: 'et', label: 'eesti' },\n            { code: 'eu', label: 'euskara, euskera' },\n            { code: 'fa', label: 'فارسی', isRtl: true },\n            { code: 'ff', label: 'Fulfulde, Pulaar, Pular' },\n            { code: 'fi', label: 'suomi' },\n            { code: 'fj', label: 'vosa Vakaviti' },\n            { code: 'fo', label: 'føroyskt' },\n            { code: 'fr', label: 'français' },\n            { code: 'fy', label: 'Frysk' },\n            { code: 'ga', label: 'Gaeilge' },\n            { code: 'gd', label: 'Gàidhlig' },\n            { code: 'gl', label: 'Galego' },\n            { code: 'gn', label: 'Avañeẽ' },\n            { code: 'gu', label: 'ગુજરાતી' },\n            { code: 'gv', label: 'Gaelg, Gailck' },\n            { code: 'ha', label: 'Hausa, هَوُسَ' },\n            { code: 'he', label: 'עברית', isRtl: true },\n            { code: 'hi', label: 'हिन्दी, हिंदी' },\n            { code: 'ho', label: 'Hiri Motu' },\n            { code: 'hr', label: 'hrvatski' },\n            { code: 'ht', label: 'Kreyòl ayisyen' },\n            { code: 'hu', label: 'Magyar' },\n            { code: 'hy', label: 'Հայերեն' },\n            { code: 'hz', label: 'Otjiherero' },\n            { code: 'ia', label: 'Interlingua' },\n            { code: 'id', label: 'Bahasa Indonesia' },\n            { code: 'ie', label: 'Originally called Occidental' },\n            { code: 'ig', label: 'Asụsụ Igbo' },\n            { code: 'ii', label: 'ꆈꌠ꒿ Nuosuhxop' },\n            { code: 'ik', label: 'Iñupiaq, Iñupiatun' },\n            { code: 'io', label: 'Ido' },\n            { code: 'is', label: 'Íslenska' },\n            { code: 'it', label: 'Italiano' },\n            { code: 'iu', label: 'ᐃᓄᒃᑎᑐᑦ' },\n            { code: 'ja', label: '日本語' },\n            { code: 'jv', label: 'basa Jawa' },\n            { code: 'ka', label: 'ქართული' },\n            { code: 'kg', label: 'KiKongo' },\n            { code: 'ki', label: 'Gĩkũyũ' },\n            { code: 'kj', label: 'Kuanyama' },\n            { code: 'kk', label: 'Қазақ тілі' },\n            { code: 'kl', label: 'kalaallisut' },\n            { code: 'km', label: 'ភាសាខ្មែរ' },\n            { code: 'kn', label: 'ಕನ್ನಡ' },\n            { code: 'ko', label: '한국어 (韓國語), 조선말 (朝鮮語)' },\n            { code: 'kr', label: 'Kanuri' },\n            { code: 'ks', label: 'कश्मीरी, كشميري‎' },\n            { code: 'ku', label: 'Kurdî, كوردی‎', isRtl: true },\n            { code: 'kv', label: 'коми кыв' },\n            { code: 'kw', label: 'Kernewek' },\n            { code: 'ky', label: 'кыргыз тили' },\n            { code: 'la', label: 'latine' },\n            { code: 'lb', label: 'Lëtzebuergesch' },\n            { code: 'lg', label: 'Luganda' },\n            { code: 'li', label: 'Limburgs' },\n            { code: 'ln', label: 'Lingála' },\n            { code: 'lo', label: 'ພາສາລາວ' },\n            { code: 'lt', label: 'lietuvių kalba' },\n            { code: 'lu', label: 'Lëtzebuergesch' },\n            { code: 'lv', label: 'latviešu valoda' },\n            { code: 'me', label: 'crnogorski jezik' },\n            { code: 'mg', label: 'Malagasy fiteny' },\n            { code: 'mh', label: 'Kajin M̧ajeļ' },\n            { code: 'mi', label: 'te reo Māori' },\n            { code: 'mk', label: 'македонски јазик' },\n            { code: 'ml', label: 'മലയാളം' },\n            { code: 'mn', label: 'монгол' },\n            { code: 'mr', label: 'मराठी' },\n            { code: 'ms', label: 'bahasa Melayu, بهاس ملايو‎' },\n            { code: 'mt', label: 'Malti' },\n            { code: 'my', label: 'ဗမာစာ' },\n            { code: 'na', label: 'Ekakairũ Naoero' },\n            { code: 'nb', label: 'Norsk bokmål' },\n            { code: 'nd', label: 'isiNdebele' },\n            { code: 'ne', label: 'नेपाली' },\n            { code: 'ng', label: 'Owambo' },\n            { code: 'nl', label: 'Nederlands' },\n            { code: 'nn', label: 'Norsk nynorsk' },\n            { code: 'no', label: 'Norsk' },\n            { code: 'nr', label: 'isiNdebele' },\n            { code: 'nv', label: 'Diné bizaad, Dinékʼehǰí' },\n            { code: 'ny', label: 'chiCheŵa, chinyanja' },\n            { code: 'oc', label: 'Occitan' },\n            { code: 'oj', label: 'ᐊᓂᔑᓈᐯᒧᐎᓐ' },\n            { code: 'om', label: 'Afaan Oromoo' },\n            { code: 'or', label: 'ଓଡ଼ିଆ' },\n            { code: 'os', label: 'ирон æвзаг' },\n            { code: 'pa', label: 'ਪੰਜਾਬੀ, پنجابی‎' },\n            { code: 'pi', label: 'पाऴि' },\n            { code: 'pl', label: 'polski' },\n            { code: 'ps', label: 'پښتو' },\n            { code: 'pt', label: 'Português' },\n            { code: 'qu', label: 'Runa Simi, Kichwa' },\n            { code: 'rm', label: 'rumantsch grischun' },\n            { code: 'rn', label: 'kiRundi' },\n            { code: 'ro', label: 'română' },\n            { code: 'ru', label: 'русский язык' },\n            { code: 'rw', label: 'Ikinyarwanda' },\n            { code: 'sa', label: 'संस्कृतम्' },\n            { code: 'sc', label: 'sardu' },\n            { code: 'sd', label: 'सिन्धी, سنڌي، سندھی‎' },\n            { code: 'se', label: 'Davvisámegiella' },\n            { code: 'sg', label: 'yângâ tî sängö' },\n            { code: 'si', label: 'සිංහල' },\n            { code: 'sk', label: 'slovenčina' },\n            { code: 'sl', label: 'slovenščina' },\n            { code: 'sm', label: 'gagana faa Samoa' },\n            { code: 'sn', label: 'chiShona' },\n            { code: 'so', label: 'Soomaaliga, af Soomaali' },\n            { code: 'sq', label: 'Shqip' },\n            { code: 'sr', label: 'српски језик' },\n            { code: 'ss', label: 'SiSwati' },\n            { code: 'st', label: 'Sesotho' },\n            { code: 'su', label: 'Basa Sunda' },\n            { code: 'sv', label: 'svenska' },\n            { code: 'sw', label: 'Kiswahili' },\n            { code: 'ta', label: 'தமிழ்' },\n            { code: 'te', label: 'తెలుగు' },\n            { code: 'tg', label: 'тоҷикӣ, toğikī, تاجیکی‎' },\n            { code: 'th', label: 'ไทย' },\n            { code: 'ti', label: 'ትግርኛ' },\n            { code: 'tk', label: 'Türkmen, Түркмен' },\n            { code: 'tl', label: 'Wikang Tagalog' },\n            { code: 'tn', label: 'Setswana' },\n            { code: 'to', label: 'faka Tonga' },\n            { code: 'tr', label: 'Türkçe' },\n            { code: 'ts', label: 'Xitsonga' },\n            { code: 'tt', label: 'татарча, tatarça, تاتارچا‎' },\n            { code: 'tw', label: 'Twi' },\n            { code: 'ty', label: 'Reo Tahiti' },\n            { code: 'ug', label: 'Uyƣurqə, ئۇيغۇرچە‎' },\n            { code: 'uk', label: 'українська' },\n            { code: 'ur', label: 'اردو', isRtl: true },\n            { code: 'uz', label: 'zbek, Ўзбек, أۇزبېك‎' },\n            { code: 've', label: 'Tshivenḓa' },\n            { code: 'vi', label: 'Tiếng Việt' },\n            { code: 'vo', label: 'Volapük' },\n            { code: 'wa', label: 'Walon' },\n            { code: 'wo', label: 'Wollof' },\n            { code: 'xh', label: 'isiXhosa' },\n            { code: 'yi', label: 'ייִדיש' },\n            { code: 'yo', label: 'Yorùbá' },\n            { code: 'za', label: 'Saɯ cueŋƅ, Saw cuengh' },\n            { code: 'zh', label: '中文 (Zhōngwén), 汉语, 漢語' },\n    ];\n\n    /**\n     * Matches the given string array to the EU languages and returns a EuiLanguage array.\n     * In case that no codes provided it returns the EU Languages array.\n     *\n     * @param codes A string array of 2 char codes\n     */\n    static getLanguages(codes: EuiLanguageCode[] = Object.keys(this.languages)): EuiLanguage[] {\n        return this.filterInvalidLanguageCodes(codes).map((c: string | EuiLanguage) => (typeof c === 'string' ? this.languages[c] : c));\n    }\n\n    /**\n     * filters and removes language codes that are not part of the EULanguage\n     * e.g. 'ko' does not map to any EULanguage code on the array.\n     *      { code: 'ko', label: 'whatever' } is valid though\n     *\n     * @param codes codes A string array of 2 char codescodes A string array of 2 char codes\n     */\n    static filterInvalidLanguageCodes(codes: EuiLanguageCode[]): EuiLanguageCode[] {\n        return codes.filter((c: string | EuiLanguage) => (typeof c === 'string' ? Object.keys(this.languages).indexOf(c) !== -1 : true));\n    }\n\n    /**\n     * return the given list ordered based on the EULanguage order\n     *\n     * @param codes codes A string array of 2 char codes\n     */\n    static getOrderedLanguages(codes: EuiLanguageCode[] = Object.keys(this.languages)): EuiLanguage[] {\n        return this.getLanguages(codes).sort(\n            (a, b) =>\n                Object.keys(this.languages).findIndex((c) => c === a.code) - Object.keys(this.languages).findIndex((c) => c === b.code),\n        );\n    }\n\n    /**\n     * retrieve language codes (string array) from a given array of string and EuiLanguage items\n     *\n     * @param array It can be an mixed array of string and EuiLanguage items\n     */\n    static getLanguageCodes(array: EuiLanguageCode[]): string[] {\n        return array.map((language: string | EuiLanguage) => (typeof language === 'string' ? language : language.code));\n    }\n\n    /**\n     * filter non EU languages from given array\n     *\n     * @param array An array of EuiLanguage items\n     */\n    static filterNonEULanguages(array: EuiLanguage[]): EuiLanguage[] {\n        return array ? array.filter((lang: EuiLanguage) => !Object.keys(this.languages).includes(lang.code)) : [];\n    }\n\n    /**\n     * filter EU Languages from given array\n     *\n     * @param array An array of EuiLanguage items\n     */\n    static filterEULanguages(array: EuiLanguage[]): EuiLanguage[] {\n        return array ? array.filter((lang: EuiLanguage) => Object.keys(this.languages).includes(lang.code)) : [];\n    }\n\n    /**\n     * @param code language code, ex. 'lu'\n     */\n    static getLanguageByCode(code: string): EuiLanguage {\n        return code ? this.allLanguages.find(lang => lang.code === code) : undefined;\n    }\n\n    /**\n     * @param code language code, ex. 'lu'\n     */\n    static isEuLanguage(code: string): boolean {\n        return  Object.keys(this.languages).includes(code);\n    }\n\n    /**\n     * Returns array of EuiLanguage that match the given codes. If codes array is empty, returns all languages.\n     * @param codes A string array of 2 char codes, ex. ['en', 'de']\n     */\n    static getAllLanguagesByCodes(codes: string[]): EuiLanguage[] {\n        return (codes && codes.length > 0) ? this.allLanguages.filter(el => codes.includes(el.code)) : this.allLanguages;\n    }\n}\n","/**\n * polyfill for usage of crypto.randomUUID() on non HTTPS environments EUI-10272\n * Please remove in the future when EC Policy for HTTPS is enforced.\n */\nexport type UUID = `${string}-${string}-${string}-${string}-${string}`;\nif (typeof crypto === 'object' && typeof crypto.randomUUID !== 'function') {\n    crypto.randomUUID = (): UUID => {\n        console.warn('usage of crypto.randomUUID() outside of HTTPS poses a ' +\n            'security risk for you application and its users');\n        const pattern = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'\n        return pattern.replace(/[xy]/g, (c) => {\n            const r = (Math.random() * 16) | 0;\n            const v = c === 'x' ? r : (r & 0x3) | 0x8;\n            return v.toString(16);\n        }) as UUID;\n    };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["getAppLoadedConfigModules"],"mappings":"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"}