{"version":3,"file":"versatiledatakit-shared.mjs","sources":["../../../projects/shared/src/lib/utils/collections/collections-util.ts","../../../projects/shared/src/lib/utils/collections/index.ts","../../../projects/shared/src/lib/utils/model/index.ts","../../../projects/shared/src/lib/utils/url/url.util.ts","../../../projects/shared/src/lib/utils/url/index.ts","../../../projects/shared/src/lib/utils/public-api.ts","../../../projects/shared/src/lib/common/criteria/primitive/primitive.criteria.ts","../../../projects/shared/src/lib/common/criteria/primitive/index.ts","../../../projects/shared/src/lib/common/criteria/compound/and.criteria.ts","../../../projects/shared/src/lib/common/criteria/compound/or.criteria.ts","../../../projects/shared/src/lib/common/criteria/compound/index.ts","../../../projects/shared/src/lib/common/criteria/public-api.ts","../../../projects/shared/src/lib/utils/index.ts","../../../projects/shared/src/lib/common/error/utils/error-store.utils.ts","../../../projects/shared/src/lib/common/error/utils/index.ts","../../../projects/shared/src/lib/common/error/api-error/model/interfaces/index.ts","../../../projects/shared/src/lib/common/error/ui-error/model/interfaces/index.ts","../../../projects/shared/src/lib/common/error/store/model/interfaces/index.ts","../../../projects/shared/src/lib/common/error/index.ts","../../../projects/shared/src/lib/common/error/public-api.ts","../../../projects/shared/src/lib/common/http/request/request.model.ts","../../../projects/shared/src/lib/common/http/request/index.ts","../../../projects/shared/src/lib/common/http/index.ts","../../../projects/shared/src/lib/common/http/public-api.ts","../../../projects/shared/src/lib/common/interfaces/index.ts","../../../projects/shared/src/lib/common/interfaces/public-api.ts","../../../projects/shared/src/lib/common/object/model/taurus-object.model.ts","../../../projects/shared/src/lib/common/object/model/index.ts","../../../projects/shared/src/lib/common/object/index.ts","../../../projects/shared/src/lib/common/object/public-api.ts","../../../projects/shared/src/lib/common/predicate/comparable/comparable.impl.ts","../../../projects/shared/src/lib/common/predicate/comparable/predicates-comparable.impl.ts","../../../projects/shared/src/lib/common/predicate/comparable/index.ts","../../../projects/shared/src/lib/common/predicate/compound/base-compound.predicate.ts","../../../projects/shared/src/lib/common/predicate/compound/and.predicate.ts","../../../projects/shared/src/lib/common/predicate/compound/or.predicate.ts","../../../projects/shared/src/lib/common/predicate/compound/index.ts","../../../projects/shared/src/lib/common/predicate/simple/base-simple.predicate.ts","../../../projects/shared/src/lib/common/predicate/simple/equal.predicate.ts","../../../projects/shared/src/lib/common/predicate/simple/index.ts","../../../projects/shared/src/lib/common/predicate/index.ts","../../../projects/shared/src/lib/common/predicate/public-api.ts","../../../projects/shared/src/lib/common/route/index.ts","../../../projects/shared/src/lib/common/route/public-api.ts","../../../projects/shared/src/lib/common/service/model/taurus-base-api-service.model.ts","../../../projects/shared/src/lib/common/service/model/index.ts","../../../projects/shared/src/lib/common/service/index.ts","../../../projects/shared/src/lib/common/service/public-api.ts","../../../projects/shared/src/lib/common/tasks/task.model.ts","../../../projects/shared/src/lib/common/tasks/index.ts","../../../projects/shared/src/lib/common/tasks/public-api.ts","../../../projects/shared/src/lib/common/public-api.ts","../../../projects/shared/src/lib/common/criteria/index.ts","../../../projects/shared/src/lib/common/index.ts","../../../projects/shared/src/lib/core/error/utils/error.utils.ts","../../../projects/shared/src/lib/core/error/utils/index.ts","../../../projects/shared/src/lib/core/error/store/model/error-store.impl.ts","../../../projects/shared/src/lib/core/error/store/model/index.ts","../../../projects/shared/src/lib/core/error/index.ts","../../../projects/shared/src/lib/core/component/components/error-base/taurus-error-base.component.ts","../../../projects/shared/src/lib/core/component/components/error-base/index.ts","../../../projects/shared/src/lib/core/component/components/redux-base/interfaces/index.ts","../../../projects/shared/src/lib/core/router/model/route.model.ts","../../../projects/shared/src/lib/core/router/model/index.ts","../../../projects/shared/src/lib/core/router/factory/route-state.factory.ts","../../../projects/shared/src/lib/core/router/factory/index.ts","../../../projects/shared/src/lib/core/component/model/state/component-status.model.ts","../../../projects/shared/src/lib/core/component/model/state/component-state.model.ts","../../../projects/shared/src/lib/core/component/model/state/components-state.model.ts","../../../projects/shared/src/lib/core/component/model/state/index.ts","../../../projects/shared/src/lib/core/component/model/component.model.interface.ts","../../../projects/shared/src/lib/core/component/model/component-model.comparable.ts","../../../projects/shared/src/lib/core/component/model/component.model.ts","../../../projects/shared/src/lib/core/component/model/index.ts","../../../projects/shared/src/lib/core/ngrx/actions/base.actions.ts","../../../projects/shared/src/lib/core/ngrx/actions/index.ts","../../../projects/shared/src/lib/core/router/state/actions/router.actions.ts","../../../projects/shared/src/lib/core/router/state/actions/index.ts","../../../projects/shared/src/lib/core/router/state/effects/router.effects.ts","../../../projects/shared/src/lib/core/router/state/effects/index.ts","../../../projects/shared/src/lib/core/ngrx/effects/root-effects.registry.ts","../../../projects/shared/src/lib/core/ngrx/effects/index.ts","../../../projects/shared/src/lib/core/ngrx/state/store-state.model.ts","../../../projects/shared/src/lib/core/ngrx/state/index.ts","../../../projects/shared/src/lib/core/ngrx/index.ts","../../../projects/shared/src/lib/core/component/state/actions/component.actions.ts","../../../projects/shared/src/lib/core/component/state/actions/index.ts","../../../projects/shared/src/lib/core/router/services/router.service.ts","../../../projects/shared/src/lib/core/router/services/index.ts","../../../projects/shared/src/lib/core/router/index.ts","../../../projects/shared/src/lib/core/component/state/reducers/component.reducer.ts","../../../projects/shared/src/lib/core/component/state/reducers/index.ts","../../../projects/shared/src/lib/core/component/state/operators/component-rx.operators.ts","../../../projects/shared/src/lib/core/component/state/operators/index.ts","../../../projects/shared/src/lib/core/component/state/index.ts","../../../projects/shared/src/lib/core/component/services/component.service.ts","../../../projects/shared/src/lib/core/component/services/index.ts","../../../projects/shared/src/lib/core/system-events/event/models/event.codes.ts","../../../projects/shared/src/lib/core/system-events/event/models/event-filter.expression.ts","../../../projects/shared/src/lib/core/system-events/event/models/event.comparable.ts","../../../projects/shared/src/lib/core/system-events/event/models/index.ts","../../../projects/shared/src/lib/core/system-events/event/index.ts","../../../projects/shared/src/lib/core/system-events/dispatcher/registry/event-handler.registry.ts","../../../projects/shared/src/lib/core/system-events/dispatcher/registry/index.ts","../../../projects/shared/src/lib/core/system-events/decorator/models/event-decorator-helper.ts","../../../projects/shared/src/lib/core/system-events/decorator/models/index.ts","../../../projects/shared/src/lib/core/system-events/decorator/event-handler-class.decorator.ts","../../../projects/shared/src/lib/core/system-events/decorator/event-handler.decorator.ts","../../../projects/shared/src/lib/core/system-events/decorator/index.ts","../../../projects/shared/src/lib/core/system-events/dispatcher/event.dispatcher.ts","../../../projects/shared/src/lib/core/system-events/dispatcher/index.ts","../../../projects/shared/src/lib/core/system-events/index.ts","../../../projects/shared/src/lib/core/navigation/services/navigation.service.ts","../../../projects/shared/src/lib/core/navigation/services/index.ts","../../../projects/shared/src/lib/core/navigation/index.ts","../../../projects/shared/src/lib/core/component/components/redux-base/taurus-base.component.ts","../../../projects/shared/src/lib/core/component/components/redux-base/index.ts","../../../projects/shared/src/lib/core/component/components/index.ts","../../../projects/shared/src/lib/core/component/index.ts","../../../projects/shared/src/lib/core/component/public-api.ts","../../../projects/shared/src/lib/core/error/public-api.ts","../../../projects/shared/src/lib/core/navigation/public-api.ts","../../../projects/shared/src/lib/core/ngrx/effects/model/taurus-base.effects.ts","../../../projects/shared/src/lib/core/ngrx/effects/model/index.ts","../../../projects/shared/src/lib/core/ngrx/public-api.ts","../../../projects/shared/src/lib/core/router/public-api.ts","../../../projects/shared/src/lib/core/system-events/public-api.ts","../../../projects/shared/src/lib/core/url-state-manager/url-state.manager.ts","../../../projects/shared/src/lib/core/url-state-manager/index.ts","../../../projects/shared/src/lib/core/url-state-manager/public-api.ts","../../../projects/shared/src/lib/core/vdk-shared-core.module.ts","../../../projects/shared/src/lib/core/router/integration/ngrx/router-serializer.service.ts","../../../projects/shared/src/lib/core/router/integration/ngrx/index.ts","../../../projects/shared/src/lib/core/router/state/reducers/router.reducer.ts","../../../projects/shared/src/lib/core/router/state/reducers/index.ts","../../../projects/shared/src/lib/core/ngrx/reducers/shared-root-reducers.registry.ts","../../../projects/shared/src/lib/core/ngrx/reducers/index.ts","../../../projects/shared/src/lib/core/ngrx/config/ngrx-config.model.ts","../../../projects/shared/src/lib/core/ngrx/config/index.ts","../../../projects/shared/src/lib/core/ngrx/helper-modules/vdk-shared-ngrx-dev.module.ts","../../../projects/shared/src/lib/core/ngrx/helper-modules/vdk-shared-ngrx-prod.module.ts","../../../projects/shared/src/lib/core/ngrx/helper-modules/index.ts","../../../projects/shared/src/lib/core/ngrx/vdk-shared-ngrx.module.ts","../../../projects/shared/src/lib/core/public-api.ts","../../../projects/shared/src/lib/features/_model/index.ts","../../../projects/shared/src/lib/features/_model/public-api.ts","../../../projects/shared/src/lib/features/confirmation/model/confirmation.model.ts","../../../projects/shared/src/lib/features/confirmation/components/container/confirmation-container.component.ts","../../../projects/shared/src/lib/features/confirmation/components/container/confirmation-container.component.html","../../../projects/shared/src/lib/features/confirmation/components/confirmation/confirmation.component.ts","../../../projects/shared/src/lib/features/confirmation/components/confirmation/confirmation.component.html","../../../projects/shared/src/lib/features/confirmation/components/index.ts","../../../projects/shared/src/lib/features/dynamic-components/components/dynamic-container/dynamic-container.component.ts","../../../projects/shared/src/lib/features/dynamic-components/components/dynamic-container/dynamic-container.component.html","../../../projects/shared/src/lib/features/dynamic-components/components/dynamic-context/dynamic-context.component.ts","../../../projects/shared/src/lib/features/dynamic-components/components/dynamic-context/dynamic-context.component.html","../../../projects/shared/src/lib/features/dynamic-components/components/index.ts","../../../projects/shared/src/lib/features/dynamic-components/services/dynamic-components.service.ts","../../../projects/shared/src/lib/features/dynamic-components/services/index.ts","../../../projects/shared/src/lib/features/dynamic-components/index.ts","../../../projects/shared/src/lib/features/confirmation/services/confirmation.service.ts","../../../projects/shared/src/lib/features/confirmation/services/index.ts","../../../projects/shared/src/lib/features/confirmation/confirmation.module.ts","../../../projects/shared/src/lib/features/confirmation/public-api.ts","../../../projects/shared/src/lib/features/directives/directives.module.ts","../../../projects/shared/src/lib/features/directives/public-api.ts","../../../projects/shared/src/lib/features/dynamic-components/dynamic-components.module.ts","../../../projects/shared/src/lib/features/dynamic-components/public-api.ts","../../../projects/shared/src/lib/commons/ngx-components/copy-to-clipboard-button/copy-to-clipboard-button.l10n.ts","../../../projects/shared/src/lib/commons/ngx-utils/simple-translate-service/simple-translate.service.ts","../../../projects/shared/src/lib/commons/ngx-utils/simple-translate-service/simple-translate.pipe.ts","../../../projects/shared/src/lib/commons/ngx-utils/simple-translate-service/simple-translate.module.ts","../../../projects/shared/src/lib/commons/ngx-utils/simple-translate-service/index.ts","../../../projects/shared/src/lib/commons/ngx-utils/index.ts","../../../projects/shared/src/lib/commons/ngx-components/copy-to-clipboard-button/copy-to-clipboard-button.component.ts","../../../projects/shared/src/lib/commons/ngx-components/copy-to-clipboard-button/copy-to-clipboard-button.component.html","../../../projects/shared/src/lib/commons/ngx-components/copy-to-clipboard-button/index.ts","../../../projects/shared/src/lib/commons/ngx-components/form-section/form-section.component.ts","../../../projects/shared/src/lib/commons/ngx-components/form-section/form-section.component.html","../../../projects/shared/src/lib/commons/ngx-components/form-section/index.ts","../../../projects/shared/src/lib/commons/ngx-components/form-section-container/form-section-container.component.ts","../../../projects/shared/src/lib/commons/ngx-components/form-section-container/form-section-container.component.html","../../../projects/shared/src/lib/commons/ngx-components/form-section-container/index.ts","../../../projects/shared/src/lib/commons/ngx-components/empty-state-placeholder/empty-state-placeholder.component.ts","../../../projects/shared/src/lib/commons/ngx-components/empty-state-placeholder/empty-state-placeholder.component.html","../../../projects/shared/src/lib/commons/ngx-components/empty-state-placeholder/empty-state-placeholder.module.ts","../../../projects/shared/src/lib/commons/ngx-components/empty-state-placeholder/index.ts","../../../projects/shared/src/lib/commons/ngx-components/toast/toast.model.ts","../../../projects/shared/src/lib/commons/ngx-components/toast/toast.l10n.ts","../../../projects/shared/src/lib/commons/ngx-components/animation-constants.ts","../../../projects/shared/src/lib/commons/ngx-components/toast/toast.component.ts","../../../projects/shared/src/lib/commons/ngx-components/toast/toast.component.html","../../../projects/shared/src/lib/commons/ngx-components/toast/toast-container.component.ts","../../../projects/shared/src/lib/commons/ngx-components/toast/toast-container.component.html","../../../projects/shared/src/lib/commons/ngx-components/toast/index.ts","../../../projects/shared/src/lib/commons/ngx-components/search/search.component.ts","../../../projects/shared/src/lib/commons/ngx-components/search/search.component.html","../../../projects/shared/src/lib/commons/ngx-components/search/search.module.ts","../../../projects/shared/src/lib/commons/ngx-components/search/index.ts","../../../projects/shared/src/lib/commons/ngx-components/vdk-ngx-components.module.ts","../../../projects/shared/src/lib/commons/ngx-components/index.ts","../../../projects/shared/src/lib/commons/index.ts","../../../projects/shared/src/lib/features/toasts/service/toast.service.ts","../../../projects/shared/src/lib/features/toasts/service/index.ts","../../../projects/shared/src/lib/features/error-handler/services/error-handler.service.ts","../../../projects/shared/src/lib/features/error-handler/services/index.ts","../../../projects/shared/src/lib/features/error-handler/public-api.ts","../../../projects/shared/src/lib/features/pipes/pipes.module.ts","../../../projects/shared/src/lib/features/pipes/public-api.ts","../../../projects/shared/src/lib/features/placeholder/components/empty-state/empty-state.component.ts","../../../projects/shared/src/lib/features/placeholder/components/empty-state/empty-state.component.html","../../../projects/shared/src/lib/features/placeholder/components/empty-state/index.ts","../../../projects/shared/src/lib/core/index.ts","../../../projects/shared/src/lib/features/_token/features.token.ts","../../../projects/shared/src/lib/features/_token/index.ts","../../../projects/shared/src/lib/features/placeholder/services/placeholder.service.ts","../../../projects/shared/src/lib/features/placeholder/services/index.ts","../../../projects/shared/src/lib/features/placeholder/components/placeholder.component.ts","../../../projects/shared/src/lib/features/placeholder/components/placeholder.component.html","../../../projects/shared/src/lib/features/placeholder/components/index.ts","../../../projects/shared/src/lib/features/placeholder/placeholder.module.ts","../../../projects/shared/src/lib/features/placeholder/public-api.ts","../../../projects/shared/src/lib/features/toasts/widget/toasts.component.ts","../../../projects/shared/src/lib/features/toasts/widget/toasts.component.html","../../../projects/shared/src/lib/features/toasts/widget/index.ts","../../../projects/shared/src/lib/features/toasts/toasts.module.ts","../../../projects/shared/src/lib/features/toasts/public-api.ts","../../../projects/shared/src/lib/features/confirmation/index.ts","../../../projects/shared/src/lib/features/url-opener/services/url-opener.service.ts","../../../projects/shared/src/lib/features/url-opener/services/index.ts","../../../projects/shared/src/lib/features/url-opener/url-opener.module.ts","../../../projects/shared/src/lib/features/url-opener/public-api.ts","../../../projects/shared/src/lib/features/warning/components/warning/warning.component.ts","../../../projects/shared/src/lib/features/warning/components/warning/warning.component.html","../../../projects/shared/src/lib/features/warning/components/warning/index.ts","../../../projects/shared/src/lib/features/warning/components/index.ts","../../../projects/shared/src/lib/features/warning/warning.module.ts","../../../projects/shared/src/lib/features/warning/public-api.ts","../../../projects/shared/src/lib/features/url-opener/index.ts","../../../projects/shared/src/lib/features/vdk-shared-features.module.ts","../../../projects/shared/src/lib/features/public-api.ts","../../../projects/shared/src/lib/commons/public-api.ts","../../../projects/shared/src/lib/unit-testing/utils/unit-test-utils.ts","../../../projects/shared/src/lib/unit-testing/utils/router-utils.ts","../../../projects/shared/src/lib/unit-testing/utils/error-code-generator-utils.ts","../../../projects/shared/src/lib/unit-testing/utils/index.ts","../../../projects/shared/src/lib/unit-testing/index.ts","../../../projects/shared/src/lib/unit-testing/public-api.ts","../../../projects/shared/src/public-api.ts","../../../projects/shared/src/versatiledatakit-shared.ts"],"sourcesContent":["/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { cloneDeep, isEqual } from 'lodash';\n\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { Replacer } from '../../common';\n\nimport { Collections, IteratorFnResult, LiteralObjectOrNull, Nil, ObjectIterator, Primitives, PrimitivesDate, Subtract } from '../model';\n\n/**\n * ** Utility Class for Collections.\n */\nexport class CollectionsUtil {\n    /**\n     * ** Check if value is of type undefined.\n     */\n    static isUndefined(value: any): value is undefined {\n        return typeof value === 'undefined';\n    }\n\n    /**\n     * ** Check if value has value null.\n     */\n    static isNull(value: any): value is null {\n        return value === null;\n    }\n\n    /**\n     * ** Check if value is undefined or null.\n     */\n    static isNil(value: any): value is Nil {\n        return CollectionsUtil.isNull(value) || CollectionsUtil.isUndefined(value);\n    }\n\n    /**\n     * ** Check if value is defined (opposite of isNil).\n     *\n     *     - Not null.\n     *     - Not undefined.\n     */\n    static isDefined<T>(value: T): boolean {\n        return !CollectionsUtil.isNull(value) && !CollectionsUtil.isUndefined(value);\n    }\n\n    /**\n     * ** Check if value T is of type Number.\n     */\n    static isNumber<T extends number>(num: T | any): num is number {\n        return typeof num === 'number';\n    }\n\n    /**\n     * ** Check if value T is of type String.\n     */\n    static isString<T extends string>(str: T | any): str is string {\n        return typeof str === 'string';\n    }\n\n    /**\n     * ** Check if value T is of type Boolean.\n     */\n    static isBoolean<T extends boolean>(bool: T | any): bool is boolean {\n        return typeof bool === 'boolean';\n    }\n\n    /**\n     * ** Check if value is Primitive.\n     *\n     *     - String, Number, Boolean, null or undefined.\n     */\n    static isPrimitive(value: any): value is Primitives | Nil {\n        return (\n            CollectionsUtil.isString(value) ||\n            CollectionsUtil.isBoolean(value) ||\n            CollectionsUtil.isNumber(value) ||\n            CollectionsUtil.isUndefined(value)\n        );\n    }\n\n    /**\n     * ** Check if value is NaN.\n     */\n    static isNaN<T extends number>(value: T | any): boolean {\n        return Number.isNaN(value);\n    }\n\n    /**\n     * ** Check if value is of type Date.\n     */\n    static isDate(value: any): value is Date {\n        return value instanceof Date;\n    }\n\n    /**\n     * ** Check if value is Primitive or Date.\n     *\n     *     - String, Number, Boolean, null, undefined or Date.\n     */\n    static isPrimitiveOrDate<T extends PrimitivesDate>(value: T | any): value is Primitives | Nil | Date {\n        return CollectionsUtil.isPrimitive(value) || CollectionsUtil.isDate(value);\n    }\n\n    /**\n     *  ** Check if value T is a reference that points to function (Class/Method).\n     */\n    // eslint-disable-next-line\n    static isFunction<T extends (...args: any[]) => any>(value: T | any): value is (...args: any[]) => any {\n        return typeof value === 'function';\n    }\n\n    /**\n     * ** Check if value T is of type Object.\n     */\n    static isObject<T extends Record<string, unknown>>(obj: T | any): obj is Record<string, unknown> {\n        return typeof obj === 'object';\n    }\n\n    /**\n     * ** Check if value T is instance of Array.\n     */\n    static isArray<T>(arr: T | any): arr is T extends any[] ? T : any[] {\n        return arr instanceof Array;\n    }\n\n    /**\n     * ** Check if value T is not instance of Array or there are no elements in Array.\n     */\n    static isArrayEmpty<T>(arr: T | any): boolean {\n        return !CollectionsUtil.isArray(arr) || arr.length === 0;\n    }\n\n    /**\n     * ** Returns new Array where items will be filtered by reference and will leave distinct values.\n     */\n    static uniqueArray<T extends any[]>(arr: T): T {\n        return arr.filter((value, index, self) => {\n            return self.indexOf(value) === index;\n        }) as T;\n    }\n\n    /**\n     * ** Check if value is Map.\n     */\n    static isMap(obj: Map<any, any> | any): obj is Map<any, any> {\n        return obj instanceof Map;\n    }\n\n    /**\n     * ** Check if value is WeakMap.\n     */\n    static isWeakMap(obj: WeakMap<any, any> | any): obj is WeakMap<any, any> {\n        return obj instanceof WeakMap;\n    }\n\n    /**\n     * ** Check if value is Set.\n     */\n    static isSet(obj: Set<any> | any): obj is Set<any> {\n        return obj instanceof Set;\n    }\n\n    /**\n     * ** Check if value T is of type String and has length bigger than 0 after whitespace trim.\n     */\n    static isStringWithContent<T extends string>(str: T | any): str is string {\n        return CollectionsUtil.isString(str) && str.trim().length > 0;\n    }\n\n    /**\n     * ** Check if value is Collection (literal Object, Array, Map, WeakMap or Set).\n     */\n    static isCollection(obj: Collections | any): obj is Collections {\n        return (\n            CollectionsUtil.isArray(obj) ||\n            CollectionsUtil.isMap(obj) ||\n            CollectionsUtil.isWeakMap(obj) ||\n            CollectionsUtil.isSet(obj) ||\n            CollectionsUtil.isLiteralObject(obj)\n        );\n    }\n\n    /**\n     * ** Check if value is of type Object and not null.\n     */\n    static isObjectNotNull<T extends Record<string, unknown>>(\n        obj: T | any\n    ): obj is Record<string, unknown> & Subtract<Record<string, unknown>, null> {\n        return CollectionsUtil.isObject<T>(obj) && !CollectionsUtil.isNull(obj);\n    }\n\n    /**\n     * ** Check if some variable is of type Boolean and is true.\n     */\n    static isBooleanAndTrue(bool: boolean | any): boolean {\n        return CollectionsUtil.isBoolean(bool) && bool;\n    }\n\n    /**\n     * ** Check if value is literal Object or null.\n     *\n     *     - Not an Array, Map, WeakMap or Set.\n     */\n    static isLiteralObjectOrNull<T extends Record<string, unknown>>(obj: T | any): obj is LiteralObjectOrNull {\n        return (\n            CollectionsUtil.isObject(obj) &&\n            !CollectionsUtil.isArray(obj) &&\n            !CollectionsUtil.isMap(obj) &&\n            !CollectionsUtil.isWeakMap(obj) &&\n            !CollectionsUtil.isSet(obj)\n        );\n    }\n\n    /**\n     * ** Check if provided value is literal Object.\n     *\n     *     - Not and Array, Map, WeakMap, Set or null.\n     */\n    static isLiteralObject<T extends Record<string, unknown>>(obj: T | any): boolean {\n        return CollectionsUtil.isLiteralObjectOrNull(obj) && !CollectionsUtil.isNull(obj);\n    }\n\n    /**\n     * ** Check if value is Object and has properties.\n     */\n    static isObjectWithProperties<T extends Record<string, unknown>>(obj: T | any): boolean {\n        return CollectionsUtil.isObjectNotNull(obj) && Object.keys(obj).length > 0;\n    }\n\n    /**\n     * ** Return current Date in ISO string format.\n     */\n    static dateISO(): string {\n        return new Date().toISOString();\n    }\n\n    /**\n     * ** Return current Date milliseconds from 1970.\n     */\n    static dateNow(): number {\n        return Date.now();\n    }\n\n    /**\n     * ** Performs deep comparison between two values to determine if the are equivalent.\n     */\n    static isEqual(value1: any, value2: any): boolean {\n        return isEqual(value1, value2);\n    }\n\n    /**\n     * ** Create recursive deep cloned value from provided one.\n     */\n    static cloneDeep<T>(value: T): T {\n        return cloneDeep(value);\n    }\n\n    /**\n     * ** Generate UUID that meats RFC4122 compliance.\n     */\n    static generateUUID(): string {\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n        return uuidv4() as string;\n    }\n\n    /**\n     * ** Generate Object UUID that meats RFC4122 compliance and also has Class name identifier inside.\n     *\n     * <br/>\n     * <i>pattern</i>:\n     * <p>\n     *     <Class Name><strong>_</strong><UUID RFC4122>\n     * </p>\n     */\n    static generateObjectUUID(className: string): string {\n        return `${className}_${CollectionsUtil.generateUUID()}`;\n    }\n\n    /**\n     * ** Creates random string.\n     */\n    static generateRandomString(): string {\n        return (Math.random() + 1).toString(36).substring(2);\n    }\n\n    /**\n     * ** Iterates own enumerable properties in Object.\n     *\n     *     - use Object.keys method for extraction, and executes provided iteratorFn.\n     *     - if iteratorFn returns false or -1 it will break iteration.\n     *     - all other return values continue until last property.\n     *\n     *     - flag as third parameter is optional:\n     *          - Without flag or with flag and has value 'plainObject, method will iterate only through literal Objects.\n     *          - With flag and has value 'objectLookLike', method will try to iterate through everything\n     *                  that passes type value === 'object' (literal Object, Array, Map, Set, WeakMap, etc..).\n     */\n    static iterateObject<T extends Record<string, unknown>>(\n        obj: T,\n        iteratorFn: ObjectIterator<T, IteratorFnResult>,\n        flag: 'plainObject' | 'objectLookLike' = 'plainObject'\n    ): T | null {\n        if (!CollectionsUtil.isFunction(iteratorFn)) {\n            return null;\n        }\n\n        if (flag === 'objectLookLike') {\n            if (!CollectionsUtil.isObjectNotNull(obj)) {\n                return null;\n            }\n        } else {\n            if (!CollectionsUtil.isLiteralObject(obj)) {\n                return null;\n            }\n        }\n\n        const objectKeys = Object.keys(obj);\n        for (const key of objectKeys) {\n            const resultOfIteratorFn = iteratorFn(obj[key] as T[keyof T], key, obj);\n            if (resultOfIteratorFn === false || resultOfIteratorFn === -1) {\n                break;\n            }\n        }\n\n        return obj;\n    }\n\n    /**\n     * ** Check if value is Literal Object and has properties.\n     */\n    static isLiteralObjectWithProperties<T extends Record<string, unknown>>(obj: T | unknown): boolean {\n        return CollectionsUtil.isLiteralObject<T>(obj) && Object.keys(obj).length > 0;\n    }\n\n    /**\n     * ** Iterates over object properties and return Array of its values.\n     */\n    static objectValues<T extends Record<string, any>>(obj: T | null | undefined): Array<T[keyof T]> {\n        const _result: Array<T[keyof T]> = [];\n\n        CollectionsUtil.iterateObject(obj, (value) => {\n            _result.push(value);\n        });\n\n        return _result;\n    }\n\n    /**\n     * ** Transform given Map to Object.\n     */\n    static transformMapToObject<T extends Map<string, unknown>>(map: T): { [key: string]: unknown } {\n        const obj: { [key: string]: any } = {};\n\n        map.forEach((value, key) => (obj[key] = value));\n\n        return obj;\n    }\n\n    /**\n     * ** Transform given Object to Map.\n     */\n    static transformObjectToMap<T extends { [key: string]: any }>(obj: T): Map<string, any> {\n        const map = new Map<string, any>();\n\n        CollectionsUtil.iterateObject(obj, (value, key) => {\n            map.set(key, value);\n        });\n\n        return map;\n    }\n\n    /**\n     * ** Iterates over object properties and return Array of its keys/values in pairs.\n     * <p>\n     *     - Returns Array of subArrays that have 2 elements each, first element key and second element value.\n     */\n    static objectPairs<T extends Record<keyof T, T[keyof T]>>(obj: T | null | undefined): Array<[keyof T, T[keyof T]]> {\n        if (!CollectionsUtil.isLiteralObject(obj)) {\n            return [];\n        }\n\n        return Object.entries(obj) as Array<[keyof T, T[keyof T]]>;\n    }\n\n    /**\n     * ** Return own property Descriptor from provided object/function.\n     */\n    static getObjectPropertyDescriptor<T extends Record<string, any>>(obj: T, key: string): PropertyDescriptor {\n        if (!((CollectionsUtil.isFunction(obj) || CollectionsUtil.isObject(obj)) && CollectionsUtil.isString(key))) {\n            return null;\n        }\n\n        return Object.getOwnPropertyDescriptor(obj, key);\n    }\n\n    /**\n     * ** Iterates own enumerable properties (statics) of Function (Class).\n     *\n     *     - use Object.getOwnPropertyDescriptors method for extraction, and executes provided iteratorFn.\n     *     - if iteratorFn returns false or -1 will break iteration.\n     *     - all other return values means continue until last property.\n     */\n    static iterateClassStatics<T extends Record<string, any>>(\n        fn: T,\n        iteratorFn: (descriptor: PropertyDescriptor, key: string, fn: T) => IteratorFnResult\n    ) {\n        if (!CollectionsUtil.isFunction(fn) || !CollectionsUtil.isFunction(iteratorFn)) {\n            return null;\n        }\n\n        const descriptors = Object.getOwnPropertyDescriptors(fn);\n        CollectionsUtil.iterateObject(descriptors, (descriptor: PropertyDescriptor, key) => iteratorFn(descriptor, key, fn));\n\n        return fn;\n    }\n\n    /**\n     * ** Check if two Maps are Equal.\n     *\n     *   - They are equal if they have same references.\n     *   - They are equal if they have same keys and same values for compared keys.\n     */\n    static areMapsEqual(m1: Map<unknown, unknown>, m2: Map<unknown, unknown>): boolean {\n        const evaluateDeepComparison = () => {\n            for (const [key, val] of m1) {\n                const compareVal = m2.get(key);\n\n                if (CollectionsUtil.isMap(val)) {\n                    if (!CollectionsUtil.areMapsEqual(val, compareVal as Map<unknown, unknown>)) {\n                        return false;\n                    }\n\n                    continue;\n                }\n\n                if (!CollectionsUtil.isEqual(val, compareVal) || (CollectionsUtil.isUndefined(compareVal) && !m2.has(key))) {\n                    return false;\n                }\n            }\n\n            return true;\n        };\n\n        return CollectionsUtil.isMap(m1) && CollectionsUtil.isMap(m2) && (m1 === m2 || (m1.size === m2.size && evaluateDeepComparison()));\n    }\n\n    /**\n     * ** Interpolate string and replace while iterating through provided strings.\n     *\n     *      - Replacers are strings that are replaced on every place where %s is found starting from index 0.\n     */\n    static interpolateString(target: string, ...replacers: string[]): string;\n    /**\n     * ** Interpolate text and replace while iterating through provided replacers.\n     *\n     *      - Replacers are objects ofType {@link Replacer} that are iterates and consumes,\n     *              searchValue is matcher and replaceValue is value that is placed on match.\n     */\n    static interpolateString(target: string, ...replacers: Array<Replacer<string>>): string;\n    /**\n     * @inheritDoc\n     */\n    static interpolateString(target: string, ...replacers: string[] | Array<Replacer<string>>): string {\n        let response = target;\n\n        replacers.forEach((replacer: string | Replacer<string>) => {\n            if (CollectionsUtil.isString(replacer)) {\n                response = response.replace('%s', replacer);\n            } else {\n                response = response.replace(replacer.searchValue, replacer.replaceValue);\n            }\n        });\n\n        return response;\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './collections-util';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './shorthand-types';\nexport * from './data-source';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const FORWARD_SLASH = '/';\n\nexport const TIE_SWAGGER_DOC_LOCATION = 'swagger-ui.html#';\n\nexport class UrlUtil {\n    static normalizeEndpoint(endPoint: string): string {\n        if (!endPoint) {\n            return '';\n        }\n\n        if (endPoint.endsWith(FORWARD_SLASH)) {\n            return endPoint;\n        }\n\n        return endPoint + FORWARD_SLASH;\n    }\n\n    static constructTieSwaggerUiEndpoint(endpointBasePath: string) {\n        return UrlUtil.normalizeEndpoint(endpointBasePath) + TIE_SWAGGER_DOC_LOCATION;\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './url.util';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './collections';\nexport * from './model';\nexport { UrlUtil } from './url';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { get } from 'lodash';\n\nimport { Criteria } from '../../interfaces';\n\n/**\n * ** Primitive Criteria that check equals by reference or if primitive by value, using ===\n */\nexport class PrimitiveCriteria<T extends object> implements Criteria<T> {\n    private _property: keyof T;\n    private _assertionValue: T[keyof T];\n\n    /**\n     * ** Constructor.\n     */\n    constructor(property: keyof T, assertionValue: T[keyof T]) {\n        this._property = property;\n        this._assertionValue = assertionValue;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    meetCriteria(elements: T[]): T[] {\n        return [...(elements ?? [])].filter((element) => {\n            const value = get<T, keyof T>(element, this._property);\n\n            return value === this._assertionValue;\n        });\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './primitive.criteria';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Criteria } from '../../interfaces';\n\n/**\n * ** And criteria that filters elements in Array and remove those that does not meet all criterias.\n */\nexport class AndCriteria<T> implements Criteria<T> {\n    /**\n     * @inheritDoc\n     */\n    readonly criterias: Criteria<T>[];\n\n    /**\n     * ** Constructor.\n     */\n    constructor(...criterias: Criteria<T>[]) {\n        this.criterias = criterias;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    meetCriteria(elements: T[]): T[] {\n        let elementsMeetCriteria: T[] = [...elements];\n\n        for (const criteria of this.criterias) {\n            elementsMeetCriteria = criteria.meetCriteria(elementsMeetCriteria);\n\n            if (elementsMeetCriteria.length === 0) {\n                break;\n            }\n        }\n\n        return elementsMeetCriteria;\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Criteria } from '../../interfaces';\n\n/**\n * ** Or criteria that filters elements in Array and remove those that does not meet at least one criterias.\n */\nexport class OrCriteria<T> implements Criteria<T> {\n    /**\n     * @inheritDoc\n     */\n    readonly criterias: Criteria<T>[];\n\n    /**\n     * ** Constructor.\n     */\n    constructor(...criterias: Criteria<T>[]) {\n        this.criterias = criterias;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    meetCriteria(elements: T[]): T[] {\n        return this.criterias.reduce((elementsMeetCriteria, criteria) => {\n            const singleCriteriaMetElements = criteria.meetCriteria(elements);\n\n            for (const element of singleCriteriaMetElements) {\n                if (!elementsMeetCriteria.includes(element)) {\n                    elementsMeetCriteria.push(element);\n                }\n            }\n\n            return elementsMeetCriteria;\n        }, [] as T[]);\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './and.criteria';\nexport * from './or.criteria';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './primitive';\nexport * from './compound';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './model';\nexport * from './collections';\nexport * from './url';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { HttpStatusCode } from '@angular/common/http';\n\nimport { CollectionsUtil } from '../../../utils';\n\nimport { ServiceHttpErrorCodes } from '../ui-error/model/interfaces';\n\n/**\n * ** Generates Error code (token).\n *\n *      - Code (token) starts with\n *      - Class name,\n *      - then followed by underscore and class PUBLIC_NAME,\n *      - then followed by underscore and method name or underscore with some error specifics,\n *      - then followed by underscore and additional details to avoid overlaps with other Class errors.\n *        <b>(for http requests it should be HTTP Status Code)</b>\n *\n * <br/>\n * <i>returned value pattern</i>:\n * <p>\n *     <Class Name><b>_</b><Class PUBLIC_NAME><b>_</b><Class method name><b>_</b><additional details, like HTTP Status Code>\n * </p>\n */\nexport const generateErrorCode = (className: string, classPublicName: string, methodName: string, additionalDetails: string): string => {\n    let errorCode = '';\n\n    if (CollectionsUtil.isString(className)) {\n        errorCode += `${className}`;\n    } else {\n        errorCode += CollectionsUtil.generateRandomString();\n    }\n\n    if (CollectionsUtil.isString(classPublicName)) {\n        errorCode += `_${classPublicName}`;\n    }\n\n    if (CollectionsUtil.isString(methodName)) {\n        errorCode += `_${methodName}`;\n    }\n\n    if (CollectionsUtil.isString(additionalDetails)) {\n        errorCode += `_${additionalDetails}`;\n    } else {\n        errorCode += '_';\n    }\n\n    return errorCode;\n};\n\n/**\n * ** Generates supported error codes for provided className, publicName and methodName.\n */\n/* eslint-disable @typescript-eslint/no-unsafe-argument,\n                  @typescript-eslint/no-unsafe-member-access,\n                  @typescript-eslint/no-explicit-any */\nexport const generateSupportedHttpErrorCodes = (className: string, publicName: string, method: string): ServiceHttpErrorCodes => {\n    const errorCodes: ServiceHttpErrorCodes = {} as ServiceHttpErrorCodes;\n\n    errorCodes.All = generateErrorCode(className, publicName, method, null);\n    errorCodes.ClientErrors = generateErrorCode(className, publicName, method, '4\\\\d\\\\d');\n    errorCodes.BadRequest = generateErrorCode(className, publicName, method, `${HttpStatusCode.BadRequest}`);\n    errorCodes.Unauthorized = generateErrorCode(className, publicName, method, `${HttpStatusCode.Unauthorized}`);\n    errorCodes.Forbidden = generateErrorCode(className, publicName, method, `${HttpStatusCode.Forbidden}`);\n    errorCodes.NotFound = generateErrorCode(className, publicName, method, `${HttpStatusCode.NotFound}`);\n    errorCodes.MethodNotAllowed = generateErrorCode(className, publicName, method, `${HttpStatusCode.MethodNotAllowed}`);\n    errorCodes.Conflict = generateErrorCode(className, publicName, method, `${HttpStatusCode.Conflict}`);\n    errorCodes.UnprocessableEntity = generateErrorCode(className, publicName, method, `${HttpStatusCode.UnprocessableEntity}`);\n    errorCodes.ServerErrors = generateErrorCode(className, publicName, method, '5\\\\d\\\\d');\n    errorCodes.InternalServerError = generateErrorCode(className, publicName, method, `${HttpStatusCode.InternalServerError}`);\n    errorCodes.ServiceUnavailable = generateErrorCode(className, publicName, method, `${HttpStatusCode.ServiceUnavailable}`);\n    errorCodes.Unknown = generateErrorCode(className, publicName, method, 'unknown');\n\n    return errorCodes;\n};\n/* eslint-enable @typescript-eslint/no-unsafe-argument,\n                  @typescript-eslint/no-unsafe-member-access,\n                  @typescript-eslint/no-explicit-any */\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './error-store.utils';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './api-error.interface';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './ui-error.interface';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './error-store.interface';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport { generateErrorCode } from './utils';\nexport * from './api-error/model/interfaces';\nexport * from './ui-error/model/interfaces';\nexport * from './store/model/interfaces';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './index';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Literal } from '../../interfaces';\nimport { CollectionsUtil } from '../../../utils';\n\n// Page DTO\n\nexport type LiteralRequestPage = { pageNumber: number; pageSize: number };\n\nexport interface RequestPage extends Literal<LiteralRequestPage> {\n    readonly page: number;\n    readonly size: number;\n}\n\n/**\n * ** Request Page DTO.\n */\nexport class RequestPageImpl implements RequestPage {\n    public readonly page: number;\n    public readonly size: number;\n\n    constructor(page: number, size: number) {\n        this.page = page ?? 1;\n        this.size = size ?? 25;\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static of(page: number, size: number): RequestPageImpl {\n        return new RequestPageImpl(page, size);\n    }\n\n    /**\n     * ** Factory method for empty RequestPageDTO.\n     */\n    static empty(): RequestPageImpl {\n        return new RequestPageImpl(null, null);\n    }\n\n    /**\n     * ** Creates DTO from literal.\n     */\n    static fromLiteral(literalDTO: { pageNumber: number; pageSize: number }): RequestPageImpl {\n        return RequestPageImpl.of(literalDTO.pageNumber, literalDTO.pageSize);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    toLiteral(): LiteralRequestPage {\n        return {\n            pageNumber: this.page ?? 1,\n            pageSize: this.size ?? 25\n        };\n    }\n\n    /**\n     * @inheritDoc\n     */\n    toLiteralCloneDeep(): LiteralRequestPage {\n        return this.toLiteral();\n    }\n}\n\n// Order DTO\n\nexport interface RequestOrder extends Literal<LiteralApiPredicates> {\n    readonly criteria: ApiPredicate[];\n}\n\n/**\n * ** Request Order DTO.\n */\nexport class RequestOrderImpl implements RequestOrder {\n    public readonly criteria: ApiPredicate[];\n\n    constructor(...criteria: ApiPredicate[]) {\n        // eslint-disable-next-line @typescript-eslint/unbound-method\n        this.criteria = [...criteria.filter(CollectionsUtil.isDefined)];\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static of(...criteria: ApiPredicate[]): RequestOrderImpl {\n        return new RequestOrderImpl(...criteria);\n    }\n\n    /**\n     * ** Factory method for empty RequestOrderDTO.\n     */\n    static empty(): RequestOrderImpl {\n        return new RequestOrderImpl();\n    }\n\n    /**\n     * ** Creates DTO from literal.\n     */\n    static fromLiteral(literalCriteria: Array<ApiPredicate>): RequestOrderImpl {\n        return RequestOrderImpl.of(...literalCriteria);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    toLiteral(): LiteralApiPredicates {\n        return [...this.criteria];\n    }\n\n    /**\n     * @inheritDoc\n     */\n    toLiteralCloneDeep(): LiteralApiPredicates {\n        return this.criteria.map((c) => ({ ...c }));\n    }\n}\n\n// Filter DTO\n\nexport interface RequestFilter extends Literal<LiteralApiPredicates> {\n    readonly criteria: ApiPredicate[];\n}\n\n/**\n * ** Request Filter DTO.\n */\nexport class RequestFilterImpl implements RequestFilter {\n    public readonly criteria: ApiPredicate[];\n\n    constructor(...criteria: ApiPredicate[]) {\n        // eslint-disable-next-line @typescript-eslint/unbound-method\n        this.criteria = [...criteria.filter(CollectionsUtil.isDefined)];\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static of(...criteria: ApiPredicate[]): RequestFilterImpl {\n        return new RequestFilterImpl(...criteria);\n    }\n\n    /**\n     * ** Factory method for empty RequestFilterDTO.\n     */\n    static empty(): RequestFilterImpl {\n        return new RequestFilterImpl();\n    }\n\n    /**\n     * ** Creates DTO from literal.\n     */\n    static fromLiteral(literalCriteria: Array<ApiPredicate>): RequestFilterImpl {\n        return RequestFilterImpl.of(...literalCriteria);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    toLiteral(): LiteralApiPredicates {\n        return [...this.criteria];\n    }\n\n    /**\n     * @inheritDoc\n     */\n    toLiteralCloneDeep(): LiteralApiPredicates {\n        return this.criteria.map((c) => ({ ...c }));\n    }\n}\n\n// Generic Predicate for API\n\nexport type LiteralApiPredicates = Array<ApiPredicate>;\n\nexport const ASC = 'ASC';\nexport const DESC = 'DESC';\nexport type DirectionType = typeof ASC | typeof DESC;\n\nexport interface ApiPredicate {\n    readonly property: string;\n    readonly pattern: string;\n    readonly sort: DirectionType;\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './request.model';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './request';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './index';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './comparable.interface';\nexport * from './comparator.interface';\nexport * from './copy.interface';\nexport * from './criteria.interface';\nexport * from './equals.interface';\nexport * from './expression.interface';\nexport * from './literal.interface';\nexport * from './predicate.interface';\nexport * from './replacer.interface';\nexport * from './serializable.interface';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './index';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Directive, OnDestroy } from '@angular/core';\n\nimport { Subscription } from 'rxjs';\n\nimport { CollectionsUtil } from '../../../utils';\n\n/**\n * ** Base Class for all Angular related Objects.\n *\n *      - Cleans all rxjs subscriptions on object destroy.\n */\n@Directive()\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class TaurusObject implements OnDestroy {\n    /**\n     * ** Class name, identifier for Object class.\n     *\n     *      - Format should be PascalCase.\n     */\n    static readonly CLASS_NAME: string = 'TaurusObject';\n\n    /**\n     * ** Class PUBLIC_NAME, human-readable.\n     *\n     *      - Format should be Kebab-Case.\n     */\n    static readonly PUBLIC_NAME: string = 'Taurus-Base-Object';\n\n    /**\n     * ** Object UUID that meats RFC4122 compliance and also has Class name identifier inside.\n     *\n     * <br/>\n     * <i>pattern</i>:\n     * <p>\n     *     <Class Name><strong>_</strong><UUID RFC4122>\n     * </p>\n     */\n    readonly objectUUID: string;\n\n    /**\n     * ** Store for Subscriptions references.\n     */\n    protected subscriptions: Subscription[];\n\n    /**\n     * ** Constructor.\n     */\n    constructor(className: string = null) {\n        this.objectUUID = CollectionsUtil.generateObjectUUID(className ?? TaurusObject.CLASS_NAME);\n        this.subscriptions = [];\n    }\n\n    /**\n     * ** Methods that will dispose Object.\n     *      - Clean all Subscriptions.\n     */\n    dispose(): void {\n        this.cleanSubscriptions();\n    }\n\n    /**\n     * @inheritDoc\n     */\n    ngOnDestroy() {\n        this.dispose();\n    }\n\n    /**\n     * ** Clean all Subscriptions.\n     */\n    protected cleanSubscriptions(): void {\n        // unsubscribe all valid subscriptions\n        this.subscriptions\n            // eslint-disable-next-line @typescript-eslint/unbound-method\n            .filter(CollectionsUtil.isDefined)\n            // eslint-disable-next-line @typescript-eslint/unbound-method\n            .forEach(TaurusObject._unsubscribeFromStream);\n    }\n\n    /**\n     * ** Remove subscription reference from subscriptions queue providing reference itself.\n     *\n     *      - Before remove it would be auto-unsubscribed from stream.\n     * @protected\n     */\n    protected removeSubscriptionRef(subscriptionRef: Subscription): boolean {\n        const subscriptionIndex = this.subscriptions.findIndex((s) => s === subscriptionRef);\n\n        if (subscriptionIndex === -1) {\n            if (subscriptionRef instanceof Subscription) {\n                TaurusObject._unsubscribeFromStream(subscriptionRef);\n\n                return true;\n            }\n\n            return false;\n        }\n\n        const removedSubscription = this.subscriptions.splice(subscriptionIndex, 1);\n\n        return TaurusObject._unsubscribeFromStream(removedSubscription[0]);\n    }\n\n    /**\n     * ** Unsubscribe subscription from stream.\n     * @private\n     */\n    private static _unsubscribeFromStream(s: Subscription): boolean {\n        try {\n            s.unsubscribe();\n\n            return true;\n        } catch (e) {\n            console.error(`Taurus Object failed to unsubscribe from rxjs stream!`, e);\n\n            return false;\n        }\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './taurus-object.model';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './model';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './index';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { Comparable } from '../../interfaces';\n\nimport { CollectionsUtil } from '../../../utils';\n\n/**\n * ** Comparable.\n */\nexport class ComparableImpl<T = unknown> implements Comparable<T> {\n    /**\n     * @inheritDoc\n     */\n    public readonly value: T;\n\n    /**\n     * ** Constructor.\n     */\n    constructor(value: T) {\n        this.value = value;\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static of(value: any): ComparableImpl {\n        return new ComparableImpl(value);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    compare(comparable: Comparable): number {\n        if (comparable instanceof ComparableImpl) {\n            const evaluateSecondStatement = () => (this.value > comparable.value ? 1 : -1);\n\n            return this.value === comparable.value ? 0 : evaluateSecondStatement();\n        } else {\n            return -1;\n        }\n    }\n\n    /**\n     * @inheritDoc\n     */\n    isNil(): boolean {\n        return CollectionsUtil.isNil(this.value);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    notNil(): boolean {\n        return CollectionsUtil.isDefined(this.value);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    like(comparable: Comparable): boolean {\n        return this.compare(comparable) === 0;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    equal(comparable: Comparable): boolean {\n        return this.compare(comparable) === 0;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    notEqual(comparable: Comparable): boolean {\n        return this.compare(comparable) !== 0;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    lessThan(comparable: Comparable): boolean {\n        return this.compare(comparable) < 0;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    lessThanInclusive(comparable: Comparable): boolean {\n        return this.compare(comparable) <= 0;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    greaterThan(comparable: Comparable): boolean {\n        return this.compare(comparable) > 0;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    greaterThanInclusive(comparable: Comparable): boolean {\n        return this.compare(comparable) >= 0;\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CollectionsUtil } from '../../../utils';\n\nimport { Comparable, Predicate } from '../../interfaces';\n\nexport class PredicatesComparable<T extends Predicate[] = Predicate[]> implements Comparable<T> {\n    /**\n     * @inheritDoc\n     */\n    public readonly value: T;\n\n    /**\n     * ** Constructor.\n     */\n    constructor(...predicates: T) {\n        this.value = predicates ?? ([] as T);\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static of(...predicates: Predicate[]): PredicatesComparable {\n        return new PredicatesComparable(...predicates);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    compare(_comparable: Comparable): number {\n        console.warn('PredicatesComparable, unsupported comparison.');\n\n        return -1;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    isNil(): boolean {\n        return CollectionsUtil.isNil(this.value);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    notNil(): boolean {\n        return CollectionsUtil.isDefined(this.value);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    like(comparable: Comparable): boolean {\n        return this.value.some((predicate) => predicate.evaluate(comparable));\n    }\n\n    /**\n     * @inheritDoc\n     */\n    equal(comparable: Comparable): boolean {\n        return this.value.every((predicate) => predicate.evaluate(comparable));\n    }\n\n    /**\n     * @inheritDoc\n     */\n    notEqual(comparable: Comparable): boolean {\n        return !this.value.every((predicate) => predicate.evaluate(comparable));\n    }\n\n    /**\n     * @inheritDoc\n     */\n    lessThan(_comparable: Comparable): boolean {\n        return PredicatesComparable._defaultUnsupported();\n    }\n\n    /**\n     * @inheritDoc\n     */\n    lessThanInclusive(_comparable: Comparable): boolean {\n        return PredicatesComparable._defaultUnsupported();\n    }\n\n    /**\n     * @inheritDoc\n     */\n    greaterThan(_comparable: Comparable): boolean {\n        return PredicatesComparable._defaultUnsupported();\n    }\n\n    /**\n     * @inheritDoc\n     */\n    greaterThanInclusive(_comparable: Comparable): boolean {\n        return PredicatesComparable._defaultUnsupported();\n    }\n\n    // eslint-disable-next-line @typescript-eslint/member-ordering\n    private static _defaultUnsupported(): boolean {\n        console.warn('PredicatesComparable, unsupported comparison.');\n\n        return false;\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './comparable.impl';\nexport * from './predicates-comparable.impl';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Comparable, Predicate } from '../../interfaces';\n\nimport { PredicatesComparable } from '../comparable';\n\nexport abstract class CompoundPredicate implements Predicate<PredicatesComparable, Comparable> {\n    /**\n     * @inheritDoc\n     */\n    readonly comparable: PredicatesComparable;\n\n    /**\n     * ** Constructor.\n     */\n    constructor(comparable: PredicatesComparable);\n    constructor(...predicates: Predicate[]);\n    constructor(...values: Predicate[] | [PredicatesComparable]) {\n        if (values.length === 1) {\n            if (values[0] instanceof PredicatesComparable) {\n                this.comparable = values[0];\n            } else {\n                this.comparable = PredicatesComparable.of(values[0]);\n            }\n        } else {\n            this.comparable = PredicatesComparable.of(...(values as Predicate[]));\n        }\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static of(..._args: unknown[]): CompoundPredicate {\n        throw new Error('Method have to be overridden in Subclasses.');\n    }\n\n    /**\n     * @inheritDoc\n     */\n    abstract evaluate(value: Comparable): boolean;\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Comparable, Predicate } from '../../interfaces';\n\nimport { PredicatesComparable } from '../comparable';\n\nimport { CompoundPredicate } from './base-compound.predicate';\n\nexport class And extends CompoundPredicate {\n    /**\n     * ** Factory method.\n     */\n    static override of(comparable: PredicatesComparable): And;\n    static override of(...predicates: Predicate[]): And;\n    static override of(...values: Predicate[] | [PredicatesComparable]): And {\n        if (values[0] instanceof PredicatesComparable) {\n            return new And(values[0]);\n        } else {\n            return new And(...(values as Predicate[]));\n        }\n    }\n\n    /**\n     * @inheritDoc\n     */\n    evaluate(comparable: Comparable): boolean {\n        return this.comparable.equal(comparable);\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Comparable, Predicate } from '../../interfaces';\n\nimport { PredicatesComparable } from '../comparable';\n\nimport { CompoundPredicate } from './base-compound.predicate';\n\nexport class Or extends CompoundPredicate {\n    /**\n     * ** Factory method.\n     */\n    static override of(comparable: PredicatesComparable): Or;\n    static override of(...predicates: Predicate[]): Or;\n    static override of(...values: Predicate[] | [PredicatesComparable]): Or {\n        if (values[0] instanceof PredicatesComparable) {\n            return new Or(values[0]);\n        } else {\n            return new Or(...(values as Predicate[]));\n        }\n    }\n\n    /**\n     * @inheritDoc\n     */\n    evaluate(comparable: Comparable): boolean {\n        return this.comparable.like(comparable);\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './base-compound.predicate';\nexport * from './and.predicate';\nexport * from './or.predicate';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Comparable, Predicate } from '../../interfaces';\n\nexport abstract class SimplePredicate<T extends Comparable = Comparable> implements Predicate<T> {\n    /**\n     * @inheritDoc\n     */\n    readonly comparable: T;\n\n    /**\n     * ** Constructor.\n     */\n    protected constructor(comparable: T) {\n        this.comparable = comparable;\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static of(..._args: unknown[]): SimplePredicate {\n        throw new Error('Method have to be overridden in Subclasses.');\n    }\n\n    /**\n     * @inheritDoc\n     */\n    abstract evaluate(comparable: T): boolean;\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Comparable } from '../../interfaces';\n\nimport { SimplePredicate } from './base-simple.predicate';\n\n/**\n * ** Equal Predicate that accepts Comparable and make equality evaluation.\n *\n *\n */\nexport class Equal<T extends Comparable = Comparable> extends SimplePredicate<T> {\n    /**\n     * ** Constructor.\n     */\n    constructor(comparable: T) {\n        super(comparable);\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static override of(comparable: Comparable): Equal {\n        return new Equal(comparable);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    evaluate(comparable: Comparable): boolean {\n        return this.comparable.equal(comparable);\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './base-simple.predicate';\nexport * from './equal.predicate';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './comparable';\nexport * from './compound';\nexport * from './simple';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './index';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './route.model';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './index';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any,@typescript-eslint/naming-convention */\n\nimport { Directive, Type } from '@angular/core';\n\nimport { CollectionsUtil, FilterMethods } from '../../../utils';\n\nimport { TaurusObject } from '../../object';\n\nimport { ServiceHttpErrorCodes } from '../../error';\nimport { generateSupportedHttpErrorCodes } from '../../error/utils';\n\n/**\n * ** Store type for auto-generated codes for every method, where key is the method name and value is different error codes for auto-supported scenarios.\n */\nexport type ErrorCodes<CType, KExclude extends keyof any = ExcludedMethods> = Readonly<\n    Record<keyof FilterMethods<CType, KExclude>, Readonly<Record<keyof ServiceHttpErrorCodes, string>>>\n>;\n\n/**\n * ** Excluded methods from auto-generated error codes.\n */\nexport type ExcludedMethods =\n    | 'constructor'\n    | 'errorCodes'\n    | 'dispose'\n    | 'ngOnDestroy'\n    | 'cleanSubscriptions'\n    | 'removeSubscriptionRef'\n    | 'registerErrorCodes';\n\n/**\n * ** Base Class for Angular Service related classes.\n *\n *      - Add abstraction for TaurusBaseApiService subclasses to auto-register their methods' error codes in relationship one method to many error codes for auto-supported scenarios.\n *      - There could be added additional error codes from subclasses.\n */\n@Directive()\nexport class TaurusBaseApiService<CType extends TaurusBaseApiService = any> extends TaurusObject {\n    /**\n     * @inheritDoc\n     */\n    static override readonly CLASS_NAME: string = 'TaurusBaseApiService';\n\n    /**\n     * @inheritDoc\n     */\n    static override readonly PUBLIC_NAME: string = 'Taurus-Api-Service';\n\n    /**\n     * ** Class error codes Mapping.\n     *\n     *      - There are auto-generated error codes for every method name in runtime, where method name is the key, and the multiple values where each value is bound to unique error code.\n     *      - Subclasses could override in definition time or in runtime to add additional error codes.\n     */\n    readonly errorCodes: ErrorCodes<CType> = {} as ErrorCodes<CType>;\n\n    /**\n     * ** Constructor.\n     */\n    protected constructor(className: string = null) {\n        super(className ?? TaurusBaseApiService.CLASS_NAME);\n    }\n\n    /**\n     * ** Register error codes for service.\n     *\n     *      - Exclude system methods.\n     *      - Exclude private methods which names start with underscore (e.g. _methodName(): void;)\n     * @protected\n     */\n    protected registerErrorCodes(service: Type<CType>): void {\n        /* eslint-disable @typescript-eslint/no-unsafe-argument,\n                          @typescript-eslint/no-unsafe-assignment,\n                          @typescript-eslint/no-unsafe-member-access */\n\n        try {\n            Object.getOwnPropertyNames(service.prototype)\n                .filter(\n                    (method) =>\n                        method !== 'constructor' &&\n                        method !== 'dispose' &&\n                        method !== 'ngOnDestroy' &&\n                        method !== 'cleanSubscriptions' &&\n                        method !== 'removeSubscriptionRef' &&\n                        method !== 'registerErrorCodes' &&\n                        !/^_/.test(method) &&\n                        CollectionsUtil.isFunction(service.prototype[method])\n                )\n                .forEach((method) => {\n                    this.errorCodes[method] = generateSupportedHttpErrorCodes(\n                        (service as any).CLASS_NAME,\n                        (service as any).PUBLIC_NAME,\n                        method\n                    );\n                });\n        } catch (e) {\n            console.error(`Cannot register Service Error Codes!`);\n        }\n        /* eslint-enable @typescript-eslint/no-unsafe-argument,\n                         @typescript-eslint/no-unsafe-assignment,\n                         @typescript-eslint/no-unsafe-member-access */\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './taurus-base-api-service.model';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './model';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './index';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CollectionsUtil } from '../../utils';\n\nconst TASK_IDENTIFIER_SEPARATOR = ' __ ';\nconst TASK_IDENTIFIER_TEMPLATE = `%s${TASK_IDENTIFIER_SEPARATOR}%s`;\n\n/**\n * ** Factory for Tasks identifiers.\n */\nexport const createTaskIdentifier = (task: string) => {\n    if (CollectionsUtil.isString(task)) {\n        return CollectionsUtil.interpolateString(TASK_IDENTIFIER_TEMPLATE, task, CollectionsUtil.dateISO());\n    }\n\n    return undefined;\n};\n\n/**\n * ** Extract Task from Tasks identifiers.\n */\nexport const extractTaskFromIdentifier = <T extends string = string>(taskIdentifier: string) => {\n    if (CollectionsUtil.isString(taskIdentifier)) {\n        return taskIdentifier.split(TASK_IDENTIFIER_SEPARATOR)[0] as T;\n    }\n\n    return null;\n};\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './task.model';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './index';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './criteria/public-api';\nexport * from './error/public-api';\nexport * from './http/public-api';\nexport * from './interfaces/public-api';\nexport * from './object/public-api';\nexport * from './predicate/public-api';\nexport * from './route/public-api';\nexport * from './service/public-api';\nexport * from './tasks/public-api';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './primitive';\nexport * from './compound';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './criteria';\nexport * from './error';\nexport * from './http';\nexport * from './interfaces';\nexport * from './object';\nexport * from './predicate';\nexport * from './route';\nexport * from './service';\nexport * from './tasks';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { HttpErrorResponse, HttpStatusCode } from '@angular/common/http';\n\nimport { CollectionsUtil } from '../../../utils';\n\nimport { ApiErrorMessage, ErrorRecord, generateErrorCode, ServiceHttpErrorCodes } from '../../../common';\n\n/**\n * ** Process service HTTP request error and return ErrorRecord.\n *\n * @param {string} objectUUID - is objectUUID of the Object for which processing error is invoked\n * @param {Record<keyof ServiceHttpErrorCodes, string>} serviceHttpErrorCodes - is map of Service method supported error codes auto-handling\n * @param {unknown} error - is actual error object reference\n */\nexport const processServiceRequestError = (\n    objectUUID: string,\n    serviceHttpErrorCodes: Record<keyof ServiceHttpErrorCodes, string>,\n    error: unknown\n): ErrorRecord => {\n    const _objectUUID = CollectionsUtil.isDefined(objectUUID) ? objectUUID : CollectionsUtil.generateObjectUUID('UnknownClassName');\n\n    if (!CollectionsUtil.isLiteralObject(serviceHttpErrorCodes)) {\n        return {\n            code: generateErrorCode('UnknownClassName', 'UnknownPublicName', 'UnknownMethodName', 'Generic'),\n            objectUUID: _objectUUID,\n            error: error instanceof Error ? error : null\n        };\n    }\n\n    if (error instanceof HttpErrorResponse) {\n        let code: string;\n\n        switch (error.status) {\n            case HttpStatusCode.BadRequest:\n                code = serviceHttpErrorCodes.BadRequest;\n                break;\n            case HttpStatusCode.Unauthorized:\n                code = serviceHttpErrorCodes.Unauthorized;\n                break;\n            case HttpStatusCode.Forbidden:\n                code = serviceHttpErrorCodes.Forbidden;\n                break;\n            case HttpStatusCode.NotFound:\n                code = serviceHttpErrorCodes.NotFound;\n                break;\n            case HttpStatusCode.MethodNotAllowed:\n                code = serviceHttpErrorCodes.MethodNotAllowed;\n                break;\n            case HttpStatusCode.Conflict:\n                code = serviceHttpErrorCodes.Conflict;\n                break;\n            case HttpStatusCode.UnprocessableEntity:\n                code = serviceHttpErrorCodes.UnprocessableEntity;\n                break;\n            case HttpStatusCode.InternalServerError:\n                code = serviceHttpErrorCodes.InternalServerError;\n                break;\n            case HttpStatusCode.ServiceUnavailable:\n                code = serviceHttpErrorCodes.ServiceUnavailable;\n                break;\n            default:\n                code = serviceHttpErrorCodes.Unknown;\n        }\n\n        return {\n            code,\n            objectUUID: _objectUUID,\n            error,\n            httpStatusCode: error.status\n        };\n    }\n\n    return {\n        code: serviceHttpErrorCodes.Unknown,\n        objectUUID: _objectUUID,\n        error: error instanceof Error ? error : null\n    };\n};\n\n/**\n * ** Get API formatted error message from provided Error.\n */\nexport const getApiFormattedErrorMessage = (error: Error): ApiErrorMessage => {\n    let statusCode: number = null;\n\n    if (error instanceof HttpErrorResponse) {\n        if (CollectionsUtil.isString(error.error)) {\n            return {\n                what: `${error.error}`,\n                why: `${error.message}`\n            };\n        }\n\n        if (CollectionsUtil.isLiteralObject(error.error)) {\n            return {\n                what: `${(error.error as ApiErrorMessage).what}`,\n                why: `${(error.error as ApiErrorMessage).why}`,\n                consequences: `${(error.error as ApiErrorMessage).consequences}`,\n                countermeasures: `${(error.error as ApiErrorMessage).countermeasures}`\n            };\n        }\n\n        statusCode = error.status;\n    }\n\n    return {\n        what: 'Please contact Superollider and report the issue',\n        why: getHumanReadableStatusText(statusCode)\n    };\n};\n\n/**\n * ** Get Human readable text from HTTP error status code.\n */\nexport const getHumanReadableStatusText = (httpErrorStatus: number): string => {\n    switch (httpErrorStatus) {\n        case HttpStatusCode.BadRequest:\n            return 'Invalid param';\n        case HttpStatusCode.Unauthorized:\n            return 'Unauthorized';\n        case HttpStatusCode.Forbidden:\n            return 'Forbidden';\n        case HttpStatusCode.NotFound:\n            return 'Not Found';\n        case HttpStatusCode.MethodNotAllowed:\n            return 'Not Allowed';\n        case HttpStatusCode.Conflict:\n            return 'Conflict';\n        case HttpStatusCode.UnprocessableEntity:\n            return 'Invalid operation';\n        case HttpStatusCode.InternalServerError:\n            return 'Internal Server Error';\n        case HttpStatusCode.ServiceUnavailable:\n            return 'Service Unavailable';\n        default:\n            return 'Unknown Error';\n    }\n};\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './error.utils';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { HttpStatusCode } from '@angular/common/http';\n\nimport { CollectionsUtil } from '../../../../utils';\n\nimport { ErrorRecord, ErrorStore, ErrorStoreChangeListener } from '../../../../common';\n\n/**\n * @inheritDoc\n *\n * ** ErrorStore implementation.\n */\nexport class ErrorStoreImpl implements ErrorStore {\n    /**\n     * ** Factory method.\n     */\n    static of(errorRecords: ErrorRecord[]): ErrorStoreImpl {\n        return new ErrorStoreImpl(errorRecords);\n    }\n\n    /**\n     * ** Factory method that returns empty store.\n     */\n    static empty(): ErrorStoreImpl {\n        return ErrorStoreImpl.of(null);\n    }\n\n    /**\n     * ** Creates ErrorStore from literal.\n     */\n    static fromLiteral(errorRecords: ErrorRecord[]): ErrorStoreImpl {\n        return ErrorStoreImpl.of(ErrorStoreImpl.cloneDeepErrorRecords(errorRecords));\n    }\n\n    /**\n     * ** Clone deep provided ErrorRecords.\n     */\n    static cloneDeepErrorRecords(errorRecords: ErrorRecord[]): ErrorRecord[] {\n        return (errorRecords ?? []).map((r) => ({ ...r }));\n    }\n\n    /**\n     * @inheritDoc\n     */\n    records: ErrorRecord[];\n\n    /**\n     * @inheritDoc\n     */\n    changeListeners: Array<ErrorStoreChangeListener<ErrorStoreImpl>>;\n\n    /**\n     * ** Constructor.\n     */\n    constructor(errorRecords: ErrorRecord[] = []) {\n        this.records = errorRecords ?? [];\n        this.changeListeners = [];\n    }\n\n    /**\n     * @inheritDoc\n     */\n    hasErrors(): boolean {\n        return this.records.length > 0;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    hasCode(...errorCodes: string[]): boolean {\n        return errorCodes.some((code) => this.records.findIndex((r) => r.code === code) !== -1);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    hasCodePattern(...errorCodesPatterns: string[]): boolean {\n        try {\n            return errorCodesPatterns.some((errorPattern) => {\n                if (!CollectionsUtil.isString(errorPattern)) {\n                    return false;\n                }\n\n                const errorPatternRegex = new RegExp(errorPattern);\n\n                return this.records.findIndex((r) => errorPatternRegex.test(r.code)) !== -1;\n            });\n        } catch (e) {\n            console.error(e);\n\n            return false;\n        }\n    }\n\n    /**\n     * @inheritDoc\n     */\n    record(errorCode: string, objectUUID: string, error: Error, httpStatusCode?: HttpStatusCode): void;\n    /**\n     * @inheritDoc\n     */\n    record(errorRecord: ErrorRecord): void;\n    record(param: string | ErrorRecord, objectUUID?: string, error?: Error, httpStatusCode?: HttpStatusCode): void {\n        const errorRecordsShallowCopy = [...this.records];\n\n        if (CollectionsUtil.isString(param) && CollectionsUtil.isString(objectUUID)) {\n            const foundIndex = errorRecordsShallowCopy.findIndex((r) => r.code === param && r.objectUUID === objectUUID);\n            const errorRecord: ErrorRecord = {\n                code: param,\n                objectUUID,\n                time: CollectionsUtil.dateNow(),\n                error: error ?? null,\n                httpStatusCode: httpStatusCode ?? null\n            };\n\n            if (foundIndex === -1) {\n                errorRecordsShallowCopy.push(errorRecord);\n            } else {\n                errorRecordsShallowCopy.splice(foundIndex, 1, errorRecord);\n            }\n        } else if (CollectionsUtil.isLiteralObject(param) && CollectionsUtil.isNil(objectUUID)) {\n            const foundIndex = errorRecordsShallowCopy.findIndex(\n                (r) => r.code === (param as ErrorRecord).code && r.objectUUID === (param as ErrorRecord).objectUUID\n            );\n            const errorRecord: ErrorRecord = {\n                ...(param as ErrorRecord),\n                time: CollectionsUtil.dateNow()\n            };\n\n            if (foundIndex === -1) {\n                errorRecordsShallowCopy.push(errorRecord);\n            } else {\n                errorRecordsShallowCopy.splice(foundIndex, 1, errorRecord);\n            }\n        }\n\n        this.records = errorRecordsShallowCopy;\n\n        ErrorStoreImpl._executeChangeListeners(this, this.changeListeners);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    removeCode(...errorCodes: string[]): void {\n        let errorRecordsShallowCopy = [...this.records];\n\n        try {\n            errorRecordsShallowCopy = errorRecordsShallowCopy.filter((r) => !errorCodes.includes(r.code));\n        } catch (e) {\n            console.error(e);\n        }\n\n        this.records = errorRecordsShallowCopy;\n\n        ErrorStoreImpl._executeChangeListeners(this, this.changeListeners);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    removeCodePattern(...errorCodePatterns: string[]): void {\n        let errorCodesShallowCopy = [...this.records];\n\n        for (const errorPattern of errorCodePatterns) {\n            try {\n                if (!CollectionsUtil.isString(errorPattern)) {\n                    continue;\n                }\n\n                const errorPatternRegex = new RegExp(errorPattern);\n\n                errorCodesShallowCopy = errorCodesShallowCopy.filter((r) => !errorPatternRegex.test(r.code));\n            } catch (e) {\n                console.error(e);\n            }\n        }\n\n        this.records = errorCodesShallowCopy;\n\n        ErrorStoreImpl._executeChangeListeners(this, this.changeListeners);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    findRecords(...errorCodes: string[]): ErrorRecord[] {\n        return this.records.filter((r) => errorCodes.includes(r.code));\n    }\n\n    /**\n     * @inheritDoc\n     */\n    findRecordsByPattern(...errorCodePatterns: string[]): ErrorRecord[] {\n        let foundRecords: ErrorRecord[] = [];\n\n        for (const errorPattern of errorCodePatterns) {\n            try {\n                if (!CollectionsUtil.isString(errorPattern)) {\n                    continue;\n                }\n\n                const errorPatternRegex = new RegExp(errorPattern);\n\n                const filteredRecords = this.records.filter((r) => errorPatternRegex.test(r.code));\n\n                foundRecords = foundRecords.concat(...filteredRecords);\n            } catch (e) {\n                console.error(e);\n            }\n        }\n\n        return foundRecords;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    distinctErrorRecords(errorRecords: ErrorRecord[]): ErrorRecord[] {\n        const _errorRecords: ErrorRecord[] = CollectionsUtil.isArray(errorRecords) ? errorRecords : [];\n\n        return this.records.filter(\n            (r) => _errorRecords.findIndex((rInjected) => ErrorStoreImpl._checkErrorRecordsEquality(r, rInjected)) === -1\n        );\n    }\n\n    /**\n     * @inheritDoc\n     */\n    purge(injectedStore: ErrorStoreImpl): void {\n        if (!(injectedStore instanceof ErrorStoreImpl)) {\n            return;\n        }\n\n        if (this.equals(injectedStore)) {\n            return;\n        }\n\n        this.records = [...injectedStore.records];\n\n        ErrorStoreImpl._executeChangeListeners(this, this.changeListeners);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    onChange(callback: (store: this) => void): void {\n        if (CollectionsUtil.isFunction(callback)) {\n            this.changeListeners.push(callback);\n        }\n    }\n\n    /**\n     * @inheritDoc\n     */\n    dispose(): void {\n        this.clear();\n\n        this.changeListeners = [];\n    }\n\n    /**\n     * @inheritDoc\n     */\n    clear(): void {\n        try {\n            this.records.length = 0;\n            this.records = [];\n        } catch (e) {\n            console.error(e);\n        }\n    }\n\n    /**\n     * @inheritDoc\n     */\n    toLiteral(): ErrorRecord[] {\n        return [...this.records];\n    }\n\n    /**\n     * @inheritDoc\n     */\n    toLiteralCloneDeep(): ErrorRecord[] {\n        return this.records.map((r) => {\n            return { ...r };\n        });\n    }\n\n    /**\n     * @inheritDoc\n     */\n    copy(): ErrorStoreImpl {\n        return ErrorStoreImpl.of([...this.records]);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    equals(obj: ErrorStore): boolean {\n        if (!(obj instanceof ErrorStoreImpl)) {\n            return false;\n        }\n\n        if (this.records.length !== obj.records.length) {\n            return false;\n        }\n\n        for (let i = 0; i < this.records.length; i++) {\n            if (!ErrorStoreImpl._checkErrorRecordsEquality(this.records[i], obj.records[i])) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    private static _checkErrorRecordsEquality(errorRecord1: ErrorRecord, errorRecord2: ErrorRecord): boolean {\n        if (errorRecord1.code !== errorRecord2.code) {\n            return false;\n        }\n\n        if (errorRecord1.objectUUID !== errorRecord2.objectUUID) {\n            return false;\n        }\n\n        if (errorRecord1.time !== errorRecord2.time) {\n            return false;\n        }\n\n        if (errorRecord1.httpStatusCode !== errorRecord2.httpStatusCode) {\n            return false;\n        }\n\n        return errorRecord1.error === errorRecord2.error;\n    }\n\n    private static _executeChangeListeners(store: ErrorStoreImpl, changeListeners: Array<ErrorStoreChangeListener<ErrorStore>>): void {\n        if (!CollectionsUtil.isArray(changeListeners) || changeListeners.length === 0) {\n            return;\n        }\n\n        for (const listener of changeListeners) {\n            try {\n                listener(store);\n            } catch (e) {\n                console.error(`Taurus ErrorStore failed to execute change listeners`, e);\n            }\n        }\n    }\n}\n\n/**\n * ** Filter errorRecords and left only records of interests, that exact match provided errorCodes or match provided errorCodesPatterns.\n * @protected\n */\nexport const filterErrorRecords = (\n    errorRecords: ErrorRecord[],\n    errorCodes: string[] = [],\n    errorCodesPatterns: string[] = []\n): ErrorRecord[] => {\n    const errorPatternsRegex: RegExp[] = [];\n\n    try {\n        (errorCodesPatterns ?? []).forEach((errorPattern) => {\n            if (!CollectionsUtil.isString(errorPattern)) {\n                return;\n            }\n\n            errorPatternsRegex.push(new RegExp(errorPattern));\n        });\n    } catch (e) {\n        console.error(e);\n    }\n\n    return [...errorRecords]\n        .sort((r1, r2) => r2.time - r1.time)\n        .filter((r) => {\n            return (errorCodes ?? []).includes(r.code) || errorPatternsRegex.some((errorPatternRegex) => errorPatternRegex.test(r.code));\n        });\n};\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './error-store.impl';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './utils';\nexport * from './store/model';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Directive, OnDestroy } from '@angular/core';\n\nimport { ErrorStore, generateErrorCode, ServiceHttpErrorCodes, TaurusObject } from '../../../../common';\n\nimport { ErrorStoreImpl, processServiceRequestError } from '../../../error';\n\n/**\n * ** Taurus base component with provided in some way auto handling for errors.\n *\n *      - This component is mutually exclusive with TaurusBaseComponent.\n *      - In this component error handling like error recording, error filter, search, etc.. is handled into the Component itself,\n *          while in TaurusBaseComponent it's handled in the upper level inside the Effects and provided through ComponentModel to the Component itself.\n */\n@Directive()\nexport class TaurusErrorBaseComponent extends TaurusObject implements OnDestroy {\n    /**\n     * @inheritDoc\n     */\n    static override readonly CLASS_NAME: string = 'TaurusErrorBaseComponent';\n\n    /**\n     * @inheritDoc\n     */\n    static override readonly PUBLIC_NAME: string = 'Taurus-Error-Base-Component';\n\n    /**\n     * ** Reference to local ErrorStore.\n     */\n    errors: ErrorStore;\n\n    /**\n     * ** Error codes supported in class and its corresponding subclasses.\n     */\n    errorCodes: Readonly<Record<string, string>>;\n\n    /**\n     * ** Constructor.\n     */\n    constructor(className: string = null) {\n        super(className ?? TaurusErrorBaseComponent.CLASS_NAME);\n\n        this.errors = ErrorStoreImpl.empty();\n        this.errorCodes = {};\n    }\n\n    /**\n     * @inheritDoc\n     */\n    override ngOnDestroy(): void {\n        this.errors.dispose();\n\n        super.ngOnDestroy();\n    }\n\n    /**\n     * ** Generates Error code (token).\n     *\n     *      - Code (token) should start with Class name,\n     *              then followed by underscore and class PUBLIC_NAME,\n     *              then followed by underscore and method name or underscore with some error specifics,\n     *              and followed by underscore and additional details to avoid overlaps with other Class errors.\n     *\n     * <br/>\n     * <i>returned value pattern</i>:\n     * <p>\n     *     <Class Name><b>_</b><Class PUBLIC_NAME><b>_</b><Class method name><b>_</b><additional details, like HTTP Status Code>\n     * </p>\n     */\n    protected generateErrorCode(className: string, classPublicName: string, methodName: string, additionalDetails?: string): string {\n        return generateErrorCode(className, classPublicName, methodName, additionalDetails);\n    }\n\n    /**\n     * ** Process service HTTP request error and return ErrorRecord.\n     *\n     * @param {Record<keyof ServiceHttpErrorCodes, string>} serviceHttpErrorCodes - is map of Service method supported error codes auto-handling\n     * @param {unknown} error - is actual error object reference\n     */\n    protected processServiceRequestError(serviceHttpErrorCodes: Record<keyof ServiceHttpErrorCodes, string>, error: unknown): void {\n        this.errors.record(processServiceRequestError(this.objectUUID, serviceHttpErrorCodes, error));\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './taurus-error-base.component';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './taurus-component-lifecycle-hooks.interface';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/member-ordering */\n\nimport { Params } from '@angular/router';\n\nimport { BaseRouterStoreState, RouterReducerState } from '@ngrx/router-store';\n\nimport { CollectionsUtil, PrimitivesNil } from '../../../utils';\n\nimport { Serializable, TaurusRouteData } from '../../../common';\n\n/**\n * ** Route Segments Class.\n */\nexport class RouteSegments {\n    public readonly routePath: string;\n    public readonly data: TaurusRouteData;\n    public readonly params: Params;\n    public readonly queryParams: Params;\n    public readonly parent?: RouteSegments;\n    public readonly configPath?: string;\n\n    /**\n     * ** Constructor.\n     */\n    constructor(\n        routePath: string,\n        data: TaurusRouteData,\n        params: Params,\n        queryParams: Params,\n        parent?: RouteSegments,\n        configPath?: string\n    ) {\n        this.routePath = routePath ?? '';\n        this.data = data || {};\n        this.params = params || {};\n        this.queryParams = queryParams || {};\n        this.parent = parent;\n        this.configPath = configPath;\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static of(\n        routePath?: string,\n        data?: TaurusRouteData,\n        params?: Params,\n        queryParams?: Params,\n        parent?: RouteSegments,\n        configPath?: string\n    ): RouteSegments {\n        return new RouteSegments(routePath, data, params, queryParams, parent, configPath);\n    }\n\n    /**\n     * ** Factory method for empty RouteSegments.\n     */\n    static empty(): RouteSegments {\n        return RouteSegments.of(null, null, null, null, null, null);\n    }\n\n    /**\n     * ** Get RoutePath Segments.\n     */\n    get routePathSegments(): string[] {\n        if (this.parent) {\n            return ([] as string[]).concat(this.parent.routePathSegments, this.routePath).filter((path) => path);\n        }\n\n        return [this.routePath];\n    }\n\n    /**\n     * ** Get ConfigPath Segments.\n     */\n    get configPathSegments(): string[] {\n        if (this.parent) {\n            return ([] as string[]).concat(this.parent.configPathSegments, this.configPath).filter((path) => path);\n        }\n\n        return [this.configPath];\n    }\n\n    /**\n     * ** Get Data from Route configuration by key.\n     *\n     *      - Return first (closest) found key starting from the current one.\n     */\n    getData<T>(key: string): T {\n        if (this.data[key]) {\n            return this.data[key] as T;\n        }\n\n        if (this.parent) {\n            return this.parent.getData<T>(key);\n        }\n\n        return undefined;\n    }\n\n    /**\n     * ** Get url param by key.\n     *\n     *      - Return first (closest) found key starting from the current one.\n     */\n    getParam(key: string): string {\n        if (this.params[key]) {\n            return this.params[key] as string;\n        }\n\n        if (this.parent) {\n            return this.parent.getParam(key);\n        }\n\n        return undefined;\n    }\n\n    /**\n     * ** Get query param by key.\n     */\n    getQueryParam(key: string): string {\n        if (this.queryParams[key]) {\n            return this.queryParams[key] as string;\n        }\n\n        if (this.parent) {\n            return this.parent.getQueryParam(key);\n        }\n\n        return undefined;\n    }\n}\n\n/**\n * ** Route State Class.\n */\nexport class RouteState implements BaseRouterStoreState, Serializable<SerializedRouteState> {\n    public readonly routeSegments: RouteSegments;\n    public readonly url: string;\n\n    /**\n     * ** Constructor.\n     */\n    constructor(routeSegments: RouteSegments, url: string) {\n        this.routeSegments = routeSegments ?? RouteSegments.empty();\n        this.url = url ?? '';\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static of(routeSegments: RouteSegments, url: string): RouteState {\n        return new RouteState(routeSegments, url);\n    }\n\n    /**\n     * ** Factory method for empty State.\n     */\n    static empty(): RouteState {\n        return RouteState.of(null, null);\n    }\n\n    /**\n     * ** Get serialized queryString.\n     */\n    static serializeQueryParams(queryParams: unknown): string {\n        const paramsKeys = Object.keys(queryParams);\n\n        if (!paramsKeys.length) {\n            return '';\n        }\n\n        return paramsKeys.map((key) => `${encodeURIComponent(key)}=${encodeURIComponent(queryParams[key] as string)}`).join('&');\n    }\n\n    /**\n     * ** Returns current RoutePath.\n     */\n    get routePath(): string {\n        return this.routeSegments.routePath;\n    }\n\n    /**\n     * ** Returns current Absolute RoutePath.\n     */\n    get absoluteRoutePath(): string {\n        return RouteState._resolveAbsolutePath(this.routePathSegments);\n    }\n\n    /**\n     * ** Returns the route paths for each route segment starting from the root.\n     */\n    get routePathSegments(): string[] {\n        return this.routeSegments.routePathSegments;\n    }\n\n    /**\n     * ** Returns current ConfigPath.\n     */\n    get configPath(): string {\n        return this.routeSegments.configPath;\n    }\n\n    /**\n     * ** Returns current Absolute ConfigPath.\n     */\n    get absoluteConfigPath(): string {\n        return RouteState._resolveAbsolutePath(this.configPathSegments);\n    }\n\n    /**\n     * ** Returns the config paths for each route segment starting from the root.\n     */\n    get configPathSegments(): string[] {\n        return this.routeSegments.configPathSegments;\n    }\n\n    /**\n     * ** Get all query params.\n     */\n    get queryParams(): Params {\n        return this.routeSegments.queryParams;\n    }\n\n    /**\n     * ** Get serialized queryString.\n     */\n    serializeQueryParams(): string {\n        return RouteState.serializeQueryParams(this.queryParams);\n    }\n\n    /**\n     * ** Get url including QueryParams.\n     */\n    getUrl(): string {\n        return `${this.absoluteRoutePath}?${this.serializeQueryParams()}`;\n    }\n\n    /**\n     * ** Get Data from Route configuration by key.\n     *\n     *      - Return first (closest) found key starting from first RouteSegment.\n     */\n    getData<T>(key: string): T {\n        return this.routeSegments.getData<T>(key);\n    }\n\n    /**\n     * ** Get url param by key.\n     *\n     *      - Return first (closest) found key starting from first RouteSegment.\n     */\n    getParam(key: string): string {\n        return this.routeSegments.getParam(key);\n    }\n\n    /**\n     * ** Get query param by key.\n     */\n    getQueryParam(key: string): string {\n        return this.routeSegments.getQueryParam(key);\n    }\n\n    /**\n     * ** Get Absolute ConfigPath.\n     */\n    getAbsoluteConfigPath(): string {\n        return this.absoluteConfigPath;\n    }\n\n    /**\n     * ** Get parent of current Absolute ConfigPath.\n     */\n    getParentAbsoluteConfigPath(): string {\n        const configPathSegments = this.configPathSegments;\n        configPathSegments.pop();\n\n        return RouteState._resolveAbsolutePath(configPathSegments);\n    }\n\n    /**\n     * ** Get Absolute RoutePath.\n     */\n    getAbsoluteRoutePath(): string {\n        return RouteState._resolveAbsolutePath(this.routePathSegments);\n    }\n\n    /**\n     * ** Get parent of current Absolute RoutePath.\n     */\n    getParentAbsoluteRoutePath(): string {\n        const routePathSegments = this.routePathSegments;\n        routePathSegments.pop();\n\n        return RouteState._resolveAbsolutePath(routePathSegments);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    toJSON(): SerializedRouteState {\n        return {\n            url: this.url,\n            routePath: this.routePath,\n            absoluteRoutePath: this.absoluteRoutePath,\n            routePathSegments: this.routePathSegments,\n            configPath: this.configPath,\n            absoluteConfigPath: this.absoluteConfigPath,\n            configPathSegments: this.configPathSegments,\n            queryParams: this.queryParams,\n            routeSegments: this.routeSegments\n        };\n    }\n\n    /**\n     * ** Resolve Absolute RoutePath from given routePathSegments.\n     */\n    private static _resolveAbsolutePath(routePathSegments: string[]): string {\n        const path = routePathSegments.join('/').replace(/^\\/+/, '');\n\n        if (path === '') {\n            return '/';\n        }\n\n        return `/${path}`;\n    }\n}\n\n/**\n * ** Router state.\n */\nexport class RouterState implements RouterReducerState<RouteState> {\n    readonly state: RouteState;\n    readonly navigationId: number;\n    readonly previousStates: RouterState[];\n\n    /**\n     * ** Constructor.\n     */\n    constructor(state: RouteState, navigationId: number) {\n        this.state = state ?? RouteState.empty();\n        this.navigationId = navigationId ?? null;\n        this.previousStates = [];\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static of(state: RouteState, navigationId: number): RouterState {\n        return new RouterState(state, navigationId);\n    }\n\n    /**\n     * ** Factory method for empty State.\n     */\n    static empty(): RouterState {\n        return RouterState.of(null, null);\n    }\n\n    /**\n     * ** Returns previous RouterState if exist otherwise null.\n     *\n     *      - Optional parameter could be provided to instruct which previous RouterState to return, default one is 0.\n     *          - 0 means the first before current.\n     *          - 1 means the second before current.\n     *          - 2 means the third before current.\n     *          - 3 ... etc...\n     */\n    getPrevious(index = 0): RouterState | null {\n        const lookupIndex = CollectionsUtil.isNumber(index) ? index : 0;\n\n        if (lookupIndex >= 0 && lookupIndex < this.previousStates.length) {\n            return this.previousStates[lookupIndex];\n        }\n\n        return null;\n    }\n\n    /**\n     * ** Append previous RouterState[] to current One.\n     *\n     *      - Internal API used in reducer, not for public use.\n     */\n    appendPrevious(routerState: RouterState): void {\n        const previousStoredStates: RouterState[] = [...routerState.previousStates];\n        const cleanedPreviousState = RouterState.of(routerState.state, routerState.navigationId);\n\n        if (this.navigationId !== cleanedPreviousState.navigationId) {\n            if (previousStoredStates.length >= 10) {\n                previousStoredStates.pop();\n            }\n\n            previousStoredStates.unshift(cleanedPreviousState);\n        }\n\n        this.previousStates.length = 0;\n        this.previousStates.push(...previousStoredStates);\n    }\n}\n\n/**\n * ** Route state serialized.\n */\ninterface SerializedRouteState {\n    url: string;\n    routePath: string;\n    absoluteRoutePath: string;\n    routePathSegments: string[];\n    configPath: string;\n    absoluteConfigPath: string;\n    configPathSegments: string[];\n    queryParams: { [key: string]: PrimitivesNil };\n    routeSegments: RouteSegments;\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './route.model';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ActivatedRouteSnapshot, UrlSegment } from '@angular/router';\n\nimport { CollectionsUtil } from '../../../utils';\n\nimport { RouteSegments, RouteState } from '../model';\n\n/**\n * ** Route State Factory.\n */\nexport class RouteStateFactory {\n    /**\n     * ** Creates Router State from provided Route snapshot.\n     */\n    create(routeSnapshot: ActivatedRouteSnapshot, url: string): RouteState {\n        return RouteState.of(this._getRouteSegments(routeSnapshot), url);\n    }\n\n    private _getRouteSegments(routeSnapshot: ActivatedRouteSnapshot): RouteSegments {\n        if (CollectionsUtil.isNil(routeSnapshot)) {\n            return null;\n        }\n\n        const routePathSegments: string[] = [];\n        routeSnapshot.url.forEach((segment: UrlSegment) => {\n            routePathSegments.push(segment.path);\n        });\n\n        const routePath = routePathSegments.join('/');\n        const data = CollectionsUtil.cloneDeep(routeSnapshot.data);\n        const params = CollectionsUtil.cloneDeep(routeSnapshot.params);\n        const queryParams = CollectionsUtil.cloneDeep(routeSnapshot.queryParams);\n        const configPath = routeSnapshot.routeConfig?.path;\n\n        let parentNavSegments: RouteSegments;\n\n        if (routeSnapshot.parent) {\n            parentNavSegments = this._getRouteSegments(routeSnapshot.parent);\n        }\n\n        return RouteSegments.of(routePath, data, params, queryParams, parentNavSegments, configPath);\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './route-state.factory';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/no-inferrable-types */\n\n/**\n * ** Status constant for Initialized.\n */\nexport const INITIALIZED = 'Initialized';\n\n/**\n * ** Status constant for Idle.\n */\nexport const IDLE = 'Idle';\n\n/**\n * ** Status constant for Loading.\n */\nexport const LOADING = 'Loading';\n\n/**\n * ** Status constant for Loaded.\n */\nexport const LOADED = 'Loaded';\n\n/**\n * ** Status constant for Failed.\n */\nexport const FAILED = 'Failed';\n\n/**\n * ** Status types.\n */\nexport type StatusType = typeof INITIALIZED | typeof IDLE | typeof LOADING | typeof LOADED | typeof FAILED;\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { CollectionsUtil } from '../../../../utils';\n\nimport {\n    Copy,\n    ErrorRecord,\n    ErrorStore,\n    Literal,\n    LiteralApiPredicates,\n    LiteralRequestPage,\n    RequestFilter,\n    RequestFilterImpl,\n    RequestOrder,\n    RequestOrderImpl,\n    RequestPage,\n    RequestPageImpl\n} from '../../../../common';\n\nimport { ErrorStoreImpl } from '../../../error';\n\nimport { IDLE, StatusType } from './component-status.model';\n\n/**\n * ** Literal Component State in purest format ready for Store persisting.\n */\nexport interface LiteralComponentState {\n    /**\n     * ** Identifier for Component State.\n     */\n    readonly id: string;\n\n    /**\n     * ** Status for Component State.\n     */\n    readonly status: StatusType;\n\n    /**\n     * ** Component State Data.\n     * <p>\n     *     - Free format Literal Object.\n     * </p>\n     */\n    readonly data?: { [key: string]: any };\n\n    /**\n     * ** Route path for current State.\n     */\n    readonly routePath?: string;\n\n    /**\n     * ** Route path segments for current State.\n     */\n    readonly routePathSegments?: string[];\n\n    /**\n     * ** Search query for Http requests.\n     */\n    readonly search?: string;\n\n    /**\n     * ** Page for Http requests.\n     */\n    readonly page?: LiteralRequestPage;\n\n    /**\n     * ** Order for Http requests.\n     */\n    readonly order?: LiteralApiPredicates;\n\n    /**\n     * ** Filter for Http requests.\n     */\n    readonly filter?: LiteralApiPredicates;\n\n    /**\n     * ** Order for Http requests.\n     */\n    readonly requestParams?: { [key: string]: any };\n\n    /**\n     * ** Task is property that give bi-directional refinement context.\n     *\n     *      - Gives context to Effect through Action.\n     *      - Gives context to Component through ComponentState (ComponentModel).\n     */\n    readonly task?: string;\n\n    /**\n     * ** Router NavigationId bound to this Component State.\n     */\n    readonly navigationId?: number;\n\n    /**\n     * ** Error store for ErrorRecords that happen in stream manipulation down to the Components.\n     * <p>\n     *     - Ideal for storing Http errors and other runtime errors, so Component could easily leverage that knowledge and show info for User.\n     * </p>\n     */\n    readonly errors?: ErrorRecord[];\n\n    /**\n     * ** Component State UiState, that holds all information for UiElements.\n     * <p>\n     *     - Free format Literal Object where key identifier could be (Component/Html Element) name/id/class etc...\n     * </p>\n     */\n    readonly uiState?: { [key: string]: any };\n}\n\nexport interface ComponentState extends Literal<LiteralComponentState>, Copy<ComponentState> {\n    /**\n     * ** Identifier for Component State.\n     */\n    readonly id: string;\n\n    /**\n     * ** Status for Component State.\n     */\n    readonly status: StatusType;\n\n    /**\n     * ** Component State Data.\n     * <p>\n     *     - Free format Map.\n     * </p>\n     */\n    readonly data?: Map<string, any>;\n\n    /**\n     * ** Route path for current State.\n     */\n    readonly routePath?: string;\n\n    /**\n     * ** Route Path Segments for current State.\n     */\n    readonly routePathSegments?: string[];\n\n    /**\n     * ** Search query for Http requests.\n     */\n    readonly search?: string;\n\n    /**\n     * ** Page for Http requests.\n     */\n    readonly page?: RequestPage;\n\n    /**\n     * ** Order for Http requests.\n     */\n    readonly order?: RequestOrder;\n\n    /**\n     * ** Filter for Http requests.\n     */\n    readonly filter?: RequestFilter;\n\n    /**\n     * ** Map with different parameters for Http requests.\n     */\n    readonly requestParams?: Map<string, any>;\n\n    /**\n     * ** Task is property that give bi-directional refinement context.\n     *\n     *      - Gives context to Effect through Action.\n     *      - Gives context to Component through ComponentState (ComponentModel).\n     */\n    readonly task?: string;\n\n    /**\n     * ** Router NavigationId bound to this Component State.\n     */\n    readonly navigationId?: number;\n\n    /**\n     * ** Error store for ErrorRecords that happen in stream manipulation down to the Components.\n     * <p>\n     *     - Ideal for storing Http errors and other runtime errors, so Component could easily leverage that knowledge and show info for User.\n     * </p>\n     */\n    readonly errors?: ErrorStore;\n\n    /**\n     * ** Component State UiState, that holds all information for UiElements.\n     * <p>\n     *     - Free format Map where key identifier could be (Component/Html Element) name/id/class etc...\n     * </p>\n     */\n    readonly uiState?: Map<string, any>;\n\n    /**\n     * @inheritDoc\n     */\n    toLiteral(): LiteralComponentState;\n\n    /**\n     * @inheritDoc\n     */\n    toLiteralCloneDeep(): LiteralComponentState;\n\n    /**\n     * @inheritDoc\n     */\n    copy(state?: Partial<ComponentState>): ComponentState;\n}\n\n/**\n * ** ComponentState implementation will all methods and other utilities.\n */\nexport class ComponentStateImpl implements ComponentState {\n    /**\n     * @inheritDoc\n     */\n    readonly id: string;\n\n    /**\n     * @inheritDoc\n     */\n    readonly status: StatusType;\n\n    /**\n     * @inheritDoc\n     */\n    readonly data: Map<string, any>;\n\n    /**\n     * @inheritDoc\n     */\n    readonly routePath: string;\n\n    /**\n     * @inheritDoc\n     */\n    readonly routePathSegments: string[];\n\n    /**\n     * @inheritDoc\n     */\n    readonly search: string;\n\n    /**\n     * @inheritDoc\n     */\n    readonly page: RequestPageImpl;\n\n    /**\n     * @inheritDoc\n     */\n    readonly order: RequestOrderImpl;\n\n    /**\n     * @inheritDoc\n     */\n    readonly filter: RequestFilterImpl;\n\n    /**\n     * @inheritDoc\n     */\n    readonly requestParams: Map<string, any>;\n\n    /**\n     * @inheritDoc\n     */\n    readonly task: string;\n\n    /**\n     * @inheritDoc\n     */\n    readonly navigationId: number;\n\n    /**\n     * @inheritDoc\n     */\n    readonly errors: ErrorStore;\n\n    /**\n     * @inheritDoc\n     */\n    readonly uiState: Map<string, any>;\n\n    /**\n     * ** Constructor.\n     *\n     * <p><b>\n     *     Important:\n     * </b></p>\n     * <p>\n     *     If you add new Property in {@link LiteralComponentState}/{@link ComponentState}\n     *  <ul>\n     *     <li>\n     *        Implement field in {@link ComponentStateImpl} and handle null/undefined, assign defaults (required for Collections).\n     *     </li>\n     *     <li>\n     *        Copy/Clone process have to be handled manually (for performance gain) in methods:\n     *\n     *        {@link ComponentStateImpl.fromLiteralComponentState}\n     *        {@link ComponentStateImpl.cloneDeepLiteral}\n     *        {@link ComponentStateImpl.toLiteral}\n     *     </li>\n     *  </ul>\n     * </p>\n     */\n    constructor(stateModelProp: Partial<ComponentState>) {\n        const stateModel: Partial<ComponentState> = CollectionsUtil.isDefined(stateModelProp) ? stateModelProp : {};\n\n        this.id = stateModel.id;\n        this.status = stateModel.status ?? IDLE;\n        this.navigationId = stateModel.navigationId ?? null;\n        this.routePath = stateModel.routePath;\n        this.routePathSegments = stateModel.routePathSegments ?? [];\n        this.search = stateModel.search ?? '';\n        this.page = stateModel.page ?? RequestPageImpl.empty();\n        this.order = stateModel.order ?? RequestOrderImpl.empty();\n        this.filter = stateModel.filter ?? RequestFilterImpl.empty();\n        this.requestParams = stateModel.requestParams ?? new Map<string, any>();\n        this.task = stateModel.task ?? null;\n        this.errors = stateModel.errors ?? ErrorStoreImpl.empty();\n        this.data = stateModel.data ?? new Map<string, any>();\n        this.uiState = stateModel.uiState ?? new Map<string, any>();\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static of(stateModel: Partial<ComponentState>): ComponentStateImpl {\n        return new ComponentStateImpl(stateModel);\n    }\n\n    /**\n     * ** Convert provided {@link LiteralComponentState} into instance of {@link ComponentStateImpl}.\n     * <p>\n     *     Every literals could be transformed to their original Collection format.\n     *     <ul>\n     *         <li>\n     *             Object literals could be transformed to Map/WeakMap/Set depends of the needs.\n     *         </li>\n     *         <li>\n     *             Array is keep as it is.\n     *         </li>\n     *     </ul>\n     * </p>\n     *\n     * @see CollectionsUtil.transformObjectToMap\n     * @see CollectionsUtil.transformMapToObject\n     */\n    static fromLiteralComponentState(literalStateModel: LiteralComponentState): ComponentStateImpl {\n        return ComponentStateImpl.of({\n            ...literalStateModel,\n            errors: ErrorStoreImpl.fromLiteral(literalStateModel.errors),\n            page: RequestPageImpl.fromLiteral(literalStateModel.page),\n            order: RequestOrderImpl.fromLiteral(literalStateModel.order),\n            filter: RequestFilterImpl.fromLiteral(literalStateModel.filter),\n            requestParams: CollectionsUtil.transformObjectToMap(literalStateModel.requestParams),\n            data: CollectionsUtil.transformObjectToMap(literalStateModel.data),\n            uiState: CollectionsUtil.transformObjectToMap(literalStateModel.uiState)\n        });\n    }\n\n    /**\n     * ** Make deep clone from Literal Component State.\n     */\n    static cloneDeepLiteral(literalStateModel: LiteralComponentState): LiteralComponentState {\n        return {\n            id: literalStateModel.id,\n            status: literalStateModel.status,\n            data: CollectionsUtil.cloneDeep(literalStateModel.data),\n            routePath: literalStateModel.routePath,\n            routePathSegments: [...literalStateModel.routePathSegments],\n            search: literalStateModel.search,\n            page: CollectionsUtil.cloneDeep(literalStateModel.page),\n            order: CollectionsUtil.cloneDeep(literalStateModel.order),\n            filter: CollectionsUtil.cloneDeep(literalStateModel.filter),\n            requestParams: CollectionsUtil.cloneDeep(literalStateModel.requestParams),\n            task: literalStateModel.task,\n            navigationId: literalStateModel.navigationId,\n            errors: ErrorStoreImpl.cloneDeepErrorRecords(literalStateModel.errors),\n            uiState: CollectionsUtil.cloneDeep(literalStateModel.uiState)\n        };\n    }\n\n    /**\n     * <p>\n     *     Every Collection should be transformed to format of JSON supported literals, ready for LocalStorage/SessionStorage persist.\n     *     <ul>\n     *         <li>\n     *             Map/WeakMap/Set have to be transform to Object literal.\n     *         </li>\n     *         <li>\n     *             Array is keep as it is.\n     *         </li>\n     *     </ul>\n     * </p>\n     *\n     * @see CollectionsUtil.transformObjectToMap\n     * @see CollectionsUtil.transformMapToObject\n     *\n     * @inheritDoc\n     */\n    toLiteral(): LiteralComponentState {\n        return {\n            ...this,\n            page: this.page.toLiteral(),\n            order: this.order.toLiteral(),\n            filter: this.filter.toLiteral(),\n            errors: this.errors.toLiteral(),\n            requestParams: CollectionsUtil.transformMapToObject(this.requestParams),\n            data: CollectionsUtil.transformMapToObject(this.data),\n            uiState: CollectionsUtil.transformMapToObject(this.uiState)\n        };\n    }\n\n    /**\n     * @inheritDoc\n     */\n    toLiteralCloneDeep(): LiteralComponentState {\n        return ComponentStateImpl.cloneDeepLiteral(this.toLiteral());\n    }\n\n    /**\n     * @inheritDoc\n     */\n    copy(state: Partial<ComponentState> = {}): ComponentStateImpl {\n        return ComponentStateImpl.of({\n            ...this,\n            ...state\n        });\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CollectionsUtil } from '../../../../utils';\n\nimport { IDLE } from './component-status.model';\nimport { ComponentState, ComponentStateImpl, LiteralComponentState } from './component-state.model';\n\nexport interface LiteralComponentsState {\n    readonly components: { [name: string]: LiteralComponentState };\n    readonly routePathSegments: { [segmentId: string]: LiteralComponentsState };\n}\n\n/**\n * ** ComponentsState Helper.\n */\nexport class ComponentsStateHelper {\n    private _literalComponentsState: LiteralComponentsState;\n\n    constructor() {\n        this._literalComponentsState = {\n            components: {},\n            routePathSegments: {}\n        };\n    }\n\n    /**\n     * ** Returns LiteralComponentsState from Helper.\n     */\n    getState(): LiteralComponentsState {\n        return {\n            ...this._literalComponentsState\n        };\n    }\n\n    /**\n     * ** Will set state to the local Helper state.\n     */\n    setState(literalComponentsState: LiteralComponentsState) {\n        this._literalComponentsState = this._shallowCloneComponentsState(literalComponentsState);\n\n        return this;\n    }\n\n    /**\n     * ** Will return LiteralComponentState for given id and routePathSegments.\n     */\n    getLiteralComponentState(id: string, routePathSegments?: string[]): LiteralComponentState {\n        return this._getLiteralComponentState(\n            id,\n            CollectionsUtil.isArray(routePathSegments) ? [...routePathSegments] : [],\n            this._literalComponentsState\n        );\n    }\n\n    /**\n     * ** Get ComponentState for given id and routePathSegments.\n     */\n    getComponentState(id: string, routePathSegments?: string[]): ComponentState {\n        const literalComponentState = this._getLiteralComponentState(\n            id,\n            CollectionsUtil.isArray(routePathSegments) ? [...routePathSegments] : [],\n            this._literalComponentsState\n        );\n\n        return CollectionsUtil.isDefined(literalComponentState)\n            ? ComponentStateImpl.fromLiteralComponentState(literalComponentState)\n            : null;\n    }\n\n    /**\n     * ** Get all ComponentState for given routePathSegments.\n     */\n    getAllComponentState(routePathSegments: string[]): ComponentState[] {\n        return this._getAllComponentState(\n            CollectionsUtil.isArray(routePathSegments) ? [...routePathSegments] : [],\n            this._literalComponentsState\n        );\n    }\n\n    /**\n     * ** Update LiteralComponentState.\n     */\n    updateLiteralComponentState(literalComponentState: LiteralComponentState): void {\n        return this._updateLiteralComponentState(\n            literalComponentState,\n            [...literalComponentState.routePathSegments],\n            this._literalComponentsState\n        );\n    }\n\n    /**\n     * ** Reset component status to NOT_LOADED for all ComponentState in a given routePathSegment.\n     */\n    resetComponentStates(routePathSegments: string[]): void {\n        this._resetComponentStates(CollectionsUtil.isArray(routePathSegments) ? [...routePathSegments] : [], this._literalComponentsState);\n    }\n\n    /**\n     * ** Delete all ComponentState for given routePathSegment.\n     */\n    deleteRoutePathSegments(routePathSegments: string[]): void {\n        this._deleteRoutePathSegments(\n            CollectionsUtil.isArray(routePathSegments) ? [...routePathSegments] : [],\n            this._literalComponentsState\n        );\n    }\n\n    /**\n     * ** Update ComponentState.\n     */\n    private _updateLiteralComponentState(\n        literalComponentState: LiteralComponentState,\n        routePathSegments: string[],\n        state: LiteralComponentsState\n    ): void {\n        if (CollectionsUtil.isArrayEmpty(routePathSegments)) {\n            state.components[literalComponentState.id] = literalComponentState;\n\n            return;\n        }\n\n        const routePathSegment = routePathSegments.shift();\n\n        this._updateLiteralComponentState(\n            literalComponentState,\n            routePathSegments,\n            this._normalizeRoutePathSegments(state.routePathSegments, routePathSegment)\n        );\n    }\n\n    /**\n     * ** Get ComponentState.\n     */\n    private _getLiteralComponentState(\n        id: string,\n        routePathSegments: string[],\n        state: LiteralComponentsState\n    ): LiteralComponentState | null {\n        if (!state) {\n            return null;\n        }\n\n        if (CollectionsUtil.isArrayEmpty(routePathSegments)) {\n            if (state.components[id]) {\n                return ComponentStateImpl.cloneDeepLiteral(state.components[id]);\n            }\n\n            return null;\n        }\n\n        const routePathSegment = routePathSegments.shift();\n\n        return this._getLiteralComponentState(id, routePathSegments, state.routePathSegments[routePathSegment]);\n    }\n\n    /**\n     * ** Get all components for given routePathSegments.\n     */\n    private _getAllComponentState(routePathSegments: string[], state: LiteralComponentsState): ComponentState[] {\n        if (!state) {\n            return [];\n        }\n\n        const components: ComponentState[] = CollectionsUtil.objectValues(state.components).map((c) =>\n            ComponentStateImpl.fromLiteralComponentState(ComponentStateImpl.cloneDeepLiteral(c))\n        );\n\n        if (CollectionsUtil.isArrayEmpty(routePathSegments)) {\n            return components;\n        }\n\n        const routePathSegment = routePathSegments.shift();\n\n        return [...components, ...this._getAllComponentState(routePathSegments, state.routePathSegments[routePathSegment])];\n    }\n\n    /**\n     * ** Reset component status to NOT_LOADED for all component in a given context.\n     */\n    private _resetComponentStates(routePathSegments: string[], state: LiteralComponentsState): void {\n        CollectionsUtil.iterateObject(state.components, (componentState, id) => {\n            state.components[id] = { ...componentState, status: IDLE };\n        });\n\n        if (CollectionsUtil.isArrayEmpty(routePathSegments)) {\n            return;\n        }\n\n        const routePathSegment = routePathSegments.shift();\n\n        this._resetComponentStates(routePathSegments, this._normalizeRoutePathSegments(state.routePathSegments, routePathSegment));\n    }\n\n    /**\n     * ** Delete all components state for a given route path segment.\n     */\n    private _deleteRoutePathSegments(routePathSegments: string[], state: LiteralComponentsState): void {\n        const routePathSegment = routePathSegments.shift();\n\n        if (!routePathSegment) {\n            return;\n        }\n\n        if (CollectionsUtil.isArrayEmpty(routePathSegments)) {\n            delete state.routePathSegments[routePathSegment];\n\n            return;\n        }\n\n        this._deleteRoutePathSegments(routePathSegments, this._normalizeRoutePathSegments(state.routePathSegments, routePathSegment));\n    }\n\n    /**\n     * ** Normalize Route path segments.\n     */\n    private _normalizeRoutePathSegments(\n        urlSegments: { [segmentId: string]: LiteralComponentsState },\n        urlSegmentName: string\n    ): LiteralComponentsState {\n        if (CollectionsUtil.isNil(urlSegments[urlSegmentName])) {\n            urlSegments[urlSegmentName] = {\n                components: {},\n                routePathSegments: {}\n            };\n        }\n\n        return urlSegments[urlSegmentName];\n    }\n\n    private _shallowCloneComponentsState(source: LiteralComponentsState, target?: LiteralComponentsState): LiteralComponentsState {\n        const _source: LiteralComponentsState = source ?? { components: {}, routePathSegments: {} };\n        const _target: LiteralComponentsState = target ?? { components: {}, routePathSegments: {} };\n\n        CollectionsUtil.iterateObject(_source.components, (value, key) => {\n            _target.components[key] = value;\n        });\n\n        CollectionsUtil.iterateObject(_source.routePathSegments, (value, key) => {\n            _target.routePathSegments[key] = {\n                components: {},\n                routePathSegments: {}\n            };\n\n            this._shallowCloneComponentsState(value, _target.routePathSegments[key]);\n        });\n\n        return _target;\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './component-status.model';\nexport * from './component-state.model';\nexport * from './components-state.model';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { ApiPredicate, ErrorRecord } from '../../../common';\n\nimport { RouterState } from '../../router';\n\nimport { ComponentState, StatusType } from './state';\n\n/**\n * ** Interface for Model for all Components.\n */\nexport abstract class AbstractComponentModel {\n    /**\n     * ** Return RouterState.\n     */\n    abstract get routerState(): RouterState;\n\n    /**\n     * ** Return Status from ComponentState.\n     */\n    abstract get status(): StatusType;\n\n    /**\n     * ** Return routePath from RouterState.\n     */\n    abstract get routePath(): string;\n\n    /**\n     * ** Return the ComponentState.\n     */\n    abstract getComponentState(): ComponentState;\n\n    /**\n     * ** Set Search query to ComponentState and get Model reference again.\n     * <p>\n     *     - Ready for method chaining.\n     * </p>\n     */\n    abstract withSearch(search: string): this;\n\n    /**\n     * ** Set Page to ComponentState and get Model reference again.\n     * <p>\n     *     - Ready for method chaining.\n     * </p>\n     */\n    abstract withPage(page: number, size: number): this;\n\n    /**\n     * ** Set Filter to ComponentState and get Model reference again.\n     * <p>\n     *     - Ready for method chaining.\n     * </p>\n     */\n    abstract withFilter(filterPredicates: ApiPredicate[]): this;\n\n    /**\n     * ** Set Request params to ComponentState and get Model reference again.\n     * <p>\n     *     - Ready for method chaining.\n     * </p>\n     */\n    abstract withRequestParam(key: string, value: any): this;\n\n    /**\n     * ** Set Data (bound to key identifier) to ComponentState and get Model reference again.\n     * <p>\n     *     - Ready for method chaining.\n     * </p>\n     */\n    abstract withData(key: string, data: any): this;\n\n    /**\n     * ** Set Task identifier to ComponentState and get Model reference again.\n     *\n     *      - Should be set only after data comes from the API, action is asynchronous.\n     *      - Don't set this property during action dispatch\n     *\n     * <p>\n     *      - Ready for method chaining.\n     * </p>\n     */\n    abstract withTask(taskIdentifier: string): this;\n\n    /**\n     * ** Clear Task identifier from ComponentState and get Model reference again.\n     * <p>\n     *     - Ready for method chaining.\n     * </p>\n     */\n    abstract clearTask(): this;\n\n    /**\n     * ** Returns latest Task from ComponentState.\n     */\n    abstract getTask(): string;\n\n    /**\n     * ** Returns latest Task unique identifier from ComponentState.\n     */\n    abstract getTaskUniqueIdentifier(): string;\n\n    /**\n     * ** Set ErrorRecord to ComponentState and get Model reference again.\n     * <p>\n     *     - Ready for method chaining.\n     * </p>\n     */\n    abstract withError(error: ErrorRecord): this;\n\n    /**\n     * ** Clear Errors from ComponentState and get Model reference again.\n     * <p>\n     *     - Ready for method chaining.\n     * </p>\n     */\n    abstract clearErrors(): this;\n\n    /**\n     * ** Remove specific error codes from ErrorStore and altogether from ComponentState and get Model reference again.\n     * <p>\n     *     - Ready for method chaining.\n     * </p>\n     */\n    abstract removeErrorCode(...errorCodes: string[]): this;\n\n    /**\n     * ** Remove specific error code patterns from ErrorStore and altogether from ComponentState and get Model reference again.\n     * <p>\n     *     - Ready for method chaining.\n     * </p>\n     */\n    abstract removeErrorCodePatterns(...errorCodePatterns: string[]): this;\n\n    /**\n     * ** Set UiState for given identifier to ComponentState and get Model reference again.\n     * <p>\n     *     - Ready for method chaining.\n     * </p>\n     */\n    abstract withUiState(key: string, value: any): this;\n\n    /**\n     * ** Returns UiState for given identifier.\n     */\n    abstract getUiState<T>(key: string): T;\n\n    /**\n     * ** Set Component State status to IDLE.\n     * <p>\n     *     - Ready for method chaining.\n     * </p>\n     */\n    abstract withStatusIdle(): this;\n\n    /**\n     * ** Set Component State status to LOADING.\n     * <p>\n     *     - Ready for method chaining.\n     * </p>\n     */\n    abstract withStatusLoading(): this;\n\n    /**\n     * ** Set Component State status to LOADED.\n     * <p>\n     *     - Ready for method chaining.\n     * </p>\n     */\n    abstract withStatusLoaded(): this;\n\n    /**\n     * ** Set Component State status to FAILED.\n     * <p>\n     *     - Ready for method chaining.\n     * </p>\n     */\n    abstract withStatusFailed(): this;\n\n    /**\n     * ** Update Component State with Partial Component State patch.\n     * <p>\n     *     - Ready for method chaining.\n     * </p>\n     */\n    abstract updateComponentState(patchState: Partial<ComponentState>): this;\n\n    /**\n     * ** Prepare model for Component destroy and assign all fields to their targeted state.\n     * <p>\n     *     - Ready for method chaining.\n     * </p>\n     */\n    abstract prepareForDestroy(): this;\n\n    /**\n     * ** Filter method that analyze if current Model is different from given one.\n     */\n    abstract isModified(model: AbstractComponentModel): boolean;\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CollectionsUtil } from '../../../utils';\n\nimport { Comparable, ComparableImpl } from '../../../common';\n\nimport { AbstractComponentModel } from './component.model.interface';\n\nexport class ComponentModelComparable extends ComparableImpl<AbstractComponentModel> {\n    /**\n     * ** Constructor.\n     */\n    constructor(model: AbstractComponentModel) {\n        super(model);\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static override of(model: AbstractComponentModel): ComponentModelComparable {\n        return new ComponentModelComparable(model);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    override compare(comparable: Comparable): number {\n        if (comparable instanceof ComponentModelComparable) {\n            return this._compareEquality(comparable);\n        } else {\n            return -1;\n        }\n    }\n\n    private _compareEquality(comparable: ComponentModelComparable): number {\n        if (!(this.value instanceof AbstractComponentModel)) {\n            return -1;\n        }\n\n        if (!(comparable.value instanceof AbstractComponentModel)) {\n            return -1;\n        }\n\n        if (this.value === comparable.value) {\n            return 0;\n        }\n\n        if (this.value.status !== comparable.value.status) {\n            return -1;\n        }\n\n        if (this.value.getTask() !== comparable.value.getTask()) {\n            return -1;\n        }\n\n        if (!this.value.getComponentState().errors.equals(comparable.value.getComponentState().errors)) {\n            return -1;\n        }\n\n        if (this.value.getComponentState().data === comparable.value.getComponentState().data) {\n            return 0;\n        }\n\n        if (CollectionsUtil.areMapsEqual(this.value.getComponentState().data, comparable.value.getComponentState().data)) {\n            return 0;\n        }\n\n        return -1;\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { ApiPredicate, ErrorRecord, extractTaskFromIdentifier, RequestFilterImpl, RequestPageImpl } from '../../../common';\n\nimport { RouterState } from '../../router';\n\nimport { ComponentState, ComponentStateImpl, FAILED, IDLE, LOADED, LOADING, StatusType } from './state';\n\nimport { ComponentModelComparable } from './component-model.comparable';\n\nimport { AbstractComponentModel } from './component.model.interface';\n\n/**\n * ** Generic Model for all Components.\n */\nexport class ComponentModel extends AbstractComponentModel {\n    /**\n     * ** Constructor.\n     */\n    constructor(\n        protected _componentState: ComponentState,\n        protected _routerState: RouterState\n    ) {\n        super();\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static of(componentState: ComponentState, routerState: RouterState) {\n        return new ComponentModel(componentState, routerState);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    get routerState(): RouterState {\n        return this._routerState;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    get status(): StatusType {\n        return this.getComponentState().status;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    get routePath(): string {\n        return this.getComponentState().routePath || this.routerState.state.routeSegments.routePath;\n    }\n\n    /**\n     * ** Reference to previous model for comparison only.\n     */\n    readonly previousModel: Readonly<ComponentModel>;\n\n    /**\n     * @inheritDoc\n     */\n    getComponentState(): ComponentState {\n        return this._componentState;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    withSearch(search: string) {\n        this.updateComponentState({\n            search\n        });\n\n        return this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    withPage(page: number, size: number) {\n        this.updateComponentState({\n            page: RequestPageImpl.of(page, size)\n        });\n\n        return this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    withFilter(filterPredicates: ApiPredicate[]) {\n        this.updateComponentState({\n            filter: RequestFilterImpl.of(...filterPredicates)\n        });\n\n        return this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    withRequestParam(key: string, value: any) {\n        this.getComponentState().requestParams.set(key, value);\n\n        return this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    withData(key: string, data: any) {\n        this.getComponentState().data.set(key, data);\n\n        return this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    withTask(taskIdentifier: string) {\n        this.updateComponentState({ task: taskIdentifier });\n\n        return this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    clearTask() {\n        this.updateComponentState({ task: null });\n\n        return this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    getTask(): string {\n        return extractTaskFromIdentifier(this.getComponentState().task);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    getTaskUniqueIdentifier(): string {\n        return this.getComponentState().task;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    withError(errorRecord: ErrorRecord) {\n        this.getComponentState().errors.record(errorRecord);\n\n        return this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    clearErrors() {\n        this.getComponentState().errors.clear();\n\n        return this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    removeErrorCode(...errorCodes: string[]): this {\n        this.getComponentState().errors.removeCode(...errorCodes);\n\n        return this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    removeErrorCodePatterns(...errorCodePatterns: string[]): this {\n        this.getComponentState().errors.removeCodePattern(...errorCodePatterns);\n\n        return this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    withUiState(key: string, value: any) {\n        this.getComponentState().uiState.set(key, value);\n\n        return this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    getUiState<T>(key: string): T {\n        return this.getComponentState().uiState.get(key) as T;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    withStatusIdle() {\n        this.updateComponentState({ status: IDLE });\n\n        return this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    withStatusLoading() {\n        this.updateComponentState({ status: LOADING });\n\n        return this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    withStatusLoaded() {\n        this.updateComponentState({ status: LOADED });\n\n        return this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    withStatusFailed() {\n        this.updateComponentState({ status: FAILED });\n\n        return this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    updateComponentState(patchState: Partial<ComponentState>) {\n        this._componentState = ComponentStateImpl.of({\n            ...this.getComponentState(),\n            ...patchState\n        });\n\n        return this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    prepareForDestroy() {\n        this.withStatusIdle();\n\n        this.updateComponentState({\n            errors: null\n        });\n\n        return this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    isModified(model: ComponentModel): boolean {\n        return ComponentModelComparable.of(this).notEqual(ComponentModelComparable.of(model));\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './state';\nexport * from './component.model.interface';\nexport * from './component.model';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Action } from '@ngrx/store';\n\nimport { createTaskIdentifier } from '../../../common';\n\n/**\n * ** Base Action for Redux Impl.\n */\nexport abstract class BaseAction implements Action {\n    /**\n     * ** Type of Action.\n     */\n    readonly type: string;\n\n    /**\n     * ** Constructor.\n     */\n    protected constructor(type: string) {\n        this.type = type;\n    }\n}\n\n/**\n * ** Base Action with payload for Redux Impl.\n */\nexport abstract class BaseActionWithPayload<T> extends BaseAction {\n    /**\n     * ** Action payload data.\n     */\n    readonly payload: T;\n\n    /**\n     * ** Action Task.\n     */\n    readonly task: string;\n\n    /**\n     * ** Constructor.\n     */\n    protected constructor(type: string, payload: T, task?: string) {\n        super(type);\n\n        this.payload = payload;\n        this.task = createTaskIdentifier(task);\n    }\n\n    /**\n     * ** Factory method that have to be overridden in Subclasses.\n     */\n    static of(..._args: unknown[]): BaseActionWithPayload<unknown> {\n        throw new Error('Method have to be overridden in Subclasses.');\n    }\n}\n\n/**\n * ** Generic Action with payload for Redux Impl.\n *\n *      - All parameters type, payload and optional task are provided to Constructor.\n */\nexport class GenericAction<T> extends BaseActionWithPayload<T> {\n    /**\n     * ** Constructor.\n     */\n    constructor(type: string, payload: T, task?: string) {\n        super(type, payload, task);\n    }\n\n    /**\n     * ** Factory method for Generic Action with type and payload in Constructor.\n     */\n    static override of<K>(type: string, payload: K, task?: string): GenericAction<K> {\n        return new GenericAction<K>(type, payload, task);\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './base.actions';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { NavigationExtras } from '@angular/router';\n\nimport { BaseAction, BaseActionWithPayload } from '../../../ngrx/actions';\n\n/**\n * ** Action Identifier for Router Navigate.\n */\nexport const ROUTER_NAVIGATE = '[router] Navigate';\n\n/**\n * ** Action Identifier for Location Go.\n *\n *\n */\nexport const LOCATION_GO = '[location] Go';\n\n/**\n * ** Action Identifier for Location Back.\n */\nexport const LOCATION_BACK = '[location] Back';\n\n/**\n * ** Action Identifier for Location Forward.\n */\nexport const LOCATION_FORWARD = '[location] Forward';\n\nexport interface NavigatePayload {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    commands: any[];\n    extras?: NavigationExtras;\n}\n\n/**\n * ** Navigate Action instruct subscribers that they should navigate to given path.\n */\nexport class RouterNavigate extends BaseActionWithPayload<NavigatePayload> {\n    constructor(payload: NavigatePayload) {\n        super(ROUTER_NAVIGATE, payload);\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static override of(payload: NavigatePayload) {\n        return new RouterNavigate(payload);\n    }\n}\n\nexport interface GoPayload {\n    path: string;\n    query?: string;\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    state?: any;\n}\n\n/**\n * ** Location Go Action instruct subscribers that they should navigate using Location.\n */\nexport class LocationGo extends BaseActionWithPayload<GoPayload> {\n    constructor(payload: GoPayload) {\n        super(LOCATION_GO, payload);\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static override of(payload: GoPayload) {\n        return new LocationGo(payload);\n    }\n}\n\n/**\n * ** Back Action instruct subscribers to pop history Backward.\n */\nexport class LocationBack extends BaseAction {\n    constructor() {\n        super(LOCATION_BACK);\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static of() {\n        return new LocationBack();\n    }\n}\n\n/**\n * ** Forward Action instruct subscribers to go Forward.\n */\nexport class LocationForward extends BaseAction {\n    constructor() {\n        super(LOCATION_FORWARD);\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static of() {\n        return new LocationForward();\n    }\n}\n\nexport type NavigationActions = RouterNavigate | LocationGo | LocationBack | LocationForward;\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './router.actions';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Injectable } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { Router } from '@angular/router';\n\nimport { Observable, of } from 'rxjs';\nimport { catchError, map, tap } from 'rxjs/operators';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\n\nimport { GoPayload, LOCATION_BACK, LOCATION_FORWARD, LOCATION_GO, NavigatePayload, ROUTER_NAVIGATE, RouterNavigate } from '../actions';\n\n/**\n * ** Router Effects Service.\n */\n@Injectable()\nexport class RouterEffects {\n    /**\n     * ** Effect for Router navigation.\n     */\n    routerNavigate$ = createEffect(\n        () =>\n            this.actions$.pipe(\n                ofType(ROUTER_NAVIGATE),\n                map((action: RouterNavigate) => action.payload),\n                tap((payload) => this._navigate(payload)),\n                catchError((error: unknown) => RouterEffects._handleError(error))\n            ),\n        { dispatch: false }\n    );\n\n    /**\n     * ** Effect for Location go (navigate).\n     */\n    locationGo$ = createEffect(\n        () =>\n            this.actions$.pipe(\n                ofType(LOCATION_GO),\n                tap((payload: GoPayload) => this.location.go(payload.path, payload.query, payload.state)),\n                catchError((error: unknown) => RouterEffects._handleError(error))\n            ),\n        { dispatch: false }\n    );\n\n    /**\n     * ** Effect for pop Backward Browser state.\n     */\n    locationBack$ = createEffect(\n        () =>\n            this.actions$.pipe(\n                ofType(LOCATION_BACK),\n                tap(() => this.location.back()),\n                catchError((error: unknown) => RouterEffects._handleError(error))\n            ),\n        { dispatch: false }\n    );\n\n    /**\n     * ** Effect for push Forward Browser state.\n     */\n    locationForward$ = createEffect(\n        () =>\n            this.actions$.pipe(\n                ofType(LOCATION_FORWARD),\n                tap(() => this.location.forward()),\n                catchError((error: unknown) => RouterEffects._handleError(error))\n            ),\n        { dispatch: false }\n    );\n\n    /**\n     * ** Constructor.\n     */\n    constructor(\n        private readonly actions$: Actions,\n        private readonly router: Router,\n        private readonly location: Location\n    ) {}\n\n    private static _handleError(error: unknown): Observable<boolean> {\n        console.error(error);\n\n        return of(true);\n    }\n\n    private _navigate(payload: NavigatePayload): void {\n        const extras = payload.extras ?? {};\n\n        // eslint-disable-next-line @typescript-eslint/no-floating-promises\n        this.router.navigate(payload.commands, extras).then(() => {\n            // No-op.\n        });\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './router.effects';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Type } from '@angular/core';\n\nimport { RouterEffects } from '../../router/state/effects';\n\n/**\n * ** Registry for Root Effects.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const SHARED_ROOT_EFFECTS: Array<Type<any>> = [RouterEffects];\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './root-effects.registry';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { RouterState } from '../../router';\nimport { LiteralComponentsState } from '../../component';\n\n/**\n * ** Constant for Store Router field.\n */\nexport const STORE_ROUTER = 'router';\n\n/**\n * ** Constant for Store Components field.\n */\nexport const STORE_COMPONENTS = 'components';\n\n/**\n * ** Store State interface.\n */\nexport interface StoreState {\n    [STORE_ROUTER]: RouterState;\n    [STORE_COMPONENTS]: LiteralComponentsState;\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './store-state.model';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './actions';\nexport * from './effects';\nexport * from './state';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseActionWithPayload } from '../../../ngrx/actions';\n\nimport { ComponentState } from '../../model';\n\n/**\n * ** Action Identifier for Component Initialization.\n */\nexport const COMPONENT_INIT = '[component] Init';\n\n/**\n * ** Action Identifier for Component Idle.\n */\nexport const COMPONENT_IDLE = '[component] Idle';\n\n/**\n * ** Action Identifier for Component start Loading data.\n */\nexport const COMPONENT_LOADING = '[component] Loading';\n\n/**\n * ** Action Identifier for Component Loaded data.\n */\nexport const COMPONENT_LOADED = '[component] Loaded';\n\n/**\n * ** Action Identifier for Component Failed loading data.\n */\nexport const COMPONENT_FAILED = '[component] Failed';\n\n/**\n * ** Action Identifier for Component Update state.\n */\nexport const COMPONENT_UPDATE = '[component] Update';\n\n/**\n * ** Action Identifier for Component Clear data.\n */\nexport const COMPONENT_CLEAR_DATA = '[component] Clear data';\n\n/**\n * ** Action for Component Initialization.\n */\nexport class ComponentInit extends BaseActionWithPayload<ComponentState> {\n    constructor(payload: ComponentState) {\n        super(COMPONENT_INIT, payload);\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static override of(payload: ComponentState) {\n        return new ComponentInit(payload);\n    }\n}\n\n/**\n * ** Action for Component Idle.\n */\nexport class ComponentIdle extends BaseActionWithPayload<ComponentState> {\n    constructor(payload: ComponentState) {\n        super(COMPONENT_IDLE, payload);\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static override of(payload: ComponentState) {\n        return new ComponentIdle(payload);\n    }\n}\n\n/**\n * ** Action for Component Loading.\n */\nexport class ComponentLoading extends BaseActionWithPayload<ComponentState> {\n    constructor(payload: ComponentState) {\n        super(COMPONENT_LOADING, payload);\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static override of(payload: ComponentState) {\n        return new ComponentLoading(payload);\n    }\n}\n\n/**\n * ** Action for Component Loaded.\n */\nexport class ComponentLoaded extends BaseActionWithPayload<ComponentState> {\n    constructor(payload: ComponentState) {\n        super(COMPONENT_LOADED, payload);\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static override of(payload: ComponentState) {\n        return new ComponentLoaded(payload);\n    }\n}\n\n/**\n * ** Action for Component Failed.\n */\nexport class ComponentFailed extends BaseActionWithPayload<ComponentState> {\n    constructor(payload: ComponentState) {\n        super(COMPONENT_FAILED, payload);\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static override of(payload: ComponentState) {\n        return new ComponentFailed(payload);\n    }\n}\n\n/**\n * ** Action for Component Update.\n */\nexport class ComponentUpdate extends BaseActionWithPayload<ComponentState> {\n    constructor(payload: ComponentState) {\n        super(COMPONENT_UPDATE, payload);\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static override of(payload: ComponentState) {\n        return new ComponentUpdate(payload);\n    }\n}\n\n/**\n * ** Action for Component Clear Data.\n */\nexport class ComponentClearData extends BaseActionWithPayload<ComponentState> {\n    constructor(payload: ComponentState) {\n        super(COMPONENT_CLEAR_DATA, payload);\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static override of(payload: ComponentState) {\n        return new ComponentClearData(payload);\n    }\n}\n\n/**\n * ** Union of all Actions that could be use as a type in Effects/Reducers/etc...\n */\nexport type ComponentActions =\n    | ComponentInit\n    | ComponentIdle\n    | ComponentLoading\n    | ComponentLoaded\n    | ComponentFailed\n    | ComponentUpdate\n    | ComponentClearData;\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './component.actions';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Directive, Injectable } from '@angular/core';\n\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { Store } from '@ngrx/store';\n\nimport { TaurusObject } from '../../../common';\n\nimport { STORE_ROUTER, StoreState } from '../../ngrx';\n\nimport { RouterState, RouteState } from '../model';\n\n/**\n * ** Router Service.\n */\n@Directive()\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport abstract class RouterService extends TaurusObject {\n    protected static _routerState: RouterState = RouterState.empty();\n\n    /**\n     * ** Will return current Router.\n     */\n    static get(): RouterState {\n        return RouterService._routerState;\n    }\n\n    /**\n     * ** Will return current Route State.\n     */\n    static getState(): RouteState {\n        return RouterService._routerState.state;\n    }\n\n    /**\n     * ** Will return Observable with NgRx Route State.\n     */\n    abstract get(): Observable<RouterState>;\n\n    /**\n     * ** Will return Observable with Route State.\n     */\n    abstract getState(): Observable<RouteState>;\n\n    /**\n     * ** Will initialize service.\n     */\n    abstract initialize(): void;\n}\n\n/**\n * @inheritDoc\n */\n@Injectable()\nexport class RouterServiceImpl extends RouterService {\n    constructor(private readonly store$: Store<StoreState>) {\n        super();\n    }\n\n    /**\n     * @inheritDoc\n     */\n    get(): Observable<RouterState> {\n        return this.store$.select(STORE_ROUTER);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    getState(): Observable<RouteState> {\n        return this.get().pipe(map((data) => data.state));\n    }\n\n    /**\n     * @inheritDoc\n     */\n    initialize(): void {\n        this.cleanSubscriptions();\n\n        this.subscriptions.push(\n            this.get().subscribe((state) => {\n                RouterService._routerState = state;\n            })\n        );\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './router.service';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './model';\nexport * from './state/actions';\nexport * from './services';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable arrow-body-style,prefer-arrow/prefer-arrow-functions */\n\nimport { ROUTER_NAVIGATION, RouterNavigationAction } from '@ngrx/router-store';\n\nimport { CollectionsUtil } from '../../../../utils';\n\nimport { NavigationActions, RouteSegments, RouteState } from '../../../router';\n\nimport { ComponentsStateHelper, ComponentState, FAILED, IDLE, INITIALIZED, LiteralComponentState, LOADED, LOADING } from '../../model';\n\nimport {\n    COMPONENT_CLEAR_DATA,\n    COMPONENT_FAILED,\n    COMPONENT_IDLE,\n    COMPONENT_INIT,\n    COMPONENT_LOADED,\n    COMPONENT_LOADING,\n    COMPONENT_UPDATE,\n    ComponentActions,\n    ComponentClearData,\n    ComponentIdle,\n    ComponentInit,\n    ComponentLoaded,\n    ComponentLoading,\n    ComponentUpdate\n} from '../actions';\n\nconst stateHelper = new ComponentsStateHelper();\n\n/**\n * ** Reducer for Components Actions.\n */\nexport function componentReducer(\n    state = stateHelper.getState(),\n    action: ComponentActions | NavigationActions = { type: null, payload: null }\n) {\n    let actionComponentState: ComponentState;\n    let actionLiteralComponentState: LiteralComponentState;\n    let storeLiteralComponentState: LiteralComponentState;\n\n    stateHelper.setState(state);\n\n    switch (action.type) {\n        case COMPONENT_INIT:\n            actionComponentState = (action as ComponentInit).payload;\n\n            stateHelper.updateLiteralComponentState({\n                ...actionComponentState.toLiteralCloneDeep(),\n                status: INITIALIZED\n            });\n\n            return stateHelper.getState();\n        case COMPONENT_IDLE:\n        case COMPONENT_LOADING:\n            actionComponentState = (action as ComponentIdle | ComponentLoading).payload;\n            storeLiteralComponentState = stateHelper.getLiteralComponentState(\n                actionComponentState.id,\n                actionComponentState.routePathSegments\n            );\n\n            actionLiteralComponentState = actionComponentState.toLiteralCloneDeep();\n\n            stateHelper.updateLiteralComponentState({\n                ...storeLiteralComponentState,\n                ...actionLiteralComponentState,\n                status: action instanceof ComponentIdle ? IDLE : LOADING\n            });\n\n            return stateHelper.getState();\n        case COMPONENT_UPDATE:\n        case COMPONENT_LOADED:\n            actionComponentState = (action as ComponentLoaded | ComponentUpdate).payload;\n            storeLiteralComponentState = stateHelper.getLiteralComponentState(\n                actionComponentState.id,\n                actionComponentState.routePathSegments\n            );\n\n            actionLiteralComponentState = actionComponentState.toLiteralCloneDeep();\n\n            stateHelper.updateLiteralComponentState({\n                ...storeLiteralComponentState,\n                ...actionLiteralComponentState,\n                status: action instanceof ComponentLoaded ? LOADED : actionComponentState.status,\n                data: getComponentStateData(actionLiteralComponentState, storeLiteralComponentState)\n            });\n\n            return stateHelper.getState();\n        case COMPONENT_FAILED:\n            actionComponentState = (action as ComponentLoaded | ComponentUpdate).payload;\n            storeLiteralComponentState = stateHelper.getLiteralComponentState(\n                actionComponentState.id,\n                actionComponentState.routePathSegments\n            );\n\n            actionLiteralComponentState = actionComponentState.toLiteralCloneDeep();\n\n            stateHelper.updateLiteralComponentState({\n                ...storeLiteralComponentState,\n                ...actionLiteralComponentState,\n                data: getComponentStateData(actionLiteralComponentState, storeLiteralComponentState),\n                status: FAILED\n            });\n\n            return stateHelper.getState();\n        case COMPONENT_CLEAR_DATA:\n            actionComponentState = (action as ComponentClearData).payload;\n            storeLiteralComponentState = stateHelper.getLiteralComponentState(\n                actionComponentState.id,\n                actionComponentState.routePathSegments\n            );\n\n            stateHelper.updateLiteralComponentState({\n                ...storeLiteralComponentState,\n                ...actionComponentState.toLiteralCloneDeep(),\n                data: {},\n                status: LOADING\n            });\n\n            return stateHelper.getState();\n        case ROUTER_NAVIGATION:\n            const routeSegments = (action as RouterNavigationAction<RouteState>).payload.routerState.routeSegments;\n\n            if (!(routeSegments instanceof RouteSegments)) {\n                return state;\n            }\n\n            stateHelper.resetComponentStates(routeSegments.routePathSegments);\n\n            return stateHelper.getState();\n        default:\n            return state;\n    }\n}\n\nconst getComponentStateData = (\n    actionComponentState: LiteralComponentState,\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    storeLiteralComponentState: LiteralComponentState\n): { [key: string]: any } => {\n    if (CollectionsUtil.isLiteralObjectWithProperties(actionComponentState.data)) {\n        return actionComponentState.data;\n    }\n\n    if (CollectionsUtil.isDefined(storeLiteralComponentState)) {\n        return storeLiteralComponentState.data;\n    }\n\n    return {};\n};\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './component.reducer';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { iif, Observable, of, throwError } from 'rxjs';\nimport { catchError, map, mergeMap, switchMap, take } from 'rxjs/operators';\n\nimport { ServiceHttpErrorCodes } from '../../../../common';\n\nimport { processServiceRequestError } from '../../../error';\n\nimport { BaseActionWithPayload } from '../../../ngrx';\n\nimport { ComponentService } from '../../services';\nimport { ComponentModel, ComponentState } from '../../model';\n\nimport { ComponentFailed } from '../actions';\n\n/**\n * ** RXJS Operator that fetch Component Model from Store using provided ComponentService.\n *\n *      - Returns Observable<ComponentModel>\n */\nexport const getModel =\n    (componentService: ComponentService) =>\n    (source$: Observable<BaseActionWithPayload<ComponentState>>): Observable<ComponentModel> =>\n        source$.pipe(\n            extractAction,\n            switchMap((action) => subscribeForModel(action, componentService))\n        );\n\n/**\n * ** RXJS Operator that fetch Component Model from Store using provided ComponentService and consume task from Action.\n *\n *      - Returns Observable<[ComponentModel, string]>\n */\nexport const getModelAndTask =\n    (componentService: ComponentService) =>\n    (source$: Observable<BaseActionWithPayload<ComponentState>>): Observable<[ComponentModel, string]> =>\n        source$.pipe(\n            extractAction,\n            switchMap((action) =>\n                subscribeForModel(action, componentService).pipe(map((model) => [model, action.task] as [ComponentModel, string]))\n            )\n        );\n\nexport type TaskID = string;\nexport type ObjectUUID = string;\n\n/**\n * ** Handle Error from some Action, ideal to use for API response.\n *\n *      - catch error if happened\n *      - auto-process from provided error, serviceHttpErrorCodes and objectUUID\n *      - append it to Model\n *      - append task to model\n *      - set status to FAILED\n *      - create instance of {@link ComponentFailed} and return stream in success state using {@link of} rjxs operator\n *\n *      - Factory callbacks should return tuple of [Component Model, Task Id, Object UUID, Error records codes from API service]\n */\nexport const handleActionError =\n    (paramFactory: () => [ComponentModel, TaskID, ObjectUUID, Record<keyof ServiceHttpErrorCodes, string>]) =>\n    (source$: Observable<BaseActionWithPayload<ComponentState>>): Observable<BaseActionWithPayload<ComponentState>> =>\n        source$.pipe(\n            catchError((error: unknown) => {\n                const [model, task, objectUUID, serviceHttpErrorCodes] = paramFactory();\n\n                try {\n                    model.withError(processServiceRequestError(objectUUID, serviceHttpErrorCodes, error));\n                } catch (e) {\n                    console.error('handleActionError: Cannot process error', e);\n                }\n\n                return of(ComponentFailed.of(model.withTask(task).withStatusFailed().getComponentState()));\n            })\n        );\n\n/**\n * ** Validate if Action is instance of {@link BaseActionWithPayload} and pass down the stream.\n */\nconst extractAction = (source$: Observable<BaseActionWithPayload<ComponentState>>) =>\n    source$.pipe(\n        mergeMap((action) =>\n            iif(\n                () => action instanceof BaseActionWithPayload,\n                of(action),\n                throwError(() => new Error('Unsupported Action type. It should be subclass of BaseActionWithPayload'))\n            )\n        )\n    );\n\n/**\n * ** Make actual subscription to Store for ComponentModel.\n */\nconst subscribeForModel = (action: BaseActionWithPayload<ComponentState>, componentService: ComponentService) =>\n    componentService.getModel(action.payload.id, action.payload.routePathSegments, ['*']).pipe(take(1));\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './component-rx.operators';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './actions';\nexport * from './reducers';\nexport * from './operators';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/unified-signatures,ngrx/avoid-mapping-selectors */\n\nimport { Injectable } from '@angular/core';\n\nimport { Observable } from 'rxjs';\nimport { filter, map, switchMap, take, withLatestFrom } from 'rxjs/operators';\n\nimport { Store } from '@ngrx/store';\n\nimport { CollectionsUtil } from '../../../utils';\n\nimport { RouterService, RouterState, RouteState } from '../../router';\nimport { GenericAction, STORE_COMPONENTS, StoreState } from '../../ngrx';\n\nimport { ComponentIdle, ComponentInit, ComponentLoading, ComponentUpdate } from '../state';\nimport {\n    ComponentModel,\n    ComponentsStateHelper,\n    ComponentState,\n    ComponentStateImpl,\n    FAILED,\n    IDLE,\n    INITIALIZED,\n    LiteralComponentsState,\n    LOADED,\n    LOADING,\n    StatusType\n} from '../model';\n\n/**\n * ** Service that manage Components State.\n */\nexport abstract class ComponentService {\n    /**\n     * ** Initialize Component State and return Model.\n     */\n    abstract init(id: string, routeState: RouteState): Observable<ComponentModel>;\n\n    /**\n     * ** Set Component status to IDLE.\n     */\n    abstract idle(componentState: ComponentState): void;\n\n    /**\n     * ** Load Component State and return Model.\n     */\n    abstract load(componentState: ComponentState): Observable<ComponentModel>;\n\n    /**\n     * ** Update Component State.\n     */\n    abstract update(componentState: ComponentState): void;\n\n    /**\n     * ** Acknowledge if has ComponentState in segment.\n     *\n     *      - true - has ComponentState.\n     *      - false - doesn't have ComponentState.\n     */\n    abstract hasInSegment(id: string, routePathSegments: string[]): Observable<boolean>;\n\n    /**\n     * ** Listener that fires once after successful Component State initialization and returns Model.\n     */\n    abstract onInit(id: string, routePathSegments: string[]): Observable<ComponentModel>;\n\n    /**\n     * ** Listener that fires once after successful Component State load and returns Model.\n     */\n    abstract onLoaded(id: string, routePathSegments: string[]): Observable<ComponentModel>;\n\n    /**\n     * ** Returns stream with value Component Model and fires whenever Component State changes in Store.\n     *\n     *      - If no statusWatch provided by default will listen for statuses {@link LOADED} and {@link FAILED}.\n     */\n    abstract getModel(id: string, routePathSegments: string[], statusWatch?: Array<StatusType | '*'>): Observable<ComponentModel>;\n\n    /**\n     * ** Dispatch GenericAction with provided Type, ComponentState and optionally task.\n     */\n    abstract dispatchAction(type: string, componentState: ComponentState, task?: string): void;\n\n    /**\n     * ** Initialize Service.\n     */\n    abstract initialize(): void;\n}\n\n/**\n * @inheritDoc\n */\n@Injectable()\nexport class ComponentServiceImpl extends ComponentService {\n    private readonly componentsStateHelper: ComponentsStateHelper;\n\n    /**\n     * ** Constructor.\n     */\n    constructor(\n        private readonly store$: Store<StoreState>,\n        private readonly routerService: RouterService\n    ) {\n        super();\n\n        this.componentsStateHelper = new ComponentsStateHelper();\n    }\n\n    /**\n     * @inheritDoc\n     */\n    init(id: string, routeState: RouteState): Observable<ComponentModel> {\n        this.store$\n            .select((store) => store)\n            .pipe(\n                take(1),\n                map((store) => this._getComponentState(id, routeState.routePathSegments, store.router, store.components))\n            )\n            .subscribe((componentState) => {\n                if (componentState.status === INITIALIZED) {\n                    this.store$.dispatch(ComponentInit.of(componentState));\n                }\n            });\n\n        return this.onInit(id, routeState.routePathSegments);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    idle(componentState: ComponentState): void {\n        this.store$.dispatch(ComponentIdle.of(componentState));\n    }\n\n    /**\n     * @inheritDoc\n     */\n    load(componentState: ComponentState): Observable<ComponentModel> {\n        this.routerService\n            .get()\n            .pipe(take(1))\n            .subscribe((routerState: RouterState) => {\n                if (componentState.status === INITIALIZED) {\n                    this.store$.dispatch(\n                        ComponentIdle.of(\n                            componentState.copy({\n                                status: IDLE,\n                                navigationId: routerState.navigationId\n                            })\n                        )\n                    );\n                }\n\n                this.store$.dispatch(\n                    ComponentLoading.of(\n                        componentState.copy({\n                            status: LOADING,\n                            navigationId: routerState.navigationId\n                        })\n                    )\n                );\n            });\n\n        return this.onLoaded(componentState.id, componentState.routePathSegments);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    update(componentState: ComponentState): void {\n        this.routerService\n            .get()\n            .pipe(take(1))\n            .subscribe((routerState) => {\n                this.store$.dispatch(\n                    ComponentUpdate.of(\n                        componentState.copy({\n                            navigationId: routerState.navigationId\n                        })\n                    )\n                );\n            });\n    }\n\n    /**\n     * @inheritDoc\n     */\n    hasInSegment(id: string, routePathSegments: string[]): Observable<boolean> {\n        return this.store$.select(STORE_COMPONENTS).pipe(\n            withLatestFrom(this.routerService.getState()),\n            map(([literalComponentsState, routeState]) =>\n                this._isComponentInStatus(id, routePathSegments, literalComponentsState, routeState, ['*'])\n            ),\n            take(1)\n        );\n    }\n\n    /**\n     * @inheritDoc\n     */\n    onInit(id: string, routePathSegments: string[]): Observable<ComponentModel> {\n        return this.store$.select(STORE_COMPONENTS).pipe(\n            withLatestFrom(this.routerService.getState()),\n            map(([literalComponentsState, routeState]) =>\n                this._isComponentInStatus(id, routePathSegments, literalComponentsState, routeState, ['*'])\n            ),\n            filter((isInitialized) => isInitialized),\n            switchMap(() => this.getModel(id, routePathSegments, ['*'])),\n            take(1)\n        );\n    }\n\n    /**\n     * @inheritDoc\n     */\n    onLoaded(id: string, routePathSegments: string[]): Observable<ComponentModel> {\n        return this.store$.select(STORE_COMPONENTS).pipe(\n            withLatestFrom(this.routerService.getState()),\n            map(([literalComponentsState, routeState]) =>\n                this._isComponentInStatus(id, routePathSegments, literalComponentsState, routeState, [LOADED, FAILED])\n            ),\n            filter((isLoaded) => isLoaded),\n            switchMap(() => this.getModel(id, routePathSegments)),\n            take(1)\n        );\n    }\n\n    /**\n     * @inheritDoc\n     */\n    getModel(id: string, routePathSegments: string[], statusWatch?: Array<StatusType | '*'>): Observable<ComponentModel> {\n        const _statusWatch = statusWatch ?? [LOADED, FAILED];\n\n        return this.store$.select(STORE_COMPONENTS).pipe(\n            switchMap((literalComponentsState) =>\n                this.routerService.get().pipe(map((routerState) => [literalComponentsState, routerState]))\n            ),\n            filter(([literalComponentsState, routerState]: [LiteralComponentsState, RouterState]) =>\n                this._isComponentInStatus(id, routePathSegments, literalComponentsState, routerState.state, _statusWatch)\n            ),\n            map(([literalComponentsState, routerState]) => this._createModel(id, routePathSegments, literalComponentsState, routerState))\n        );\n    }\n\n    /**\n     * @inheritDoc\n     */\n    dispatchAction(type: string, componentState: ComponentState, task?: string): void {\n        this.getModel(componentState.id, componentState.routePathSegments, ['*'])\n            .pipe(take(1))\n            .subscribe((model) => this.store$.dispatch(GenericAction.of(type, model.getComponentState(), task)));\n    }\n\n    /**\n     * @inheritDoc\n     */\n    initialize() {\n        // No-op.\n    }\n\n    // Get Component State from Store if exist, otherwise create new State.\n    private _getComponentState(\n        id: string,\n        routePathSegments: string[],\n        routerState: RouterState,\n        literalComponentsState: LiteralComponentsState\n    ): ComponentState {\n        let _navigationId: number = null;\n        let _routePath: string = null;\n        let _routePathSegments: string[] = [];\n\n        if (routerState) {\n            _navigationId = routerState.navigationId;\n\n            if (routerState.state && !routePathSegments) {\n                _routePath = routerState.state.routePath;\n                _routePathSegments = routerState.state.routePathSegments;\n            }\n        }\n\n        if (routePathSegments) {\n            _routePath = routePathSegments.slice().pop();\n            _routePathSegments = routePathSegments;\n        }\n\n        let componentState = this.componentsStateHelper.setState(literalComponentsState).getComponentState(id, _routePathSegments);\n\n        if (componentState) {\n            return componentState;\n        }\n\n        componentState = ComponentStateImpl.of({\n            id,\n            status: INITIALIZED,\n            routePath: _routePath,\n            routePathSegments: _routePathSegments,\n            navigationId: _navigationId\n        });\n\n        return componentState;\n    }\n\n    // Utility method that filter if provided state is in desired status.\n    private _isComponentInStatus(\n        id: string,\n        routePathSegments: string[],\n        literalComponentsState: LiteralComponentsState,\n        routeState: RouteState,\n        statusWatch: Array<StatusType | '*'>\n    ): boolean {\n        let _routePathSegments: string[] = [];\n\n        if (CollectionsUtil.isArray(routePathSegments)) {\n            _routePathSegments = routePathSegments;\n        } else if (routeState) {\n            _routePathSegments = routeState.routePathSegments;\n        }\n\n        const componentLiteralState = this.componentsStateHelper\n            .setState(literalComponentsState)\n            .getLiteralComponentState(id, _routePathSegments);\n\n        if (!componentLiteralState) {\n            return false;\n        }\n\n        if (statusWatch.indexOf('*') !== -1) {\n            return true;\n        }\n\n        return statusWatch.indexOf(componentLiteralState.status) !== -1;\n    }\n\n    // Creates Model from provided data.\n    private _createModel(\n        id: string,\n        routePathSegments: string[],\n        literalComponentsState: LiteralComponentsState,\n        routerState: RouterState\n    ): ComponentModel {\n        let _routePathSegments: string[] = [];\n\n        if (CollectionsUtil.isArray(routePathSegments)) {\n            _routePathSegments = routePathSegments;\n        } else if (routerState && routerState.state) {\n            _routePathSegments = routerState.state.routePathSegments;\n        }\n\n        const componentState = this.componentsStateHelper.setState(literalComponentsState).getComponentState(id, _routePathSegments);\n\n        return ComponentModel.of(componentState, CollectionsUtil.cloneDeep(routerState));\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './component.service';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { NavigationExtras } from '@angular/router';\n\n/**\n * ** System Event ID for navigation trigger.\n *\n *   - Send event [BLOCKING]\n *   - Every Handler should return Promise.\n *\n *   - Payload {@link SystemEventNavigatePayload}\n */\nexport const SE_NAVIGATE = 'SE_Navigate';\n\n/**\n * ** System Event ID for location change through {@link @angular/common/Location}.\n *\n *   - Post event [NON-BLOCKING]\n *   - Every Handler could either consume event as void (return nothing) or return Promise.\n *   - Execution is in queue using setTimeout of 0.\n *\n *   - Payload {@link SystemEventLocationChangePayload}\n */\nexport const SE_LOCATION_CHANGE = 'SE_Location_Change';\n\n/**\n * ** System Event that could be consumed by Handlers.\n * <p>\n *   - Must return a Promise!\n *\n *   - Handlers will listen for all Events in the System.\n *   - They could be BLOCKING and NON-BLOCKING.\n *\n *   - Payload {any}\n */\nexport const SE_ALL_EVENTS = '*';\n\n// events payload types\n\n/**\n * ** Payload send whenever {@link SE_NAVIGATE} event is fired.\n */\nexport interface SystemEventNavigatePayload {\n    url: string | string[];\n    extras?: NavigationExtras;\n}\n\n/**\n * ** Payload post whenever {@link SE_LOCATION_CHANGE} event is fired.\n */\nexport interface SystemEventLocationChangePayload {\n    /**\n     * ** Url in string format.\n     *\n     *      - e.g. '/pathname/path-param_1/path-param_2?query-param-1=value_1&query-param-2=value_2'\n     */\n    url: string;\n    /**\n     * ** Dynamic path params in key-value map format.\n     */\n    params: { [key: string]: string };\n    /**\n     * ** Dynamic path params serialized in string format.\n     *\n     *      - e.g. '/pathname/path-param_1/path-param_2'\n     */\n    paramsSerialized: string;\n    /**\n     * ** Dynamic query params in key-value map format.\n     */\n    queryParams: { [key: string]: string };\n    /**\n     * ** Dynamic query params serialized in string format.\n     *\n     *      - e.g. 'query-param-1=value_1&query-param-2=value_2'\n     */\n    queryParamsSerialized: string;\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Comparable, Expression, Predicate } from '../../../../common';\n\n/**\n * ** System Event Filter Expression that evaluates if some Handler should be executed or no.\n */\nexport class SystemEventFilterExpression implements Expression {\n    /**\n     * @inheritDoc\n     */\n    public readonly predicates: Predicate[];\n\n    /**\n     * ** Constructor.\n     */\n    constructor(...predicates: Predicate[]) {\n        this.predicates = predicates ?? [];\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static of(...predicates: Predicate[]): SystemEventFilterExpression {\n        return new SystemEventFilterExpression(...predicates);\n    }\n\n    /**\n     * ** Add Predicates to Expression.\n     */\n    addPredicate(...predicates: Predicate[]): void {\n        this.predicates.push(...predicates);\n    }\n\n    /**\n     * ** Returns value that reflects if there is any Predicate inside the Expression (SystemEventFilter).\n     */\n    hasPredicates(): boolean {\n        return this.predicates.length > 0;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    evaluate(comparable?: Comparable): boolean {\n        return this.predicates.every((p) => p.evaluate(comparable));\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Comparable, ComparableImpl } from '../../../../common';\n\nimport { CollectionsUtil } from '../../../../utils';\n\nimport { SystemEvent } from './event-helper';\n\n/**\n * @inheritDoc\n */\nexport class SystemEventComparable extends ComparableImpl<{ eventId: SystemEvent; payload: unknown }> {\n    /**\n     * ** Constructor.\n     */\n    constructor(value: { eventId: string; payload: unknown }) {\n        super(value);\n    }\n\n    /**\n     * ** Factory method.\n     */\n    static override of(value: { eventId: string; payload: unknown }): SystemEventComparable {\n        return new SystemEventComparable(value);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    override compare(comparable: Comparable): number {\n        if (comparable instanceof SystemEventComparable) {\n            const evaluateSecondStatement = () => (this.value.payload > comparable.value.payload ? 1 : -1);\n\n            return CollectionsUtil.isEqual(this.value.payload, comparable.value.payload) ? 0 : evaluateSecondStatement();\n        } else {\n            return -1;\n        }\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './event.codes';\nexport * from './event-helper';\nexport * from './event-filter.expression';\nexport * from './event.comparable';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './models';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { CollectionsUtil } from '../../../../utils';\n\nimport { Expression } from '../../../../common';\n\nimport { SE_ALL_EVENTS, SystemEvent } from '../../event';\nimport { SystemEventHandlerFindByRef, SystemEventHandlerRecord, SystemEventHandlerRef } from '../models';\n\n/**\n * ** Registry for Events Handlers.\n */\nexport class SystemEventHandlerRegistry {\n    /**\n     * ** Returns Singleton instance.\n     */\n    static get instance(): SystemEventHandlerRegistry {\n        if (CollectionsUtil.isNil(SystemEventHandlerRegistry._instance)) {\n            SystemEventHandlerRegistry._instance = new SystemEventHandlerRegistry();\n        }\n\n        return SystemEventHandlerRegistry._instance;\n    }\n\n    private static _instance: SystemEventHandlerRegistry;\n\n    private readonly handlers: Map<SystemEvent, Set<SystemEventHandlerRecord>> = new Map<SystemEvent, Set<SystemEventHandlerRecord>>();\n\n    /**\n     * ** Constructor.\n     *\n     *    - Private constructor to make it Singleton.\n     */\n    private constructor() {\n        // No-op.\n    }\n\n    /**\n     * ** Register Handler for SystemEvent/s.\n     */\n    static register<T>(\n        knownEvents: SystemEvent | SystemEvent[],\n        handlerRef: SystemEventHandlerRef,\n        handlerClassInstance: T,\n        handlerFilterExpression: Expression = null\n    ): boolean {\n        return SystemEventHandlerRegistry.instance.register<T>(knownEvents, handlerRef, handlerClassInstance, handlerFilterExpression);\n    }\n\n    /**\n     * ** Unregister Handler from registry.\n     *\n     *   - It should be done in ngOnDestroy() method in Services/Components to avoid potential memory leaks.\n     */\n    static unregister(knownEvents: SystemEvent | SystemEvent[], handlerRef: SystemEventHandlerRef): boolean {\n        return SystemEventHandlerRegistry.instance.unregister(knownEvents, handlerRef);\n    }\n\n    /**\n     * ** Find Handler by reference looking through the Registry.\n     */\n    static findHandlerByReference(\n        eventId: SystemEvent,\n        handlerRef: SystemEventHandlerRef,\n        handlerClassInstance?: any\n    ): SystemEventHandlerFindByRef {\n        return SystemEventHandlerRegistry.instance.findHandlerByReference(eventId, handlerRef, handlerClassInstance);\n    }\n\n    /**\n     * ** Prepare array of handlers for execution of post or send.\n     */\n    static getPreparedArrayOfHandlers(eventId: SystemEvent, reversed = false): SystemEventHandlerRecord[] {\n        return SystemEventHandlerRegistry.instance.getPreparedArrayOfHandlers(eventId, reversed);\n    }\n\n    private register<T>(\n        knownEvents: SystemEvent | SystemEvent[],\n        handlerRef: SystemEventHandlerRef,\n        handlerClassInstance: T,\n        handlerFilterExpression: Expression = null\n    ): boolean {\n        return this.execute(\n            knownEvents,\n            handlerRef,\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n            this.executeRegister.bind(this),\n            handlerClassInstance,\n            handlerFilterExpression\n        );\n    }\n\n    private unregister(knownEvents: SystemEvent | SystemEvent[], handlerRef: SystemEventHandlerRef): boolean {\n        return this.execute(\n            knownEvents,\n            handlerRef,\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n            this.executeUnregister.bind(this)\n        );\n    }\n\n    private findHandlerByReference(\n        eventId: SystemEvent,\n        handlerRef: SystemEventHandlerRef,\n        handlerClassInstance?: any\n    ): SystemEventHandlerFindByRef {\n        const handlers = this.handlers.has(eventId) ? this.handlers.get(eventId) : new Set<SystemEventHandlerRecord>();\n\n        const handlerRecord = Array.from(handlers.values()).find((r) => {\n            let isEqual = r.handlerRef === handlerRef;\n\n            if (handlerClassInstance) {\n                isEqual = isEqual && r.handlerClassInstance === handlerClassInstance;\n            }\n\n            return isEqual;\n        });\n\n        return {\n            active: CollectionsUtil.isDefined(handlerRecord),\n            handlerRecord,\n            handlerRef: CollectionsUtil.isDefined(handlerRecord) ? handlerRecord.handlerRef : undefined\n        };\n    }\n\n    private getPreparedArrayOfHandlers(eventId: SystemEvent, reversed = false): SystemEventHandlerRecord[] {\n        const specialHandlers: SystemEventHandlerRecord[] = this.getSpecialHandlers();\n\n        if (!this.handlers.has(eventId)) {\n            return specialHandlers;\n        }\n\n        return reversed\n            ? Array.from(this.handlers.get(eventId).values()).concat(specialHandlers).reverse()\n            : Array.from(this.handlers.get(eventId).values()).concat(specialHandlers);\n    }\n\n    /**\n     * ** Generic abstraction for Register and Unregister handlers.\n     */\n    private execute(\n        knownEvents: SystemEvent | SystemEvent[],\n        handlerRef: SystemEventHandlerRef,\n        executeMethodRef: (...arg: any[]) => any,\n        handlerClassInstance?: any,\n        handlerFilterExpression?: Expression\n    ): boolean {\n        const preparedData = this.prepareEventNames(knownEvents);\n\n        if (!preparedData.status || !CollectionsUtil.isFunction(handlerRef)) {\n            return false;\n        }\n\n        try {\n            preparedData.eventNames.forEach((eventId) => {\n                executeMethodRef(eventId, handlerRef, handlerClassInstance, handlerFilterExpression);\n            });\n\n            return true;\n        } catch (_e) {\n            return false;\n        }\n    }\n\n    /**\n     * ** Evaluate Handler register.\n     */\n    private executeRegister(\n        eventId: SystemEvent,\n        handlerRef: SystemEventHandlerRef,\n        handlerClassInstance: any,\n        handlerFilterExpression: Expression\n    ): boolean {\n        if (!this.handlers.has(eventId)) {\n            this.handlers.set(eventId, new Set());\n        }\n\n        if (this.findHandlerByReference(eventId, handlerRef, handlerClassInstance).active) {\n            return false;\n        }\n\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n        this.handlers.get(eventId).add({ handlerRef, handlerClassInstance, handlerFilterExpression });\n\n        return true;\n    }\n\n    /**\n     * ** Evaluate Handler unregister.\n     */\n    private executeUnregister(eventId: SystemEvent, handlerRef: SystemEventHandlerRef): boolean {\n        if (!this.handlers.has(eventId)) {\n            return false;\n        }\n\n        const findHandlerResponse = this.findHandlerByReference(eventId, handlerRef);\n\n        if (!findHandlerResponse.active) {\n            return false;\n        }\n\n        this.handlers.get(eventId).delete(findHandlerResponse.handlerRecord);\n\n        return true;\n    }\n\n    /**\n     * ** Prepares Event names in Array of strings format.\n     */\n    private prepareEventNames(knownEvents: SystemEvent | SystemEvent[]): { status: boolean; eventNames?: SystemEvent[] } {\n        if (!CollectionsUtil.isString(knownEvents) && !CollectionsUtil.isArray(knownEvents)) {\n            return {\n                status: false\n            };\n        }\n\n        return {\n            status: true,\n            eventNames: CollectionsUtil.isString(knownEvents) ? [knownEvents] : knownEvents\n        };\n    }\n\n    /**\n     * ** Returns special Handlers.\n     */\n    private getSpecialHandlers(): SystemEventHandlerRecord[] {\n        if (!this.handlers.has(SE_ALL_EVENTS)) {\n            return [];\n        }\n\n        return Array.from(this.handlers.get(SE_ALL_EVENTS).values());\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './event-handler.registry';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * ** Key identifier for Taurus System Events Metadata on Class and Methods.\n */\nexport const SYSTEM_EVENTS_METADATA_KEY = '__taurus::shared::system::events::metadata__';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './event-decorator-helper';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable max-len,\n                  @typescript-eslint/naming-convention,\n                  prefer-arrow/prefer-arrow-functions,\n                  prefer-arrow/prefer-arrow-functions,\n                  prefer-arrow/prefer-arrow-functions,\n                  space-before-function-paren,\n                  @typescript-eslint/no-unsafe-member-access,\n                  @typescript-eslint/no-unsafe-argument,\n                  @typescript-eslint/ban-ts-comment,\n                  @typescript-eslint/no-explicit-any,\n                  @typescript-eslint/no-unsafe-assignment\n*/\n\nimport 'reflect-metadata';\n\nimport { CollectionsUtil } from '../../../utils';\n\nimport { SystemEventMetadataRecords } from '../dispatcher/models';\nimport { SystemEventHandlerRegistry } from '../dispatcher/registry';\n\nimport { SYSTEM_EVENTS_METADATA_KEY } from './models';\n\n/**\n * ** Decorator to annotate Handler source Class as SystemEvent Handler source Class.\n *\n *   - Annotation should be add on top, before Class declaration starts,\n *        there should be no other annotations between this one and the Class declaration.\n *   - Annotation brings context from Object instance and make connection between Handler and the instance.\n *   - Take care for auto unsubscribe from HandlersRegistry for all Handlers from the Class on Object destroy,\n *        leveraging Angular ngOnDestroy lifecycle hook.\n *   - Annotation could be added only on Angular objects (like Services) to avoid memory leaks.\n *   - Decorator is evaluated on Class declaration and inside code is evaluated on Object/Instance creation.\n *   - For Dispatcher and Handler decorator read JSDoc {@link SystemEventDispatcher} {@link SystemEventHandler}\n *\n * @example\n *\n *   `@Injectable()`\n *   `@SystemEventHandlerClass()` // immediately before Class declaration!\n *    export class DataJobService {\n *      // some properties, methods and handlers\n *    }\n */\nexport function SystemEventHandlerClass(): ClassDecorator {\n    // @ts-ignore\n    return <T extends new (...args: any[]) => InstanceType<T>>(\n        OriginConstructor: T\n    ): ((...args: ConstructorParameters<T>) => InstanceType<T>) => {\n        const originMetadataKeys = Reflect.getMetadataKeys(OriginConstructor);\n        const originMetadataRecords: SystemEventMetadataRecords = Reflect.getMetadata(SYSTEM_EVENTS_METADATA_KEY, OriginConstructor) ?? [];\n        const originOnDestroyRef: () => void = getOriginOnDestroyRef<T>(OriginConstructor);\n\n        let instance: InstanceType<T>;\n\n        const OverriddenConstructor = function (...args: ConstructorParameters<T>): InstanceType<T> {\n            instance = new OriginConstructor(...args);\n\n            originMetadataRecords.forEach((r) => {\n                SystemEventHandlerRegistry.register<InstanceType<T>>(r.events, r.handler, instance, r.filterExpression);\n            });\n\n            return instance;\n        };\n\n        OriginConstructor.prototype.ngOnDestroy = () => {\n            originMetadataRecords.forEach((r) => {\n                SystemEventHandlerRegistry.unregister(r.events, r.handler);\n\n                if (originOnDestroyRef) {\n                    originOnDestroyRef.call(instance);\n                }\n            });\n        };\n\n        originMetadataKeys.forEach((key) => {\n            Reflect.defineMetadata(key, Reflect.getMetadata(key, OriginConstructor), OverriddenConstructor);\n        });\n\n        copyFromOriginToOverride(OriginConstructor, OverriddenConstructor);\n\n        return OverriddenConstructor;\n    };\n}\n\nconst getOriginOnDestroyRef = <T extends new (...args: any[]) => InstanceType<T>>(classRef: T): (() => void | null) => {\n    if (!classRef || !classRef.prototype) {\n        return null;\n    }\n\n    if (classRef.prototype.ngOnDestroy) {\n        return classRef.prototype.ngOnDestroy as () => void;\n    }\n\n    return getOriginOnDestroyRef(classRef.prototype);\n};\n\nconst copyFromOriginToOverride = <T extends new (...args: any[]) => InstanceType<T>>(\n    OriginConstructor: T,\n    OverriddenConstructor: (...args: ConstructorParameters<T>) => InstanceType<T>\n) => {\n    CollectionsUtil.iterateClassStatics(OriginConstructor, (descriptor, key) => {\n        const overriddenPropertyDescriptor = CollectionsUtil.getObjectPropertyDescriptor(OverriddenConstructor, key);\n        if (overriddenPropertyDescriptor && !overriddenPropertyDescriptor.writable) {\n            return;\n        }\n\n        OverriddenConstructor[key] = descriptor.value;\n    });\n\n    OverriddenConstructor.prototype = Object.create(OriginConstructor.prototype);\n    OverriddenConstructor.prototype.constructor = OverriddenConstructor;\n};\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable prefer-arrow/prefer-arrow-functions,\n                  @typescript-eslint/naming-convention,\n                  max-len\n*/\n\nimport 'reflect-metadata';\n\nimport { Expression } from '../../../common';\n\nimport { SystemEvent } from '../event';\nimport { SystemEventHandlerRef, SystemEventMetadataRecords } from '../dispatcher/models';\n\nimport { SYSTEM_EVENTS_METADATA_KEY } from './models';\n\n/**\n * ** Decorator to register method as SystemEvent Handler.\n *\n *   - Annotation should be added before method declaration.\n *   - It will annotate method as Handler for provided SystemEvent or SystemEvents.\n *   - Optionally filter expression could be provide to filter Handler execution only when expression requirements are met.\n *   - Depends of the SystemEvent Handler should return Promise or not.\n *        - Blocking SystemEvents require Promise, Non-Blocking doesn't.\n *        - Recommended is every Handler to return Promise to avoid Runtime exception in signature change on Invoker side.\n *   - For Dispatcher and Handler Class decorator read JSDoc {@link SystemEventDispatcher} {@link SystemEventHandlerClass}\n *\n * @example\n *\n *   `@Injectable()`\n *   `@SystemEventHandlerClass()`\n *    export class LoggerService {\n *\n *      // some properties, methods\n *\n *     `@SystemEventHandler('SE_Log')` // NON-BLOCKING SystemEvent\n *      public _logHandler(payload: { message: string }, eventId?: SystemEvent): void {\n *        // Do something\n *      }\n *    }\n *\n *   `@Injectable`\n *   `@SystemEventHandlerClass()`\n *    export class DataJobService {\n *      constructor(private readonly httpClient: HttpClient) {}\n *\n *     `@SystemEventHandler('SE_Create_Job')` // BLOCKING SystemEvent\n *      public _createJobHandler(payload: { baseUrl: string; jobName: string; jobCreator: string }): Promise<boolean> {\n *\n *        // Do something\n *\n *        // Possibility to make asynchronous calls,\n *        // while Invoker is waiting until every Handler is executed,\n *        // and execution flow is returned\n *        return this\n *                  .httpClient\n *                  .post(`${baseUrl}/create`, {jobName, jobCreator})\n *                  .pipe(\n *                    map((v) => !!v) // do some transformation and return boolean\n *                  )\n *                  .toPromise(); // cast to Promise\n *      }\n *    }\n *\n *   `@Injectable()`\n *   `@SystemEventHandlerClass()`\n *    export class DataJobManageService {\n *      constructor(private readonly httpClient: HttpClient) {}\n *\n *     `@SystemEventHandler(['SE_Create_Job', 'SE_Update_Job'])` // BLOCKING SystemEvents\n *      public _createOrUpdateJobHandler(payload: { baseUrl: string; jobName: string; jobCreator?: string; data?: any }, eventId: SystemEvent): Promise<boolean> {\n *\n *        // Do something\n *\n *        let url: string;\n *        let payloadData: { jobName: string; jobCreator?: string; data?: any }\n *\n *        if (eventId === 'SE_Create_Job') {\n *          url = `${baseUrl}/create`;\n *          payloadData = { jobName, jobCreator };\n *        } else {\n *          url = `${baseUrl}/update`\n *          payloadData = { jobName, data };\n *        }\n *\n *        // Possibility to make asynchronous calls,\n *        // while Invoker is waiting until every Handler is executed,\n *        // and execution flow is returned\n *        return this\n *                  .httpClient\n *                  .post(url, payloadData)\n *                  .pipe(\n *                    map((v) => !!v) // do some transformation and return boolean\n *                  )\n *                  .toPromise(); // cast to Promise\n *      }\n *    }\n */\nexport function SystemEventHandler(knownEvents: SystemEvent | SystemEvent[], filterExpression?: Expression): MethodDecorator {\n    return (target, propertyKey, descriptor) => {\n        if (!descriptor || !knownEvents) {\n            return;\n        }\n\n        let metadataRecords: SystemEventMetadataRecords = [];\n\n        if (Reflect.hasMetadata(SYSTEM_EVENTS_METADATA_KEY, target.constructor)) {\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n            metadataRecords = Reflect.getMetadata(SYSTEM_EVENTS_METADATA_KEY, target.constructor);\n            metadataRecords.push({\n                handler: descriptor.value as unknown as SystemEventHandlerRef,\n                events: knownEvents,\n                filterExpression\n            });\n\n            Reflect.defineMetadata(SYSTEM_EVENTS_METADATA_KEY, metadataRecords, target.constructor, propertyKey);\n\n            return;\n        }\n\n        metadataRecords.push({\n            handler: descriptor.value as unknown as SystemEventHandlerRef,\n            events: knownEvents,\n            filterExpression\n        });\n\n        Reflect.defineMetadata(SYSTEM_EVENTS_METADATA_KEY, metadataRecords, target.constructor);\n    };\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './event-handler-class.decorator';\nexport * from './event-handler.decorator';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { CollectionsUtil } from '../../../utils';\n\nimport { SE_ALL_EVENTS, SystemEvent, SystemEventComparable } from '../event';\nimport { SystemEventHandlerRegistry } from './registry';\nimport { SystemEventHandlerRecord } from './models';\n\n/**\n * ** System Event Dispatcher.\n *\n *   - This Class is start point to trigger SystemEvent.\n *   - SystemEvent identifier is in string format, and would be nice those string to be assigned to constant for easier usage.\n *   - Payload could be any format but preferable is Literal Object.\n *   - SystemEvents could be dispatched in two ways using implemented behavior:\n *\n *   1) POST - this is NON-BLOCKING execution that leverages `setTimeout(handler, 0)` to avoid blocking main JavaScript thread.\n *\n *   2) SEND - this is BLOCKING execution that leverages `Promise` mechanism to chain Handlers execution. At the end returns\n *               flow of execution to Invoker.\n *\n *   - Handlers and their usage read at Decorators JSDoc {@link SystemEventHandlerClass} {@link SystemEventHandler}.\n *\n * @see SystemEventDispatcher.post\n * @see SystemEventDispatcher.send\n *\n * @example\n *    // void\n *    SystemEventDispatcher\n *        .post('SE_Send_Email', { email: 'taurus-shared@vmware.com });\n *\n *    // returns Promise\n *    SystemEventDispatcher\n *        .send('SE_Create_Job', { jobName: 'Test', jobCreator: 'System' })\n *        .then((v) => {\n *          // Do something\n *        });\n */\nexport class SystemEventDispatcher {\n    /**\n     * ** Method to post System Event.\n     *\n     *   - NON-BLOCKING execution.\n     *   - Execution is non-blocking, e.g. it is executed in queue using setTimeout of 0.\n     *   - If third parameters is provided it will execute as many handlers as it is request.\n     *      - e.g. 1 or 2 or N and will skip the others.\n     */\n    static post(eventId: SystemEvent, payload: any, handlersToExecute: number = null) {\n        const preparedHandlers = SystemEventHandlerRegistry.getPreparedArrayOfHandlers(eventId);\n\n        let executedHandlers = 0;\n\n        for (const handlerRecord of preparedHandlers) {\n            if (!SystemEventDispatcher.executeExpressionFilter(handlerRecord, eventId, payload)) {\n                return;\n            }\n\n            executedHandlers++;\n\n            const isHandlerActive = (e: SystemEvent) =>\n                SystemEventHandlerRegistry.findHandlerByReference(e, handlerRecord.handlerRef, handlerRecord.handlerClassInstance).active;\n\n            setTimeout(() => {\n                if (!isHandlerActive(eventId) && !isHandlerActive(SE_ALL_EVENTS)) {\n                    return;\n                }\n\n                handlerRecord.handlerRef.call(handlerRecord.handlerClassInstance, payload, eventId);\n            }, 0);\n\n            if (CollectionsUtil.isNumber(handlersToExecute) && executedHandlers >= handlersToExecute) {\n                break;\n            }\n        }\n    }\n\n    /**\n     * ** Method to send System Event.\n     *\n     *   - BLOCKING execution.\n     *   - Execution is blocking, e.g. it is achieved using Promises, and every handler must return Promise.\n     *   - If third parameters is provided it will execute as many handlers as it is request.\n     *      - e.g. 1 or 2 or N and will return the flow to the invoker.\n     */\n    static send(eventId: SystemEvent, payload: any, handlersToExecute: number = null): Promise<boolean> {\n        const preparedHandlers = SystemEventHandlerRegistry.getPreparedArrayOfHandlers(eventId, true);\n\n        return SystemEventDispatcher.executeSendCommand(preparedHandlers, eventId, payload, handlersToExecute);\n    }\n\n    /**\n     * ** Execute send command and handle Promises from handlers.\n     */\n    private static executeSendCommand(\n        handlers: SystemEventHandlerRecord[],\n        eventId: SystemEvent,\n        payload: any,\n        handlersToExecute: number = null,\n        executedHandlers = 0\n    ): Promise<boolean> {\n        if (!handlers.length) {\n            return Promise.resolve(true);\n        }\n\n        if (CollectionsUtil.isNumber(handlersToExecute) && handlersToExecute === executedHandlers) {\n            return Promise.resolve(true);\n        }\n\n        const handlerForExecution = handlers.pop();\n\n        if (!SystemEventDispatcher.executeExpressionFilter(handlerForExecution, eventId, payload)) {\n            return SystemEventDispatcher.executeSendCommand(handlers, eventId, payload, handlersToExecute, executedHandlers);\n        }\n\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return\n        return handlerForExecution.handlerRef\n            .call(handlerForExecution.handlerClassInstance, payload, eventId)\n            .then(() => SystemEventDispatcher.executeSendCommand(handlers, eventId, payload, handlersToExecute, executedHandlers + 1))\n            .catch(() => Promise.reject(false));\n    }\n\n    /**\n     * ** Execute Expression filter for Handler before execution.\n     */\n    private static executeExpressionFilter(handlerRecord: SystemEventHandlerRecord, eventId: SystemEvent, payload: any): boolean {\n        const filterExpression = handlerRecord.handlerFilterExpression;\n\n        if (CollectionsUtil.isNil(filterExpression)) {\n            return true;\n        }\n\n        return handlerRecord.handlerFilterExpression.evaluate(\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n            SystemEventComparable.of({ eventId, payload })\n        );\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './event.dispatcher';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './event';\nexport * from './decorator';\nexport * from './dispatcher';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Injectable } from '@angular/core';\nimport { ActivatedRoute, ActivatedRouteSnapshot, NavigationExtras, Router } from '@angular/router';\n\nimport { take } from 'rxjs/operators';\n\nimport { ArrayElement, CollectionsUtil } from '../../../utils';\n\nimport { Replacer, TaurusNavigateAction } from '../../../common';\n\nimport { SE_NAVIGATE, SystemEventHandler, SystemEventHandlerClass, SystemEventNavigatePayload } from '../../system-events';\n\nimport { RouterService, RouteState } from '../../router';\nimport { RouteStateFactory } from '../../router/factory';\n\n/**\n * ** Service should be provided from the Root injector in Application.\n */\n@Injectable()\n@SystemEventHandlerClass()\nexport class NavigationService {\n    private readonly _routeStateFactory: RouteStateFactory;\n\n    /**\n     * ** Constructor.\n     */\n    constructor(\n        private readonly router: Router,\n        private readonly routerService: RouterService\n    ) {\n        this._routeStateFactory = new RouteStateFactory();\n    }\n\n    /**\n     * ** Intercept SE_NAVIGATE Event and handle (react) on it.\n     */\n    @SystemEventHandler(SE_NAVIGATE)\n    _navigationSystemEventHandler_(payload: SystemEventNavigatePayload): Promise<boolean> {\n        if (CollectionsUtil.isNil(payload)) {\n            return Promise.resolve(false);\n        }\n\n        return this.navigate(payload.url, payload.extras);\n    }\n\n    /**\n     * ** Navigate to url with provided extras.\n     */\n    navigate(url: string | string[], extras?: NavigationExtras): Promise<boolean> {\n        let urlChunks: string[];\n\n        if (CollectionsUtil.isArray(url)) {\n            urlChunks = url.map((v, i) => (i === 0 ? `/${v.replace(/^\\//, '')}` : v));\n        } else if (CollectionsUtil.isString(url)) {\n            if (url.trim() === '/') {\n                urlChunks = ['/'];\n            } else {\n                urlChunks = url\n                    .split('/')\n                    .filter((v) => !!v)\n                    .map((v, i) => (i === 0 ? `/${v}` : v));\n            }\n        } else {\n            return Promise.resolve(false);\n        }\n\n        return CollectionsUtil.isLiteralObject(extras) ? this.router.navigate(urlChunks, extras) : this.router.navigate(urlChunks);\n    }\n\n    /**\n     * ** Navigate to using Route config, RouteState and leveraging provided optional replaceValueResolver.\n     *\n     * @param replaceValues is Object with mapping between Replacer.replaceValue key pointer to dynamic value specific for the Page.\n     *      - What does it mean?\n     *          Replacer has searchValue and replaceValue. When searchValue match, it replace with replaceValue, but\n     *              replaceValue could be something like '$.team', '$.job', '{0}', '{1}' etc... dynamic params, so those params\n     *              could be key in this Map to construct correct url depending of the logic in RouteConfig.\n     * <p>\n     * Important!!!\n     *      - If replaceValues is not provided or some key doesn't exist there, replaceValue would be use as it is in the RouteConfig.\n     * </p>\n     * <p></p>\n     * @param activatedRoute is optional and could be provided if you want those state to be used to extract RouteConfig and NavigationAction.\n     */\n    navigateTo(\n        replaceValues?: { [key: string]: ArrayElement<TaurusNavigateAction['replacers']>['replaceValue'] },\n        activatedRoute?: ActivatedRoute | ActivatedRouteSnapshot\n    ): Promise<boolean> {\n        return this._navigateWithAction(replaceValues, activatedRoute, 'navigateTo');\n    }\n\n    /**\n     * ** Navigate back using Route config, RouteState and leveraging provided optional replaceValueResolver.\n     *\n     * @param replaceValues is Object with mapping between Replacer.replaceValue key pointer to dynamic value specific for the Page.\n     *      - What does it mean?\n     *          Replacer has searchValue and replaceValue. When searchValue match, it replace with replaceValue, but\n     *              replaceValue could be something like '$.team', '$.job', '{0}', '{1}' etc... dynamic params, so those params\n     *              could be key in this Map to construct correct url depending of the logic in RouteConfig.\n     * <p>\n     * Important!!!\n     *      - If replaceValues is not provided or some key doesn't exist there, replaceValue would be use as it is in the RouteConfig.\n     * </p>\n     * <p></p>\n     * @param activatedRoute is optional and could be provided if you want those state to be used to extract RouteConfig and NavigationAction.\n     */\n    navigateBack(\n        replaceValues?: { [key: string]: ArrayElement<TaurusNavigateAction['replacers']>['replaceValue'] },\n        activatedRoute?: ActivatedRoute | ActivatedRouteSnapshot\n    ): Promise<boolean> {\n        return this._navigateWithAction(replaceValues, activatedRoute, 'navigateBack');\n    }\n\n    /**\n     * ** Redirect using Route config, RouteState and leveraging provided optional replaceValueResolver.\n     *\n     * @param replaceValues is Object with mapping between Replacer.replaceValue key pointer to dynamic value specific for the Page.\n     *      - What does it mean?\n     *          Replacer has searchValue and replaceValue. When searchValue match, it replace with replaceValue, but\n     *              replaceValue could be something like '$.team', '$.job', '{0}', '{1}' etc... dynamic params, so those params\n     *              could be key in this Map to construct correct url depending of the logic in RouteConfig.\n     * <p>\n     * Important!!!\n     *      - If replaceValues is not provided or some key doesn't exist there, replaceValue would be use as it is in the RouteConfig.\n     * </p>\n     * <p></p>\n     * @param activatedRoute is optional and could be provided if you want those state to be used to extract RouteConfig and NavigationAction.\n     */\n    redirect(\n        replaceValues?: { [key: string]: ArrayElement<TaurusNavigateAction['replacers']>['replaceValue'] },\n        activatedRoute?: ActivatedRoute | ActivatedRouteSnapshot\n    ): Promise<boolean> {\n        return this._navigateWithAction(replaceValues, activatedRoute, 'redirect');\n    }\n\n    /**\n     * ** Resolve NavigationAction using Route config, RouteState and leveraging provided optional replaceValueResolver.\n     * @param navigateActionType is the type of the NavigationAction we want to resolve from Route config.\n     * @param replaceValues is Object with mapping between Replacer.replaceValue key pointer to dynamic value specific for the Page.\n     *      - What does it mean?\n     *          Replacer has searchValue and replaceValue. When searchValue match, it replace with replaceValue, but\n     *              replaceValue could be something like '$.team', '$.job', '{0}', '{1}' etc... dynamic params, so those params\n     *              could be key in this Map to construct correct url depending of the logic in RouteConfig.\n     * <p>\n     * Important!!!\n     *      - If replaceValues is not provided or some key doesn't exist there, replaceValue would be use as it is in the RouteConfig.\n     * </p>\n     * <p></p>\n     * @param activatedRoute is optional and could be provided if you want those state to be used to extract RouteConfig and NavigationAction.\n     */\n    resolveNavigateActionUrl(\n        navigateActionType: 'navigateTo' | 'navigateBack' | 'redirect',\n        replaceValues?: { [key: string]: ArrayElement<TaurusNavigateAction['replacers']>['replaceValue'] },\n        activatedRoute?: ActivatedRoute | ActivatedRouteSnapshot | RouteState\n    ): Promise<[string, NavigationExtras]> {\n        const _replaceValues = CollectionsUtil.isLiteralObject(replaceValues) ? replaceValues : {};\n\n        return this._extractRouteState(activatedRoute)\n            .then((state) => this._constructNavigateParameters(state, navigateActionType))\n            .then((params) => this._resolveNavigateValues(params.url, params.replacers, _replaceValues, params.navigationExtras));\n    }\n\n    /**\n     * ** Initialize the Service without any operation, just to create singleton Service instance.\n     *\n     *   - It should be done in the root of the project only once.\n     *   - Possible place is AppComponent or some root initializer guard.\n     */\n    initialize(): void {\n        this.routerService.initialize();\n    }\n\n    private _navigateWithAction(\n        replaceValues: { [key: string]: ArrayElement<TaurusNavigateAction['replacers']>['replaceValue'] },\n        activatedRoute: ActivatedRoute | ActivatedRouteSnapshot,\n        dataKey: 'navigateTo' | 'navigateBack' | 'redirect'\n    ): Promise<boolean> {\n        return this.resolveNavigateActionUrl(dataKey, replaceValues, activatedRoute)\n            .then()\n            .then(([url, navigationExtras]) => this.navigate(url, navigationExtras))\n            .catch((error) => {\n                console.error(error);\n\n                return false;\n            });\n    }\n\n    private _extractRouteState(activatedRoute: ActivatedRoute | ActivatedRouteSnapshot | RouteState): Promise<RouteState> {\n        // NOTICE\n        // this piece of code is needed for Guards cases usage.\n        // Use params and data from Guard RouteState instead from RouterService because\n        // RouterService state is populated after all guards are resolved\n        if (CollectionsUtil.isDefined(activatedRoute)) {\n            if (activatedRoute instanceof RouteState) {\n                return Promise.resolve(activatedRoute);\n            }\n\n            return Promise.resolve(\n                this._routeStateFactory.create(activatedRoute instanceof ActivatedRoute ? activatedRoute.snapshot : activatedRoute, null)\n            );\n        }\n\n        return this.routerService\n            .getState()\n            .pipe(take(1))\n            .toPromise()\n            .then((state) => state);\n    }\n\n    // eslint-disable-next-line max-len\n    private _constructNavigateParameters(\n        state: RouteState,\n        dataKey: 'navigateTo' | 'navigateBack' | 'redirect'\n    ): Promise<NavigationParameters> {\n        const navigateAction = state.getData<TaurusNavigateAction>(dataKey);\n        const navigationExtras: NavigationExtras = { queryParamsHandling: 'merge' };\n\n        let url: string;\n        let replacers: Array<Replacer<string>> = [];\n\n        if (CollectionsUtil.isDefined(navigateAction)) {\n            url = this._resolveNavigateUrl(state, dataKey, navigateAction);\n\n            if (CollectionsUtil.isArray(navigateAction.replacers)) {\n                replacers = navigateAction.replacers;\n            }\n\n            this._appendNavigateExtras(state, navigationExtras, navigateAction);\n        } else if (dataKey === 'navigateBack') {\n            url = state.getParentAbsoluteRoutePath();\n        } else {\n            return Promise.reject('Cannot navigate without NavigationAction');\n        }\n\n        return Promise.resolve({\n            url,\n            replacers,\n            navigationExtras\n        });\n    }\n\n    private _resolveNavigateUrl(\n        state: RouteState,\n        dataKey: 'navigateTo' | 'navigateBack' | 'redirect',\n        navigateAction: TaurusNavigateAction\n    ): string {\n        if (dataKey === 'redirect' || dataKey === 'navigateBack') {\n            if (navigateAction.path === '$.parent' || navigateAction.path === '$.requested') {\n                return navigateAction.useConfigPath ? state.getParentAbsoluteConfigPath() : state.getParentAbsoluteRoutePath();\n            }\n\n            if (navigateAction.path === '$.current') {\n                return navigateAction.useConfigPath ? state.getAbsoluteConfigPath() : state.getAbsoluteRoutePath();\n            }\n\n            return navigateAction.path;\n        }\n\n        if (navigateAction.path === '$.current') {\n            return navigateAction.useConfigPath ? state.getAbsoluteConfigPath() : state.getAbsoluteRoutePath();\n        }\n\n        return navigateAction.path;\n    }\n\n    // eslint-disable-next-line max-len\n    private _appendNavigateExtras(state: RouteState, navigationExtras: NavigationExtras, navigateAction: TaurusNavigateAction): void {\n        if (CollectionsUtil.isString(navigateAction.queryParamsHandling)) {\n            navigationExtras.queryParamsHandling = navigateAction.queryParamsHandling;\n\n            if (navigationExtras.queryParamsHandling === 'merge') {\n                navigationExtras.queryParams = {\n                    ...state.queryParams,\n                    ...(navigateAction.queryParams ?? {})\n                };\n            } else if (navigationExtras.queryParamsHandling !== 'preserve') {\n                navigationExtras.queryParams = navigateAction.queryParams ?? {};\n            }\n        } else if (CollectionsUtil.isNull(navigateAction.queryParamsHandling)) {\n            delete navigationExtras.queryParamsHandling;\n        } else {\n            navigationExtras.queryParams = {\n                ...state.queryParams,\n                ...(navigateAction.queryParams ?? {})\n            };\n        }\n    }\n\n    private _resolveNavigateValues(\n        path: string,\n        replacers: Array<Replacer<string>>,\n        replaceValues: { [key: string]: ArrayElement<TaurusNavigateAction['replacers']>['replaceValue'] },\n        navigationExtras: NavigationExtras\n    ): Promise<[string, NavigationExtras]> {\n        let resolvedPath: string;\n\n        if (CollectionsUtil.isString(path)) {\n            resolvedPath = path;\n        } else {\n            resolvedPath = '/';\n\n            console.error(`RouteConfig error! NavigationAction config, \"path\" property is missing.`);\n        }\n\n        for (const replacer of replacers) {\n            const replaceValue = replaceValues[replacer.replaceValue] ?? replacer.replaceValue;\n\n            resolvedPath = resolvedPath.replace(replacer.searchValue, replaceValue);\n        }\n\n        return Promise.resolve([resolvedPath, navigationExtras]);\n    }\n}\n\ninterface NavigationParameters {\n    url: string;\n    replacers: Array<Replacer<string>>;\n    navigationExtras: NavigationExtras;\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './navigation.service';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './services';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @angular-eslint/directive-class-suffix */\n\nimport { Directive, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Params } from '@angular/router';\n\nimport { Subscription } from 'rxjs';\n\nimport { ArrayElement, CollectionsUtil } from '../../../../utils';\n\nimport { ErrorRecord, TaurusNavigateAction } from '../../../../common';\n\nimport { NavigationService } from '../../../navigation';\nimport { RouteStateFactory } from '../../../router/factory';\n\nimport { ComponentModel, FAILED } from '../../model';\nimport { ComponentService } from '../../services';\n\nimport { TaurusErrorBaseComponent } from '../error-base';\n\nimport { TaurusComponentHooks } from './interfaces';\n\n/**\n * ** Superclass Component for all other Components that want to use NgRx Store and all lifecycle hooks from Taurus.\n */\n@Directive()\nexport abstract class TaurusBaseComponent extends TaurusErrorBaseComponent implements OnInit, OnDestroy {\n    /**\n     * @inheritDoc\n     */\n    static override readonly CLASS_NAME: string = 'TaurusBaseComponent';\n\n    /**\n     * @inheritDoc\n     */\n    static override readonly PUBLIC_NAME: string = 'Taurus-Base-Component';\n\n    private static _routeStateFactory: RouteStateFactory;\n\n    /**\n     * ** Field that hold Component Model.\n     */\n    model: ComponentModel;\n\n    /**\n     * ** UUID is identifier for every Subclass in Components state Store.\n     */\n    abstract readonly uuid: string;\n\n    /**\n     * ** Feature flag to enforce Route reuse in native way provided from Taurus NgRx.\n     *\n     *      - Introduced for backward compatibility.\n     *      - Default value is false, and continues to operate like previous major version.\n     *      - If set to true will enforce Route reuse strategy and will re-initialize Component with new Model for the new params.\n     */\n    enforceRouteReuse = false;\n\n    /**\n     * ** Model subscription ref.\n     * @private\n     */\n    private _modelSubscription: Subscription;\n\n    /**\n     * ** Constructor.\n     */\n    protected constructor(\n        protected readonly componentService: ComponentService,\n        protected readonly navigationService: NavigationService,\n        protected readonly activatedRoute: ActivatedRoute,\n        className: string = null\n    ) {\n        super(className ?? TaurusBaseComponent.CLASS_NAME);\n    }\n\n    /**\n     * ** Navigate to page using {@link NavigationService.navigateTo}.\n     */\n    navigateTo(replaceValues?: { [key: string]: ArrayElement<TaurusNavigateAction['replacers']>['replaceValue'] }): Promise<boolean> {\n        return this.navigationService.navigateTo(replaceValues);\n    }\n\n    /**\n     * ** Navigate back to previous page using {@link NavigationService.navigateBack}.\n     */\n    navigateBack(replaceValues?: { [key: string]: ArrayElement<TaurusNavigateAction['replacers']>['replaceValue'] }): Promise<boolean> {\n        return this.navigationService.navigateBack(replaceValues);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    ngOnInit() {\n        this.bindModel();\n\n        this.initializeRouteReuse();\n    }\n\n    /**\n     * @inheritDoc\n     */\n    override ngOnDestroy() {\n        this.setStateIdle();\n\n        super.ngOnDestroy();\n    }\n\n    /**\n     * ** Invoking method register subscriber for Taurus NgRx Redux Store mutation in context of {@link ComponentState.routePathSegments},\n     *      which binds {@link ComponentModel} to {@link TaurusBaseComponent.model}\n     *      and start invocation of Taurus NgRx Redux Component lifecycle hooks.\n     *\n     *      <b>Invocation order:</b>\n     *\n     *      1. {@link OnTaurusModelInit}\n     *      2. {@link OnTaurusModelInitialLoad} or {@link OnTaurusModelFirstLoad} - only one could be invoke,\n     *              where deprecated shouldn't be implemented anymore.\n     *      3. {@link OnTaurusModelLoad}\n     *      4. {@link OnTaurusModelChange} when status is {@link LOADED}\n     *      5. {@link OnTaurusModelError} or {@link OnTaurusModelFail} when status is {@link FAILED} - only one could be invoke,\n     *              where deprecated shouldn't be implemented anymore.\n     *\n     *      <p>\n     *          <br>\n     *          Override it if you want to change default behavior.\n     *      </p>\n     *\n     * @protected\n     */\n    protected bindModel(): void {\n        let isOnModelInitialLoadExecuted = false;\n\n        if (!TaurusBaseComponent._routeStateFactory) {\n            TaurusBaseComponent._routeStateFactory = new RouteStateFactory();\n        }\n\n        const routeState = TaurusBaseComponent._routeStateFactory.create(this.activatedRoute.snapshot, null);\n\n        this.componentService.init(this.uuid, routeState).subscribe((model) => {\n            this.model = model;\n\n            TaurusBaseComponent._executeTaurusComponentHook(this, 'onModelInit', model);\n        });\n\n        this._modelSubscription = this.componentService.getModel(this.uuid, routeState.routePathSegments).subscribe((model) => {\n            if (!isOnModelInitialLoadExecuted) {\n                isOnModelInitialLoadExecuted = true;\n                if (!TaurusBaseComponent._executeTaurusComponentHook(this, 'onModelInitialLoad', model)) {\n                    TaurusBaseComponent._executeTaurusComponentHook(this, 'onModelFirstLoad', model);\n                }\n            }\n\n            this.evaluateTaurusComponentLifecycleHooks(model);\n        });\n\n        this.subscriptions.push(this._modelSubscription);\n    }\n\n    /**\n     * ** Evaluates Taurus NgRx Redux Component lifecycle hooks\n     *      ({@link OnTaurusModelLoad} and {@link OnTaurusModelChange} and ({@link OnTaurusModelFail} or {@link OnTaurusModelError})).\n     *\n     *      - Override it if you want to change default behavior.\n     *\n     * @protected\n     */\n    protected evaluateTaurusComponentLifecycleHooks(model: ComponentModel): void {\n        TaurusBaseComponent._executeTaurusComponentHook(this, 'onModelLoad', model);\n\n        if (!this.isModelModified(model)) {\n            return;\n        }\n\n        const previousModel = this.model;\n\n        this.refreshModel(model);\n\n        if (model.status === FAILED) {\n            const previousErrorRecords: ErrorRecord[] =\n                previousModel instanceof ComponentModel ? previousModel.getComponentState().errors.records : [];\n            const distinctErrorRecordsFromPreviousCycle = model.getComponentState().errors.distinctErrorRecords(previousErrorRecords);\n\n            if (!TaurusBaseComponent._executeTaurusComponentHook(this, 'onModelError', model, distinctErrorRecordsFromPreviousCycle)) {\n                TaurusBaseComponent._executeTaurusComponentHook(this, 'onModelFail', model);\n            }\n        } else {\n            TaurusBaseComponent._executeTaurusComponentHook(this, 'onModelChange', model);\n        }\n\n        try {\n            this.normalizeModelState(model);\n        } catch (e) {\n            console.error(`Taurus NgRx Redux failed to normalize ComponentModel!`, e);\n        }\n    }\n\n    /**\n     * ** Refresh model field {@link TaurusBaseComponent.model} with new one,\n     *      and assigns previous model reference to field {@link ComponentModel.previousModel} in the new model,\n     *      to the max depth 3.\n     *\n     *      - All assignments are by reference.\n     *      - Override it if you want to change default behavior.\n     *      - <b>Be cautious about your changes and intents!</b> It could affect features thar depend on this method Impl.\n     *\n     * @protected\n     */\n    protected refreshModel(model: ComponentModel): void {\n        // purge component ErrorStore with data from ComponentModel ErrorStore\n        this.errors.purge(model.getComponentState().errors);\n\n        // assign current model as previous to the new one\n        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n        // @ts-ignore\n        model['previousModel'] = this.model; // eslint-disable-line @typescript-eslint/dot-notation\n\n        // clean previous models that exceed max depth 3\n        try {\n            let depthLevel = 1;\n            let previousModel = model.previousModel;\n\n            while (previousModel instanceof ComponentModel) {\n                if (++depthLevel <= 3) {\n                    previousModel = previousModel.previousModel;\n                } else {\n                    if (previousModel.previousModel) {\n                        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                        // @ts-ignore\n                        delete previousModel['previousModel']; // eslint-disable-line @typescript-eslint/dot-notation\n                    }\n\n                    break;\n                }\n            }\n        } catch (e) {\n            console.error('Failed to clean previous ComponentModel', e);\n        }\n\n        // assign model as current\n        this.model = model;\n    }\n\n    /**\n     * ** Normalize Model state, by default it clear Task field in {@link ComponentState.task} and update model in Taurus NgRx Redux Store.\n     *\n     *      - It is invoked only if {@link ComponentModel} is modified and after invocation of all Taurus components lifecycle hooks.\n     *      - Override it if you want to change default behavior.\n     *\n     * @protected\n     */\n    protected normalizeModelState(model: ComponentModel): void {\n        this.componentService.update(model.clearTask().getComponentState());\n    }\n\n    /**\n     * ** Set Model state in IDLE to stop listening on Events from Store.\n     *\n     *      - It is invoked by default before Component is destroyed, in Angular lifecycle hook {@link OnDestroy}.\n     *      - Override it if you want to change default behavior.\n     *\n     * @protected\n     */\n    protected setStateIdle(): void {\n        this.componentService.idle(this.model.prepareForDestroy().getComponentState());\n    }\n\n    /**\n     * ** Evaluation of this method acknowledge that new {@link ComponentModel} is modified or not.\n     *\n     *      - Comparison is evaluated between provided Model and assigned Component's Model {@link TaurusBaseComponent.model}.\n     *      - Default implementation use {@link ComponentModel.isModified} for deep Comparison of specific fields.\n     *      - Override it if you want to change default behavior.\n     *\n     * <p>\n     *      <b>Be cautious about your changes and intents!</b>\n     *      Examples what can wrong comparison do?\n     * </p>\n     *\n     *      1. Infinite lifecycle hooks invocation, where consequences are: performance deterioration or application freeze.\n     *      2. Prevent lifecycle hooks invocation, where consequences are: your Data never arrive to your Component fields.\n     *\n     * @protected\n     */\n    protected isModelModified(model: ComponentModel): boolean {\n        return model.isModified(this.model);\n    }\n\n    /**\n     * ** Initialize Route reuse strategy for Component in context of Taurus NgRx.\n     *      - Turns on listener for Activated params change and if detects mutation\n     *              sets current model in current RoutePathSegment to idle,\n     *              and bind for new model stream to the new RoutePathSegment.\n     *      - New feature this is completely backward compatible,\n     *              and it can be turned on with feature flag per Component Class.\n     *\n     * @protected\n     */\n    protected initializeRouteReuse(): void {\n        if (!this.enforceRouteReuse) {\n            return;\n        }\n\n        let previousParams: Params;\n\n        this.subscriptions.push(\n            this.activatedRoute.params.subscribe((params) => {\n                if (CollectionsUtil.isNil(previousParams)) {\n                    previousParams = params;\n\n                    return;\n                }\n\n                if (!CollectionsUtil.isEqual(previousParams, params)) {\n                    previousParams = params;\n\n                    const isRemoveSuccessful = this.removeSubscriptionRef(this._modelSubscription);\n                    if (isRemoveSuccessful) {\n                        // set current RoutePathSegment model state to idle\n                        this.setStateIdle();\n                        // bind new model stream to new RoutePathSegment\n                        this.bindModel();\n                    }\n                }\n            })\n        );\n    }\n\n    /**\n     * ** Invoke Taurus NgRx Redux Component lifecycle hook.\n     *\n     *      - Lifecycle hooks are invoked only if implementation they are found as implemented in subclasses.\n     *      - Returns true if method is found and executed, otherwise false.\n     *\n     * @private\n     */\n    // eslint-disable-next-line @typescript-eslint/member-ordering\n    private static _executeTaurusComponentHook(\n        instance: TaurusBaseComponent,\n        method: keyof TaurusComponentHooks,\n        model: ComponentModel,\n        ...additionalParams: any[]\n    ): boolean {\n        // eslint-disable-line @typescript-eslint/no-explicit-any\n\n        if (CollectionsUtil.isFunction(instance[method])) {\n            const currentTask = model.getTask();\n\n            try {\n                if (CollectionsUtil.isString(currentTask)) {\n                    // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n                    instance[method](model, currentTask, ...additionalParams);\n                } else {\n                    // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n                    instance[method](model, undefined, ...additionalParams);\n                }\n            } catch (e) {\n                console.error(`Taurus NgRx Redux failed to execute lifecycle hook \"${method}\"!`, e);\n            }\n\n            return true;\n        }\n\n        return false;\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './interfaces';\nexport * from './taurus-base.component';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './error-base';\nexport * from './redux-base';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './components';\nexport * from './model';\nexport * from './services';\nexport * from './state';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './index';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './index';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport { NavigationService } from './index';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Directive } from '@angular/core';\n\nimport { Actions } from '@ngrx/effects';\n\nimport { TaurusObject } from '../../../../common';\n\nimport { ComponentService } from '../../../component';\n\n/**\n * ** Base class for all NgRx Effects.\n */\n@Directive()\nexport abstract class TaurusBaseEffects extends TaurusObject {\n    /**\n     * @inheritDoc\n     */\n    static override readonly CLASS_NAME: string = 'TaurusBaseEffects';\n\n    /**\n     * @inheritDoc\n     */\n    static override readonly PUBLIC_NAME: string = 'Taurus-Base-Effects';\n\n    /**\n     * ** Constructor.\n     *\n     * @protected\n     */\n    protected constructor(\n        protected readonly actions$: Actions,\n        protected readonly componentService: ComponentService,\n        className?: string\n    ) {\n        super(className ?? TaurusBaseEffects.CLASS_NAME);\n    }\n\n    /**\n     * ** Implement this method and register all error codes that could be recorded from Class effects.\n     *\n     *      - Bound error codes to error-codes repository when keys are tasks name and value is all available error codes for that particular task.\n     *      - Implement in subclasses and invoke in Constructor to register Effects Error Codes.\n     *\n     * @protected\n     */\n    protected abstract registerEffectsErrorCodes(): void;\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './taurus-base.effects';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './actions';\nexport * from './effects/model';\nexport * from './state';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './index';\nexport * from './factory';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport { SystemEventHandler, SystemEventHandlerClass } from './decorator';\nexport { SystemEventDispatcher } from './dispatcher';\nexport { SystemEvent, SystemEventFilterExpression, SystemEventComparable } from './event';\n// export all core system events\nexport * from './event/models/event.codes';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/naming-convention */\n\nimport { Location } from '@angular/common';\n\nimport { SE_LOCATION_CHANGE, SE_NAVIGATE, SystemEventDispatcher } from '../system-events';\n\nexport interface StateManagerParamValue {\n    key: string;\n    value: string;\n    position: number;\n}\n\n/**\n * ** State Manager for Browser URL.\n *\n *   - Provides methods for easy appending/retrieving/removing of params and query params to the URL state.\n *   - Provides ability to serialize current state as URL href.\n */\nexport class URLStateManager {\n    /**\n     * ** Store value if URL Params State mutated since previous navigation.\n     */\n    public isParamsStateMutated = false;\n\n    /**\n     * ** Store value if URL QueryParams State mutated since previous navigation.\n     */\n    public isQueryParamsStateMutated = false;\n\n    private readonly params: Map<string, StateManagerParamValue>;\n    private readonly queryParams: Map<string, StateManagerParamValue>;\n    private readonly locationHref: string;\n\n    /**\n     * ** Constructor.\n     */\n    constructor(\n        public baseURL: string,\n        public urlLocation: Location\n    ) {\n        this.params = new Map<string, StateManagerParamValue>();\n        this.queryParams = new Map<string, StateManagerParamValue>();\n\n        this.locationHref = this.urlLocation.path();\n    }\n\n    /**\n     * ** Returns current Browser URL href.\n     */\n    get URL(): string {\n        if (this.baseURL) {\n            return `${this.baseURL}${this.getParamsToString()}${this.getQueryParamsToString()}`;\n        }\n\n        return null;\n    }\n\n    /**\n     * ** Replace current URL state to Browser URL.\n     */\n    replaceToUrl(): void {\n        const browserCurrUrl = window.location.href;\n\n        if (browserCurrUrl.endsWith(encodeURI(this.URL))) {\n            return;\n        }\n\n        this.isParamsStateMutated = false;\n\n        this.urlLocation.replaceState(this.URL);\n    }\n\n    /**\n     * ** Apply current URL state to Browser URL.\n     */\n    locationToURL(): void {\n        const browserCurrUrl = window.location.href;\n\n        if (browserCurrUrl.endsWith(encodeURI(this.URL))) {\n            return;\n        }\n\n        this.isParamsStateMutated = false;\n\n        this._notifyForLocationChange();\n\n        this.urlLocation.go(this.URL);\n    }\n\n    /**\n     * ** Navigate through Angular Router with set URL state.\n     */\n    navigateToUrl(): Promise<boolean> {\n        const browserCurrUrl = window.location.href;\n\n        if (browserCurrUrl.endsWith(encodeURI(this.URL))) {\n            return Promise.resolve(false);\n        }\n\n        this.isQueryParamsStateMutated = false;\n\n        return SystemEventDispatcher.send(\n            SE_NAVIGATE,\n            {\n                url: this.buildUrlWithParams(),\n                extras: {\n                    queryParams: this.getQueryParamsAsMap()\n                }\n            },\n            1\n        );\n    }\n\n    /**\n     * ** Set query param to URL state.\n     */\n    setQueryParam(key: string, value: string, position = 1): void {\n        this.isQueryParamsStateMutated = true;\n\n        if (value) {\n            this.queryParams.set(key, { key, value, position });\n        } else {\n            this.removeQueryParam(key);\n        }\n    }\n\n    /**\n     * ** Returns query param value for given key.\n     */\n    getQueryParam(key: string): string {\n        if (this.queryParams.has(key)) {\n            return this.queryParams.get(key).value;\n        }\n\n        return null;\n    }\n\n    /**\n     * ** Removes query param from URL state.\n     */\n    removeQueryParam(key: string): void {\n        if (this.queryParams.has(key)) {\n            this.isQueryParamsStateMutated = true;\n\n            this.queryParams.delete(key);\n        }\n    }\n\n    /**\n     * ** Clear stored queryParams.\n     */\n    clearQueryParams(): void {\n        this.queryParams.clear();\n    }\n\n    /**\n     * ** Set param to URL state.\n     */\n    setParam(key: string, value: string, position = 1): void {\n        this.isParamsStateMutated = true;\n\n        if (value) {\n            this.params.set(key, { key, value, position });\n        } else {\n            this.removeParam(key);\n        }\n    }\n\n    /**\n     * ** Returns param value for given key.\n     */\n    getParam(key: string): string {\n        if (this.params.has(key)) {\n            return this.params.get(key).value;\n        }\n\n        return null;\n    }\n\n    /**\n     * ** Removes query param from URL state.\n     */\n    removeParam(key: string): void {\n        if (this.params.has(key)) {\n            this.isParamsStateMutated = true;\n\n            this.params.delete(key);\n        }\n    }\n\n    /**\n     * ** Clear stored params.\n     */\n    clearParams(): void {\n        this.params.clear();\n    }\n\n    /**\n     * ** Returns serialized params in string.\n     */\n    getParamsToString(): string {\n        let paramString = '';\n\n        this.getSortedByPosition(this.params).forEach((p) => {\n            paramString += `/${p.value}`;\n        });\n\n        return paramString;\n    }\n\n    /**\n     * ** Returns serialized queryParams in string.\n     */\n    getQueryParamsToString(): string {\n        const sortedParams = this.getSortedByPosition(this.queryParams);\n\n        let paramString = '';\n\n        if (sortedParams.length > 0) {\n            paramString = `?${sortedParams[0].key}=${sortedParams[0].value}`;\n\n            for (let i = 1; i < sortedParams.length; i++) {\n                const p = sortedParams[i];\n                paramString += `&${p.key}=${p.value}`;\n            }\n        }\n\n        return paramString;\n    }\n\n    /**\n     * ** Returns query params in Map format.\n     */\n    getQueryParamsAsMap(): { [key: string]: string } {\n        const sortedParams = this.getSortedByPosition(this.queryParams);\n        const paramsMap = {};\n\n        for (const paramsPair of sortedParams) {\n            paramsMap[paramsPair.key] = paramsPair.value;\n        }\n\n        return paramsMap;\n    }\n\n    /**\n     * ** Returns params in Map format.\n     */\n    getParamsAsMap(): { [key: string]: string } {\n        const sortedParams = this.getSortedByPosition(this.params);\n        const paramsMap = {};\n\n        for (const paramsPair of sortedParams) {\n            paramsMap[paramsPair.key] = paramsPair.value;\n        }\n\n        return paramsMap;\n    }\n\n    /**\n     * ** Build url from base and provided params.\n     */\n    buildUrlWithParams(): string {\n        if (this.baseURL) {\n            return `${this.baseURL}${this.getParamsToString()}`;\n        }\n\n        return null;\n    }\n\n    /**\n     * ** Change Base url.\n     */\n    changeBaseUrl(baseUrl: string): void {\n        this.baseURL = baseUrl;\n    }\n\n    private getSortedByPosition(values: Map<string, StateManagerParamValue>): StateManagerParamValue[] {\n        return Array.from(values.entries())\n            .sort((p1, p2) => p1[1].position - p2[1].position)\n            .map((e) => e[1]);\n    }\n\n    private _notifyForLocationChange(): void {\n        const paramsMap = this.getParamsAsMap();\n        const paramsSerialized = this.buildUrlWithParams();\n        const queryParamsMap = this.getQueryParamsAsMap();\n        const queryParamsSerialized = this.getQueryParamsToString();\n\n        SystemEventDispatcher.post(SE_LOCATION_CHANGE, {\n            url: this.URL,\n            params: paramsMap ? paramsMap : {},\n            paramsSerialized: paramsSerialized ? paramsSerialized : '',\n            queryParams: queryParamsMap ? queryParamsMap : {},\n            queryParamsSerialized: queryParamsSerialized ? queryParamsSerialized.replace(/^\\?/, '') : ''\n        });\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './url-state.manager';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport { URLStateManager } from './index';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\n\nimport { CookieService } from 'ngx-cookie-service';\n\nimport { NavigationService } from './navigation';\n\n@NgModule({})\nexport class VdkSharedCoreModule {\n    /**\n     * ** Constructor.\n     */\n    constructor(@Optional() @SkipSelf() readonly vdkSharedCoreModule: VdkSharedCoreModule) {\n        if (vdkSharedCoreModule) {\n            throw new Error('VdkSharedCoreModule is already loaded. Import only once in root Module');\n        }\n    }\n\n    /**\n     * ** Provides VDKSharedCore and all Services related to VDK Shared Core.\n     *\n     *      - Should be executed once for entire project.\n     */\n    static forRoot(): ModuleWithProviders<VdkSharedCoreModule> {\n        return {\n            ngModule: VdkSharedCoreModule,\n            providers: [CookieService, NavigationService]\n        };\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Injectable } from '@angular/core';\nimport { RouterStateSnapshot } from '@angular/router';\n\nimport { RouterStateSerializer } from '@ngrx/router-store';\n\nimport { RouteState } from '../../model';\nimport { RouteStateFactory } from '../../factory';\n\n/**\n * ** Shared Router Serializer implements NgRx RouterStateSerializer.\n */\n@Injectable()\nexport class SharedRouterSerializer implements RouterStateSerializer<RouteState> {\n    private readonly _routeStateFactory: RouteStateFactory;\n\n    /**\n     * ** Constructor.\n     */\n    constructor() {\n        this._routeStateFactory = new RouteStateFactory();\n    }\n\n    /**\n     * @inheritDoc\n     */\n    serialize(routerState: RouterStateSnapshot): RouteState {\n        let routeSnapshot = routerState.root;\n\n        while (routeSnapshot.firstChild) {\n            routeSnapshot = routeSnapshot.firstChild;\n        }\n\n        return this._routeStateFactory.create(routeSnapshot, routerState.url);\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './router-serializer.service';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable arrow-body-style,prefer-arrow/prefer-arrow-functions */\n\nimport {\n    ROUTER_CANCEL,\n    ROUTER_ERROR,\n    ROUTER_NAVIGATION,\n    RouterCancelAction,\n    RouterErrorAction,\n    RouterNavigationAction\n} from '@ngrx/router-store';\n\nimport { RouterState, RouteState } from '../../model';\n\ntype AcceptedActions =\n    | RouterNavigationAction<RouteState>\n    | RouterErrorAction<RouterState, RouteState>\n    | RouterCancelAction<RouterState, RouteState>;\n\n/**\n * ** Reducer for Router Actions.\n */\nexport function routerReducer(state = RouterState.empty(), action: AcceptedActions = { type: null, payload: null }) {\n    const actionPayload = action.payload;\n\n    switch (action.type) {\n        case ROUTER_NAVIGATION:\n        case ROUTER_ERROR:\n        case ROUTER_CANCEL:\n            const newState = RouterState.of(actionPayload.routerState, actionPayload.event.id);\n            newState.appendPrevious(state);\n\n            return newState;\n        default:\n            return state;\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './router.reducer';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ActionReducerMap } from '@ngrx/store';\n\nimport { STORE_COMPONENTS, STORE_ROUTER, StoreState } from '../state';\n\nimport { routerReducer } from '../../router/state/reducers';\nimport { componentReducer } from '../../component/state';\n\n/**\n * ** Root reducers for Shared.\n */\nexport const SHARED_ROOT_REDUCERS: ActionReducerMap<StoreState> = {\n    [STORE_ROUTER]: routerReducer,\n    [STORE_COMPONENTS]: componentReducer\n};\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './shared-root-reducers.registry';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { RootStoreConfig } from '@ngrx/store';\nimport { StoreDevtoolsConfig } from '@ngrx/store-devtools';\n\n/**\n * ** Configuration for NgRx Store Devtools.\n */\nexport const NGRX_STORE_DEVTOOLS_CONFIG: StoreDevtoolsConfig = {\n    maxAge: 100,\n    serialize: true,\n    logOnly: false,\n    name: 'Taurus NgRx Store'\n};\n\n/**\n * ** Configuration for NgRx Store.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const NGRX_STORE_CONFIG: RootStoreConfig<any> = {\n    runtimeChecks: {\n        strictActionImmutability: true,\n        strictStateImmutability: true\n    }\n};\n\n/**\n * ** Config for Taurus impl of NgRx.\n */\nexport interface TaurusNgRxConfig {\n    /**\n     * ** StoreDevTools configuration replica.\n     * <p>see {@link https://ngrx.io/guide/store-devtools/config}</p>\n     */\n    storeDevToolsConfig?: StoreDevtoolsConfig;\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './ngrx-config.model';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { StoreModule } from '@ngrx/store';\nimport { StoreRouterConnectingModule } from '@ngrx/router-store';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreDevtoolsConfig, StoreDevtoolsModule } from '@ngrx/store-devtools';\n\nimport { RouterService, RouterServiceImpl } from '../../router';\nimport { SharedRouterSerializer } from '../../router/integration/ngrx';\n\nimport { ComponentService, ComponentServiceImpl } from '../../component';\n\nimport { SHARED_ROOT_REDUCERS } from '../reducers';\nimport { SHARED_ROOT_EFFECTS } from '../effects';\nimport { NGRX_STORE_CONFIG, NGRX_STORE_DEVTOOLS_CONFIG } from '../config';\nimport { STORE_ROUTER } from '../state';\n\n/**\n * ** VDK NgRx Redux module recommended for use in Development builds.\n */\n@NgModule({\n    imports: [\n        StoreModule.forRoot(SHARED_ROOT_REDUCERS, NGRX_STORE_CONFIG),\n        EffectsModule.forRoot(SHARED_ROOT_EFFECTS),\n        StoreDevtoolsModule.instrument(() => VdkSharedNgrxDevModule.storeDevToolsConfig),\n        StoreRouterConnectingModule.forRoot({\n            stateKey: STORE_ROUTER,\n            serializer: SharedRouterSerializer\n        })\n    ],\n    exports: [StoreModule, EffectsModule, StoreDevtoolsModule, StoreRouterConnectingModule]\n})\nexport class VdkSharedNgrxDevModule {\n    private static storeDevToolsConfig: StoreDevtoolsConfig = NGRX_STORE_DEVTOOLS_CONFIG;\n\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-explicit-any\n    static forRoot(config: StoreDevtoolsConfig = {} as any): ModuleWithProviders<VdkSharedNgrxDevModule> {\n        VdkSharedNgrxDevModule.storeDevToolsConfig = {\n            ...NGRX_STORE_DEVTOOLS_CONFIG,\n            ...config\n        };\n\n        return {\n            ngModule: VdkSharedNgrxDevModule,\n            providers: [\n                { provide: RouterService, useClass: RouterServiceImpl },\n                { provide: ComponentService, useClass: ComponentServiceImpl }\n            ]\n        };\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { StoreModule } from '@ngrx/store';\nimport { StoreRouterConnectingModule } from '@ngrx/router-store';\nimport { EffectsModule } from '@ngrx/effects';\n\nimport { RouterService, RouterServiceImpl } from '../../router';\nimport { SharedRouterSerializer } from '../../router/integration/ngrx';\n\nimport { ComponentService, ComponentServiceImpl } from '../../component';\n\nimport { SHARED_ROOT_REDUCERS } from '../reducers';\nimport { SHARED_ROOT_EFFECTS } from '../effects';\nimport { NGRX_STORE_CONFIG } from '../config';\nimport { STORE_ROUTER } from '../state';\n\n/**\n * ** VDK NgRx Redux module recommended for use in Production builds.\n */\n@NgModule({\n    imports: [\n        StoreModule.forRoot(SHARED_ROOT_REDUCERS, NGRX_STORE_CONFIG),\n        EffectsModule.forRoot(SHARED_ROOT_EFFECTS),\n        StoreRouterConnectingModule.forRoot({\n            stateKey: STORE_ROUTER,\n            serializer: SharedRouterSerializer\n        })\n    ],\n    exports: [StoreModule, EffectsModule, StoreRouterConnectingModule]\n})\nexport class VdkSharedNgrxProdModule {\n    static forRoot(): ModuleWithProviders<VdkSharedNgrxProdModule> {\n        return {\n            ngModule: VdkSharedNgrxProdModule,\n            providers: [\n                { provide: RouterService, useClass: RouterServiceImpl },\n                { provide: ComponentService, useClass: ComponentServiceImpl }\n            ]\n        };\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './vdk-shared-ngrx-dev.module';\nexport * from './vdk-shared-ngrx-prod.module';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/unified-signatures */\n\nimport { InjectionToken, ModuleWithProviders, NgModule, Type } from '@angular/core';\n\nimport { Action, ActionReducer, ActionReducerMap, StoreConfig, StoreFeatureModule, StoreModule } from '@ngrx/store';\nimport { EffectsFeatureModule, EffectsModule } from '@ngrx/effects';\n\nimport { TaurusNgRxConfig } from './config';\nimport { VdkSharedNgrxProdModule, VdkSharedNgrxDevModule } from './helper-modules';\n\n/**\n * ** Integration Class module for NgRx Redux.\n */\n@NgModule({})\nexport class VdkSharedNgRxModule {\n    /**\n     * ** Provides VdkSharedNgrxProdModule and all Services related to VDK Redux.\n     *\n     *      - Recommended for Prod (release) builds.\n     *      - Should be invoked at Root and only once for entire project.\n     *      - In FeaturesModules (lazy loaded Modules) invoke one of the methods <b>forFeatureEffects/forFeatureStore</b>.\n     */\n    static forRoot(): ModuleWithProviders<VdkSharedNgrxProdModule> {\n        return VdkSharedNgrxProdModule.forRoot();\n    }\n\n    /**\n     * ** Provides VdkSharedNgrxDevModule including StoreDevTools and all Services related to VDK Redux.\n     *\n     *      - Recommended for Dev (local) builds.\n     *      - Should be invoked at Root and only once for entire project.\n     *      - In FeaturesModules (lazy loaded Modules) invoke one of the methods <b>forFeatureEffects/forFeatureStore</b>.\n     */\n    static forRootWithDevtools(config: TaurusNgRxConfig = {}): ModuleWithProviders<VdkSharedNgrxDevModule> {\n        return VdkSharedNgrxDevModule.forRoot(config.storeDevToolsConfig);\n    }\n\n    /**\n     * ** Load Features Effects.\n     *\n     *      - Should be invoke in FeatureModules (lazy loaded Modules).\n     *      - It will register Effects for that Feature.\n     */\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    static forFeatureEffects(effects: Array<Type<any>>): ModuleWithProviders<EffectsFeatureModule> {\n        return EffectsModule.forFeature(effects);\n    }\n\n    /**\n     * ** Load Features Store reducers.\n     *\n     *      - Should be invoke in FeatureModules (lazy loaded Modules).\n     *      - It will extend Store and add reducers for that Feature.\n     */\n    static forFeatureStore<T, V extends Action = Action>(\n        featureName: string,\n        reducers: ActionReducerMap<T, V> | InjectionToken<ActionReducerMap<T, V>>,\n        config?: StoreConfig<T, V> | InjectionToken<StoreConfig<T, V>>\n    ): ModuleWithProviders<StoreFeatureModule>;\n    static forFeatureStore<T, V extends Action = Action>(\n        featureName: string,\n        reducer: ActionReducer<T, V> | InjectionToken<ActionReducer<T, V>>,\n        config?: StoreConfig<T, V> | InjectionToken<StoreConfig<T, V>>\n    ): ModuleWithProviders<StoreFeatureModule>;\n    static forFeatureStore<T, V extends Action = Action>(\n        featureName: string,\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        reducer: any,\n        config?: StoreConfig<T, V> | InjectionToken<StoreConfig<T, V>>\n    ): ModuleWithProviders<StoreFeatureModule> {\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n        return StoreModule.forFeature(featureName, reducer, config);\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './component/public-api';\nexport * from './error/public-api';\nexport * from './navigation/public-api';\nexport * from './ngrx/public-api';\nexport * from './router/public-api';\nexport * from './system-events/public-api';\nexport * from './url-state-manager/public-api';\n\n// export Core module\nexport * from './vdk-shared-core.module';\n\n// export NgRx modules\nexport * from './ngrx/vdk-shared-ngrx.module';\nexport * from './ngrx/helper-modules';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './features.model';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './index';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Type } from '@angular/core';\n\nimport { CollectionsUtil, Mutable } from '../../../utils';\n\nexport const ERROR_CODE_CONFIRMATION_FORCEFULLY_DESTROYED_COMPONENT = 'EC_CONFIRMATION_1000';\n\n/**\n * ** Confirmation Input Model.\n *\n *      - Model instance provided as input instructions for Confirmation Service, or to more specific to method {@link ConfirmationService.confirm}\n *      - Most of the fields are optional and Model Impl provides its own defaults.\n */\nexport interface ConfirmationInputModel extends SupportedButtonsModel, SupportedMessageModel {\n    /**\n     * ** Confirmation title.\n     *\n     *      - Service render provided content as innerHTML.\n     *      - HTML tags could be provided in string template.\n     */\n    title?: string;\n    /**\n     * ** Whether confirmation view to render close X button in top right corner.\n     */\n    closable?: boolean;\n    /**\n     * ** Whether confirmation view to render option for User to opt-out of showing confirmations with same context in the future.\n     */\n    optionDoNotShowFutureConfirmation?: boolean;\n}\n\n/**\n * ** Confirmation Input Model extension for the needs of {@link ConfirmationService}.\n *\n *      - private model used only in the service.\n */\nexport interface ConfirmationModelExtension {\n    /**\n     * ** Model UUID.\n     */\n    uuid: string;\n    /**\n     * ** Confirmation Handler.\n     */\n    handler: ConfirmationHandler;\n}\n\n/**\n * ** Supported Confirmation view Messages, providing one of the bellow options.\n *\n *      - it could be text provided with html tags inside\n *      - it could be Component class ref with optional messageCode\n */\nexport interface SupportedMessageModel {\n    /**\n     * ** Confirmation message.\n     *\n     *      - Service render provided content as innerHTML.\n     *      - HTML tags could be provided in string template.\n     */\n    message?: string;\n    /**\n     * ** Confirmation message component.\n     *\n     *      - Service render provided component in the same place where message text is rendered.\n     *      - Message Component takes precedence before message text. e.g. if both fields are provided, Service will render the Component.\n     */\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    messageComponent?: Type<any>;\n    /**\n     * ** Confirmation message code, that would be injected to Message component in initialization time\n     *      before first changeDetection in order to re-use same component for different messages.\n     */\n    messageCode?: string;\n}\n\n/**\n * ** Supported Confirmation View Buttons.\n */\nexport interface SupportedButtonsModel {\n    /**\n     * ** Model for Confirmation Cancel Button.\n     *\n     *      - Providing Cancel button model, means this button should be rendered.\n     */\n    cancelBtnModel?: Partial<ButtonModel>;\n    /**\n     * ** Model for Confirmation Confirm Button.\n     */\n    confirmBtnModel?: ButtonModel;\n}\n\n/**\n * ** Generic Button Model in Confirmation view.\n */\nexport interface ButtonModel {\n    /**\n     * ** Button text.\n     */\n    text: string;\n    /**\n     * ** Button icon shape.\n     */\n    iconShape?: string;\n    /**\n     * ** Button icon position.\n     */\n    iconPosition?: 'left' | 'right';\n    /**\n     * ** Button icon direction.\n     */\n    iconDirection?: 'up' | 'down' | 'left' | 'right';\n    /**\n     * ** Button icon size.\n     */\n    iconSize?: string | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';\n    /**\n     * ** Button icon solid.\n     */\n    iconSolid?: boolean;\n    /**\n     * ** Button icon inverse.\n     */\n    iconInverse?: boolean;\n    /**\n     * ** Button icon status.\n     */\n    iconStatus?: 'info' | 'success' | 'warning' | 'danger';\n    /**\n     * ** Button icon badge.\n     */\n    iconBadge?: 'info' | 'success' | 'warning' | 'danger';\n}\n\n/**\n * ** Confirmation Model implementation that leverage input model and model extension.\n */\nexport class ConfirmationModelImpl implements ConfirmationInputModel, ConfirmationModelExtension {\n    /**\n     * @inheritDoc\n     */\n    readonly uuid: string;\n    /**\n     * @inheritDoc\n     *\n     *      - By default it's empty.\n     */\n    readonly title?: string;\n    /**\n     * @inheritDoc\n     *\n     *      - By default it's empty.\n     */\n    readonly message?: string;\n    /**\n     * @inheritDoc\n     *\n     *      - By default is undefined.\n     */\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    readonly messageComponent?: Type<any>;\n    /**\n     * @inheritDoc\n     *\n     *      - By default it's empty.\n     */\n    messageCode?: string;\n    /**\n     * @inheritDoc\n     *\n     *      - By default its FALSE.\n     */\n    readonly closable?: boolean;\n    /**\n     * @inheritDoc\n     *\n     *      - By default its FALSE.\n     */\n    readonly optionDoNotShowFutureConfirmation?: boolean;\n    /**\n     * @inheritDoc\n     *\n     *      - By default its text is Cancel.\n     */\n    readonly cancelBtnModel?: Readonly<ButtonModel>;\n    /**\n     * @inheritDoc\n     *\n     *      - By default its text is Confirm.\n     */\n    readonly confirmBtnModel?: Readonly<ButtonModel>;\n    /**\n     * @inheritDoc\n     */\n    readonly handler: ConfirmationHandler;\n\n    /**\n     * ** Constructor.\n     */\n    constructor(model: ConfirmationInputModel) {\n        // assign provided model to model class fields\n        Object.assign(this, model ?? {});\n\n        // assign UUID\n        this.uuid = CollectionsUtil.generateUUID();\n\n        // initialize handler ref\n        if (CollectionsUtil.isNil(this.handler)) {\n            this.handler = {\n                confirm: null,\n                dismiss: null\n            };\n        }\n\n        // check if value exist, otherwise set to default FALSE\n        if (CollectionsUtil.isNil(this.closable)) {\n            this.closable = false;\n        }\n\n        // check if value exist, otherwise set to default FALSE\n        if (CollectionsUtil.isNil(this.optionDoNotShowFutureConfirmation)) {\n            this.optionDoNotShowFutureConfirmation = false;\n        }\n\n        // confirm button model\n        this._assignButtonModelDefaults('confirmBtnModel', 'Confirm');\n\n        // cancel button model\n        if (CollectionsUtil.isObjectNotNull(this.cancelBtnModel)) {\n            this._assignButtonModelDefaults('cancelBtnModel', 'Cancel');\n        } else {\n            this.cancelBtnModel = null;\n        }\n    }\n\n    private _assignButtonModelDefaults(modelKey: keyof SupportedButtonsModel, defaultText: string): void {\n        // when there is no model set default text only, and return flow to invoker\n        if (CollectionsUtil.isNil(this[modelKey])) {\n            (this[modelKey] as Mutable<ButtonModel>) = {\n                text: defaultText\n            };\n\n            return;\n        }\n\n        // if model exist but there is no text, set default one, and continue further\n        if (!CollectionsUtil.isStringWithContent(this[modelKey].text)) {\n            (this[modelKey] as Mutable<ButtonModel>).text = defaultText;\n        }\n\n        // if model exist check if there is no icon shape, and return flow to invoker\n        if (!this[modelKey].iconShape) {\n            (this[modelKey] as Mutable<ButtonModel>).iconShape = null;\n            (this[modelKey] as Mutable<ButtonModel>).iconPosition = null;\n\n            return;\n        }\n\n        // if model exist check if there is no position set or position is something unsupported and set default one to 'left'\n        if (!this[modelKey].iconPosition || (this[modelKey].iconPosition !== 'left' && this[modelKey].iconPosition !== 'right')) {\n            (this[modelKey] as Mutable<ButtonModel>).iconPosition = 'left';\n        }\n    }\n}\n\n/**\n * ** Confirmation Output Model.\n *\n *      - Returned to invoker after User confirmation.\n */\nexport interface ConfirmationOutputModel {\n    /**\n     * ** Field value of true, means User opt-out of showing confirmations with same context in the future.\n     */\n    doNotShowFutureConfirmation: boolean;\n}\n\n/**\n * ** Confirmation handler.\n */\nexport interface ConfirmationHandler {\n    /**\n     * ** Confirm method, which means User give confirmation.\n     */\n    confirm: (value: ConfirmationOutputModel) => void;\n    /**\n     * ** Dismiss (reject) method, which means User don't give confirmation.\n     */\n    dismiss: (reason?: string | Error) => void;\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Component, Input, ViewChild, ViewContainerRef } from '@angular/core';\n\n/**\n * ** Confirmation Container Component is created only once upon {@link ConfirmationService} initialization\n *      and is container for all contextually created ViewContainerRef instances for every single confirmation ask.\n *\n *      - It is created only once, and its populated field {@link ConfirmationContainerComponent.viewContainerRef}\n *              is stored as ViewContainerRef in {@link ConfirmationService} for lifetime of the service as singleton.\n */\n@Component({\n    selector: 'shared-confirmation-container',\n    templateUrl: './confirmation-container.component.html',\n    styleUrls: ['./confirmation-container.component.scss']\n})\nexport class ConfirmationContainerComponent {\n    /**\n     * ** ViewContainerRef reference that is used as point where {@link ConfirmationService} insert contextual {@link ConfirmationComponent}\n     *      one for every single confirmation ask when invokers call {@link ConfirmationService.confirm}.\n     *\n     *      - Reference is singleton, and it is retrieved only once upon {@link ConfirmationService} initialization.\n     */\n    @ViewChild('insertionPoint', { read: ViewContainerRef })\n    public readonly viewContainerRef: ViewContainerRef;\n\n    /**\n     * ** Input parameter that instructs Component to open/close modal (visualize/hide) confirmation view/s.\n     *\n     *      - State is managed from {@link ConfirmationService}\n     */\n    @Input() open = false;\n}\n","<!--\n   ~ Copyright 2023-2025 Broadcom\n   ~ SPDX-License-Identifier: Apache-2.0\n  -->\n\n<clr-modal\n    [(clrModalOpen)]=\"open\"\n    [clrModalClosable]=\"false\"\n    [clrModalStaticBackdrop]=\"false\"\n>\n    <div class=\"modal-body confirmation-container__body-container\">\n        <ng-template #insertionPoint></ng-template>\n    </div>\n</clr-modal>\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Component, Input, OnDestroy, ViewChild, ViewContainerRef } from '@angular/core';\n\nimport { ConfirmationModelImpl, ERROR_CODE_CONFIRMATION_FORCEFULLY_DESTROYED_COMPONENT } from '../../model/confirmation.model';\n\n/**\n * ** Confirmation Component that is created for every confirmation as in {@link ConfirmationService}.\n *\n *      - It is created multiple times, once for every single confirmation, and its field {@link ConfirmationComponent.model}\n *              is managed from {@link ConfirmationService}.\n */\n@Component({\n    selector: 'shared-confirmation',\n    templateUrl: './confirmation.component.html',\n    styleUrls: ['./confirmation.component.scss']\n})\nexport class ConfirmationComponent implements OnDestroy {\n    /**\n     * ** ViewContainerRef reference that is used as point where Message component could be inserted,\n     *      and that Component is provided from invoker.\n     *\n     *      - Reference is contextual and unique for every confirmation message.\n     */\n    @ViewChild('confirmationMessageComponent', { read: ViewContainerRef, static: true })\n    public readonly viewContainerRef: ViewContainerRef;\n\n    /**\n     * ** Model provided to component\n     *\n     *      - It instructs view rendering and behavior.\n     *      - Provided handler is invoked when User interact with Confirmation view, whether its confirm or cancel (dismiss).\n     */\n    @Input() model: ConfirmationModelImpl = {} as ConfirmationModelImpl;\n\n    /**\n     * ** Whether User opt-out from future confirmation with the same context.\n     *\n     *      - Only when model instructs such field to be rendered, otherwise it's by default FALSE.\n     */\n    doNotShowFutureConfirmation = false;\n\n    /**\n     * ** Flag that is set to TRUE when User interact with Confirmation view, whether it is Confirm or Dismiss.\n     * @private\n     */\n    private _componentInteracted = false;\n\n    /**\n     * ** User give confirmation, propagate model to invoker.\n     */\n    confirm($event: MouseEvent): void {\n        $event.preventDefault();\n\n        this._componentInteracted = true;\n\n        this.model.handler.confirm({\n            doNotShowFutureConfirmation: this.doNotShowFutureConfirmation\n        });\n    }\n\n    /**\n     * ** User cancel (dismiss) confirmation, propagate reason to invoker that it's on User behalf.\n     */\n    cancel($event: MouseEvent): void {\n        $event.preventDefault();\n\n        this._componentInteracted = true;\n\n        this.model.handler.dismiss('Confirmation canceled on User behalf');\n    }\n\n    /**\n     * @inheritDoc\n     */\n    ngOnDestroy(): void {\n        if (this._componentInteracted) {\n            return;\n        }\n\n        this.model.handler.dismiss(new Error(ERROR_CODE_CONFIRMATION_FORCEFULLY_DESTROYED_COMPONENT));\n    }\n}\n","<!--\n   ~ Copyright 2023-2025 Broadcom\n   ~ SPDX-License-Identifier: Apache-2.0\n  -->\n\n<div class=\"confirmation__header-container\">\n    <div class=\"confirmation__header-title-container\">\n        <h3 class=\"confirmation__header-title\" [innerHTML]=\"model.title\"></h3>\n    </div>\n    <button\n        *ngIf=\"model.closable\"\n        type=\"button\"\n        class=\"confirmation__header-close-btn\"\n        aria-label=\"Close\"\n        (click)=\"cancel($event)\"\n    >\n        <clr-icon shape=\"window-close\"></clr-icon>\n    </button>\n</div>\n\n<div class=\"confirmation__body-container\">\n    <p\n        *ngIf=\"model.message\"\n        class=\"confirmation__body-message\"\n        [innerHTML]=\"model.message\"\n    ></p>\n\n    <ng-template #confirmationMessageComponent></ng-template>\n\n    <form clrForm class=\"confirmation__body-form\">\n        <clr-checkbox-container *ngIf=\"model.optionDoNotShowFutureConfirmation\">\n            <clr-checkbox-wrapper class=\"confirmation__body-checkbox-wrapper\">\n                <input\n                    type=\"checkbox\"\n                    class=\"confirmation__body-checkbox-opt-out\"\n                    clrCheckbox\n                    value=\"false\"\n                    [ngModelOptions]=\"{ standalone: true }\"\n                    [(ngModel)]=\"doNotShowFutureConfirmation\"\n                />\n                <label>Do not show this message again.</label>\n            </clr-checkbox-wrapper>\n        </clr-checkbox-container>\n    </form>\n</div>\n\n<div class=\"confirmation__footer-container\">\n    <button\n        *ngIf=\"model.cancelBtnModel\"\n        type=\"button\"\n        class=\"btn btn-secondary confirmation__footer-cancel-btn\"\n        (click)=\"cancel($event)\"\n    >\n        <ng-container\n            *ngIf=\"model.cancelBtnModel && model.cancelBtnModel.iconPosition === 'left'\"\n        >\n            <ng-container\n                *ngTemplateOutlet=\"iconTemplate; context: {$implicit: model.cancelBtnModel}\"\n            ></ng-container>\n        </ng-container>\n        {{ model.cancelBtnModel?.text }}\n        <ng-container\n            *ngIf=\"model.cancelBtnModel && model.cancelBtnModel.iconPosition === 'right'\"\n        >\n            <ng-container\n                *ngTemplateOutlet=\"iconTemplate; context: {$implicit: model.cancelBtnModel}\"\n            ></ng-container>\n        </ng-container>\n    </button>\n\n    <button\n        type=\"button\"\n        class=\"btn btn-primary confirmation__footer-confirm-btn\"\n        (click)=\"confirm($event)\"\n    >\n        <ng-container\n            *ngIf=\"model.confirmBtnModel && model.confirmBtnModel.iconPosition === 'left'\"\n        >\n            <ng-container\n                *ngTemplateOutlet=\"iconTemplate; context: {$implicit: model.confirmBtnModel}\"\n            ></ng-container>\n        </ng-container>\n        {{ model.confirmBtnModel?.text }}\n        <ng-container\n            *ngIf=\"model.confirmBtnModel && model.confirmBtnModel.iconPosition === 'right'\"\n        >\n            <ng-container\n                *ngTemplateOutlet=\"iconTemplate; context: {$implicit: model.confirmBtnModel}\"\n            ></ng-container>\n        </ng-container>\n    </button>\n</div>\n\n<ng-template #iconTemplate let-model>\n    <clr-icon\n        class=\"confirmation__footer-confirm-btn-icon\"\n        [attr.shape]=\"model.iconShape\"\n        [attr.direction]=\"model.iconDirection ? model.iconDirection : null\"\n        [attr.size]=\"model.iconSize ? model.iconSize : null\"\n        [attr.solid]=\"model.iconSolid ? model.iconSolid : null\"\n        [attr.inverse]=\"model.iconInverse ? model.iconInverse : null\"\n        [attr.status]=\"model.iconStatus ? model.iconStatus : null\"\n        [attr.badge]=\"model.iconBadge ? model.iconBadge : null\"\n    ></clr-icon>\n</ng-template>\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './container/confirmation-container.component';\nexport * from './confirmation/confirmation.component';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Component, ViewChild, ViewContainerRef } from '@angular/core';\n\n/**\n * ** Dynamic Container Component is created only once upon {@link DynamicComponentsService} initialization\n *      and is container for all contextually created ViewContainerRef instances for every single UUID.\n *\n *      - It is created only once, and its populated field {@link DynamicContainerComponent.viewContainerRef}\n *              is stored as ViewContainerRef in {@link DynamicComponentsService} for lifetime of the service as singleton.\n */\n@Component({\n    selector: 'shared-dynamic-components-container',\n    templateUrl: './dynamic-container.component.html',\n    styleUrls: ['./dynamic-container.component.scss']\n})\nexport class DynamicContainerComponent {\n    /**\n     * ** ViewContainerRef reference that is used as point where {@link DynamicComponentsService} insert contextual {@link DynamicContextComponent}\n     *      one for every single UUID when invokers call {@link DynamicComponentsService.getUniqueViewContainerRef}.\n     *\n     *      - Reference is singleton, and it is retrieved only once upon {@link DynamicComponentsService} initialization.\n     */\n    @ViewChild('dynamicComponentsContainer', { read: ViewContainerRef, static: true })\n    public readonly viewContainerRef: ViewContainerRef;\n}\n","<!--\n   ~ Copyright 2023-2025 Broadcom\n   ~ SPDX-License-Identifier: Apache-2.0\n  -->\n\n<ng-template #dynamicComponentsContainer></ng-template>\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Component, ViewChild, ViewContainerRef } from '@angular/core';\n\n/**\n * ** Dynamic Context Component that is created for every UUID in {@link DynamicComponentsService}.\n *\n *      - It is created multiple times, once for every single UUID, and its populated field {@link DynamicContextComponent.viewContainerRef}\n *              is stored as ViewContainerRef in {@link DynamicComponentsService} that is returned to the invoker,\n *              to meet their needs for creating dynamic Components.\n */\n@Component({\n    selector: 'shared-dynamic-components-context',\n    templateUrl: './dynamic-context.component.html',\n    styleUrls: ['./dynamic-context.component.scss']\n})\nexport class DynamicContextComponent {\n    /**\n     * ** ViewContainerRef reference that is used as point where invokers of {@link DynamicComponentsService.getUniqueViewContainerRef}\n     *      retrieve reference of, and could insert their Components.\n     *\n     *      - Reference is totally contextual and unique for every single UUID and other invokers won't be bothered.\n     */\n    @ViewChild('dynamicComponentsContext', { read: ViewContainerRef, static: true })\n    public readonly viewContainerRef: ViewContainerRef;\n}\n","<!--\n   ~ Copyright 2023-2025 Broadcom\n   ~ SPDX-License-Identifier: Apache-2.0\n  -->\n\n<ng-template #dynamicComponentsContext></ng-template>\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './dynamic-container/dynamic-container.component';\nexport * from './dynamic-context/dynamic-context.component';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ComponentRef, Injectable, OnDestroy, ViewContainerRef, ViewRef } from '@angular/core';\n\nimport { CollectionsUtil } from '../../../utils';\n\nimport { TaurusObject } from '../../../common';\n\nimport { DynamicContainerComponent, DynamicContextComponent } from '../components';\n\n/**\n * ** Internal service model.\n */\ninterface AcquireViewContainerRefModel {\n    /**\n     * ** ViewContainerRef uuid.\n     *\n     *      - ViewContainerRefs could be reused by providing issued UUID.\n     *      - References are stored in the service Map where for every issued UUID key there is ViewContainerRef behind as value.\n     */\n    uuid: string;\n\n    /**\n     * ** Unique ViewContainerRef created on behalf of the invoker.\n     */\n    viewContainerRef: ViewContainerRef;\n\n    /**\n     * ** ViewRef to the unique ViewContainerRef created on behalf of the invoker.\n     */\n    hostView: ViewRef;\n}\n\n/**\n * ** Dynamic Components Service that generates ViewContainerRefs in context that could be used once or reused multiple times.\n */\n@Injectable()\nexport class DynamicComponentsService extends TaurusObject implements OnDestroy {\n    /**\n     * @inheritDoc\n     */\n    static override readonly CLASS_NAME: string = 'DynamicComponentsService';\n\n    /**\n     * ** Acquired ViewContainerRef with dependency injection during service initialization {@link DynamicComponentsService.initialize},\n     *      where Dynamic Container {@link DynamicContainerComponent} will be inserted.\n     * @private\n     */\n    private _appRootViewContainerRef: ViewContainerRef;\n\n    /**\n     * ** Dynamic Container reference {@link DynamicContainerComponent},\n     *      where all contextual Dynamic components {@link DynamicContextComponent} will be inserted.\n     * @private\n     */\n    private _dynamicContainerRef: ComponentRef<DynamicContainerComponent>;\n\n    /**\n     * ** Local store where all created Dynamic Context Components are stored under their corresponding issued UUID.\n     * @private\n     */\n    private readonly _uniqueComponentRefsStore: Map<string, ComponentRef<DynamicContextComponent>>;\n\n    /**\n     * ** Constructor.\n     */\n    constructor() {\n        super(DynamicComponentsService.CLASS_NAME);\n\n        this._uniqueComponentRefsStore = new Map<string, ComponentRef<DynamicContextComponent>>();\n    }\n\n    /**\n     * ** Create or retrieve unique ViewContainerRef together with ViewRef and bound UUID.\n     *\n     *      - if UUID is provided it will try to retrieve such reference if exists,\n     *              otherwise will create new ViewContainerRef which will be stored under provided UUID key.\n     *      - if no UUID provided will proceed to issue new UUID,\n     *              then will create new ViewContainerRef which will be stored under the issued UUID,\n     *              and both together with ViewRef will be returned to the invoker according provided return interface.\n     *      - if some error is thrown in process of ViewContainerRef acquisition,\n     *              service will return <code>null</code> instead of reference and that should be handled on invoker side.\n     *      - Currently there is no automatic garbage collection, but only manual destroy utilizing {@link this.destroyUniqueViewContainerRef},\n     *              so be careful not to acquire too many unique ViewContainerRef references,\n     *              because they could downgrade Application performance (they are created as Component instances in root of the application).\n     *      - Automatic GC is not currently developed because there is possibility to retrieve existing\n     *              contextual ViewContainerRef instances with issued UUIDs for re-usage,\n     *              or created instances refs could be kept into the invoker scope (context),\n     *              or instances refs could be destroyed using the provided method with issued UUIDs {@link this.destroyUniqueViewContainerRef}\n     */\n    getUniqueViewContainerRef(requestedUUID?: string): AcquireViewContainerRefModel {\n        const isContainerComponentSuccessfullyCreated = this._createDynamicContainerComponent();\n        if (!isContainerComponentSuccessfullyCreated) {\n            return null;\n        }\n\n        const isContainerComponentHealthy = this._validateDynamicContainerComponent();\n        if (!isContainerComponentHealthy) {\n            return null;\n        }\n\n        const uuid = DynamicComponentsService._getOrGenerateUUID(requestedUUID);\n\n        if (!this._uniqueComponentRefsStore.has(uuid)) {\n            const isContextComponentSuccessfullyCreated = this._createDynamicContextComponent(uuid);\n            if (!isContextComponentSuccessfullyCreated) {\n                return null;\n            }\n        }\n\n        const isContextComponentHealthy = this._validateDynamicContextComponent(uuid);\n        if (!isContextComponentHealthy) {\n            return null;\n        }\n\n        return {\n            uuid: uuid,\n            viewContainerRef: this._uniqueComponentRefsStore.get(uuid).instance.viewContainerRef,\n            hostView: this._uniqueComponentRefsStore.get(uuid).hostView\n        };\n    }\n\n    /**\n     * ** Destroy unique ViewContainerRef for provided UUID.\n     *\n     *      - If reference is found for provided UUID and is successfully destroyed will return true otherwise false.\n     *      - If reference for provided UUID is not found will return null.\n     */\n    destroyUniqueViewContainerRef(uuid: string): boolean {\n        if (!this._uniqueComponentRefsStore.has(uuid)) {\n            return null;\n        }\n\n        try {\n            this._uniqueComponentRefsStore.get(uuid).destroy();\n            this._uniqueComponentRefsStore.delete(uuid);\n\n            return true;\n        } catch (e) {\n            console.error(\n                `${DynamicComponentsService.CLASS_NAME}: Potential bug found, Failed to destroy unique ViewContainerRef instance in DynamicContextComponent`\n            );\n\n            return false;\n        }\n    }\n\n    /**\n     * ** Initialize service.\n     *\n     *      - Should be invoked only once.\n     *      - Ideal place for invoking is <code>AppComponent.ngOnInit()</code>.\n     */\n    initialize(viewContainerRef: ViewContainerRef): void {\n        this._appRootViewContainerRef = viewContainerRef;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    override ngOnDestroy(): void {\n        this._clearUniqueComponentsRef();\n        this._clearContextContainerRef();\n        this._clearAppRootViewContainerRef();\n\n        super.ngOnDestroy();\n    }\n\n    private _createDynamicContainerComponent(): boolean {\n        if (!this._appRootViewContainerRef) {\n            return false;\n        }\n\n        if (this._dynamicContainerRef && this._dynamicContainerRef.hostView && !this._dynamicContainerRef.hostView.destroyed) {\n            return true;\n        }\n\n        try {\n            this._dynamicContainerRef = this._appRootViewContainerRef.createComponent(DynamicContainerComponent);\n            this._dynamicContainerRef.changeDetectorRef.detectChanges();\n\n            return true;\n        } catch (e) {\n            console.error(\n                `${DynamicComponentsService.CLASS_NAME}: Potential bug found, Failed to create instance of DynamicContainerComponent`\n            );\n\n            return false;\n        }\n    }\n\n    private _validateDynamicContainerComponent(): boolean {\n        if (!(this._dynamicContainerRef && this._dynamicContainerRef.instance && this._dynamicContainerRef.instance.viewContainerRef)) {\n            console.error(\n                `${DynamicComponentsService.CLASS_NAME}: Potential bug found, Service is not initialized correctly ` +\n                    `or during initialization failed to create instance of DynamicContainerComponent`\n            );\n\n            return false;\n        }\n\n        return true;\n    }\n\n    private _createDynamicContextComponent(uuid: string): boolean {\n        try {\n            const uniqueDynamicComponentRef = this._dynamicContainerRef.instance.viewContainerRef.createComponent(DynamicContextComponent);\n            uniqueDynamicComponentRef.changeDetectorRef.detectChanges();\n            this._uniqueComponentRefsStore.set(uuid, uniqueDynamicComponentRef);\n\n            return true;\n        } catch (e) {\n            console.error(\n                `${DynamicComponentsService.CLASS_NAME}: Potential bug found, Failed to create instance of DynamicContextComponent`\n            );\n\n            return false;\n        }\n    }\n\n    private _validateDynamicContextComponent(uuid: string): boolean {\n        const retrievedComponentRef = this._uniqueComponentRefsStore.get(uuid);\n        if (!(retrievedComponentRef && retrievedComponentRef.instance && retrievedComponentRef.instance.viewContainerRef)) {\n            console.error(\n                `${DynamicComponentsService.CLASS_NAME}: Potential bug found, Failed to retrieve context instance of DynamicContextComponent`\n            );\n\n            return false;\n        }\n\n        return true;\n    }\n\n    private _clearUniqueComponentsRef(): void {\n        this._uniqueComponentRefsStore.forEach((componentRef, uuid) => {\n            try {\n                if (!componentRef.hostView.destroyed) {\n                    componentRef.destroy();\n                }\n            } catch (e) {\n                console.error(\n                    `${DynamicComponentsService.CLASS_NAME}: Potential bug found, failed to destroy unique component ref ${uuid}`\n                );\n            }\n        });\n\n        this._uniqueComponentRefsStore.clear();\n    }\n\n    private _clearContextContainerRef(): void {\n        try {\n            this._dynamicContainerRef.destroy();\n        } catch (e) {\n            console.error(`${DynamicComponentsService.CLASS_NAME}: Potential bug found, failed to destroy DynamicContextContainer ref`);\n        }\n\n        this._dynamicContainerRef = null;\n    }\n\n    private _clearAppRootViewContainerRef(): void {\n        try {\n            this._appRootViewContainerRef.clear();\n        } catch (e) {\n            console.error(`${DynamicComponentsService.CLASS_NAME}: Potential bug found, failed to destroy root ViewContainerRef`);\n        }\n\n        this._appRootViewContainerRef = null;\n    }\n\n    private static _getOrGenerateUUID(uuid: string): string {\n        return uuid ?? CollectionsUtil.generateUUID();\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './dynamic-components.service';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './services';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ComponentRef, Injectable, OnDestroy, ViewContainerRef, ViewRef } from '@angular/core';\n\nimport { CollectionsUtil } from '../../../utils';\n\nimport { TaurusObject } from '../../../common';\n\nimport { DynamicComponentsService } from '../../dynamic-components';\n\nimport { ConfirmationInputModel, ConfirmationOutputModel } from '../model';\nimport { ConfirmationModelImpl, ERROR_CODE_CONFIRMATION_FORCEFULLY_DESTROYED_COMPONENT } from '../model/confirmation.model';\n\nimport { ConfirmationComponent, ConfirmationContainerComponent } from '../components';\n\n/**\n * ** Confirmation Service that create confirmation view for every confirm request,\n *      and upon User action Confirm/Reject returns flow to the Invoker.\n *\n *      - Utilizes <code>Promise<ConfirmationOutputModel></code> for communication.\n */\n@Injectable()\nexport class ConfirmationService extends TaurusObject implements OnDestroy {\n    /**\n     * @inheritDoc\n     */\n    static override readonly CLASS_NAME: string = 'ConfirmationService';\n\n    /**\n     * ** Acquired ViewContainerRef from {@link DynamicComponentsService},\n     *      where Confirmation Container {@link ConfirmationContainerComponent} will be inserted.\n     * @private\n     */\n    private _acquiredViewContainerRef: { uuid: string; viewContainerRef: ViewContainerRef; hostView: ViewRef };\n\n    /**\n     * ** Confirmation Container reference {@link ConfirmationContainerComponent},\n     *      where all contextual Confirmation components {@link ConfirmationComponent} will be inserted.\n     * @private\n     */\n    private _confirmationContainerRef: ComponentRef<ConfirmationContainerComponent>;\n\n    /**\n     * ** Constructor.\n     */\n    constructor(private readonly dynamicComponentsService: DynamicComponentsService) {\n        super(ConfirmationService.CLASS_NAME);\n    }\n\n    /**\n     * ** Show confirm view according the provided model instructions, and return flow to the invoker upon User action Confirm/Reject.\n     *\n     *      - Utilizes <b><code>Promise<ConfirmationOutputModel></code></b> for communication.\n     *      - Sets some default values if model instructions are incomplete because most of them are optional.\n     */\n    confirm(model: ConfirmationInputModel): Promise<ConfirmationOutputModel> {\n        const modelImpl = new ConfirmationModelImpl(model);\n        const promise = new Promise<ConfirmationOutputModel>((resolve, reject) => {\n            modelImpl.handler.confirm = resolve;\n            modelImpl.handler.dismiss = reject;\n        });\n\n        const acquireViewContainerRefStatus = this._acquireDynamicViewContainerRef();\n        if (!acquireViewContainerRefStatus.status) {\n            return Promise.reject(new Error(acquireViewContainerRefStatus.error));\n        }\n\n        const createConfContainerComponentStatus = this._createConfirmationContainerComponent();\n        if (!createConfContainerComponentStatus.status) {\n            return Promise.reject(new Error(createConfContainerComponentStatus.error));\n        }\n\n        const createConfComponentStatus = this._createConfirmationComponent(modelImpl);\n        if (!createConfComponentStatus.status) {\n            return Promise.reject(new Error(createConfComponentStatus.error));\n        }\n\n        if (!this._confirmationContainerRef.instance.open) {\n            this._confirmationContainerRef.instance.open = true;\n            this._confirmationContainerRef.changeDetectorRef.detectChanges();\n        }\n\n        return promise\n            .catch((reason: ConfirmationOutputModel) => {\n                if (reason instanceof Error && reason.message === ERROR_CODE_CONFIRMATION_FORCEFULLY_DESTROYED_COMPONENT) {\n                    console.error(\n                        `${ConfirmationService.CLASS_NAME}: Potential bug found, views where destroyed externally from unknown source`\n                    );\n                }\n\n                throw reason;\n            })\n            .finally(() => {\n                this._clearSingleConfirmationResources(createConfComponentStatus as { componentRef: ComponentRef<ConfirmationComponent> });\n            });\n    }\n\n    /**\n     * ** Initialize service.\n     *\n     *      - Should be invoked only once.\n     *      - Ideal place for invoking is <code>AppComponent.ngOnInit()</code>.\n     */\n    initialize(): void {\n        // No-op.\n    }\n\n    /**\n     * @inheritDoc\n     */\n    override ngOnDestroy(): void {\n        this._clearResources();\n\n        super.ngOnDestroy();\n    }\n\n    private _acquireDynamicViewContainerRef(): { status: boolean; error?: string } {\n        if (this._isAcquiredViewContainerRefUnhealthy()) {\n            this._clearResources();\n        }\n\n        if (!this._acquiredViewContainerRef) {\n            const acquiredViewContainerRef = this.dynamicComponentsService.getUniqueViewContainerRef();\n            if (!acquiredViewContainerRef) {\n                const errorMessage = `${ConfirmationService.CLASS_NAME}: Potential bug found, cannot acquire unique ViewContainerRef where to insert confirmation Views`;\n                console.error(errorMessage);\n\n                return {\n                    status: false,\n                    error: errorMessage\n                };\n            }\n\n            this._acquiredViewContainerRef = acquiredViewContainerRef;\n        }\n\n        return {\n            status: true\n        };\n    }\n\n    private _createConfirmationContainerComponent(): { status: boolean; error?: string } {\n        if (!this._confirmationContainerRef) {\n            try {\n                this._confirmationContainerRef =\n                    this._acquiredViewContainerRef.viewContainerRef.createComponent(ConfirmationContainerComponent);\n                this._confirmationContainerRef.changeDetectorRef.detectChanges();\n            } catch (e) {\n                const errorMessage = `${ConfirmationService.CLASS_NAME}: Potential bug found, Failed to create instance of ConfirmationContainerComponent`;\n                console.error(errorMessage);\n\n                return {\n                    status: false,\n                    error: errorMessage\n                };\n            }\n        }\n\n        return {\n            status: true\n        };\n    }\n\n    private _createConfirmationComponent(model: ConfirmationModelImpl): {\n        status: boolean;\n        componentRef?: ComponentRef<ConfirmationComponent>;\n        error?: string;\n    } {\n        try {\n            const confirmationComponentRef =\n                this._confirmationContainerRef.instance.viewContainerRef.createComponent(ConfirmationComponent);\n\n            const assignMessageAndModelStatus = ConfirmationService._assignMessageAndModel(confirmationComponentRef, model);\n\n            if (!assignMessageAndModelStatus.status) {\n                console.error(assignMessageAndModelStatus.error);\n\n                return {\n                    status: false,\n                    error: assignMessageAndModelStatus.error\n                };\n            }\n\n            confirmationComponentRef.changeDetectorRef.detectChanges();\n\n            return {\n                status: true,\n                componentRef: confirmationComponentRef\n            };\n        } catch (e) {\n            const errorMessage = `${ConfirmationService.CLASS_NAME}: Potential bug found, Failed to create instance of ConfirmationComponent`;\n            console.error(errorMessage);\n\n            return {\n                status: false,\n                error: errorMessage\n            };\n        }\n    }\n\n    private _isAcquiredViewContainerRefUnhealthy(): boolean {\n        return (\n            this._acquiredViewContainerRef && this._acquiredViewContainerRef.hostView && this._acquiredViewContainerRef.hostView.destroyed\n        );\n    }\n\n    private _refineConfirmationContainerVisibility(forceHide = false): void {\n        if (this._confirmationContainerRef.instance.viewContainerRef.length === 0 || forceHide) {\n            this._confirmationContainerRef.instance.open = false;\n            this._confirmationContainerRef.changeDetectorRef.detectChanges();\n        }\n    }\n\n    private _clearSingleConfirmationResources(internalModelRef: { componentRef: ComponentRef<ConfirmationComponent> }): void {\n        try {\n            const foundViewRefIndex = this._confirmationContainerRef.instance.viewContainerRef.indexOf(\n                internalModelRef.componentRef.hostView\n            );\n            if (foundViewRefIndex !== -1) {\n                this._confirmationContainerRef.instance.viewContainerRef.remove(foundViewRefIndex);\n            }\n\n            if (!internalModelRef.componentRef.hostView.destroyed) {\n                internalModelRef.componentRef.destroy();\n            }\n\n            internalModelRef.componentRef = null;\n\n            this._refineConfirmationContainerVisibility();\n\n            return;\n        } catch (e) {\n            console.error(`${ConfirmationService.CLASS_NAME}: Potential bug found, failed to cleanup confirmation views after User action`);\n        }\n\n        try {\n            this._refineConfirmationContainerVisibility(true);\n        } catch (e) {\n            console.error(`${ConfirmationService.CLASS_NAME}: Potential bug found, failed to force container to hide`);\n        }\n    }\n\n    private _clearResources(): void {\n        try {\n            if (this._confirmationContainerRef?.hostView && !this._confirmationContainerRef.hostView.destroyed) {\n                this._confirmationContainerRef.destroy();\n            }\n        } catch (e) {\n            console.error(\n                `${ConfirmationService.CLASS_NAME}: Potential bug found, failed to destroy ConfirmationContainerComponent reference`\n            );\n        }\n\n        this._confirmationContainerRef = null;\n\n        if (!this._acquiredViewContainerRef) {\n            return;\n        }\n\n        try {\n            this._acquiredViewContainerRef.viewContainerRef.clear();\n        } catch (e) {\n            console.error(`${ConfirmationService.CLASS_NAME}: Potential bug found, failed to clear views in acquired ViewContainerRef`);\n        }\n\n        this.dynamicComponentsService.destroyUniqueViewContainerRef(this._acquiredViewContainerRef.uuid);\n\n        this._acquiredViewContainerRef = null;\n    }\n\n    private static _assignMessageAndModel(\n        confirmationComponentRef: ComponentRef<ConfirmationComponent>,\n        model: ConfirmationModelImpl\n    ): { status: boolean; error?: string } {\n        let isMessageComponentCreated = false;\n\n        if (CollectionsUtil.isDefined(model.messageComponent)) {\n            try {\n                const messageComponentRef = confirmationComponentRef.instance.viewContainerRef.createComponent(model.messageComponent);\n\n                isMessageComponentCreated = true;\n\n                if (CollectionsUtil.isStringWithContent(model.messageCode)) {\n                    // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n                    messageComponentRef.instance.messageCode = model.messageCode;\n                }\n            } catch (e) {\n                const errorMessage = `${ConfirmationService.CLASS_NAME}: Potential bug found, Failed to create Component instance for Confirmation Message`;\n                console.error(errorMessage);\n\n                return {\n                    status: false,\n                    error: errorMessage\n                };\n            }\n        }\n\n        confirmationComponentRef.instance.model = new ConfirmationModelImpl({\n            ...model,\n            messageComponent: undefined,\n            messageCode: undefined,\n            message: isMessageComponentCreated ? undefined : model.message\n        });\n\n        return {\n            status: true\n        };\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './confirmation.service';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { ClarityModule } from '@clr/angular';\n\nimport { ConfirmationComponent, ConfirmationContainerComponent } from './components';\n\n/**\n * ** Confirmation module\n *\n * @author gorankokin\n */\n@NgModule({\n    imports: [CommonModule, ClarityModule, FormsModule],\n    declarations: [ConfirmationContainerComponent, ConfirmationComponent],\n    schemas: [NO_ERRORS_SCHEMA]\n})\nexport class ConfirmationModule {}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport { ConfirmationInputModel, ConfirmationOutputModel } from './model';\nexport { ConfirmationService } from './services';\nexport { ConfirmationModule } from './confirmation.module';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n    imports: [CommonModule, RouterModule],\n    declarations: [],\n    exports: []\n})\nexport class DirectivesModule {}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './directives.module';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DynamicContainerComponent, DynamicContextComponent } from './components';\n\n/**\n * ** Dynamic Components module\n *\n * @author gorankokin\n */\n@NgModule({\n    imports: [CommonModule],\n    declarations: [DynamicContainerComponent, DynamicContextComponent],\n    schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class DynamicComponentsModule {}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport { DynamicComponentsService } from './services';\nexport { DynamicComponentsModule } from './dynamic-components.module';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable */\n\nexport const TRANSLATIONS = {\n    en: {\n        copied: 'Copied'\n    },\n    de: {\n        copied: 'Kopiert'\n    },\n    es: {\n        copied: 'Copiado'\n    },\n    fr: {\n        copied: 'Copié'\n    },\n    ja: {\n        copied: 'コピー'\n    },\n    ko: {\n        copied: '복사'\n    },\n    zh_TW: {\n        copied: '已复制'\n    },\n    zh_CN: {\n        copied: '已復制'\n    },\n    it: {\n        copied: 'Copiato'\n    },\n    nl: {\n        copied: 'Gekopieerd'\n    },\n    pt: {\n        copied: 'Copiado'\n    },\n    ru: {\n        copied: 'Скопировано'\n    }\n};\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable */\n\nimport { Injectable } from '@angular/core';\n\nconst DEFAULT_LANGUAGE = 'en';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class VdkSimpleTranslateService {\n    private language: string = DEFAULT_LANGUAGE;\n    private translations: any = {};\n\n    constructor() {\n        const w: any = window as any;\n        const language = w.navigator.language || w.navigator.userLanguage;\n        this.setLanguage(language);\n    }\n\n    loadTranslationsForComponent(componentKey: string, translationsToAdd: any) {\n        for (let language in translationsToAdd) {\n            if (!this.translations[language]) {\n                this.translations[language] = {};\n            }\n\n            for (let y in translationsToAdd[language]) {\n                let newKey = componentKey + '.' + y;\n                this.translations[language][newKey] = translationsToAdd[language][y];\n            }\n        }\n    }\n\n    setLanguage(language: string) {\n        language = language.replace('-', '_');\n\n        // check if different locale names are used for Simplified or Traditional Chinese\n        const chineseMapping = {\n            zh_Hans: 'zh_CN',\n            zh_Hant: 'zh_TW'\n        };\n        language = chineseMapping[language] || language;\n\n        // Special-case Chinese because we support both TW and CN locales\n        // Also if the locale is pt_PT(Portuguese Portugal) we should default to EN\n        // otherwise the 2 character language ID is what we want\n        const mainLocale = language.substring(0, 2);\n        const isChinese = language.length > 2 && mainLocale === 'zh';\n        const isNotSupportedPortuguese = language.length > 2 && mainLocale === 'pt' && language !== 'pt_BR';\n\n        if (isChinese || isNotSupportedPortuguese) {\n            this.language = language;\n        } else {\n            this.language = mainLocale;\n        }\n    }\n\n    getLanguage() {\n        return this.language;\n    }\n\n    translate(key: any, ...args: any[]) {\n        let translations = this.translations[this.language];\n\n        //if there are no translations of the user's language set translations to equal the default language\n        if (!translations) {\n            translations = this.translations[DEFAULT_LANGUAGE] ? this.translations[DEFAULT_LANGUAGE] : [];\n        }\n\n        //if there is a translation get that translation otherwise use the default language\n        let translation = undefined;\n        if (translations[key]) {\n            translation = translations[key];\n        } else if (this.translations[DEFAULT_LANGUAGE]) {\n            translation = this.translations[DEFAULT_LANGUAGE][key];\n        }\n\n        //if no translation is found in the user's language or in the default language then show an error string\n        if (!translation) {\n            translation = `!! Key ${key} not found !!`;\n        }\n\n        return this.format(translation, ...args);\n    }\n\n    private format(format: string, ...args: string[]) {\n        return format.replace(/{(\\d+)}/g, function (match, number) {\n            return typeof args[number] != 'undefined' ? args[number] : match;\n        });\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable */\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\nimport { VdkSimpleTranslateService } from './simple-translate.service';\n\n@Pipe({\n    name: 'simpleTranslate',\n    pure: false\n})\nexport class VdkSimpleTranslatePipe implements PipeTransform {\n    constructor(private simpleTranslate: VdkSimpleTranslateService) {}\n\n    transform(text: string, ...args: any[]) {\n        return this.simpleTranslate.translate(text, ...args);\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { VdkSimpleTranslateService } from './simple-translate.service';\nimport { VdkSimpleTranslatePipe } from './simple-translate.pipe';\n\n@NgModule({\n    declarations: [VdkSimpleTranslatePipe],\n    exports: [VdkSimpleTranslatePipe]\n})\nexport class VdkSimpleTranslateModule {\n    static forRoot(): ModuleWithProviders<VdkSimpleTranslateModule> {\n        return {\n            ngModule: VdkSimpleTranslateModule,\n            providers: [VdkSimpleTranslateService]\n        };\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './simple-translate.module';\nexport * from './simple-translate.service';\nexport * from './simple-translate.pipe';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './simple-translate-service/index';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable */\n\nimport { ElementRef, HostBinding, Output, EventEmitter, Component, OnInit, Input, ViewChild } from '@angular/core';\nimport { VdkSimpleTranslateService } from '../../ngx-utils';\n\nimport { TRANSLATIONS } from './copy-to-clipboard-button.l10n';\n\nconst SHOW_CHECKBOX_TIMEOUT = 1500;\n\n@Component({\n    selector: 'vdk-copy-to-clipboard-button',\n    templateUrl: './copy-to-clipboard-button.component.html',\n    styleUrls: ['./copy-to-clipboard-button.component.scss']\n})\nexport class VdkCopyToClipboardButtonComponent implements OnInit {\n    @ViewChild('area', { read: ElementRef, static: false }) area: ElementRef;\n\n    @HostBinding('class') @Input('class') classList: string = '';\n\n    @Input() value: string;\n    @Input() ariaLabel: string = '';\n    @Input() copyAlert: string;\n    @Input() size = 16;\n    @Input() tooltip = '';\n    @Input() btnLabel = ''; // if no label specified, show the normal copy icon\n    @Input() btnClasses = ['btn-outline']; // if no label specified, show the normal copy icon\n    @Input() disabled: boolean = false;\n    @Input() tooltipDirection = 'top-left';\n\n    @Output() copyClick = new EventEmitter<null>();\n\n    private firstLoad = true; // show correct icon first\n\n    btnClassesToApply: string;\n    bounds: string;\n    hasProjectedContent: boolean = false;\n    isSafari: boolean = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n    copied: boolean = false;\n\n    constructor(\n        private el: ElementRef,\n        public translateService: VdkSimpleTranslateService\n    ) {\n        this.translateService.loadTranslationsForComponent('copy-to-clipboard-button', TRANSLATIONS);\n    }\n\n    ngOnInit() {\n        this.bounds = this.size + 6 + 'px';\n\n        this.hasProjectedContent = this.el.nativeElement.innerText.trim();\n\n        this.calculateClassesToApply();\n        this.copyAlert = this.copyAlert || this.translateService.translate('copy-to-clipboard-button.copied');\n    }\n\n    calculateClassesToApply() {\n        let classes: Array<string> = [];\n\n        if (!this.btnLabel.length) {\n            classes.push('icon-btn');\n        }\n\n        if (this.btnLabel.length) {\n            classes = classes.concat(this.btnClasses);\n        }\n\n        if (this.disabled) {\n            classes.push('disabled');\n        }\n\n        this.btnClassesToApply = classes.join(' ') + ' ' + this.classList;\n    }\n\n    ngOnChanges() {\n        this.calculateClassesToApply();\n    }\n\n    copyToClipboard(val: string) {\n        let myWindow: any = window;\n\n        let onCopy = (e: ClipboardEvent) => {\n            e.preventDefault();\n\n            if (e.clipboardData) {\n                e.clipboardData.setData('text/plain', val);\n            } else if (myWindow.clipboardData) {\n                myWindow.clipboardData.setData('Text', val);\n            }\n\n            myWindow.removeEventListener('copy', onCopy);\n        };\n\n        if (this.isSafari) {\n            this.area.nativeElement.value = val;\n            this.area.nativeElement.select();\n            navigator.clipboard?.writeText(val);\n        }\n\n        myWindow.addEventListener('copy', onCopy);\n\n        if (myWindow.clipboardData && myWindow.clipboardData.setData) {\n            myWindow.clipboardData.setData('Text', val);\n        } else {\n            document.execCommand('copy');\n        }\n    }\n\n    doCopy() {\n        this.copyToClipboard(this.value);\n        this.copyClick.emit();\n        this.firstLoad = false;\n        this.copied = true;\n        setTimeout(() => {\n            this.copied = false;\n        }, SHOW_CHECKBOX_TIMEOUT);\n    }\n}\n","<!--\n   ~ Copyright 2023-2025 Broadcom\n   ~ SPDX-License-Identifier: Apache-2.0\n  -->\n\n<span [ngClass]=\"{'copy-button': !btnLabel?.length && !hasProjectedContent}\">\n    <clr-tooltip>\n        <button\n            type=\"button\"\n            class=\"btn\"\n            [ngClass]=\"btnClassesToApply\"\n            [attr.aria-label]=\"ariaLabel\"\n            [disabled]=\"disabled\"\n            (click)=\"!disabled && doCopy()\"\n            clrTooltipTrigger\n            [ngStyle]=\"!btnLabel?.length && !hasProjectedContent && {'line-height': bounds, 'min-width': bounds, 'height': bounds}\"\n        >\n            <div\n                class=\"anim-object\"\n                [class.flip-horizontal-reverse]=\"!copied\"\n                [class.flip-horizontal-bottom]=\"copied\"\n                [ngStyle]=\"!btnLabel?.length && !hasProjectedContent && {'width': bounds, 'height': bounds}\"\n            >\n                <div class=\"front face face-label\">\n                    <cds-icon\n                        shape=\"copy-to-clipboard\"\n                        [attr.size]=\"size\"\n                    ></cds-icon>\n                    <ng-content></ng-content>\n                    <span *ngIf=\"btnLabel?.length\"> {{btnLabel}} </span>\n                </div>\n                <div class=\"back face face-label\">\n                    <cds-icon shape=\"check\" [attr.size]=\"size\"></cds-icon>\n                </div>\n            </div>\n        </button>\n\n        <clr-tooltip-content\n            [clrPosition]=\"tooltipDirection\"\n            clrSize=\"md\"\n            *clrIfOpen\n            [ngClass]=\"{'hide-tooltip': !tooltip?.length}\"\n        >\n            {{tooltip}}\n        </clr-tooltip-content>\n    </clr-tooltip>\n</span>\n\n<span *ngIf=\"copied\" role=\"alert\" aria-live=\"assertive\" class=\"clr-sr-only\">\n    {{copyAlert}}\n</span>\n\n<textarea\n    #area\n    *ngIf=\"isSafari\"\n    contenteditable=\"true\"\n    [hidden]=\"true\"\n></textarea>\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable */\n\nimport { Type } from '@angular/core';\n\nimport { VdkCopyToClipboardButtonComponent } from './copy-to-clipboard-button.component';\n\nexport * from './copy-to-clipboard-button.component';\n\nexport const COPY_TO_CLIPBPOARD_BUTTON_DIRECTIVES: Type<any>[] = [VdkCopyToClipboardButtonComponent];\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable */\n\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\n\n@Component({\n    selector: 'vdk-form-section',\n    styleUrls: ['form-section.component.scss'],\n    templateUrl: 'form-section.component.html',\n    animations: [\n        trigger('customFormState', [\n            state(\n                'edit',\n                style({\n                    opacity: 1,\n                    width: '3px',\n                    'margin-right': '24px'\n                })\n            ),\n            state(\n                'normal',\n                style({\n                    opacity: 0,\n                    width: '0px',\n                    'margin-right': '0px'\n                })\n            ),\n            transition('normal => edit', [animate('300ms ease-in-out')]),\n            transition('edit => normal', [animate('100ms ease-in-out')])\n        ]),\n        trigger('footerState', [\n            transition(':enter', [\n                style({ opacity: 0, height: '0' }),\n                animate('0.1s 0.2s ease-in-out', style({ opacity: 1, height: '*' }))\n            ]),\n            transition(':leave', [animate('0.1s', style({ opacity: 0, height: '0' }))])\n        ])\n    ]\n})\nexport class VdkFormSectionComponent {\n    @Input()\n    focused: boolean = false;\n\n    @Output()\n    animationDone = new EventEmitter<void>();\n\n    getFormState() {\n        return this.focused ? 'edit' : 'normal';\n    }\n\n    emitAnimationDone() {\n        this.animationDone.emit();\n    }\n}\n","<!--\n   ~ Copyright 2023-2025 Broadcom\n   ~ SPDX-License-Identifier: Apache-2.0\n  -->\n\n<!-- eslint-disable -->\n\n<div class=\"vdk-form-container\">\n    <div\n        [@customFormState]=\"getFormState()\"\n        (@customFormState.done)=\"emitAnimationDone()\"\n        class=\"vdk-vertical-line\"\n    ></div>\n    <div class=\"vdk-form-content\">\n        <div class=\"form-header\">\n            <ng-content select=\".form-section-header\"></ng-content>\n        </div>\n        <ng-content select=\".form-section-content\"></ng-content>\n        <div @footerState *ngIf=\"focused\">\n            <ng-content select=\".form-section-footer\"></ng-content>\n        </div>\n    </div>\n</div>\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable */\n\nimport { Type } from '@angular/core';\n\nimport { VdkFormSectionComponent } from './form-section.component';\n\nexport * from './form-section.component';\n\nexport const FORM_SECTION_DIRECTIVES: Type<any>[] = [VdkFormSectionComponent];\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable */\n\nimport {\n    Component,\n    Output,\n    EventEmitter,\n    Input,\n    Host,\n    Optional,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    ViewChild,\n    ElementRef\n} from '@angular/core';\nimport { FormGroupDirective } from '@angular/forms';\nimport { ClrLoadingState } from '@clr/angular';\n\nexport enum FORM_STATE {\n    VIEW,\n    CAN_EDIT,\n    EDIT,\n    ERROR,\n    SUBMIT\n}\nexport class VdkFormState {\n    state: FORM_STATE;\n\n    /**\n     * Optional. The section with this name identifier will be excluded from the state change.\n     */\n    emittingSection: string;\n\n    /**\n     * Optional.\n     * All the sections in the array will change its state.\n     * All the others will be excluded if this array is not empty.\n     */\n    sectionsToInclude: string[];\n\n    constructor(_state: FORM_STATE, _sectionsToInclude?: string[], _emittingSection?: string) {\n        this.state = _state;\n        this.sectionsToInclude = _sectionsToInclude ? _sectionsToInclude : [];\n        this.emittingSection = _emittingSection;\n    }\n}\n\n@Component({\n    selector: 'vdk-form-section-container',\n    templateUrl: './form-section-container.component.html',\n    styleUrls: ['form-section-container.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class VdkFormSectionContainerComponent {\n    FORM_STATE = FORM_STATE; //used in the template\n    _sectionState: FORM_STATE = FORM_STATE.CAN_EDIT;\n    ClrLoadingState = ClrLoadingState;\n    stopInitialFocus = true;\n\n    @Input() canEditSection = true; //set to false if the section is readonly\n    @Input() isSubmitEnabled: boolean; //controls the Submit(Save) button state\n    @Input() sectionName: string; //unique section identifier\n    @Input() editBtn = 'Edit'; //Edit button text\n    @Input() cancelBtn = 'Cancel'; //Cancel button text\n    @Input() saveBtn = 'Save'; //Save button text\n    @Input() editBtnAriaLabel = 'Edit'; //Edit button text\n    @Input() cancelBtnAriaLabel = 'Cancel'; //Cancel button text\n    @Input() saveBtnAriaLabel = 'Save'; //Save button text\n\n    @Input('formState') set formState(_formState: VdkFormState) {\n        if (!_formState) {\n            return;\n        }\n\n        if (\n            (_formState.emittingSection && _formState.emittingSection !== this.sectionName) ||\n            (!_formState.emittingSection && _formState.sectionsToInclude.length === 0) ||\n            _formState.sectionsToInclude.some((name) => name === this.sectionName)\n        ) {\n            //on ERROR set EDIT state only on submitted section\n            //to the rest of sections restore CAN_EDIT state\n            if (_formState.state === FORM_STATE.ERROR) {\n                if (this._sectionState === FORM_STATE.SUBMIT) {\n                    this._sectionState = FORM_STATE.EDIT;\n                    //put it in a microtask(make it asynchronous) to not violate detection run\n                    //and avoid error for Expression changed after check\n                    Promise.resolve(null).then(() => {\n                        if (this.cspForm) {\n                            this.cspForm.form.enable();\n                        } else {\n                            this.enableForm.emit();\n                        }\n                    });\n                } else {\n                    this._sectionState = FORM_STATE.CAN_EDIT;\n                }\n            } else {\n                this.changeSectionState(_formState.state);\n            }\n        }\n    }\n\n    @Output() formStateChange = new EventEmitter();\n    @Output() sectionStateChange = new EventEmitter();\n\n    //Events that are used when no formGroup is found in parent component\n    @Output() submitForm = new EventEmitter();\n    @Output() disableForm = new EventEmitter();\n    @Output() enableForm = new EventEmitter();\n\n    @ViewChild('editButton') editButtonEl: ElementRef;\n\n    constructor(\n        @Optional() @Host() private cspForm: FormGroupDirective,\n        private cdr: ChangeDetectorRef\n    ) {}\n\n    showEditBtn() {\n        return this._sectionState === FORM_STATE.CAN_EDIT && this.canEditSection;\n    }\n\n    showSaveBtn() {\n        return this._sectionState === FORM_STATE.EDIT;\n    }\n\n    clickEdit() {\n        this.formStateChange.emit(new VdkFormState(FORM_STATE.CAN_EDIT, [], this.sectionName));\n        if (this.cspForm) {\n            this.cspForm.form.enable();\n        } else {\n            this.enableForm.emit();\n        }\n        this.changeSectionState(FORM_STATE.EDIT);\n    }\n\n    clickCancel() {\n        this.changeSectionState(FORM_STATE.CAN_EDIT);\n    }\n\n    // @ts-ignore\n    clickSave(): boolean {\n        this.formStateChange.emit(new VdkFormState(FORM_STATE.VIEW, [], this.sectionName));\n        this.changeSectionState(FORM_STATE.SUBMIT);\n        if (this.cspForm) {\n            this.cspForm.form.disable();\n            this.cspForm.onSubmit(this.cspForm.value);\n            this.cspForm.form.markAsPristine();\n            // cancel submitting the form since cspForm.onSubmit has been called above.\n            // solves a specific issue in Firefox where onSubmit was called twice.\n            return false;\n        } else {\n            this.disableForm.emit();\n            this.submitForm.emit();\n        }\n    }\n\n    changeSectionState(_sectionState: FORM_STATE) {\n        if (_sectionState !== this._sectionState) {\n            this.sectionStateChange.emit(new VdkFormState(_sectionState, [], this.sectionName));\n            this._sectionState = _sectionState;\n        }\n    }\n\n    focusEdit() {\n        if (this.editButtonEl && this._sectionState === FORM_STATE.CAN_EDIT && !this.stopInitialFocus) {\n            this.editButtonEl.nativeElement.focus();\n        }\n        if (this.stopInitialFocus) {\n            this.stopInitialFocus = false;\n        }\n    }\n}\n","<!--\n   ~ Copyright 2023-2025 Broadcom\n   ~ SPDX-License-Identifier: Apache-2.0\n  -->\n\n<!-- eslint-disable -->\n\n<vdk-form-section\n    [focused]=\"_sectionState === FORM_STATE.EDIT || _sectionState === FORM_STATE.SUBMIT\"\n    (animationDone)=\"focusEdit()\"\n>\n    <div class=\"form-section-header\">\n        <ng-content select=\".section-title\"> </ng-content>\n\n        <button\n            *ngIf=\"showEditBtn()\"\n            class=\"btn btn-link btn-sm csp-edit-button\"\n            type=\"button\"\n            [attr.aria-label]=\"editBtnAriaLabel\"\n            #editButton\n            (click)=\"clickEdit()\"\n        >\n            {{editBtn}}\n        </button>\n    </div>\n\n    <div\n        class=\"form-section-content\"\n        *ngIf=\"_sectionState === FORM_STATE.CAN_EDIT || _sectionState === FORM_STATE.VIEW\"\n    >\n        <ng-content select=\".form-section-readonly\"> </ng-content>\n    </div>\n\n    <div\n        class=\"form-section-content\"\n        *ngIf=\"this._sectionState === FORM_STATE.EDIT || this._sectionState === FORM_STATE.SUBMIT\"\n    >\n        <ng-content select=\".form-section-edit\"> </ng-content>\n    </div>\n\n    <div class=\"form-section-footer\">\n        <button\n            (click)=\"clickSave()\"\n            type=\"submit\"\n            [attr.aria-label]=\"saveBtnAriaLabel\"\n            class=\"btn btn-sm btn-primary csp-save-button\"\n            [disabled]=\"!isSubmitEnabled || _sectionState === FORM_STATE.SUBMIT \"\n            [clrLoading]=\"_sectionState === FORM_STATE.SUBMIT ? ClrLoadingState.LOADING : ClrLoadingState.DEFAULT\"\n        >\n            <span *ngIf=\"showSaveBtn()\">{{saveBtn}}</span>\n        </button>\n        <button\n            class=\"btn btn-sm btn-link csp-cancel-button\"\n            type=\"button\"\n            [attr.aria-label]=\"cancelBtnAriaLabel\"\n            (click)=\"clickCancel()\"\n            [disabled]=\"_sectionState === FORM_STATE.SUBMIT\"\n        >\n            <span>{{cancelBtn}}</span>\n        </button>\n    </div>\n</vdk-form-section>\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable */\n\nimport { Type } from '@angular/core';\n\nimport { VdkFormSectionContainerComponent } from './form-section-container.component';\n\nexport * from './form-section-container.component';\n\nexport const FORM_SECTION_CONTAINER_DIRECTIVES: Type<any>[] = [VdkFormSectionContainerComponent];\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable */\n\nimport { Component, Input } from '@angular/core';\n\n@Component({\n    selector: 'vdk-empty-state-placeholder',\n    templateUrl: './empty-state-placeholder.component.html',\n    styleUrls: ['./empty-state-placeholder.component.scss']\n})\nexport class VdkEmptyStatePlaceholderComponent {\n    @Input('title') title: string;\n    @Input() icon: string;\n    @Input() description: string;\n    @Input() headingLevel = 2;\n}\n","<!--\n   ~ Copyright 2023-2025 Broadcom\n   ~ SPDX-License-Identifier: Apache-2.0\n  -->\n\n<cds-icon *ngIf=\"icon\" [attr.shape]=\"icon\" size=\"64\"></cds-icon>\n\n<ng-content select=\"img\"></ng-content>\n<ng-content select=\"ng-lottie\"></ng-content>\n\n<div\n    [attr.aria-level]=\"headingLevel\"\n    class=\"empty-placeholder-heading\"\n    role=\"heading\"\n>\n    {{title}}\n</div>\n\n<div *ngIf=\"description\" class=\"empty-placeholder-description\">\n    {{description}}\n</div>\n\n<ng-content select=\"button\"></ng-content>\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { VdkEmptyStatePlaceholderComponent } from './empty-state-placeholder.component';\n\n@NgModule({\n    imports: [CommonModule],\n    declarations: [VdkEmptyStatePlaceholderComponent],\n    exports: [VdkEmptyStatePlaceholderComponent],\n    schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class VdkEmptyStatePlaceholderModule {}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './empty-state-placeholder.component';\nexport * from './empty-state-placeholder.module';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport enum VmwToastType {\n    SUCCESS = 'success',\n    FAILURE = 'failure',\n    INFO = 'info',\n    WARN = 'warning'\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable */\n\nexport const TRANSLATIONS = {\n    en: {\n        'dismiss-notification': 'Dismiss notification',\n        'success-icon': 'Success Icon',\n        'info-icon': 'Information Icon',\n        'failure-icon': 'Failure Icon'\n    },\n    es: {\n        'dismiss-notification': 'Descartar notificación',\n        'success-icon': 'Icono de éxito',\n        'failure-icon': 'Icono de error',\n        'info-icon': 'Icono de información'\n    },\n    de: {\n        'dismiss-notification': 'Benachrichtigung verwerfen',\n        'success-icon': 'Symbol „Erfolgreich“',\n        'failure-icon': 'Fehlersymbol',\n        'info-icon': 'Informationssymbol'\n    },\n    fr: {\n        'dismiss-notification': 'Ignorer la notification',\n        'success-icon': 'Icône de réussite',\n        'failure-icon': \"Icône d'échec\",\n        'info-icon': \"Icône d'informations\"\n    },\n    ja: {\n        'dismiss-notification': '通知を破棄',\n        'success-icon': '成功アイコン',\n        'failure-icon': '障害アイコン',\n        'info-icon': '情報アイコン'\n    },\n    ko: {\n        'dismiss-notification': '알림 해제',\n        'success-icon': '성공 아이콘',\n        'failure-icon': '실패 아이콘',\n        'info-icon': '정보 아이콘'\n    },\n    zh_TW: {\n        'dismiss-notification': '關閉通知',\n        'success-icon': '成功图标',\n        'failure-icon': '失敗圖示',\n        'info-icon': '資訊圖示'\n    },\n    zh_CN: {\n        'dismiss-notification': '关闭通知',\n        'success-icon': '成功图标',\n        'info-icon': '信息图标',\n        'failure-icon': '故障图标'\n    },\n    it: {\n        'dismiss-notification': 'Ignora notifica',\n        'success-icon': 'Icona Operazione riuscita',\n        'info-icon': 'Icona Informazioni',\n        'failure-icon': 'Icona Errore'\n    },\n    nl: {\n        'dismiss-notification': 'Melding negeren',\n        'success-icon': 'Pictogram Geslaagd',\n        'info-icon': 'Pictogram Informatie',\n        'failure-icon': 'Pictogram Fout'\n    },\n    pt: {\n        'dismiss-notification': 'Descartar notificação',\n        'success-icon': 'Ícone de êxito',\n        'info-icon': 'Ícone de informação',\n        'failure-icon': 'Ícone de falha'\n    },\n    ru: {\n        'dismiss-notification': 'Закрыть уведомление',\n        'success-icon': 'Значок успешного выполнения',\n        'info-icon': 'Значок информации',\n        'failure-icon': 'Значок ошибки'\n    }\n};\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// –——— CLARITY ANIMATIONS —————\n// ATOMIC Animations\n// primary\nexport const atomicPrimaryEnterCurve = 'cubic-bezier(0, 1.5, 0.5, 1)';\nexport const atomicPrimaryEnterTiming = 200;\nexport const atomicPrimaryLeaveCurve = 'cubic-bezier(0,.99,0,.99)';\nexport const atomicPrimaryLeaveTiming = 200;\n\n// secondary\nexport const atomicSecondaryEnterCurve = 'cubic-bezier(0, 1.5, 0.5, 1)';\nexport const atomicSecondaryEnterTiming = 400;\nexport const atomicSecondaryLeaveCurve = 'cubic-bezier(0, 1.5, 0.5, 1)';\nexport const atomicSecondaryLeaveTiming = 100;\n\n// COMPONENT Animations\n// primary\nexport const componentPrimaryEnterCurve = 'cubic-bezier(0,.99,0,.99)';\nexport const componentPrimaryEnterTiming = 400;\nexport const componentPrimaryLeaveCurve = 'cubic-bezier(0,.99,0,.99)';\nexport const componentPrimaryLeaveTiming = 300;\n\n// PAGE Animations\n// primary\nexport const pagePrimaryEnterCurve = 'cubic-bezier(0,.99,0,.99)';\nexport const pagePrimaryEnterTiming = 250;\nexport const pagePrimaryLeaveCurve = 'cubic-bezier(0,.99,0,.99)';\nexport const pagePrimaryLeaveTiming = 200;\n\n// PROGRESS Animations\n// primary\nexport const progressPrimaryCurve = 'cubic-bezier(.17,.4,.8,.79)';\nexport const progressPrimaryTiming = 790;\n\n// secondary\nexport const progressSecondaryCurve = 'cubic-bezier(.34,.01,.39,1)';\nexport const progressSecondaryTiming = 200;\n\n// ICON Animations\n// primary\nexport const linePrimaryEnterCurve = 'linear';\nexport const linePrimaryEnterTiming = 250;\nexport const linePrimaryEnterDelay = 200;\n\n// secondary\nexport const lineSecondaryEnterCurve = 'linear';\nexport const lineSecondaryEnterTiming = 400;\nexport const lineSecondaryEnterDelay = 200;\n\n// –——— NGX ONLY ANIMATIONS —————\nexport const DISMISS_ICON_DURATION = 300;\nexport const DISMISS_ICON_DELAY = 350;\nexport const DISMISS_ICON_CURVE = 'cubic-bezier(0, 1.2, 0.7, 1)';\n\nexport const GRADIENT_DURATION = 500;\nexport const GRADIENT_DELAY = 100;\nexport const GRADIENT_LEAVE_CURVE = 'cubic-bezier(0, 1.2, 0.7, 1)';\nexport const STAGGER_DURATION = 200;\n\n// used for animation debugging\nconst ANIMATION_MULTIPLIER = 1;\n\nexport function multiply(value: number) {\n    return value * ANIMATION_MULTIPLIER;\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable */\n\nimport { ElementRef, NgZone, Component, Input, Output, EventEmitter, HostListener, Optional } from '@angular/core';\nimport { trigger, group, style, animate, transition, query, animateChild, keyframes } from '@angular/animations';\n\nimport { timer } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { VmwToastType } from './toast.model';\nimport { TRANSLATIONS } from './toast.l10n';\nimport { VdkSimpleTranslateService } from '../../ngx-utils';\n\nimport {\n    multiply,\n    componentPrimaryEnterCurve,\n    componentPrimaryEnterTiming,\n    componentPrimaryLeaveCurve,\n    componentPrimaryLeaveTiming,\n    linePrimaryEnterCurve,\n    linePrimaryEnterTiming,\n    linePrimaryEnterDelay,\n    lineSecondaryEnterCurve,\n    lineSecondaryEnterTiming,\n    lineSecondaryEnterDelay,\n    DISMISS_ICON_DELAY,\n    DISMISS_ICON_DURATION,\n    DISMISS_ICON_CURVE,\n    GRADIENT_DURATION,\n    GRADIENT_DELAY,\n    GRADIENT_LEAVE_CURVE\n} from '../animation-constants';\n\nconst AUTODISMISS_TIMEOUT_SECONDS = 6;\nconst TRACKED_TAG = {\n    A: true,\n    BUTTON: true\n};\n\n@Component({\n    selector: 'vdk-toast',\n    templateUrl: './toast.component.html',\n    styleUrls: ['./toast.component.scss'],\n    animations: [\n        trigger('launchToast', [\n            transition(':enter', [\n                // toast parent element animation\n                group([\n                    style({\n                        transform: 'translateX(48px) scale(0, 1)'\n                    }),\n                    animate(\n                        `${multiply(componentPrimaryEnterTiming)}ms ${componentPrimaryEnterCurve}`,\n                        style({\n                            transform: 'translateX(0) scale(1, 1)'\n                        })\n                    ),\n\n                    // use optional: true for if/else elements\n                    query('.checkmark', animateChild(), { optional: true }),\n                    query('#info-icon-dot', animateChild(), { optional: true }),\n                    query('#info-icon-line', animateChild(), { optional: true }),\n                    query('#warn-icon-dot', animateChild(), { optional: true }),\n                    query('#warn-icon-line', animateChild(), { optional: true }),\n                    query('#error-icon-dot', animateChild(), { optional: true }),\n                    query('#error-icon-line', animateChild(), { optional: true }),\n                    query('.gradient', animateChild()),\n                    query('.dismiss', animateChild(), { optional: true })\n                ])\n            ]),\n\n            // START LEAVE ANIMATION\n            // ':leave' is a default state for ngIf and ngFor, doesn't need to be predefined\n            transition(\n                ':leave',\n                [\n                    group([\n                        style({\n                            transform: 'translateX(0px) scale(1, 1)',\n                            marginTop: '*'\n                        }),\n\n                        // use query self to be able to group the animation on the current element\n                        query(':self', [\n                            animate(\n                                `${multiply(componentPrimaryLeaveTiming)}ms ${componentPrimaryLeaveCurve}`,\n                                style({\n                                    transform: 'translateX(18px) scale(0, 1)'\n                                })\n                            ),\n\n                            animate(\n                                `${multiply(componentPrimaryLeaveTiming)}ms ${componentPrimaryLeaveCurve}`,\n                                style({\n                                    marginTop: '-{{height}}px'\n                                })\n                            )\n                        ]),\n\n                        query('.toast-description, .toast-title, .icon, .button-container, .dismiss-bg, .dismiss, .toast-date', [\n                            animate(\n                                `${multiply(10)}ms`,\n                                style({\n                                    opacity: '0'\n                                })\n                            )\n                        ])\n                    ])\n                ],\n                {\n                    params: {\n                        height: 0\n                    }\n                }\n            )\n            // end launchToast\n        ]),\n\n        // info icon animation\n        trigger('infoLine', [\n            transition('* => *', [\n                animate(\n                    `${multiply(linePrimaryEnterTiming)}ms ${multiply(linePrimaryEnterDelay)}ms ${linePrimaryEnterCurve}`,\n                    keyframes([style({ strokeDashoffset: '16', offset: 0 }), style({ strokeDashoffset: '0', offset: 1.0 })])\n                )\n            ])\n        ]),\n        trigger('infoDot', [\n            transition('* => *', [\n                style({\n                    transform: 'scale(0)'\n                }),\n                animate(\n                    `${multiply(lineSecondaryEnterTiming)}ms ${multiply(lineSecondaryEnterDelay)}ms ${lineSecondaryEnterCurve}`,\n                    style({\n                        transform: 'scale(1)'\n                    })\n                )\n            ])\n        ]),\n\n        // error icon animation\n        trigger('errorLine', [\n            transition('* => *', [\n                animate(\n                    `${multiply(linePrimaryEnterTiming)}ms ${multiply(linePrimaryEnterDelay)}ms ${linePrimaryEnterCurve}`,\n                    keyframes([style({ strokeDashoffset: '7.919999599456787', offset: 0 }), style({ strokeDashoffset: '0', offset: 1.0 })])\n                )\n            ])\n        ]),\n        trigger('errorDot', [\n            transition('* => *', [\n                style({\n                    transform: 'scale(0)'\n                }),\n                animate(\n                    `${multiply(lineSecondaryEnterTiming)}ms ${multiply(lineSecondaryEnterDelay)}ms ${lineSecondaryEnterCurve}`,\n                    style({\n                        transform: 'scale(1)'\n                    })\n                )\n            ])\n        ]),\n\n        //warning icon animation\n        trigger('warnLine', [\n            transition('* => *', [\n                animate(\n                    `${multiply(linePrimaryEnterTiming)}ms ${multiply(linePrimaryEnterDelay)}ms ${linePrimaryEnterCurve}`,\n                    keyframes([style({ strokeDashoffset: '7.919999599456787', offset: 0 }), style({ strokeDashoffset: '0', offset: 1.0 })])\n                )\n            ])\n        ]),\n        trigger('warnDot', [\n            transition('* => *', [\n                style({\n                    transform: 'scale(0)'\n                }),\n                animate(\n                    `${multiply(lineSecondaryEnterTiming)}ms ${multiply(lineSecondaryEnterDelay)}ms ${lineSecondaryEnterCurve}`,\n                    style({\n                        transform: 'scale(1)'\n                    })\n                )\n            ])\n        ]),\n\n        // success icon animation\n        trigger('checkmarkLine', [\n            transition('* => *', [\n                // css keyframe animation\n                animate(\n                    `${multiply(linePrimaryEnterTiming)}ms ${multiply(linePrimaryEnterDelay)}ms ${linePrimaryEnterCurve}`,\n                    keyframes([style({ strokeDashoffset: '31.386688232421875', offset: 0 }), style({ strokeDashoffset: '0', offset: 1.0 })])\n                )\n            ])\n        ]),\n\n        // moving the gradient offview\n        trigger('gradientMove', [\n            transition('* => *', [\n                style({\n                    transform: 'scale(1, 1)'\n                }),\n                animate(\n                    `${multiply(GRADIENT_DURATION)}ms ${multiply(GRADIENT_DELAY)}ms ${GRADIENT_LEAVE_CURVE}`,\n                    style({\n                        transform: 'scale(0, 1)'\n                    })\n                )\n            ])\n        ]),\n\n        // fade in the dismiss icon\n        trigger('dismissIconVisible', [\n            transition('* => *', [\n                style({\n                    opacity: '0'\n                }),\n                animate(\n                    `${multiply(DISMISS_ICON_DURATION)}ms ${multiply(DISMISS_ICON_DELAY)}ms ${DISMISS_ICON_CURVE}`,\n                    style({\n                        opacity: '1'\n                    })\n                )\n            ])\n        ])\n    ]\n})\nexport class VdkToastComponent {\n    public mouseover = false;\n    public focused = false;\n\n    @Input() type: VmwToastType = VmwToastType.INFO;\n    @Input() primaryButtonText: string;\n    @Input() secondaryButtonText: string;\n    @Input() dismissible: boolean = true;\n    @Input() timeoutSeconds: number = AUTODISMISS_TIMEOUT_SECONDS;\n\n    @Output() dismissed = new EventEmitter();\n    @Output() primaryButtonClick = new EventEmitter();\n    @Output() secondaryButtonClick = new EventEmitter();\n\n    readonly VmwToastType = VmwToastType;\n    disableAutoDismiss: boolean = false;\n    height: number;\n    animate = true;\n\n    constructor(\n        private element: ElementRef,\n        private ngZone: NgZone,\n        public translateService: VdkSimpleTranslateService // @Optional() private segmentService,\n    ) {\n        this.translateService.loadTranslationsForComponent('toast', TRANSLATIONS);\n    }\n\n    ngOnInit() {\n        this.setUpTimer();\n    }\n\n    @HostListener('click', ['$event'])\n    trackClicks(event: any) {\n        return;\n    }\n\n    mouseOver(over: boolean) {\n        // If the user moves their mouse over the snack, disable auto-dismiss\n        this.disableAutoDismiss = over;\n    }\n\n    focus(focused: boolean) {\n        this.disableAutoDismiss = focused;\n    }\n\n    get loaded() {\n        return {\n            value: this.animate,\n            params: {\n                height: this.element.nativeElement.clientHeight\n            }\n        };\n    }\n\n    dismiss(userDismissed: boolean = false) {\n        this.animate = false;\n\n        // before we tell the app to remove the toast, give the leave animation\n        // some time to run...\n        timer(multiply(componentPrimaryLeaveTiming + 200))\n            .pipe(take(1))\n            .subscribe(() => {\n                this.dismissed.emit();\n            });\n    }\n\n    private setUpTimer() {\n        if (this.timeoutSeconds > 0) {\n            this.ngZone.runOutsideAngular(() => {\n                timer(this.timeoutSeconds * multiply(1000))\n                    .pipe(take(1))\n                    .subscribe(() => {\n                        this.ngZone.run(() => {\n                            if (this.disableAutoDismiss) {\n                                this.setUpTimer();\n                                return;\n                            }\n                            this.dismiss();\n                        });\n                    });\n            });\n        }\n    }\n}\n","<!--\n   ~ Copyright 2023-2025 Broadcom\n   ~ SPDX-License-Identifier: Apache-2.0\n  -->\n\n<div\n    [@launchToast]=\"loaded\"\n    class=\"toast\"\n    *ngIf=\"animate\"\n    (mouseover)=\"mouseOver(true)\"\n    (mouseleave)=\"mouseOver(false)\"\n>\n    <span [@gradientMove] class=\"gradient\"></span>\n\n    <div class=\"icon\">\n        <ng-container [ngSwitch]=\"type\">\n            <ng-container *ngSwitchCase=\"VmwToastType.FAILURE\">\n                <svg\n                    class=\"icon-container\"\n                    width=\"36\"\n                    height=\"36\"\n                    viewBox=\"0 0 36 36\"\n                >\n                    <path\n                        id=\"error-icon-outline\"\n                        d=\"M18,7A11,11,0,1,1,7,18,11,11,0,0,1,18,7\"\n                    />\n                    <path [@errorLine] id=\"error-icon-line\" d=\"M18,12.8v5.9\" />\n                    <circle\n                        [@errorDot]\n                        id=\"error-icon-dot\"\n                        cx=\"18\"\n                        cy=\"23\"\n                        r=\"1.4\"\n                    />\n                </svg>\n            </ng-container>\n\n            <ng-container *ngSwitchCase=\"VmwToastType.INFO\">\n                <svg\n                    class=\"icon-container\"\n                    width=\"36\"\n                    height=\"36\"\n                    viewBox=\"0 0 36 36\"\n                >\n                    <path\n                        id=\"info-icon-outline\"\n                        d=\"M18,7A11,11,0,1,1,7,18,11,11,0,0,1,18,7\"\n                    />\n                    <path\n                        [@infoLine]\n                        id=\"info-icon-line\"\n                        d=\"M16,16h2v8m-3,0h6\"\n                    />\n                    <circle\n                        [@infoDot]\n                        id=\"info-icon-dot\"\n                        cx=\"17.9\"\n                        cy=\"11.85\"\n                        r=\"1.3\"\n                    />\n                </svg>\n            </ng-container>\n\n            <ng-container *ngSwitchCase=\"VmwToastType.WARN\">\n                <svg\n                    class=\"icon-container\"\n                    width=\"36\"\n                    height=\"36\"\n                    viewBox=\"0 0 36 36\"\n                >\n                    <path\n                        [@warnLine]\n                        id=\"warn-icon-line\"\n                        d=\"m18.34483,21.57552a1,0.60591 0 0 1 -1,-0.60591l0,-7.27097a1,0.60591 0 1 1 2,0l0,7.27097a1,0.60591 0 0 1 -1,0.60591z\"\n                    ></path>\n                    <circle\n                        [@warnDot]\n                        id=\"warn-icon-dot\"\n                        r=\"1.33\"\n                        cy=\"24.6807\"\n                        cx=\"18.34483\"\n                    ></circle>\n                    <path\n                        id=\"warn-icon-triangle\"\n                        d=\"m16.13908,7.08311c0.41921,-0.76188 1.21734,-1.23369 2.08417,-1.23369c0.86684,0 1.66496,0.47181 2.0847,1.23467l10.25504,18.87105c0.40026,0.73655 0.38302,1.62945 -0.04535,2.35c-0.42838,0.72056 -1.20458,1.16225 -2.04305,1.16247l-20.48617,-0.00018c-0.84779,0.01899 -1.64152,-0.41505 -2.083,-1.13908c-0.44148,-0.72403 -0.46386,-1.6284 -0.05831,-2.37417l10.29196,-18.87105zm-8.99518,19.57726c-0.15349,0.28226 -0.14501,0.62491 0.02226,0.89923c0.16726,0.27432 0.468,0.43877 0.80574,0.43139l20.5025,0c0.31761,-0.00008 0.6117,-0.16743 0.774,-0.44044c0.16231,-0.273 0.16884,-0.61131 0.01719,-0.89037l-10.25319,-18.86765c-0.15833,-0.28775 -0.46072,-0.4665 -0.78915,-0.4665c-0.32804,0 -0.63011,0.17834 -0.78859,0.46548l-10.29076,18.86886z\"\n                    ></path>\n                </svg>\n            </ng-container>\n\n            <!-- do we need this? -->\n            <!-- If yes, TODO: update to a line icon  -->\n            <ng-container *ngSwitchCase=\"VmwToastType.SUCCESS\">\n                <svg\n                    width=\"24\"\n                    height=\"24\"\n                    viewBox=\"0 0 24 24\"\n                    [attr.aria-label]=\"'toast.success-icon' | simpleTranslate\"\n                    title=\"{{'toast.info-icon' | simpleTranslate }}\"\n                >\n                    <circle\n                        class=\"success-bg\"\n                        fill=\"#60B515\"\n                        cx=\"12\"\n                        cy=\"12\"\n                        r=\"10.67\"\n                    />\n                    <path\n                        [@checkmarkLine]\n                        class=\"checkmark\"\n                        d=\"M5.69 11.33 10.21 15.83 18.3 7.76\"\n                    />\n                </svg>\n            </ng-container>\n        </ng-container>\n        <ng-content select=\"cds-icon\"></ng-content>\n    </div>\n\n    <div class=\"content\">\n        <div class=\"content-wrapper\">\n            <div class=\"toast-title-container\" tabindex=\"0\">\n                <ng-content select=\".toast-title\"></ng-content>\n                <ng-content select=\"span.toast-date\"></ng-content>\n\n                <button\n                    *ngIf=\"dismissible\"\n                    (click)=\"dismiss(true)\"\n                    class=\"dismiss-bg\"\n                    (focus)=\"focus(true)\"\n                    title=\"{{'toast.dismiss-notification' | simpleTranslate }}\"\n                    (blur)=\"focus(false)\"\n                >\n                    <span [@dismissIconVisible] class=\"dismiss\">\n                        <cds-icon shape=\"times\" size=\"16\"></cds-icon>\n                    </span>\n                </button>\n            </div>\n        </div>\n\n        <ng-content select=\"p.toast-description\"></ng-content>\n        <ng-content select=\"a.toast-link\"></ng-content>\n\n        <div class=\"button-container\">\n            <button\n                class=\"toast-button\"\n                *ngIf=\"primaryButtonText\"\n                (focus)=\"focus(true)\"\n                (blur)=\"focus(false)\"\n                [title]=\"primaryButtonText\"\n                (click)=\"primaryButtonClick.emit()\"\n            >\n                {{primaryButtonText}}\n            </button>\n            <button\n                class=\"toast-button secondary\"\n                *ngIf=\"secondaryButtonText\"\n                (focus)=\"focus(true)\"\n                (blur)=\"focus(false)\"\n                [title]=\"secondaryButtonText\"\n                (click)=\"secondaryButtonClick.emit()\"\n            >\n                {{secondaryButtonText}}\n            </button>\n        </div>\n    </div>\n</div>\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable */\n\nimport { HostBinding, Input, Component } from '@angular/core';\nimport { trigger, transition, query, animateChild, stagger } from '@angular/animations';\n\nimport { multiply, STAGGER_DURATION } from '../animation-constants';\n\nimport { VdkToastComponent } from './toast.component';\n\n@Component({\n    selector: 'vdk-toast-container',\n    templateUrl: './toast-container.component.html',\n    styleUrls: ['./toast-container.component.scss'],\n    animations: [\n        trigger('toastContainer', [\n            transition(':enter', [query('@launchToast', [stagger(`${multiply(STAGGER_DURATION)}ms`, animateChild())], { optional: true })]),\n            transition(':leave', [query('@launchToast', [animateChild()], { optional: true })])\n        ])\n    ]\n})\nexport class VdkToastContainerComponent {\n    @Input() topOffset: number = 0;\n\n    @HostBinding('style.top')\n    get top(): string {\n        return 60 + this.topOffset + 'px';\n    }\n}\n","<!--\n   ~ Copyright 2023-2025 Broadcom\n   ~ SPDX-License-Identifier: Apache-2.0\n  -->\n\n<div class=\"toast-container\" [@toastContainer]>\n    <ng-content select=\"vdk-toast\"></ng-content>\n</div>\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable */\n\nimport { Type } from '@angular/core';\nimport { VdkToastComponent } from './toast.component';\nimport { VdkToastContainerComponent } from './toast-container.component';\n\nexport * from './toast.component';\nexport * from './toast-container.component';\nexport * from './toast.model';\n\nexport const TOAST_DIRECTIVES: Type<any>[] = [VdkToastContainerComponent, VdkToastComponent];\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable */\n\nimport { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { BehaviorSubject, combineLatest, Subject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nconst defaultSearchInputPadding = 24;\n\n@Component({\n    selector: 'vdk-search',\n    templateUrl: './search.component.html',\n    styleUrls: ['./search.component.scss']\n})\nexport class VdkSearchComponent {\n    searchInputPaddingRight = `${defaultSearchInputPadding}px`;\n\n    private _disabled: boolean = false;\n    public get disabled(): boolean {\n        return this._disabled;\n    }\n    @Input('disabled')\n    public set disabled(value: boolean) {\n        this._disabled = value;\n\n        if (value) {\n            this.searchQuery?.disable({ emitEvent: false });\n        } else {\n            this.searchQuery?.enable({ emitEvent: false });\n        }\n    }\n\n    @Input() searchQueryValue: string = '';\n    @Input() clearSearchTitle: string = 'Clear Search';\n    @Input('placeholder')\n    set placeholder(pass: string) {\n        this.finalPlaceholder = pass ? pass : 'Search';\n    }\n\n    @Input() helperText: string = '';\n    @Input() debounceTime: number = 100;\n    @Input() searchTermMinimalLength: number = 2;\n    @Input() showSearchButton = false;\n    @Input() searchButtonText: string = 'Search';\n    @Input() searchButtonAriaLabelText: string = 'Search';\n    @Input() searchAriaLabelText: string;\n\n    @Output() search: EventEmitter<string> = new EventEmitter();\n\n    @ViewChild('searchButton', { read: ElementRef })\n    searchButton?: ElementRef;\n    isSeachButtonVisible: boolean;\n\n    private triggerSearch$: Subject<void> = new BehaviorSubject<void>(undefined);\n    private hasSearchBeenTriggeredManually: boolean;\n\n    public searchQuery: FormControl;\n    public searchQuerySub: Subscription;\n    public focused: boolean = false;\n    public finalPlaceholder: string = 'Search';\n\n    ngOnInit() {\n        this.searchQuery = new FormControl(this.searchQueryValue);\n\n        this.searchQuerySub = combineLatest([this.searchQuery.valueChanges, this.triggerSearch$])\n            .pipe(debounceTime(this.debounceTime))\n            .subscribe(([query]) => {\n                const queryLength = query.length;\n                query = query.trim();\n                this.searchQueryValue = query;\n\n                // not emit search event if it hasn't been inputted something different from whitespace\n                if (this.searchQueryValue.length === 0 && queryLength !== 0) {\n                    return;\n                }\n\n                // Make sure that the 'Search' button will be visible in 'Manual Search' mode upon every change.\n                this.isSeachButtonVisible = this.showSearchButton;\n\n                const shouldNotifyForQueryChange = !this.showSearchButton || this.hasSearchBeenTriggeredManually;\n                const inputHasMinLengthOrIsCleared =\n                    this.searchQueryValue.length >= this.searchTermMinimalLength || this.searchQueryValue.length === 0;\n                if (shouldNotifyForQueryChange && inputHasMinLengthOrIsCleared) {\n                    // If we are about to notify that the search term has changed replace 'Search' button with the `X` one.\n                    this.isSeachButtonVisible = false;\n                    this.search.emit(query);\n                }\n\n                this.hasSearchBeenTriggeredManually = false;\n                this.computeSearchInputPadding();\n            });\n    }\n\n    ngOnDestroy(): void {\n        if (this.searchQuerySub) {\n            this.searchQuerySub.unsubscribe();\n        }\n    }\n\n    clearSearch(): void {\n        this.searchQuery.setValue('');\n        if (this.showSearchButton) {\n            this.triggerSearch();\n        }\n    }\n\n    handleKeyDown(event: KeyboardEvent): void {\n        if (event.key === 'Enter') {\n            this.triggerSearch();\n        }\n    }\n\n    triggerSearch(): void {\n        this.hasSearchBeenTriggeredManually = true;\n        this.triggerSearch$.next();\n    }\n\n    private computeSearchInputPadding(): void {\n        if (this.showSearchButton && this.isSeachButtonVisible) {\n            // Wait for the search button to be rendered as changes 'shouldShowSearchButton' might not be applied in the template.\n            // Useful especially after the first rendering.\n            setTimeout(() => {\n                this.searchInputPaddingRight = Math.round(this.searchButton?.nativeElement.clientWidth || defaultSearchInputPadding) + 'px';\n            });\n        } else {\n            this.searchInputPaddingRight = `${defaultSearchInputPadding}px`;\n        }\n    }\n}\n","<!--\n   ~ Copyright 2023-2025 Broadcom\n   ~ SPDX-License-Identifier: Apache-2.0\n  -->\n\n<div\n    class=\"search-container\"\n    [class.disabled]=\"disabled\"\n    [class.focused]=\"focused\"\n>\n    <cds-icon\n        shape=\"search\"\n        size=\"18\"\n        [attr.class]=\"searchQueryValue ? 'is-highlight' : ''\"\n        data-test-id=\"search-icon\"\n    >\n    </cds-icon>\n\n    <input\n        type=\"text\"\n        (focus)=\"focused = true\"\n        (blur)=\"focused = false\"\n        (keydown)=\"handleKeyDown($event)\"\n        class=\"clr-input\"\n        [attr.aria-label]=\"searchAriaLabelText || finalPlaceholder\"\n        [value]=\"searchQueryValue\"\n        [formControl]=\"searchQuery\"\n        [placeholder]=\"finalPlaceholder\"\n        [style.padding-right]=\"searchInputPaddingRight\"\n        data-test-id=\"search-input\"\n    />\n\n    <ng-container *ngIf=\"searchQueryValue\">\n        <button\n            *ngIf=\"!showSearchButton || !isSeachButtonVisible; else searchButtonSection\"\n            class=\"clear-search-btn\"\n            [title]=\"clearSearchTitle\"\n            [attr.aria-label]=\"clearSearchTitle\"\n            (click)=\"clearSearch()\"\n            data-test-id=\"clear-search-btn\"\n            type=\"button\"\n        >\n            <cds-icon shape=\"times-circle\" size=\"16\"> </cds-icon>\n        </button>\n\n        <ng-template #searchButtonSection>\n            <button\n                class=\"btn btn-link\"\n                #searchButton\n                data-test-id=\"search-button\"\n                [attr.disabled]=\"+searchQueryValue?.length < searchTermMinimalLength ? '': null\"\n                [attr.aria-label]=\"searchButtonAriaLabelText || null\"\n                (click)=\"triggerSearch()\"\n            >\n                {{ searchButtonText }}\n            </button>\n        </ng-template>\n    </ng-container>\n\n    <clr-control-helper *ngIf=\"helperText\" data-test-id=\"search-results-text\"\n        >{{helperText}}</clr-control-helper\n    >\n</div>\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { VdkSearchComponent } from './search.component';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n    declarations: [VdkSearchComponent],\n    imports: [CommonModule, ReactiveFormsModule],\n    exports: [VdkSearchComponent],\n    schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class VdkSearchModule {}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './search.component';\nexport { VdkSearchModule } from './search.module';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CUSTOM_ELEMENTS_SCHEMA, ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { ClarityModule, ClrDropdownModule, ClrLoadingButtonModule, ClrLoadingModule, ClrTooltipModule } from '@clr/angular';\n\nimport { VdkSimpleTranslateModule } from '../ngx-utils';\n\nimport {\n    angleIcon,\n    arrowIcon,\n    checkCircleIcon,\n    checkIcon,\n    ClarityIcons,\n    copyToClipboardIcon,\n    exclamationCircleIcon,\n    searchIcon,\n    timesCircleIcon,\n    timesIcon\n} from '@cds/core/icon';\n\nimport { VdkEmptyStatePlaceholderModule } from './empty-state-placeholder/empty-state-placeholder.module';\n\nimport { COPY_TO_CLIPBPOARD_BUTTON_DIRECTIVES } from './copy-to-clipboard-button/index';\nimport { FORM_SECTION_DIRECTIVES } from './form-section/index';\nimport { FORM_SECTION_CONTAINER_DIRECTIVES } from './form-section-container/index';\nimport { TOAST_DIRECTIVES } from './toast/index';\nimport { VdkSearchModule } from './search';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        FormsModule,\n        ReactiveFormsModule,\n        ClarityModule,\n        ClrTooltipModule,\n        ClrDropdownModule,\n        ClrLoadingModule,\n        ClrLoadingButtonModule,\n        VdkSimpleTranslateModule,\n        VdkEmptyStatePlaceholderModule,\n        VdkSearchModule\n    ],\n    declarations: [COPY_TO_CLIPBPOARD_BUTTON_DIRECTIVES, FORM_SECTION_DIRECTIVES, FORM_SECTION_CONTAINER_DIRECTIVES, TOAST_DIRECTIVES],\n    exports: [\n        COPY_TO_CLIPBPOARD_BUTTON_DIRECTIVES,\n        FORM_SECTION_DIRECTIVES,\n        FORM_SECTION_CONTAINER_DIRECTIVES,\n        TOAST_DIRECTIVES,\n        VdkEmptyStatePlaceholderModule,\n        VdkSearchModule\n    ],\n    schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class VdkSharedComponentsModule {\n    static forRoot(): ModuleWithProviders<VdkSharedComponentsModule> {\n        return {\n            ngModule: VdkSharedComponentsModule\n        };\n    }\n\n    static forChild(): ModuleWithProviders<VdkSharedComponentsModule> {\n        return {\n            ngModule: VdkSharedComponentsModule\n        };\n    }\n\n    constructor() {\n        ClarityIcons.addIcons(\n            angleIcon,\n            arrowIcon,\n            checkCircleIcon,\n            checkIcon,\n            copyToClipboardIcon,\n            exclamationCircleIcon,\n            searchIcon,\n            timesCircleIcon,\n            timesIcon\n        );\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './copy-to-clipboard-button/index';\nexport * from './form-section/index';\nexport * from './form-section-container/index';\nexport * from './empty-state-placeholder/index';\nexport * from './toast/index';\nexport * from './search/index';\n\nexport * from './vdk-ngx-components.module';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './ngx-components';\nexport * from './ngx-utils';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Injectable } from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\nimport { Toast } from '../model';\n\n@Injectable()\nexport class ToastService {\n    notificationsSubject = new Subject<Toast>();\n    private notification$ = this.notificationsSubject.asObservable();\n\n    /**\n     * ** Get subscribable stream, that raise new Events when new Toast should be shown.\n     */\n    getNotifications() {\n        return this.notification$;\n    }\n\n    /**\n     * ** Show Toast message.\n     */\n    show(toast: Toast) {\n        this.notificationsSubject.next(toast);\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './toast.service';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/unified-signatures */\n\nimport { Injectable } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport { Observable, throwError } from 'rxjs';\n\nimport { VmwToastType } from '../../../commons';\n\nimport { CollectionsUtil } from '../../../utils';\n\nimport { FormattedError, Toast } from '../../toasts/model';\nimport { ToastService } from '../../toasts/service';\n\n/**\n * ** Config for Toast message.\n */\nexport interface ErrorHandlerConfig {\n    /**\n     * ** Toast title.\n     */\n    title?: Toast['title'];\n\n    /**\n     * ** Toast description.\n     */\n    description?: Toast['description'];\n\n    /**\n     * ** Toast type.\n     */\n    type?: Toast['type'];\n}\n\n/**\n * ** Error handler service.\n */\n@Injectable()\nexport class ErrorHandlerService {\n    /**\n     * ** Constructor.\n     */\n    constructor(private readonly toastService: ToastService) {}\n\n    /**\n     * ** Handle Error in rxjs stream.\n     *\n     *   - Show Toast message\n     *   - Log it to console\n     *   - Re-throw new Error('Something unexpected happened')\n     */\n    handleError = (error: Error): Observable<never> => {\n        this.processError(error);\n\n        const newError = new Error('Something unexpected happened');\n\n        return throwError(() => newError);\n    };\n\n    /**\n     * ** Process Error.\n     *\n     *   - Show Toast message\n     *   - Log it to console\n     */\n    processError(error: Error): void;\n    processError(error: Error, overriddenConfig: ErrorHandlerConfig): void;\n    processError(error: Error, overriddenConfig?: ErrorHandlerConfig): void {\n        if (error instanceof HttpErrorResponse) {\n            if (error.error instanceof ErrorEvent) {\n                // A client-side or network error occurred.\n                const toast = ErrorHandlerService._createToastConfigForError(error, overriddenConfig);\n\n                console.error(`An error occurred: ${error.error.message}`);\n\n                this.toastService.show(toast);\n            } else {\n                // Server side error occurred.\n                const toast = ErrorHandlerService._createToastConfigForHttpErrorResponse(error, overriddenConfig);\n\n                console.error(error.error ?? error);\n\n                this.toastService.show(toast);\n            }\n        } else {\n            // Runtime error occurred, potential bug.\n            const toast = ErrorHandlerService._createToastConfigForError(error, overriddenConfig);\n\n            console.error(error);\n\n            this.toastService.show(toast);\n        }\n    }\n\n    /* eslint-disable @typescript-eslint/member-ordering */\n\n    private static _createToastConfigForHttpErrorResponse(error: HttpErrorResponse, overriddenConfig: ErrorHandlerConfig): Toast {\n        let title: string;\n        let description: string;\n        let rootError: Error = error.error as Error;\n        const responseStatus = error.status;\n\n        if (error.status === 403) {\n            title = 'ACCESS DENIED';\n            description =\n                'You are not authorized for this content! ' +\n                'If you think it is a mistake please contact the data owners and request them to grant you access.';\n        } else if (error.status === 500) {\n            title = (error.error as FormattedError)?.what ? (error.error as FormattedError).what : 'Internal Server Error';\n            description = (error.error as FormattedError)?.why\n                ? (error.error as FormattedError).why\n                : 'We are sorry for the inconvenience.' +\n                  'Please try again or come back later, and if the issue persists – please copy the details and report the error.';\n        } else if (CollectionsUtil.isNil(error.error)) {\n            title = ErrorHandlerService._getErrorTitle(error.status);\n            description = 'Operation failed';\n            rootError = error;\n        } else if (error.error && (error.error as FormattedError).what && (error.error as FormattedError).why) {\n            title = (error.error as FormattedError).what;\n            description = (error.error as FormattedError).why;\n        } else if (typeof error.error === 'string') {\n            title = error.error;\n            description = error.message;\n        } else {\n            title = ErrorHandlerService._getErrorTitle(error.status);\n            description = error.message;\n        }\n\n        return ErrorHandlerService._createToastConfig(title, description, rootError, responseStatus, overriddenConfig);\n    }\n\n    private static _createToastConfigForError(error: Error, overriddenConfig: ErrorHandlerConfig): Toast {\n        return ErrorHandlerService._createToastConfig(\n            `An error occurred: ${error?.message}`,\n            'We are sorry for the inconvenience.' +\n                'Please try again or come back later, and if the issue persists – please copy the details and report the error.',\n            error,\n            undefined,\n            overriddenConfig\n        );\n    }\n\n    private static _getErrorTitle(status: number): string {\n        switch (status) {\n            case 400:\n                return 'Invalid param';\n            case 401:\n                return 'Unauthorized';\n            case 404:\n                return 'Not Found';\n            case 405:\n                return 'Not Allowed';\n            case 422:\n                return 'Invalid operation';\n            default:\n                return 'Unknown Error';\n        }\n    }\n\n    private static _createToastConfig(\n        title: string,\n        description: string,\n        error: Error,\n        responseStatus: number = null,\n        overriddenConfig: ErrorHandlerConfig = null\n    ): Toast {\n        let toastConfig: Toast = {\n            title,\n            description,\n            type: VmwToastType.FAILURE,\n            error,\n            responseStatus\n        };\n\n        if (CollectionsUtil.isDefined(overriddenConfig)) {\n            toastConfig = {\n                ...toastConfig,\n                ...overriddenConfig,\n                extendedData: {\n                    title,\n                    description\n                }\n            };\n        }\n\n        return toastConfig;\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './error-handler.service';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './services';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n    imports: [CommonModule, RouterModule],\n    declarations: [],\n    exports: []\n})\nexport class PipesModule {}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './pipes.module';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Component, ContentChild, Input, TemplateRef } from '@angular/core';\n\n@Component({\n    selector: 'shared-empty-state',\n    templateUrl: './empty-state.component.html',\n    styleUrls: ['./empty-state.component.scss']\n})\nexport class EmptyStateComponent {\n    @ContentChild('customTemplate', { read: TemplateRef }) customTemplateRef: TemplateRef<never>;\n\n    /**\n     * ** Title for empty state Component.\n     */\n    @Input() title: string;\n\n    /**\n     * ** Icon for empty state Component.\n     */\n    @Input() icon: string;\n\n    /**\n     * ** Description for empty state Component.\n     */\n    @Input() description: string;\n\n    /**\n     * ** Title heading level for empty state Component.\n     */\n    @Input() headingLevel = 2;\n}\n","<!--\n   ~ Copyright 2023-2025 Broadcom\n   ~ SPDX-License-Identifier: Apache-2.0\n  -->\n\n<ng-container *ngIf=\"!customTemplateRef; else customTemplateContainer\">\n    <clr-icon *ngIf=\"icon\" [attr.shape]=\"icon\" size=\"64\"></clr-icon>\n\n    <ng-content select=\"img\"></ng-content>\n    <ng-content select=\"ng-lottie\"></ng-content>\n\n    <ng-container [ngSwitch]=\"headingLevel\">\n        <ng-container *ngSwitchCase=\"1\">\n            <h1\n                class=\"empty-placeholder-heading\"\n                role=\"heading\"\n                [attr.aria-level]=\"headingLevel\"\n            >\n                {{title}}\n            </h1>\n        </ng-container>\n        <ng-container *ngSwitchCase=\"2\">\n            <h2\n                class=\"empty-placeholder-heading\"\n                role=\"heading\"\n                [attr.aria-level]=\"headingLevel\"\n            >\n                {{title}}\n            </h2>\n        </ng-container>\n        <ng-container *ngSwitchCase=\"3\">\n            <h3\n                class=\"empty-placeholder-heading\"\n                role=\"heading\"\n                [attr.aria-level]=\"headingLevel\"\n            >\n                {{title}}\n            </h3>\n        </ng-container>\n        <ng-container *ngSwitchCase=\"4\">\n            <h4\n                class=\"empty-placeholder-heading\"\n                role=\"heading\"\n                [attr.aria-level]=\"headingLevel\"\n            >\n                {{title}}\n            </h4>\n        </ng-container>\n        <ng-container *ngSwitchCase=\"5\">\n            <h5\n                class=\"empty-placeholder-heading\"\n                role=\"heading\"\n                [attr.aria-level]=\"headingLevel\"\n            >\n                {{title}}\n            </h5>\n        </ng-container>\n        <ng-container *ngSwitchCase=\"6\">\n            <h6\n                class=\"empty-placeholder-heading\"\n                role=\"heading\"\n                [attr.aria-level]=\"headingLevel\"\n            >\n                {{title}}\n            </h6>\n        </ng-container>\n    </ng-container>\n\n    <div *ngIf=\"description\" class=\"empty-placeholder-description\">\n        {{description}}\n    </div>\n\n    <ng-content select=\"button, a\"></ng-content>\n</ng-container>\n\n<ng-template #customTemplateContainer>\n    <ng-container *ngTemplateOutlet=\"customTemplateRef\"></ng-container>\n</ng-template>\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './empty-state.component';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './component';\nexport * from './error';\nexport * from './navigation';\nexport * from './ngrx';\nexport * from './router';\nexport * from './system-events';\nexport * from './url-state-manager';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { InjectionToken } from '@angular/core';\n\nimport { SharedFeaturesConfig } from '../_model';\n\n/**\n * ** Injection token for Shared Features config.\n */\nexport const SHARED_FEATURES_CONFIG_TOKEN = new InjectionToken<SharedFeaturesConfig>('Shared Feature Config Token');\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './features.token';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ElementRef, Injectable, OnDestroy, Renderer2 } from '@angular/core';\n\nimport { CollectionsUtil } from '../../../utils';\n\nimport { ApiErrorMessage, ErrorRecord, TaurusObject } from '../../../common';\n\nimport { getApiFormattedErrorMessage } from '../../../core';\n\n@Injectable()\nexport class PlaceholderService extends TaurusObject implements OnDestroy {\n    /**\n     * @inheritDoc\n     */\n    static override readonly CLASS_NAME: string = 'PlaceholderService';\n\n    /**\n     * @inheritDoc\n     */\n    static override readonly PUBLIC_NAME: string = 'Placeholder-Service';\n\n    // lookup flags\n    private _lookupInProgress = false;\n    private _isGridParentFound = false;\n    private _finderLookupTimeoutRef: number;\n\n    // styling elements\n    private _headElement: HTMLHeadElement;\n    private _gridStyleElement: HTMLStyleElement;\n    private _standalonePlaceholderStyleElement: HTMLElement;\n\n    // utility\n    private readonly _gridRandomAttribute: string;\n    private readonly _standalonePlaceholderRandomAttribute: string;\n\n    // temporary storage\n    private _elementRef: ElementRef<HTMLElement>;\n    private _hideDefaultEmptyStateImageInGrid = false;\n\n    /**\n     * ** Constructor.\n     */\n    constructor(private readonly renderer2: Renderer2) {\n        super(PlaceholderService.CLASS_NAME);\n\n        this._gridRandomAttribute = CollectionsUtil.generateRandomString();\n        this._standalonePlaceholderRandomAttribute = CollectionsUtil.generateRandomString();\n    }\n\n    /**\n     * ** Extract public name of classes from multiple error records.\n     */\n    static extractClassesPublicNames(errorRecords: ErrorRecord[]): string {\n        const publicNames = errorRecords\n            .map((r) => PlaceholderService.extractClassPublicName(r))\n            .filter((publicName) => CollectionsUtil.isString(publicName) && publicName.length > 0);\n\n        return CollectionsUtil.uniqueArray(publicNames).join(', ');\n    }\n\n    /**\n     * ** Extract class public name from provided error record.\n     */\n    static extractClassPublicName(errorRecord: ErrorRecord): string {\n        if (errorRecord) {\n            if (errorRecord.code && errorRecord.code.length > 0) {\n                /**\n                 * class public name is second with underscore following pattern described in {@link ErrorRecord.code}\n                 */\n                const codeChunks = errorRecord.code.split('_');\n\n                if (codeChunks.length >= 3) {\n                    const publicName = codeChunks[1];\n\n                    if (publicName && publicName.length > 2) {\n                        const publicNameNormalized = publicName.replace(/-/g, ' ');\n\n                        return publicNameNormalized.substring(0, 1).toUpperCase() + publicNameNormalized.substring(1).toLowerCase();\n                    }\n                }\n            }\n        }\n\n        return '';\n    }\n\n    /**\n     * ** Refines elements state and their corresponding styles.\n     */\n    refineElementsState(elementRef: ElementRef<HTMLElement>, hideDefaultEmptyStateImageInGrid: boolean): void {\n        if (CollectionsUtil.isDefined(elementRef)) {\n            this._elementRef = elementRef;\n        }\n\n        if (CollectionsUtil.isDefined(hideDefaultEmptyStateImageInGrid)) {\n            this._hideDefaultEmptyStateImageInGrid = hideDefaultEmptyStateImageInGrid;\n        }\n\n        if (this._lookupInProgress) {\n            return;\n        }\n\n        if (!this._isGridParentFound) {\n            this._lookupInProgress = true;\n\n            this._findHeadElement();\n\n            this._findPlaceholderParentGrid()\n                .then((placeholderGridParent) => {\n                    this._isGridParentFound = !!placeholderGridParent;\n\n                    this._removeStandalonePlaceholderStyle();\n\n                    this._appendGridPlaceholderStyle();\n                    this._addGridDataAttribute(placeholderGridParent);\n                    this._toggleGridPlaceholderStyle();\n                })\n                .catch((_error) => {\n                    this._isGridParentFound = false;\n\n                    this._removeGridPlaceholderStyle();\n\n                    this._appendStandalonePlaceholderStyle();\n                    this._addStandalonePlaceholderDataAttribute();\n                    this._toggleStandalonePlaceholderStyle();\n                })\n                .finally(() => {\n                    this._lookupInProgress = false;\n                });\n        } else {\n            this._toggleGridPlaceholderStyle();\n            this._toggleStandalonePlaceholderStyle();\n        }\n    }\n\n    /**\n     * ** Get API formatted error message from provided Error.\n     */\n    extractErrorInformation(error: Error): ApiErrorMessage {\n        return getApiFormattedErrorMessage(error);\n    }\n\n    /**\n     * @inheritDoc\n     */\n    override ngOnDestroy(): void {\n        if (this._finderLookupTimeoutRef) {\n            window.clearTimeout(this._finderLookupTimeoutRef);\n        }\n\n        this._removeGridPlaceholderStyle();\n        this._removeStandalonePlaceholderStyle();\n\n        super.ngOnDestroy();\n    }\n\n    private _findPlaceholderParentGrid(): Promise<HTMLElement> {\n        let parentElementFinderAttempts = 0;\n\n        let resolveRef: (value: HTMLElement) => void;\n        let rejectRef: (reason: string) => void;\n\n        const parentFinder = () => {\n            parentElementFinderAttempts++;\n\n            const firstLevelParent: HTMLElement = this.renderer2.parentNode(this._elementRef.nativeElement) as HTMLElement;\n            if (firstLevelParent) {\n                const foundParentGrid = this._traverseToFindParentGrid(firstLevelParent);\n\n                if (foundParentGrid) {\n                    resolveRef(foundParentGrid);\n                } else {\n                    rejectRef('Cannot find parent grid (clr-datagrid)!');\n                }\n            } else if (parentElementFinderAttempts < 200) {\n                this._finderLookupTimeoutRef = window.setTimeout(() => {\n                    this._finderLookupTimeoutRef = null;\n\n                    parentFinder();\n                }, 25);\n            } else {\n                rejectRef('Cannot find parent grid (clr-datagrid)!');\n            }\n        };\n\n        return new Promise((resolve, reject) => {\n            resolveRef = resolve;\n            rejectRef = reject;\n\n            parentFinder();\n        });\n    }\n\n    private _traverseToFindParentGrid(element: HTMLElement): HTMLElement {\n        let loop = 0;\n        let parentElement: HTMLElement = element;\n\n        while (loop < 15) {\n            if (parentElement) {\n                loop++;\n\n                if (!parentElement.tagName) {\n                    break;\n                }\n\n                if (parentElement.tagName.toLowerCase() === 'clr-datagrid') {\n                    return parentElement;\n                }\n\n                parentElement = this.renderer2.parentNode(parentElement) as HTMLElement;\n            } else {\n                break;\n            }\n        }\n\n        return null;\n    }\n\n    private _findHeadElement(): void {\n        if (this._headElement) {\n            return;\n        }\n\n        this._headElement = document.querySelector('head');\n    }\n\n    private _appendGridPlaceholderStyle(): void {\n        if (!this._gridStyleElement) {\n            this._gridStyleElement = this.renderer2.createElement('style') as HTMLStyleElement;\n\n            this.renderer2.setAttribute(this._gridStyleElement, 'data-shared-grid-style', this._gridRandomAttribute);\n            this.renderer2.appendChild(this._headElement, this._gridStyleElement);\n        }\n    }\n\n    private _appendStandalonePlaceholderStyle(): void {\n        if (!this._standalonePlaceholderStyleElement) {\n            this._standalonePlaceholderStyleElement = this.renderer2.createElement('style') as HTMLStyleElement;\n\n            this.renderer2.setAttribute(\n                this._standalonePlaceholderStyleElement,\n                'data-shared-placeholder-style',\n                this._standalonePlaceholderRandomAttribute\n            );\n            this.renderer2.appendChild(this._headElement, this._standalonePlaceholderStyleElement);\n        }\n    }\n\n    private _addGridDataAttribute(element: HTMLElement): void {\n        if (!element) {\n            return;\n        }\n\n        this.renderer2.setAttribute(element, 'data-shared-grid', this._gridRandomAttribute);\n    }\n\n    private _addStandalonePlaceholderDataAttribute(): void {\n        if (!this._elementRef.nativeElement) {\n            return;\n        }\n\n        this.renderer2.setAttribute(this._elementRef.nativeElement, 'data-shared-placeholder', this._standalonePlaceholderRandomAttribute);\n    }\n\n    private _toggleGridPlaceholderStyle(): void {\n        if (!this._gridStyleElement) {\n            return;\n        }\n\n        this._gridStyleElement.innerHTML = `\n            clr-datagrid[data-shared-grid=\"${this._gridRandomAttribute}\"] clr-dg-placeholder .datagrid-placeholder.datagrid-empty {\n                justify-content: center;\n            }\n            clr-datagrid[data-shared-grid=\"${this._gridRandomAttribute}\"] clr-dg-placeholder .datagrid-placeholder-image {\n                display: ${this._hideDefaultEmptyStateImageInGrid ? 'none' : 'block'};\n            }\n        `;\n    }\n\n    private _toggleStandalonePlaceholderStyle(): void {\n        if (!this._standalonePlaceholderStyleElement) {\n            return;\n        }\n\n        this._standalonePlaceholderStyleElement.innerHTML = `\n            shared-placeholder[data-shared-placeholder=\"${this._standalonePlaceholderRandomAttribute}\"] {\n                margin-top: 5rem;\n            }\n        `;\n    }\n\n    private _removeGridPlaceholderStyle(): void {\n        if (this._gridStyleElement) {\n            this.renderer2.removeChild(this._headElement, this._gridStyleElement);\n        }\n    }\n\n    private _removeStandalonePlaceholderStyle(): void {\n        if (this._standalonePlaceholderStyleElement) {\n            this.renderer2.removeChild(this._headElement, this._standalonePlaceholderStyleElement);\n        }\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './placeholder.service';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n    Component,\n    ContentChild,\n    ElementRef,\n    Inject,\n    Input,\n    OnChanges,\n    OnInit,\n    Renderer2,\n    SimpleChanges,\n    TemplateRef,\n    ViewChild\n} from '@angular/core';\nimport { HttpStatusCode } from '@angular/common/http';\n\nimport { CollectionsUtil } from '../../../utils';\n\nimport { ApiErrorMessage, ErrorRecord, TaurusObject } from '../../../common';\n\nimport { filterErrorRecords } from '../../../core';\n\nimport { SHARED_FEATURES_CONFIG_TOKEN } from '../../_token';\n\nimport { PlaceholderConfig } from '../model';\n\nimport { PlaceholderService } from '../services';\n\n/* eslint-disable @typescript-eslint/naming-convention */\n\ninterface PlaceholderAutoSupportedStates {\n    /**\n     * ** Fallback state.\n     */\n    Generic: string;\n    /**\n     * ** When there is no internet connection (offline).\n     */\n    Offline: string;\n    /**\n     * ** When asset/entity is not found.\n     */\n    NotFound: string;\n}\n\n// empty state\nconst EmptyMessage = {\n    Generic: 'No assets found!'\n};\n\nconst EmptyImgSource = {\n    Generic: 'assets/images/empty/empty-generic.svg'\n};\n\nconst EmptyImgStyle = {\n    Opacity: 1,\n    Width: '64px'\n};\n\n// error state\nconst ErrorProblem = {\n    Generic: '%s %s currently unavailable',\n    Offline: 'No Internet Connection',\n    NotFound: '%s %s not found'\n};\n\nconst ErrorDescription = {\n    Generic: '%s can not be loaded, due to technical error on our end.',\n    Offline: 'Application recorded network outage.',\n    NotFound: `%s for requested identifier does not exist in the system.`\n};\n\nconst ErrorMitigation: PlaceholderAutoSupportedStates = {\n    Generic: 'Please try again later.',\n    Offline: 'Please check your internet connection.',\n    NotFound: ''\n};\n\nconst ErrorEscalation: PlaceholderAutoSupportedStates = {\n    // anchor href interpolated in Component constructor with provided config\n    Generic: `If the issue persists, please <a href=\"%service_req_url%\" target=\"_blank\" rel=\"noopener\">open a service request.</a>`,\n    Offline: '',\n    // anchor href interpolated in Component constructor with provided config\n    NotFound: `If you think it is a bug, please <a href=\"%service_req_url%\" target=\"_blank\">open a service request.</a>`\n};\n\nconst ErrorImgSource: PlaceholderAutoSupportedStates = {\n    Generic: 'assets/images/placeholder/server-error.svg',\n    Offline: '',\n    NotFound: 'assets/images/placeholder/not-found.svg'\n};\n\nconst ErrorImgStyle: {\n    Opacity: number;\n    Width: PlaceholderAutoSupportedStates;\n} = {\n    Opacity: 1,\n    Width: {\n        Generic: '200px',\n        Offline: '280px',\n        NotFound: '150px'\n    }\n};\n\ninterface IdentifiedErrorRecordWithMessage {\n    record: ErrorRecord[];\n    problem: string;\n    description: string;\n    mitigation: string;\n    escalation: string;\n    impactedServices: string;\n    apiMessage: ApiErrorMessage;\n    imageSrc: string;\n    imageWidth: string;\n    imageOpacity: number;\n}\n\n/* eslint-enable @typescript-eslint/naming-convention */\n\n/**\n * ** Generic placeholder component.\n *\n *      - Could be use in generic Component template but also, inside Clarity Datagrid as content projection of <clr-dg-placeholder> component.\n *      - Handles empty state and error state according provided parameters (instructions).\n */\n@Component({\n    selector: 'shared-placeholder',\n    templateUrl: './placeholder.component.html',\n    styleUrls: ['./placeholder.component.scss'],\n    providers: [PlaceholderService]\n})\nexport class PlaceholderComponent extends TaurusObject implements OnInit, OnChanges {\n    /**\n     * ** Template ref for system default Error Template.\n     *\n     *      - Fallback for any Error that doesn't match any of provided custom Error Templates.\n     */\n    @ViewChild('errorTemplateSystemDefault', { read: TemplateRef }) errorTemplateRefSystemDefault: TemplateRef<never>;\n\n    /**\n     * ** Content projection child query for custom Error Template with ID #errorTemplate.\n     *\n     *      - Template is generic and if provided will be used for every error that doesn't match any other template.\n     *      - If not provided will execute next resolution\n     *          - fallback to system default Error Template.\n     */\n    @ContentChild('errorTemplate', { read: TemplateRef }) errorTemplateRefGeneric: TemplateRef<never>;\n\n    /**\n     * ** Content projection child query for custom Error Template with ID #errorTemplate4xx.\n     *\n     *      - Template if provided will be use only for errors that are HttpErrorResponse with status 4xx.\n     *      - If not provided will execute next resolution\n     *          - try fallback to generic custom Error Template if found, if not go to next resolution\n     *          - fallback to system default Error Template.\n     */\n    @ContentChild('errorTemplate4xx', { read: TemplateRef }) errorTemplateRefClientErrors: TemplateRef<never>;\n\n    /**\n     * ** Content projection child query for custom Error Template with ID #errorTemplate400.\n     *\n     *      - Template if provided will be use only for errors that are HttpErrorResponse with status 400.\n     *      - If not provided will execute next resolution\n     *          - try fallback to custom Error Template for HttpStatusCodes 4xx if found, if not go to next resolution\n     *          - try fallback to generic custom Error Template if found, if not go to next resolution\n     *          - fallback to system default Error Template.\n     */\n    @ContentChild('errorTemplate400', { read: TemplateRef }) errorTemplateRefBadRequest: TemplateRef<never>;\n\n    /**\n     * ** Content projection child query for custom Error Template with ID #errorTemplate401.\n     *\n     *      - Template if provided will be use only for errors that are HttpErrorResponse with status 401.\n     *      - If not provided will execute next resolution\n     *          - try fallback to custom Error Template for HttpStatusCodes 4xx if found, if not go to next resolution\n     *          - try fallback to generic custom Error Template if found, if not go to next resolution\n     *          - fallback to system default Error Template.\n     */\n    @ContentChild('errorTemplate401', { read: TemplateRef }) errorTemplateRefUnauthorized: TemplateRef<never>;\n\n    /**\n     * ** Content projection child query for custom Error Template with ID #errorTemplate403.\n     *\n     *      - Template if provided will be use only for errors that are HttpErrorResponse with status 403.\n     *      - If not provided will execute next resolution\n     *          - try fallback to custom Error Template for HttpStatusCodes 4xx if found, if not go to next resolution\n     *          - try fallback to generic custom Error Template if found, if not go to next resolution\n     *          - fallback to system default Error Template.\n     */\n    @ContentChild('errorTemplate403', { read: TemplateRef }) errorTemplateRefForbidden: TemplateRef<never>;\n\n    /**\n     * ** Content projection child query for custom Error Template with ID #errorTemplate404.\n     *\n     *      - Template if provided will be use only for errors that are HttpErrorResponse with status 404.\n     *      - If not provided will execute next resolution\n     *          - try fallback to custom Error Template for HttpStatusCodes 4xx if found, if not go to next resolution\n     *          - try fallback to generic custom Error Template if found, if not go to next resolution\n     *          - fallback to system default Error Template.\n     */\n    @ContentChild('errorTemplate404', { read: TemplateRef }) errorTemplateRefNotFound: TemplateRef<never>;\n\n    /**\n     * ** Content projection child query for custom Error Template with ID #errorTemplate405.\n     *\n     *      - Template if provided will be use only for errors that are HttpErrorResponse with status 405.\n     *      - If not provided will execute next resolution\n     *          - try fallback to custom Error Template for HttpStatusCodes 4xx if found, if not go to next resolution\n     *          - try fallback to generic custom Error Template if found, if not go to next resolution\n     *          - fallback to system default Error Template.\n     */\n    @ContentChild('errorTemplate405', { read: TemplateRef }) errorTemplateRefMethodNotAllowed: TemplateRef<never>;\n\n    /**\n     * ** Content projection child query for custom Error Template with ID #errorTemplate409.\n     *\n     *      - Template if provided will be use only for errors that are HttpErrorResponse with status 409.\n     *      - If not provided will execute next resolution\n     *          - try fallback to custom Error Template for HttpStatusCodes 4xx if found, if not go to next resolution\n     *          - try fallback to generic custom Error Template if found, if not go to next resolution\n     *          - fallback to system default Error Template.\n     */\n    @ContentChild('errorTemplate409', { read: TemplateRef }) errorTemplateRefConflict: TemplateRef<never>;\n\n    /**\n     * ** Content projection child query for custom Error Template with ID #errorTemplate422.\n     *\n     *      - Template if provided will be use only for errors that are HttpErrorResponse with status 422.\n     *      - If not provided will execute next resolution\n     *          - try fallback to custom Error Template for HttpStatusCodes 4xx if found, if not go to next resolution\n     *          - try fallback to generic custom Error Template if found, if not go to next resolution\n     *          - fallback to system default Error Template.\n     */\n    @ContentChild('errorTemplate422', { read: TemplateRef }) errorTemplateRefUnprocessableEntity: TemplateRef<never>;\n\n    /**\n     * ** Content projection child query for custom Error Template with ID #errorTemplate5xx.\n     *\n     *      - Template if provided will be use only for errors that are HttpErrorResponse with status 5xx.\n     *      - If not provided will execute next resolution\n     *          - try fallback to generic custom Error Template if found, if not go to next resolution\n     *          - fallback to system default Error Template.\n     */\n    @ContentChild('errorTemplate5xx', { read: TemplateRef }) errorTemplateRefServerErrors: TemplateRef<never>;\n\n    /**\n     * ** Content projection child query for custom Error Template with ID #errorTemplate500.\n     *\n     *      - Template if provided will be use only for errors that are HttpErrorResponse with status 500.\n     *      - If not provided will execute next resolution\n     *          - try fallback to custom Error Template for HttpStatusCodes 5xx if found, if not go to next resolution\n     *          - try fallback to generic custom Error Template if found, if not go to next resolution\n     *          - fallback to system default Error Template.\n     */\n    @ContentChild('errorTemplate500', { read: TemplateRef }) errorTemplateRefInternalServerError: TemplateRef<never>;\n\n    /**\n     * ** Content projection child query for custom Error Template with ID #errorTemplate503.\n     *\n     *      - Template if provided will be use only for errors that are HttpErrorResponse with status 503.\n     *      - If not provided will execute next resolution\n     *          - try fallback to custom Error Template for HttpStatusCodes 5xx if found, if not go to next resolution\n     *          - try fallback to generic custom Error Template if found, if not go to next resolution\n     *          - fallback to system default Error Template.\n     */\n    @ContentChild('errorTemplate503', { read: TemplateRef }) errorTemplateRefServiceUnavailable: TemplateRef<never>;\n\n    /**\n     * ** Content projection child query for custom Empty Template with ID #emptyTemplate.\n     *\n     *      - Template if provided will be use for empty state otherwise fallback to system default Empty State Template.\n     */\n    @ContentChild('emptyTemplate', { read: TemplateRef }) emptyTemplateRef: TemplateRef<never>;\n\n    /**\n     * ** Boolean flag that identifies if parent is loading data.\n     */\n    @Input() loading: boolean;\n\n    // empty state\n\n    /**\n     * ** Text for empty state, if component is rendered without errors or there is no listened error code(s).\n     */\n    @Input() set emptyMessage(value: string) {\n        if (CollectionsUtil.isString(value) && value.length > 0) {\n            this._isEmptyMessageExternal = true;\n            this._emptyMessage = value;\n        } else {\n            this._isEmptyMessageExternal = false;\n            this._emptyMessage = EmptyMessage.Generic;\n        }\n    }\n\n    /**\n     * ** Text for empty state.\n     *\n     *      - Visualized only if component is rendered without errors or there is no listened error code(s).\n     */\n    get emptyMessage(): string {\n        return this._emptyMessage;\n    }\n\n    /**\n     * ** Empty state image source url.\n     *\n     *      - Visualized only if component is rendered without errors or there is no listened error code(s).\n     */\n    @Input() set emptyImgSrc(value: string) {\n        if (CollectionsUtil.isString(value) && value.length > 0) {\n            this._isEmptyImgSrcExternal = true;\n            this._emptyImgSrc = value;\n        } else {\n            this._isEmptyImgSrcExternal = false;\n            this._emptyImgSrc = EmptyImgSource.Generic;\n        }\n    }\n\n    /**\n     * ** Empty state image source url.\n     *\n     *      - Visualized only if component is rendered without errors or there is no listened error code(s).\n     */\n    get emptyImgSrc(): string {\n        return this._emptyImgSrc;\n    }\n\n    /**\n     * ** Empty state image width.\n     *\n     *      - Visualized only if component is rendered without errors or there is no listened error code(s).\n     */\n    @Input() set emptyImgWidth(value: string) {\n        if (CollectionsUtil.isString(value) && value.length > 0) {\n            this._emptyImgWidth = value;\n        } else {\n            this._emptyImgWidth = EmptyImgStyle.Width;\n        }\n    }\n\n    /**\n     * ** Empty state image width.\n     *\n     *      - Visualized only if component is rendered without errors or there is no listened error code(s).\n     */\n    get emptyImgWidth(): string {\n        return this._emptyImgWidth;\n    }\n\n    /**\n     * ** Empty state image opacity.\n     *\n     *      - Visualized only if component is rendered without errors or there is no listened error code(s).\n     */\n    @Input() set emptyImgOpacity(value: number) {\n        if (CollectionsUtil.isNumber(value) && value >= 1 && value <= 1) {\n            this._emptyImgOpacity = value;\n        } else {\n            this._emptyImgOpacity = EmptyImgStyle.Opacity;\n        }\n    }\n\n    /**\n     * ** Empty state image opacity.\n     *\n     *      - Visualized only if component is rendered without errors or there is no listened error code(s).\n     */\n    get emptyImgOpacity(): number {\n        return this._emptyImgOpacity;\n    }\n\n    /**\n     * ** Flag to show or hide custom empty state image.\n     *\n     *      - default value is FALSE.\n     */\n    @Input() showCustomEmptyStateImage = false;\n\n    /**\n     * ** Flag to show or hide default empty state image in grid.\n     *\n     *      - default value is FALSE.\n     */\n    @Input() hideDefaultEmptyStateImageInGrid = false;\n\n    // error state\n\n    /**\n     * ** Errors queue of ErrorRecords injected from parents transitive.\n     */\n    @Input() set errorsQueue(value: ErrorRecord[]) {\n        if (CollectionsUtil.isArray(value)) {\n            this._errorsQueue = value;\n        } else {\n            this._errorsQueue = [];\n        }\n    }\n\n    /**\n     * ** Errors queue of ErrorRecords injected from parents transitive.\n     */\n    get errorsQueue(): ErrorRecord[] {\n        return this._errorsQueue;\n    }\n\n    /**\n     * ** Flag to instruct component to show all processed error or to peak the most important one, which is latest, according the HTTP Status code.\n     */\n    @Input() renderAllErrors = false;\n\n    /**\n     * ** Array of error codes for which Placeholder should listen and on ChangeDetection cycle to look for exact match into errorsQueue.\n     */\n    @Input() listenForErrors: string[] = [];\n\n    /**\n     * ** Array of error codes pattern for which Placeholder should listen and on ChangeDetection cycle to look for match into errorsQueue.\n     */\n    @Input() listenForErrorPatterns: string[] = [];\n\n    /**\n     * ** Error context.\n     *\n     *      - Visualized only if listened error code(s) exist in errorsQueue.\n     */\n    get errorContext(): string {\n        return this._errorContext;\n    }\n\n    /**\n     * ** Error context.\n     */\n    @Input() set errorContext(value: string) {\n        if (CollectionsUtil.isString(value) && value.length > 0) {\n            this._errorContext = value;\n        } else {\n            this._errorContext = 'Page data';\n        }\n    }\n\n    /**\n     * ** Context singular or plural.\n     *\n     *      - If true - it's plural\n     *      - If false - it's singular\n     */\n    @Input() plural = false;\n\n    /**\n     * ** Flag that identifies if error ot empty state template should be rendered.\n     */\n    showError = false;\n\n    /**\n     * ** Flag that indicates for error template is used system default.\n     */\n    isErrorTemplateSystemDefault = false;\n\n    /**\n     * ** Identified ErrorRecords in {@link errorsQueue} that exact match {@link listenForErrors} or match {@link listenForErrorPatterns}\n     *\n     *      - injected to custom error template if provided\n     *      - used when only one error should be shown\n     */\n    identifiedErrors: ErrorRecord[] = [];\n\n    /**\n     * ** Identified ErrorRecord in {@link errorsQueue} that exact match {@link listenForErrors} or match {@link listenForErrorPatterns}\n     *\n     *      - injected to custom error template if provided\n     *      - used when only one error should be shown\n     */\n    identifiedErrorWithApiMessage: IdentifiedErrorRecordWithMessage = {\n        record: [],\n        problem: '',\n        description: '',\n        mitigation: '',\n        escalation: '',\n        impactedServices: '',\n        apiMessage: null,\n        imageSrc: '',\n        imageWidth: ErrorImgStyle.Width.Generic,\n        imageOpacity: ErrorImgStyle.Opacity\n    };\n\n    /**\n     * ** Identified ErrorRecords in {@link errorsQueue} that exact match {@link listenForErrors} or match {@link listenForErrorPatterns}\n     *\n     *      - injected to custom error template if provided\n     *      - used if iteration of errors is requested\n     */\n    identifiedErrorsWithApiMessage: IdentifiedErrorRecordWithMessage[] = [];\n\n    // empty state private fields\n    private _emptyMessage = EmptyMessage.Generic;\n    private _isEmptyMessageExternal = false;\n\n    private _emptyImgSrc: string = EmptyImgSource.Generic;\n    private _isEmptyImgSrcExternal = false;\n\n    private _emptyImgWidth = EmptyImgStyle.Width;\n    private _emptyImgOpacity = EmptyImgStyle.Opacity;\n\n    private _hideDefaultEmptyStateImageInGrid = false;\n\n    // error state private fields\n    private _errorsQueue: ErrorRecord[] = [];\n\n    private _errorContext = 'Page data';\n\n    /**\n     * ** Constructor.\n     */\n    constructor(\n        private readonly elementRef: ElementRef<HTMLElement>,\n        private readonly renderer2: Renderer2,\n        private readonly placeholderService: PlaceholderService,\n        @Inject(SHARED_FEATURES_CONFIG_TOKEN) private readonly featureConfig: PlaceholderConfig\n    ) {\n        super();\n\n        const serviceRequestUrl = featureConfig?.placeholder?.serviceRequestUrl ? featureConfig.placeholder.serviceRequestUrl : '#';\n\n        ErrorEscalation.Generic = CollectionsUtil.interpolateString(ErrorEscalation.Generic, {\n            searchValue: '%service_req_url%',\n            replaceValue: serviceRequestUrl\n        });\n\n        ErrorEscalation.NotFound = CollectionsUtil.interpolateString(ErrorEscalation.NotFound, {\n            searchValue: '%service_req_url%',\n            replaceValue: serviceRequestUrl\n        });\n    }\n\n    /**\n     * ** Resolves custom or system error for identified Error.\n     */\n    resolveErrorTemplate(identifiedErrorRecordWithMessage: IdentifiedErrorRecordWithMessage): TemplateRef<never> {\n        const httpStatusCode = identifiedErrorRecordWithMessage?.record[0]?.httpStatusCode;\n\n        let templateRef: TemplateRef<never>;\n\n        // find exact match for custom template depend on Http Status Code\n        switch (httpStatusCode) {\n            case HttpStatusCode.BadRequest:\n                templateRef = this.errorTemplateRefBadRequest;\n                break;\n            case HttpStatusCode.Unauthorized:\n                templateRef = this.errorTemplateRefUnauthorized;\n                break;\n            case HttpStatusCode.Forbidden:\n                templateRef = this.errorTemplateRefForbidden;\n                break;\n            case HttpStatusCode.NotFound:\n                templateRef = this.errorTemplateRefNotFound;\n                break;\n            case HttpStatusCode.MethodNotAllowed:\n                templateRef = this.errorTemplateRefMethodNotAllowed;\n                break;\n            case HttpStatusCode.Conflict:\n                templateRef = this.errorTemplateRefConflict;\n                break;\n            case HttpStatusCode.UnprocessableEntity:\n                templateRef = this.errorTemplateRefUnprocessableEntity;\n                break;\n            case HttpStatusCode.InternalServerError:\n                templateRef = this.errorTemplateRefInternalServerError;\n                break;\n            case HttpStatusCode.ServiceUnavailable:\n                templateRef = this.errorTemplateRefServiceUnavailable;\n                break;\n            default:\n            // No-op.\n        }\n\n        this.isErrorTemplateSystemDefault = false;\n\n        // if found exact match for custom template to Http Status Code return immediately\n        if (templateRef instanceof TemplateRef) {\n            return templateRef;\n        }\n\n        // find match for custom template depend on group 4xx of Http Status Codes\n        if (httpStatusCode >= 400 && httpStatusCode < 500 && this.errorTemplateRefClientErrors instanceof TemplateRef) {\n            return this.errorTemplateRefClientErrors;\n        }\n\n        // find match for custom template depend on group 5xx of Http Status Codes\n        if (httpStatusCode >= 500 && this.errorTemplateRefServerErrors instanceof TemplateRef) {\n            return this.errorTemplateRefServerErrors;\n        }\n\n        // fallback to custom generic error template\n        if (this.errorTemplateRefGeneric instanceof TemplateRef) {\n            return this.errorTemplateRefGeneric;\n        }\n\n        this.isErrorTemplateSystemDefault = true;\n\n        // return system default error template\n        return this.errorTemplateRefSystemDefault;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    ngOnChanges(changes: SimpleChanges): void {\n        if (\n            PlaceholderComponent._isPropertyChanged(changes, 'loading') ||\n            PlaceholderComponent._isPropertyChanged(changes, 'errorsQueue') ||\n            PlaceholderComponent._isPropertyChanged(changes, 'listenForErrors') ||\n            PlaceholderComponent._isPropertyChanged(changes, 'listenForErrorPatterns')\n        ) {\n            this._executeRefineCycle();\n        }\n    }\n\n    /**\n     * @inheritDoc\n     */\n    ngOnInit(): void {\n        this._executeRefineCycle();\n    }\n\n    private _executeRefineCycle(): void {\n        try {\n            this._refineErrorState();\n            this.placeholderService.refineElementsState(this.elementRef, this._hideDefaultEmptyStateImageInGrid);\n        } catch (e) {\n            console.error(e);\n        }\n    }\n\n    private _refineErrorState(): void {\n        // filter error records and return only records that for component is listening\n        const filteredErrorRecords = filterErrorRecords(this.errorsQueue, this.listenForErrors, this.listenForErrorPatterns);\n\n        // listened errors records exist, then show error state\n        this.showError = filteredErrorRecords.length > 0;\n\n        // check is empty state image in grid should be hidden\n        // if error always hide\n        // if empty hide/show depends on injected flag\n        this._hideDefaultEmptyStateImageInGrid = this.showError || this.hideDefaultEmptyStateImageInGrid;\n\n        // reset buffers that transport data to view template (HTML template)\n        this._resetTransportBuffers();\n\n        if (!this.showError) {\n            return;\n        }\n\n        // populate buffers that transport data to view template (HTML template)\n        this._populateTransportBuffers(filteredErrorRecords);\n    }\n\n    private _resetTransportBuffers(): void {\n        this.identifiedErrors = [];\n\n        this.identifiedErrorWithApiMessage = {\n            record: [],\n            problem: '',\n            description: '',\n            mitigation: '',\n            escalation: '',\n            impactedServices: '',\n            apiMessage: null,\n            imageSrc: '',\n            imageWidth: ErrorImgStyle.Width.Generic,\n            imageOpacity: ErrorImgStyle.Opacity\n        };\n        this.identifiedErrorsWithApiMessage = [];\n    }\n\n    private _populateTransportBuffers(errorRecords: ErrorRecord[]): void {\n        this.identifiedErrors = [...errorRecords];\n        this.identifiedErrorWithApiMessage = this._getErrorsToIdentifiedError(errorRecords);\n        this.identifiedErrorsWithApiMessage = errorRecords.map((record) => this._getErrorToIdentifiedError(record));\n    }\n\n    private _getErrorToIdentifiedError(record: ErrorRecord): IdentifiedErrorRecordWithMessage {\n        if (window && window.navigator && !window.navigator.onLine) {\n            return {\n                record: [record],\n                problem: ErrorProblem.Offline,\n                description: ErrorDescription.Offline,\n                mitigation: ErrorMitigation.Offline,\n                escalation: ErrorEscalation.Offline,\n                impactedServices: '',\n                apiMessage: this.placeholderService.extractErrorInformation(record.error),\n                imageSrc: ErrorImgSource.Offline,\n                imageWidth: ErrorImgStyle.Width.Offline,\n                imageOpacity: ErrorImgStyle.Opacity\n            };\n        }\n\n        if (record && record.httpStatusCode === HttpStatusCode.NotFound) {\n            return {\n                record: [record],\n                problem: CollectionsUtil.interpolateString(ErrorProblem.NotFound, this._errorContext, this.plural ? 'are' : 'is'),\n                description: CollectionsUtil.interpolateString(ErrorDescription.NotFound, this._errorContext, this.plural ? 'are' : 'is'),\n                mitigation: ErrorMitigation.NotFound,\n                escalation: ErrorEscalation.NotFound,\n                impactedServices: '',\n                apiMessage: this.placeholderService.extractErrorInformation(record.error),\n                imageSrc: ErrorImgSource.NotFound,\n                imageWidth: ErrorImgStyle.Width.NotFound,\n                imageOpacity: ErrorImgStyle.Opacity\n            };\n        }\n\n        return {\n            record: [record],\n            problem: CollectionsUtil.interpolateString(ErrorProblem.Generic, this._errorContext, this.plural ? 'are' : 'is'),\n            description: CollectionsUtil.interpolateString(ErrorDescription.Generic, this._errorContext, this.plural ? 'are' : 'is'),\n            mitigation: ErrorMitigation.Generic,\n            escalation: ErrorEscalation.Generic,\n            impactedServices: PlaceholderService.extractClassPublicName(record),\n            apiMessage: this.placeholderService.extractErrorInformation(record.error),\n            imageSrc: ErrorImgSource.Generic,\n            imageWidth: ErrorImgStyle.Width.Generic,\n            imageOpacity: ErrorImgStyle.Opacity\n        };\n    }\n\n    private _getErrorsToIdentifiedError(errorRecords: ErrorRecord[]): IdentifiedErrorRecordWithMessage {\n        if (window && window.navigator && !window.navigator.onLine) {\n            return {\n                record: errorRecords,\n                problem: ErrorProblem.Offline,\n                description: ErrorDescription.Offline,\n                mitigation: ErrorMitigation.Offline,\n                escalation: ErrorEscalation.Offline,\n                impactedServices: '',\n                apiMessage: this.placeholderService.extractErrorInformation(new Error('No Internet Connection')),\n                imageSrc: ErrorImgSource.Offline,\n                imageWidth: ErrorImgStyle.Width.Offline,\n                imageOpacity: ErrorImgStyle.Opacity\n            };\n        }\n\n        const latestIdentifiedError: ErrorRecord = errorRecords[0];\n        let filteredErrors: ErrorRecord[] = [];\n        let filteredErrorsTmp: ErrorRecord[];\n\n        // search for ServiceUnavailable 503\n        filteredErrorsTmp = errorRecords.filter((r) => r.httpStatusCode === HttpStatusCode.ServiceUnavailable);\n        if (filteredErrorsTmp.length > 0) {\n            // if time between latest and identified service unavailable is less than 2s show Service Unavailable\n            if (latestIdentifiedError.code === filteredErrorsTmp[0].code || latestIdentifiedError.time - filteredErrorsTmp[0].time < 2000) {\n                filteredErrors = filteredErrorsTmp;\n            }\n        }\n\n        // search for InternalServerError 500\n        filteredErrorsTmp = errorRecords.filter((r) => r.httpStatusCode === HttpStatusCode.InternalServerError);\n        if (filteredErrors.length === 0 && filteredErrorsTmp.length > 0) {\n            // if time between latest and identified internal server error is less than 2s show Internal Server Error\n            if (latestIdentifiedError.code === filteredErrorsTmp[0].code || latestIdentifiedError.time - filteredErrorsTmp[0].time < 2000) {\n                filteredErrors = filteredErrorsTmp;\n            }\n        }\n\n        // search for NotFound 404\n        filteredErrorsTmp = errorRecords.filter((r) => r.httpStatusCode === HttpStatusCode.NotFound);\n        if (filteredErrors.length === 0 && filteredErrorsTmp.length > 0) {\n            // if time between latest and identified not found is less than 2s show Not Found\n            if (latestIdentifiedError.code === filteredErrorsTmp[0].code || latestIdentifiedError.time - filteredErrorsTmp[0].time < 2000) {\n                filteredErrors = filteredErrorsTmp;\n\n                return {\n                    record: filteredErrors,\n                    problem: CollectionsUtil.interpolateString(ErrorProblem.NotFound, this._errorContext, this.plural ? 'are' : 'is'),\n                    description: CollectionsUtil.interpolateString(\n                        ErrorDescription.NotFound,\n                        this._errorContext,\n                        this.plural ? 'are' : 'is'\n                    ),\n                    mitigation: ErrorMitigation.NotFound,\n                    escalation: ErrorEscalation.NotFound,\n                    impactedServices: '',\n                    apiMessage: this.placeholderService.extractErrorInformation(filteredErrors[0].error),\n                    imageSrc: ErrorImgSource.NotFound,\n                    imageWidth: ErrorImgStyle.Width.NotFound,\n                    imageOpacity: ErrorImgStyle.Opacity\n                };\n            }\n        }\n\n        // fallback to all identified services\n        if (filteredErrors.length === 0) {\n            filteredErrors = errorRecords;\n        }\n\n        return {\n            record: filteredErrors,\n            problem: CollectionsUtil.interpolateString(ErrorProblem.Generic, this._errorContext, this.plural ? 'are' : 'is'),\n            description: CollectionsUtil.interpolateString(ErrorDescription.Generic, this._errorContext),\n            mitigation: ErrorMitigation.Generic,\n            escalation: ErrorEscalation.Generic,\n            impactedServices: PlaceholderService.extractClassesPublicNames(filteredErrors),\n            apiMessage: this.placeholderService.extractErrorInformation(filteredErrors[0].error),\n            imageSrc: ErrorImgSource.Generic,\n            imageWidth: ErrorImgStyle.Width.Generic,\n            imageOpacity: ErrorImgStyle.Opacity\n        };\n    }\n\n    private static _isPropertyChanged(changes: SimpleChanges, field: string): boolean {\n        return changes[field] && changes[field].currentValue !== changes[field].previousValue;\n    }\n}\n","<!--\n   ~ Copyright 2023-2025 Broadcom\n   ~ SPDX-License-Identifier: Apache-2.0\n  -->\n\n<!-- eslint-disable @angular-eslint/template/no-call-expression -->\n\n<span class=\"shared__placeholder\">\n    <!-- partial loaded on error -->\n    <ng-container *ngIf=\"showError\">\n        <div\n            class=\"shared__placeholder-error-container\"\n            [ngClass]=\"{ 'shared__placeholder-error-container--system-default': isErrorTemplateSystemDefault }\"\n        >\n            <!-- render all identified errors -->\n            <ng-container *ngIf=\"renderAllErrors; else renderSingleChosenError\">\n                <ng-container\n                    *ngFor=\"let error of identifiedErrorsWithApiMessage\"\n                >\n                    <!-- resolve error template according the error record -->\n                    <ng-container\n                        *ngTemplateOutlet=\"resolveErrorTemplate(error); context: {$implicit: {\n                                                                                                            errors: error.record,\n                                                                                                            problem: error.problem,\n                                                                                                            description: error.description,\n                                                                                                            mitigation: error.mitigation,\n                                                                                                            escalation: error.escalation,\n                                                                                                            impactedServices: error.impactedServices,\n                                                                                                            what: error.apiMessage?.what,\n                                                                                                            why: error.apiMessage?.why,\n                                                                                                            consequences: error.apiMessage?.consequences,\n                                                                                                            countermeasures: error.apiMessage?.countermeasures,\n                                                                                                            imageSrc: error.imageSrc,\n                                                                                                            imageWidth: error.imageWidth,\n                                                                                                            imageOpacity: error.imageOpacity\n                                                                                                         }}\"\n                    ></ng-container>\n                </ng-container>\n            </ng-container>\n\n            <!-- render identified chosen error according the http status code precedence and record time -->\n            <ng-template #renderSingleChosenError>\n                <!-- resolve error template according the error record -->\n                <ng-container\n                    *ngTemplateOutlet=\"resolveErrorTemplate(identifiedErrorWithApiMessage); context: {$implicit: {\n                                                                                                                                errors: identifiedErrorWithApiMessage.record,\n                                                                                                                                problem: identifiedErrorWithApiMessage.problem,\n                                                                                                                                description: identifiedErrorWithApiMessage.description,\n                                                                                                                                mitigation: identifiedErrorWithApiMessage.mitigation,\n                                                                                                                                escalation: identifiedErrorWithApiMessage.escalation,\n                                                                                                                                impactedServices: identifiedErrorWithApiMessage.impactedServices,\n                                                                                                                                what: identifiedErrorWithApiMessage.apiMessage?.what,\n                                                                                                                                why: identifiedErrorWithApiMessage.apiMessage?.why,\n                                                                                                                                consequences: identifiedErrorWithApiMessage.apiMessage?.consequences,\n                                                                                                                                countermeasures: identifiedErrorWithApiMessage.apiMessage?.countermeasures,\n                                                                                                                                imageSrc: identifiedErrorWithApiMessage.imageSrc,\n                                                                                                                                imageWidth: identifiedErrorWithApiMessage.imageWidth,\n                                                                                                                                imageOpacity: identifiedErrorWithApiMessage.imageOpacity\n                                                                                                                             }}\"\n                ></ng-container>\n            </ng-template>\n        </div>\n    </ng-container>\n\n    <!-- partial loaded on empty state -->\n    <ng-container *ngIf=\"!showError\">\n        <!-- injected custom empty template -->\n        <ng-container *ngIf=\"emptyTemplateRef; else defaultEmptyTemplate\">\n            <ng-container *ngTemplateOutlet=\"emptyTemplateRef\"></ng-container>\n        </ng-container>\n\n        <!-- default empty template -->\n        <ng-template #defaultEmptyTemplate>\n            <!-- show default empty state template with custom image -->\n            <ng-container\n                *ngIf=\"showCustomEmptyStateImage; else onlyEmptyStateMessage\"\n            >\n                <shared-empty-state [title]=\"emptyMessage\">\n                    <img\n                        [src]=\"emptyImgSrc\"\n                        [style.width]=\"emptyImgWidth\"\n                        [style.opacity]=\"emptyImgOpacity\"\n                        alt=\"Empty state icon\"\n                    />\n                </shared-empty-state>\n            </ng-container>\n\n            <!-- show only empty state message -->\n            <ng-template #onlyEmptyStateMessage>{{ emptyMessage }}</ng-template>\n        </ng-template>\n    </ng-container>\n</span>\n\n<!-- system default error template -->\n<ng-template #errorTemplateSystemDefault let-error>\n    <div class=\"shared__placeholder-error-template--system-default\">\n        <img\n            *ngIf=\"error.imageSrc; else offlineErrorImageTemplate\"\n            [src]=\"error.imageSrc\"\n            [style.width]=\"error.imageWidth\"\n            [style.opacity]=\"error.imageOpacity\"\n            alt=\"Error state icon\"\n        />\n\n        <ng-template #offlineErrorImageTemplate>\n            <svg\n                [style.width]=\"error.imageWidth\"\n                [style.height]=\"'auto'\"\n                [style.margin-bottom]=\"'-50px'\"\n                id=\"Robot_unplugg_animation\"\n                image-rendering=\"auto\"\n                baseProfile=\"basic\"\n                version=\"1.1\"\n                preserveAspectRatio=\"xMidYMid meet\"\n                x=\"0px\"\n                y=\"0px\"\n                width=\"280\"\n                height=\"203\"\n                xmlns=\"http://www.w3.org/2000/svg\"\n                viewBox=\"0 0 550 400\"\n                xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n            >\n                <defs>\n                    <g\n                        id=\"character.ai_hand-and-plug_.__3CClip-Group.__3E\"\n                        overflow=\"visible\"\n                    >\n                        <g mask=\"url(#mask_)\" />\n                        <mask id=\"mask_\">\n                            <g>\n                                <g>\n                                    <g id=\"Layer84_0_FILL\">\n                                        <path\n                                            fill=\"#FFF\"\n                                            stroke=\"none\"\n                                            d=\"M0 35.9L19.05 35.9 19.05 1.65 0 1.65 0 35.9Z\"\n                                            fill-opacity=\"1\"\n                                        />\n                                    </g>\n                                </g>\n                            </g>\n                        </mask>\n                    </g>\n                    <linearGradient\n                        id=\"Gradient_1\"\n                        gradientUnits=\"userSpaceOnUse\"\n                        x1=\"257.1\"\n                        y1=\"72.3\"\n                        x2=\"27.599\"\n                        y2=\"72.3\"\n                        spreadMethod=\"pad\"\n                    >\n                        <stop offset=\"0%\" stop-color=\"#FFF\" />\n                        <stop offset=\"13.333%\" stop-color=\"#F8E5D2\" />\n                        <stop offset=\"28.627%\" stop-color=\"#F1CAA4\" />\n                        <stop offset=\"44.313%\" stop-color=\"#ECB47F\" />\n                        <stop offset=\"59.215%\" stop-color=\"#E8A364\" />\n                        <stop offset=\"73.725%\" stop-color=\"#E59751\" />\n                        <stop offset=\"87.843%\" stop-color=\"#E38F47\" />\n                        <stop offset=\"100%\" stop-color=\"#E38D44\" />\n                    </linearGradient>\n                    <linearGradient\n                        id=\"Gradient_2\"\n                        gradientUnits=\"userSpaceOnUse\"\n                        x1=\"28.087\"\n                        y1=\"51.35\"\n                        x2=\"20.612\"\n                        y2=\"56.050\"\n                        spreadMethod=\"pad\"\n                    >\n                        <stop offset=\"27.843%\" stop-color=\"#58B6A5\" />\n                        <stop offset=\"83.529%\" stop-color=\"#41938A\" />\n                    </linearGradient>\n                    <linearGradient\n                        id=\"Gradient_3\"\n                        gradientUnits=\"userSpaceOnUse\"\n                        x1=\"37.912\"\n                        y1=\"28.637\"\n                        x2=\"6.687\"\n                        y2=\"37.562\"\n                        spreadMethod=\"pad\"\n                    >\n                        <stop offset=\"27.843%\" stop-color=\"#58B6A5\" />\n                        <stop offset=\"83.529%\" stop-color=\"#41938A\" />\n                    </linearGradient>\n                    <linearGradient\n                        id=\"Gradient_4\"\n                        gradientUnits=\"userSpaceOnUse\"\n                        x1=\"7.937\"\n                        y1=\"68.012\"\n                        x2=\"58.262\"\n                        y2=\"15.987\"\n                        spreadMethod=\"pad\"\n                    >\n                        <stop offset=\"4.705%\" stop-color=\"#D2E6F5\" />\n                        <stop offset=\"16.862%\" stop-color=\"#CCE3F4\" />\n                        <stop offset=\"33.725%\" stop-color=\"#BCDBF1\" />\n                        <stop offset=\"53.333%\" stop-color=\"#A2CEED\" />\n                        <stop offset=\"65.882%\" stop-color=\"#90C5E9\" />\n                    </linearGradient>\n                    <linearGradient\n                        id=\"Gradient_5\"\n                        gradientUnits=\"userSpaceOnUse\"\n                        x1=\"67.137\"\n                        y1=\"-4.287\"\n                        x2=\"39.162\"\n                        y2=\"31.587\"\n                        spreadMethod=\"pad\"\n                    >\n                        <stop offset=\"0%\" stop-color=\"#D2E6F5\" />\n                        <stop offset=\"100%\" stop-color=\"#90C5E9\" />\n                    </linearGradient>\n                    <linearGradient\n                        id=\"Gradient_6\"\n                        gradientUnits=\"userSpaceOnUse\"\n                        x1=\"65.149\"\n                        y1=\"60.125\"\n                        x2=\"118.45\"\n                        y2=\"46.974\"\n                        spreadMethod=\"pad\"\n                    >\n                        <stop offset=\"0%\" stop-color=\"#5B96CC\" />\n                        <stop offset=\"100%\" stop-color=\"#90C5E9\" />\n                    </linearGradient>\n                    <linearGradient\n                        id=\"Gradient_7\"\n                        gradientUnits=\"userSpaceOnUse\"\n                        x1=\"58.55\"\n                        y1=\"111.087\"\n                        x2=\"44.95\"\n                        y2=\"1.112\"\n                        spreadMethod=\"pad\"\n                    >\n                        <stop offset=\"47.450%\" stop-color=\"#D2E6F5\" />\n                        <stop offset=\"58.039%\" stop-color=\"#CCE3F4\" />\n                        <stop offset=\"72.549%\" stop-color=\"#BCDBF1\" />\n                        <stop offset=\"89.411%\" stop-color=\"#A2CEED\" />\n                        <stop offset=\"100%\" stop-color=\"#90C5E9\" />\n                    </linearGradient>\n                    <linearGradient\n                        id=\"Gradient_8\"\n                        gradientUnits=\"userSpaceOnUse\"\n                        x1=\"94.55\"\n                        y1=\"173.375\"\n                        x2=\"94.55\"\n                        y2=\"95.425\"\n                        spreadMethod=\"pad\"\n                    >\n                        <stop offset=\"27.843%\" stop-color=\"#58B6A5\" />\n                        <stop offset=\"83.529%\" stop-color=\"#41938A\" />\n                    </linearGradient>\n                    <linearGradient\n                        id=\"Gradient_9\"\n                        gradientUnits=\"userSpaceOnUse\"\n                        x1=\"35.15\"\n                        y1=\"97.6\"\n                        x2=\"35.15\"\n                        y2=\"181.9\"\n                        spreadMethod=\"pad\"\n                    >\n                        <stop offset=\"27.843%\" stop-color=\"#58B6A5\" />\n                        <stop offset=\"83.529%\" stop-color=\"#41938A\" />\n                    </linearGradient>\n                    <linearGradient\n                        id=\"Gradient_10\"\n                        gradientUnits=\"userSpaceOnUse\"\n                        x1=\"-3\"\n                        y1=\"74.55\"\n                        x2=\"151.8\"\n                        y2=\"74.55\"\n                        spreadMethod=\"pad\"\n                    >\n                        <stop offset=\"0%\" stop-color=\"#FFF\" />\n                        <stop offset=\"9.019%\" stop-color=\"#FAEEE1\" />\n                        <stop offset=\"26.274%\" stop-color=\"#F3D0AF\" />\n                        <stop offset=\"43.137%\" stop-color=\"#EDB886\" />\n                        <stop offset=\"59.607%\" stop-color=\"#E8A567\" />\n                        <stop offset=\"74.901%\" stop-color=\"#E59853\" />\n                        <stop offset=\"88.627%\" stop-color=\"#E39048\" />\n                        <stop offset=\"100%\" stop-color=\"#E38D44\" />\n                    </linearGradient>\n                    <linearGradient\n                        id=\"Gradient_11\"\n                        gradientUnits=\"userSpaceOnUse\"\n                        x1=\"42.675\"\n                        y1=\"21.737\"\n                        x2=\"-6.074\"\n                        y2=\"33.762\"\n                        spreadMethod=\"pad\"\n                    >\n                        <stop offset=\"27.843%\" stop-color=\"#58B6A5\" />\n                        <stop offset=\"83.529%\" stop-color=\"#41938A\" />\n                    </linearGradient>\n                    <linearGradient\n                        id=\"Gradient_12\"\n                        gradientUnits=\"userSpaceOnUse\"\n                        x1=\"37.125\"\n                        y1=\"21.737\"\n                        x2=\"-11.625\"\n                        y2=\"33.762\"\n                        spreadMethod=\"pad\"\n                    >\n                        <stop offset=\"27.843%\" stop-color=\"#58B6A5\" />\n                        <stop offset=\"83.529%\" stop-color=\"#41938A\" />\n                    </linearGradient>\n                    <linearGradient\n                        id=\"Gradient_13\"\n                        gradientUnits=\"userSpaceOnUse\"\n                        x1=\"257.1\"\n                        y1=\"72.25\"\n                        x2=\"27.599\"\n                        y2=\"72.25\"\n                        spreadMethod=\"pad\"\n                    >\n                        <stop offset=\"0%\" stop-color=\"#FFF\" />\n                        <stop offset=\"13.333%\" stop-color=\"#F8E5D2\" />\n                        <stop offset=\"28.627%\" stop-color=\"#F1CAA4\" />\n                        <stop offset=\"44.313%\" stop-color=\"#ECB47F\" />\n                        <stop offset=\"59.215%\" stop-color=\"#E8A364\" />\n                        <stop offset=\"73.725%\" stop-color=\"#E59751\" />\n                        <stop offset=\"87.843%\" stop-color=\"#E38F47\" />\n                        <stop offset=\"100%\" stop-color=\"#E38D44\" />\n                    </linearGradient>\n                    <linearGradient\n                        id=\"Gradient_14\"\n                        gradientUnits=\"userSpaceOnUse\"\n                        x1=\"59.5\"\n                        y1=\"-65.375\"\n                        x2=\"59.5\"\n                        y2=\"111.675\"\n                        spreadMethod=\"pad\"\n                    >\n                        <stop\n                            offset=\"11.764%\"\n                            stop-color=\"#90C5E9\"\n                            stop-opacity=\"0\"\n                        />\n                        <stop\n                            offset=\"100%\"\n                            stop-color=\"#90C5E9\"\n                            stop-opacity=\".498\"\n                        />\n                    </linearGradient>\n                    <linearGradient\n                        id=\"Gradient_15\"\n                        gradientUnits=\"userSpaceOnUse\"\n                        x1=\"0\"\n                        y1=\"-144.75\"\n                        x2=\"0\"\n                        y2=\"144.75\"\n                        spreadMethod=\"pad\"\n                    >\n                        <stop\n                            offset=\"12.549%\"\n                            stop-color=\"#90C5E9\"\n                            stop-opacity=\"0\"\n                        />\n                        <stop\n                            offset=\"60%\"\n                            stop-color=\"#90C5E9\"\n                            stop-opacity=\".498\"\n                        />\n                        <stop\n                            offset=\"96.078%\"\n                            stop-color=\"#90C5E9\"\n                            stop-opacity=\"0\"\n                        />\n                    </linearGradient>\n                    <linearGradient\n                        id=\"Gradient_16\"\n                        gradientUnits=\"userSpaceOnUse\"\n                        x1=\"19.200\"\n                        y1=\"57.312\"\n                        x2=\"11.9\"\n                        y2=\"-1.812\"\n                        spreadMethod=\"pad\"\n                    >\n                        <stop offset=\"27.843%\" stop-color=\"#58B6A5\" />\n                        <stop offset=\"55.294%\" stop-color=\"#56B3A3\" />\n                        <stop offset=\"79.607%\" stop-color=\"#41938A\" />\n                    </linearGradient>\n                    <linearGradient\n                        id=\"Gradient_17\"\n                        gradientUnits=\"userSpaceOnUse\"\n                        x1=\"23.950\"\n                        y1=\"57.312\"\n                        x2=\"16.65\"\n                        y2=\"-1.812\"\n                        spreadMethod=\"pad\"\n                    >\n                        <stop offset=\"27.843%\" stop-color=\"#58B6A5\" />\n                        <stop offset=\"55.294%\" stop-color=\"#56B3A3\" />\n                        <stop offset=\"79.607%\" stop-color=\"#41938A\" />\n                    </linearGradient>\n                </defs>\n                <g id=\"Scene-1\" overflow=\"visible\">\n                    <g id=\"Symbol-94\" transform=\"translate(275.2 183.3)\">\n                        <path\n                            fill=\"url(#Gradient_15)\"\n                            stroke=\"none\"\n                            d=\"M215.1 -144.75L73.7 -143.95 -215.05 144.75 -74.45 144.75 215.1 -144.75Z\"\n                        />\n                        <path\n                            fill=\"url(#Gradient_14)\"\n                            stroke=\"none\"\n                            d=\"M210.1 -65.4L85.15 -64.9 -91.1 111.65 33.3 111.65 210.1 -65.4Z\"\n                        />\n                    </g>\n                    <g id=\"Symbol-93\" transform=\"translate(213.6 32.3)\">\n                        <animateTransform\n                            attributeName=\"transform\"\n                            additive=\"replace\"\n                            type=\"translate\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.005;.009;.014;.018;.023;.028;.032;.037;.041;.046;.051;.055;.06;.065;.069;.074;.078;.083;.088;.092;.097;.101;.106;.111;.115;.12;.124;.129;.433;.438;.442;.447;.452;.456;.461;1\"\n                            values=\"228.45,80.45;228.501,80.45;228.453,80.498;228.505,80.447;228.505,80.547;228.508,80.546;228.459,80.496;228.46,80.494;228.512,80.444;228.461,80.532;228.462,80.482;228.514,80.431;228.516,80.531;228.517,80.48;228.469,80.53;228.471,80.529;228.522,80.479;228.52,80.514;228.472,80.464;228.524,80.513;228.525,80.513;228.527,80.512;228.528,80.512;228.48,80.46;228.53,80.509;228.479,80.544;230.53,79.494;232.582,78.494;234.635,77.543;234.635,77.543;234.634,77.48;234.633,77.478;234.631,77.408;234.626,77.432;234.641,77.495;234.681,77.477;234.681,77.477\"\n                        />\n                        <animateTransform\n                            attributeName=\"transform\"\n                            additive=\"sum\"\n                            type=\"rotate\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.005;.009;.014;.018;.023;.028;.032;.037;.041;.046;.051;.055;.06;.065;.069;.074;.078;.083;.088;.092;.097;.101;.106;.111;.115;.12;.124;.129;.438;.442;.447;.452;.456;.461;1\"\n                            values=\"0,0,0;-.008,0,0;-.015,0,0;-.023,0,0;-.03,0,0;-.038,0,0;-.045,0,0;-.052,0,0;-.06,0,0;-.255,0,0;-.262,0,0;-.27,0,0;-.277,0,0;-.285,0,0;-.295,0,0;-.302,0,0;-.31,0,0;-.505,0,0;-.512,0,0;-.52,0,0;-.527,0,0;-.535,0,0;-.543,0,0;-.55,0,0;-.558,0,0;-.753,0,0;-.76,0,0;-.768,0,0;-.777,0,0;-.777,0,0;-.776,0,0;-6.761,0,0;-12.563,0,0;-5.036,0,0;2.294,0,0;2.294,0,0\"\n                        />\n                        <animateTransform\n                            attributeName=\"transform\"\n                            additive=\"sum\"\n                            type=\"scale\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.442;.447;.456;.461;1\"\n                            values=\"1,1;1,1;1,.999;1,.999;1,1;1,1\"\n                        />\n                        <animateTransform\n                            attributeName=\"transform\"\n                            additive=\"sum\"\n                            type=\"translate\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.005;.009;.014;.018;.023;.028;.032;.037;.041;.046;.051;.055;.06;.069;.074;.078;.083;.088;.092;.106;.111;.115;.12;.124;.129;.433;.438;.442;.447;.452;.456;.461;1\"\n                            values=\"-14.85,-48.15;-14.95,-48.15;-14.9,-48.25;-14.95,-48.15;-14.9,-48.3;-14.9,-48.2;-14.9,-48.25;-14.9,-48.2;-14.95,-48.2;-14.95,-48.25;-14.95,-48.25;-15,-48.15;-14.95,-48.25;-14.9,-48.25;-14.9,-48.25;-14.95,-48.25;-14.95,-48.2;-14.95,-48.25;-15,-48.2;-14.95,-48.25;-14.95,-48.25;-15,-48.2;-14.95,-48.25;-14.95,-48.2;-14.9,-48.25;-14.9,-48.3;-14.9,-48.3;-15.9,-48.2;-15.95,-48.25;-15.9,-48.1;-15.95,-48.15;-15.95,-48.25;-15.95,-48.2;-15.95,-48.2\"\n                        />\n                        <path\n                            fill=\"#5B96CC\"\n                            stroke=\"none\"\n                            d=\"M8.45 41Q5.55 44.1 5.65 48.4 5.8 52.65 8.9 55.55 12 58.45 16.25 58.3 20.5 58.2 23.45 55.1 26.35 52 26.2 47.7 26.05 43.45 22.95 40.55 19.85 37.65 15.6 37.8 11.35 37.9 8.45 41Z\"\n                        />\n                        <path\n                            id=\"Layer10_0_1_STROKES\"\n                            stroke=\"#5B96CC\"\n                            stroke-width=\"4.45\"\n                            stroke-linejoin=\"miter\"\n                            stroke-linecap=\"butt\"\n                            stroke-miterlimit=\"10\"\n                            fill=\"none\"\n                            d=\"M14.8 46.5L7.85 5.55\"\n                        />\n                        <path\n                            fill=\"#5B96CC\"\n                            stroke=\"none\"\n                            d=\"M10.6 6.8Q11.75 5.6 11.65 3.95 11.6 2.25 10.4 1.1 9.15 -.05 7.5 0 5.8 .1 4.65 1.3 3.55 2.5 3.6 4.2 3.65 5.85 4.85 7 6.05 8.15 7.75 8.1 9.45 8.05 10.6 6.8Z\"\n                        />\n                    </g>\n                    <g id=\"Symbol-92\" transform=\"translate(229.15 40.05)\">\n                        <animateTransform\n                            attributeName=\"transform\"\n                            additive=\"replace\"\n                            type=\"translate\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.115;.12;.124;.129;1\"\n                            values=\"293.6,117.1;293.6,117.1;293.643,117.115;293.6,117.132;293.601,117.125;293.601,117.125\"\n                        />\n                        <animateTransform\n                            attributeName=\"transform\"\n                            additive=\"sum\"\n                            type=\"rotate\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.115;.12;.124;.129;1\"\n                            values=\"0,0,0;0,0,0;2.288,0,0;4.766,0,0;7.055,0,0;7.055,0,0\"\n                        />\n                        <animateTransform\n                            attributeName=\"transform\"\n                            additive=\"sum\"\n                            type=\"scale\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.12;.124;1\"\n                            values=\"1,1;1,1;1,.999;1,.999\"\n                        />\n                        <animateTransform\n                            attributeName=\"transform\"\n                            additive=\"sum\"\n                            type=\"translate\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.115;.12;.124;.129;1\"\n                            values=\"-64.45,-77.05;-64.45,-77.05;-64.55,-77.1;-64.45,-77.15;-64.45,-77.1;-64.45,-77.1\"\n                        />\n                        <path\n                            fill=\"url(#Gradient_4)\"\n                            stroke=\"none\"\n                            d=\"M56.7 22.75Q54.3 11.55 44.85 5.05 35.35 -1.45 24.05 .4 13.35 2.15 6.5 10.5 -.35 18.85 0 29.7L6.15 77.05 64.45 65.85 56.7 22.75Z\"\n                        />\n                        <path\n                            fill=\"url(#Gradient_3)\"\n                            stroke=\"none\"\n                            d=\"M6.65 37.6Q8.5 44.05 14.4 47.35 20.3 50.6 26.75 48.75 33.25 46.9 36.5 41.05 39.8 35.15 37.9 28.65 36.05 22.15 30.2 18.9 24.3 15.65 17.8 17.5 11.35 19.35 8.1 25.25 4.8 31.1 6.65 37.6Z\"\n                        />\n                        <path\n                            fill=\"url(#Gradient_2)\"\n                            stroke=\"none\"\n                            d=\"M21.05 55.35L27.75 55.1Q28.4 55.1 28.8 54.6 29.25 54.15 29.25 53.5 29.2 52.9 28.75 52.45 28.3 52 27.65 52.05L20.95 52.3Q20.3 52.3 19.9 52.8 19.45 53.25 19.5 53.9 19.5 54.55 19.95 54.95 20.4 55.4 21.05 55.35Z\"\n                        />\n                    </g>\n                    <g id=\"Symbol-91\" transform=\"translate(244 79.45)\">\n                        <animateTransform\n                            attributeName=\"transform\"\n                            additive=\"replace\"\n                            type=\"translate\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.115;.12;.124;.129;.207;.212;.217;.221;.226;.23;.327;.332;.336;.341;.346;.35;.355;.59;.594;.599;.604;.608;.613;1\"\n                            values=\"251.2,82.55;251.2,82.55;253.55,78.55;255.9,74.55;258.3,70.55;258.3,70.55;258.3,70.589;258.3,70.606;258.3,70.601;258.3,70.624;258.35,70.596;258.35,70.596;258.3,70.55;258.3,70.55;258.3,70.589;258.3,70.558;258.3,70.588;258.35,70.596;258.35,70.596;258.3,70.55;258.3,70.55;258.3,70.589;258.3,70.558;258.35,70.596;258.35,70.596\"\n                        />\n                        <animateTransform\n                            attributeName=\"transform\"\n                            additive=\"sum\"\n                            type=\"scale\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.207;.212;.217;.221;.226;.23;.327;.332;.336;.341;.346;.35;.355;.59;.594;.599;.604;.608;.613;1\"\n                            values=\"1,1;1,1;1,.597;1,.194;1,.462;1,.73;1,1;1,1;1,1;1,1;1,.597;1,.194;1,.596;1,1;1,1;1,1;1,1;1,.597;1,.194;1,1;1,1\"\n                        />\n                        <animateTransform\n                            attributeName=\"transform\"\n                            additive=\"sum\"\n                            type=\"translate\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.207;.212;.217;.221;.226;.23;.327;.332;.336;.341;.346;.35;.355;.59;.594;.599;.604;.608;.613;1\"\n                            values=\"-7.2,-3.1;-7.2,-3.1;-7.2,-3.25;-7.25,-3.65;-7.2,-3.25;-7.2,-3.25;-7.25,-3.2;-7.25,-3.2;-7.2,-3.1;-7.2,-3.1;-7.2,-3.25;-7.25,-3.4;-7.2,-3.25;-7.25,-3.2;-7.25,-3.2;-7.2,-3.1;-7.2,-3.1;-7.2,-3.25;-7.25,-3.4;-7.25,-3.2;-7.25,-3.2\"\n                        />\n                        <path\n                            fill=\"#F0C34F\"\n                            stroke=\"none\"\n                            d=\"M5.3 5.35Q6.2 4.4 6.2 3.1 6.2 1.85 5.3 .9 4.4 0 3.1 0 1.85 0 .9 .9 0 1.85 0 3.1 0 4.4 .9 5.35 1.8 6.25 3.1 6.25 4.4 6.25 5.3 5.35Z\"\n                        />\n                        <path\n                            fill=\"#F0C34F\"\n                            stroke=\"none\"\n                            d=\"M13.5 5.35Q14.4 4.4 14.4 3.1 14.4 1.85 13.5 .9 12.6 0 11.3 0 10.05 0 9.1 .9 8.2 1.85 8.2 3.1 8.2 4.4 9.1 5.35 10 6.25 11.3 6.25 12.6 6.25 13.5 5.35Z\"\n                        />\n                    </g>\n                    <g display=\"none\">\n                        <g id=\"Symbol-89\" transform=\"translate(183.4 119.75)\">\n                            <path\n                                id=\"Layer7_0_1_STROKES\"\n                                stroke=\"url(#Gradient_17)\"\n                                stroke-width=\"11\"\n                                stroke-linejoin=\"miter\"\n                                stroke-linecap=\"butt\"\n                                stroke-miterlimit=\"10\"\n                                fill=\"none\"\n                                d=\"M46.4 0Q34.05 1.8 22.1 10.15 -1.8 26.95 .15 59.9\"\n                            />\n                        </g>\n                        <animate\n                            attributeName=\"display\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.101;.249;1\"\n                            values=\"none;inline;none;none\"\n                        />\n                    </g>\n                    <g display=\"none\">\n                        <g id=\"Symbol-88\" transform=\"translate(188.15 119.75)\">\n                            <path\n                                id=\"Layer6_0_1_STROKES\"\n                                stroke=\"url(#Gradient_16)\"\n                                stroke-width=\"11\"\n                                stroke-linejoin=\"miter\"\n                                stroke-linecap=\"butt\"\n                                stroke-miterlimit=\"10\"\n                                fill=\"none\"\n                                d=\"M41.65 0Q29.3 1.8 17.35 10.15 -6.55 26.95 2.5 60.5\"\n                            />\n                        </g>\n                        <animate\n                            attributeName=\"display\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.041;.101;.249;1\"\n                            values=\"none;inline;none;inline;inline\"\n                        />\n                    </g>\n                    <g>\n                        <g id=\"Symbol-87\" transform=\"translate(183.4 119.75)\">\n                            <path\n                                id=\"Layer5_0_1_STROKES\"\n                                stroke=\"url(#Gradient_17)\"\n                                stroke-width=\"11\"\n                                stroke-linejoin=\"miter\"\n                                stroke-linecap=\"butt\"\n                                stroke-miterlimit=\"10\"\n                                fill=\"none\"\n                                d=\"M46.4 0Q34.05 1.8 22.1 10.15 -1.8 26.95 .15 59.9\"\n                            />\n                        </g>\n                        <animate\n                            attributeName=\"display\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.041;1\"\n                            values=\"inline;none;none\"\n                        />\n                    </g>\n                    <g id=\"Symbol-86\" transform=\"translate(194.45 105.25)\">\n                        <path\n                            id=\"Layer66_0_1_STROKES\"\n                            stroke=\"url(#Gradient_9)\"\n                            stroke-width=\"11\"\n                            stroke-linejoin=\"miter\"\n                            stroke-linecap=\"butt\"\n                            stroke-miterlimit=\"10\"\n                            fill=\"none\"\n                            d=\"M41.1 100.75L38.55 105.45Q35.65 111.8 33.65 120 27.25 146.2 32.6 181.1\"\n                        />\n                        <path\n                            id=\"Layer67_0_1_STROKES\"\n                            stroke=\"url(#Gradient_8)\"\n                            stroke-width=\"11\"\n                            stroke-linejoin=\"miter\"\n                            stroke-linecap=\"butt\"\n                            stroke-miterlimit=\"10\"\n                            fill=\"none\"\n                            d=\"M86.6 99.45L89.15 102.75Q92.15 107.4 94.55 114.35 102.1 136.55 100.35 173.1\"\n                        />\n                        <path\n                            fill=\"url(#Gradient_7)\"\n                            stroke=\"none\"\n                            d=\"M32.95 2.55L15.45 26.1 11.8 90.35Q11.45 96.15 15.35 100.4 19.25 104.7 25.05 104.9L91.5 107 89.25 0 32.95 2.55Z\"\n                        />\n                        <path\n                            fill=\"url(#Gradient_6)\"\n                            stroke=\"none\"\n                            d=\"M106.6 1L89.25 0 74.15 23.8 72.45 86.7Q72.2 94.85 77.8 100.8 83.35 106.75 91.5 107 100.6 107.25 107.1 100.9 113.65 94.55 113.55 85.45L113.25 42.75Q112.9 25.5 109.7 11.55L106.6 1Z\"\n                        />\n                        <path\n                            id=\"Layer70_0_1_STROKES\"\n                            stroke=\"#5B96CC\"\n                            stroke-width=\"5.65\"\n                            stroke-linejoin=\"miter\"\n                            stroke-linecap=\"butt\"\n                            stroke-miterlimit=\"10\"\n                            fill=\"none\"\n                            d=\"M12.95 80.45L113.55 80.7\"\n                        />\n                        <path\n                            fill=\"#90C5E9\"\n                            stroke=\"none\"\n                            d=\"M57.7 34.25Q56.45 33 54.7 33.05L30.4 33.65Q28.75 33.7 27.6 34.85 26.45 36 26.4 37.65L25.6 62.2Q25.55 63.95 26.8 65.25 28.05 66.5 29.75 66.45L54.35 66.2Q56 66.15 57.2 65 58.35 63.85 58.4 62.15L58.9 37.25Q58.95 35.5 57.7 34.25Z\"\n                        />\n                        <path\n                            fill=\"#244173\"\n                            stroke=\"none\"\n                            d=\"M26.85 169.35Q15.05 169.35 6.35 178.15 2 182.55 0 186.95L44.5 186.95Q44.5 179.65 39.35 174.5 34.15 169.35 26.85 169.35Z\"\n                        />\n                        <path\n                            fill=\"#244173\"\n                            stroke=\"none\"\n                            d=\"M100.65 169.35Q93.35 169.35 88.15 174.5 83 179.65 83 186.95L121.3 186.95Q120.85 182.55 118.05 178.15 112.45 169.35 100.65 169.35Z\"\n                        />\n                        <path\n                            id=\"Layer74_0_1_STROKES\"\n                            stroke=\"#5B96CC\"\n                            stroke-width=\"5.65\"\n                            stroke-linejoin=\"miter\"\n                            stroke-linecap=\"butt\"\n                            stroke-miterlimit=\"10\"\n                            fill=\"none\"\n                            d=\"M83 186.9L121.3 186.9\"\n                        />\n                        <path\n                            id=\"Layer75_0_1_STROKES\"\n                            stroke=\"#5B96CC\"\n                            stroke-width=\"5.65\"\n                            stroke-linejoin=\"miter\"\n                            stroke-linecap=\"butt\"\n                            stroke-miterlimit=\"10\"\n                            fill=\"none\"\n                            d=\"M44.5 186.9L0 186.9\"\n                        />\n                        <path\n                            fill=\"url(#Gradient_5)\"\n                            stroke=\"none\"\n                            d=\"M32.95 2.55L15.45 26.1 74.15 23.8 89.25 0 32.95 2.55Z\"\n                        />\n                    </g>\n                    <g display=\"none\">\n                        <g id=\"Symbol-84\" transform=\"translate(56.05 160.45)\">\n                            <path\n                                id=\"Layer54_0_1_STROKES\"\n                                stroke=\"url(#Gradient_10)\"\n                                stroke-width=\"6\"\n                                stroke-linejoin=\"miter\"\n                                stroke-linecap=\"round\"\n                                stroke-miterlimit=\"10\"\n                                fill=\"none\"\n                                d=\"M0 128.3L65.55 128.3Q76.05 128.3 83.5 120.85 90.95 113.4 90.95 102.9L90.95 46.2Q90.95 35.65 98.4 28.25 105.8 20.8 116.35 20.8L148.8 20.8\"\n                            />\n                            <path\n                                fill=\"#244173\"\n                                stroke=\"none\"\n                                d=\"M129.05 33.65Q134.6 32.95 138.05 28.5 141.5 24.1 140.8 18.55 140.15 13 135.7 9.55 131.3 6.15 125.75 6.8 120.2 7.5 116.75 11.9 113.3 16.3 114 21.9 114.7 27.45 119.1 30.9 123.5 34.35 129.05 33.65Z\"\n                            />\n                            <path\n                                fill=\"#E38D44\"\n                                stroke=\"none\"\n                                d=\"M164.1 34.25L164.1 0 152.65 0Q145.55 0 140.55 5 135.55 10 135.55 17.1 135.55 24.2 140.55 29.25 145.55 34.25 152.65 34.25L164.1 34.25Z\"\n                            />\n                            <path\n                                fill=\"#DF623B\"\n                                stroke=\"none\"\n                                d=\"M170.8 29.25Q173.6 24.2 173.6 17.1 173.6 10 170.8 5 168 0 164.05 0 160.1 0 157.3 5 154.5 10 154.5 17.1 154.5 24.2 157.3 29.25 160.1 34.25 164.05 34.25 168 34.25 170.8 29.25Z\"\n                            />\n                            <path\n                                fill=\"#E38D44\"\n                                stroke=\"none\"\n                                d=\"M183.05 11.6Q183.85 10.85 183.85 9.75 183.85 8.65 183.05 7.9 182.3 7.1 181.2 7.1L166.15 7.1Q165.05 7.1 164.3 7.9 163.5 8.65 163.5 9.75 163.5 10.85 164.3 11.6 165.05 12.4 166.15 12.4L181.2 12.4Q182.3 12.4 183.05 11.6Z\"\n                            />\n                            <path\n                                fill=\"#E38D44\"\n                                stroke=\"none\"\n                                d=\"M183.85 24.35Q183.85 23.25 183.05 22.5 182.3 21.7 181.2 21.7L166.15 21.7Q165.05 21.7 164.3 22.5 163.5 23.25 163.5 24.35 163.5 25.45 164.3 26.2 165.05 27 166.15 27L181.2 27Q182.3 27 183.05 26.2 183.85 25.45 183.85 24.35Z\"\n                            />\n                        </g>\n                        <animate\n                            attributeName=\"display\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.101;.249;1\"\n                            values=\"none;inline;none;none\"\n                        />\n                    </g>\n                    <g display=\"none\">\n                        <g id=\"Symbol-83\" transform=\"translate(60.15 160.45)\">\n                            <path\n                                id=\"Layer48_0_1_STROKES\"\n                                stroke=\"url(#Gradient_10)\"\n                                stroke-width=\"6\"\n                                stroke-linejoin=\"miter\"\n                                stroke-linecap=\"round\"\n                                stroke-miterlimit=\"10\"\n                                fill=\"none\"\n                                d=\"M0 128.3L65.55 128.3Q76.05 128.3 83.5 120.85 90.95 113.4 90.95 102.9L90.95 46.2Q90.95 35.65 98.4 28.25 105.8 20.8 116.35 20.8L148.8 20.8\"\n                            />\n                            <path\n                                fill=\"#244173\"\n                                stroke=\"none\"\n                                d=\"M129.05 33.65Q134.6 32.95 138.05 28.5 141.5 24.1 140.8 18.55 140.15 13 135.7 9.55 131.3 6.15 125.75 6.8 120.2 7.5 116.75 11.9 113.3 16.3 114 21.9 114.7 27.45 119.1 30.9 123.5 34.35 129.05 33.65Z\"\n                            />\n                            <path\n                                fill=\"#E38D44\"\n                                stroke=\"none\"\n                                d=\"M164.1 34.25L164.1 0 152.65 0Q145.55 0 140.55 5 135.55 10 135.55 17.1 135.55 24.2 140.55 29.25 145.55 34.25 152.65 34.25L164.1 34.25Z\"\n                            />\n                            <path\n                                fill=\"#DF623B\"\n                                stroke=\"none\"\n                                d=\"M170.8 29.25Q173.6 24.2 173.6 17.1 173.6 10 170.8 5 168 0 164.05 0 160.1 0 157.3 5 154.5 10 154.5 17.1 154.5 24.2 157.3 29.25 160.1 34.25 164.05 34.25 168 34.25 170.8 29.25Z\"\n                            />\n                            <path\n                                fill=\"#E38D44\"\n                                stroke=\"none\"\n                                d=\"M183.05 11.6Q183.85 10.85 183.85 9.75 183.85 8.65 183.05 7.9 182.3 7.1 181.2 7.1L166.15 7.1Q165.05 7.1 164.3 7.9 163.5 8.65 163.5 9.75 163.5 10.85 164.3 11.6 165.05 12.4 166.15 12.4L181.2 12.4Q182.3 12.4 183.05 11.6Z\"\n                            />\n                            <path\n                                fill=\"#E38D44\"\n                                stroke=\"none\"\n                                d=\"M183.85 24.35Q183.85 23.25 183.05 22.5 182.3 21.7 181.2 21.7L166.15 21.7Q165.05 21.7 164.3 22.5 163.5 23.25 163.5 24.35 163.5 25.45 164.3 26.2 165.05 27 166.15 27L181.2 27Q182.3 27 183.05 26.2 183.85 25.45 183.85 24.35Z\"\n                            />\n                        </g>\n                        <animate\n                            attributeName=\"display\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.041;.101;.249;1\"\n                            values=\"none;inline;none;inline;inline\"\n                        />\n                    </g>\n                    <g>\n                        <g id=\"Symbol-82\" transform=\"translate(56.05 160.45)\">\n                            <path\n                                id=\"Layer42_0_1_STROKES\"\n                                stroke=\"url(#Gradient_10)\"\n                                stroke-width=\"6\"\n                                stroke-linejoin=\"miter\"\n                                stroke-linecap=\"round\"\n                                stroke-miterlimit=\"10\"\n                                fill=\"none\"\n                                d=\"M0 128.3L65.55 128.3Q76.05 128.3 83.5 120.85 90.95 113.4 90.95 102.9L90.95 46.2Q90.95 35.65 98.4 28.25 105.8 20.8 116.35 20.8L148.8 20.8\"\n                            />\n                            <path\n                                fill=\"#244173\"\n                                stroke=\"none\"\n                                d=\"M129.05 33.65Q134.6 32.95 138.05 28.5 141.5 24.1 140.8 18.55 140.15 13 135.7 9.55 131.3 6.15 125.75 6.8 120.2 7.5 116.75 11.9 113.3 16.3 114 21.9 114.7 27.45 119.1 30.9 123.5 34.35 129.05 33.65Z\"\n                            />\n                            <path\n                                fill=\"#E38D44\"\n                                stroke=\"none\"\n                                d=\"M164.1 34.25L164.1 0 152.65 0Q145.55 0 140.55 5 135.55 10 135.55 17.1 135.55 24.2 140.55 29.25 145.55 34.25 152.65 34.25L164.1 34.25Z\"\n                            />\n                            <path\n                                fill=\"#DF623B\"\n                                stroke=\"none\"\n                                d=\"M170.8 29.25Q173.6 24.2 173.6 17.1 173.6 10 170.8 5 168 0 164.05 0 160.1 0 157.3 5 154.5 10 154.5 17.1 154.5 24.2 157.3 29.25 160.1 34.25 164.05 34.25 168 34.25 170.8 29.25Z\"\n                            />\n                            <path\n                                fill=\"#E38D44\"\n                                stroke=\"none\"\n                                d=\"M183.05 11.6Q183.85 10.85 183.85 9.75 183.85 8.65 183.05 7.9 182.3 7.1 181.2 7.1L166.15 7.1Q165.05 7.1 164.3 7.9 163.5 8.65 163.5 9.75 163.5 10.85 164.3 11.6 165.05 12.4 166.15 12.4L181.2 12.4Q182.3 12.4 183.05 11.6Z\"\n                            />\n                            <path\n                                fill=\"#E38D44\"\n                                stroke=\"none\"\n                                d=\"M183.85 24.35Q183.85 23.25 183.05 22.5 182.3 21.7 181.2 21.7L166.15 21.7Q165.05 21.7 164.3 22.5 163.5 23.25 163.5 24.35 163.5 25.45 164.3 26.2 165.05 27 166.15 27L181.2 27Q182.3 27 183.05 26.2 183.85 25.45 183.85 24.35Z\"\n                            />\n                        </g>\n                        <animate\n                            attributeName=\"display\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.041;1\"\n                            values=\"inline;none;none\"\n                        />\n                    </g>\n                    <g id=\"Symbol-81\" transform=\"translate(224.25 140.85)\">\n                        <g id=\"Symbol-103\">\n                            <g display=\"none\" id=\"Layer39_0_FILL\">\n                                <path\n                                    fill=\"#D2E6F5\"\n                                    stroke=\"none\"\n                                    d=\"M3.1 3.8Q3.6 3.25 3.6 2.45 3.6 1.65 3.1 1.05 2.55 .5 1.8 .55 1.05 .6 .55 1.2 0 1.75 0 2.55 0 3.35 .55 3.9 1.05 4.45 1.8 4.4 2.55 4.4 3.1 3.8Z\"\n                                />\n                                <path\n                                    fill=\"#D2E6F5\"\n                                    stroke=\"none\"\n                                    d=\"M8.7 3.65Q9.3 3.05 9.3 2.2 9.3 1.4 8.7 .8 8.15 .25 7.35 .3 6.55 .35 6 .95 5.45 1.55 5.45 2.35 5.45 3.15 6 3.75 6.55 4.3 7.35 4.3 8.15 4.25 8.7 3.65Z\"\n                                />\n                                <path\n                                    fill=\"#D2E6F5\"\n                                    stroke=\"none\"\n                                    d=\"M14.8 3.5Q15.4 2.85 15.4 2 15.4 1.15 14.8 .55 14.2 -.05 13.35 0 12.5 .05 11.9 .65 11.3 1.3 11.3 2.15 11.3 3 11.9 3.55 12.5 4.15 13.35 4.1 14.2 4.1 14.8 3.5Z\"\n                                />\n                                <animate\n                                    attributeName=\"display\"\n                                    repeatCount=\"indefinite\"\n                                    dur=\"3s\"\n                                    keyTimes=\"0;.486;1\"\n                                    values=\"none;inline;inline\"\n                                />\n                            </g>\n                            <g display=\"none\" id=\"Layer37_0_FILL\">\n                                <path\n                                    fill=\"#D2E6F5\"\n                                    stroke=\"none\"\n                                    d=\"M8.7 3.7Q9.3 3.1 9.3 2.25 9.3 1.45 8.7 .85 8.15 .3 7.35 .35 6.55 .4 6 1 5.45 1.6 5.45 2.4 5.45 3.2 6 3.8 6.55 4.35 7.35 4.35 8.15 4.3 8.7 3.7Z\"\n                                />\n                                <path\n                                    fill=\"#D2E6F5\"\n                                    stroke=\"none\"\n                                    d=\"M14.8 .6Q14.2 0 13.35 .05 12.5 .1 11.9 .7 11.3 1.35 11.3 2.2 11.3 3.05 11.9 3.6 12.5 4.2 13.35 4.15 14.2 4.15 14.8 3.55 15.4 2.9 15.4 2.05 15.4 1.2 14.8 .6Z\"\n                                />\n                                <animate\n                                    attributeName=\"display\"\n                                    repeatCount=\"indefinite\"\n                                    dur=\"3s\"\n                                    keyTimes=\"0;.347;.486;1\"\n                                    values=\"none;inline;none;none\"\n                                />\n                            </g>\n                            <g display=\"none\" id=\"Layer35_0_FILL\">\n                                <path\n                                    fill=\"#D2E6F5\"\n                                    stroke=\"none\"\n                                    d=\"M3.15 3.8Q3.65 3.25 3.65 2.45 3.65 1.65 3.15 1.05 2.6 .5 1.85 .55 1.1 .6 .6 1.2 .05 1.75 .05 2.55 .05 3.35 .6 3.9 1.1 4.45 1.85 4.4 2.6 4.4 3.15 3.8Z\"\n                                />\n                                <path\n                                    fill=\"#D2E6F5\"\n                                    stroke=\"none\"\n                                    d=\"M8.7 3.65Q9.3 3.05 9.3 2.2 9.3 1.4 8.7 .8 8.15 .25 7.35 .3 6.55 .35 6 .95 5.45 1.55 5.45 2.35 5.45 3.15 6 3.75 6.55 4.3 7.35 4.3 8.15 4.25 8.7 3.65Z\"\n                                />\n                                <animate\n                                    attributeName=\"display\"\n                                    repeatCount=\"indefinite\"\n                                    dur=\"3s\"\n                                    keyTimes=\"0;.208;.347;1\"\n                                    values=\"none;inline;none;none\"\n                                />\n                            </g>\n                            <g display=\"none\" id=\"Layer33_0_FILL\">\n                                <path\n                                    fill=\"#D2E6F5\"\n                                    stroke=\"none\"\n                                    d=\"M3.1 3.8Q3.6 3.25 3.6 2.45 3.6 1.65 3.1 1.05 2.55 .5 1.8 .55 1.05 .6 .55 1.2 0 1.75 0 2.55 0 3.35 .55 3.9 1.05 4.45 1.8 4.4 2.55 4.4 3.1 3.8Z\"\n                                />\n                                <path\n                                    fill=\"#D2E6F5\"\n                                    stroke=\"none\"\n                                    d=\"M14.8 3.5Q15.4 2.85 15.4 2 15.4 1.15 14.8 .55 14.2 -.05 13.35 0 12.5 .05 11.9 .65 11.3 1.3 11.3 2.15 11.3 3 11.9 3.55 12.5 4.15 13.35 4.1 14.2 4.1 14.8 3.5Z\"\n                                />\n                                <animate\n                                    attributeName=\"display\"\n                                    repeatCount=\"indefinite\"\n                                    dur=\"3s\"\n                                    keyTimes=\"0;.097;.208;1\"\n                                    values=\"none;inline;none;none\"\n                                />\n                            </g>\n                            <g id=\"Layer30_0_FILL\">\n                                <path\n                                    fill=\"#D2E6F5\"\n                                    stroke=\"none\"\n                                    d=\"M3.1 3.8Q3.6 3.25 3.6 2.45 3.6 1.65 3.1 1.05 2.55 .5 1.8 .55 1.05 .6 .55 1.2 0 1.75 0 2.55 0 3.35 .55 3.9 1.05 4.45 1.8 4.4 2.55 4.4 3.1 3.8Z\"\n                                />\n                                <path\n                                    fill=\"#D2E6F5\"\n                                    stroke=\"none\"\n                                    d=\"M8.7 3.65Q9.3 3.05 9.3 2.2 9.3 1.4 8.7 .8 8.15 .25 7.35 .3 6.55 .35 6 .95 5.45 1.55 5.45 2.35 5.45 3.15 6 3.75 6.55 4.3 7.35 4.3 8.15 4.25 8.7 3.65Z\"\n                                />\n                                <path\n                                    fill=\"#D2E6F5\"\n                                    stroke=\"none\"\n                                    d=\"M14.8 3.5Q15.4 2.85 15.4 2 15.4 1.15 14.8 .55 14.2 -.05 13.35 0 12.5 .05 11.9 .65 11.3 1.3 11.3 2.15 11.3 3 11.9 3.55 12.5 4.15 13.35 4.1 14.2 4.1 14.8 3.5Z\"\n                                />\n                                <animate\n                                    attributeName=\"display\"\n                                    repeatCount=\"indefinite\"\n                                    dur=\"3s\"\n                                    keyTimes=\"0;.097;1\"\n                                    values=\"inline;none;none\"\n                                />\n                            </g>\n                        </g>\n                    </g>\n                    <g display=\"none\">\n                        <g id=\"Symbol-79\" transform=\"translate(278.95 120.4)\">\n                            <path\n                                id=\"Layer28_0_1_STROKES\"\n                                stroke=\"url(#Gradient_12)\"\n                                stroke-width=\"11\"\n                                stroke-linejoin=\"miter\"\n                                stroke-linecap=\"round\"\n                                stroke-miterlimit=\"10\"\n                                fill=\"none\"\n                                d=\"M15.65 0L21.45 3.85Q27.65 9 29.75 15.15 36.55 34.95 0 58\"\n                            />\n                        </g>\n                        <animate\n                            attributeName=\"display\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.101;.249;1\"\n                            values=\"none;inline;none;none\"\n                        />\n                    </g>\n                    <g display=\"none\">\n                        <g id=\"Symbol-78\" transform=\"translate(273.45 120.4)\">\n                            <path\n                                id=\"Layer27_0_1_STROKES\"\n                                stroke=\"url(#Gradient_11)\"\n                                stroke-width=\"11\"\n                                stroke-linejoin=\"miter\"\n                                stroke-linecap=\"round\"\n                                stroke-miterlimit=\"10\"\n                                fill=\"none\"\n                                d=\"M21.2 0L27 3.85Q33.2 9 35.3 15.15 42.1 34.95 .05 57.75\"\n                            />\n                        </g>\n                        <animate\n                            attributeName=\"display\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.041;.101;.249;1\"\n                            values=\"none;inline;none;inline;inline\"\n                        />\n                    </g>\n                    <g>\n                        <g id=\"Symbol-77\" transform=\"translate(278.95 120.4)\">\n                            <path\n                                id=\"Layer26_0_1_STROKES\"\n                                stroke=\"url(#Gradient_12)\"\n                                stroke-width=\"11\"\n                                stroke-linejoin=\"miter\"\n                                stroke-linecap=\"round\"\n                                stroke-miterlimit=\"10\"\n                                fill=\"none\"\n                                d=\"M15.65 0L21.45 3.85Q27.65 9 29.75 15.15 36.55 34.95 0 58\"\n                            />\n                        </g>\n                        <animate\n                            attributeName=\"display\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.041;1\"\n                            values=\"inline;none;none\"\n                        />\n                    </g>\n                    <g display=\"none\">\n                        <g id=\"Symbol-75\" transform=\"translate(222 160.45)\">\n                            <path\n                                id=\"Layer18_0_1_STROKES\"\n                                stroke=\"url(#Gradient_13)\"\n                                stroke-width=\"6\"\n                                stroke-linejoin=\"miter\"\n                                stroke-linecap=\"round\"\n                                stroke-miterlimit=\"10\"\n                                fill=\"none\"\n                                d=\"M254.1 126L113.8 126Q103.3 126 95.9 118.55 88.45 111.15 88.45 100.6L88.45 43.9Q88.45 33.4 81 26 73.55 18.55 63.05 18.55L30.55 18.55\"\n                            />\n                            <path\n                                fill=\"#E38D44\"\n                                stroke=\"none\"\n                                d=\"M20.95 34.25Q28.05 34.25 33.05 29.25 38.1 24.2 38.1 17.1 38.1 10 33.05 5 28.05 0 20.95 0L9.55 0 9.55 34.25 20.95 34.25Z\"\n                            />\n                            <path\n                                fill=\"#E38D44\"\n                                stroke=\"none\"\n                                d=\"M2.8 5Q0 10 0 17.1 0 24.2 2.8 29.25 5.55 34.25 9.5 34.25 13.45 34.25 16.25 29.25 19.05 24.25 19.05 17.1 19.05 10 16.25 5 13.45 0 9.5 0 5.55 0 2.8 5Z\"\n                            />\n                            <use\n                                xlink:href=\"#character.ai_hand-and-plug_.__3CClip-Group.__3E\"\n                                transform=\"translate(-.75 -1.65)\"\n                            />\n                            <path\n                                fill=\"#244173\"\n                                stroke=\"none\"\n                                d=\"M57.55 32.6Q63.1 31.75 66.4 27.2 69.65 22.7 68.8 17.15 67.9 11.6 63.4 8.3 58.85 5.05 53.3 5.9 47.8 6.8 44.5 11.35 41.2 15.85 42.1 21.4 42.95 26.9 47.5 30.2 52.05 33.5 57.55 32.6Z\"\n                            />\n                        </g>\n                        <animate\n                            attributeName=\"display\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.101;.249;1\"\n                            values=\"none;inline;none;none\"\n                        />\n                    </g>\n                    <g display=\"none\">\n                        <g id=\"Symbol-74\" transform=\"translate(217.3 160.45)\">\n                            <path\n                                id=\"Layer14_0_1_STROKES\"\n                                stroke=\"url(#Gradient_13)\"\n                                stroke-width=\"6\"\n                                stroke-linejoin=\"miter\"\n                                stroke-linecap=\"round\"\n                                stroke-miterlimit=\"10\"\n                                fill=\"none\"\n                                d=\"M254.1 126L113.8 126Q103.3 126 95.9 118.55 88.45 111.15 88.45 100.6L88.45 43.9Q88.45 33.4 81 26 73.55 18.55 63.05 18.55L30.55 18.55\"\n                            />\n                            <path\n                                fill=\"#E38D44\"\n                                stroke=\"none\"\n                                d=\"M20.95 34.25Q28.05 34.25 33.05 29.25 38.1 24.2 38.1 17.1 38.1 10 33.05 5 28.05 0 20.95 0L9.55 0 9.55 34.25 20.95 34.25Z\"\n                            />\n                            <path\n                                fill=\"#E38D44\"\n                                stroke=\"none\"\n                                d=\"M2.8 5Q0 10 0 17.1 0 24.2 2.8 29.25 5.55 34.25 9.5 34.25 13.45 34.25 16.25 29.25 19.05 24.25 19.05 17.1 19.05 10 16.25 5 13.45 0 9.5 0 5.55 0 2.8 5Z\"\n                            />\n                            <use\n                                xlink:href=\"#character.ai_hand-and-plug_.__3CClip-Group.__3E\"\n                                transform=\"translate(-.75 -1.65)\"\n                            />\n                            <path\n                                fill=\"#244173\"\n                                stroke=\"none\"\n                                d=\"M57.55 32.6Q63.1 31.75 66.4 27.2 69.65 22.7 68.8 17.15 67.9 11.6 63.4 8.3 58.85 5.05 53.3 5.9 47.8 6.8 44.5 11.35 41.2 15.85 42.1 21.4 42.95 26.9 47.5 30.2 52.05 33.5 57.55 32.6Z\"\n                            />\n                        </g>\n                        <animate\n                            attributeName=\"display\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.041;.101;.249;1\"\n                            values=\"none;inline;none;inline;inline\"\n                        />\n                    </g>\n                    <g>\n                        <g id=\"Symbol-73\" transform=\"translate(222 160.45)\">\n                            <path\n                                id=\"Layer82_0_1_STROKES\"\n                                stroke=\"url(#Gradient_1)\"\n                                stroke-width=\"6\"\n                                stroke-linejoin=\"miter\"\n                                stroke-linecap=\"round\"\n                                stroke-miterlimit=\"10\"\n                                fill=\"none\"\n                                d=\"M254.1 126.05L113.8 126.05Q103.3 126.05 95.9 118.6 88.45 111.2 88.45 100.65L88.45 43.95Q88.45 33.45 81 26.05 73.55 18.6 63.05 18.6L30.55 18.6\"\n                            />\n                            <path\n                                fill=\"#244173\"\n                                stroke=\"none\"\n                                d=\"M57.55 32.6Q63.1 31.75 66.4 27.2 69.65 22.7 68.8 17.15 67.9 11.6 63.4 8.3 58.85 5.05 53.3 5.9 47.8 6.8 44.5 11.35 41.2 15.85 42.1 21.4 42.95 26.9 47.5 30.2 52.05 33.5 57.55 32.6Z\"\n                            />\n                            <path\n                                fill=\"#E38D44\"\n                                stroke=\"none\"\n                                d=\"M21 34.3Q28.1 34.3 33.1 29.3 38.15 24.25 38.15 17.15 38.15 10.05 33.1 5.05 28.1 .05 21 .05L9.6 .05 9.6 34.3 21 34.3Z\"\n                            />\n                            <path\n                                fill=\"#E38D44\"\n                                stroke=\"none\"\n                                d=\"M2.85 5.05Q.05 10.05 .05 17.15 .05 24.25 2.85 29.3 5.6 34.3 9.55 34.3 13.5 34.3 16.3 29.3 19.1 24.3 19.1 17.15 19.1 10.05 16.3 5.05 13.5 .05 9.55 .05 5.6 .05 2.85 5.05Z\"\n                            />\n                        </g>\n                        <animate\n                            attributeName=\"display\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.041;1\"\n                            values=\"inline;none;none\"\n                        />\n                    </g>\n                    <g display=\"none\" id=\"Layer3_0_FILL\">\n                        <path\n                            fill=\"#DF613B\"\n                            stroke=\"none\"\n                            d=\"M231.15 165.6Q233.65 160.55 237.1 160.55L237.35 160.5 232.4 160.5Q229.75 162.8 228.15 167.35 226.55 172 226.55 177.6 226.55 183.25 228.2 187.9 229.8 192.45 232.5 194.75L237.55 194.75 237.1 194.65Q233.65 194.65 231.15 189.6 228.6 184.55 228.6 177.6 228.6 170.65 231.15 165.6Z\"\n                        />\n                        <animate\n                            attributeName=\"display\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.101;.249;1\"\n                            values=\"none;inline;none;none\"\n                        />\n                    </g>\n                    <g display=\"none\" id=\"Layer2_0_FILL\">\n                        <path\n                            fill=\"#DF613B\"\n                            stroke=\"none\"\n                            d=\"M226.05 165.6Q228.55 160.55 232 160.55L232.25 160.5 227.3 160.5Q224.65 162.8 223.05 167.35 221.45 172 221.45 177.6 221.45 183.25 223.1 187.9 224.7 192.45 227.4 194.75L232.45 194.75 232 194.65Q228.55 194.65 226.05 189.6 223.5 184.55 223.5 177.6 223.5 170.65 226.05 165.6Z\"\n                        />\n                        <animate\n                            attributeName=\"display\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.041;.101;.249;1\"\n                            values=\"none;inline;none;inline;inline\"\n                        />\n                    </g>\n                    <g id=\"Layer1_0_FILL\">\n                        <path\n                            fill=\"#DF613B\"\n                            stroke=\"none\"\n                            d=\"M231.2 165.55Q233.7 160.5 237.15 160.5L237.4 160.45 232.45 160.45Q229.8 162.75 228.2 167.3 226.6 171.95 226.6 177.55 226.6 183.2 228.25 187.85 229.85 192.4 232.55 194.7L237.6 194.7 237.15 194.6Q233.7 194.6 231.2 189.55 228.65 184.5 228.65 177.55 228.65 170.6 231.2 165.55Z\"\n                        />\n                        <animate\n                            attributeName=\"display\"\n                            repeatCount=\"indefinite\"\n                            dur=\"9.042s\"\n                            keyTimes=\"0;.041;1\"\n                            values=\"inline;none;none\"\n                        />\n                    </g>\n                </g>\n            </svg>\n        </ng-template>\n\n        <h2>{{ error.problem }}</h2>\n        <h3>\n            <span>{{ error.description }}</span>\n            <ng-container\n                *ngIf=\"error.mitigation && error.mitigation.length > 0\"\n            >\n                <span> {{ error.mitigation }}</span>\n            </ng-container>\n            <ng-container\n                *ngIf=\"error.escalation && error.escalation.length > 0\"\n            >\n                <br />\n                <span\n                    class=\"shared__placeholder-error-template-escalation\"\n                    [innerHTML]=\"error.escalation\"\n                ></span>\n            </ng-container>\n        </h3>\n        <h4 *ngIf=\"error.impactedServices && error.impactedServices.length > 0\">\n            <span>Impacted services: {{ error.impactedServices }}</span>\n        </h4>\n    </div>\n</ng-template>\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './empty-state';\nexport * from './placeholder.component';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ClarityModule } from '@clr/angular';\n\nimport { EmptyStateComponent, PlaceholderComponent } from './components';\n\n/**\n * ** Placeholder module\n */\n@NgModule({\n    imports: [CommonModule, ClarityModule],\n    declarations: [EmptyStateComponent, PlaceholderComponent],\n    exports: [EmptyStateComponent, PlaceholderComponent],\n    schemas: [NO_ERRORS_SCHEMA]\n})\nexport class PlaceholderModule {}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport { EmptyStateComponent, PlaceholderComponent } from './components';\nexport { PlaceholderModule } from './placeholder.module';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Component, OnInit } from '@angular/core';\n\nimport { ClipboardService } from 'ngx-clipboard';\n\nimport { VmwToastType } from '../../../commons';\n\nimport { TaurusObject } from '../../../common';\n\nimport { Toast } from '../model';\nimport { ToastService } from '../service';\n\ninterface ToastInternal extends Toast {\n    id: number;\n    time: Date;\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    error?: any;\n}\n\n@Component({\n    selector: 'shared-toasts',\n    templateUrl: './toasts.component.html',\n    styleUrls: ['./toasts.component.scss']\n})\nexport class ToastsComponent extends TaurusObject implements OnInit {\n    private static toastMessageCounter = 0;\n\n    toasts: ToastInternal[];\n\n    constructor(\n        private readonly toastService: ToastService,\n        private readonly clipboardService: ClipboardService\n    ) {\n        super();\n        this.toasts = [];\n    }\n\n    /**\n     * ** Optimize Toast rendering using tracking with auto incremented ID per Toast.\n     */\n    trackByRendering(_index: number, toast: ToastInternal): number {\n        return toast.id;\n    }\n\n    /**\n     * ** Returns if Toast with given index is expanded.\n     */\n    isToastExpanded(index: number): boolean {\n        return this.toasts[index].expanded;\n    }\n\n    /**\n     * ** Evaluate if recommendation text for Copy and Report is visible.\n     */\n    isReportRecommendationVisible(toast: ToastInternal, index: number): boolean {\n        return this.isToastExpanded(index) && this._isTypeError(toast) && toast.responseStatus !== 500;\n    }\n\n    /**\n     * ** Remove Toast message.\n     */\n    removeToast(index: number): void {\n        this.toasts.splice(index, 1);\n    }\n\n    /**\n     * ** Toggle Toast expand details (expand/collapse).\n     */\n    toggleToastExpandDetails(index: number): void {\n        this.toasts[index].expanded = !this.toasts[index].expanded;\n    }\n\n    /**\n     * ** Copy to clipboard provided object.\n     */\n    copyToClipboard(copy: ToastInternal): void {\n        try {\n            this.clipboardService.copy(JSON.stringify(copy));\n        } catch (e) {\n            console.error(e);\n\n            this._handleCopyActionError();\n        }\n    }\n\n    /**\n     * ** Returns Toast timeout in unit seconds.\n     */\n    getTimeout(toast: ToastInternal): number {\n        return this._isTypeError(toast) ? 30 : 5;\n    }\n\n    /**\n     * ** Returns text for Btn CopyToClipboard.\n     */\n    getCopyToClipboardBtnText(toast: ToastInternal): string {\n        return this._isTypeError(toast) ? 'Copy to clipboard' : '';\n    }\n\n    /**\n     * ** Returns text for Btn Expand/Collapse.\n     */\n    getExpandBtnText(toast: ToastInternal, index: number): string {\n        if (this._isTypeError(toast)) {\n            return this.isToastExpanded(index) ? 'less' : 'more';\n        }\n\n        return '';\n    }\n\n    /**\n     * @inheritDoc\n     */\n    ngOnInit() {\n        this.subscriptions.push(\n            this.toastService.getNotifications().subscribe((toast: Toast) => {\n                this.toasts.push({\n                    ...toast,\n                    id: ToastsComponent.generateID(),\n                    time: ToastsComponent.getDateTimeNow()\n                });\n            }),\n            this.clipboardService.copyResponse$.subscribe((result) => {\n                if (!result.isSuccess) {\n                    this._handleCopyActionError();\n                }\n            })\n        );\n    }\n\n    private _isTypeError(toast: Toast): boolean {\n        return toast.type === VmwToastType.FAILURE && !!toast.error;\n    }\n\n    private _handleCopyActionError(): void {\n        this.toasts.push({\n            type: VmwToastType.FAILURE,\n            title: `Copy to clipboard`,\n            description: `The view definition failed to copy to the clipboard`,\n            id: ToastsComponent.generateID(),\n            time: ToastsComponent.getDateTimeNow()\n        });\n    }\n\n    /* eslint-disable @typescript-eslint/member-ordering */\n    private static generateID(): number {\n        return this.toastMessageCounter++;\n    }\n\n    private static getDateTimeNow(): Date {\n        return new Date();\n    }\n}\n","<!--\n   ~ Copyright 2023-2025 Broadcom\n   ~ SPDX-License-Identifier: Apache-2.0\n  -->\n\n<vdk-toast-container class=\"toast-container\">\n    <vdk-toast\n        *ngFor=\"let toast of toasts; let i = index; trackBy: trackByRendering\"\n        [type]=\"toast.type\"\n        [timeoutSeconds]=\"getTimeout(toast)\"\n        [primaryButtonText]=\"getCopyToClipboardBtnText(toast)\"\n        [secondaryButtonText]=\"getExpandBtnText(toast, i)\"\n        (dismissed)=\"removeToast(i)\"\n        (primaryButtonClick)=\"copyToClipboard(toast)\"\n        (secondaryButtonClick)=\"toggleToastExpandDetails(i)\"\n    >\n        <div class=\"toast-title\">{{toast.title}}</div>\n\n        <p class=\"toast-description\">{{toast.description}}</p>\n        <p\n            *ngIf=\"isToastExpanded(i) && toast.error?.consequences\"\n            class=\"toast-description\"\n        >\n            <strong>consequences:</strong> {{toast.error?.consequences}}\n        </p>\n        <p\n            *ngIf=\"isToastExpanded(i) && toast.error?.countermeasures\"\n            class=\"toast-description\"\n        >\n            <strong>countermeasures:</strong> {{toast.error?.countermeasures}}\n        </p>\n        <p\n            *ngIf=\"isReportRecommendationVisible(toast,i)\"\n            class=\"toast-description\"\n        >\n            Please copy the details and report the error.\n        </p>\n    </vdk-toast>\n</vdk-toast-container>\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './toasts.component';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ClipboardModule } from 'ngx-clipboard';\n\nimport { ClarityModule } from '@clr/angular';\n\nimport { VdkSharedComponentsModule } from '../../commons';\n\nimport { ToastsComponent } from './widget';\n\n@NgModule({\n    imports: [CommonModule, ClarityModule, VdkSharedComponentsModule, ClipboardModule],\n    declarations: [ToastsComponent],\n    exports: [ToastsComponent]\n})\nexport class ToastsModule {}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport { Toast, FormattedError } from './model';\nexport { ToastService } from './service';\nexport { ToastsComponent } from './widget';\nexport { ToastsModule } from './toasts.module';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './model';\nexport * from './services';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Injectable } from '@angular/core';\nimport { Params } from '@angular/router';\n\nimport { CookieService } from 'ngx-cookie-service';\n\nimport { CollectionsUtil } from '../../../utils';\n\nimport { TaurusObject } from '../../../common';\n\nimport { NavigationService } from '../../../core';\n\nimport { ConfirmationOutputModel, ConfirmationService } from '../../confirmation';\n\nimport { UrlOpenerModel, UrlOpenerTarget } from '../model';\n\n/**\n * ** Internal service model.\n */\ninterface NextStepModel {\n    /**\n     * ** Is provided url external.\n     */\n    external: boolean;\n    /**\n     * ** Sanitized url.\n     *\n     *      - Could be use in future if some sanitization is needed for some special cases.\n     */\n    sanitizedUrl: string;\n    /**\n     * ** Does url be open in new tab.\n     */\n    newTab: boolean;\n}\n\n/**\n * ** Url Opener Service that opens internal and external urls depends on provided instructions.\n *\n *      - Utilizes <code>Promise<boolean></code> for communication to invoker that is resolved after navigation.\n *      - Internal urls could be open directly without confirmation or explicitly with confirmation,\n *              while external are always prompt for confirmation it there is no option to skip confirmation for next navigations,\n *              and User prompt such confirmation to be skipped.\n *      - Skipped confirmation are persisted in Cookie storage as Origin for external urls and as Url for internal urls.\n *      - Returned Promise is resolved upon navigation ends with true (successful navigation) or false (unsuccessful navigation),\n *              or rejected with value string if it's on User behalf,\n *              or if there is some internal handled error it will be rejected with instance of Error and message of the specific problem.\n */\n@Injectable()\nexport class UrlOpenerService extends TaurusObject {\n    /**\n     * @inheritDoc\n     */\n    static override readonly CLASS_NAME: string = 'UrlOpenerService';\n\n    /**\n     * ** Application origin, resolved upon service declaration.\n     *\n     * @private\n     */\n    private readonly _origin: string;\n\n    /**\n     * ** Cookie key where service state is persisted, resolved upon service declaration.\n     *\n     *      - It's service Class Name encoded to Base64.\n     *\n     * @private\n     */\n    private readonly _cookieKey: string;\n\n    /**\n     * ** Application state, for which origins/urls confirmation should be skipped.\n     *\n     * @private\n     */\n    private _skippedOriginsUrlsMap: Record<string, '1'> = {};\n\n    /**\n     * ** Constructor.\n     */\n    constructor(\n        private readonly navigationService: NavigationService,\n        private readonly confirmationService: ConfirmationService,\n        private readonly cookieService: CookieService\n    ) {\n        super(UrlOpenerService.CLASS_NAME);\n\n        try {\n            this._origin = window.location.origin;\n            this._cookieKey = UrlOpenerService._encodeBase64(UrlOpenerService.CLASS_NAME);\n        } catch (e) {\n            console.error(`${UrlOpenerService.CLASS_NAME}: Potential bug found, cannot identify Cookie key and Origin`);\n        }\n    }\n\n    /**\n     * ** Open provided Url to default _blank target.\n     *\n     *      - Internal urls are open directly without confirmation, while external are always prompt for confirmation.\n     *      - Returned Promise is resolved upon navigation ends with true (successful navigation) or false (unsuccessful navigation),\n     *              or if there is some internal handled error it will be rejected with instance of Error and message of the specific problem.\n     *      - Every url which starts with pattern http:// or https:// and its origin is different from Application origin is marked as external url.\n     *      - Everything else is internal url.\n     */\n    open(url: string): Promise<boolean>;\n    /**\n     * ** Open provided Url using provided target _self or _blank\n     *\n     *      - Internal urls are open directly without confirmation, while external are always prompt for confirmation.\n     *      - Returned Promise is resolved upon navigation ends with true (successful navigation) or false (unsuccessful navigation),\n     *              or if there is some internal handled error it will be rejected with instance of Error and message of the specific problem.\n     *      - Every url which starts with pattern http:// or https:// and its origin is different from Application origin is marked as external url.\n     *      - Everything else is internal url.\n     */\n    open(url: string, target: UrlOpenerTarget): Promise<boolean>;\n    /**\n     * ** Open provided Url using provided target _self or _blank and utilizing provided model and service will set some defaults for optional fields.\n     *\n     *      - Internal urls could be open directly without confirmation or explicitly with confirmation depend on provided model,\n     *              while external are always prompt for confirmation it there is no option to skip confirmation for next navigations,\n     *              and User prompt such confirmation to be skipped.\n     *      - Skipped confirmation are persisted in Cookie storage as Origin for external urls and as Url for internal urls.\n     *      - Returned Promise is resolved upon navigation ends with true (successful navigation) or false (unsuccessful navigation),\n     *              or rejected with value string if it's on User behalf when confirmation is closable or with button cancel,\n     *              or if there is some internal handled error it will be rejected with instance of Error and message of the specific problem.\n     */\n    open(url: string, target: UrlOpenerTarget, model: UrlOpenerModel): Promise<boolean>;\n    /**\n     * @inheritDoc\n     */\n    open(url: string, target: UrlOpenerTarget = '_blank', model: UrlOpenerModel = null): Promise<boolean> {\n        const _model: UrlOpenerModel = { ...(model ?? {}) } as UrlOpenerModel;\n        const _nextStep = this._resolveNextStep(url, target);\n\n        if (_nextStep.external) {\n            return this._executeExternalNavigation(url, _model, _nextStep);\n        }\n\n        return this._executeInternalNavigation(url, _model, _nextStep);\n    }\n\n    /**\n     * ** Initialize service.\n     *\n     *      - Should be invoked only once.\n     *      - Ideal place for invoking is <code>AppComponent.ngOnInit()</code>.\n     */\n    initialize(): void {\n        const extractSkippedOriginsMap = this._extractSkippedUrlsMap();\n        if (extractSkippedOriginsMap) {\n            this._skippedOriginsUrlsMap = extractSkippedOriginsMap;\n        }\n    }\n\n    private _resolveNextStep(url: string, target: UrlOpenerTarget): NextStepModel {\n        let newTab = false;\n        let external = false;\n\n        if (target === '_blank') {\n            newTab = true;\n        }\n\n        if (new RegExp(`^${this._origin}`).test(url)) {\n            external = false;\n        } else if (/^(http|https):\\/?\\/?/.test(url)) {\n            external = true;\n        }\n\n        return {\n            newTab,\n            external,\n            sanitizedUrl: url\n        };\n    }\n\n    private _executeExternalNavigation(url: string, model: UrlOpenerModel, nextStep: NextStepModel): Promise<boolean> {\n        const urlOriginData = this._getExternalUrlOriginData(url);\n\n        let confirmationPromise: Promise<ConfirmationOutputModel>;\n\n        if (urlOriginData === '1') {\n            confirmationPromise = Promise.resolve({ doNotShowFutureConfirmation: false });\n        } else {\n            if (!CollectionsUtil.isStringWithContent(model.title)) {\n                model.title = `Proceed to <code>${url}</code>`;\n            }\n\n            if (CollectionsUtil.isNil(model.closable)) {\n                model.closable = true;\n            }\n\n            if (CollectionsUtil.isNil(model.confirmBtnModel)) {\n                model.confirmBtnModel = {\n                    text: 'Proceed'\n                };\n            } else if (!CollectionsUtil.isStringWithContent(model.confirmBtnModel.text)) {\n                model.confirmBtnModel.text = 'Proceed';\n            }\n\n            confirmationPromise = this.confirmationService.confirm(model);\n        }\n\n        return confirmationPromise.then((data) => {\n            if (data.doNotShowFutureConfirmation) {\n                this._persistSkippedExternalUrlOrigin(url);\n            }\n\n            const isSuccessful = UrlOpenerService._openExternalUrl(nextStep.sanitizedUrl, nextStep.newTab);\n            if (isSuccessful) {\n                return true;\n            }\n\n            return Promise.reject(new Error(`${UrlOpenerService.CLASS_NAME}: Exception thrown cannot open external url`));\n        });\n    }\n\n    private _executeInternalNavigation(url: string, model: UrlOpenerModel, nextStep: NextStepModel): Promise<boolean> {\n        const urlData = this._getInternalUrlData(url);\n\n        let confirmationPromise: Promise<ConfirmationOutputModel>;\n\n        if (urlData === '1' || !model.explicitConfirmation) {\n            confirmationPromise = Promise.resolve({ doNotShowFutureConfirmation: false });\n        } else {\n            if (!CollectionsUtil.isStringWithContent(model.title)) {\n                model.title = `Proceed to <code>${url}</code>`;\n            }\n\n            if (CollectionsUtil.isNil(model.confirmBtnModel)) {\n                model.confirmBtnModel = {\n                    text: 'Proceed'\n                };\n            } else if (!CollectionsUtil.isStringWithContent(model.confirmBtnModel.text)) {\n                model.confirmBtnModel.text = 'Proceed';\n            }\n\n            confirmationPromise = this.confirmationService.confirm(model);\n        }\n\n        return confirmationPromise.then((data) => {\n            if (data.doNotShowFutureConfirmation) {\n                this._persistSkippedInternalUrl(url);\n            }\n\n            if (nextStep.newTab) {\n                const isSuccessful = UrlOpenerService._openExternalUrl(nextStep.sanitizedUrl, true);\n                if (isSuccessful) {\n                    return true;\n                }\n\n                return Promise.reject(\n                    new Error(`${UrlOpenerService.CLASS_NAME}: Exception thrown, cannot open Super Collider url in a new tab`)\n                );\n            }\n\n            const _queryParams: Params = {};\n            let _sanitizedUrl: string = nextStep.sanitizedUrl;\n\n            try {\n                const queryStringStartIndex = url.indexOf('?');\n\n                if (queryStringStartIndex !== -1) {\n                    _sanitizedUrl = url.substring(0, queryStringStartIndex);\n                    const queryString = url.substring(queryStringStartIndex);\n                    new URLSearchParams(queryString).forEach((value, key) => {\n                        _queryParams[key] = value;\n                    });\n                }\n            } catch (e) {\n                console.error(\n                    `${UrlOpenerService.CLASS_NAME}: Potential bug found, Exception thrown while extracting query string for internal navigation`\n                );\n            }\n\n            return this.navigationService.navigate(_sanitizedUrl, { queryParams: _queryParams });\n        });\n    }\n\n    private _getExternalUrlOriginData(url: string): '1' | null {\n        const urlOrigin = UrlOpenerService._getUrlOrigin(url);\n\n        if (!this._skippedOriginsUrlsMap[urlOrigin]) {\n            return null;\n        }\n\n        return this._skippedOriginsUrlsMap[urlOrigin];\n    }\n\n    private _persistSkippedExternalUrlOrigin(url: string): void {\n        const urlOrigin = UrlOpenerService._getUrlOrigin(url);\n\n        if (!urlOrigin) {\n            return;\n        }\n\n        this._persistSkippedInternalUrl(urlOrigin);\n    }\n\n    private _getInternalUrlData(url: string): '1' | null {\n        if (!this._skippedOriginsUrlsMap[url]) {\n            return null;\n        }\n\n        return this._skippedOriginsUrlsMap[url];\n    }\n\n    private _persistSkippedInternalUrl(url: string): void {\n        if (this._skippedOriginsUrlsMap[url]) {\n            return;\n        }\n\n        this._skippedOriginsUrlsMap[url] = '1';\n\n        this._persistSkippedUrlsMap();\n    }\n\n    private _extractSkippedUrlsMap(): Record<string, '1'> {\n        const extractedOriginsMap = this.cookieService.get(this._cookieKey);\n        if (!extractedOriginsMap) {\n            return null;\n        }\n\n        const decodedOriginsMap = UrlOpenerService._decodeBase64(extractedOriginsMap);\n        if (!decodedOriginsMap) {\n            return null;\n        }\n\n        const parsedOriginsMap = UrlOpenerService._parseToJSON<Record<string, '1'>>(decodedOriginsMap);\n        if (!parsedOriginsMap) {\n            return null;\n        }\n\n        return parsedOriginsMap;\n    }\n\n    private _persistSkippedUrlsMap(): void {\n        if (!this._skippedOriginsUrlsMap) {\n            return;\n        }\n\n        const serializedOriginsMap = UrlOpenerService._serializeObject(this._skippedOriginsUrlsMap);\n        if (!serializedOriginsMap) {\n            return;\n        }\n\n        const encodedOriginsMap = UrlOpenerService._encodeBase64(serializedOriginsMap);\n        if (!encodedOriginsMap) {\n            return;\n        }\n\n        this.cookieService.set(this._cookieKey, encodedOriginsMap);\n    }\n\n    private static _openExternalUrl(url: string, newTab: boolean): boolean {\n        try {\n            window.open(url, newTab ? '_blank' : '_self', 'noopener');\n\n            return true;\n        } catch (e) {\n            console.error(\n                `${UrlOpenerService.CLASS_NAME}: Cannot open external url, check your Browser security config if allows opening new tabs`\n            );\n\n            return false;\n        }\n    }\n\n    private static _getUrlOrigin(url: string): string {\n        try {\n            const _url = new URL(url);\n\n            return _url.origin;\n        } catch (e) {\n            console.error(`${UrlOpenerService.CLASS_NAME}: Potential bug found, cannot extract origin from url`);\n\n            return null;\n        }\n    }\n\n    private static _encodeBase64(value: string): string {\n        if (!value) {\n            return null;\n        }\n\n        try {\n            return btoa(value);\n        } catch (e) {\n            console.error(`${UrlOpenerService.CLASS_NAME}: Potential bug found, provided value cannot be encoded to base64`);\n\n            return null;\n        }\n    }\n\n    private static _decodeBase64(value: string): string {\n        if (!value) {\n            return null;\n        }\n\n        try {\n            return atob(value);\n        } catch (e) {\n            console.error(`${UrlOpenerService.CLASS_NAME}: Potential bug found, provided value cannot be decoded from base64`);\n\n            return null;\n        }\n    }\n\n    private static _serializeObject(value: unknown): string {\n        if (!value) {\n            return null;\n        }\n\n        try {\n            return JSON.stringify(value);\n        } catch (e) {\n            console.error(`${UrlOpenerService.CLASS_NAME}: Potential bug found, cannot serialize provided object`);\n\n            return null;\n        }\n    }\n\n    private static _parseToJSON<T>(value: string): T {\n        if (!value) {\n            return null;\n        }\n\n        try {\n            return JSON.parse(value) as T;\n        } catch (e) {\n            console.error(`${UrlOpenerService.CLASS_NAME}: Potential bug found, cannot parse provided JSON`);\n\n            return null;\n        }\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './url-opener.service';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n/**\n * ** Url Opener module\n *\n * @author gorankokin\n */\n@NgModule({\n    imports: [CommonModule]\n})\nexport class UrlOpenerModule {}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport { UrlOpenerModel, UrlOpenerTarget } from './model';\nexport { UrlOpenerService } from './services';\nexport { UrlOpenerModule } from './url-opener.module';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Component, ContentChild, HostListener, Inject, Input, OnDestroy, TemplateRef } from '@angular/core';\n\nimport { SHARED_FEATURES_CONFIG_TOKEN } from '../../../_token';\n\nimport { WarningConfig } from '../../model';\n\n@Component({\n    selector: 'shared-warning',\n    templateUrl: './warning.component.html',\n    styleUrls: ['./warning.component.scss']\n})\nexport class WarningComponent implements OnDestroy {\n    /**\n     * ** Content projection child query for custom template with ID #customTemplate\n     */\n    @ContentChild('customTemplate', { read: TemplateRef }) customTemplateRef: TemplateRef<never>;\n\n    /**\n     * ** Warning text.\n     */\n    @Input() text = '';\n\n    /**\n     * ** Show different warning message if some resource is not found.\n     */\n    @Input() showNotFound = false;\n\n    /**\n     * ** Text show when flag {@link notFound} set to true.\n     */\n    @Input() notFoundText = '';\n\n    /**\n     * ** Size of the warning icon.\n     */\n    @Input() iconSize = 24;\n\n    /**\n     * ** Flag indicates if warning to be displayed as tooltip.\n     *\n     *      - Default is false\n     */\n    @Input() showTooltip = false;\n\n    /**\n     * ** Flag indicates if warning tooltip to be auto open on mouse icon hover.\n     *\n     *      - Works only with context with {@link showTooltip}\n     *      - Default is true\n     */\n    @Input() tooltipHoverAutoOpen = true;\n\n    /**\n     * ** Field gives position of warning tooltip.\n     *\n     *      - Works only with context with {@link showTooltip}\n     */\n    @Input() tooltipPosition: 'top-left' | 'top-middle' | 'top-right' | 'bottom-left' | 'bottom-middle' | 'bottom-right';\n\n    /**\n     * ** Field gives size of warning tooltip.\n     *\n     *      - Works only with context with {@link showTooltip}\n     *      - Default is 'lg'\n     */\n    @Input() tooltipSize: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'lg';\n\n    /**\n     * ** Flag indicates whether to append Service desk link.\n     */\n    @Input() addServiceDeskLink = false;\n\n    /**\n     * ** Field provides name of the impacted services, if provided.\n     *\n     *      - Default is empty\n     */\n    @Input() impactedServices: string = null;\n\n    @HostListener('click', ['$event'])\n    onClick($event: MouseEvent): void {\n        if (\n            $event &&\n            $event.target &&\n            ($event.target as HTMLElement).tagName === 'A' &&\n            ($event.target as HTMLAnchorElement).href &&\n            ($event.target as HTMLAnchorElement).href.length > 0 &&\n            ($event.target as HTMLAnchorElement).href.trim() !== '#'\n        ) {\n            // don't prevent default if click is on anchor element and has navigation url\n            return;\n        }\n\n        $event.preventDefault();\n        $event.stopImmediatePropagation();\n    }\n\n    @HostListener('mouseenter', ['$event'])\n    mouseEnter($event: MouseEvent): void {\n        if (!this.tooltipHoverAutoOpen) {\n            return;\n        }\n\n        this._clearTimeout();\n\n        $event.preventDefault();\n        $event.stopImmediatePropagation();\n\n        this.isSignpostOpen = true;\n    }\n\n    @HostListener('mouseleave', ['$event'])\n    mouseLeave($event: MouseEvent): void {\n        if (!this.tooltipHoverAutoOpen) {\n            return;\n        }\n\n        this._clearTimeout();\n\n        $event.preventDefault();\n        $event.stopImmediatePropagation();\n\n        this._timeoutRef = window.setTimeout(() => {\n            this.isSignpostOpen = false;\n        }, 150);\n    }\n\n    /**\n     * ** Flag that indicates if signpost is opened or closed.\n     *\n     *      - TRUE - opened\n     *      - FALSE - closed\n     */\n    isSignpostOpen = false;\n\n    /**\n     * ** Service request url to portal.\n     */\n    serviceRequestUrl = '#';\n\n    private _timeoutRef: number;\n\n    /**\n     * ** Constructor.\n     */\n    constructor(@Inject(SHARED_FEATURES_CONFIG_TOKEN) private readonly featureConfig: WarningConfig) {\n        if (featureConfig && featureConfig.warning && featureConfig.warning.serviceRequestUrl) {\n            this.serviceRequestUrl = featureConfig.warning.serviceRequestUrl;\n        }\n    }\n\n    /**\n     * @inheritDoc\n     */\n    ngOnDestroy(): void {\n        this._clearTimeout();\n    }\n\n    private _clearTimeout(): void {\n        if (this._timeoutRef) {\n            window.clearTimeout(this._timeoutRef);\n        }\n    }\n}\n","<!--\n   ~ Copyright 2023-2025 Broadcom\n   ~ SPDX-License-Identifier: Apache-2.0\n  -->\n\n<clr-signpost *ngIf=\"showTooltip; else showStandard\">\n    <clr-icon\n        clrSignpostTrigger\n        class=\"alert-icon shared-warning__icon-tooltip\"\n        shape=\"exclamation-triangle\"\n        role=\"img\"\n        aria-label=\"Warning\"\n        [attr.status]=\"'warning'\"\n        [attr.size]=\"iconSize\"\n    ></clr-icon>\n\n    <clr-signpost-content\n        *clrIfOpen=\"isSignpostOpen\"\n        [clrPosition]=\"tooltipPosition\"\n        [ngClass]=\"'shared-warning__tooltip-size--' + tooltipSize\"\n    >\n        <ng-container *ngIf=\"customTemplateRef; else defaultTooltipTemplate\">\n            <ng-container *ngTemplateOutlet=\"customTemplateRef\"></ng-container>\n        </ng-container>\n\n        <ng-template #defaultTooltipTemplate>\n            <ng-container\n                *ngTemplateOutlet=\"systemDefault; context: { $implicit: 'tooltip' }\"\n            ></ng-container>\n        </ng-template>\n    </clr-signpost-content>\n</clr-signpost>\n\n<ng-template #showStandard>\n    <div class=\"alert alert-warning\" role=\"alert\">\n        <div class=\"alert-items\">\n            <div class=\"alert-item static\">\n                <div class=\"alert-icon-wrapper\">\n                    <clr-icon\n                        class=\"alert-icon shared-warning__icon-standard\"\n                        shape=\"exclamation-triangle\"\n                        role=\"img\"\n                        aria-label=\"Warning\"\n                        [attr.status]=\"'warning'\"\n                        [attr.size]=\"iconSize\"\n                    ></clr-icon>\n                </div>\n                <div class=\"alert-text\">\n                    <ng-container\n                        *ngIf=\"customTemplateRef; else defaultStandardTemplate\"\n                    >\n                        <ng-container\n                            *ngTemplateOutlet=\"customTemplateRef\"\n                        ></ng-container>\n                    </ng-container>\n\n                    <ng-template #defaultStandardTemplate>\n                        <ng-container\n                            *ngTemplateOutlet=\"systemDefault; context: { $implicit: 'standard' }\"\n                        ></ng-container>\n                    </ng-template>\n                </div>\n            </div>\n        </div>\n    </div>\n</ng-template>\n\n<ng-template #systemDefault let-context>\n    <p class=\"shared-warning__{{ context }}-template--default\">\n        <ng-container *ngIf=\"!showNotFound\">{{ text }}</ng-container>\n        <ng-container *ngIf=\"showNotFound\">{{ notFoundText }}</ng-container>\n\n        <ng-container *ngIf=\"addServiceDeskLink\">\n            <ng-container *ngIf=\"!showNotFound\">\n                Please try again later.</ng-container\n            >\n            <br />If the issue persists, please\n            <a href=\"{{ serviceRequestUrl }}\" target=\"_blank\" rel=\"noopener\"\n                >open a service request.</a\n            >\n        </ng-container>\n        <ng-container *ngIf=\"impactedServices && impactedServices.length > 0\">\n            <br />Impacted Services: {{ impactedServices }}\n        </ng-container>\n    </p>\n</ng-template>\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './warning.component';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './warning';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ClarityModule } from '@clr/angular';\n\nimport { WarningComponent } from './components';\n\n/**\n * ** Warning module\n */\n@NgModule({\n    imports: [CommonModule, ClarityModule],\n    declarations: [WarningComponent],\n    exports: [WarningComponent],\n    schemas: [NO_ERRORS_SCHEMA]\n})\nexport class WarningModule {}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport { WarningComponent } from './components';\nexport { WarningModule } from './warning.module';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport { UrlOpenerModel, UrlOpenerTarget } from './model';\nexport { UrlOpenerService } from './services';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { ClarityModule } from '@clr/angular';\n\nimport { SharedFeaturesConfig } from './_model';\n\nimport { VdkSharedComponentsModule } from '../commons';\n\nimport { SHARED_FEATURES_CONFIG_TOKEN } from './_token';\n\nimport { PlaceholderModule } from './placeholder/placeholder.module';\n\nimport { WarningModule } from './warning/warning.module';\n\nimport { ToastsModule } from './toasts/toasts.module';\nimport { ToastService } from './toasts/service';\n\nimport { ErrorHandlerService } from './error-handler/services';\n\nimport { DirectivesModule } from './directives/directives.module';\n\nimport { PipesModule } from './pipes/pipes.module';\n\nimport { DynamicComponentsModule } from './dynamic-components/dynamic-components.module';\nimport { DynamicComponentsService } from './dynamic-components';\n\nimport { ConfirmationModule } from './confirmation/confirmation.module';\nimport { ConfirmationService } from './confirmation';\n\nimport { UrlOpenerModule } from './url-opener/url-opener.module';\nimport { UrlOpenerService } from './url-opener';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        RouterModule,\n        ClarityModule,\n        VdkSharedComponentsModule.forChild(),\n        ConfirmationModule,\n        DirectivesModule,\n        DynamicComponentsModule,\n        PlaceholderModule,\n        PipesModule,\n        ToastsModule,\n        UrlOpenerModule,\n        WarningModule\n    ],\n    exports: [\n        ConfirmationModule,\n        DirectivesModule,\n        DynamicComponentsModule,\n        PlaceholderModule,\n        PipesModule,\n        ToastsModule,\n        UrlOpenerModule,\n        WarningModule\n    ]\n})\nexport class VdkSharedFeaturesModule {\n    /**\n     * ** Provides VdkSharedFeaturesModule and all Services related to Shared Module features.\n     *\n     *      - Should be invoked only once for entire project.\n     *      - Not inside FeatureModule (lazy loaded Module).\n     *      - In other modules import only VdkSharedFeaturesModule or VdkSharedFeaturesModule.forChild().\n     */\n    static forRoot(featuresConfig?: SharedFeaturesConfig): ModuleWithProviders<VdkSharedFeaturesModule> {\n        return {\n            ngModule: VdkSharedFeaturesModule,\n            providers: [\n                { provide: SHARED_FEATURES_CONFIG_TOKEN, useValue: featuresConfig ?? {} },\n                ConfirmationService,\n                DynamicComponentsService,\n                ErrorHandlerService,\n                ToastService,\n                UrlOpenerService\n            ]\n        };\n    }\n\n    /**\n     * ** Provides VdkSharedFeaturesModule.\n     *\n     *      - Should be invoked in FeatureModules (lazy loaded Modules).\n     */\n    static forChild(): ModuleWithProviders<VdkSharedFeaturesModule> {\n        return {\n            ngModule: VdkSharedFeaturesModule\n        };\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './_model/public-api';\nexport * from './confirmation/public-api';\nexport * from './directives/public-api';\nexport * from './dynamic-components/public-api';\nexport * from './error-handler/public-api';\nexport * from './pipes/public-api';\nexport * from './placeholder/public-api';\nexport * from './toasts/public-api';\nexport * from './url-opener/public-api';\nexport * from './warning/public-api';\n\n// export Features module\nexport * from './vdk-shared-features.module';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/*\n * Public API Surface of commons\n */\n\nexport * from './index';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/naming-convention,@typescript-eslint/no-explicit-any */\n\n/**\n * ** Fake method to mock methods.\n *\n * e.g.\n *      .and.callFake(CallFake)\n */\nexport const CallFake = (..._args: any[]): any => {\n    // No-op.\n};\n\n/**\n * ** Utility to trigger keyboard event from some HTMLElement.\n */\nexport const triggerKeyboardEvent = (el: HTMLElement, type: string, keyCode: string) => {\n    const e = new KeyboardEvent(type, {\n        code: keyCode,\n        bubbles: true,\n        cancelable: true\n    });\n\n    el.dispatchEvent(e);\n};\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable arrow-body-style,\n                  prefer-arrow/prefer-arrow-functions,\n                  @angular-eslint/component-class-suffix,\n                  @typescript-eslint/no-explicit-any */\n\nimport { Type } from '@angular/core';\n\nimport { ActivatedRouteSnapshot, Data, Params, Route, UrlSegment } from '@angular/router';\n\nimport { CollectionsUtil } from '../../utils';\n\ntype ComponentType = Type<any> | string | null;\n\nexport const createRouteSnapshot = ({\n    url = [new UrlSegment('entity/23', {})] as UrlSegment[],\n    data = { paramKey: 'prime' } as Data,\n    params = { entityId: 23 } as Params,\n    queryParams = { search: 'test-team' } as Params,\n    outlet = 'router-outlet' as string,\n    component = ComponentStub as ComponentType,\n    routeConfig = new RouteConfigStub('entity/23', ComponentStub, 'router-outlet'),\n    firstChild = null as ActivatedRouteSnapshot,\n    parent = undefined as ActivatedRouteSnapshot\n}): ActivatedRouteSnapshot => {\n    return new ActivatedRouteSnapshotStub({\n        url,\n        data,\n        params,\n        queryParams,\n        outlet,\n        component,\n        routeConfig,\n        firstChild,\n        parent: CollectionsUtil.isUndefined(parent)\n            ? createRouteSnapshot({\n                  url: [new UrlSegment('domain/context', {})],\n                  data: {},\n                  params: {},\n                  queryParams: {},\n                  outlet: 'router-outlet',\n                  component: null,\n                  routeConfig: new RouteConfigStub('domain/context', null, 'router-outlet'),\n                  firstChild: null,\n                  parent: null\n              })\n            : null\n    });\n};\n\nexport class ComponentStub {}\n\ninterface RouteSnapshotStub {\n    url: UrlSegment[];\n    data: Data;\n    params: Params;\n    queryParams: Params;\n    outlet: string;\n    component: Type<any> | string | null;\n    routeConfig: Route | null;\n    firstChild: ActivatedRouteSnapshot;\n    parent: ActivatedRouteSnapshot;\n}\n\nexport class ActivatedRouteSnapshotStub extends ActivatedRouteSnapshot {\n    override url: UrlSegment[];\n    override data: Data;\n    override params: Params;\n    override queryParams: Params;\n    override outlet: string;\n    override component: Type<any> | string | null;\n    override readonly routeConfig: Route | null;\n\n    override get parent(): ActivatedRouteSnapshot | null {\n        return this._parent;\n    }\n\n    override set parent(parent: ActivatedRouteSnapshot) {\n        this._parent = parent;\n    }\n\n    override get firstChild(): ActivatedRouteSnapshot | null {\n        return this._firstChild;\n    }\n\n    protected _parent: ActivatedRouteSnapshot;\n    protected _firstChild: ActivatedRouteSnapshot;\n\n    constructor(snapshot: RouteSnapshotStub) {\n        super();\n\n        this.url = snapshot.url;\n        this.data = snapshot.data;\n        this.params = snapshot.params;\n        this.queryParams = snapshot.queryParams;\n        this.outlet = snapshot.outlet;\n        this.component = snapshot.component;\n        this.routeConfig = snapshot.routeConfig;\n        this._firstChild = snapshot.firstChild;\n        this._parent = snapshot.parent;\n\n        if (snapshot.firstChild instanceof ActivatedRouteSnapshotStub) {\n            snapshot.firstChild.parent = this;\n        }\n    }\n\n    override toString(): string {\n        return super.toString();\n    }\n}\n\nexport class RouteConfigStub implements Route {\n    path: string;\n    component: Type<any>;\n    outlet: string;\n\n    constructor(path: string, component: Type<any>, outlet: string) {\n        this.path = path;\n        this.component = component;\n        this.outlet = outlet;\n    }\n}\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CollectionsUtil, FilterMethods } from '../../utils';\n\nimport { ErrorCodes, ExcludedMethods } from '../../common';\n\nimport { generateSupportedHttpErrorCodes } from '../../common/error/utils';\n\n/**\n * ** Generates error codes for provided method names.\n *\n *      - !!! Important: Only for Unit tests purposes, not for production.\n *\n *      - Optionally could be provided ClassName and PublicName, otherwise will be auto-generated random strings.\n */\n/* eslint-disable @typescript-eslint/no-unsafe-argument,\n                  @typescript-eslint/no-unsafe-member-access,\n                  @typescript-eslint/no-unsafe-assignment,\n                  @typescript-eslint/ban-ts-comment,\n                  @typescript-eslint/dot-notation */\nexport const generateErrorCodes = <CType>(\n    serviceStub: CType,\n    methodNames: Array<keyof FilterMethods<CType, ExcludedMethods>>,\n    className?: string,\n    publicName?: string\n): ErrorCodes<CType> => {\n    const _className = className ?? CollectionsUtil.generateRandomString();\n    const _publicName = publicName ?? CollectionsUtil.generateRandomString();\n    const _errorCodes: ErrorCodes<CType> = {} as ErrorCodes<CType>;\n\n    // @ts-ignore\n    methodNames.forEach((method: string) => {\n        _errorCodes[method] = generateSupportedHttpErrorCodes(_className, _publicName, method);\n    });\n\n    serviceStub['errorCodes'] = _errorCodes;\n\n    return _errorCodes;\n};\n/* eslint-enable @typescript-eslint/no-unsafe-argument,\n                 @typescript-eslint/no-unsafe-member-access,\n                  @typescript-eslint/no-unsafe-assignment,\n                 @typescript-eslint/ban-ts-comment,\n                 @typescript-eslint/dot-notation */\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './unit-test-utils';\nexport * from './router-utils';\nexport * from './error-code-generator-utils';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './utils';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport * from './index';\n","/*\n * Copyright 2023-2025 Broadcom\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/*\n * Public API Surface of shared\n */\n\n// Utils public APIs.\nexport * from './lib/utils/public-api';\n\n// Common public APIs.\nexport * from './lib/common/public-api';\n\n// Core/NgRx Modules and public APIs.\nexport * from './lib/core/public-api';\n\n// Shared Module and public APIs.\nexport * from './lib/features/public-api';\n\n// Common components public APIs.\nexport * from './lib/commons/public-api';\n\n// Utils unit-testing APIs.\nexport * from './lib/unit-testing/public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuidv4","i3","i1","i2.RouterService","i2","_c1","_c2","i1.DynamicComponentsService","TRANSLATIONS","i1.VdkSimpleTranslateService","_c3","_c4","i4.VdkSimpleTranslatePipe","i1.ToastService","i1.NavigationService","i2.ConfirmationService"],"mappings":"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"}