@acorex/platform 20.3.0-next.0 → 20.3.0-next.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/index.d.ts +8 -9
- package/core/index.d.ts +597 -46
- package/fesm2022/acorex-platform-auth.mjs +19 -19
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/acorex-platform-common.mjs +111 -163
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +759 -113
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +16 -16
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +518 -95
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +1997 -215
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +86 -79
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity-create-entity.command-764ie8R8.mjs +52 -0
- package/fesm2022/acorex-platform-layout-entity-create-entity.command-764ie8R8.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-entity.mjs +1650 -916
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +37 -29
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs +7 -7
- package/fesm2022/acorex-platform-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs +40 -40
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-I7Eq8Nti.mjs → acorex-platform-themes-default-entity-master-create-view.component-Ct-ri59W.mjs} +5 -5
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Ct-ri59W.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-D3VUh8K8.mjs → acorex-platform-themes-default-entity-master-list-view.component-7BB4LdjK.mjs} +30 -31
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-7BB4LdjK.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BDJR088o.mjs +101 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BDJR088o.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-BMkhNfF4.mjs → acorex-platform-themes-default-entity-master-single-view.component-BExtm1JE.mjs} +7 -7
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-BMkhNfF4.mjs.map → acorex-platform-themes-default-entity-master-single-view.component-BExtm1JE.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-401.component-D4glpFvU.mjs → acorex-platform-themes-default-error-401.component-DrO1PEOH.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-401.component-D4glpFvU.mjs.map → acorex-platform-themes-default-error-401.component-DrO1PEOH.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-404.component-BvGeDMjo.mjs → acorex-platform-themes-default-error-404.component-DqVq0oHX.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-404.component-BvGeDMjo.mjs.map → acorex-platform-themes-default-error-404.component-DqVq0oHX.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-offline.component-BINy-Zo3.mjs → acorex-platform-themes-default-error-offline.component-Bt2PTL7_.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-offline.component-BINy-Zo3.mjs.map → acorex-platform-themes-default-error-offline.component-Bt2PTL7_.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-default.mjs +40 -40
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-C833prGO.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BgEh06Tn.mjs} +24 -14
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BgEh06Tn.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-settings.provider-CXiRmniv.mjs → acorex-platform-themes-shared-settings.provider-CLUKU4y0.mjs} +2 -2
- package/fesm2022/acorex-platform-themes-shared-settings.provider-CLUKU4y0.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-DjKLg513.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-AeOQxjbS.mjs} +23 -8
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-AeOQxjbS.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-DE0wO98F.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-DEVzRd6-.mjs} +23 -8
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DEVzRd6-.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +241 -74
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-BJtkWusr.mjs → acorex-platform-widgets-button-widget-designer.component-DSaD9Fwc.mjs} +5 -5
- package/fesm2022/acorex-platform-widgets-button-widget-designer.component-DSaD9Fwc.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-extra-properties-schema-widget-edit.component-B3SJUnGQ.mjs → acorex-platform-widgets-extra-properties-schema-widget-edit.component-D9mf08rU.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-extra-properties-schema-widget-edit.component-B3SJUnGQ.mjs.map → acorex-platform-widgets-extra-properties-schema-widget-edit.component-D9mf08rU.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-extra-properties-schema-widget-view.component-BLR0JkRt.mjs → acorex-platform-widgets-extra-properties-schema-widget-view.component-D6GQ-eyr.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-extra-properties-schema-widget-view.component-BLR0JkRt.mjs.map → acorex-platform-widgets-extra-properties-schema-widget-view.component-D6GQ-eyr.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-extra-properties-values-widget-edit.component-hzR2FgOm.mjs → acorex-platform-widgets-extra-properties-values-widget-edit.component-DVbIdVZ6.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-extra-properties-values-widget-edit.component-hzR2FgOm.mjs.map → acorex-platform-widgets-extra-properties-values-widget-edit.component-DVbIdVZ6.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-extra-properties-values-widget-view.component-IDm6Clua.mjs → acorex-platform-widgets-extra-properties-values-widget-view.component-D-aM64Hu.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-extra-properties-values-widget-view.component-IDm6Clua.mjs.map → acorex-platform-widgets-extra-properties-values-widget-view.component-D-aM64Hu.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-extra-properties-widget-edit.component-BRO9tYDa.mjs → acorex-platform-widgets-extra-properties-widget-edit.component-em2-aU8E.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-extra-properties-widget-edit.component-BRO9tYDa.mjs.map → acorex-platform-widgets-extra-properties-widget-edit.component-em2-aU8E.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-extra-properties-widget-view.component-CkpLimyW.mjs → acorex-platform-widgets-extra-properties-widget-view.component-BeuIofdr.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-extra-properties-widget-view.component-CkpLimyW.mjs.map → acorex-platform-widgets-extra-properties-widget-view.component-BeuIofdr.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-file-list-popup.component-BafU5Lfl.mjs → acorex-platform-widgets-file-list-popup.component-Cmtq2bBV.mjs} +5 -5
- package/fesm2022/acorex-platform-widgets-file-list-popup.component-Cmtq2bBV.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-Cw9WcZze.mjs → acorex-platform-widgets-page-widget-designer.component-B-ZEi2yd.mjs} +6 -6
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-B-ZEi2yd.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-BDQIfr0g.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-CMqq_iOj.mjs} +11 -11
- package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-CMqq_iOj.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-CmPqtt0G.mjs → acorex-platform-widgets-tabular-data-view-popup.component-CRpjdiNz.mjs} +6 -5
- package/fesm2022/acorex-platform-widgets-tabular-data-view-popup.component-CRpjdiNz.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-DaR4Nkv4.mjs → acorex-platform-widgets-text-block-widget-designer.component-DeSmBqMa.mjs} +5 -6
- package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-DeSmBqMa.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets.mjs +9725 -8964
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +25 -25
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/layout/builder/index.d.ts +69 -21
- package/layout/components/index.d.ts +816 -58
- package/layout/designer/index.d.ts +4 -2
- package/layout/entity/index.d.ts +437 -231
- package/package.json +8 -8
- package/widgets/index.d.ts +1806 -732
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-I7Eq8Nti.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D3VUh8K8.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-16sdMBvH.mjs +0 -101
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-16sdMBvH.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-C833prGO.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-settings.provider-CXiRmniv.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DjKLg513.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DE0wO98F.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-button-widget-designer.component-BJtkWusr.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-DeKpl0uK.mjs +0 -84
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-DeKpl0uK.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-Cv7dEMCm.mjs +0 -55
- package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-Cv7dEMCm.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-C6-QPsnb.mjs +0 -76
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-C6-QPsnb.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-CohkI1w1.mjs +0 -55
- package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-CohkI1w1.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-file-list-popup.component-BafU5Lfl.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-file-rename-popup.component-DA_CgIvm.mjs +0 -211
- package/fesm2022/acorex-platform-widgets-file-rename-popup.component-DA_CgIvm.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-Cw9WcZze.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-rich-text-popup.component-CM_v-cL4.mjs +0 -40
- package/fesm2022/acorex-platform-widgets-rich-text-popup.component-CM_v-cL4.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-BDQIfr0g.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-tabular-data-view-popup.component-CmPqtt0G.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-DaR4Nkv4.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-core.mjs","sources":["../tmp-esm2022/core/lib/utils/object-util.js","../tmp-esm2022/core/lib/context/context-store.service.js","../tmp-esm2022/core/lib/data/data-generator.js","../tmp-esm2022/core/lib/data/value-transformer.js","../tmp-esm2022/core/lib/data/datasource-definition-provider.service.js","../tmp-esm2022/core/lib/directives/element-data.directive.js","../tmp-esm2022/core/lib/directives/dbl-click.directive.js","../tmp-esm2022/core/lib/directives/grid-layout.directive.js","../tmp-esm2022/core/lib/directives/content-checker.directive.js","../tmp-esm2022/core/lib/event-service/event.service.js","../tmp-esm2022/core/lib/expression-evaluator/expression-evaluator-scope-provider.service.js","../tmp-esm2022/core/lib/expression-evaluator/expression-evaluator.service.js","../tmp-esm2022/core/lib/startup/app-startup.service.js","../tmp-esm2022/core/lib/types/actions.types.js","../tmp-esm2022/core/lib/types/core.types.js","../tmp-esm2022/core/lib/types/interactive.types.js","../tmp-esm2022/core/lib/types/logo.types.js","../tmp-esm2022/core/lib/types/scope.types.js","../tmp-esm2022/core/lib/types/export.types.js","../tmp-esm2022/core/lib/utils/countdown-timer.js","../tmp-esm2022/core/lib/utils/data-conditioner.js","../tmp-esm2022/core/lib/utils/highlighter.js","../tmp-esm2022/core/lib/utils/string.js","../tmp-esm2022/core/lib/activity-log/activity-log.service.js","../tmp-esm2022/core/lib/activity-log/activity-log.provider.js","../tmp-esm2022/core/lib/distributed-events/distributed-event-listener.provider.js","../tmp-esm2022/core/lib/distributed-events/distributed-event-listener.service.js","../tmp-esm2022/core/acorex-platform-core.js"],"sourcesContent":["import { differenceWith, get, isArray, isEmpty, isEqual, isNil, isObjectLike, isPlainObject, merge, set, transform, union, } from 'lodash-es';\nexport function extractNestedFieldsWildcard(obj, basePath, fields) {\n const result = {};\n if (fields.length === 1 && fields[0] === '*') {\n const fullObj = get(obj, basePath);\n return isPlainObject(fullObj) ? fullObj : {};\n }\n for (const field of fields) {\n const fullPath = basePath ? `${basePath}.${field}` : field;\n const value = get(obj, fullPath);\n set(result, field, value);\n }\n return result;\n}\nexport function setSmart(obj, smartPath, value) {\n const pathParts = smartPath.split('.');\n const lastPart = pathParts[pathParts.length - 1];\n const fieldMatch = lastPart.match(/^\\{(.+)\\}$/);\n if (!fieldMatch) {\n set(obj, smartPath, value);\n return obj;\n }\n const fields = fieldMatch[1].split(',').map((f) => f.trim());\n const basePath = pathParts.slice(0, -1).join('.');\n const [arrayKey, ...restPath] = basePath.split('.');\n // Make sure the array exists\n if (!obj[arrayKey])\n obj[arrayKey] = [];\n // 🟡 Case A: value is array (normal set)\n if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const targetItem = obj[arrayKey][i] ?? {};\n const nested = {};\n if (restPath.length > 0) {\n const picked = extractNestedFieldsWildcard(item, restPath.join('.'), fields);\n set(nested, restPath.join('.'), picked);\n }\n else {\n const picked = extractNestedFieldsWildcard(item, '', fields);\n Object.assign(nested, picked);\n }\n obj[arrayKey][i] = merge({}, targetItem, nested);\n }\n }\n // 🟢 Case B: value is a single value → broadcast\n else {\n for (let i = 0; i < obj[arrayKey].length; i++) {\n const targetItem = obj[arrayKey][i] ?? {};\n const nested = {};\n if (restPath.length > 0) {\n for (const field of fields) {\n set(nested, `${restPath.join('.')}.${field}`, value);\n }\n }\n else {\n for (const field of fields) {\n set(nested, field, value);\n }\n }\n obj[arrayKey][i] = merge({}, targetItem, nested);\n }\n }\n return obj;\n}\nfunction extractFieldsFromPath(obj, basePath, fields) {\n if (fields.length === 1 && fields[0] === '*') {\n const fullObj = basePath ? get(obj, basePath) : obj;\n return isPlainObject(fullObj) ? fullObj : {};\n }\n const result = {};\n for (const field of fields) {\n const fullPath = basePath ? `${basePath}.${field}` : field;\n const val = get(obj, fullPath);\n if (val !== undefined) {\n result[field] = val;\n }\n }\n return result;\n}\nexport function getSmart(obj, smartPath) {\n const pathParts = smartPath.split('.');\n const lastPart = pathParts[pathParts.length - 1];\n const fieldMatch = lastPart.match(/^\\{(.+)\\}$/);\n // Simple get (no fields)\n if (!fieldMatch) {\n return get(obj, smartPath);\n }\n const fields = fieldMatch[1].split(',').map((f) => f.trim());\n const basePath = pathParts.slice(0, -1).join('.');\n const items = get(obj, basePath);\n if (!isArray(items))\n return [];\n const nestedPath = basePath.includes('.') ? basePath.split('.').slice(1).join('.') : '';\n return items.map((item) => {\n return extractFieldsFromPath(item, nestedPath, fields);\n });\n}\nexport function extractValue(value, key = 'id') {\n if (isNil(value)) {\n return null;\n }\n return isObjectLike(value) ? get(value, key) : value;\n}\nexport function cleanDeep(obj) {\n return transform(obj, (result, value, key) => {\n if (isObjectLike(value)) {\n const cleaned = cleanDeep(value);\n if (!isEmpty(cleaned)) {\n result[key] = cleaned;\n }\n }\n else if (!isNil(value) && // not null or undefined\n !(typeof value === 'string' && value.trim() === '') && // not empty string\n !(Array.isArray(value) && value.length === 0) // not empty array\n ) {\n result[key] = value;\n }\n });\n}\nfunction getDeepChanges(obj1, obj2) {\n const changes = [];\n function walk(o1, o2, currentPath = []) {\n // If both values are deeply equal, skip\n if (isEqual(o1, o2))\n return;\n const isObj1Nil = o1 === null || o1 === undefined;\n const isObj2Nil = o2 === null || o2 === undefined;\n // If obj1 is null/undefined and obj2 is not, treat entire obj2 as added\n if (isObj1Nil && !isObj2Nil) {\n if (isPlainObject(o2)) {\n for (const key of Object.keys(o2)) {\n walk(undefined, o2[key], [...currentPath, key]);\n }\n }\n else if (Array.isArray(o2)) {\n changes.push({\n path: currentPath.join('.'),\n oldValue: undefined,\n newValue: o2,\n arrayDiff: {\n added: o2,\n removed: [],\n },\n });\n }\n else {\n changes.push({\n path: currentPath.join('.'),\n oldValue: undefined,\n newValue: o2,\n });\n }\n return;\n }\n // If obj2 is null/undefined and obj1 is not, treat entire obj1 as removed\n if (!isObj1Nil && isObj2Nil) {\n if (isPlainObject(o1)) {\n for (const key of Object.keys(o1)) {\n walk(o1[key], undefined, [...currentPath, key]);\n }\n }\n else if (Array.isArray(o1)) {\n changes.push({\n path: currentPath.join('.'),\n oldValue: o1,\n newValue: undefined,\n arrayDiff: {\n added: [],\n removed: o1,\n },\n });\n }\n else {\n changes.push({\n path: currentPath.join('.'),\n oldValue: o1,\n newValue: undefined,\n });\n }\n return;\n }\n // If both are arrays, compare items\n if (Array.isArray(o1) && Array.isArray(o2)) {\n if (!isEqual(o1, o2)) {\n const added = differenceWith(o2, o1, isEqual);\n const removed = differenceWith(o1, o2, isEqual);\n changes.push({\n path: currentPath.join('.'),\n oldValue: o1,\n newValue: o2,\n arrayDiff: {\n added,\n removed,\n },\n });\n }\n return;\n }\n // If both are plain objects, walk each key\n if (isPlainObject(o1) && isPlainObject(o2)) {\n const allKeys = union(Object.keys(o1), Object.keys(o2));\n for (const key of allKeys) {\n walk(o1[key], o2[key], [...currentPath, key]);\n }\n return;\n }\n // Primitive values or mismatched types\n changes.push({\n path: currentPath.join('.'),\n oldValue: o1,\n newValue: o2,\n });\n }\n walk(obj1, obj2);\n return changes;\n}\n// Method 1: Returns only changed paths\nexport function getChangedPaths(obj1, obj2) {\n return getDeepChanges(obj1, obj2).map((change) => change.path);\n}\n// Method 2: Returns full change entries\nexport function getDetailedChanges(obj1, obj2) {\n return getDeepChanges(obj1, obj2);\n}\nexport function getEnumValues(enumType) {\n return Object.entries(enumType).map(([key, value]) => ({ id: value, title: key }));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi91dGlscy9vYmplY3QtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsY0FBYyxFQUNkLEdBQUcsRUFDSCxPQUFPLEVBQ1AsT0FBTyxFQUNQLE9BQU8sRUFDUCxLQUFLLEVBQ0wsWUFBWSxFQUNaLGFBQWEsRUFDYixLQUFLLEVBQ0wsR0FBRyxFQUNILFNBQVMsRUFDVCxLQUFLLEdBQ04sTUFBTSxXQUFXLENBQUM7QUFFbkIsTUFBTSxVQUFVLDJCQUEyQixDQUFDLEdBQVEsRUFBRSxRQUFnQixFQUFFLE1BQWdCO0lBQ3RGLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztJQUV2QixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUM3QyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMzQixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDM0QsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztB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QUcsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDaEQsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBRUQsdUNBQXVDO1FBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDWCxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDM0IsUUFBUSxFQUFFLEVBQUU7WUFDWixRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCx1Q0FBdUM7QUFDdkMsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFTLEVBQUUsSUFBUztJQUNsRCxPQUFPLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVELHdDQUF3QztBQUN4QyxNQUFNLFVBQVUsa0JBQWtCLENBQUMsSUFBUyxFQUFFLElBQVM7SUFDckQsT0FBTyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFJRCxNQUFNLFVBQVUsYUFBYSxDQUFDLFFBQWE7SUFDekMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQWUsRUFBRSxLQUFLLEVBQUUsR0FBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3pHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBkaWZmZXJlbmNlV2l0aCxcbiAgZ2V0LFxuICBpc0FycmF5LFxuICBpc0VtcHR5LFxuICBpc0VxdWFsLFxuICBpc05pbCxcbiAgaXNPYmplY3RMaWtlLFxuICBpc1BsYWluT2JqZWN0LFxuICBtZXJnZSxcbiAgc2V0LFxuICB0cmFuc2Zvcm0sXG4gIHVuaW9uLFxufSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdE5lc3RlZEZpZWxkc1dpbGRjYXJkKG9iajogYW55LCBiYXNlUGF0aDogc3RyaW5nLCBmaWVsZHM6IHN0cmluZ1tdKTogYW55IHtcbiAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcblxuICBpZiAoZmllbGRzLmxlbmd0aCA9PT0gMSAmJiBmaWVsZHNbMF0gPT09ICcqJykge1xuICAgIGNvbnN0IGZ1bGxPYmogPSBnZXQob2JqLCBiYXNlUGF0aCk7XG4gICAgcmV0dXJuIGlzUGxhaW5PYmplY3QoZnVsbE9iaikgPyBmdWxsT2JqIDoge307XG4gIH1cblxuICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gYmFzZVBhdGggPyBgJHtiYXNlUGF0aH0uJHtmaWVsZH1gIDogZmllbGQ7XG4gICAgY29uc3QgdmFsdWUgPSBnZXQob2JqLCBmdWxsUGF0aCk7XG4gICAgc2V0KHJlc3VsdCwgZmllbGQsIHZhbHVlKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTbWFydChvYmo6IGFueSwgc21hcnRQYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBhbnkge1xuICBjb25zdCBwYXRoUGFydHMgPSBzbWFydFBhdGguc3BsaXQoJy4nKTtcbiAgY29uc3QgbGFzdFBhcnQgPSBwYXRoUGFydHNbcGF0aFBhcnRzLmxlbmd0aCAtIDFdO1xuICBjb25zdCBmaWVsZE1hdGNoID0gbGFzdFBhcnQubWF0Y2goL15cXHsoLispXFx9JC8pO1xuXG4gIGlmICghZmllbGRNYXRjaCkge1xuICAgIHNldChvYmosIHNtYXJ0UGF0aCwgdmFsdWUpO1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICBjb25zdCBmaWVsZHMgPSBmaWVsZE1hdGNoWzFdLnNwbGl0KCcsJykubWFwKChmKSA9PiBmLnRyaW0oKSk7XG4gIGNvbnN0IGJhc2VQYXRoID0gcGF0aFBhcnRzLnNsaWNlKDAsIC0xKS5qb2luKCcuJyk7XG4gIGNvbnN0IFthcnJheUtleSwgLi4ucmVzdFBhdGhdID0gYmFzZVBhdGguc3BsaXQoJy4nKTtcblxuICAvLyBNYWtlIHN1cmUgdGhlIGFycmF5IGV4aXN0c1xuICBpZiAoIW9ialthcnJheUtleV0pIG9ialthcnJheUtleV0gPSBbXTtcblxuICAvLyDwn5+hIENhc2UgQTogdmFsdWUgaXMgYXJyYXkgKG5vcm1hbCBzZXQpXG4gIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSB2YWx1ZVtpXTtcbiAgICAgIGNvbnN0IHRhcmdldEl0ZW0gPSBvYmpbYXJyYXlLZXldW2ldID8/IHt9O1xuICAgICAgY29uc3QgbmVzdGVkID0ge307XG5cbiAgICAgIGlmIChyZXN0UGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHBpY2tlZCA9IGV4dHJhY3ROZXN0ZWRGaWVsZHNXaWxkY2FyZChpdGVtLCByZXN0UGF0aC5qb2luKCcuJyksIGZpZWxkcyk7XG4gICAgICAgIHNldChuZXN0ZWQsIHJlc3RQYXRoLmpvaW4oJy4nKSwgcGlja2VkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHBpY2tlZCA9IGV4dHJhY3ROZXN0ZWRGaWVsZHNXaWxkY2FyZChpdGVtLCAnJywgZmllbGRzKTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXN0ZWQsIHBpY2tlZCk7XG4gICAgICB9XG5cbiAgICAgIG9ialthcnJheUtleV1baV0gPSBtZXJnZSh7fSwgdGFyZ2V0SXRlbSwgbmVzdGVkKTtcbiAgICB9XG4gIH1cblxuICAvLyDwn5+iIENhc2UgQjogdmFsdWUgaXMgYSBzaW5nbGUgdmFsdWUg4oaSIGJyb2FkY2FzdFxuICBlbHNlIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9ialthcnJheUtleV0ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHRhcmdldEl0ZW0gPSBvYmpbYXJyYXlLZXldW2ldID8/IHt9O1xuICAgICAgY29uc3QgbmVzdGVkID0ge307XG5cbiAgICAgIGlmIChyZXN0UGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICAgICAgc2V0KG5lc3RlZCwgYCR7cmVzdFBhdGguam9pbignLicpfS4ke2ZpZWxkfWAsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgICAgICBzZXQobmVzdGVkLCBmaWVsZCwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9ialthcnJheUtleV1baV0gPSBtZXJnZSh7fSwgdGFyZ2V0SXRlbSwgbmVzdGVkKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0RmllbGRzRnJvbVBhdGgob2JqOiBhbnksIGJhc2VQYXRoOiBzdHJpbmcsIGZpZWxkczogc3RyaW5nW10pOiBhbnkge1xuICBpZiAoZmllbGRzLmxlbmd0aCA9PT0gMSAmJiBmaWVsZHNbMF0gPT09ICcqJykge1xuICAgIGNvbnN0IGZ1bGxPYmogPSBiYXNlUGF0aCA/IGdldChvYmosIGJhc2VQYXRoKSA6IG9iajtcbiAgICByZXR1cm4gaXNQbGFpbk9iamVjdChmdWxsT2JqKSA/IGZ1bGxPYmogOiB7fTtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgY29uc3QgZnVsbFBhdGggPSBiYXNlUGF0aCA/IGAke2Jhc2VQYXRofS4ke2ZpZWxkfWAgOiBmaWVsZDtcbiAgICBjb25zdCB2YWwgPSBnZXQob2JqLCBmdWxsUGF0aCk7XG4gICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXN1bHRbZmllbGRdID0gdmFsO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U21hcnQob2JqOiBhbnksIHNtYXJ0UGF0aDogc3RyaW5nKTogYW55IHtcbiAgY29uc3QgcGF0aFBhcnRzID0gc21hcnRQYXRoLnNwbGl0KCcuJyk7XG4gIGNvbnN0IGxhc3RQYXJ0ID0gcGF0aFBhcnRzW3BhdGhQYXJ0cy5sZW5ndGggLSAxXTtcbiAgY29uc3QgZmllbGRNYXRjaCA9IGxhc3RQYXJ0Lm1hdGNoKC9eXFx7KC4rKVxcfSQvKTtcblxuICAvLyBTaW1wbGUgZ2V0IChubyBmaWVsZHMpXG4gIGlmICghZmllbGRNYXRjaCkge1xuICAgIHJldHVybiBnZXQob2JqLCBzbWFydFBhdGgpO1xuICB9XG5cbiAgY29uc3QgZmllbGRzID0gZmllbGRNYXRjaFsxXS5zcGxpdCgnLCcpLm1hcCgoZikgPT4gZi50cmltKCkpO1xuICBjb25zdCBiYXNlUGF0aCA9IHBhdGhQYXJ0cy5zbGljZSgwLCAtMSkuam9pbignLicpO1xuICBjb25zdCBpdGVtcyA9IGdldChvYmosIGJhc2VQYXRoKTtcblxuICBpZiAoIWlzQXJyYXkoaXRlbXMpKSByZXR1cm4gW107XG5cbiAgY29uc3QgbmVzdGVkUGF0aCA9IGJhc2VQYXRoLmluY2x1ZGVzKCcuJykgPyBiYXNlUGF0aC5zcGxpdCgnLicpLnNsaWNlKDEpLmpvaW4oJy4nKSA6ICcnO1xuXG4gIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICByZXR1cm4gZXh0cmFjdEZpZWxkc0Zyb21QYXRoKGl0ZW0sIG5lc3RlZFBhdGgsIGZpZWxkcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFZhbHVlPFQgPSBhbnk+KHZhbHVlOiBhbnksIGtleTogc3RyaW5nID0gJ2lkJyk6IFQgfCBudWxsIHtcbiAgaWYgKGlzTmlsKHZhbHVlKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpID8gZ2V0KHZhbHVlLCBrZXkpIDogdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkRlZXAob2JqOiBhbnkpIHtcbiAgcmV0dXJuIHRyYW5zZm9ybShvYmosIChyZXN1bHQ6IGFueSwgdmFsdWU6IGFueSwga2V5OiBzdHJpbmcpID0+IHtcbiAgICBpZiAoaXNPYmplY3RMaWtlKHZhbHVlKSkge1xuICAgICAgY29uc3QgY2xlYW5lZCA9IGNsZWFuRGVlcCh2YWx1ZSk7XG4gICAgICBpZiAoIWlzRW1wdHkoY2xlYW5lZCkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBjbGVhbmVkO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICAhaXNOaWwodmFsdWUpICYmIC8vIG5vdCBudWxsIG9yIHVuZGVmaW5lZFxuICAgICAgISh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKSA9PT0gJycpICYmIC8vIG5vdCBlbXB0eSBzdHJpbmdcbiAgICAgICEoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSAvLyBub3QgZW1wdHkgYXJyYXlcbiAgICApIHtcbiAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9KTtcbn1cblxudHlwZSBDaGFuZ2VFbnRyeSA9IHtcbiAgcGF0aDogc3RyaW5nO1xuICBvbGRWYWx1ZTogYW55O1xuICBuZXdWYWx1ZTogYW55O1xuICBhcnJheURpZmY/OiB7XG4gICAgYWRkZWQ6IGFueVtdO1xuICAgIHJlbW92ZWQ6IGFueVtdO1xuICB9O1xufTtcblxuZnVuY3Rpb24gZ2V0RGVlcENoYW5nZXMob2JqMTogYW55LCBvYmoyOiBhbnkpOiBDaGFuZ2VFbnRyeVtdIHtcbiAgY29uc3QgY2hhbmdlczogQ2hhbmdlRW50cnlbXSA9IFtdO1xuXG4gIGZ1bmN0aW9uIHdhbGsobzE6IGFueSwgbzI6IGFueSwgY3VycmVudFBhdGg6IHN0cmluZ1tdID0gW10pIHtcbiAgICAvLyBJZiBib3RoIHZhbHVlcyBhcmUgZGVlcGx5IGVxdWFsLCBza2lwXG4gICAgaWYgKGlzRXF1YWwobzEsIG8yKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgaXNPYmoxTmlsID0gbzEgPT09IG51bGwgfHwgbzEgPT09IHVuZGVmaW5lZDtcbiAgICBjb25zdCBpc09iajJOaWwgPSBvMiA9PT0gbnVsbCB8fCBvMiA9PT0gdW5kZWZpbmVkO1xuXG4gICAgLy8gSWYgb2JqMSBpcyBudWxsL3VuZGVmaW5lZCBhbmQgb2JqMiBpcyBub3QsIHRyZWF0IGVudGlyZSBvYmoyIGFzIGFkZGVkXG4gICAgaWYgKGlzT2JqMU5pbCAmJiAhaXNPYmoyTmlsKSB7XG4gICAgICBpZiAoaXNQbGFpbk9iamVjdChvMikpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobzIpKSB7XG4gICAgICAgICAgd2Fsayh1bmRlZmluZWQsIG8yW2tleV0sIFsuLi5jdXJyZW50UGF0aCwga2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShvMikpIHtcbiAgICAgICAgY2hhbmdlcy5wdXNoKHtcbiAgICAgICAgICBwYXRoOiBjdXJyZW50UGF0aC5qb2luKCcuJyksXG4gICAgICAgICAgb2xkVmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBuZXdWYWx1ZTogbzIsXG4gICAgICAgICAgYXJyYXlEaWZmOiB7XG4gICAgICAgICAgICBhZGRlZDogbzIsXG4gICAgICAgICAgICByZW1vdmVkOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICAgICAgcGF0aDogY3VycmVudFBhdGguam9pbignLicpLFxuICAgICAgICAgIG9sZFZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAgICAgbmV3VmFsdWU6IG8yLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJZiBvYmoyIGlzIG51bGwvdW5kZWZpbmVkIGFuZCBvYmoxIGlzIG5vdCwgdHJlYXQgZW50aXJlIG9iajEgYXMgcmVtb3ZlZFxuICAgIGlmICghaXNPYmoxTmlsICYmIGlzT2JqMk5pbCkge1xuICAgICAgaWYgKGlzUGxhaW5PYmplY3QobzEpKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG8xKSkge1xuICAgICAgICAgIHdhbGsobzFba2V5XSwgdW5kZWZpbmVkLCBbLi4uY3VycmVudFBhdGgsIGtleV0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkobzEpKSB7XG4gICAgICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICAgICAgcGF0aDogY3VycmVudFBhdGguam9pbignLicpLFxuICAgICAgICAgIG9sZFZhbHVlOiBvMSxcbiAgICAgICAgICBuZXdWYWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICAgIGFycmF5RGlmZjoge1xuICAgICAgICAgICAgYWRkZWQ6IFtdLFxuICAgICAgICAgICAgcmVtb3ZlZDogbzEsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjaGFuZ2VzLnB1c2goe1xuICAgICAgICAgIHBhdGg6IGN1cnJlbnRQYXRoLmpvaW4oJy4nKSxcbiAgICAgICAgICBvbGRWYWx1ZTogbzEsXG4gICAgICAgICAgbmV3VmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSWYgYm90aCBhcmUgYXJyYXlzLCBjb21wYXJlIGl0ZW1zXG4gICAgaWYgKEFycmF5LmlzQXJyYXkobzEpICYmIEFycmF5LmlzQXJyYXkobzIpKSB7XG4gICAgICBpZiAoIWlzRXF1YWwobzEsIG8yKSkge1xuICAgICAgICBjb25zdCBhZGRlZCA9IGRpZmZlcmVuY2VXaXRoKG8yLCBvMSwgaXNFcXVhbCk7XG4gICAgICAgIGNvbnN0IHJlbW92ZWQgPSBkaWZmZXJlbmNlV2l0aChvMSwgbzIsIGlzRXF1YWwpO1xuXG4gICAgICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICAgICAgcGF0aDogY3VycmVudFBhdGguam9pbignLicpLFxuICAgICAgICAgIG9sZFZhbHVlOiBvMSxcbiAgICAgICAgICBuZXdWYWx1ZTogbzIsXG4gICAgICAgICAgYXJyYXlEaWZmOiB7XG4gICAgICAgICAgICBhZGRlZCxcbiAgICAgICAgICAgIHJlbW92ZWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSWYgYm90aCBhcmUgcGxhaW4gb2JqZWN0cywgd2FsayBlYWNoIGtleVxuICAgIGlmIChpc1BsYWluT2JqZWN0KG8xKSAmJiBpc1BsYWluT2JqZWN0KG8yKSkge1xuICAgICAgY29uc3QgYWxsS2V5cyA9IHVuaW9uKE9iamVjdC5rZXlzKG8xKSwgT2JqZWN0LmtleXMobzIpKTtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIGFsbEtleXMpIHtcbiAgICAgICAgd2FsayhvMVtrZXldLCBvMltrZXldLCBbLi4uY3VycmVudFBhdGgsIGtleV0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFByaW1pdGl2ZSB2YWx1ZXMgb3IgbWlzbWF0Y2hlZCB0eXBlc1xuICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICBwYXRoOiBjdXJyZW50UGF0aC5qb2luKCcuJyksXG4gICAgICBvbGRWYWx1ZTogbzEsXG4gICAgICBuZXdWYWx1ZTogbzIsXG4gICAgfSk7XG4gIH1cblxuICB3YWxrKG9iajEsIG9iajIpO1xuICByZXR1cm4gY2hhbmdlcztcbn1cblxuLy8gTWV0aG9kIDE6IFJldHVybnMgb25seSBjaGFuZ2VkIHBhdGhzXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhbmdlZFBhdGhzKG9iajE6IGFueSwgb2JqMjogYW55KTogc3RyaW5nW10ge1xuICByZXR1cm4gZ2V0RGVlcENoYW5nZXMob2JqMSwgb2JqMikubWFwKChjaGFuZ2UpID0+IGNoYW5nZS5wYXRoKTtcbn1cblxuLy8gTWV0aG9kIDI6IFJldHVybnMgZnVsbCBjaGFuZ2UgZW50cmllc1xuZXhwb3J0IGZ1bmN0aW9uIGdldERldGFpbGVkQ2hhbmdlcyhvYmoxOiBhbnksIG9iajI6IGFueSk6IENoYW5nZUVudHJ5W10ge1xuICByZXR1cm4gZ2V0RGVlcENoYW5nZXMob2JqMSwgb2JqMik7XG59XG5cblxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW51bVZhbHVlcyhlbnVtVHlwZTogYW55KTogeyBpZDogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH1bXSB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhlbnVtVHlwZSkubWFwKChba2V5LCB2YWx1ZV0pID0+ICh7IGlkOiB2YWx1ZSBhcyBzdHJpbmcsIHRpdGxlOiBrZXkgYXMgc3RyaW5nIH0pKTtcbn1cblxuXG5cblxuXG4iXX0=","import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';\nimport { cloneDeep, isEqual } from 'lodash-es';\nimport { computed } from '@angular/core';\nimport { getSmart, setSmart } from '../utils/object-util';\nexport class AXPContextChangeEvent {\n}\nexport const AXPContextStore = signalStore({\n providedIn: 'root',\n}, \n// Initial State\nwithState(() => ({\n data: {}, // Shared context data\n state: 'initiated', // Current state\n initialSnapshot: {}, // Snapshot of the first initialized state\n previousSnapshot: {}, // Snapshot of the previous state\n lastChange: {\n state: 'initiated',\n }, // Last change event\n})), \n// Computed Signals\nwithComputed(({ data, state, lastChange, initialSnapshot, previousSnapshot }) => ({\n isChanged: computed(() => state() === 'changed'),\n isReset: computed(() => state() === 'restored'),\n isInitiated: computed(() => state() === 'initiated'),\n isEmpty: computed(() => Object.keys(data()).length === 0),\n isDirty: computed(() => !isEqual(data(), previousSnapshot())),\n snapshot: computed(() => cloneDeep(data())), // Current data snapshot\n initial: computed(() => cloneDeep(initialSnapshot())), // Initial snapshot\n previous: computed(() => cloneDeep(previousSnapshot())), // Previous snapshot\n changeEvent: computed(() => lastChange()), // Reactive last change event\n})), \n// Methods for State Management\nwithMethods((store) => ({\n // Update a specific value\n update(path, value) {\n const currentData = cloneDeep(store.data());\n const oldValue = getSmart(currentData, path);\n // Skip if the value hasn't changed\n if (isEqual(oldValue, value)) {\n return;\n }\n // Update the value and prepare the change event\n const updatedData = setSmart(currentData, path, value);\n const changeEvent = {\n oldValue,\n newValue: value,\n path,\n state: 'changed',\n data: updatedData,\n };\n // Patch the state\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: updatedData,\n state: 'changed',\n lastChange: changeEvent,\n });\n },\n patch(context) {\n const currentData = cloneDeep(store.data());\n // Update the value and prepare the change event\n const updatedData = { ...currentData, ...context };\n const changeEvent = {\n state: 'patch',\n data: updatedData,\n };\n // Patch the state\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: updatedData,\n state: 'changed',\n lastChange: changeEvent,\n });\n },\n // Reset to the initial state\n reset() {\n const initialData = store.initial();\n const changeEvent = {\n oldValue: cloneDeep(store.data()), // Current data becomes old value\n newValue: cloneDeep(initialData), // Reset to the initial state\n path: '',\n state: 'restored',\n data: initialData,\n };\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: initialData,\n state: 'restored',\n lastChange: changeEvent,\n });\n },\n // Initialize the state\n set(initialData) {\n const currentData = store.data();\n if (isEqual(currentData, initialData)) {\n return; // Skip if the current state matches the initial state\n }\n const changeEvent = {\n oldValue: null,\n newValue: cloneDeep(initialData),\n path: '',\n state: 'initiated',\n data: initialData,\n };\n patchState(store, {\n initialSnapshot: cloneDeep(initialData), // Save the initial state\n previousSnapshot: store.snapshot(), // Save the current state as the previous\n data: initialData,\n state: 'initiated',\n lastChange: changeEvent,\n });\n },\n // Get a specific value\n getValue(path) {\n return getSmart(store.data(), path);\n },\n})));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1zdG9yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvY29udGV4dC9jb250ZXh0LXN0b3JlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBUzFELE1BQU0sT0FBTyxxQkFBcUI7Q0FNakM7QUFFRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUN0QztJQUNJLFVBQVUsRUFBRSxNQUFNO0NBQ3JCO0FBQ0QsZ0JBQWdCO0FBQ2hCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2IsSUFBSSxFQUFFLEVBQW9CLEVBQUUsc0JBQXNCO0lBQ2xELEtBQUssRUFBRSxXQUE4QixFQUFFLGdCQUFnQjtJQUN2RCxlQUFlLEVBQUUsRUFBRSxFQUFFLDBDQUEwQztJQUMvRCxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsaUNBQWlDO0lBQ3ZELFVBQVUsRUFBRTtRQUNSLEtBQUssRUFBRSxXQUFXO0tBQ0ksRUFBRSxvQkFBb0I7Q0FDbkQsQ0FBQyxDQUFDO0FBRUgsbUJBQW1CO0FBQ25CLFlBQVksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUs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V0FBVztTQUMxQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsdUJBQXVCO0lBQ3ZCLFFBQVEsQ0FBQyxJQUFZO1FBQ2pCLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0osQ0FBQyxDQUFDLENBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNpZ25hbFN0b3JlLCB3aXRoU3RhdGUsIHdpdGhDb21wdXRlZCwgd2l0aE1ldGhvZHMsIHBhdGNoU3RhdGUgfSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0U21hcnQsIHNldFNtYXJ0IH0gZnJvbSAnLi4vdXRpbHMvb2JqZWN0LXV0aWwnO1xuXG5cbmV4cG9ydCB0eXBlIEFYUENvbnRleHRTdGF0ZSA9ICdpbml0aWF0ZWQnIHwgJ3Jlc3RvcmVkJyB8ICdjaGFuZ2VkJyB8ICdwYXRjaCc7XG5cbmV4cG9ydCB0eXBlIEFYUENvbnRleHREYXRhID0ge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUENvbnRleHRDaGFuZ2VFdmVudCB7XG4gICAgb2xkVmFsdWU/OiBhbnk7XG4gICAgbmV3VmFsdWU/OiBhbnk7XG4gICAgcGF0aD86IHN0cmluZztcbiAgICBzdGF0ZTogQVhQQ29udGV4dFN0YXRlO1xuICAgIGRhdGE6IGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IEFYUENvbnRleHRTdG9yZSA9IHNpZ25hbFN0b3JlKFxuICAgIHtcbiAgICAgICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIH0sXG4gICAgLy8gSW5pdGlhbCBTdGF0ZVxuICAgIHdpdGhTdGF0ZSgoKSA9PiAoe1xuICAgICAgICBkYXRhOiB7fSBhcyBBWFBDb250ZXh0RGF0YSwgLy8gU2hhcmVkIGNvbnRleHQgZGF0YVxuICAgICAgICBzdGF0ZTogJ2luaXRpYXRlZCcgYXMgQVhQQ29udGV4dFN0YXRlLCAvLyBDdXJyZW50IHN0YXRlXG4gICAgICAgIGluaXRpYWxTbmFwc2hvdDoge30sIC8vIFNuYXBzaG90IG9mIHRoZSBmaXJzdCBpbml0aWFsaXplZCBzdGF0ZVxuICAgICAgICBwcmV2aW91c1NuYXBzaG90OiB7fSwgLy8gU25hcHNob3Qgb2YgdGhlIHByZXZpb3VzIHN0YXRlXG4gICAgICAgIGxhc3RDaGFuZ2U6IHtcbiAgICAgICAgICAgIHN0YXRlOiAnaW5pdGlhdGVkJyxcbiAgICAgICAgfSBhcyBBWFBDb250ZXh0Q2hhbmdlRXZlbnQsIC8vIExhc3QgY2hhbmdlIGV2ZW50XG4gICAgfSkpLFxuXG4gICAgLy8gQ29tcHV0ZWQgU2lnbmFsc1xuICAgIHdpdGhDb21wdXRlZCgoeyBkYXRhLCBzdGF0ZSwgbGFzdENoYW5nZSwgaW5pdGlhbFNuYXBzaG90LCBwcmV2aW91c1NuYXBzaG90IH0pID0+ICh7XG4gICAgICAgIGlzQ2hhbmdlZDogY29tcHV0ZWQoKCkgPT4gc3RhdGUoKSA9PT0gJ2NoYW5nZWQnKSxcbiAgICAgICAgaXNSZXNldDogY29tcHV0ZWQoKCkgPT4gc3RhdGUoKSA9PT0gJ3Jlc3RvcmVkJyksXG4gICAgICAgIGlzSW5pdGlhdGVkOiBjb21wdXRlZCgoKSA9PiBzdGF0ZSgpID09PSAnaW5pdGlhdGVkJyksXG4gICAgICAgIGlzRW1wdHk6IGNvbXB1dGVkKCgpID0+IE9iamVjdC5rZXlzKGRhdGEoKSkubGVuZ3RoID09PSAwKSxcbiAgICAgICAgaXNEaXJ0eTogY29tcHV0ZWQoKCkgPT4gIWlzRXF1YWwoZGF0YSgpLCBwcmV2aW91c1NuYXBzaG90KCkpKSwgXG4gICAgICAgIHNuYXBzaG90OiBjb21wdXRlZCgoKSA9PiBjbG9uZURlZXAoZGF0YSgpKSksIC8vIEN1cnJlbnQgZGF0YSBzbmFwc2hvdFxuICAgICAgICBpbml0aWFsOiBjb21wdXRlZCgoKSA9PiBjbG9uZURlZXAoaW5pdGlhbFNuYXBzaG90KCkpKSwgLy8gSW5pdGlhbCBzbmFwc2hvdFxuICAgICAgICBwcmV2aW91czogY29tcHV0ZWQoKCkgPT4gY2xvbmVEZWVwKHByZXZpb3VzU25hcHNob3QoKSkpLCAvLyBQcmV2aW91cyBzbmFwc2hvdFxuICAgICAgICBjaGFuZ2VFdmVudDogY29tcHV0ZWQoKCkgPT4gbGFzdENoYW5nZSgpKSwgLy8gUmVhY3RpdmUgbGFzdCBjaGFuZ2UgZXZlbnRcbiAgICB9KSksXG5cbiAgICAvLyBNZXRob2RzIGZvciBTdGF0ZSBNYW5hZ2VtZW50XG4gICAgd2l0aE1ldGhvZHMoKHN0b3JlKSA9PiAoe1xuICAgICAgICAvLyBVcGRhdGUgYSBzcGVjaWZpYyB2YWx1ZVxuICAgICAgICB1cGRhdGUocGF0aDogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0YSA9IGNsb25lRGVlcChzdG9yZS5kYXRhKCkpO1xuICAgICAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSBnZXRTbWFydChjdXJyZW50RGF0YSwgcGF0aCk7XG5cbiAgICAgICAgICAgIC8vIFNraXAgaWYgdGhlIHZhbHVlIGhhc24ndCBjaGFuZ2VkXG4gICAgICAgICAgICBpZiAoaXNFcXVhbChvbGRWYWx1ZSwgdmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBVcGRhdGUgdGhlIHZhbHVlIGFuZCBwcmVwYXJlIHRoZSBjaGFuZ2UgZXZlbnRcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0gc2V0U21hcnQoY3VycmVudERhdGEsIHBhdGgsIHZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZUV2ZW50OiBBWFBDb250ZXh0Q2hhbmdlRXZlbnQgPSB7XG4gICAgICAgICAgICAgICAgb2xkVmFsdWUsXG4gICAgICAgICAgICAgICAgbmV3VmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdjaGFuZ2VkJyxcbiAgICAgICAgICAgICAgICBkYXRhOiB1cGRhdGVkRGF0YSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8vIFBhdGNoIHRoZSBzdGF0ZVxuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgIHByZXZpb3VzU25hcHNob3Q6IHN0b3JlLnNuYXBzaG90KCksIC8vIFNhdmUgdGhlIHByZXZpb3VzIHN0YXRlXG4gICAgICAgICAgICAgICAgZGF0YTogdXBkYXRlZERhdGEsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdjaGFuZ2VkJyxcbiAgICAgICAgICAgICAgICBsYXN0Q2hhbmdlOiBjaGFuZ2VFdmVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIHBhdGNoKGNvbnRleHQ6IHt9KSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0YSA9IGNsb25lRGVlcChzdG9yZS5kYXRhKCkpO1xuICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSB2YWx1ZSBhbmQgcHJlcGFyZSB0aGUgY2hhbmdlIGV2ZW50XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IHsgLi4uY3VycmVudERhdGEsIC4uLmNvbnRleHQgfTtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZUV2ZW50OiBBWFBDb250ZXh0Q2hhbmdlRXZlbnQgPSB7XG4gICAgICAgICAgICAgICAgc3RhdGU6ICdwYXRjaCcsXG4gICAgICAgICAgICAgICAgZGF0YTogdXBkYXRlZERhdGEsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAvLyBQYXRjaCB0aGUgc3RhdGVcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICBwcmV2aW91c1NuYXBzaG90OiBzdG9yZS5zbmFwc2hvdCgpLCAvLyBTYXZlIHRoZSBwcmV2aW91cyBzdGF0ZVxuICAgICAgICAgICAgICAgIGRhdGE6IHVwZGF0ZWREYXRhLFxuICAgICAgICAgICAgICAgIHN0YXRlOiAnY2hhbmdlZCcsXG4gICAgICAgICAgICAgICAgbGFzdENoYW5nZTogY2hhbmdlRXZlbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICAvLyBSZXNldCB0byB0aGUgaW5pdGlhbCBzdGF0ZVxuICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgIGNvbnN0IGluaXRpYWxEYXRhID0gc3RvcmUuaW5pdGlhbCgpO1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlRXZlbnQ6IEFYUENvbnRleHRDaGFuZ2VFdmVudCA9IHtcbiAgICAgICAgICAgICAgICBvbGRWYWx1ZTogY2xvbmVEZWVwKHN0b3JlLmRhdGEoKSksIC8vIEN1cnJlbnQgZGF0YSBiZWNvbWVzIG9sZCB2YWx1ZVxuICAgICAgICAgICAgICAgIG5ld1ZhbHVlOiBjbG9uZURlZXAoaW5pdGlhbERhdGEpLCAvLyBSZXNldCB0byB0aGUgaW5pdGlhbCBzdGF0ZVxuICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgICAgIHN0YXRlOiAncmVzdG9yZWQnLFxuICAgICAgICAgICAgICAgIGRhdGE6IGluaXRpYWxEYXRhLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgIHByZXZpb3VzU25hcHNob3Q6IHN0b3JlLnNuYXBzaG90KCksIC8vIFNhdmUgdGhlIHByZXZpb3VzIHN0YXRlXG4gICAgICAgICAgICAgICAgZGF0YTogaW5pdGlhbERhdGEsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdyZXN0b3JlZCcsXG4gICAgICAgICAgICAgICAgbGFzdENoYW5nZTogY2hhbmdlRXZlbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICAvLyBJbml0aWFsaXplIHRoZSBzdGF0ZVxuICAgICAgICBzZXQoaW5pdGlhbERhdGE6IGFueSkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudERhdGEgPSBzdG9yZS5kYXRhKCk7XG4gICAgICAgICAgICBpZiAoaXNFcXVhbChjdXJyZW50RGF0YSwgaW5pdGlhbERhdGEpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBTa2lwIGlmIHRoZSBjdXJyZW50IHN0YXRlIG1hdGNoZXMgdGhlIGluaXRpYWwgc3RhdGVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY2hhbmdlRXZlbnQ6IEFYUENvbnRleHRDaGFuZ2VFdmVudCA9IHtcbiAgICAgICAgICAgICAgICBvbGRWYWx1ZTogbnVsbCxcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZTogY2xvbmVEZWVwKGluaXRpYWxEYXRhKSxcbiAgICAgICAgICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ2luaXRpYXRlZCcsXG4gICAgICAgICAgICAgICAgZGF0YTogaW5pdGlhbERhdGEsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgaW5pdGlhbFNuYXBzaG90OiBjbG9uZURlZXAoaW5pdGlhbERhdGEpLCAvLyBTYXZlIHRoZSBpbml0aWFsIHN0YXRlXG4gICAgICAgICAgICAgICAgcHJldmlvdXNTbmFwc2hvdDogc3RvcmUuc25hcHNob3QoKSwgLy8gU2F2ZSB0aGUgY3VycmVudCBzdGF0ZSBhcyB0aGUgcHJldmlvdXNcbiAgICAgICAgICAgICAgICBkYXRhOiBpbml0aWFsRGF0YSxcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ2luaXRpYXRlZCcsXG4gICAgICAgICAgICAgICAgbGFzdENoYW5nZTogY2hhbmdlRXZlbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgLy8gR2V0IGEgc3BlY2lmaWMgdmFsdWVcbiAgICAgICAgZ2V0VmFsdWUocGF0aDogc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0U21hcnQoc3RvcmUuZGF0YSgpLCBwYXRoKTtcbiAgICAgICAgfSxcbiAgICB9KSlcbik7XG4iXX0=","export class AXPDataGenerator {\n static uuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (char) => {\n const random = (Math.random() * 16) | 0;\n const value = char === 'x' ? random : (random & 0x3) | 0x8;\n return value.toString(16);\n });\n }\n static number(...args) {\n let min = 0;\n let max = 100;\n if (args.length == 1)\n max = args[0];\n if (args.length == 2) {\n min = args[0];\n max = args[1];\n }\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n static date(...args) {\n let start = new Date(2000, 0, 1);\n let end = new Date();\n if (args.length === 1) {\n start = args[0];\n }\n else if (args.length === 2) {\n start = args[0];\n end = args[1];\n }\n const startTime = start.getTime();\n const endTime = end.getTime();\n return new Date(startTime + Math.random() * (endTime - startTime));\n }\n static array(length = 5, generator) {\n return Array.from({ length }, generator);\n }\n static pick(...args) {\n if (args.length < 1) {\n throw new Error('Invalid parameters');\n }\n const items = args[0];\n const count = args[1] ?? 1;\n if (count < 1) {\n throw new Error('Count must be at least 1');\n }\n // If the count is greater than the number of items, just return a shuffled copy of the array\n if (count >= items.length) {\n return [...items].sort(() => Math.random() - 0.5);\n }\n // Shuffle the array and slice the first 'count' elements\n const shuffled = items.slice();\n for (let i = shuffled.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]]; // Swap elements\n }\n return count == 1 ? shuffled.slice(0, count)[0] : shuffled.slice(0, count);\n }\n static string(length = 10) {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n static boolean() {\n return Math.random() >= 0.5;\n }\n static item(array = []) {\n return array.length > 0 ? array[Math.floor(Math.random() * array.length)] : undefined;\n }\n static color(format = 'hex') {\n // Generate HSL values with safe ranges for good contrast\n const h = Math.floor(Math.random() * 360);\n const s = Math.floor(Math.random() * 20) + 60; // 60% - 80%\n const l = Math.floor(Math.random() * 20) + 40; // 40% - 60%\n if (format === 'hsl') {\n return `hsl(${h}, ${s}%, ${l}%)`;\n }\n // Convert HSL to RGB\n const { r, g, b } = this.hslToRgb(h, s / 100, l / 100);\n if (format === 'rgb') {\n return `rgb(${r}, ${g}, ${b})`;\n }\n // Convert RGB to HEX\n const toHex = (val) => val.toString(16).padStart(2, '0');\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n }\n //TODO: move or read from utils\n static hslToRgb(h, s, l) {\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs((h / 60) % 2 - 1));\n const m = l - c / 2;\n let r = 0, g = 0, b = 0;\n if (h < 60)\n [r, g, b] = [c, x, 0];\n else if (h < 120)\n [r, g, b] = [x, c, 0];\n else if (h < 180)\n [r, g, b] = [0, c, x];\n else if (h < 240)\n [r, g, b] = [0, x, c];\n else if (h < 300)\n [r, g, b] = [x, 0, c];\n else\n [r, g, b] = [c, 0, x];\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255)\n };\n }\n static alphanumeric(length = 10) {\n const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n static alphabet(length = 10) {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n static phone() {\n const areaCode = this.number(100, 999);\n const exchangeCode = this.number(100, 999);\n const lineNumber = this.number(1000, 9999);\n return `${areaCode}-${exchangeCode}-${lineNumber}`;\n }\n static firstName() {\n const firstNames = ['John', 'Allen', 'Jak', 'Rose', 'Kate', 'Liam', 'Olivia', 'Noah', 'Emma', 'Ava'];\n return this.pick(firstNames);\n }\n static lastName() {\n const lastNames = ['Gates', 'Jonsen', 'Smith', 'Ford', 'Jakson', 'Brown', 'Johnson', 'Williams', 'Jones', 'Garcia'];\n return this.pick(lastNames);\n }\n static email(...args) {\n const domains = ['gmail.com', 'yahoo.com', 'outlook.com', 'example.com'];\n const domain = this.pick(domains);\n const separator = this.pick(['.', '_', '']);\n const randomSuffix = this.boolean() ? this.number(1, 99).toString() : '';\n if (args.length === 2) {\n const firstName = args[0].toLowerCase();\n const lastName = args[1].toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n }\n else {\n const firstName = this.firstName().toLowerCase();\n const lastName = this.lastName().toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n }\n }\n static country() {\n const countries = ['USA', 'Canada', 'Mexico', 'Germany', 'France', 'Japan', 'Australia'];\n return this.pick(countries);\n }\n static city() {\n const cities = ['Los Angeles', 'Toronto', 'Vancouver', 'Berlin', 'Paris', 'Tokyo', 'Sydney'];\n return this.pick(cities);\n }\n static state() {\n const states = ['NY', 'CA', 'TX', 'ON', 'BC', 'NSW', 'BER', 'IDF', 'TYO'];\n return this.pick(states);\n }\n static address() {\n const streets = ['Main St', 'High St', 'Maple Ave', 'Oak St', 'Pine St', 'Cedar St'];\n const streetNumber = this.number(100, 9999);\n const street = this.pick(streets);\n const city = this.city();\n const state = this.state();\n const zip = this.number(10000, 99999);\n const country = this.country();\n return `${streetNumber} ${street}, ${city}, ${state} ${zip}, ${country}`;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9kYXRhL2RhdGEtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsTUFBTSxDQUFDLElBQUk7UUFDVCxPQUFPLHNDQUFzQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0RSxNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDM0QsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFjO1FBQzdCLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNaLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckIsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNkLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FB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QUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPO1FBQ1osTUFBTSxPQUFPLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsT0FBTyxHQUFHLFlBQVksSUFBSSxNQUFNLEtBQUssSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLEtBQUssT0FBTyxFQUFFLENBQUM7SUFDM0UsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgY2xhc3MgQVhQRGF0YUdlbmVyYXRvciB7XG4gIHN0YXRpYyB1dWlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICd4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgKGNoYXIpID0+IHtcbiAgICAgIGNvbnN0IHJhbmRvbSA9IChNYXRoLnJhbmRvbSgpICogMTYpIHwgMDtcbiAgICAgIGNvbnN0IHZhbHVlID0gY2hhciA9PT0gJ3gnID8gcmFuZG9tIDogKHJhbmRvbSAmIDB4MykgfCAweDg7XG4gICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoMTYpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIG51bWJlcihtYXg6IG51bWJlcik6IG51bWJlcjtcbiAgc3RhdGljIG51bWJlcihtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXI7XG4gIHN0YXRpYyBudW1iZXIoLi4uYXJnczogbnVtYmVyW10pOiBudW1iZXIge1xuICAgIGxldCBtaW4gPSAwO1xuICAgIGxldCBtYXggPSAxMDA7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID09IDEpIG1heCA9IGFyZ3NbMF07XG4gICAgaWYgKGFyZ3MubGVuZ3RoID09IDIpIHtcbiAgICAgIG1pbiA9IGFyZ3NbMF07XG4gICAgICBtYXggPSBhcmdzWzFdO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKG1heCAtIG1pbiArIDEpKSArIG1pbjtcbiAgfVxuXG4gIHN0YXRpYyBkYXRlKCk6IERhdGU7XG4gIHN0YXRpYyBkYXRlKHN0YXJ0OiBEYXRlKTogRGF0ZTtcbiAgc3RhdGljIGRhdGUoc3RhcnQ6IERhdGUsIGVuZDogRGF0ZSk6IERhdGU7XG4gIHN0YXRpYyBkYXRlKC4uLmFyZ3M6IGFueVtdKTogRGF0ZSB7XG4gICAgbGV0IHN0YXJ0ID0gbmV3IERhdGUoMjAwMCwgMCwgMSk7XG4gICAgbGV0IGVuZCA9IG5ldyBEYXRlKCk7XG5cbiAgICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHN0YXJ0ID0gYXJnc1swXTtcbiAgICB9IGVsc2UgaWYgKGFyZ3MubGVuZ3RoID09PSAyKSB7XG4gICAgICBzdGFydCA9IGFyZ3NbMF07XG4gICAgICBlbmQgPSBhcmdzWzFdO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0VGltZSA9IHN0YXJ0LmdldFRpbWUoKTtcbiAgICBjb25zdCBlbmRUaW1lID0gZW5kLmdldFRpbWUoKTtcbiAgICByZXR1cm4gbmV3IERhdGUoc3RhcnRUaW1lICsgTWF0aC5yYW5kb20oKSAqIChlbmRUaW1lIC0gc3RhcnRUaW1lKSk7XG4gIH1cblxuICBzdGF0aWMgYXJyYXk8VD4obGVuZ3RoOiBudW1iZXIgPSA1LCBnZW5lcmF0b3I6ICgpID0+IFQpOiBUW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoIH0sIGdlbmVyYXRvcik7XG4gIH1cblxuICBzdGF0aWMgcGljazxUPihpdGVtczogVFtdKTogVDtcbiAgc3RhdGljIHBpY2s8VD4oaXRlbXM6IFRbXSwgY291bnQ6IG51bWJlcik6IFRbXTtcbiAgc3RhdGljIHBpY2s8VD4oLi4uYXJnczogYW55W10pOiBUIHwgVFtdIHtcbiAgICBpZiAoYXJncy5sZW5ndGggPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcGFyYW1ldGVycycpO1xuICAgIH1cbiAgICBjb25zdCBpdGVtczogVFtdID0gYXJnc1swXTtcbiAgICBjb25zdCBjb3VudDogbnVtYmVyID0gYXJnc1sxXSA/PyAxO1xuICAgIGlmIChjb3VudCA8IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ291bnQgbXVzdCBiZSBhdCBsZWFzdCAxJyk7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGNvdW50IGlzIGdyZWF0ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGl0ZW1zLCBqdXN0IHJldHVybiBhIHNodWZmbGVkIGNvcHkgb2YgdGhlIGFycmF5XG4gICAgaWYgKGNvdW50ID49IGl0ZW1zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIFsuLi5pdGVtc10uc29ydCgoKSA9PiBNYXRoLnJhbmRvbSgpIC0gMC41KTtcbiAgICB9XG5cbiAgICAvLyBTaHVmZmxlIHRoZSBhcnJheSBhbmQgc2xpY2UgdGhlIGZpcnN0ICdjb3VudCcgZWxlbWVudHNcbiAgICBjb25zdCBzaHVmZmxlZCA9IGl0ZW1zLnNsaWNlKCk7XG4gICAgZm9yIChsZXQgaSA9IHNodWZmbGVkLmxlbmd0aCAtIDE7IGkgPiAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IGogPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAoaSArIDEpKTtcbiAgICAgIFtzaHVmZmxlZFtpXSwgc2h1ZmZsZWRbal1dID0gW3NodWZmbGVkW2pdLCBzaHVmZmxlZFtpXV07IC8vIFN3YXAgZWxlbWVudHNcbiAgICB9XG4gICAgcmV0dXJuIGNvdW50ID09IDEgPyBzaHVmZmxlZC5zbGljZSgwLCBjb3VudClbMF0gOiBzaHVmZmxlZC5zbGljZSgwLCBjb3VudCk7XG4gIH1cblxuICBzdGF0aWMgc3RyaW5nKGxlbmd0aDogbnVtYmVyID0gMTApOiBzdHJpbmcge1xuICAgIGNvbnN0IGNoYXJzID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JztcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9LCAoKSA9PiBjaGFycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcnMubGVuZ3RoKSkpLmpvaW4oJycpO1xuICB9XG5cbiAgc3RhdGljIGJvb2xlYW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgPj0gMC41O1xuICB9XG5cbiAgc3RhdGljIGl0ZW08VD4oYXJyYXk6IFRbXSA9IFtdKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGFycmF5Lmxlbmd0aCA+IDAgPyBhcnJheVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBhcnJheS5sZW5ndGgpXSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyBjb2xvcihmb3JtYXQ6ICdoc2wnIHwgJ3JnYicgfCAnaGV4JyA9ICdoZXgnKTogc3RyaW5nIHtcbiAgICAvLyBHZW5lcmF0ZSBIU0wgdmFsdWVzIHdpdGggc2FmZSByYW5nZXMgZm9yIGdvb2QgY29udHJhc3RcbiAgICBjb25zdCBoID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMzYwKTtcbiAgICBjb25zdCBzID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjApICsgNjA7IC8vIDYwJSAtIDgwJVxuICAgIGNvbnN0IGwgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyMCkgKyA0MDsgLy8gNDAlIC0gNjAlXG5cbiAgICBpZiAoZm9ybWF0ID09PSAnaHNsJykge1xuICAgICAgcmV0dXJuIGBoc2woJHtofSwgJHtzfSUsICR7bH0lKWA7XG4gICAgfVxuXG4gICAgLy8gQ29udmVydCBIU0wgdG8gUkdCXG4gICAgY29uc3QgeyByLCBnLCBiIH0gPSB0aGlzLmhzbFRvUmdiKGgsIHMgLyAxMDAsIGwgLyAxMDApO1xuXG4gICAgaWYgKGZvcm1hdCA9PT0gJ3JnYicpIHtcbiAgICAgIHJldHVybiBgcmdiKCR7cn0sICR7Z30sICR7Yn0pYDtcbiAgICB9XG5cbiAgICAvLyBDb252ZXJ0IFJHQiB0byBIRVhcbiAgICBjb25zdCB0b0hleCA9ICh2YWw6IG51bWJlcikgPT4gdmFsLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIHJldHVybiBgIyR7dG9IZXgocil9JHt0b0hleChnKX0ke3RvSGV4KGIpfWA7XG4gIH1cblxuICAvL1RPRE86IG1vdmUgb3IgcmVhZCBmcm9tIHV0aWxzXG4gIHByaXZhdGUgc3RhdGljIGhzbFRvUmdiKGg6IG51bWJlciwgczogbnVtYmVyLCBsOiBudW1iZXIpOiB7IHI6IG51bWJlcjsgZzogbnVtYmVyOyBiOiBudW1iZXIgfSB7XG4gICAgY29uc3QgYyA9ICgxIC0gTWF0aC5hYnMoMiAqIGwgLSAxKSkgKiBzO1xuICAgIGNvbnN0IHggPSBjICogKDEgLSBNYXRoLmFicygoaCAvIDYwKSAlIDIgLSAxKSk7XG4gICAgY29uc3QgbSA9IGwgLSBjIC8gMjtcbiAgICBsZXQgciA9IDAsIGcgPSAwLCBiID0gMDtcblxuICAgIGlmIChoIDwgNjApIFtyLCBnLCBiXSA9IFtjLCB4LCAwXTtcbiAgICBlbHNlIGlmIChoIDwgMTIwKSBbciwgZywgYl0gPSBbeCwgYywgMF07XG4gICAgZWxzZSBpZiAoaCA8IDE4MCkgW3IsIGcsIGJdID0gWzAsIGMsIHhdO1xuICAgIGVsc2UgaWYgKGggPCAyNDApIFtyLCBnLCBiXSA9IFswLCB4LCBjXTtcbiAgICBlbHNlIGlmIChoIDwgMzAwKSBbciwgZywgYl0gPSBbeCwgMCwgY107XG4gICAgZWxzZVtyLCBnLCBiXSA9IFtjLCAwLCB4XTtcblxuICAgIHJldHVybiB7XG4gICAgICByOiBNYXRoLnJvdW5kKChyICsgbSkgKiAyNTUpLFxuICAgICAgZzogTWF0aC5yb3VuZCgoZyArIG0pICogMjU1KSxcbiAgICAgIGI6IE1hdGgucm91bmQoKGIgKyBtKSAqIDI1NSlcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGFscGhhbnVtZXJpYyhsZW5ndGg6IG51bWJlciA9IDEwKTogc3RyaW5nIHtcbiAgICBjb25zdCBjaGFycyA9ICcwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eic7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGggfSwgKCkgPT4gY2hhcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJzLmxlbmd0aCkpKS5qb2luKCcnKTtcbiAgfVxuICBzdGF0aWMgYWxwaGFiZXQobGVuZ3RoOiBudW1iZXIgPSAxMCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2hhcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eic7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGggfSwgKCkgPT4gY2hhcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJzLmxlbmd0aCkpKS5qb2luKCcnKTtcbiAgfVxuXG4gIHN0YXRpYyBwaG9uZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFyZWFDb2RlID0gdGhpcy5udW1iZXIoMTAwLCA5OTkpO1xuICAgIGNvbnN0IGV4Y2hhbmdlQ29kZSA9IHRoaXMubnVtYmVyKDEwMCwgOTk5KTtcbiAgICBjb25zdCBsaW5lTnVtYmVyID0gdGhpcy5udW1iZXIoMTAwMCwgOTk5OSk7XG4gICAgcmV0dXJuIGAke2FyZWFDb2RlfS0ke2V4Y2hhbmdlQ29kZX0tJHtsaW5lTnVtYmVyfWA7XG4gIH1cblxuICBzdGF0aWMgZmlyc3ROYW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZmlyc3ROYW1lcyA9IFsnSm9obicsICdBbGxlbicsICdKYWsnLCAnUm9zZScsICdLYXRlJywgJ0xpYW0nLCAnT2xpdmlhJywgJ05vYWgnLCAnRW1tYScsICdBdmEnXTtcbiAgICByZXR1cm4gdGhpcy5waWNrKGZpcnN0TmFtZXMpO1xuICB9XG5cbiAgc3RhdGljIGxhc3ROYW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbGFzdE5hbWVzID0gWydHYXRlcycsICdKb25zZW4nLCAnU21pdGgnLCAnRm9yZCcsICdKYWtzb24nLCAnQnJvd24nLCAnSm9obnNvbicsICdXaWxsaWFtcycsICdKb25lcycsICdHYXJjaWEnXTtcbiAgICByZXR1cm4gdGhpcy5waWNrKGxhc3ROYW1lcyk7XG4gIH1cblxuICBzdGF0aWMgZW1haWwoKTogc3RyaW5nO1xuICBzdGF0aWMgZW1haWwoZmlyc3ROYW1lOiBzdHJpbmcsIGxhc3ROYW1lOiBzdHJpbmcpOiBzdHJpbmc7XG4gIHN0YXRpYyBlbWFpbCguLi5hcmdzOiBhbnlbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgZG9tYWlucyA9IFsnZ21haWwuY29tJywgJ3lhaG9vLmNvbScsICdvdXRsb29rLmNvbScsICdleGFtcGxlLmNvbSddO1xuICAgIGNvbnN0IGRvbWFpbiA9IHRoaXMucGljayhkb21haW5zKTtcbiAgICBjb25zdCBzZXBhcmF0b3IgPSB0aGlzLnBpY2soWycuJywgJ18nLCAnJ10pO1xuICAgIGNvbnN0IHJhbmRvbVN1ZmZpeCA9IHRoaXMuYm9vbGVhbigpID8gdGhpcy5udW1iZXIoMSwgOTkpLnRvU3RyaW5nKCkgOiAnJztcblxuICAgIGlmIChhcmdzLmxlbmd0aCA9PT0gMikge1xuICAgICAgY29uc3QgZmlyc3ROYW1lID0gYXJnc1swXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgY29uc3QgbGFzdE5hbWUgPSBhcmdzWzFdLnRvTG93ZXJDYXNlKCk7XG4gICAgICByZXR1cm4gYCR7Zmlyc3ROYW1lfSR7c2VwYXJhdG9yfSR7bGFzdE5hbWV9JHtyYW5kb21TdWZmaXh9QCR7ZG9tYWlufWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZpcnN0TmFtZSA9IHRoaXMuZmlyc3ROYW1lKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IGxhc3ROYW1lID0gdGhpcy5sYXN0TmFtZSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICByZXR1cm4gYCR7Zmlyc3ROYW1lfSR7c2VwYXJhdG9yfSR7bGFzdE5hbWV9JHtyYW5kb21TdWZmaXh9QCR7ZG9tYWlufWA7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGNvdW50cnkoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb3VudHJpZXMgPSBbJ1VTQScsICdDYW5hZGEnLCAnTWV4aWNvJywgJ0dlcm1hbnknLCAnRnJhbmNlJywgJ0phcGFuJywgJ0F1c3RyYWxpYSddO1xuICAgIHJldHVybiB0aGlzLnBpY2soY291bnRyaWVzKTtcbiAgfVxuXG4gIHN0YXRpYyBjaXR5KCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2l0aWVzID0gWydMb3MgQW5nZWxlcycsICdUb3JvbnRvJywgJ1ZhbmNvdXZlcicsICdCZXJsaW4nLCAnUGFyaXMnLCAnVG9reW8nLCAnU3lkbmV5J107XG4gICAgcmV0dXJuIHRoaXMucGljayhjaXRpZXMpO1xuICB9XG5cbiAgc3RhdGljIHN0YXRlKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RhdGVzID0gWydOWScsICdDQScsICdUWCcsICdPTicsICdCQycsICdOU1cnLCAnQkVSJywgJ0lERicsICdUWU8nXTtcbiAgICByZXR1cm4gdGhpcy5waWNrKHN0YXRlcyk7XG4gIH1cblxuICBzdGF0aWMgYWRkcmVzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0cmVldHMgPSBbJ01haW4gU3QnLCAnSGlnaCBTdCcsICdNYXBsZSBBdmUnLCAnT2FrIFN0JywgJ1BpbmUgU3QnLCAnQ2VkYXIgU3QnXTtcbiAgICBjb25zdCBzdHJlZXROdW1iZXIgPSB0aGlzLm51bWJlcigxMDAsIDk5OTkpO1xuICAgIGNvbnN0IHN0cmVldCA9IHRoaXMucGljayhzdHJlZXRzKTtcbiAgICBjb25zdCBjaXR5ID0gdGhpcy5jaXR5KCk7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlKCk7XG4gICAgY29uc3QgemlwID0gdGhpcy5udW1iZXIoMTAwMDAsIDk5OTk5KTtcbiAgICBjb25zdCBjb3VudHJ5ID0gdGhpcy5jb3VudHJ5KCk7XG4gICAgcmV0dXJuIGAke3N0cmVldE51bWJlcn0gJHtzdHJlZXR9LCAke2NpdHl9LCAke3N0YXRlfSAke3ppcH0sICR7Y291bnRyeX1gO1xuICB9XG59XG4iXX0=","import { extractValue } from \"../utils/object-util\";\nexport function objectKeyValueTransforms(keyName) {\n return {\n getter: (value) => {\n return extractValue(value, keyName);\n },\n setter: (value) => {\n return extractValue(value, keyName);\n },\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtdHJhbnNmb3JtZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9kYXRhL3ZhbHVlLXRyYW5zZm9ybWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVFwRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsT0FBZTtJQUNwRCxPQUFPO1FBQ0gsTUFBTSxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDbkIsT0FBTyxZQUFZLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxNQUFNLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNuQixPQUFPLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEMsQ0FBQztLQUNKLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0cmFjdFZhbHVlIH0gZnJvbSBcIi4uL3V0aWxzL29iamVjdC11dGlsXCI7XG5leHBvcnQgdHlwZSBBWFBWYWx1ZVRyYW5zZm9ybWVyRnVuY3Rpb24gPSAodmFsdWU6IGFueSkgPT4gYW55O1xuXG5leHBvcnQgdHlwZSBBWFBWYWx1ZVRyYW5zZm9ybWVyRnVuY3Rpb25zID0ge1xuICAgIGdldHRlcj86IEFYUFZhbHVlVHJhbnNmb3JtZXJGdW5jdGlvbjtcbiAgICBzZXR0ZXI/OiBBWFBWYWx1ZVRyYW5zZm9ybWVyRnVuY3Rpb247XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gb2JqZWN0S2V5VmFsdWVUcmFuc2Zvcm1zKGtleU5hbWU6IHN0cmluZyk6IEFYUFZhbHVlVHJhbnNmb3JtZXJGdW5jdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICAgIGdldHRlcjogKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBleHRyYWN0VmFsdWUodmFsdWUsIGtleU5hbWUpO1xuICAgICAgICB9LFxuICAgICAgICBzZXR0ZXI6ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZXh0cmFjdFZhbHVlKHZhbHVlLCBrZXlOYW1lKTtcbiAgICAgICAgfSxcbiAgICB9O1xufSJdfQ==","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { set } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport const AXP_DATASOURCE_DEFINITION_PROVIDER = new InjectionToken('AXP_DATASOURCE_TYPE_PROVIDER');\nexport class AXPDataSourceDefinitionProviderService {\n constructor() {\n this.providers = inject(AXP_DATASOURCE_DEFINITION_PROVIDER, { optional: true });\n }\n async items() {\n const items = [];\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n set(provider, '__parent__', this);\n items.push(...(await provider.items()));\n }\n }\n return items;\n }\n async get(name) {\n return (await this.items()).find((c) => c.name == name);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPDataSourceDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPDataSourceDefinitionProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPDataSourceDefinitionProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS1kZWZpbml0aW9uLXByb3ZpZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9kYXRhL2RhdGFzb3VyY2UtZGVmaW5pdGlvbi1wcm92aWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQStCaEMsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsSUFBSSxjQUFjLENBQ2xFLDhCQUE4QixDQUMvQixDQUFDO0FBR0YsTUFBTSxPQUFPLHNDQUFzQztJQURuRDtRQUVVLGNBQVMsR0FBRyxNQUFNLENBQUMsa0NBQWtDLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQWdCcEY7SUFkQyxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sS0FBSyxHQUE4QixFQUFFLENBQUM7UUFDNUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2xDLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN0QyxHQUFHLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDbEMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFZO1FBQ3BCLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDOzhHQWhCVSxzQ0FBc0M7a0hBQXRDLHNDQUFzQyxjQUR6QixNQUFNOzsyRkFDbkIsc0NBQXNDO2tCQURsRCxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGF0YVNvdXJjZSB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBGaWx0ZXJEZWZpbml0aW9uLCBBWFBPcHRpb25zRGF0YSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGF0YVNvdXJjZURhdGFGaWVsZERlZmluaXRpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRhdGF0eXBlOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgb3B0aW9ucz86IEFYUE9wdGlvbnNEYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERhdGFTb3VyY2VEZWZpbml0aW9uPFQgPSBhbnk+IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB2YWx1ZUZpZWxkPzoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICB9O1xuICB0ZXh0RmllbGQ/OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gIH07XG4gIGNvbHVtbnM6IEFYUERhdGFTb3VyY2VEYXRhRmllbGREZWZpbml0aW9uW107XG4gIGZpbHRlcnM6IEFYUEZpbHRlckRlZmluaXRpb25bXTtcbiAgc2FtcGxlcz86IGFueVtdO1xuICBzb3VyY2U6ICgpID0+IEFYRGF0YVNvdXJjZTxUPiB8IFByb21pc2U8QVhEYXRhU291cmNlPFQ+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBEYXRhU291cmNlRGVmaW5pdGlvblByb3ZpZGVyIHtcbiAgaXRlbXMoKTogUHJvbWlzZTxBWFBEYXRhU291cmNlRGVmaW5pdGlvbltdPjtcbn1cblxuZXhwb3J0IGNvbnN0IEFYUF9EQVRBU09VUkNFX0RFRklOSVRJT05fUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQRGF0YVNvdXJjZURlZmluaXRpb25Qcm92aWRlcltdPihcbiAgJ0FYUF9EQVRBU09VUkNFX1RZUEVfUFJPVklERVInLFxuKTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBEYXRhU291cmNlRGVmaW5pdGlvblByb3ZpZGVyU2VydmljZSBpbXBsZW1lbnRzIEFYUERhdGFTb3VyY2VEZWZpbml0aW9uUHJvdmlkZXIge1xuICBwcml2YXRlIHByb3ZpZGVycyA9IGluamVjdChBWFBfREFUQVNPVVJDRV9ERUZJTklUSU9OX1BST1ZJREVSLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIGFzeW5jIGl0ZW1zKCk6IFByb21pc2U8QVhQRGF0YVNvdXJjZURlZmluaXRpb25bXT4ge1xuICAgIGNvbnN0IGl0ZW1zOiBBWFBEYXRhU291cmNlRGVmaW5pdGlvbltdID0gW107XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5wcm92aWRlcnMpKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICAgIHNldChwcm92aWRlciwgJ19fcGFyZW50X18nLCB0aGlzKTtcbiAgICAgICAgaXRlbXMucHVzaCguLi4oYXdhaXQgcHJvdmlkZXIuaXRlbXMoKSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cblxuICBhc3luYyBnZXQobmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFBEYXRhU291cmNlRGVmaW5pdGlvbiB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5pdGVtcygpKS5maW5kKChjKSA9PiBjLm5hbWUgPT0gbmFtZSk7XG4gIH1cbn1cbiJdfQ==","import { Directive, ElementRef, input, effect } from '@angular/core';\nimport { set, get } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport class AXPElementDataDirective {\n constructor(elementRef) {\n this.elementRef = elementRef;\n this.data = input(null, ...(ngDevMode ? [{ debugName: \"data\", alias: 'axp-data' }] : [{ alias: 'axp-data' }]));\n this.path = input('__data__', ...(ngDevMode ? [{ debugName: \"path\", alias: 'axp-data-path' }] : [{ alias: 'axp-data-path' }]));\n // Effect to update element data when inputs change\n this.updateEffect = effect(() => {\n const currentData = this.data();\n const currentPath = this.path();\n set(this.elementRef.nativeElement, currentPath, currentData);\n }, ...(ngDevMode ? [{ debugName: \"updateEffect\" }] : []));\n }\n ngOnInit() {\n // Initial data setup\n set(this.elementRef.nativeElement, this.path(), this.data());\n }\n /**\n * Get data from the element\n */\n getData() {\n return get(this.elementRef.nativeElement, this.path());\n }\n /**\n * Update data at runtime\n */\n setData(data) {\n set(this.elementRef.nativeElement, this.path(), data);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPElementDataDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.6\", type: AXPElementDataDirective, isStandalone: true, selector: \"[axp-data]\", inputs: { data: { classPropertyName: \"data\", publicName: \"axp-data\", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: \"path\", publicName: \"axp-data-path\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPElementDataDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-data]',\n standalone: true\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1kYXRhLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvZWxlbWVudC1kYXRhLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQU1yQyxNQUFNLE9BQU8sdUJBQXVCO0lBS2hDLFlBQW9CLFVBQW1DO1FBQW5DLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBSHZELFNBQUksR0FBRyxLQUFLLENBQU0sSUFBSSx3Q0FBSSxLQUFLLEVBQUUsVUFBVSxPQUFuQixFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBQyxDQUFDO1FBQy9DLFNBQUksR0FBRyxLQUFLLENBQVMsVUFBVSx3Q0FBSSxLQUFLLEVBQUUsZUFBZSxPQUF4QixFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsR0FBQyxDQUFDO1FBUzdELG1EQUFtRDtRQUMzQyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDL0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsd0RBQUMsQ0FBQztJQVp3RCxDQUFDO0lBRTVELFFBQVE7UUFDSixxQkFBcUI7UUFDckIsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBU0Q7O09BRUc7SUFDSCxPQUFPO1FBQ0gsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLElBQVM7UUFDYixHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7OEdBL0JRLHVCQUF1QjtrR0FBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGlucHV0LCBPbkluaXQsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2V0LCBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1theHAtZGF0YV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQVhQRWxlbWVudERhdGFEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgZGF0YSA9IGlucHV0PGFueT4obnVsbCwgeyBhbGlhczogJ2F4cC1kYXRhJyB9KTtcbiAgICBwYXRoID0gaW5wdXQ8c3RyaW5nPignX19kYXRhX18nLCB7IGFsaWFzOiAnYXhwLWRhdGEtcGF0aCcgfSk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7IH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBJbml0aWFsIGRhdGEgc2V0dXBcbiAgICAgICAgc2V0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLnBhdGgoKSwgdGhpcy5kYXRhKCkpO1xuICAgIH1cblxuICAgIC8vIEVmZmVjdCB0byB1cGRhdGUgZWxlbWVudCBkYXRhIHdoZW4gaW5wdXRzIGNoYW5nZVxuICAgIHByaXZhdGUgdXBkYXRlRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudERhdGEgPSB0aGlzLmRhdGEoKTtcbiAgICAgICAgY29uc3QgY3VycmVudFBhdGggPSB0aGlzLnBhdGgoKTtcbiAgICAgICAgc2V0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjdXJyZW50UGF0aCwgY3VycmVudERhdGEpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogR2V0IGRhdGEgZnJvbSB0aGUgZWxlbWVudFxuICAgICAqL1xuICAgIGdldERhdGEoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIGdldCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5wYXRoKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBkYXRhIGF0IHJ1bnRpbWVcbiAgICAgKi9cbiAgICBzZXREYXRhKGRhdGE6IGFueSkge1xuICAgICAgICBzZXQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMucGF0aCgpLCBkYXRhKTtcbiAgICB9XG59ICJdfQ==","import { Directive, HostListener, Output, EventEmitter } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPDblClickDirective {\n constructor() {\n this.onDblClick = new EventEmitter();\n this.lastTap = 0;\n this.doubleTapThreshold = 300; // milliseconds\n }\n // Listen for the native dblclick event (desktop)\n handleOnDblClick(event) {\n this.onDblClick.emit(event);\n }\n // Listen for touchend events (mobile)\n onTouchEnd(event) {\n const currentTime = new Date().getTime();\n const tapGap = currentTime - this.lastTap;\n if (tapGap > 0 && tapGap < this.doubleTapThreshold) {\n // Detected a double-tap\n this.onDblClick.emit(event);\n event.preventDefault(); // Optionally prevent further default actions\n }\n this.lastTap = currentTime;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPDblClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPDblClickDirective, isStandalone: true, selector: \"[onDblClick]\", outputs: { onDblClick: \"onDblClick\" }, host: { listeners: { \"dblclick\": \"handleOnDblClick($event)\", \"touchend\": \"onTouchEnd($event)\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPDblClickDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[onDblClick]'\n }]\n }], propDecorators: { onDblClick: [{\n type: Output\n }], handleOnDblClick: [{\n type: HostListener,\n args: ['dblclick', ['$event']]\n }], onTouchEnd: [{\n type: HostListener,\n args: ['touchend', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGJsLWNsaWNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvZGJsLWNsaWNrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUs5RSxNQUFNLE9BQU8sb0JBQW9CO0lBSGpDO1FBSWMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFFekMsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNILHVCQUFrQixHQUFHLEdBQUcsQ0FBQyxDQUFDLGVBQWU7S0FxQjdEO0lBbkJHLGlEQUFpRDtJQUVqRCxnQkFBZ0IsQ0FBQyxLQUFZO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxzQ0FBc0M7SUFFdEMsVUFBVSxDQUFDLEtBQWlCO1FBQ3hCLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekMsTUFBTSxNQUFNLEdBQUcsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFMUMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNqRCx3QkFBd0I7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsNkNBQTZDO1FBQ3pFLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQztJQUMvQixDQUFDOzhHQXhCUSxvQkFBb0I7a0dBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztpQkFDM0I7OEJBRWEsVUFBVTtzQkFBbkIsTUFBTTtnQkFPUCxnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBT3BDLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbb25EYmxDbGlja10nXG59KVxuZXhwb3J0IGNsYXNzIEFYUERibENsaWNrRGlyZWN0aXZlIHtcbiAgICBAT3V0cHV0KCkgb25EYmxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICBwcml2YXRlIGxhc3RUYXAgPSAwO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG91YmxlVGFwVGhyZXNob2xkID0gMzAwOyAvLyBtaWxsaXNlY29uZHNcblxuICAgIC8vIExpc3RlbiBmb3IgdGhlIG5hdGl2ZSBkYmxjbGljayBldmVudCAoZGVza3RvcClcbiAgICBASG9zdExpc3RlbmVyKCdkYmxjbGljaycsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlT25EYmxDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkRibENsaWNrLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8vIExpc3RlbiBmb3IgdG91Y2hlbmQgZXZlbnRzIChtb2JpbGUpXG4gICAgQEhvc3RMaXN0ZW5lcigndG91Y2hlbmQnLCBbJyRldmVudCddKVxuICAgIG9uVG91Y2hFbmQoZXZlbnQ6IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgY29uc3QgdGFwR2FwID0gY3VycmVudFRpbWUgLSB0aGlzLmxhc3RUYXA7XG5cbiAgICAgICAgaWYgKHRhcEdhcCA+IDAgJiYgdGFwR2FwIDwgdGhpcy5kb3VibGVUYXBUaHJlc2hvbGQpIHtcbiAgICAgICAgICAgIC8vIERldGVjdGVkIGEgZG91YmxlLXRhcFxuICAgICAgICAgICAgdGhpcy5vbkRibENsaWNrLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8gT3B0aW9uYWxseSBwcmV2ZW50IGZ1cnRoZXIgZGVmYXVsdCBhY3Rpb25zXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sYXN0VGFwID0gY3VycmVudFRpbWU7XG4gICAgfVxufVxuIl19","// src/app/directives/grid-layout.directive.ts\nimport { Directive, ElementRef, Renderer2, input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPGridLayoutDirective {\n constructor(el, renderer) {\n this.el = el;\n this.renderer = renderer;\n this.options = input.required(...(ngDevMode ? [{ debugName: \"options\", alias: 'axp-grid-layout' }] : [{ alias: 'axp-grid-layout' }]));\n }\n ngOnChanges(changes) {\n if (changes['options']) {\n this.applyTailwindClasses();\n }\n }\n applyTailwindClasses() {\n const placement = this.options()?.placement;\n if (!placement)\n return;\n // Clear existing grid classes\n this.clearClasses();\n // Apply new grid classes based on the input options\n this.setClasses(placement.md, 'md:');\n this.setClasses(placement.lg, 'lg:');\n this.setClasses(placement.xl, 'xl:');\n this.setClasses(placement.xxl, '2xl:');\n }\n setClasses(placement, prefix) {\n if (placement == null)\n return;\n const colStart = placement.colStart ? `${prefix}ax-col-start-${placement.colStart}` : '';\n const colEnd = placement.colEnd ? `${prefix}ax-col-end-${placement.colEnd}` : '';\n const colSpan = placement.colSpan ? `${prefix}ax-col-span-${placement.colSpan}` : '';\n const rowStart = placement.rowStart ? `${prefix}ax-row-start-${placement.rowStart}` : '';\n const rowEnd = placement.rowEnd ? `${prefix}ax-row-end-${placement.rowEnd}` : '';\n const rowSpan = placement.rowSpan ? `${prefix}ax-row-span-${placement.rowSpan}` : '';\n const order = placement.order ? `${prefix}ax-order-${placement.order}` : ''; // Handling order\n [colStart, colEnd, colSpan, rowStart, rowEnd, rowSpan, order].forEach(cls => {\n if (cls) {\n this.renderer.addClass(this.el.nativeElement, cls);\n }\n });\n }\n clearClasses() {\n const currentClasses = this.el.nativeElement.className.split(' ');\n currentClasses.forEach((className) => {\n if (className.startsWith('ax-col-') || className.startsWith('ax-row-') || className.startsWith('ax-order-')) {\n this.renderer.removeClass(this.el.nativeElement, className);\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPGridLayoutDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.6\", type: AXPGridLayoutDirective, isStandalone: true, selector: \"[axp-grid-layout]\", inputs: { options: { classPropertyName: \"options\", publicName: \"axp-grid-layout\", isSignal: true, isRequired: true, transformFunction: null } }, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPGridLayoutDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-grid-layout]',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1sYXlvdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9ncmlkLWxheW91dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOENBQThDO0FBRTlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBNEIsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9sRyxNQUFNLE9BQU8sc0JBQXNCO0lBRy9CLFlBQW9CLEVBQWMsRUFBVSxRQUFtQjtRQUEzQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUYvRCxZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsMENBQXlCLEtBQUssRUFBRSxpQkFBaUIsT0FBMUIsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsR0FBQyxDQUFDO0lBRVYsQ0FBQztJQUVwRSxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNoQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsU0FBUyxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUN2Qiw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXBCLG9EQUFvRDtRQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVPLFVBQVUsQ0FBQyxTQUF1QyxFQUFFLE1BQWM7UUFDdEUsSUFBSSxTQUFTLElBQUksSUFBSTtZQUFFLE9BQU87UUFFOUIsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLGdCQUFnQixTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6RixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sY0FBYyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNqRixNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sZUFBZSxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyRixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sZ0JBQWdCLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pGLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxjQUFjLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pGLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxlQUFlLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JGLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxZQUFZLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsaUJBQWlCO1FBRTlGLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3hFLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDdkQsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFlBQVk7UUFDaEIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsRSxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBaUIsRUFBRSxFQUFFO1lBQ3pDLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFDMUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDaEUsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0FqRFEsc0JBQXNCO2tHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2FwcC9kaXJlY3RpdmVzL2dyaWQtbGF5b3V0LmRpcmVjdGl2ZS50c1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQR3JpZExheW91dE9wdGlvbnMsIEFYUEdyaWRQbGFjZW1lbnQgfSBmcm9tICcuLi90eXBlcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2F4cC1ncmlkLWxheW91dF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEFYUEdyaWRMYXlvdXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIG9wdGlvbnMgPSBpbnB1dC5yZXF1aXJlZDxBWFBHcmlkTGF5b3V0T3B0aW9ucz4oeyBhbGlhczogJ2F4cC1ncmlkLWxheW91dCcgfSk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHsgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlc1snb3B0aW9ucyddKSB7XG4gICAgICAgICAgICB0aGlzLmFwcGx5VGFpbHdpbmRDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5VGFpbHdpbmRDbGFzc2VzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwbGFjZW1lbnQgPSB0aGlzLm9wdGlvbnMoKT8ucGxhY2VtZW50O1xuICAgICAgICBpZiAoIXBsYWNlbWVudCkgcmV0dXJuO1xuICAgICAgICAvLyBDbGVhciBleGlzdGluZyBncmlkIGNsYXNzZXNcbiAgICAgICAgdGhpcy5jbGVhckNsYXNzZXMoKTtcblxuICAgICAgICAvLyBBcHBseSBuZXcgZ3JpZCBjbGFzc2VzIGJhc2VkIG9uIHRoZSBpbnB1dCBvcHRpb25zXG4gICAgICAgIHRoaXMuc2V0Q2xhc3NlcyhwbGFjZW1lbnQubWQsICdtZDonKTtcbiAgICAgICAgdGhpcy5zZXRDbGFzc2VzKHBsYWNlbWVudC5sZywgJ2xnOicpO1xuICAgICAgICB0aGlzLnNldENsYXNzZXMocGxhY2VtZW50LnhsLCAneGw6Jyk7XG4gICAgICAgIHRoaXMuc2V0Q2xhc3NlcyhwbGFjZW1lbnQueHhsLCAnMnhsOicpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q2xhc3NlcyhwbGFjZW1lbnQ6IEFYUEdyaWRQbGFjZW1lbnQgfCB1bmRlZmluZWQsIHByZWZpeDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChwbGFjZW1lbnQgPT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGNvbFN0YXJ0ID0gcGxhY2VtZW50LmNvbFN0YXJ0ID8gYCR7cHJlZml4fWF4LWNvbC1zdGFydC0ke3BsYWNlbWVudC5jb2xTdGFydH1gIDogJyc7XG4gICAgICAgIGNvbnN0IGNvbEVuZCA9IHBsYWNlbWVudC5jb2xFbmQgPyBgJHtwcmVmaXh9YXgtY29sLWVuZC0ke3BsYWNlbWVudC5jb2xFbmR9YCA6ICcnO1xuICAgICAgICBjb25zdCBjb2xTcGFuID0gcGxhY2VtZW50LmNvbFNwYW4gPyBgJHtwcmVmaXh9YXgtY29sLXNwYW4tJHtwbGFjZW1lbnQuY29sU3Bhbn1gIDogJyc7XG4gICAgICAgIGNvbnN0IHJvd1N0YXJ0ID0gcGxhY2VtZW50LnJvd1N0YXJ0ID8gYCR7cHJlZml4fWF4LXJvdy1zdGFydC0ke3BsYWNlbWVudC5yb3dTdGFydH1gIDogJyc7XG4gICAgICAgIGNvbnN0IHJvd0VuZCA9IHBsYWNlbWVudC5yb3dFbmQgPyBgJHtwcmVmaXh9YXgtcm93LWVuZC0ke3BsYWNlbWVudC5yb3dFbmR9YCA6ICcnO1xuICAgICAgICBjb25zdCByb3dTcGFuID0gcGxhY2VtZW50LnJvd1NwYW4gPyBgJHtwcmVmaXh9YXgtcm93LXNwYW4tJHtwbGFjZW1lbnQucm93U3Bhbn1gIDogJyc7XG4gICAgICAgIGNvbnN0IG9yZGVyID0gcGxhY2VtZW50Lm9yZGVyID8gYCR7cHJlZml4fWF4LW9yZGVyLSR7cGxhY2VtZW50Lm9yZGVyfWAgOiAnJzsgLy8gSGFuZGxpbmcgb3JkZXJcblxuICAgICAgICBbY29sU3RhcnQsIGNvbEVuZCwgY29sU3Bhbiwgcm93U3RhcnQsIHJvd0VuZCwgcm93U3Bhbiwgb3JkZXJdLmZvckVhY2goY2xzID0+IHtcbiAgICAgICAgICAgIGlmIChjbHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgY2xzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhckNsYXNzZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRDbGFzc2VzID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZS5zcGxpdCgnICcpO1xuICAgICAgICBjdXJyZW50Q2xhc3Nlcy5mb3JFYWNoKChjbGFzc05hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKGNsYXNzTmFtZS5zdGFydHNXaXRoKCdheC1jb2wtJykgfHwgY2xhc3NOYW1lLnN0YXJ0c1dpdGgoJ2F4LXJvdy0nKSB8fCBjbGFzc05hbWUuc3RhcnRzV2l0aCgnYXgtb3JkZXItJykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19","// src/app/directives/grid-layout.directive.ts\nimport { Directive, ElementRef, ViewContainerRef, computed, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPContentCheckerDirective {\n constructor() {\n this.viewContainerRef = inject(ViewContainerRef);\n this.elementRef = inject((ElementRef));\n this.isEmpty = computed(() => this.viewContainerRef.length === 0, ...(ngDevMode ? [{ debugName: \"isEmpty\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPContentCheckerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPContentCheckerDirective, isStandalone: true, selector: \"[axp-content-checker]\", exportAs: [\"checker\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPContentCheckerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-content-checker]',\n standalone: true,\n exportAs: 'checker'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1jaGVja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvY29udGVudC1jaGVja2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEM7QUFFOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPMUYsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQU9XLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLGVBQVUsR0FBK0IsTUFBTSxDQUFDLENBQUEsVUFBMEIsQ0FBQSxDQUFDLENBQUM7UUFFNUUsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsbURBQUMsQ0FBQztLQUN2RTs4R0FOWSwwQkFBMEI7a0dBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFMdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLFNBQVM7aUJBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2FwcC9kaXJlY3RpdmVzL2dyaWQtbGF5b3V0LmRpcmVjdGl2ZS50c1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIFZpZXdDb250YWluZXJSZWYsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbYXhwLWNvbnRlbnQtY2hlY2tlcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgZXhwb3J0QXM6ICdjaGVja2VyJ1xufSlcbmV4cG9ydCBjbGFzcyBBWFBDb250ZW50Q2hlY2tlckRpcmVjdGl2ZSB7XG5cbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4pO1xuXG4gICAgcHVibGljIGlzRW1wdHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnZpZXdDb250YWluZXJSZWYubGVuZ3RoID09PSAwKTtcbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { isUndefined } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXPDataGenerator } from '../data/data-generator';\nimport * as i0 from \"@angular/core\";\nexport class AXPBroadcastEventService {\n constructor() {\n this.eventSubjects = new Map();\n this.pendingRequests = new Map();\n this.multiTabEventHistory = new Set(); // Prevent duplicate processing of the same event\n this.instanceId = AXPDataGenerator.uuid();\n this.channel = new BroadcastChannel('platform_global_events');\n // Handle incoming messages\n this.channel.onmessage = (event) => {\n const { type, payload, requestId, response, sourceId } = event.data;\n // Prevent processing the same event multiple times (multi-tab synchronization)\n if (requestId && this.multiTabEventHistory.has(requestId)) {\n return;\n }\n if (requestId) {\n this.multiTabEventHistory.add(requestId); // Store processed requestId\n setTimeout(() => this.multiTabEventHistory.delete(requestId), 10000); // Cleanup after 10 sec\n }\n // Handle responses to pending requests\n if (requestId && !isUndefined(response) && this.pendingRequests.has(requestId)) {\n this.pendingRequests.get(requestId)(response);\n this.pendingRequests.delete(requestId);\n return;\n }\n // Handle normal broadcast events\n // Ignore events originating from this same instance to avoid double-delivery\n if (sourceId && sourceId === this.instanceId) {\n return;\n }\n if (type && this.eventSubjects.has(type)) {\n this.eventSubjects.get(type).next({ data: payload, requestId });\n }\n };\n }\n /**\n * Publish an event without expecting a response\n */\n publish(type, payload) {\n this.channel.postMessage({ type, payload, sourceId: this.instanceId });\n // Local echo so same-tab listeners receive the event as well\n if (this.eventSubjects.has(type)) {\n this.eventSubjects.get(type).next({ data: payload });\n }\n }\n /**\n * Subscribe to an event\n */\n listen(type) {\n if (!this.eventSubjects.has(type)) {\n this.eventSubjects.set(type, new Subject());\n }\n return this.eventSubjects.get(type).asObservable();\n }\n /**\n * Unsubscribe from an event\n */\n unsubscribe(type) {\n if (this.eventSubjects.has(type)) {\n this.eventSubjects.get(type).complete();\n this.eventSubjects.delete(type);\n }\n }\n /**\n * Send a message and wait for a response with retry logic\n */\n async sendAndWaitForResponse(type, payload, options = {\n timeout: 60 * 60 * 1000,\n retries: 3,\n retryDelay: 1000,\n }) {\n const requestId = AXPDataGenerator.uuid();\n const attemptRequest = (attempt) => {\n return new Promise((resolve, reject) => {\n this.pendingRequests.set(requestId, resolve);\n this.channel.postMessage({ type, payload, requestId });\n setTimeout(() => {\n if (this.pendingRequests.has(requestId)) {\n this.pendingRequests.delete(requestId);\n if (attempt < options.retries) {\n console.warn(`Retrying request '${type}' (${attempt + 1}/${options.retries})...`);\n resolve(attemptRequest(attempt + 1)); // Retry request\n }\n else {\n reject(new Error(`Timeout: No response received for event '${type}' after ${options.retries} attempts.`));\n }\n }\n }, options.timeout);\n });\n };\n return attemptRequest(0);\n }\n /**\n * Respond to a request\n */\n respondToRequest(requestId, response) {\n if (!requestId) {\n console.warn('Invalid requestId. Cannot send response.');\n return;\n }\n this.channel.postMessage({ requestId, response });\n }\n /**\n * Cleanup when the service is destroyed\n */\n ngOnDestroy() {\n this.channel.close();\n // Complete all subjects\n this.eventSubjects.forEach((subject) => subject.complete());\n this.eventSubjects.clear();\n // Reject all pending requests to avoid dangling promises\n this.pendingRequests.forEach((resolve, requestId) => {\n resolve(Promise.reject(new Error(`Service destroyed. Request ${requestId} was not completed.`)));\n });\n this.pendingRequests.clear();\n // Cleanup multi-tab event history\n this.multiTabEventHistory.clear();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPBroadcastEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPBroadcastEventService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPBroadcastEventService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2V2ZW50LXNlcnZpY2UvZXZlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFLMUQsTUFBTSxPQUFPLHdCQUF3QjtJQU9uQztRQUxRLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQXNELENBQUM7UUFDOUUsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztRQUM3RCx5QkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDLENBQUMsaURBQWlEO1FBQ2xGLGVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUdwRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUU5RCwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDcEUsK0VBQStFO1lBQy9FLElBQUksU0FBUyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDMUQsT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLElBQUks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QUksQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1lBQ3pELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVyQix3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFM0IseURBQXlEO1FBQ3pELElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFO1lBQ2xELE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDhCQUE4QixTQUFTLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25HLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUU3QixrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BDLENBQUM7OEdBMUlVLHdCQUF3QjtrSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzJGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzVW5kZWZpbmVkIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUERhdGFHZW5lcmF0b3IgfSBmcm9tICcuLi9kYXRhL2RhdGEtZ2VuZXJhdG9yJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYUEJyb2FkY2FzdEV2ZW50U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgY2hhbm5lbDogQnJvYWRjYXN0Q2hhbm5lbDtcbiAgcHJpdmF0ZSBldmVudFN1YmplY3RzID0gbmV3IE1hcDxzdHJpbmcsIFN1YmplY3Q8eyBkYXRhOiBhbnk7IHJlcXVlc3RJZD86IHN0cmluZyB9Pj4oKTtcbiAgcHJpdmF0ZSBwZW5kaW5nUmVxdWVzdHMgPSBuZXcgTWFwPHN0cmluZywgKHJlc3BvbnNlOiBhbnkpID0+IHZvaWQ+KCk7XG4gIHByaXZhdGUgbXVsdGlUYWJFdmVudEhpc3RvcnkgPSBuZXcgU2V0PHN0cmluZz4oKTsgLy8gUHJldmVudCBkdXBsaWNhdGUgcHJvY2Vzc2luZyBvZiB0aGUgc2FtZSBldmVudFxuICBwcml2YXRlIHJlYWRvbmx5IGluc3RhbmNlSWQgPSBBWFBEYXRhR2VuZXJhdG9yLnV1aWQoKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmNoYW5uZWwgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbCgncGxhdGZvcm1fZ2xvYmFsX2V2ZW50cycpO1xuXG4gICAgLy8gSGFuZGxlIGluY29taW5nIG1lc3NhZ2VzXG4gICAgdGhpcy5jaGFubmVsLm9ubWVzc2FnZSA9IChldmVudCkgPT4ge1xuICAgICAgY29uc3QgeyB0eXBlLCBwYXlsb2FkLCByZXF1ZXN0SWQsIHJlc3BvbnNlLCBzb3VyY2VJZCB9ID0gZXZlbnQuZGF0YTtcbiAgICAgIC8vIFByZXZlbnQgcHJvY2Vzc2luZyB0aGUgc2FtZSBldmVudCBtdWx0aXBsZSB0aW1lcyAobXVsdGktdGFiIHN5bmNocm9uaXphdGlvbilcbiAgICAgIGlmIChyZXF1ZXN0SWQgJiYgdGhpcy5tdWx0aVRhYkV2ZW50SGlzdG9yeS5oYXMocmVxdWVzdElkKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXF1ZXN0SWQpIHtcbiAgICAgICAgdGhpcy5tdWx0aVRhYkV2ZW50SGlzdG9yeS5hZGQocmVxdWVzdElkKTsgLy8gU3RvcmUgcHJvY2Vzc2VkIHJlcXVlc3RJZFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubXVsdGlUYWJFdmVudEhpc3RvcnkuZGVsZXRlKHJlcXVlc3RJZCksIDEwMDAwKTsgLy8gQ2xlYW51cCBhZnRlciAxMCBzZWNcbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIHJlc3BvbnNlcyB0byBwZW5kaW5nIHJlcXVlc3RzXG4gICAgICBpZiAocmVxdWVzdElkICYmICFpc1VuZGVmaW5lZChyZXNwb25zZSkgJiYgdGhpcy5wZW5kaW5nUmVxdWVzdHMuaGFzKHJlcXVlc3RJZCkpIHtcbiAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuZ2V0KHJlcXVlc3RJZCkhKHJlc3BvbnNlKTtcbiAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuZGVsZXRlKHJlcXVlc3RJZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIG5vcm1hbCBicm9hZGNhc3QgZXZlbnRzXG4gICAgICAvLyBJZ25vcmUgZXZlbnRzIG9yaWdpbmF0aW5nIGZyb20gdGhpcyBzYW1lIGluc3RhbmNlIHRvIGF2b2lkIGRvdWJsZS1kZWxpdmVyeVxuICAgICAgaWYgKHNvdXJjZUlkICYmIHNvdXJjZUlkID09PSB0aGlzLmluc3RhbmNlSWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGUgJiYgdGhpcy5ldmVudFN1YmplY3RzLmhhcyh0eXBlKSkge1xuICAgICAgICB0aGlzLmV2ZW50U3ViamVjdHMuZ2V0KHR5cGUpIS5uZXh0KHsgZGF0YTogcGF5bG9hZCwgcmVxdWVzdElkIH0pO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUHVibGlzaCBhbiBldmVudCB3aXRob3V0IGV4cGVjdGluZyBhIHJlc3BvbnNlXG4gICAqL1xuICBwdWJsaWMgcHVibGlzaDxUPih0eXBlOiBzdHJpbmcsIHBheWxvYWQ/OiBUKTogdm9pZCB7XG4gICAgdGhpcy5jaGFubmVsLnBvc3RNZXNzYWdlKHsgdHlwZSwgcGF5bG9hZCwgc291cmNlSWQ6IHRoaXMuaW5zdGFuY2VJZCB9KTtcbiAgICAvLyBMb2NhbCBlY2hvIHNvIHNhbWUtdGFiIGxpc3RlbmVycyByZWNlaXZlIHRoZSBldmVudCBhcyB3ZWxsXG4gICAgaWYgKHRoaXMuZXZlbnRTdWJqZWN0cy5oYXModHlwZSkpIHtcbiAgICAgIHRoaXMuZXZlbnRTdWJqZWN0cy5nZXQodHlwZSkhLm5leHQoeyBkYXRhOiBwYXlsb2FkIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gYW4gZXZlbnRcbiAgICovXG4gIHB1YmxpYyBsaXN0ZW48VD4odHlwZTogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IGRhdGE6IFQ7IHJlcXVlc3RJZD86IHN0cmluZyB9PiB7XG4gICAgaWYgKCF0aGlzLmV2ZW50U3ViamVjdHMuaGFzKHR5cGUpKSB7XG4gICAgICB0aGlzLmV2ZW50U3ViamVjdHMuc2V0KHR5cGUsIG5ldyBTdWJqZWN0PHsgZGF0YTogVDsgcmVxdWVzdElkPzogc3RyaW5nIH0+KCkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5ldmVudFN1YmplY3RzLmdldCh0eXBlKSEuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgZnJvbSBhbiBldmVudFxuICAgKi9cbiAgcHVibGljIHVuc3Vic2NyaWJlKHR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmV2ZW50U3ViamVjdHMuaGFzKHR5cGUpKSB7XG4gICAgICB0aGlzLmV2ZW50U3ViamVjdHMuZ2V0KHR5cGUpIS5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5ldmVudFN1YmplY3RzLmRlbGV0ZSh0eXBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBhIG1lc3NhZ2UgYW5kIHdhaXQgZm9yIGEgcmVzcG9uc2Ugd2l0aCByZXRyeSBsb2dpY1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHNlbmRBbmRXYWl0Rm9yUmVzcG9uc2U8VCwgUj4oXG4gICAgdHlwZTogc3RyaW5nLFxuICAgIHBheWxvYWQ/OiBULFxuICAgIG9wdGlvbnM6IHsgdGltZW91dDogbnVtYmVyOyByZXRyaWVzOiBudW1iZXI7IHJldHJ5RGVsYXk6IG51bWJlciB9ID0ge1xuICAgICAgdGltZW91dDogNjAgKiA2MCAqIDEwMDAsXG4gICAgICByZXRyaWVzOiAzLFxuICAgICAgcmV0cnlEZWxheTogMTAwMCxcbiAgICB9LFxuICApOiBQcm9taXNlPFI+IHtcbiAgICBjb25zdCByZXF1ZXN0SWQgPSBBWFBEYXRhR2VuZXJhdG9yLnV1aWQoKTtcblxuICAgIGNvbnN0IGF0dGVtcHRSZXF1ZXN0ID0gKGF0dGVtcHQ6IG51bWJlcik6IFByb21pc2U8Uj4gPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPFI+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuc2V0KHJlcXVlc3RJZCwgcmVzb2x2ZSk7XG5cbiAgICAgICAgdGhpcy5jaGFubmVsLnBvc3RNZXNzYWdlKHsgdHlwZSwgcGF5bG9hZCwgcmVxdWVzdElkIH0pO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnBlbmRpbmdSZXF1ZXN0cy5oYXMocmVxdWVzdElkKSkge1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuZGVsZXRlKHJlcXVlc3RJZCk7XG4gICAgICAgICAgICBpZiAoYXR0ZW1wdCA8IG9wdGlvbnMucmV0cmllcykge1xuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFJldHJ5aW5nIHJlcXVlc3QgJyR7dHlwZX0nICgke2F0dGVtcHQgKyAxfS8ke29wdGlvbnMucmV0cmllc30pLi4uYCk7XG4gICAgICAgICAgICAgIHJlc29sdmUoYXR0ZW1wdFJlcXVlc3QoYXR0ZW1wdCArIDEpKTsgLy8gUmV0cnkgcmVxdWVzdFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihgVGltZW91dDogTm8gcmVzcG9uc2UgcmVjZWl2ZWQgZm9yIGV2ZW50ICcke3R5cGV9JyBhZnRlciAke29wdGlvbnMucmV0cmllc30gYXR0ZW1wdHMuYCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSwgb3B0aW9ucy50aW1lb3V0KTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gYXR0ZW1wdFJlcXVlc3QoMCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzcG9uZCB0byBhIHJlcXVlc3RcbiAgICovXG4gIHB1YmxpYyByZXNwb25kVG9SZXF1ZXN0KHJlcXVlc3RJZDogc3RyaW5nLCByZXNwb25zZTogYW55KTogdm9pZCB7XG4gICAgaWYgKCFyZXF1ZXN0SWQpIHtcbiAgICAgIGNvbnNvbGUud2FybignSW52YWxpZCByZXF1ZXN0SWQuIENhbm5vdCBzZW5kIHJlc3BvbnNlLicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNoYW5uZWwucG9zdE1lc3NhZ2UoeyByZXF1ZXN0SWQsIHJlc3BvbnNlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFudXAgd2hlbiB0aGUgc2VydmljZSBpcyBkZXN0cm95ZWRcbiAgICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbm5lbC5jbG9zZSgpO1xuXG4gICAgLy8gQ29tcGxldGUgYWxsIHN1YmplY3RzXG4gICAgdGhpcy5ldmVudFN1YmplY3RzLmZvckVhY2goKHN1YmplY3QpID0+IHN1YmplY3QuY29tcGxldGUoKSk7XG4gICAgdGhpcy5ldmVudFN1YmplY3RzLmNsZWFyKCk7XG5cbiAgICAvLyBSZWplY3QgYWxsIHBlbmRpbmcgcmVxdWVzdHMgdG8gYXZvaWQgZGFuZ2xpbmcgcHJvbWlzZXNcbiAgICB0aGlzLnBlbmRpbmdSZXF1ZXN0cy5mb3JFYWNoKChyZXNvbHZlLCByZXF1ZXN0SWQpID0+IHtcbiAgICAgIHJlc29sdmUoUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKGBTZXJ2aWNlIGRlc3Ryb3llZC4gUmVxdWVzdCAke3JlcXVlc3RJZH0gd2FzIG5vdCBjb21wbGV0ZWQuYCkpKTtcbiAgICB9KTtcbiAgICB0aGlzLnBlbmRpbmdSZXF1ZXN0cy5jbGVhcigpO1xuXG4gICAgLy8gQ2xlYW51cCBtdWx0aS10YWIgZXZlbnQgaGlzdG9yeVxuICAgIHRoaXMubXVsdGlUYWJFdmVudEhpc3RvcnkuY2xlYXIoKTtcbiAgfVxufVxuIl19","import { Injectable, InjectionToken, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPExpressionEvaluatorScopeProviderContext {\n constructor() {\n this.scopes = {};\n }\n addScope(namespace, functions) {\n this.scopes[namespace] = { ...this.scopes[namespace], ...functions };\n }\n getScopes() {\n return this.scopes;\n }\n}\nexport const AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER = new InjectionToken('AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER');\nexport class AXPExpressionEvaluatorScopeProviderService {\n constructor() {\n this.providers = inject(AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, { optional: true });\n this.cache = null;\n }\n async load() {\n if (this.cache)\n return;\n const context = new AXPExpressionEvaluatorScopeProviderContext();\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n await provider.provide(context);\n }\n }\n this.cache = context.getScopes();\n }\n async getScopesAsync() {\n await this.load();\n return this.cache || {};\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPExpressionEvaluatorScopeProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPExpressionEvaluatorScopeProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPExpressionEvaluatorScopeProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbi1ldmFsdWF0b3Itc2NvcGUtcHJvdmlkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2V4cHJlc3Npb24tZXZhbHVhdG9yL2V4cHJlc3Npb24tZXZhbHVhdG9yLXNjb3BlLXByb3ZpZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9uRSxNQUFNLE9BQU8sMENBQTBDO0lBQXZEO1FBQ1ksV0FBTSxHQUFnQyxFQUFFLENBQUM7SUFPckQsQ0FBQztJQU5HLFFBQVEsQ0FBQyxTQUFpQixFQUFFLFNBQXVDO1FBQy9ELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUN6RSxDQUFDO0lBQ0QsU0FBUztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0NBQ0o7QUFHRCxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBRyxJQUFJLGNBQWMsQ0FDckUseUNBQXlDLENBQzVDLENBQUM7QUFHRixNQUFNLE9BQU8sMENBQTBDO0lBRHZEO1FBRVksY0FBUyxHQUFHLE1BQU0sQ0FBQyx1Q0FBdUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hGLFVBQUssR0FBdUMsSUFBSSxDQUFDO0tBaUI1RDtJQWZXLEtBQUssQ0FBQyxJQUFJO1FBQ2QsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSwwQ0FBMEMsRUFBRSxDQUFDO1FBQ2pFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDcEMsTUFBTSxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVNLEtBQUssQ0FBQyxjQUFjO1FBQ3ZCLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs4R0FsQlEsMENBQTBDO2tIQUExQywwQ0FBMEMsY0FEN0IsTUFBTTs7MkZBQ25CLDBDQUEwQztrQkFEdEQsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgfSBmcm9tICcuL2V4cHJlc3Npb24tZXZhbHVhdG9yLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyIHtcbiAgICBwcm92aWRlKGNvbnRleHQ6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyQ29udGV4dCk6IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCBjbGFzcyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGVQcm92aWRlckNvbnRleHQge1xuICAgIHByaXZhdGUgc2NvcGVzOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7fTtcbiAgICBhZGRTY29wZShuYW1lc3BhY2U6IHN0cmluZywgZnVuY3Rpb25zOiB7IFtuYW1lOiBzdHJpbmddOiBGdW5jdGlvbiB9KSB7XG4gICAgICAgIHRoaXMuc2NvcGVzW25hbWVzcGFjZV0gPSB7IC4uLnRoaXMuc2NvcGVzW25hbWVzcGFjZV0sIC4uLmZ1bmN0aW9ucyB9O1xuICAgIH1cbiAgICBnZXRTY29wZXMoKTogQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NvcGVzO1xuICAgIH1cbn1cbmV4cG9ydCB0eXBlIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVycyA9IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyW10gfCAoKCkgPT4gQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlUHJvdmlkZXJbXSk7XG5cbmV4cG9ydCBjb25zdCBBWFBfRVhQUkVTU0lPTl9FVkFMVUFUT1JfU0NPUEVfUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlUHJvdmlkZXJzPihcbiAgICAnQVhQX0VYUFJFU1NJT05fRVZBTFVBVE9SX1NDT1BFX1BST1ZJREVSJ1xuKTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGVQcm92aWRlclNlcnZpY2Uge1xuICAgIHByaXZhdGUgcHJvdmlkZXJzID0gaW5qZWN0KEFYUF9FWFBSRVNTSU9OX0VWQUxVQVRPUl9TQ09QRV9QUk9WSURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICBwcml2YXRlIGNhY2hlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgfCBudWxsID0gbnVsbDtcblxuICAgIHByaXZhdGUgYXN5bmMgbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuY2FjaGUpIHJldHVybjtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGVQcm92aWRlckNvbnRleHQoKTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5wcm92aWRlcnMpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgcHJvdmlkZXIucHJvdmlkZShjb250ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNhY2hlID0gY29udGV4dC5nZXRTY29wZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0U2NvcGVzQXN5bmMoKTogUHJvbWlzZTxBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGU+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmNhY2hlIHx8IHt9O1xuICAgIH1cbn0gIl19","import { Injectable, inject } from '@angular/core';\nimport { AXPExpressionEvaluatorScopeProviderService } from './expression-evaluator-scope-provider.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPExpressionEvaluatorService {\n constructor() {\n // Memoization cache for compiled expressions\n this.expressionCache = new Map();\n this.providerService = inject(AXPExpressionEvaluatorScopeProviderService);\n }\n getOrCompileFunction(expression) {\n if (!this.expressionCache.has(expression)) {\n // Check if expression contains multiple statements (has semicolons or newlines)\n const hasMultipleStatements = expression.includes(';') || expression.includes('\\n');\n let fn;\n if (hasMultipleStatements) {\n // For multiple statements, execute them in sequence and return the last expression\n fn = new Function('scope', `with (scope) { return (async function() { ${expression} })(); }`);\n }\n else {\n // For single expressions, use return\n fn = new Function('scope', `with (scope) { return (async function() { return ${expression}; })(); }`);\n }\n this.expressionCache.set(expression, fn);\n }\n return this.expressionCache.get(expression);\n }\n async getMergedScope(userScope) {\n const pluginScopes = await this.providerService.getScopesAsync();\n // Merge pluginScopes and userScope (userScope takes precedence)\n return { ...pluginScopes, ...userScope };\n }\n async evaluate(source, scope) {\n try {\n const mergedScope = await this.getMergedScope(scope);\n if (typeof source === 'string' && source.includes('{{')) {\n return await this.evaluateStringExpression(source, mergedScope);\n }\n else if (Array.isArray(source)) {\n const evaluatedArray = [];\n for (const item of source) {\n evaluatedArray.push(await this.evaluate(item, mergedScope));\n }\n return evaluatedArray;\n }\n else if (typeof source === 'object' && source !== null) {\n const evaluatedObject = {};\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n evaluatedObject[key] = await this.evaluate(source[key], mergedScope);\n }\n }\n return evaluatedObject;\n }\n else {\n return source;\n }\n }\n catch (error) {\n console.error('Expression evaluator - Error evaluating expression:', source, error);\n return false;\n }\n }\n async evaluateStringExpression(templateExpression, scope) {\n // Check if the input is exactly a single {{ ... }} expression (handle multiline)\n const exactMatch = templateExpression.match(/^\\s*\\{\\{\\s*([\\s\\S]*?)\\s*\\}\\}\\s*$/);\n if (exactMatch) {\n const expression = exactMatch[1];\n const sandbox = this.getOrCompileFunction(expression);\n const result = await sandbox(scope);\n return result;\n }\n // Otherwise, interpolate all {{ ... }} expressions in the string\n const regex = /\\{\\{\\s*([\\s\\S]*?)\\s*\\}\\}/g;\n // Collect all matches and their positions\n const matches = [];\n let match;\n while ((match = regex.exec(templateExpression)) !== null) {\n matches.push({\n expression: match[1],\n start: match.index,\n end: regex.lastIndex,\n raw: match[0],\n });\n }\n // Evaluate all expressions in parallel\n const values = await Promise.all(matches.map((m) => {\n const sandbox = this.getOrCompileFunction(m.expression);\n return sandbox(scope);\n }));\n // Reconstruct the string with evaluated values\n let result = '';\n let lastIndex = 0;\n matches.forEach((m, i) => {\n result += templateExpression.slice(lastIndex, m.start);\n const value = values[i];\n result += value !== undefined && value !== null ? value : '';\n lastIndex = m.end;\n });\n result += templateExpression.slice(lastIndex);\n return result;\n }\n isExpression(expression) {\n if (typeof expression === 'string') {\n return expression.includes('{{');\n }\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPExpressionEvaluatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPExpressionEvaluatorService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPExpressionEvaluatorService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbi1ldmFsdWF0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2V4cHJlc3Npb24tZXZhbHVhdG9yL2V4cHJlc3Npb24tZXZhbHVhdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBSzNHLE1BQU0sT0FBTyw2QkFBNkI7SUFEMUM7UUFFRSw2Q0FBNkM7UUFDckMsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUM5QyxvQkFBZSxHQUFHLE1BQU0sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0tBdUc5RTtJQXJHUyxvQkFBb0IsQ0FBQyxVQUFrQjtRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUMxQyxnRkFBZ0Y7WUFDaEYsTUFBTSxxQkFBcUIsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFcEYsSUFBSSxFQUFZLENBQUM7WUFDakIsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO2dCQUMxQixtRkFBbUY7Z0JBQ25GLEVBQUUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsNkNBQTZDLFVBQVUsVUFBVSxDQUFDLENBQUM7WUFDaEcsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLHFDQUFxQztnQkFDckMsRUFBRSxHQUFHLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRSxvREFBb0QsVUFBVSxXQUFXLENBQUMsQ0FBQztZQUN4RyxDQUFDO1lBRUQsSUFBSSxDQUFDLGVBQWUsQ0FB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U0FBUyxDQUFDLENBQUM7UUFDOUMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLFlBQVksQ0FBQyxVQUFrQjtRQUNwQyxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ25DLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQXpHVSw2QkFBNkI7a0hBQTdCLDZCQUE2QixjQURoQixNQUFNOzsyRkFDbkIsNkJBQTZCO2tCQUR6QyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi9leHByZXNzaW9uLWV2YWx1YXRvci1zY29wZS1wcm92aWRlci5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlID0geyBbbmFtZTogc3RyaW5nXTogeyBbbmFtZTogc3RyaW5nXTogRnVuY3Rpb24gfSB9O1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlIHtcbiAgLy8gTWVtb2l6YXRpb24gY2FjaGUgZm9yIGNvbXBpbGVkIGV4cHJlc3Npb25zXG4gIHByaXZhdGUgZXhwcmVzc2lvbkNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIEZ1bmN0aW9uPigpO1xuICBwcml2YXRlIHByb3ZpZGVyU2VydmljZSA9IGluamVjdChBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGVQcm92aWRlclNlcnZpY2UpO1xuXG4gIHByaXZhdGUgZ2V0T3JDb21waWxlRnVuY3Rpb24oZXhwcmVzc2lvbjogc3RyaW5nKTogRnVuY3Rpb24ge1xuICAgIGlmICghdGhpcy5leHByZXNzaW9uQ2FjaGUuaGFzKGV4cHJlc3Npb24pKSB7XG4gICAgICAvLyBDaGVjayBpZiBleHByZXNzaW9uIGNvbnRhaW5zIG11bHRpcGxlIHN0YXRlbWVudHMgKGhhcyBzZW1pY29sb25zIG9yIG5ld2xpbmVzKVxuICAgICAgY29uc3QgaGFzTXVsdGlwbGVTdGF0ZW1lbnRzID0gZXhwcmVzc2lvbi5pbmNsdWRlcygnOycpIHx8IGV4cHJlc3Npb24uaW5jbHVkZXMoJ1xcbicpO1xuXG4gICAgICBsZXQgZm46IEZ1bmN0aW9uO1xuICAgICAgaWYgKGhhc011bHRpcGxlU3RhdGVtZW50cykge1xuICAgICAgICAvLyBGb3IgbXVsdGlwbGUgc3RhdGVtZW50cywgZXhlY3V0ZSB0aGVtIGluIHNlcXVlbmNlIGFuZCByZXR1cm4gdGhlIGxhc3QgZXhwcmVzc2lvblxuICAgICAgICBmbiA9IG5ldyBGdW5jdGlvbignc2NvcGUnLCBgd2l0aCAoc2NvcGUpIHsgcmV0dXJuIChhc3luYyBmdW5jdGlvbigpIHsgJHtleHByZXNzaW9ufSB9KSgpOyB9YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBGb3Igc2luZ2xlIGV4cHJlc3Npb25zLCB1c2UgcmV0dXJuXG4gICAgICAgIGZuID0gbmV3IEZ1bmN0aW9uKCdzY29wZScsIGB3aXRoIChzY29wZSkgeyByZXR1cm4gKGFzeW5jIGZ1bmN0aW9uKCkgeyByZXR1cm4gJHtleHByZXNzaW9ufTsgfSkoKTsgfWApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmV4cHJlc3Npb25DYWNoZS5zZXQoZXhwcmVzc2lvbiwgZm4pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5leHByZXNzaW9uQ2FjaGUuZ2V0KGV4cHJlc3Npb24pITtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0TWVyZ2VkU2NvcGUodXNlclNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUpOiBQcm9taXNlPEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZT4ge1xuICAgIGNvbnN0IHBsdWdpblNjb3BlcyA9IGF3YWl0IHRoaXMucHJvdmlkZXJTZXJ2aWNlLmdldFNjb3Blc0FzeW5jKCk7XG4gICAgLy8gTWVyZ2UgcGx1Z2luU2NvcGVzIGFuZCB1c2VyU2NvcGUgKHVzZXJTY29wZSB0YWtlcyBwcmVjZWRlbmNlKVxuICAgIHJldHVybiB7IC4uLnBsdWdpblNjb3BlcywgLi4udXNlclNjb3BlIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZXZhbHVhdGUoc291cmNlOiBhbnkgfCBhbnlbXSwgc2NvcGU6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSk6IFByb21pc2U8YW55PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1lcmdlZFNjb3BlID0gYXdhaXQgdGhpcy5nZXRNZXJnZWRTY29wZShzY29wZSk7XG4gICAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gJ3N0cmluZycgJiYgc291cmNlLmluY2x1ZGVzKCd7eycpKSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmV2YWx1YXRlU3RyaW5nRXhwcmVzc2lvbihzb3VyY2UsIG1lcmdlZFNjb3BlKTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShzb3VyY2UpKSB7XG4gICAgICAgIGNvbnN0IGV2YWx1YXRlZEFycmF5ID0gW107XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBzb3VyY2UpIHtcbiAgICAgICAgICBldmFsdWF0ZWRBcnJheS5wdXNoKGF3YWl0IHRoaXMuZXZhbHVhdGUoaXRlbSwgbWVyZ2VkU2NvcGUpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXZhbHVhdGVkQXJyYXk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzb3VyY2UgPT09ICdvYmplY3QnICYmIHNvdXJjZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBldmFsdWF0ZWRPYmplY3Q6IGFueSA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgICBpZiAoc291cmNlLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgIGV2YWx1YXRlZE9iamVjdFtrZXldID0gYXdhaXQgdGhpcy5ldmFsdWF0ZShzb3VyY2Vba2V5XSwgbWVyZ2VkU2NvcGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXZhbHVhdGVkT2JqZWN0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgY29uc29sZS5lcnJvcignRXhwcmVzc2lvbiBldmFsdWF0b3IgLSBFcnJvciBldmFsdWF0aW5nIGV4cHJlc3Npb246Jywgc291cmNlLCBlcnJvcik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBldmFsdWF0ZVN0cmluZ0V4cHJlc3Npb24odGVtcGxhdGVFeHByZXNzaW9uOiBzdHJpbmcsIHNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUpOiBQcm9taXNlPGFueT4ge1xuICAgIC8vIENoZWNrIGlmIHRoZSBpbnB1dCBpcyBleGFjdGx5IGEgc2luZ2xlIHt7IC4uLiB9fSBleHByZXNzaW9uIChoYW5kbGUgbXVsdGlsaW5lKVxuICAgIGNvbnN0IGV4YWN0TWF0Y2ggPSB0ZW1wbGF0ZUV4cHJlc3Npb24ubWF0Y2goL15cXHMqXFx7XFx7XFxzKihbXFxzXFxTXSo/KVxccypcXH1cXH1cXHMqJC8pO1xuICAgIGlmIChleGFjdE1hdGNoKSB7XG4gICAgICBjb25zdCBleHByZXNzaW9uID0gZXhhY3RNYXRjaFsxXTtcbiAgICAgIGNvbnN0IHNhbmRib3ggPSB0aGlzLmdldE9yQ29tcGlsZUZ1bmN0aW9uKGV4cHJlc3Npb24pO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2FuZGJveChzY29wZSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICAvLyBPdGhlcndpc2UsIGludGVycG9sYXRlIGFsbCB7eyAuLi4gfX0gZXhwcmVzc2lvbnMgaW4gdGhlIHN0cmluZ1xuICAgIGNvbnN0IHJlZ2V4ID0gL1xce1xce1xccyooW1xcc1xcU10qPylcXHMqXFx9XFx9L2c7XG4gICAgLy8gQ29sbGVjdCBhbGwgbWF0Y2hlcyBhbmQgdGhlaXIgcG9zaXRpb25zXG4gICAgY29uc3QgbWF0Y2hlcyA9IFtdO1xuICAgIGxldCBtYXRjaDtcbiAgICB3aGlsZSAoKG1hdGNoID0gcmVnZXguZXhlYyh0ZW1wbGF0ZUV4cHJlc3Npb24pKSAhPT0gbnVsbCkge1xuICAgICAgbWF0Y2hlcy5wdXNoKHtcbiAgICAgICAgZXhwcmVzc2lvbjogbWF0Y2hbMV0sXG4gICAgICAgIHN0YXJ0OiBtYXRjaC5pbmRleCxcbiAgICAgICAgZW5kOiByZWdleC5sYXN0SW5kZXgsXG4gICAgICAgIHJhdzogbWF0Y2hbMF0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgLy8gRXZhbHVhdGUgYWxsIGV4cHJlc3Npb25zIGluIHBhcmFsbGVsXG4gICAgY29uc3QgdmFsdWVzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBtYXRjaGVzLm1hcCgobSkgPT4ge1xuICAgICAgICBjb25zdCBzYW5kYm94ID0gdGhpcy5nZXRPckNvbXBpbGVGdW5jdGlvbihtLmV4cHJlc3Npb24pO1xuICAgICAgICByZXR1cm4gc2FuZGJveChzY29wZSk7XG4gICAgICB9KSxcbiAgICApO1xuICAgIC8vIFJlY29uc3RydWN0IHRoZSBzdHJpbmcgd2l0aCBldmFsdWF0ZWQgdmFsdWVzXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgIGxldCBsYXN0SW5kZXggPSAwO1xuICAgIG1hdGNoZXMuZm9yRWFjaCgobSwgaSkgPT4ge1xuICAgICAgcmVzdWx0ICs9IHRlbXBsYXRlRXhwcmVzc2lvbi5zbGljZShsYXN0SW5kZXgsIG0uc3RhcnQpO1xuICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZXNbaV07XG4gICAgICByZXN1bHQgKz0gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCA/IHZhbHVlIDogJyc7XG4gICAgICBsYXN0SW5kZXggPSBtLmVuZDtcbiAgICB9KTtcbiAgICByZXN1bHQgKz0gdGVtcGxhdGVFeHByZXNzaW9uLnNsaWNlKGxhc3RJbmRleCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBpc0V4cHJlc3Npb24oZXhwcmVzc2lvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiBleHByZXNzaW9uID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGV4cHJlc3Npb24uaW5jbHVkZXMoJ3t7Jyk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19","import { Injectable, inject, provideAppInitializer } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPAppStartUpService {\n constructor() {\n this.tasks = [];\n }\n registerTask(task) {\n this.tasks.push(task);\n }\n async runAllTasks() {\n for (const task of this.tasks.sort((a, b) => a.priority - b.priority)) {\n console.log(`Running \"${task.statusText}\" with priority \"${task.priority}\"`);\n this.updateStatus(task.statusText);\n await task.run();\n }\n }\n updateStatus(status) {\n const loadingText = document.querySelector('#loadingText');\n if (loadingText) {\n loadingText.innerHTML = status;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPAppStartUpService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPAppStartUpService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPAppStartUpService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\nfunction initAppFactory(appInitService) {\n return () => appInitService.runAllTasks();\n}\nexport const AXPAppStartUpProvider = provideAppInitializer(() => {\n const initializerFn = initAppFactory(inject(AXPAppStartUpService));\n return initializerFn();\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXN0YXJ0dXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3N0YXJ0dXAvYXBwLXN0YXJ0dXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRMUUsTUFBTSxPQUFPLG9CQUFvQjtJQUhqQztRQUlVLFVBQUssR0FBcUIsRUFBRSxDQUFDO0tBb0J0QztJQWxCQyxZQUFZLENBQUMsSUFBb0I7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksQ0FBQyxVQUFVLG9CQUFvQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUM3RSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNuQyxNQUFNLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FBQyxNQUFjO1FBQ2pDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0QsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixXQUFXLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQzs4R0FwQlUsb0JBQW9CO2tIQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7MkZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUF3QkQsU0FBUyxjQUFjLENBQUMsY0FBb0M7SUFDMUQsT0FBTyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDNUMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtJQUM5RCxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztJQUNuRSxPQUFPLGFBQWEsRUFBRSxDQUFDO0FBQ3pCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0LCBwcm92aWRlQXBwSW5pdGlhbGl6ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFN0YXJ0VXBUYXNrIH0gZnJvbSAnLi9hcHAtc3RhcnR1cC50eXBlcyc7XG5cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQXBwU3RhcnRVcFNlcnZpY2Uge1xuICBwcml2YXRlIHRhc2tzOiBBWFBTdGFydFVwVGFza1tdID0gW107XG5cbiAgcmVnaXN0ZXJUYXNrKHRhc2s6IEFYUFN0YXJ0VXBUYXNrKSB7XG4gICAgdGhpcy50YXNrcy5wdXNoKHRhc2spO1xuICB9XG5cbiAgYXN5bmMgcnVuQWxsVGFza3MoKSB7XG4gICAgZm9yIChjb25zdCB0YXNrIG9mIHRoaXMudGFza3Muc29ydCgoYSwgYikgPT4gYS5wcmlvcml0eSAtIGIucHJpb3JpdHkpKSB7XG4gICAgICBjb25zb2xlLmxvZyhgUnVubmluZyBcIiR7dGFzay5zdGF0dXNUZXh0fVwiIHdpdGggcHJpb3JpdHkgXCIke3Rhc2sucHJpb3JpdHl9XCJgKTtcbiAgICAgIHRoaXMudXBkYXRlU3RhdHVzKHRhc2suc3RhdHVzVGV4dCk7XG4gICAgICBhd2FpdCB0YXNrLnJ1bigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3RhdHVzKHN0YXR1czogc3RyaW5nKSB7XG4gICAgY29uc3QgbG9hZGluZ1RleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbG9hZGluZ1RleHQnKTtcbiAgICBpZiAobG9hZGluZ1RleHQpIHtcbiAgICAgIGxvYWRpbmdUZXh0LmlubmVySFRNTCA9IHN0YXR1cztcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdEFwcEZhY3RvcnkoYXBwSW5pdFNlcnZpY2U6IEFYUEFwcFN0YXJ0VXBTZXJ2aWNlKSB7XG4gIHJldHVybiAoKSA9PiBhcHBJbml0U2VydmljZS5ydW5BbGxUYXNrcygpO1xufVxuXG5leHBvcnQgY29uc3QgQVhQQXBwU3RhcnRVcFByb3ZpZGVyID0gcHJvdmlkZUFwcEluaXRpYWxpemVyKCgpID0+IHtcbiAgY29uc3QgaW5pdGlhbGl6ZXJGbiA9IGluaXRBcHBGYWN0b3J5KGluamVjdChBWFBBcHBTdGFydFVwU2VydmljZSkpO1xuICByZXR1cm4gaW5pdGlhbGl6ZXJGbigpO1xufSk7XG4iXX0=","export var AXPSystemActionType;\n(function (AXPSystemActionType) {\n AXPSystemActionType[\"View\"] = \"view\";\n AXPSystemActionType[\"Create\"] = \"create\";\n AXPSystemActionType[\"Update\"] = \"update\";\n AXPSystemActionType[\"Delete\"] = \"delete\";\n AXPSystemActionType[\"Approve\"] = \"approve\";\n AXPSystemActionType[\"Reject\"] = \"reject\";\n AXPSystemActionType[\"Submit\"] = \"submit\";\n AXPSystemActionType[\"Export\"] = \"export\";\n AXPSystemActionType[\"Import\"] = \"import\";\n AXPSystemActionType[\"Print\"] = \"print\";\n AXPSystemActionType[\"Assign\"] = \"assign\";\n AXPSystemActionType[\"Lock\"] = \"lock\";\n AXPSystemActionType[\"Unlock\"] = \"unlock\";\n AXPSystemActionType[\"Share\"] = \"share\";\n AXPSystemActionType[\"Configure\"] = \"configure\";\n AXPSystemActionType[\"Reorder\"] = \"reorder\";\n AXPSystemActionType[\"Preview\"] = \"preview\";\n AXPSystemActionType[\"Duplicate\"] = \"duplicate\";\n AXPSystemActionType[\"Archive\"] = \"archive\";\n AXPSystemActionType[\"Publish\"] = \"publish\";\n AXPSystemActionType[\"Unpublish\"] = \"unpublish\";\n AXPSystemActionType[\"Upload\"] = \"upload\";\n AXPSystemActionType[\"Download\"] = \"download\";\n AXPSystemActionType[\"Copy\"] = \"copy\";\n AXPSystemActionType[\"Move\"] = \"move\";\n AXPSystemActionType[\"Rename\"] = \"rename\";\n AXPSystemActionType[\"Restore\"] = \"restore\";\n AXPSystemActionType[\"Manage\"] = \"manage\";\n})(AXPSystemActionType || (AXPSystemActionType = {}));\nconst i18n = (key) => `t('actions.${key}',{scope:'general'})`;\nexport const AXPSystemActions = Object.freeze({\n View: {\n key: AXPSystemActionType.View,\n title: i18n('view.title'),\n icon: 'fa-light fa-eye',\n color: 'default',\n descriptions: {\n button: i18n('view.button'),\n tooltip: i18n('view.tooltip'),\n permission: i18n('view.permission'),\n audit: i18n('view.audit')\n }\n },\n Create: {\n key: AXPSystemActionType.Create,\n title: i18n('create.title'),\n icon: 'fa-light fa-plus',\n color: 'success',\n descriptions: {\n button: i18n('create.button'),\n tooltip: i18n('create.tooltip'),\n permission: i18n('create.permission'),\n audit: i18n('create.audit')\n }\n },\n Edit: {\n key: AXPSystemActionType.Update,\n title: i18n('edit.title'),\n icon: 'fa-light fa-pen',\n color: 'primary',\n descriptions: {\n button: i18n('edit.button'),\n tooltip: i18n('edit.tooltip'),\n permission: i18n('edit.permission'),\n audit: i18n('edit.audit')\n }\n },\n Delete: {\n key: AXPSystemActionType.Delete,\n title: i18n('delete.title'),\n icon: 'fa-light fa-trash',\n color: 'danger',\n critical: true,\n descriptions: {\n button: i18n('delete.button'),\n tooltip: i18n('delete.tooltip'),\n permission: i18n('delete.permission'),\n audit: i18n('delete.audit')\n }\n },\n Approve: {\n key: AXPSystemActionType.Approve,\n title: i18n('approve.title'),\n icon: 'fa-light fa-circle-check',\n color: 'success',\n critical: true,\n descriptions: {\n button: i18n('approve.button'),\n tooltip: i18n('approve.tooltip'),\n permission: i18n('approve.permission'),\n audit: i18n('approve.audit')\n }\n },\n Submit: {\n key: AXPSystemActionType.Submit,\n title: i18n('submit.title'),\n icon: 'fa-light fa-paper-plane',\n color: 'primary',\n descriptions: {\n button: i18n('submit.button'),\n tooltip: i18n('submit.tooltip'),\n permission: i18n('submit.permission'),\n audit: i18n('submit.audit')\n }\n },\n Reject: {\n key: AXPSystemActionType.Reject,\n title: i18n('reject.title'),\n icon: 'fa-light fa-ban',\n color: 'danger',\n critical: true,\n descriptions: {\n button: i18n('reject.button'),\n tooltip: i18n('reject.tooltip'),\n permission: i18n('reject.permission'),\n audit: i18n('reject.audit')\n }\n },\n Export: {\n key: AXPSystemActionType.Export,\n title: i18n('export.title'),\n icon: 'fa-light fa-download',\n color: 'default',\n descriptions: {\n button: i18n('export.button'),\n tooltip: i18n('export.tooltip'),\n permission: i18n('export.permission'),\n audit: i18n('export.audit')\n }\n },\n Import: {\n key: AXPSystemActionType.Import,\n title: i18n('import.title'),\n icon: 'fa-light fa-upload',\n color: 'default',\n descriptions: {\n button: i18n('import.button'),\n tooltip: i18n('import.tooltip'),\n permission: i18n('import.permission'),\n audit: i18n('import.audit')\n }\n },\n Print: {\n key: AXPSystemActionType.Print,\n title: i18n('print.title'),\n icon: 'fa-light fa-print',\n color: 'default',\n descriptions: {\n button: i18n('print.button'),\n tooltip: i18n('print.tooltip'),\n permission: i18n('print.permission'),\n audit: i18n('print.audit')\n }\n },\n Duplicate: {\n key: AXPSystemActionType.Duplicate,\n title: i18n('duplicate.title'),\n icon: 'fa-light fa-clone',\n color: 'warning',\n descriptions: {\n button: i18n('duplicate.button'),\n tooltip: i18n('duplicate.tooltip'),\n permission: i18n('duplicate.permission'),\n audit: i18n('duplicate.audit')\n }\n },\n Archive: {\n key: AXPSystemActionType.Archive,\n title: i18n('archive.title'),\n icon: 'fa-light fa-box-archive',\n color: 'neutral',\n descriptions: {\n button: i18n('archive.button'),\n tooltip: i18n('archive.tooltip'),\n permission: i18n('archive.permission'),\n audit: i18n('archive.audit')\n }\n },\n Restore: {\n key: AXPSystemActionType.Restore,\n title: i18n('restore.title'),\n icon: 'fa-light fa-arrow-rotate-left',\n color: 'info',\n descriptions: {\n button: i18n('restore.button'),\n tooltip: i18n('restore.tooltip'),\n permission: i18n('restore.permission'),\n audit: i18n('restore.audit')\n }\n },\n Assign: {\n key: AXPSystemActionType.Assign,\n title: i18n('assign.title'),\n icon: 'fa-light fa-user-plus',\n color: 'primary',\n descriptions: {\n button: i18n('assign.button'),\n tooltip: i18n('assign.tooltip'),\n permission: i18n('assign.permission'),\n audit: i18n('assign.audit')\n }\n },\n Lock: {\n key: AXPSystemActionType.Lock,\n title: i18n('lock.title'),\n icon: 'fa-light fa-lock',\n color: 'warning',\n descriptions: {\n button: i18n('lock.button'),\n tooltip: i18n('lock.tooltip'),\n permission: i18n('lock.permission'),\n audit: i18n('lock.audit')\n }\n },\n Unlock: {\n key: AXPSystemActionType.Unlock,\n title: i18n('unlock.title'),\n icon: 'fa-light fa-unlock',\n color: 'success',\n descriptions: {\n button: i18n('unlock.button'),\n tooltip: i18n('unlock.tooltip'),\n permission: i18n('unlock.permission'),\n audit: i18n('unlock.audit')\n }\n },\n Share: {\n key: AXPSystemActionType.Share,\n title: i18n('share.title'),\n icon: 'fa-light fa-share-nodes',\n color: 'info',\n descriptions: {\n button: i18n('share.button'),\n tooltip: i18n('share.tooltip'),\n permission: i18n('share.permission'),\n audit: i18n('share.audit')\n }\n },\n Configure: {\n key: AXPSystemActionType.Configure,\n title: i18n('configure.title'),\n icon: 'fa-light fa-sliders',\n color: 'primary',\n descriptions: {\n button: i18n('configure.button'),\n tooltip: i18n('configure.tooltip'),\n permission: i18n('configure.permission'),\n audit: i18n('configure.audit')\n }\n },\n Reorder: {\n key: AXPSystemActionType.Reorder,\n title: i18n('reorder.title'),\n icon: 'fa-light fa-arrow-down-up-across-line',\n color: 'default',\n descriptions: {\n button: i18n('reorder.button'),\n tooltip: i18n('reorder.tooltip'),\n permission: i18n('reorder.permission'),\n audit: i18n('reorder.audit')\n }\n },\n Preview: {\n key: AXPSystemActionType.Preview,\n title: i18n('preview.title'),\n icon: 'fa-light fa-magnifying-glass',\n color: 'default',\n descriptions: {\n button: i18n('preview.button'),\n tooltip: i18n('preview.tooltip'),\n permission: i18n('preview.permission'),\n audit: i18n('preview.audit')\n }\n },\n Publish: {\n key: AXPSystemActionType.Publish,\n title: i18n('publish.title'),\n icon: 'fa-light fa-globe',\n color: 'success',\n descriptions: {\n button: i18n('publish.button'),\n tooltip: i18n('publish.tooltip'),\n permission: i18n('publish.permission'),\n audit: i18n('publish.audit')\n }\n },\n Unpublish: {\n key: AXPSystemActionType.Unpublish,\n title: i18n('unpublish.title'),\n icon: 'fa-light fa-globe-slash',\n color: 'danger',\n descriptions: {\n button: i18n('unpublish.button'),\n tooltip: i18n('unpublish.tooltip'),\n permission: i18n('unpublish.permission'),\n audit: i18n('unpublish.audit')\n }\n },\n Upload: {\n key: AXPSystemActionType.Upload,\n title: i18n('upload.title'),\n icon: 'fa-light fa-upload',\n color: 'primary',\n descriptions: {\n button: i18n('upload.button'),\n tooltip: i18n('upload.tooltip'),\n permission: i18n('upload.permission'),\n audit: i18n('upload.audit')\n }\n },\n Download: {\n key: AXPSystemActionType.Download,\n title: i18n('download.title'),\n icon: 'fa-light fa-download',\n color: 'success',\n descriptions: {\n button: i18n('download.button'),\n tooltip: i18n('download.tooltip'),\n permission: i18n('download.permission'),\n audit: i18n('download.audit')\n }\n },\n Copy: {\n key: AXPSystemActionType.Copy,\n title: i18n('copy.title'),\n icon: 'fa-light fa-copy',\n color: 'primary',\n descriptions: {\n button: i18n('copy.button'),\n tooltip: i18n('copy.tooltip'),\n permission: i18n('copy.permission'),\n audit: i18n('copy.audit')\n }\n },\n Move: {\n key: AXPSystemActionType.Move,\n title: i18n('move.title'),\n icon: 'fa-light fa-arrow-right-arrow-left',\n color: 'default',\n descriptions: {\n button: i18n('move.button'),\n tooltip: i18n('move.tooltip'),\n permission: i18n('move.permission'),\n audit: i18n('move.audit')\n }\n },\n Rename: {\n key: AXPSystemActionType.Rename,\n title: i18n('rename.title'),\n icon: 'fa-light fa-pen',\n color: 'default',\n descriptions: {\n button: i18n('rename.button'),\n tooltip: i18n('rename.tooltip'),\n permission: i18n('rename.permission'),\n audit: i18n('rename.audit')\n }\n },\n});\nexport function getSystemActions(type) {\n return Object.values(AXPSystemActions).find(action => action.key === type);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3R5cGVzL2FjdGlvbnMudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksbUJBNkJYO0FBN0JELFdBQVksbUJBQW1CO0lBQzNCLG9DQUFhLENBQUE7SUFDYix3Q0FBaUIsQ0FBQTtJQUNqQix3Q0FBaUIsQ0FBQTtJQUNqQix3Q0FBaUIsQ0FBQTtJQUNqQiwwQ0FBbUIsQ0FBQTtJQUNuQix3Q0FBaUIsQ0FBQTtJQUNqQix3Q0FBaUIsQ0FBQTtJQUNqQix3Q0FBaUIsQ0FBQTtJQUNqQix3Q0FBaUIsQ0FBQTtJQUNqQixzQ0FBZSxDQUFBO0lBQ2Ysd0NBQWlCLENBQUE7SUFDakIsb0NBQWEsQ0FBQTtJQUNiLHdDQUFpQixDQUFBO0lBQ2pCLHNDQUFlLENBQUE7SUFDZiw4Q0FBdUIsQ0FBQTtJQUN2QiwwQ0FBbUIsQ0FBQTtJQUNuQiwwQ0FBbUIsQ0FBQTtJQUNuQiw4Q0FBdUIsQ0FBQTtJQUN2QiwwQ0FBbUIsQ0FBQTtJQUNuQiwwQ0FBbUIsQ0FBQTtJQUNuQiw4Q0FBdUIsQ0FBQTtJQUN2Qix3Q0FBaUIsQ0FBQTtJQUNqQiw0Q0FBcUIsQ0FBQTtJQUNyQixvQ0FBYSxDQUFBO0lBQ2Isb0NBQWEsQ0FBQTtJQUNiLHdDQUFpQixDQUFBO0lBQ2pCLDBDQUFtQixDQUFBO0lBQ25CLHdDQUFpQixDQUFBO0FBQ3JCLENBQUMsRUE3QlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQTZCOUI7QUFlRCxNQUFNLElBQUksR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsY0FBYyxHQUFHLHNCQUFzQixDQUFDO0FBRXRFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDMUMsSUFBSSxFQUFFO1FBQ0YsR0FBRyxFQUFFLG1CQUFt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SUFBSSxDQUFDLG1CQUFtQixDQUFDO1lBQ3JDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQzlCO0tBQ0o7Q0FFK0MsQ0FBQyxDQUFDO0FBSXRELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUF5QjtJQUN0RCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBb0IsQ0FBQztBQUNsRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQVhQU3lzdGVtQWN0aW9uVHlwZSB7XG4gICAgVmlldyA9ICd2aWV3JyxcbiAgICBDcmVhdGUgPSAnY3JlYXRlJyxcbiAgICBVcGRhdGUgPSAndXBkYXRlJyxcbiAgICBEZWxldGUgPSAnZGVsZXRlJyxcbiAgICBBcHByb3ZlID0gJ2FwcHJvdmUnLFxuICAgIFJlamVjdCA9ICdyZWplY3QnLFxuICAgIFN1Ym1pdCA9ICdzdWJtaXQnLFxuICAgIEV4cG9ydCA9ICdleHBvcnQnLFxuICAgIEltcG9ydCA9ICdpbXBvcnQnLFxuICAgIFByaW50ID0gJ3ByaW50JyxcbiAgICBBc3NpZ24gPSAnYXNzaWduJyxcbiAgICBMb2NrID0gJ2xvY2snLFxuICAgIFVubG9jayA9ICd1bmxvY2snLFxuICAgIFNoYXJlID0gJ3NoYXJlJyxcbiAgICBDb25maWd1cmUgPSAnY29uZmlndXJlJyxcbiAgICBSZW9yZGVyID0gJ3Jlb3JkZXInLFxuICAgIFByZXZpZXcgPSAncHJldmlldycsXG4gICAgRHVwbGljYXRlID0gJ2R1cGxpY2F0ZScsXG4gICAgQXJjaGl2ZSA9ICdhcmNoaXZlJyxcbiAgICBQdWJsaXNoID0gJ3B1Ymxpc2gnLFxuICAgIFVucHVibGlzaCA9ICd1bnB1Ymxpc2gnLFxuICAgIFVwbG9hZCA9ICd1cGxvYWQnLFxuICAgIERvd25sb2FkID0gJ2Rvd25sb2FkJyxcbiAgICBDb3B5ID0gJ2NvcHknLFxuICAgIE1vdmUgPSAnbW92ZScsXG4gICAgUmVuYW1lID0gJ3JlbmFtZScsXG4gICAgUmVzdG9yZSA9ICdyZXN0b3JlJyxcbiAgICBNYW5hZ2UgPSAnbWFuYWdlJyxcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQVhQU3lzdGVtQWN0aW9uIHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgY3JpdGljYWw/OiBib29sZWFuO1xuICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICBidXR0b246IHN0cmluZztcbiAgICAgICAgdG9vbHRpcDogc3RyaW5nO1xuICAgICAgICBwZXJtaXNzaW9uOiBzdHJpbmc7XG4gICAgICAgIGF1ZGl0OiBzdHJpbmc7XG4gICAgfTtcbn1cblxuY29uc3QgaTE4biA9IChrZXk6IHN0cmluZykgPT4gYHQoJ2FjdGlvbnMuJHtrZXl9Jyx7c2NvcGU6J2dlbmVyYWwnfSlgO1xuXG5leHBvcnQgY29uc3QgQVhQU3lzdGVtQWN0aW9ucyA9IE9iamVjdC5mcmVlemUoe1xuICAgIFZpZXc6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlZpZXcsXG4gICAgICAgIHRpdGxlOiBpMThuKCd2aWV3LnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1leWUnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIGJ1dHRvbjogaTE4bigndmlldy5idXR0b24nKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3ZpZXcudG9vbHRpcCcpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigndmlldy5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigndmlldy5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIENyZWF0ZToge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuQ3JlYXRlLFxuICAgICAgICB0aXRsZTogaTE4bignY3JlYXRlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1wbHVzJyxcbiAgICAgICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICBidXR0b246IGkxOG4oJ2NyZWF0ZS5idXR0b24nKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2NyZWF0ZS50b29sdGlwJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdjcmVhdGUucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2NyZWF0ZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIEVkaXQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlVwZGF0ZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2VkaXQudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXBlbicsXG4gICAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgYnV0dG9uOiBpMThuKCdlZGl0LmJ1dHRvbicpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignZWRpdC50b29sdGlwJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdlZGl0LnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdlZGl0LmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgRGVsZXRlOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5EZWxldGUsXG4gICAgICAgIHRpdGxlOiBpMThuKCdkZWxldGUudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXRyYXNoJyxcbiAgICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgICAgICBjcml0aWNhbDogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICBidXR0b246IGkxOG4oJ2RlbGV0ZS5idXR0b24nKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2RlbGV0ZS50b29sdGlwJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdkZWxldGUucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2RlbGV0ZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIEFwcHJvdmU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkFwcHJvdmUsXG4gICAgICAgIHRpdGxlOiBpMThuKCdhcHByb3ZlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1jaXJjbGUtY2hlY2snLFxuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICBjcml0aWNhbDogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICBidXR0b246IGkxOG4oJ2FwcHJvdmUuYnV0dG9uJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdhcHByb3ZlLnRvb2x0aXAnKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2FwcHJvdmUucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2FwcHJvdmUuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBTdWJtaXQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlN1Ym1pdCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3N1Ym1pdC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcGFwZXItcGxhbmUnLFxuICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIGJ1dHRvbjogaTE4bignc3VibWl0LmJ1dHRvbicpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignc3VibWl0LnRvb2x0aXAnKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3N1Ym1pdC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignc3VibWl0LmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgUmVqZWN0OiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5SZWplY3QsXG4gICAgICAgIHRpdGxlOiBpMThuKCdyZWplY3QudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWJhbicsXG4gICAgICAgIGNvbG9yOiAnZGFuZ2VyJyxcbiAgICAgICAgY3JpdGljYWw6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgYnV0dG9uOiBpMThuKCdyZWplY3QuYnV0dG9uJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdyZWplY3QudG9vbHRpcCcpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncmVqZWN0LnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdyZWplY3QuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBFeHBvcnQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkV4cG9ydCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2V4cG9ydC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZG93bmxvYWQnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIGJ1dHRvbjogaTE4bignZXhwb3J0LmJ1dHRvbicpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignZXhwb3J0LnRvb2x0aXAnKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2V4cG9ydC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignZXhwb3J0LmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgSW1wb3J0OiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5JbXBvcnQsXG4gICAgICAgIHRpdGxlOiBpMThuKCdpbXBvcnQudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXVwbG9hZCcsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgYnV0dG9uOiBpMThuKCdpbXBvcnQuYnV0dG9uJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdpbXBvcnQudG9vbHRpcCcpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignaW1wb3J0LnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdpbXBvcnQuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBQcmludDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuUHJpbnQsXG4gICAgICAgIHRpdGxlOiBpMThuKCdwcmludC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcHJpbnQnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIGJ1dHRvbjogaTE4bigncHJpbnQuYnV0dG9uJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdwcmludC50b29sdGlwJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdwcmludC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncHJpbnQuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBEdXBsaWNhdGU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkR1cGxpY2F0ZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2R1cGxpY2F0ZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtY2xvbmUnLFxuICAgICAgICBjb2xvcjogJ3dhcm5pbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIGJ1dHRvbjogaTE4bignZHVwbGljYXRlLmJ1dHRvbicpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignZHVwbGljYXRlLnRvb2x0aXAnKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2R1cGxpY2F0ZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignZHVwbGljYXRlLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgQXJjaGl2ZToge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuQXJjaGl2ZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2FyY2hpdmUudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWJveC1hcmNoaXZlJyxcbiAgICAgICAgY29sb3I6ICduZXV0cmFsJyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICBidXR0b246IGkxOG4oJ2FyY2hpdmUuYnV0dG9uJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdhcmNoaXZlLnRvb2x0aXAnKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2FyY2hpdmUucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2FyY2hpdmUuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBSZXN0b3JlOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5SZXN0b3JlLFxuICAgICAgICB0aXRsZTogaTE4bigncmVzdG9yZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtYXJyb3ctcm90YXRlLWxlZnQnLFxuICAgICAgICBjb2xvcjogJ2luZm8nLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIGJ1dHRvbjogaTE4bigncmVzdG9yZS5idXR0b24nKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3Jlc3RvcmUudG9vbHRpcCcpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncmVzdG9yZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncmVzdG9yZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIEFzc2lnbjoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuQXNzaWduLFxuICAgICAgICB0aXRsZTogaTE4bignYXNzaWduLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS11c2VyLXBsdXMnLFxuICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIGJ1dHRvbjogaTE4bignYXNzaWduLmJ1dHRvbicpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignYXNzaWduLnRvb2x0aXAnKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2Fzc2lnbi5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignYXNzaWduLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgTG9jazoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuTG9jayxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2xvY2sudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWxvY2snLFxuICAgICAgICBjb2xvcjogJ3dhcm5pbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIGJ1dHRvbjogaTE4bignbG9jay5idXR0b24nKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2xvY2sudG9vbHRpcCcpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignbG9jay5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignbG9jay5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFVubG9jazoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuVW5sb2NrLFxuICAgICAgICB0aXRsZTogaTE4bigndW5sb2NrLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS11bmxvY2snLFxuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIGJ1dHRvbjogaTE4bigndW5sb2NrLmJ1dHRvbicpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigndW5sb2NrLnRvb2x0aXAnKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3VubG9jay5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigndW5sb2NrLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgU2hhcmU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlNoYXJlLFxuICAgICAgICB0aXRsZTogaTE4bignc2hhcmUudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXNoYXJlLW5vZGVzJyxcbiAgICAgICAgY29sb3I6ICdpbmZvJyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICBidXR0b246IGkxOG4oJ3NoYXJlLmJ1dHRvbicpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignc2hhcmUudG9vbHRpcCcpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignc2hhcmUucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3NoYXJlLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgQ29uZmlndXJlOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5Db25maWd1cmUsXG4gICAgICAgIHRpdGxlOiBpMThuKCdjb25maWd1cmUudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXNsaWRlcnMnLFxuICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIGJ1dHRvbjogaTE4bignY29uZmlndXJlLmJ1dHRvbicpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignY29uZmlndXJlLnRvb2x0aXAnKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2NvbmZpZ3VyZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignY29uZmlndXJlLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgUmVvcmRlcjoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuUmVvcmRlcixcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3Jlb3JkZXIudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWFycm93LWRvd24tdXAtYWNyb3NzLWxpbmUnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIGJ1dHRvbjogaTE4bigncmVvcmRlci5idXR0b24nKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3Jlb3JkZXIudG9vbHRpcCcpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncmVvcmRlci5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncmVvcmRlci5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFByZXZpZXc6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlByZXZpZXcsXG4gICAgICAgIHRpdGxlOiBpMThuKCdwcmV2aWV3LnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1tYWduaWZ5aW5nLWdsYXNzJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICBidXR0b246IGkxOG4oJ3ByZXZpZXcuYnV0dG9uJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdwcmV2aWV3LnRvb2x0aXAnKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3ByZXZpZXcucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3ByZXZpZXcuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBQdWJsaXNoOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5QdWJsaXNoLFxuICAgICAgICB0aXRsZTogaTE4bigncHVibGlzaC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZ2xvYmUnLFxuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIGJ1dHRvbjogaTE4bigncHVibGlzaC5idXR0b24nKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3B1Ymxpc2gudG9vbHRpcCcpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncHVibGlzaC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncHVibGlzaC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFVucHVibGlzaDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuVW5wdWJsaXNoLFxuICAgICAgICB0aXRsZTogaTE4bigndW5wdWJsaXNoLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1nbG9iZS1zbGFzaCcsXG4gICAgICAgIGNvbG9yOiAnZGFuZ2VyJyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICBidXR0b246IGkxOG4oJ3VucHVibGlzaC5idXR0b24nKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3VucHVibGlzaC50b29sdGlwJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCd1bnB1Ymxpc2gucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3VucHVibGlzaC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFVwbG9hZDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuVXBsb2FkLFxuICAgICAgICB0aXRsZTogaTE4bigndXBsb2FkLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS11cGxvYWQnLFxuICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIGJ1dHRvbjogaTE4bigndXBsb2FkLmJ1dHRvbicpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigndXBsb2FkLnRvb2x0aXAnKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3VwbG9hZC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigndXBsb2FkLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgRG93bmxvYWQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkRvd25sb2FkLFxuICAgICAgICB0aXRsZTogaTE4bignZG93bmxvYWQudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWRvd25sb2FkJyxcbiAgICAgICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICBidXR0b246IGkxOG4oJ2Rvd25sb2FkLmJ1dHRvbicpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignZG93bmxvYWQudG9vbHRpcCcpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignZG93bmxvYWQucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2Rvd25sb2FkLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgQ29weToge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuQ29weSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2NvcHkudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWNvcHknLFxuICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIGJ1dHRvbjogaTE4bignY29weS5idXR0b24nKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2NvcHkudG9vbHRpcCcpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignY29weS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignY29weS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIE1vdmU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLk1vdmUsXG4gICAgICAgIHRpdGxlOiBpMThuKCdtb3ZlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1hcnJvdy1yaWdodC1hcnJvdy1sZWZ0JyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICBidXR0b246IGkxOG4oJ21vdmUuYnV0dG9uJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdtb3ZlLnRvb2x0aXAnKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ21vdmUucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ21vdmUuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBSZW5hbWU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlJlbmFtZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3JlbmFtZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcGVuJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICBidXR0b246IGkxOG4oJ3JlbmFtZS5idXR0b24nKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3JlbmFtZS50b29sdGlwJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdyZW5hbWUucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3JlbmFtZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuXG59IGFzIGNvbnN0IHNhdGlzZmllcyBSZWNvcmQ8c3RyaW5nLCBBWFBTeXN0ZW1BY3Rpb24+KTtcblxuXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTeXN0ZW1BY3Rpb25zKHR5cGU6IEFYUFN5c3RlbUFjdGlvblR5cGUpOiBBWFBTeXN0ZW1BY3Rpb24ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKEFYUFN5c3RlbUFjdGlvbnMpLmZpbmQoYWN0aW9uID0+IGFjdGlvbi5rZXkgPT09IHR5cGUpIGFzIEFYUFN5c3RlbUFjdGlvbjtcbn1cbiJdfQ==","export function getNestedKeys(obj, prefix = '') {\n let keys = [];\n for (const key in obj) {\n if (typeof obj[key] === 'object' && obj[key] !== null && !Array.isArray(obj[key])) {\n keys = [...keys, ...getNestedKeys(obj[key], prefix + key + '.')];\n }\n else {\n keys.push(prefix + key);\n }\n }\n return keys;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3R5cGVzL2NvcmUudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUFRLEVBQUUsU0FBaUIsRUFBRTtJQUN6RCxJQUFJLElBQUksR0FBYSxFQUFFLENBQUM7SUFDeEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2xGLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEFYUFBhcnRpYWxOZXN0ZWQ8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdPzogVFtLXSBleHRlbmRzIG9iamVjdCA/IEFYUFBhcnRpYWxOZXN0ZWQ8VFtLXT4gOiBUW0tdO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5lc3RlZEtleXMob2JqOiBhbnksIHByZWZpeDogc3RyaW5nID0gJycpOiBzdHJpbmdbXSB7XG4gIGxldCBrZXlzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcbiAgICBpZiAodHlwZW9mIG9ialtrZXldID09PSAnb2JqZWN0JyAmJiBvYmpba2V5XSAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheShvYmpba2V5XSkpIHtcbiAgICAgIGtleXMgPSBbLi4ua2V5cywgLi4uZ2V0TmVzdGVkS2V5cyhvYmpba2V5XSwgcHJlZml4ICsga2V5ICsgJy4nKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGtleXMucHVzaChwcmVmaXggKyBrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4ga2V5cztcbn1cblxuZXhwb3J0IHR5cGUgQVhQRXhwcmVzc2lvbiA9IHN0cmluZztcblxuZXhwb3J0IHR5cGUgQVhQTWV0YURhdGEgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG5leHBvcnQgdHlwZSBBWFBPcHRpb25zRGF0YSA9IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQVmFsdWVVbml0IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICByYXRpbzogbnVtYmVyO1xuICBvcmRlcjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFZhbHVlVW5pdHMge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGl0ZW1zOiBBWFBWYWx1ZVVuaXRbXTtcbiAgZGVmYXVsdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVJlZmVyZW5jZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBVc2VyUmVmZXJlbmNlIHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBmdWxsTmFtZT86IHN0cmluZztcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQXBwbGljYXRpb25Vc2VyUmVmZXJlbmNlIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBBWFBDb250ZW50VHlwZSA9ICd0ZXh0JyB8ICdpbWFnZScgfCAnZmlsZScgfCAndmlkZW8nIHwgJ2xpbmsnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENvbnRlbnQge1xuICBjb250ZW50OiBzdHJpbmc7XG4gIGNvbnRlbnRUeXBlOiBBWFBDb250ZW50VHlwZTtcbn1cbiJdfQ==","import { getSystemActions } from './actions.types';\nexport function applySystemActionDefault(action, type) {\n const systemAction = getSystemActions(type);\n return {\n name: systemAction.key,\n title: systemAction.title,\n icon: systemAction.icon,\n color: systemAction.color,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi90eXBlcy9pbnRlcmFjdGl2ZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQXdDLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFpRnpGLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxNQUF5QixFQUFFLElBQXlCO0lBQzNGLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLE9BQU87UUFDTCxJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUc7UUFDdEIsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLO1FBQ3pCLElBQUksRUFBRSxZQUFZLENBQUMsSUFBSTtRQUN2QixLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7S0FDMUIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRXh0cmFzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFYUE1ldGFEYXRhIH0gZnJvbSAnLi9jb3JlLnR5cGVzJztcbmltcG9ydCB7IEFYUFN5c3RlbUFjdGlvbiwgQVhQU3lzdGVtQWN0aW9uVHlwZSwgZ2V0U3lzdGVtQWN0aW9ucyB9IGZyb20gJy4vYWN0aW9ucy50eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEFYUEFjdGlvbk1lbnVJdGVtID0ge1xuICBuYW1lPzogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbiAgYnJlYWs/OiBib29sZWFuO1xuICBpdGVtcz86IEFYUEFjdGlvbk1lbnVJdGVtW107XG4gIGNvbW1hbmQ/OiBBWFBFeGVjdXRlQ29tbWFuZDtcbiAgZGlzYWJsZWQ/OiBib29sZWFuIHwgc3RyaW5nO1xuICB2aXNpYmxlPzogYm9vbGVhbiB8IHN0cmluZztcbiAgcG9saWN5Pzogc3RyaW5nO1xufTtcblxuXG5leHBvcnQgdHlwZSBBWFBCYWNrQnV0dG9uID0ge1xuICB0aXRsZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQVhQQnJlYWRjcnVtYkl0ZW0gPSB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGNvbW1hbmQ/OiBBWFBFeGVjdXRlQ29tbWFuZDtcbn07XG5cbmV4cG9ydCB0eXBlIEFYUEJhZGdlID0ge1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgY29sb3I/OiAncHJpbWFyeScgfCAnc3VjY2VzcycgfCAnd2FybmluZycgfCAnZGFuZ2VyJztcbn07XG5cbmV4cG9ydCB0eXBlIEFYUEV4ZWN1dGVDb21tYW5kID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIG9wdGlvbnM/OiBBWFBNZXRhRGF0YTtcbiAgbWV0YWRhdGE/OiBBWFBNZXRhRGF0YTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRXhlY3V0ZUNvbW1hbmRSZXN1bHQ8VCA9IGFueT4ge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICByZXN1bHQ/OiBUO1xuICBlcnJvcj86IHtcbiAgICBjb2RlPzogc3RyaW5nO1xuICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgZGV0YWlscz86IGFueTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBRdWVyeUZldGNoUmVzdWx0PFQgPSBhbnk+IHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgcmVzdWx0Pzoge1xuICAgIGl0ZW1zPzogVFtdO1xuICAgIHRvdGFsPzogbnVtYmVyO1xuICB9O1xuICBlcnJvcj86IHtcbiAgICBjb2RlPzogc3RyaW5nO1xuICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgZGV0YWlscz86IGFueTtcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgQVhQTmF2aWdhdGVBY3Rpb25PcHRpb25zID0ge1xuICByb3V0ZXI6IHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgZXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcyAmIHsgdGFyZ2V0Pzogc3RyaW5nIH07XG4gIH07XG4gIG1vZGFsOiB7XG4gICAgY29tcG9uZW50OiBUeXBlPGFueT47XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBvcHRpb25zPzogYW55O1xuICB9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBBWFBOYXZpZ2F0ZUFjdGlvbkNvbW1hbmQ8VCBleHRlbmRzIGtleW9mIEFYUE5hdmlnYXRlQWN0aW9uT3B0aW9ucz4ge1xuICB0eXBlOiBUO1xuICBvcHRpb25zOiBBWFBOYXZpZ2F0ZUFjdGlvbk9wdGlvbnNbVF07XG59XG5cblxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlTeXN0ZW1BY3Rpb25EZWZhdWx0KGFjdGlvbjogQVhQQWN0aW9uTWVudUl0ZW0sIHR5cGU6IEFYUFN5c3RlbUFjdGlvblR5cGUpOiBBWFBBY3Rpb25NZW51SXRlbSB7XG4gIGNvbnN0IHN5c3RlbUFjdGlvbiA9IGdldFN5c3RlbUFjdGlvbnModHlwZSk7XG4gIHJldHVybiB7XG4gICAgbmFtZTogc3lzdGVtQWN0aW9uLmtleSxcbiAgICB0aXRsZTogc3lzdGVtQWN0aW9uLnRpdGxlLFxuICAgIGljb246IHN5c3RlbUFjdGlvbi5pY29uLFxuICAgIGNvbG9yOiBzeXN0ZW1BY3Rpb24uY29sb3IsXG4gIH07XG59Il19","export class AXPImageUrlLogoConfig {\n constructor(url, width, height) {\n this.url = url;\n this.width = width;\n this.height = height;\n }\n}\nexport class AXPComponentLogoConfig {\n constructor(component) {\n this.component = component;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nby50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3R5cGVzL2xvZ28udHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUFtQixHQUFXLEVBQVMsS0FBYyxFQUFTLE1BQWU7UUFBMUQsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUFTLFVBQUssR0FBTCxLQUFLLENBQVM7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFTO0lBQUcsQ0FBQztDQUNsRjtBQUNELE1BQU0sT0FBTyxzQkFBc0I7SUFHakMsWUFBbUIsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztJQUFHLENBQUM7Q0FDNUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQTG9nb0NvbmZpZyB7fVxuXG5leHBvcnQgY2xhc3MgQVhQSW1hZ2VVcmxMb2dvQ29uZmlnIGltcGxlbWVudHMgQVhQTG9nb0NvbmZpZyB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1cmw6IHN0cmluZywgcHVibGljIHdpZHRoPzogbnVtYmVyLCBwdWJsaWMgaGVpZ2h0PzogbnVtYmVyKSB7fVxufVxuZXhwb3J0IGNsYXNzIEFYUENvbXBvbmVudExvZ29Db25maWcgaW1wbGVtZW50cyBBWFBMb2dvQ29uZmlnIHtcbiAgaGVpZ2h0PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICB3aWR0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgY29uc3RydWN0b3IocHVibGljIGNvbXBvbmVudDogVHlwZTxhbnk+KSB7fVxufVxuIl19","export var AXPPlatformScope;\n(function (AXPPlatformScope) {\n AXPPlatformScope[\"Environment\"] = \"C\";\n AXPPlatformScope[\"Global\"] = \"G\";\n AXPPlatformScope[\"Platform\"] = \"P\";\n AXPPlatformScope[\"Tenant\"] = \"T\";\n AXPPlatformScope[\"User\"] = \"U\";\n})(AXPPlatformScope || (AXPPlatformScope = {}));\n;\nexport function resolvePlatformScopeKey(name) {\n const scopeMap = {\n environment: AXPPlatformScope.Environment,\n global: AXPPlatformScope.Global,\n platform: AXPPlatformScope.Platform,\n tenant: AXPPlatformScope.Tenant,\n user: AXPPlatformScope.User,\n };\n return scopeMap[name.toLowerCase()] ?? AXPPlatformScope.User;\n}\nexport function resolvePlatformScopeName(scope) {\n const scopeMap = {\n C: 'environment',\n G: 'global',\n P: 'platform',\n T: 'tenant',\n U: 'user',\n };\n return scopeMap[scope] ?? 'user';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi90eXBlcy9zY29wZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLENBQU4sSUFBWSxnQkFNWDtBQU5ELFdBQVksZ0JBQWdCO0lBQ3hCLHFDQUFpQixDQUFBO0lBQ2pCLGdDQUFZLENBQUE7SUFDWixrQ0FBYyxDQUFBO0lBQ2QsZ0NBQVksQ0FBQTtJQUNaLDhCQUFVLENBQUE7QUFDZCxDQUFDLEVBTlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU0zQjtBQUFBLENBQUM7QUFFRixNQUFNLFVBQVUsdUJBQXVCLENBQUMsSUFBWTtJQUNoRCxNQUFNLFFBQVEsR0FBd0M7UUFDbEQsV0FBVyxFQUFFLGdCQUFnQixDQUFDLFdBQVc7UUFDekMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE1BQU07UUFDL0IsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7UUFDbkMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE1BQU07UUFDL0IsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUk7S0FDOUIsQ0FBQztJQUNGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQztBQUNqRSxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEtBQTBCO0lBQy9ELE1BQU0sUUFBUSxHQUF3QztRQUNsRCxDQUFDLEVBQUUsYUFBYTtRQUNoQixDQUFDLEVBQUUsUUFBUTtRQUNYLENBQUMsRUFBRSxVQUFVO1FBQ2IsQ0FBQyxFQUFFLFFBQVE7UUFDWCxDQUFDLEVBQUUsTUFBTTtLQUNaLENBQUM7SUFDRixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUM7QUFDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEFYUFBsYXRmb3JtU2NvcGVLZXkgPSAnQycgfCAnRycgfCAnUCcgfCAnVCcgfCAnVSc7XG5leHBvcnQgZW51bSBBWFBQbGF0Zm9ybVNjb3BlIHtcbiAgICBFbnZpcm9ubWVudCA9ICdDJyxcbiAgICBHbG9iYWwgPSAnRycsXG4gICAgUGxhdGZvcm0gPSAnUCcsXG4gICAgVGVuYW50ID0gJ1QnLFxuICAgIFVzZXIgPSAnVSdcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlUGxhdGZvcm1TY29wZUtleShuYW1lOiBzdHJpbmcpOiBBWFBQbGF0Zm9ybVNjb3BlS2V5IHtcbiAgICBjb25zdCBzY29wZU1hcDogUmVjb3JkPHN0cmluZywgQVhQUGxhdGZvcm1TY29wZUtleT4gPSB7XG4gICAgICAgIGVudmlyb25tZW50OiBBWFBQbGF0Zm9ybVNjb3BlLkVudmlyb25tZW50LFxuICAgICAgICBnbG9iYWw6IEFYUFBsYXRmb3JtU2NvcGUuR2xvYmFsLFxuICAgICAgICBwbGF0Zm9ybTogQVhQUGxhdGZvcm1TY29wZS5QbGF0Zm9ybSxcbiAgICAgICAgdGVuYW50OiBBWFBQbGF0Zm9ybVNjb3BlLlRlbmFudCxcbiAgICAgICAgdXNlcjogQVhQUGxhdGZvcm1TY29wZS5Vc2VyLFxuICAgIH07XG4gICAgcmV0dXJuIHNjb3BlTWFwW25hbWUudG9Mb3dlckNhc2UoKV0gPz8gQVhQUGxhdGZvcm1TY29wZS5Vc2VyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBsYXRmb3JtU2NvcGVOYW1lKHNjb3BlOiBBWFBQbGF0Zm9ybVNjb3BlS2V5KTogc3RyaW5nIHtcbiAgICBjb25zdCBzY29wZU1hcDogUmVjb3JkPEFYUFBsYXRmb3JtU2NvcGVLZXksIHN0cmluZz4gPSB7XG4gICAgICAgIEM6ICdlbnZpcm9ubWVudCcsXG4gICAgICAgIEc6ICdnbG9iYWwnLFxuICAgICAgICBQOiAncGxhdGZvcm0nLFxuICAgICAgICBUOiAndGVuYW50JyxcbiAgICAgICAgVTogJ3VzZXInLFxuICAgIH07XG4gICAgcmV0dXJuIHNjb3BlTWFwW3Njb3BlXSA/PyAndXNlcic7XG59Il19","export var AXPExportTemplateToken;\n(function (AXPExportTemplateToken) {\n AXPExportTemplateToken[\"Date\"] = \"{date}\";\n AXPExportTemplateToken[\"Time\"] = \"{time}\";\n AXPExportTemplateToken[\"User\"] = \"{user}\";\n AXPExportTemplateToken[\"ReportTitle\"] = \"{title}\";\n AXPExportTemplateToken[\"UUID\"] = \"{uuid}\";\n})(AXPExportTemplateToken || (AXPExportTemplateToken = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvdHlwZXMvZXhwb3J0LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStFQSxNQUFNLENBQU4sSUFBWSxzQkFNWDtBQU5ELFdBQVksc0JBQXNCO0lBQzlCLHlDQUFlLENBQUE7SUFDZix5Q0FBZSxDQUFBO0lBQ2YseUNBQWUsQ0FBQTtJQUNmLGlEQUF1QixDQUFBO0lBQ3ZCLHlDQUFlLENBQUE7QUFDbkIsQ0FBQyxFQU5XLHNCQUFzQixLQUF0QixzQkFBc0IsUUFNakMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBpbnRlcmZhY2UgQVhQRXhwb3J0T3B0aW9ucyB7XG4gICAgZmlsZU5hbWVUZW1wbGF0ZT86IHN0cmluZzsgLy8g2YXYq9in2YQ6IFwiUmVwb3J0X3tkYXRlfV97dXNlcn1cIlxuXG4gICAgcGRmPzogQVhQRXhwb3J0UGRmT3B0aW9ucztcbiAgICBleGNlbD86IEFYUEV4cG9ydEV4Y2VsT3B0aW9ucztcbiAgICBjc3Y/OiBBWFBFeHBvcnRDc3ZPcHRpb25zO1xuICAgIHByaW50PzogQVhQRXhwb3J0UHJpbnRPcHRpb25zO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRXhwb3J0UGRmT3B0aW9ucyB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcblxuICAgIHBhZ2VTaXplPzogJ0E0JyB8ICdBMycgfCAnTGV0dGVyJyB8ICdMZWdhbCc7XG4gICAgb3JpZW50YXRpb24/OiAncG9ydHJhaXQnIHwgJ2xhbmRzY2FwZSc7XG5cbiAgICBtYXJnaW4/OiBudW1iZXIgfCB7XG4gICAgICAgIHRvcDogbnVtYmVyO1xuICAgICAgICBib3R0b206IG51bWJlcjtcbiAgICAgICAgbGVmdDogbnVtYmVyO1xuICAgICAgICByaWdodDogbnVtYmVyO1xuICAgIH07XG5cbiAgICBmb250Pzogc3RyaW5nO1xuICAgIGZvbnRTaXplPzogbnVtYmVyO1xuXG4gICAgaGVhZGVyRW5hYmxlZD86IGJvb2xlYW47XG4gICAgZm9vdGVyRW5hYmxlZD86IGJvb2xlYW47XG4gICAgc2hvd1BhZ2VOdW1iZXJzPzogYm9vbGVhbjtcblxuICAgIHdhdGVybWFya1RleHQ/OiBzdHJpbmc7XG4gICAgd2F0ZXJtYXJrT3BhY2l0eT86IG51bWJlcjtcblxuICAgIGNvbXByZXNzaW9uPzogYm9vbGVhbjtcbiAgICBlbWJlZEltYWdlcz86IGJvb2xlYW47XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBBWFBFeHBvcnRFeGNlbE9wdGlvbnMge1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBzaGVldE5hbWU/OiBzdHJpbmc7XG4gICAgaW5jbHVkZUZpbHRlcnM/OiBib29sZWFuO1xuICAgIGZyZWV6ZUhlYWRlcj86IGJvb2xlYW47XG4gICAgYXV0b0ZpdENvbHVtbnM/OiBib29sZWFuO1xuXG4gICAgc3R5bGU/OiB7XG4gICAgICAgIGhlYWRlckNvbG9yPzogc3RyaW5nO1xuICAgICAgICBmb250Pzogc3RyaW5nO1xuICAgICAgICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAgICAgbnVtYmVyRm9ybWF0PzogJ2F1dG8nIHwgJ2N1cnJlbmN5JyB8ICdwZXJjZW50JyB8ICdkZWNpbWFsJztcbiAgICB9O1xuXG4gICAgc3VtbWFyeVJvd0VuYWJsZWQ/OiBib29sZWFuO1xuICAgIGV4cG9ydEhpZGRlbkNvbHVtbnM/OiBib29sZWFuO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRXhwb3J0Q3N2T3B0aW9ucyB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcblxuICAgIGRlbGltaXRlcj86ICcsJyB8ICc7JyB8ICdcXHQnO1xuICAgIGluY2x1ZGVIZWFkZXJzPzogYm9vbGVhbjtcbiAgICBxdW90ZVZhbHVlcz86IGJvb2xlYW47XG4gICAgZW5jb2Rpbmc/OiAndXRmLTgnIHwgJ3V0Zi0xNicgfCAnaXNvLTg4NTktMSc7XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBBWFBFeHBvcnRQcmludE9wdGlvbnMge1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBpbmNsdWRlSGVhZGVyPzogYm9vbGVhbjtcbiAgICBpbmNsdWRlRm9vdGVyPzogYm9vbGVhbjtcbiAgICBzaG93UGFnZUJyZWFrcz86IGJvb2xlYW47XG4gICAgY3VzdG9tQ3NzVXJsPzogc3RyaW5nO1xufVxuXG5cbmV4cG9ydCBlbnVtIEFYUEV4cG9ydFRlbXBsYXRlVG9rZW4ge1xuICAgIERhdGUgPSAne2RhdGV9JyxcbiAgICBUaW1lID0gJ3t0aW1lfScsXG4gICAgVXNlciA9ICd7dXNlcn0nLFxuICAgIFJlcG9ydFRpdGxlID0gJ3t0aXRsZX0nLFxuICAgIFVVSUQgPSAne3V1aWR9Jyxcbn1cbiJdfQ==","import { AXCalendarService } from '@acorex/core/date-time';\nimport { inject, Pipe, signal } from '@angular/core';\nimport { interval } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nexport class AXPCountdownPipe {\n constructor() {\n this.calendarService = inject(AXCalendarService);\n this.countdownSignal = signal(this.setupTimer(), ...(ngDevMode ? [{ debugName: \"countdownSignal\" }] : []));\n this.targetDate = 0;\n this.prevValue = 0;\n }\n transform(value) {\n if (this.prevValue != value) {\n this.prevValue = value;\n const expireTime = this.calendarService.calendar.add(new Date(), 'second', value).date;\n this.updateTargetDate(expireTime.toISOString());\n }\n return this.countdownSignal();\n }\n setupTimer() {\n return interval(1000).pipe(startWith(0), map(() => {\n const diff = this.targetDate - new Date().getTime();\n if (diff < 0) {\n return \"Time's up!\";\n }\n const times = [86400, 3600, 60, 1].map((seconds) => Math.floor((diff / 1000 / seconds) % (seconds === 1 ? 60 : 24)));\n const labels = ['d', 'h', 'm', 's'];\n return times\n .map((t, i) => (t > 0 || i === 3 ? `${t}${labels[i]}` : ''))\n .join(' ')\n .trim();\n }));\n }\n updateTargetDate(value) {\n this.targetDate = new Date(value).getTime();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPCountdownPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPCountdownPipe, isStandalone: true, name: \"countdown\", pure: false }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPCountdownPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'countdown',\n pure: false,\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRkb3duLXRpbWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvdXRpbHMvY291bnRkb3duLXRpbWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFpQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU9oRCxNQUFNLE9BQU8sZ0JBQWdCO0lBTDdCO1FBTVUsb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU1QyxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLDJEQUFDLENBQUM7UUFFNUMsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixjQUFTLEdBQUcsQ0FBQyxDQUFDO0tBaUN2QjtJQS9CQyxTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksS0FBSyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN2RixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTyxVQUFVO1FBQ2hCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDeEIsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUNaLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEQsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2IsT0FBTyxZQUFZLENBQUM7WUFDdEIsQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JILE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDcEMsT0FBTyxLQUFLO2lCQUNULEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQzNELElBQUksQ0FBQyxHQUFHLENBQUM7aUJBQ1QsSUFBSSxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWE7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzhHQXRDVSxnQkFBZ0I7NEdBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFMNUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsV0FBVztvQkFDakIsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDYWxlbmRhclNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZGF0ZS10aW1lJztcbmltcG9ydCB7IGluamVjdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbnRlcnZhbCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2NvdW50ZG93bicsXG4gIHB1cmU6IGZhbHNlLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBDb3VudGRvd25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgY2FsZW5kYXJTZXJ2aWNlID0gaW5qZWN0KEFYQ2FsZW5kYXJTZXJ2aWNlKTtcblxuICBwcml2YXRlIGNvdW50ZG93blNpZ25hbCA9IHNpZ25hbCh0aGlzLnNldHVwVGltZXIoKSk7XG5cbiAgcHJpdmF0ZSB0YXJnZXREYXRlOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIHByZXZWYWx1ZSA9IDA7XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBudW1iZXIpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGlmICh0aGlzLnByZXZWYWx1ZSAhPSB2YWx1ZSkge1xuICAgICAgdGhpcy5wcmV2VmFsdWUgPSB2YWx1ZTtcbiAgICAgIGNvbnN0IGV4cGlyZVRpbWUgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5jYWxlbmRhci5hZGQobmV3IERhdGUoKSwgJ3NlY29uZCcsIHZhbHVlKS5kYXRlO1xuICAgICAgdGhpcy51cGRhdGVUYXJnZXREYXRlKGV4cGlyZVRpbWUudG9JU09TdHJpbmcoKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvdW50ZG93blNpZ25hbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFRpbWVyKCkge1xuICAgIHJldHVybiBpbnRlcnZhbCgxMDAwKS5waXBlKFxuICAgICAgc3RhcnRXaXRoKDApLFxuICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgY29uc3QgZGlmZiA9IHRoaXMudGFyZ2V0RGF0ZSAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgICBpZiAoZGlmZiA8IDApIHtcbiAgICAgICAgICByZXR1cm4gXCJUaW1lJ3MgdXAhXCI7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0aW1lcyA9IFs4NjQwMCwgMzYwMCwgNjAsIDFdLm1hcCgoc2Vjb25kcykgPT4gTWF0aC5mbG9vcigoZGlmZiAvIDEwMDAgLyBzZWNvbmRzKSAlIChzZWNvbmRzID09PSAxID8gNjAgOiAyNCkpKTtcbiAgICAgICAgY29uc3QgbGFiZWxzID0gWydkJywgJ2gnLCAnbScsICdzJ107XG4gICAgICAgIHJldHVybiB0aW1lc1xuICAgICAgICAgIC5tYXAoKHQsIGkpID0+ICh0ID4gMCB8fCBpID09PSAzID8gYCR7dH0ke2xhYmVsc1tpXX1gIDogJycpKVxuICAgICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgICAudHJpbSgpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUYXJnZXREYXRlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRhcmdldERhdGUgPSBuZXcgRGF0ZSh2YWx1ZSkuZ2V0VGltZSgpO1xuICB9XG59XG4iXX0=","import { endsWith, get, gt, gte, includes, isEmpty, isEqual, isNil, lt, lte, orderBy, startsWith } from 'lodash-es';\nconst loggingEnabled = false; // Set to true to enable logging, false to disable\nfunction applyCondition(item, condition) {\n const rawValue = condition.field ? get(item, condition.field) : null;\n const itemValue = typeof rawValue === 'string' ? rawValue.toLowerCase() : rawValue;\n const conditionValue = typeof condition.value === 'string' ? condition.value.toLowerCase() : condition.value;\n // Conditional Logging for debugging\n if (loggingEnabled) {\n console.log('Condition:', condition);\n console.log('Item Value:', itemValue);\n console.log('Condition Value:', conditionValue);\n }\n let result;\n const valueToCompare = isNil(condition.field) || condition.field === '' ? conditionValue : itemValue;\n const conditionType = condition?.operator?.type;\n if (!conditionType) {\n return true;\n }\n const op = String(conditionType);\n switch (op) {\n case 'equal':\n case 'eq':\n result = isEqual(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Equal check result:', result);\n }\n break;\n case 'notEqual':\n case 'ne':\n case 'neq':\n result = !isEqual(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Not equal check result:', result);\n }\n break;\n case 'greaterThan':\n case 'gt':\n result = gt(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Greater than check result:', result);\n }\n break;\n case 'lessThan':\n case 'lt':\n result = lt(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Less than check result:', result);\n }\n break;\n case 'greaterThanOrEqual':\n case 'gte':\n result = gte(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Greater than or equal check result:', result);\n }\n break;\n case 'lessThanOrEqual':\n case 'lte':\n result = lte(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Less than or equal check result:', result);\n }\n break;\n case 'contains':\n if (typeof valueToCompare === 'string') {\n result = includes(valueToCompare, conditionValue);\n }\n else if (Array.isArray(valueToCompare)) {\n result = includes(valueToCompare.map((val) => val.toString().toLowerCase()), conditionValue);\n }\n else {\n result = false;\n }\n if (loggingEnabled) {\n console.log('Contains check result:', result);\n }\n break;\n case 'in':\n if (Array.isArray(conditionValue)) {\n if (typeof valueToCompare === 'string') {\n result = conditionValue.some(val => typeof val === 'string' ? val.toLowerCase() === valueToCompare : val === valueToCompare);\n }\n else if (Array.isArray(valueToCompare)) {\n result = valueToCompare.some(val => conditionValue.some(condVal => typeof val === 'string' && typeof condVal === 'string'\n ? val.toLowerCase() === condVal.toLowerCase()\n : val === condVal));\n }\n else {\n result = conditionValue.includes(valueToCompare);\n }\n }\n else {\n result = false;\n }\n if (loggingEnabled) {\n console.log('In check result:', result);\n }\n break;\n case 'notContains':\n if (typeof valueToCompare === 'string') {\n result = !includes(valueToCompare, conditionValue);\n }\n else if (Array.isArray(valueToCompare)) {\n result = !includes(valueToCompare.map((val) => val.toString().toLowerCase()), conditionValue);\n }\n else {\n result = false;\n }\n if (loggingEnabled) {\n console.log('Not contains check result:', result);\n }\n break;\n case 'startsWith':\n result = typeof valueToCompare === 'string' && startsWith(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Starts with check result:', result);\n }\n break;\n case 'endsWith':\n result = typeof valueToCompare === 'string' && endsWith(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Ends with check result:', result);\n }\n break;\n case 'isEmpty':\n result = isEmpty(valueToCompare);\n if (loggingEnabled) {\n console.log('Is empty check result:', result);\n }\n break;\n case 'isNull':\n result = isNil(valueToCompare);\n if (loggingEnabled) {\n console.log('Is null check result:', result);\n }\n break;\n case 'isNotEmpty':\n result = !isEmpty(valueToCompare);\n if (loggingEnabled) {\n console.log('Is not empty check result:', result);\n }\n break;\n case 'between':\n result = !isNil(valueToCompare) && valueToCompare >= condition.value.from && valueToCompare <= condition.value.to;\n if (loggingEnabled) {\n console.log('Between check result:', result);\n }\n break;\n default:\n result = true;\n if (loggingEnabled) {\n console.log('Default case, returning true');\n }\n }\n // Apply negative flag if present on operator (invert the result)\n const isNegative = !!condition?.operator?.negative;\n return isNegative ? !result : result;\n}\nexport function applyFilterArray(dataArray, filters, logic = 'and') {\n if (filters && filters.length) {\n return dataArray.filter((item) => {\n if (logic === 'and') {\n return filters.every((f) => {\n return f.filters ? applyFilterArray([item], f.filters, f.logic).length > 0 : applyCondition(item, f);\n });\n }\n else {\n // logic === 'or'\n return filters.some((f) => {\n return f.filters ? applyFilterArray([item], f.filters, f.logic).length > 0 : applyCondition(item, f);\n });\n }\n });\n }\n else {\n return dataArray;\n }\n}\nexport function applySortArray(dataArray, sorts) {\n if (sorts && sorts.length > 0) {\n const sortFields = sorts.map((s) => s.field);\n const sortOrders = sorts.map((s) => s.dir);\n return orderBy(dataArray, sortFields, sortOrders);\n }\n else\n return dataArray;\n}\nexport function applyPagination(dataArray, skip, take) {\n return dataArray.slice(skip, skip + take);\n}\nexport async function applyQueryArray(dataArray, query) {\n let result = [...dataArray];\n // Apply filtering\n if (query.filter) {\n result = applyFilterArray(result, [query.filter], query.filter.logic ?? 'and');\n }\n // Store total count before pagination\n const total = result.length;\n // Apply sorting\n if (query.sort && query.sort.length > 0) {\n result = applySortArray(result, query.sort);\n }\n // Apply pagination\n result = applyPagination(result, query.skip, query.take);\n return {\n items: result,\n total,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb25kaXRpb25lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3V0aWxzL2RhdGEtY29uZGl0aW9uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBILE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDLGtEQUFrRDtBQUVoRixTQUFTLGNBQWMsQ0FBQyxJQUFTLEVBQUUsU0FBbUM7SUFDcEUsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNyRSxNQUFNLFNBQVMsR0FBRyxPQUFPLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ25GLE1BQU0sY0FBYyxHQUFHLE9BQU8sU0FBUyxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFFN0csb0NBQW9DO0lBQ3BDLElBQUksY0FBYyxFQUFFLENBQUM7UUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdEMsT0FBTyxD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S0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFFNUIsZ0JBQWdCO0lBQ2hCLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN4QyxNQUFNLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixNQUFNLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV6RCxPQUFPO1FBQ0wsS0FBSyxFQUFFLE1BQU07UUFDYixLQUFLO0tBQ04sQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWERhdGFTb3VyY2VDYWxsYmFja1Jlc3VsdCxcbiAgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uLFxuICBBWERhdGFTb3VyY2VMb2FkQ2FsbGJhY2ssXG4gIEFYRGF0YVNvdXJjZVF1ZXJ5LFxuICBBWERhdGFTb3VyY2VTb3J0T3B0aW9uLFxufSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgZW5kc1dpdGgsIGdldCwgZ3QsIGd0ZSwgaW5jbHVkZXMsIGlzRW1wdHksIGlzRXF1YWwsIGlzTmlsLCBsdCwgbHRlLCBvcmRlckJ5LCBzdGFydHNXaXRoIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuY29uc3QgbG9nZ2luZ0VuYWJsZWQgPSBmYWxzZTsgLy8gU2V0IHRvIHRydWUgdG8gZW5hYmxlIGxvZ2dpbmcsIGZhbHNlIHRvIGRpc2FibGVcblxuZnVuY3Rpb24gYXBwbHlDb25kaXRpb24oaXRlbTogYW55LCBjb25kaXRpb246IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbikge1xuICBjb25zdCByYXdWYWx1ZSA9IGNvbmRpdGlvbi5maWVsZCA/IGdldChpdGVtLCBjb25kaXRpb24uZmllbGQpIDogbnVsbDtcbiAgY29uc3QgaXRlbVZhbHVlID0gdHlwZW9mIHJhd1ZhbHVlID09PSAnc3RyaW5nJyA/IHJhd1ZhbHVlLnRvTG93ZXJDYXNlKCkgOiByYXdWYWx1ZTtcbiAgY29uc3QgY29uZGl0aW9uVmFsdWUgPSB0eXBlb2YgY29uZGl0aW9uLnZhbHVlID09PSAnc3RyaW5nJyA/IGNvbmRpdGlvbi52YWx1ZS50b0xvd2VyQ2FzZSgpIDogY29uZGl0aW9uLnZhbHVlO1xuXG4gIC8vIENvbmRpdGlvbmFsIExvZ2dpbmcgZm9yIGRlYnVnZ2luZ1xuICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICBjb25zb2xlLmxvZygnQ29uZGl0aW9uOicsIGNvbmRpdGlvbik7XG4gICAgY29uc29sZS5sb2coJ0l0ZW0gVmFsdWU6JywgaXRlbVZhbHVlKTtcbiAgICBjb25zb2xlLmxvZygnQ29uZGl0aW9uIFZhbHVlOicsIGNvbmRpdGlvblZhbHVlKTtcbiAgfVxuXG4gIGxldCByZXN1bHQ6IGJvb2xlYW47XG4gIGNvbnN0IHZhbHVlVG9Db21wYXJlID0gaXNOaWwoY29uZGl0aW9uLmZpZWxkKSB8fCBjb25kaXRpb24uZmllbGQgPT09ICcnID8gY29uZGl0aW9uVmFsdWUgOiBpdGVtVmFsdWU7XG4gIGNvbnN0IGNvbmRpdGlvblR5cGUgPSBjb25kaXRpb24/Lm9wZXJhdG9yPy50eXBlO1xuICBpZiAoIWNvbmRpdGlvblR5cGUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IG9wID0gU3RyaW5nKGNvbmRpdGlvblR5cGUpO1xuXG4gIHN3aXRjaCAob3ApIHtcbiAgICBjYXNlICdlcXVhbCc6XG4gICAgY2FzZSAnZXEnOlxuICAgICAgcmVzdWx0ID0gaXNFcXVhbCh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdFcXVhbCBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ25vdEVxdWFsJzpcbiAgICBjYXNlICduZSc6XG4gICAgY2FzZSAnbmVxJzpcbiAgICAgIHJlc3VsdCA9ICFpc0VxdWFsKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ05vdCBlcXVhbCBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2dyZWF0ZXJUaGFuJzpcbiAgICBjYXNlICdndCc6XG4gICAgICByZXN1bHQgPSBndCh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdHcmVhdGVyIHRoYW4gY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdsZXNzVGhhbic6XG4gICAgY2FzZSAnbHQnOlxuICAgICAgcmVzdWx0ID0gbHQodmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnTGVzcyB0aGFuIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZ3JlYXRlclRoYW5PckVxdWFsJzpcbiAgICBjYXNlICdndGUnOlxuICAgICAgcmVzdWx0ID0gZ3RlKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0dyZWF0ZXIgdGhhbiBvciBlcXVhbCBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2xlc3NUaGFuT3JFcXVhbCc6XG4gICAgY2FzZSAnbHRlJzpcbiAgICAgIHJlc3VsdCA9IGx0ZSh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdMZXNzIHRoYW4gb3IgZXF1YWwgY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdjb250YWlucyc6XG4gICAgICBpZiAodHlwZW9mIHZhbHVlVG9Db21wYXJlID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXN1bHQgPSBpbmNsdWRlcyh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlVG9Db21wYXJlKSkge1xuICAgICAgICByZXN1bHQgPSBpbmNsdWRlcyhcbiAgICAgICAgICB2YWx1ZVRvQ29tcGFyZS5tYXAoKHZhbCkgPT4gdmFsLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICAgY29uZGl0aW9uVmFsdWUsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnQ29udGFpbnMgY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdpbic6XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjb25kaXRpb25WYWx1ZSkpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZVRvQ29tcGFyZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICByZXN1bHQgPSBjb25kaXRpb25WYWx1ZS5zb21lKHZhbCA9PlxuICAgICAgICAgICAgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgPyB2YWwudG9Mb3dlckNhc2UoKSA9PT0gdmFsdWVUb0NvbXBhcmUgOiB2YWwgPT09IHZhbHVlVG9Db21wYXJlXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlVG9Db21wYXJlKSkge1xuICAgICAgICAgIHJlc3VsdCA9IHZhbHVlVG9Db21wYXJlLnNvbWUodmFsID0+XG4gICAgICAgICAgICBjb25kaXRpb25WYWx1ZS5zb21lKGNvbmRWYWwgPT5cbiAgICAgICAgICAgICAgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIGNvbmRWYWwgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgPyB2YWwudG9Mb3dlckNhc2UoKSA9PT0gY29uZFZhbC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgOiB2YWwgPT09IGNvbmRWYWxcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IGNvbmRpdGlvblZhbHVlLmluY2x1ZGVzKHZhbHVlVG9Db21wYXJlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0luIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbm90Q29udGFpbnMnOlxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZVRvQ29tcGFyZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVzdWx0ID0gIWluY2x1ZGVzKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVUb0NvbXBhcmUpKSB7XG4gICAgICAgIHJlc3VsdCA9ICFpbmNsdWRlcyhcbiAgICAgICAgICB2YWx1ZVRvQ29tcGFyZS5tYXAoKHZhbCkgPT4gdmFsLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICAgY29uZGl0aW9uVmFsdWUsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnTm90IGNvbnRhaW5zIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnc3RhcnRzV2l0aCc6XG4gICAgICByZXN1bHQgPSB0eXBlb2YgdmFsdWVUb0NvbXBhcmUgPT09ICdzdHJpbmcnICYmIHN0YXJ0c1dpdGgodmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlIGFzIHN0cmluZyk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1N0YXJ0cyB3aXRoIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZW5kc1dpdGgnOlxuICAgICAgcmVzdWx0ID0gdHlwZW9mIHZhbHVlVG9Db21wYXJlID09PSAnc3RyaW5nJyAmJiBlbmRzV2l0aCh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUgYXMgc3RyaW5nKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnRW5kcyB3aXRoIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnaXNFbXB0eSc6XG4gICAgICByZXN1bHQgPSBpc0VtcHR5KHZhbHVlVG9Db21wYXJlKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnSXMgZW1wdHkgY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdpc051bGwnOlxuICAgICAgcmVzdWx0ID0gaXNOaWwodmFsdWVUb0NvbXBhcmUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdJcyBudWxsIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnaXNOb3RFbXB0eSc6XG4gICAgICByZXN1bHQgPSAhaXNFbXB0eSh2YWx1ZVRvQ29tcGFyZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0lzIG5vdCBlbXB0eSBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2JldHdlZW4nOlxuICAgICAgcmVzdWx0ID0gIWlzTmlsKHZhbHVlVG9Db21wYXJlKSAmJiB2YWx1ZVRvQ29tcGFyZSA+PSAoY29uZGl0aW9uLnZhbHVlIGFzIHsgZnJvbTogbnVtYmVyOyB0bzogbnVtYmVyIH0pLmZyb20gJiYgdmFsdWVUb0NvbXBhcmUgPD0gKGNvbmRpdGlvbi52YWx1ZSBhcyB7IGZyb206IG51bWJlcjsgdG86IG51bWJlciB9KS50bztcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnQmV0d2VlbiBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXN1bHQgPSB0cnVlO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdEZWZhdWx0IGNhc2UsIHJldHVybmluZyB0cnVlJyk7XG4gICAgICB9XG4gIH1cblxuICAvLyBBcHBseSBuZWdhdGl2ZSBmbGFnIGlmIHByZXNlbnQgb24gb3BlcmF0b3IgKGludmVydCB0aGUgcmVzdWx0KVxuICBjb25zdCBpc05lZ2F0aXZlID0gISFjb25kaXRpb24/Lm9wZXJhdG9yPy5uZWdhdGl2ZTtcbiAgcmV0dXJuIGlzTmVnYXRpdmUgPyAhcmVzdWx0IDogcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlGaWx0ZXJBcnJheShcbiAgZGF0YUFycmF5OiBhbnlbXSxcbiAgZmlsdGVycz86IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbltdLFxuICBsb2dpYzogJ2FuZCcgfCAnb3InID0gJ2FuZCcsXG4pOiBhbnlbXSB7XG4gIGlmIChmaWx0ZXJzICYmIGZpbHRlcnMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGRhdGFBcnJheS5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgIGlmIChsb2dpYyA9PT0gJ2FuZCcpIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlcnMuZXZlcnkoKGYpID0+IHtcbiAgICAgICAgICByZXR1cm4gZi5maWx0ZXJzID8gYXBwbHlGaWx0ZXJBcnJheShbaXRlbV0sIGYuZmlsdGVycywgZi5sb2dpYykubGVuZ3RoID4gMCA6IGFwcGx5Q29uZGl0aW9uKGl0ZW0sIGYpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGxvZ2ljID09PSAnb3InXG4gICAgICAgIHJldHVybiBmaWx0ZXJzLnNvbWUoKGYpID0+IHtcbiAgICAgICAgICByZXR1cm4gZi5maWx0ZXJzID8gYXBwbHlGaWx0ZXJBcnJheShbaXRlbV0sIGYuZmlsdGVycywgZi5sb2dpYykubGVuZ3RoID4gMCA6IGFwcGx5Q29uZGl0aW9uKGl0ZW0sIGYpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZGF0YUFycmF5O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVNvcnRBcnJheShkYXRhQXJyYXk6IGFueSwgc29ydHM6IEFYRGF0YVNvdXJjZVNvcnRPcHRpb25bXSkge1xuICBpZiAoc29ydHMgJiYgc29ydHMubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IHNvcnRGaWVsZHMgPSBzb3J0cy5tYXAoKHMpID0+IHMuZmllbGQpO1xuICAgIGNvbnN0IHNvcnRPcmRlcnMgPSBzb3J0cy5tYXAoKHMpID0+IHMuZGlyKTtcbiAgICByZXR1cm4gb3JkZXJCeShkYXRhQXJyYXksIHNvcnRGaWVsZHMsIHNvcnRPcmRlcnMpO1xuICB9IGVsc2UgcmV0dXJuIGRhdGFBcnJheTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGFnaW5hdGlvbjxUPihkYXRhQXJyYXk6IFRbXSwgc2tpcDogbnVtYmVyLCB0YWtlOiBudW1iZXIpOiBUW10ge1xuICByZXR1cm4gZGF0YUFycmF5LnNsaWNlKHNraXAsIHNraXAgKyB0YWtlKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwcGx5UXVlcnlBcnJheTxUPihcbiAgZGF0YUFycmF5OiBUW10sXG4gIHF1ZXJ5OiBBWERhdGFTb3VyY2VRdWVyeSxcbik6IFByb21pc2U8QVhEYXRhU291cmNlQ2FsbGJhY2tSZXN1bHQ8VD4+IHtcbiAgbGV0IHJlc3VsdCA9IFsuLi5kYXRhQXJyYXldO1xuXG4gIC8vIEFwcGx5IGZpbHRlcmluZ1xuICBpZiAocXVlcnkuZmlsdGVyKSB7XG4gICAgcmVzdWx0ID0gYXBwbHlGaWx0ZXJBcnJheShyZXN1bHQsIFtxdWVyeS5maWx0ZXJdLCBxdWVyeS5maWx0ZXIubG9naWMgPz8gJ2FuZCcpO1xuICB9XG5cbiAgLy8gU3RvcmUgdG90YWwgY291bnQgYmVmb3JlIHBhZ2luYXRpb25cbiAgY29uc3QgdG90YWwgPSByZXN1bHQubGVuZ3RoO1xuXG4gIC8vIEFwcGx5IHNvcnRpbmdcbiAgaWYgKHF1ZXJ5LnNvcnQgJiYgcXVlcnkuc29ydC5sZW5ndGggPiAwKSB7XG4gICAgcmVzdWx0ID0gYXBwbHlTb3J0QXJyYXkocmVzdWx0LCBxdWVyeS5zb3J0KTtcbiAgfVxuXG4gIC8vIEFwcGx5IHBhZ2luYXRpb25cbiAgcmVzdWx0ID0gYXBwbHlQYWdpbmF0aW9uKHJlc3VsdCwgcXVlcnkuc2tpcCwgcXVlcnkudGFrZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBpdGVtczogcmVzdWx0LFxuICAgIHRvdGFsLFxuICB9O1xufVxuIl19","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Service for applying and resetting text highlighting within specified HTML elements.\n */\nexport class AXHighlightService {\n constructor() { }\n /**\n * Highlights all occurrences of a search value within the elements matching the provided query selector.\n *\n * @param querySelector - CSS selector to identify target elements.\n * @param searchValue - Text to search and highlight.\n */\n highlight(querySelector, searchValue) {\n this.clear();\n if (!querySelector || !searchValue) {\n return;\n }\n this.querySelector = querySelector;\n this.searchValue = searchValue;\n const elements = document.querySelectorAll(querySelector);\n elements.forEach((element) => {\n this.applyHighlight(element);\n });\n }\n /**\n * Resets all highlighted text within the elements matching the previously used query selector.\n */\n clear() {\n const elements = document.querySelectorAll(`${this.querySelector} .ax-highlight-text`);\n elements.forEach((element) => {\n let combinedText = '';\n element.querySelectorAll('span').forEach((span) => {\n combinedText += span.textContent;\n });\n const mergedSpan = document.createElement('span');\n mergedSpan.textContent = combinedText;\n element?.parentNode?.replaceChild(mergedSpan, element);\n });\n }\n /**\n * Applies highlighting to a specific element by matching text against the search value.\n *\n * @param element - The HTML element to apply highlights to.\n */\n applyHighlight(element) {\n const searchRegex = new RegExp(`(${this.searchValue})`, 'gi');\n this.recursivelyHighlight(element, searchRegex);\n }\n /**\n * Recursively applies highlighting to text nodes within an element.\n *\n * @param element - The current node being processed.\n * @param searchRegex - Regular expression for matching text to highlight.\n */\n recursivelyHighlight(element, searchRegex) {\n const childNodes = Array.from(element.childNodes);\n childNodes.forEach((node) => {\n if (node.nodeType === Node.TEXT_NODE) {\n const textContent = node.textContent || '';\n if (textContent.match(searchRegex)) {\n const highlightedHTML = this.createHighlightedHTML(textContent, searchRegex);\n const tempContainer = document.createElement('div');\n tempContainer.innerHTML = highlightedHTML;\n const fragment = document.createDocumentFragment();\n Array.from(tempContainer.childNodes).forEach((child) => fragment.appendChild(child));\n node.replaceWith(fragment);\n }\n }\n else if (node.nodeType === Node.ELEMENT_NODE) {\n this.recursivelyHighlight(node, searchRegex);\n }\n });\n }\n /**\n * Generates the HTML structure for highlighted text.\n *\n * @param textContent - The original text content to process.\n * @param searchRegex - Regular expression for matching text to highlight.\n * @returns A string of HTML with highlighted portions wrapped in span elements.\n */\n createHighlightedHTML(textContent, searchRegex) {\n let parts = [];\n let match;\n let lastIndex = 0;\n let resultHTML = '<span class=\"ax-highlight-text\">';\n while ((match = searchRegex.exec(textContent)) !== null) {\n if (match.index > lastIndex) {\n resultHTML += `<span>${textContent.slice(lastIndex, match.index)}</span>`;\n }\n resultHTML += `<span class=\"ax-highlight\">${match[0]}</span>`;\n lastIndex = searchRegex.lastIndex;\n }\n if (lastIndex < textContent.length) {\n resultHTML += `<span>${textContent.slice(lastIndex)}</span>`;\n }\n resultHTML += '</span>';\n return resultHTML;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXHighlightService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXHighlightService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXHighlightService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi91dGlscy9oaWdobGlnaHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzQzs7R0FFRztBQUlILE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsZ0JBQWdCLENBQUM7SUFFakI7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUMsYUFBcUIsRUFBRSxXQUFtQjtRQUNsRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBc0IsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUNWLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLHNCQUFzQixDQUFDLENBQUM7UUFDeEYsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2hE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TUFBTSxFQUFFLENBQUM7WUFDbkMsVUFBVSxJQUFJLFNBQVMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQy9ELENBQUM7UUFFRCxVQUFVLElBQUksU0FBUyxDQUFDO1FBRXhCLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7OEdBN0dVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogU2VydmljZSBmb3IgYXBwbHlpbmcgYW5kIHJlc2V0dGluZyB0ZXh0IGhpZ2hsaWdodGluZyB3aXRoaW4gc3BlY2lmaWVkIEhUTUwgZWxlbWVudHMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWEhpZ2hsaWdodFNlcnZpY2Uge1xuICBwcml2YXRlIHF1ZXJ5U2VsZWN0b3I6IHN0cmluZyB8IG51bGw7XG4gIHByaXZhdGUgc2VhcmNoVmFsdWU6IHN0cmluZyB8IG51bGw7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICAvKipcbiAgICogSGlnaGxpZ2h0cyBhbGwgb2NjdXJyZW5jZXMgb2YgYSBzZWFyY2ggdmFsdWUgd2l0aGluIHRoZSBlbGVtZW50cyBtYXRjaGluZyB0aGUgcHJvdmlkZWQgcXVlcnkgc2VsZWN0b3IuXG4gICAqXG4gICAqIEBwYXJhbSBxdWVyeVNlbGVjdG9yIC0gQ1NTIHNlbGVjdG9yIHRvIGlkZW50aWZ5IHRhcmdldCBlbGVtZW50cy5cbiAgICogQHBhcmFtIHNlYXJjaFZhbHVlIC0gVGV4dCB0byBzZWFyY2ggYW5kIGhpZ2hsaWdodC5cbiAgICovXG4gIGhpZ2hsaWdodChxdWVyeVNlbGVjdG9yOiBzdHJpbmcsIHNlYXJjaFZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyKCk7XG4gICAgaWYgKCFxdWVyeVNlbGVjdG9yIHx8ICFzZWFyY2hWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IgPSBxdWVyeVNlbGVjdG9yO1xuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZTtcbiAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwocXVlcnlTZWxlY3Rvcik7XG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgdGhpcy5hcHBseUhpZ2hsaWdodChlbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgYWxsIGhpZ2hsaWdodGVkIHRleHQgd2l0aGluIHRoZSBlbGVtZW50cyBtYXRjaGluZyB0aGUgcHJldmlvdXNseSB1c2VkIHF1ZXJ5IHNlbGVjdG9yLlxuICAgKi9cbiAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgJHt0aGlzLnF1ZXJ5U2VsZWN0b3J9ICAuYXgtaGlnaGxpZ2h0LXRleHRgKTtcbiAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICBsZXQgY29tYmluZWRUZXh0ID0gJyc7XG4gICAgICBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3NwYW4nKS5mb3JFYWNoKChzcGFuKSA9PiB7XG4gICAgICAgIGNvbWJpbmVkVGV4dCArPSBzcGFuLnRleHRDb250ZW50O1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IG1lcmdlZFNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICBtZXJnZWRTcGFuLnRleHRDb250ZW50ID0gY29tYmluZWRUZXh0O1xuXG4gICAgICBlbGVtZW50Py5wYXJlbnROb2RlPy5yZXBsYWNlQ2hpbGQobWVyZ2VkU3BhbiwgZWxlbWVudCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyBoaWdobGlnaHRpbmcgdG8gYSBzcGVjaWZpYyBlbGVtZW50IGJ5IG1hdGNoaW5nIHRleHQgYWdhaW5zdCB0aGUgc2VhcmNoIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gZWxlbWVudCAtIFRoZSBIVE1MIGVsZW1lbnQgdG8gYXBwbHkgaGlnaGxpZ2h0cyB0by5cbiAgICovXG4gIHByaXZhdGUgYXBwbHlIaWdobGlnaHQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzZWFyY2hSZWdleCA9IG5ldyBSZWdFeHAoYCgke3RoaXMuc2VhcmNoVmFsdWV9KWAsICdnaScpO1xuICAgIHRoaXMucmVjdXJzaXZlbHlIaWdobGlnaHQoZWxlbWVudCwgc2VhcmNoUmVnZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY3Vyc2l2ZWx5IGFwcGxpZXMgaGlnaGxpZ2h0aW5nIHRvIHRleHQgbm9kZXMgd2l0aGluIGFuIGVsZW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBlbGVtZW50IC0gVGhlIGN1cnJlbnQgbm9kZSBiZWluZyBwcm9jZXNzZWQuXG4gICAqIEBwYXJhbSBzZWFyY2hSZWdleCAtIFJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgbWF0Y2hpbmcgdGV4dCB0byBoaWdobGlnaHQuXG4gICAqL1xuICBwcml2YXRlIHJlY3Vyc2l2ZWx5SGlnaGxpZ2h0KGVsZW1lbnQ6IE5vZGUsIHNlYXJjaFJlZ2V4OiBSZWdFeHApOiB2b2lkIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gQXJyYXkuZnJvbShlbGVtZW50LmNoaWxkTm9kZXMpO1xuXG4gICAgY2hpbGROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgY29uc3QgdGV4dENvbnRlbnQgPSBub2RlLnRleHRDb250ZW50IHx8ICcnO1xuICAgICAgICBpZiAodGV4dENvbnRlbnQubWF0Y2goc2VhcmNoUmVnZXgpKSB7XG4gICAgICAgICAgY29uc3QgaGlnaGxpZ2h0ZWRIVE1MID0gdGhpcy5jcmVhdGVIaWdobGlnaHRlZEhUTUwodGV4dENvbnRlbnQsIHNlYXJjaFJlZ2V4KTtcbiAgICAgICAgICBjb25zdCB0ZW1wQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgdGVtcENvbnRhaW5lci5pbm5lckhUTUwgPSBoaWdobGlnaHRlZEhUTUw7XG5cbiAgICAgICAgICBjb25zdCBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgICBBcnJheS5mcm9tKHRlbXBDb250YWluZXIuY2hpbGROb2RlcykuZm9yRWFjaCgoY2hpbGQpID0+IGZyYWdtZW50LmFwcGVuZENoaWxkKGNoaWxkKSk7XG5cbiAgICAgICAgICBub2RlLnJlcGxhY2VXaXRoKGZyYWdtZW50KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSkge1xuICAgICAgICB0aGlzLnJlY3Vyc2l2ZWx5SGlnaGxpZ2h0KG5vZGUsIHNlYXJjaFJlZ2V4KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIEhUTUwgc3RydWN0dXJlIGZvciBoaWdobGlnaHRlZCB0ZXh0LlxuICAgKlxuICAgKiBAcGFyYW0gdGV4dENvbnRlbnQgLSBUaGUgb3JpZ2luYWwgdGV4dCBjb250ZW50IHRvIHByb2Nlc3MuXG4gICAqIEBwYXJhbSBzZWFyY2hSZWdleCAtIFJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgbWF0Y2hpbmcgdGV4dCB0byBoaWdobGlnaHQuXG4gICAqIEByZXR1cm5zIEEgc3RyaW5nIG9mIEhUTUwgd2l0aCBoaWdobGlnaHRlZCBwb3J0aW9ucyB3cmFwcGVkIGluIHNwYW4gZWxlbWVudHMuXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUhpZ2hsaWdodGVkSFRNTCh0ZXh0Q29udGVudDogc3RyaW5nLCBzZWFyY2hSZWdleDogUmVnRXhwKTogc3RyaW5nIHtcbiAgICBsZXQgcGFydHM6IHN0cmluZ1tdID0gW107XG4gICAgbGV0IG1hdGNoO1xuICAgIGxldCBsYXN0SW5kZXggPSAwO1xuICAgIGxldCByZXN1bHRIVE1MID0gJzxzcGFuIGNsYXNzPVwiYXgtaGlnaGxpZ2h0LXRleHRcIj4nO1xuXG4gICAgd2hpbGUgKChtYXRjaCA9IHNlYXJjaFJlZ2V4LmV4ZWModGV4dENvbnRlbnQpKSAhPT0gbnVsbCkge1xuICAgICAgaWYgKG1hdGNoLmluZGV4ID4gbGFzdEluZGV4KSB7XG4gICAgICAgIHJlc3VsdEhUTUwgKz0gYDxzcGFuPiR7dGV4dENvbnRlbnQuc2xpY2UobGFzdEluZGV4LCBtYXRjaC5pbmRleCl9PC9zcGFuPmA7XG4gICAgICB9XG4gICAgICByZXN1bHRIVE1MICs9IGA8c3BhbiBjbGFzcz1cImF4LWhpZ2hsaWdodFwiPiR7bWF0Y2hbMF19PC9zcGFuPmA7XG4gICAgICBsYXN0SW5kZXggPSBzZWFyY2hSZWdleC5sYXN0SW5kZXg7XG4gICAgfVxuXG4gICAgaWYgKGxhc3RJbmRleCA8IHRleHRDb250ZW50Lmxlbmd0aCkge1xuICAgICAgcmVzdWx0SFRNTCArPSBgPHNwYW4+JHt0ZXh0Q29udGVudC5zbGljZShsYXN0SW5kZXgpfTwvc3Bhbj5gO1xuICAgIH1cblxuICAgIHJlc3VsdEhUTUwgKz0gJzwvc3Bhbj4nO1xuXG4gICAgcmV0dXJuIHJlc3VsdEhUTUw7XG4gIH1cbn1cbiJdfQ==","export function extractTextFromHtml(value) {\n const div = document.createElement('div');\n div.innerHTML = value;\n return div.textContent || div.innerText || '';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvdXRpbHMvc3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxtQkFBbUIsQ0FBRSxLQUFhO0lBQ2hELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDdEIsT0FBTyxHQUFHLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZXh0cmFjdFRleHRGcm9tSHRtbCAodmFsdWU6IHN0cmluZykge1xuICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgZGl2LmlubmVySFRNTCA9IHZhbHVlO1xuICByZXR1cm4gZGl2LnRleHRDb250ZW50IHx8IGRpdi5pbm5lclRleHQgfHwgJyc7XG59XG5cbiJdfQ==","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport const AXP_ACTIVITY_LOG_PROVIDER = new InjectionToken('AXP_ACTIVITY_LOGS_PROVIDER');\nexport class AXPActivityLogService {\n constructor() {\n this.providers = inject(AXP_ACTIVITY_LOG_PROVIDER, { optional: true });\n }\n async getHistory(refId, refType, options) {\n return (await Promise.all(this.providers?.map((p) => p.getHistory(refId, refType, options)) ?? [])).flat();\n }\n async getHistoryByIds(refId, refType, ids) {\n return (await Promise.all(this.providers?.map((p) => p.getHistoryByIds(refId, refType, ids)) ?? [])).flat();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPActivityLogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPActivityLogService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPActivityLogService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9hY3Rpdml0eS1sb2cvYWN0aXZpdHktbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUluRSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGNBQWMsQ0FBMkIsNEJBQTRCLENBQUMsQ0FBQztBQUdwSCxNQUFNLE9BQU8scUJBQXFCO0lBRGxDO1FBRVUsY0FBUyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBVTNFO0lBUkMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFhLEVBQUUsT0FBZSxFQUFFLE9BQXFFO1FBQ3BILE9BQU8sQ0FBQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFN0csQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBYSxFQUFFLE9BQWUsRUFBRSxHQUFhO1FBQ2pFLE9BQU8sQ0FBQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUcsQ0FBQzs4R0FWVSxxQkFBcUI7a0hBQXJCLHFCQUFxQixjQURSLE1BQU07OzJGQUNuQixxQkFBcUI7a0JBRGpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQQWN0aXZpdHlMb2dQcm92aWRlciB9IGZyb20gJy4vYWN0aXZpdHktbG9nLnByb3ZpZGVyJztcbmltcG9ydCB7IEFYUEFjdGl2aXR5TG9nIH0gZnJvbSAnLi9hY3Rpdml0eS1sb2cudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgQVhQX0FDVElWSVRZX0xPR19QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBBY3Rpdml0eUxvZ1Byb3ZpZGVyW10+KCdBWFBfQUNUSVZJVFlfTE9HU19QUk9WSURFUicpO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEFjdGl2aXR5TG9nU2VydmljZSB7XG4gIHByaXZhdGUgcHJvdmlkZXJzID0gaW5qZWN0KEFYUF9BQ1RJVklUWV9MT0dfUFJPVklERVIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgYXN5bmMgZ2V0SGlzdG9yeShyZWZJZDogc3RyaW5nLCByZWZUeXBlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGZyb20/OiBEYXRlOyB0bz86IERhdGU7IGxpbWl0PzogbnVtYmVyOyBvZmZzZXQ/OiBudW1iZXIgfSk6IFByb21pc2U8QVhQQWN0aXZpdHlMb2dbXT4ge1xuICAgIHJldHVybiAoYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5wcm92aWRlcnM/Lm1hcCgocCkgPT4gcC5nZXRIaXN0b3J5KHJlZklkLCByZWZUeXBlLCBvcHRpb25zKSkgPz8gW10pKS5mbGF0KCk7XG5cbiAgfVxuXG4gIGFzeW5jIGdldEhpc3RvcnlCeUlkcyhyZWZJZDogc3RyaW5nLCByZWZUeXBlOiBzdHJpbmcsIGlkczogc3RyaW5nW10pOiBQcm9taXNlPEFYUEFjdGl2aXR5TG9nW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMucHJvdmlkZXJzPy5tYXAoKHApID0+IHAuZ2V0SGlzdG9yeUJ5SWRzKHJlZklkLCByZWZUeXBlLCBpZHMpKSA/PyBbXSkpLmZsYXQoKTtcbiAgfVxufSJdfQ==","export class AXPActivityLogProvider {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9nLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvYWN0aXZpdHktbG9nL2FjdGl2aXR5LWxvZy5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQWdCLHNCQUFzQjtDQUczQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEFjdGl2aXR5TG9nIH0gZnJvbSAnLi9hY3Rpdml0eS1sb2cudHlwZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQQWN0aXZpdHlMb2dQcm92aWRlciB7XG4gIGFic3RyYWN0IGdldEhpc3RvcnkocmVmSWQ6IHN0cmluZywgcmVmVHlwZTogc3RyaW5nLCBvcHRpb25zPzogeyBmcm9tPzogRGF0ZTsgdG8/OiBEYXRlOyBsaW1pdD86IG51bWJlcjsgb2Zmc2V0PzogbnVtYmVyIH0pOiBQcm9taXNlPEFYUEFjdGl2aXR5TG9nW10+O1xuICBhYnN0cmFjdCBnZXRIaXN0b3J5QnlJZHMocmVmSWQ6IHN0cmluZywgcmVmVHlwZTogc3RyaW5nLCBpZHM6IHN0cmluZ1tdKTogUHJvbWlzZTxBWFBBY3Rpdml0eUxvZ1tdPjtcbn0iXX0=","import { InjectionToken } from '@angular/core';\nexport const AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER = new InjectionToken('AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0ZWQtZXZlbnQtbGlzdGVuZXIucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9kaXN0cmlidXRlZC1ldmVudHMvZGlzdHJpYnV0ZWQtZXZlbnQtbGlzdGVuZXIucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0vQyxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBRyxJQUFJLGNBQWMsQ0FDdkUseUNBQXlDLENBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBBWFBEaXN0cmlidXRlZEV2ZW50TGlzdGVuZXJQcm92aWRlclRva2VuPFQ+ID1cbiAgfCBBWFBEaXN0cmlidXRlZEV2ZW50TGlzdGVuZXJQcm92aWRlcjxUPlxuICB8IFByb21pc2U8QVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyUHJvdmlkZXI8VD4+O1xuXG5leHBvcnQgY29uc3QgQVhQX0RJU1RSSUJVVEVEX0VWRU5UX0xJU1RFTkVSX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuPEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclByb3ZpZGVyVG9rZW48YW55PltdPihcbiAgJ0FYUF9ESVNUUklCVVRFRF9FVkVOVF9MSVNURU5FUl9QUk9WSURFUidcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyUHJvdmlkZXI8VD4ge1xuICBrZXk6IHN0cmluZztcbiAgZXhlY3V0ZShkYXRhOiBUKTogUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG59Il19","//#region ---- Imports ----\nimport { inject, Injectable, Injector, runInInjectionContext } from '@angular/core';\nimport { AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER } from './distributed-event-listener.provider';\nimport * as i0 from \"@angular/core\";\n//#endregion\nexport class AXPDistributedEventListenerService {\n constructor() {\n //#region ---- Providers & Caches ----\n this.listenerProviders = inject(AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, { optional: true }) || [];\n this.injector = inject(Injector);\n /** Cache for listeners by key. */\n this.listenersByKey = new Map();\n /** Flag to track if providers have been loaded */\n this.providersLoaded = false;\n }\n //#endregion\n //#region ---- Public API ----\n /**\n * Dispatches an event to all registered listeners for the given key.\n * @param key The event key.\n * @param data The event data to pass to listeners.\n */\n async dispatch(key, data) {\n await this.ensureProvidersLoaded();\n const listeners = this.listenersByKey.get(key) || [];\n // Execute all listeners in parallel\n const promises = listeners.map(listener => {\n try {\n return Promise.resolve(runInInjectionContext(this.injector, () => listener.execute(data)));\n }\n catch (error) {\n console.error(`Error executing listener for event key '${key}':`, error);\n return Promise.resolve(); // Continue with other listeners even if one fails\n }\n });\n await Promise.all(promises);\n }\n /**\n * Returns all listeners for a specific event key.\n * @param key The event key.\n * @returns Array of listeners for the key.\n */\n async getListeners(key) {\n await this.ensureProvidersLoaded();\n return this.listenersByKey.get(key) || [];\n }\n /**\n * Returns all registered event keys.\n * @returns Array of all event keys that have listeners.\n */\n async getRegisteredKeys() {\n await this.ensureProvidersLoaded();\n return Array.from(this.listenersByKey.keys());\n }\n //#endregion\n //#region ---- Private Methods ----\n /**\n * Ensures that all providers have been loaded and cached.\n */\n async ensureProvidersLoaded() {\n if (this.providersLoaded) {\n return;\n }\n // Resolve all providers\n const resolvedProviders = await Promise.all(this.listenerProviders);\n // Group listeners by key\n for (const provider of resolvedProviders) {\n if (provider) {\n const existingListeners = this.listenersByKey.get(provider.key) || [];\n existingListeners.push(provider);\n this.listenersByKey.set(provider.key, existingListeners);\n }\n }\n this.providersLoaded = true;\n }\n //#endregion\n //#region ---- Cache Management ----\n /** Clears the listeners cache and forces reload on next access. */\n clearListenersCache() {\n this.listenersByKey.clear();\n this.providersLoaded = false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPDistributedEventListenerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPDistributedEventListenerService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPDistributedEventListenerService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0ZWQtZXZlbnQtbGlzdGVuZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2Rpc3RyaWJ1dGVkLWV2ZW50cy9kaXN0cmlidXRlZC1ldmVudC1saXN0ZW5lci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUUvQixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLHVDQUF1QyxFQUF1QyxNQUFNLHVDQUF1QyxDQUFDOztBQUVySSxZQUFZO0FBS1osTUFBTSxPQUFPLGtDQUFrQztJQUgvQztRQUlFLDBDQUEwQztRQUV6QixzQkFBaUIsR0FBRyxNQUFNLENBQUMsdUNBQXVDLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUYsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU3QyxrQ0FBa0M7UUFDMUIsbUJBQWMsR0FBNEQsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUU1RixrREFBa0Q7UUFDMUMsb0JBQWUsR0FBRyxLQUFLLENBQUM7S0FzRmpDO0lBcEZDLFlBQVk7SUFFWixrQ0FBa0M7SUFFbEM7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBVyxFQUFFLElBQVU7UUFDcEMsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUVuQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFckQsb0NBQW9DO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDO2dCQUNILE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdGLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkNBQTJDLEdBQUcsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN6RSxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLGtEQUFrRDtZQUM5RSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQVc7UUFDNUIsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGlCQUFpQjtRQUNyQixNQUFNLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ25DLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFlBQVk7SUFFWix1Q0FBdUM7SUFFdkM7O09BRUc7SUFDSyxLQUFLLENBQUMscUJBQXFCO1FBQ2pDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLE9BQU87UUFDVCxDQUFDO1FBRUQsd0JBQXdCO1FBQ3hCLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXBFLHlCQUF5QjtRQUN6QixLQUFLLE1BQU0sUUFBUSxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDekMsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3RFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQzNELENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELFlBQVk7SUFFWix3Q0FBd0M7SUFFeEMsbUVBQW1FO0lBQ25FLG1CQUFtQjtRQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7OEdBN0ZVLGtDQUFrQztrSEFBbEMsa0NBQWtDLGNBRmpDLE1BQU07OzJGQUVQLGtDQUFrQztrQkFIOUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gLS0tLSAgIEltcG9ydHMgICAtLS0tXG5cbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQX0RJU1RSSUJVVEVEX0VWRU5UX0xJU1RFTkVSX1BST1ZJREVSLCBBWFBEaXN0cmlidXRlZEV2ZW50TGlzdGVuZXJQcm92aWRlciB9IGZyb20gJy4vZGlzdHJpYnV0ZWQtZXZlbnQtbGlzdGVuZXIucHJvdmlkZXInO1xuXG4vLyNlbmRyZWdpb25cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclNlcnZpY2Uge1xuICAvLyNyZWdpb24gLS0tLSAgIFByb3ZpZGVycyAmIENhY2hlcyAgIC0tLS1cblxuICBwcml2YXRlIHJlYWRvbmx5IGxpc3RlbmVyUHJvdmlkZXJzID0gaW5qZWN0KEFYUF9ESVNUUklCVVRFRF9FVkVOVF9MSVNURU5FUl9QUk9WSURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgLyoqIENhY2hlIGZvciBsaXN0ZW5lcnMgYnkga2V5LiAqL1xuICBwcml2YXRlIGxpc3RlbmVyc0J5S2V5OiBNYXA8c3RyaW5nLCBBWFBEaXN0cmlidXRlZEV2ZW50TGlzdGVuZXJQcm92aWRlcjxhbnk+W10+ID0gbmV3IE1hcCgpO1xuICBcbiAgLyoqIEZsYWcgdG8gdHJhY2sgaWYgcHJvdmlkZXJzIGhhdmUgYmVlbiBsb2FkZWQgKi9cbiAgcHJpdmF0ZSBwcm92aWRlcnNMb2FkZWQgPSBmYWxzZTtcbiAgXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgUHVibGljIEFQSSAgIC0tLS1cblxuICAvKipcbiAgICogRGlzcGF0Y2hlcyBhbiBldmVudCB0byBhbGwgcmVnaXN0ZXJlZCBsaXN0ZW5lcnMgZm9yIHRoZSBnaXZlbiBrZXkuXG4gICAqIEBwYXJhbSBrZXkgVGhlIGV2ZW50IGtleS5cbiAgICogQHBhcmFtIGRhdGEgVGhlIGV2ZW50IGRhdGEgdG8gcGFzcyB0byBsaXN0ZW5lcnMuXG4gICAqL1xuICBhc3luYyBkaXNwYXRjaChrZXk6IHN0cmluZywgZGF0YT86IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlUHJvdmlkZXJzTG9hZGVkKCk7XG4gICAgXG4gICAgY29uc3QgbGlzdGVuZXJzID0gdGhpcy5saXN0ZW5lcnNCeUtleS5nZXQoa2V5KSB8fCBbXTtcbiAgICBcbiAgICAvLyBFeGVjdXRlIGFsbCBsaXN0ZW5lcnMgaW4gcGFyYWxsZWxcbiAgICBjb25zdCBwcm9taXNlcyA9IGxpc3RlbmVycy5tYXAobGlzdGVuZXIgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4gbGlzdGVuZXIuZXhlY3V0ZShkYXRhKSkpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgZXhlY3V0aW5nIGxpc3RlbmVyIGZvciBldmVudCBrZXkgJyR7a2V5fSc6YCwgZXJyb3IpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7IC8vIENvbnRpbnVlIHdpdGggb3RoZXIgbGlzdGVuZXJzIGV2ZW4gaWYgb25lIGZhaWxzXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbGwgbGlzdGVuZXJzIGZvciBhIHNwZWNpZmljIGV2ZW50IGtleS5cbiAgICogQHBhcmFtIGtleSBUaGUgZXZlbnQga2V5LlxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBsaXN0ZW5lcnMgZm9yIHRoZSBrZXkuXG4gICAqL1xuICBhc3luYyBnZXRMaXN0ZW5lcnMoa2V5OiBzdHJpbmcpOiBQcm9taXNlPEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclByb3ZpZGVyPGFueT5bXT4ge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlUHJvdmlkZXJzTG9hZGVkKCk7XG4gICAgcmV0dXJuIHRoaXMubGlzdGVuZXJzQnlLZXkuZ2V0KGtleSkgfHwgW107XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbGwgcmVnaXN0ZXJlZCBldmVudCBrZXlzLlxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBhbGwgZXZlbnQga2V5cyB0aGF0IGhhdmUgbGlzdGVuZXJzLlxuICAgKi9cbiAgYXN5bmMgZ2V0UmVnaXN0ZXJlZEtleXMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlUHJvdmlkZXJzTG9hZGVkKCk7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5saXN0ZW5lcnNCeUtleS5rZXlzKCkpO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBQcml2YXRlIE1ldGhvZHMgICAtLS0tXG5cbiAgLyoqXG4gICAqIEVuc3VyZXMgdGhhdCBhbGwgcHJvdmlkZXJzIGhhdmUgYmVlbiBsb2FkZWQgYW5kIGNhY2hlZC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZW5zdXJlUHJvdmlkZXJzTG9hZGVkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnByb3ZpZGVyc0xvYWRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFJlc29sdmUgYWxsIHByb3ZpZGVyc1xuICAgIGNvbnN0IHJlc29sdmVkUHJvdmlkZXJzID0gYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5saXN0ZW5lclByb3ZpZGVycyk7XG5cbiAgICAvLyBHcm91cCBsaXN0ZW5lcnMgYnkga2V5XG4gICAgZm9yIChjb25zdCBwcm92aWRlciBvZiByZXNvbHZlZFByb3ZpZGVycykge1xuICAgICAgaWYgKHByb3ZpZGVyKSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nTGlzdGVuZXJzID0gdGhpcy5saXN0ZW5lcnNCeUtleS5nZXQocHJvdmlkZXIua2V5KSB8fCBbXTtcbiAgICAgICAgZXhpc3RpbmdMaXN0ZW5lcnMucHVzaChwcm92aWRlcik7XG4gICAgICAgIHRoaXMubGlzdGVuZXJzQnlLZXkuc2V0KHByb3ZpZGVyLmtleSwgZXhpc3RpbmdMaXN0ZW5lcnMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucHJvdmlkZXJzTG9hZGVkID0gdHJ1ZTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgQ2FjaGUgTWFuYWdlbWVudCAgIC0tLS1cblxuICAvKiogQ2xlYXJzIHRoZSBsaXN0ZW5lcnMgY2FjaGUgYW5kIGZvcmNlcyByZWxvYWQgb24gbmV4dCBhY2Nlc3MuICovXG4gIGNsZWFyTGlzdGVuZXJzQ2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5lcnNCeUtleS5jbGVhcigpO1xuICAgIHRoaXMucHJvdmlkZXJzTG9hZGVkID0gZmFsc2U7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn0iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWNvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2Fjb3JleC1wbGF0Zm9ybS1jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-core.mjs","sources":["../tmp-esm2022/core/lib/utils/object-util.js","../tmp-esm2022/core/lib/context/context-store.service.js","../tmp-esm2022/core/lib/data/data-generator.js","../tmp-esm2022/core/lib/data/value-transformer.js","../tmp-esm2022/core/lib/data/datasource-definition-provider.service.js","../tmp-esm2022/core/lib/directives/element-data.directive.js","../tmp-esm2022/core/lib/directives/dbl-click.directive.js","../tmp-esm2022/core/lib/directives/grid-layout.directive.js","../tmp-esm2022/core/lib/directives/content-checker.directive.js","../tmp-esm2022/core/lib/event-service/event.service.js","../tmp-esm2022/core/lib/expression-evaluator/expression-evaluator-scope-provider.service.js","../tmp-esm2022/core/lib/expression-evaluator/expression-evaluator.service.js","../tmp-esm2022/core/lib/startup/app-startup.service.js","../tmp-esm2022/core/lib/types/actions.types.js","../tmp-esm2022/core/lib/types/core.types.js","../tmp-esm2022/core/lib/types/interactive.types.js","../tmp-esm2022/core/lib/types/logo.types.js","../tmp-esm2022/core/lib/types/scope.types.js","../tmp-esm2022/core/lib/types/export.types.js","../tmp-esm2022/core/lib/utils/countdown-timer.js","../tmp-esm2022/core/lib/utils/data-conditioner.js","../tmp-esm2022/core/lib/utils/highlighter.js","../tmp-esm2022/core/lib/utils/string.js","../tmp-esm2022/core/lib/activity-log/activity-log.service.js","../tmp-esm2022/core/lib/activity-log/activity-log.provider.js","../tmp-esm2022/core/lib/distributed-events/distributed-event-listener.provider.js","../tmp-esm2022/core/lib/distributed-events/distributed-event-listener.service.js","../tmp-esm2022/core/lib/hook/utill.service.js","../tmp-esm2022/core/acorex-platform-core.js"],"sourcesContent":["import { differenceWith, get, isArray, isEmpty, isEqual, isNil, isObjectLike, isPlainObject, merge, set, transform, union, } from 'lodash-es';\nexport function extractNestedFieldsWildcard(obj, basePath, fields) {\n const result = {};\n if (fields.length === 1 && fields[0] === '*') {\n const fullObj = get(obj, basePath);\n return isPlainObject(fullObj) ? fullObj : {};\n }\n for (const field of fields) {\n const fullPath = basePath ? `${basePath}.${field}` : field;\n const value = get(obj, fullPath);\n set(result, field, value);\n }\n return result;\n}\nexport function setSmart(obj, smartPath, value) {\n const pathParts = smartPath.split('.');\n const lastPart = pathParts[pathParts.length - 1];\n const fieldMatch = lastPart.match(/^\\{(.+)\\}$/);\n if (!fieldMatch) {\n set(obj, smartPath, value);\n return obj;\n }\n const fields = fieldMatch[1].split(',').map((f) => f.trim());\n const basePath = pathParts.slice(0, -1).join('.');\n const [arrayKey, ...restPath] = basePath.split('.');\n // Make sure the array exists\n if (!obj[arrayKey])\n obj[arrayKey] = [];\n // 🟡 Case A: value is array (normal set)\n if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const targetItem = obj[arrayKey][i] ?? {};\n const nested = {};\n if (restPath.length > 0) {\n const picked = extractNestedFieldsWildcard(item, restPath.join('.'), fields);\n set(nested, restPath.join('.'), picked);\n }\n else {\n const picked = extractNestedFieldsWildcard(item, '', fields);\n Object.assign(nested, picked);\n }\n obj[arrayKey][i] = merge({}, targetItem, nested);\n }\n }\n // 🟢 Case B: value is a single value → broadcast\n else {\n for (let i = 0; i < obj[arrayKey].length; i++) {\n const targetItem = obj[arrayKey][i] ?? {};\n const nested = {};\n if (restPath.length > 0) {\n for (const field of fields) {\n set(nested, `${restPath.join('.')}.${field}`, value);\n }\n }\n else {\n for (const field of fields) {\n set(nested, field, value);\n }\n }\n obj[arrayKey][i] = merge({}, targetItem, nested);\n }\n }\n return obj;\n}\nfunction extractFieldsFromPath(obj, basePath, fields) {\n if (fields.length === 1 && fields[0] === '*') {\n const fullObj = basePath ? get(obj, basePath) : obj;\n return isPlainObject(fullObj) ? fullObj : {};\n }\n const result = {};\n for (const field of fields) {\n const fullPath = basePath ? `${basePath}.${field}` : field;\n const val = get(obj, fullPath);\n if (val !== undefined) {\n result[field] = val;\n }\n }\n return result;\n}\nexport function getSmart(obj, smartPath) {\n const pathParts = smartPath.split('.');\n const lastPart = pathParts[pathParts.length - 1];\n const fieldMatch = lastPart.match(/^\\{(.+)\\}$/);\n // Simple get (no fields)\n if (!fieldMatch) {\n return get(obj, smartPath);\n }\n const fields = fieldMatch[1].split(',').map((f) => f.trim());\n const basePath = pathParts.slice(0, -1).join('.');\n const items = get(obj, basePath);\n if (!isArray(items))\n return [];\n const nestedPath = basePath.includes('.') ? basePath.split('.').slice(1).join('.') : '';\n return items.map((item) => {\n return extractFieldsFromPath(item, nestedPath, fields);\n });\n}\nexport function extractValue(value, key = 'id') {\n if (isNil(value)) {\n return null;\n }\n return isObjectLike(value) ? get(value, key) : value;\n}\nexport function cleanDeep(obj) {\n return transform(obj, (result, value, key) => {\n if (isObjectLike(value)) {\n const cleaned = cleanDeep(value);\n if (!isEmpty(cleaned)) {\n result[key] = cleaned;\n }\n }\n else if (!isNil(value) && // not null or undefined\n !(typeof value === 'string' && value.trim() === '') && // not empty string\n !(Array.isArray(value) && value.length === 0) // not empty array\n ) {\n result[key] = value;\n }\n });\n}\nfunction getDeepChanges(obj1, obj2) {\n const changes = [];\n function walk(o1, o2, currentPath = []) {\n // If both values are deeply equal, skip\n if (isEqual(o1, o2))\n return;\n const isObj1Nil = o1 === null || o1 === undefined;\n const isObj2Nil = o2 === null || o2 === undefined;\n // If obj1 is null/undefined and obj2 is not, treat entire obj2 as added\n if (isObj1Nil && !isObj2Nil) {\n if (isPlainObject(o2)) {\n for (const key of Object.keys(o2)) {\n walk(undefined, o2[key], [...currentPath, key]);\n }\n }\n else if (Array.isArray(o2)) {\n changes.push({\n path: currentPath.join('.'),\n oldValue: undefined,\n newValue: o2,\n arrayDiff: {\n added: o2,\n removed: [],\n },\n });\n }\n else {\n changes.push({\n path: currentPath.join('.'),\n oldValue: undefined,\n newValue: o2,\n });\n }\n return;\n }\n // If obj2 is null/undefined and obj1 is not, treat entire obj1 as removed\n if (!isObj1Nil && isObj2Nil) {\n if (isPlainObject(o1)) {\n for (const key of Object.keys(o1)) {\n walk(o1[key], undefined, [...currentPath, key]);\n }\n }\n else if (Array.isArray(o1)) {\n changes.push({\n path: currentPath.join('.'),\n oldValue: o1,\n newValue: undefined,\n arrayDiff: {\n added: [],\n removed: o1,\n },\n });\n }\n else {\n changes.push({\n path: currentPath.join('.'),\n oldValue: o1,\n newValue: undefined,\n });\n }\n return;\n }\n // If both are arrays, compare items\n if (Array.isArray(o1) && Array.isArray(o2)) {\n if (!isEqual(o1, o2)) {\n const added = differenceWith(o2, o1, isEqual);\n const removed = differenceWith(o1, o2, isEqual);\n changes.push({\n path: currentPath.join('.'),\n oldValue: o1,\n newValue: o2,\n arrayDiff: {\n added,\n removed,\n },\n });\n }\n return;\n }\n // If both are plain objects, walk each key\n if (isPlainObject(o1) && isPlainObject(o2)) {\n const allKeys = union(Object.keys(o1), Object.keys(o2));\n for (const key of allKeys) {\n walk(o1[key], o2[key], [...currentPath, key]);\n }\n return;\n }\n // Primitive values or mismatched types\n changes.push({\n path: currentPath.join('.'),\n oldValue: o1,\n newValue: o2,\n });\n }\n walk(obj1, obj2);\n return changes;\n}\n// Method 1: Returns only changed paths\nexport function getChangedPaths(obj1, obj2) {\n return getDeepChanges(obj1, obj2).map((change) => change.path);\n}\n// Method 2: Returns full change entries\nexport function getDetailedChanges(obj1, obj2) {\n return getDeepChanges(obj1, obj2);\n}\nexport function getEnumValues(enumType) {\n return Object.entries(enumType).map(([key, value]) => ({ id: value, title: key }));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi91dGlscy9vYmplY3QtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsY0FBYyxFQUNkLEdBQUcsRUFDSCxPQUFPLEVBQ1AsT0FBTyxFQUNQLE9BQU8sRUFDUCxLQUFLLEVBQ0wsWUFBWSxFQUNaLGFBQWEsRUFDYixLQUFLLEVBQ0wsR0FBRyxFQUNILFNBQVMsRUFDVCxLQUFLLEdBQ04sTUFBTSxXQUFXLENBQUM7QUFFbkIsTUFBTSxVQUFVLDJCQUEyQixDQUFDLEdBQVEsRUFBRSxRQUFnQixFQUFFLE1BQWdCO0lBQ3RGLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztJQUV2QixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUM3QyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMzQixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDM0QsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztB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QUcsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDaEQsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBRUQsdUNBQXVDO1FBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDWCxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDM0IsUUFBUSxFQUFFLEVBQUU7WUFDWixRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCx1Q0FBdUM7QUFDdkMsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFTLEVBQUUsSUFBUztJQUNsRCxPQUFPLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVELHdDQUF3QztBQUN4QyxNQUFNLFVBQVUsa0JBQWtCLENBQUMsSUFBUyxFQUFFLElBQVM7SUFDckQsT0FBTyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFJRCxNQUFNLFVBQVUsYUFBYSxDQUFDLFFBQWE7SUFDekMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQWUsRUFBRSxLQUFLLEVBQUUsR0FBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3pHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBkaWZmZXJlbmNlV2l0aCxcbiAgZ2V0LFxuICBpc0FycmF5LFxuICBpc0VtcHR5LFxuICBpc0VxdWFsLFxuICBpc05pbCxcbiAgaXNPYmplY3RMaWtlLFxuICBpc1BsYWluT2JqZWN0LFxuICBtZXJnZSxcbiAgc2V0LFxuICB0cmFuc2Zvcm0sXG4gIHVuaW9uLFxufSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdE5lc3RlZEZpZWxkc1dpbGRjYXJkKG9iajogYW55LCBiYXNlUGF0aDogc3RyaW5nLCBmaWVsZHM6IHN0cmluZ1tdKTogYW55IHtcbiAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcblxuICBpZiAoZmllbGRzLmxlbmd0aCA9PT0gMSAmJiBmaWVsZHNbMF0gPT09ICcqJykge1xuICAgIGNvbnN0IGZ1bGxPYmogPSBnZXQob2JqLCBiYXNlUGF0aCk7XG4gICAgcmV0dXJuIGlzUGxhaW5PYmplY3QoZnVsbE9iaikgPyBmdWxsT2JqIDoge307XG4gIH1cblxuICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gYmFzZVBhdGggPyBgJHtiYXNlUGF0aH0uJHtmaWVsZH1gIDogZmllbGQ7XG4gICAgY29uc3QgdmFsdWUgPSBnZXQob2JqLCBmdWxsUGF0aCk7XG4gICAgc2V0KHJlc3VsdCwgZmllbGQsIHZhbHVlKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTbWFydChvYmo6IGFueSwgc21hcnRQYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBhbnkge1xuICBjb25zdCBwYXRoUGFydHMgPSBzbWFydFBhdGguc3BsaXQoJy4nKTtcbiAgY29uc3QgbGFzdFBhcnQgPSBwYXRoUGFydHNbcGF0aFBhcnRzLmxlbmd0aCAtIDFdO1xuICBjb25zdCBmaWVsZE1hdGNoID0gbGFzdFBhcnQubWF0Y2goL15cXHsoLispXFx9JC8pO1xuXG4gIGlmICghZmllbGRNYXRjaCkge1xuICAgIHNldChvYmosIHNtYXJ0UGF0aCwgdmFsdWUpO1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICBjb25zdCBmaWVsZHMgPSBmaWVsZE1hdGNoWzFdLnNwbGl0KCcsJykubWFwKChmKSA9PiBmLnRyaW0oKSk7XG4gIGNvbnN0IGJhc2VQYXRoID0gcGF0aFBhcnRzLnNsaWNlKDAsIC0xKS5qb2luKCcuJyk7XG4gIGNvbnN0IFthcnJheUtleSwgLi4ucmVzdFBhdGhdID0gYmFzZVBhdGguc3BsaXQoJy4nKTtcblxuICAvLyBNYWtlIHN1cmUgdGhlIGFycmF5IGV4aXN0c1xuICBpZiAoIW9ialthcnJheUtleV0pIG9ialthcnJheUtleV0gPSBbXTtcblxuICAvLyDwn5+hIENhc2UgQTogdmFsdWUgaXMgYXJyYXkgKG5vcm1hbCBzZXQpXG4gIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSB2YWx1ZVtpXTtcbiAgICAgIGNvbnN0IHRhcmdldEl0ZW0gPSBvYmpbYXJyYXlLZXldW2ldID8/IHt9O1xuICAgICAgY29uc3QgbmVzdGVkID0ge307XG5cbiAgICAgIGlmIChyZXN0UGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHBpY2tlZCA9IGV4dHJhY3ROZXN0ZWRGaWVsZHNXaWxkY2FyZChpdGVtLCByZXN0UGF0aC5qb2luKCcuJyksIGZpZWxkcyk7XG4gICAgICAgIHNldChuZXN0ZWQsIHJlc3RQYXRoLmpvaW4oJy4nKSwgcGlja2VkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHBpY2tlZCA9IGV4dHJhY3ROZXN0ZWRGaWVsZHNXaWxkY2FyZChpdGVtLCAnJywgZmllbGRzKTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXN0ZWQsIHBpY2tlZCk7XG4gICAgICB9XG5cbiAgICAgIG9ialthcnJheUtleV1baV0gPSBtZXJnZSh7fSwgdGFyZ2V0SXRlbSwgbmVzdGVkKTtcbiAgICB9XG4gIH1cblxuICAvLyDwn5+iIENhc2UgQjogdmFsdWUgaXMgYSBzaW5nbGUgdmFsdWUg4oaSIGJyb2FkY2FzdFxuICBlbHNlIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9ialthcnJheUtleV0ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHRhcmdldEl0ZW0gPSBvYmpbYXJyYXlLZXldW2ldID8/IHt9O1xuICAgICAgY29uc3QgbmVzdGVkID0ge307XG5cbiAgICAgIGlmIChyZXN0UGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICAgICAgc2V0KG5lc3RlZCwgYCR7cmVzdFBhdGguam9pbignLicpfS4ke2ZpZWxkfWAsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgICAgICBzZXQobmVzdGVkLCBmaWVsZCwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9ialthcnJheUtleV1baV0gPSBtZXJnZSh7fSwgdGFyZ2V0SXRlbSwgbmVzdGVkKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0RmllbGRzRnJvbVBhdGgob2JqOiBhbnksIGJhc2VQYXRoOiBzdHJpbmcsIGZpZWxkczogc3RyaW5nW10pOiBhbnkge1xuICBpZiAoZmllbGRzLmxlbmd0aCA9PT0gMSAmJiBmaWVsZHNbMF0gPT09ICcqJykge1xuICAgIGNvbnN0IGZ1bGxPYmogPSBiYXNlUGF0aCA/IGdldChvYmosIGJhc2VQYXRoKSA6IG9iajtcbiAgICByZXR1cm4gaXNQbGFpbk9iamVjdChmdWxsT2JqKSA/IGZ1bGxPYmogOiB7fTtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgY29uc3QgZnVsbFBhdGggPSBiYXNlUGF0aCA/IGAke2Jhc2VQYXRofS4ke2ZpZWxkfWAgOiBmaWVsZDtcbiAgICBjb25zdCB2YWwgPSBnZXQob2JqLCBmdWxsUGF0aCk7XG4gICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXN1bHRbZmllbGRdID0gdmFsO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U21hcnQob2JqOiBhbnksIHNtYXJ0UGF0aDogc3RyaW5nKTogYW55IHtcbiAgY29uc3QgcGF0aFBhcnRzID0gc21hcnRQYXRoLnNwbGl0KCcuJyk7XG4gIGNvbnN0IGxhc3RQYXJ0ID0gcGF0aFBhcnRzW3BhdGhQYXJ0cy5sZW5ndGggLSAxXTtcbiAgY29uc3QgZmllbGRNYXRjaCA9IGxhc3RQYXJ0Lm1hdGNoKC9eXFx7KC4rKVxcfSQvKTtcblxuICAvLyBTaW1wbGUgZ2V0IChubyBmaWVsZHMpXG4gIGlmICghZmllbGRNYXRjaCkge1xuICAgIHJldHVybiBnZXQob2JqLCBzbWFydFBhdGgpO1xuICB9XG5cbiAgY29uc3QgZmllbGRzID0gZmllbGRNYXRjaFsxXS5zcGxpdCgnLCcpLm1hcCgoZikgPT4gZi50cmltKCkpO1xuICBjb25zdCBiYXNlUGF0aCA9IHBhdGhQYXJ0cy5zbGljZSgwLCAtMSkuam9pbignLicpO1xuICBjb25zdCBpdGVtcyA9IGdldChvYmosIGJhc2VQYXRoKTtcblxuICBpZiAoIWlzQXJyYXkoaXRlbXMpKSByZXR1cm4gW107XG5cbiAgY29uc3QgbmVzdGVkUGF0aCA9IGJhc2VQYXRoLmluY2x1ZGVzKCcuJykgPyBiYXNlUGF0aC5zcGxpdCgnLicpLnNsaWNlKDEpLmpvaW4oJy4nKSA6ICcnO1xuXG4gIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICByZXR1cm4gZXh0cmFjdEZpZWxkc0Zyb21QYXRoKGl0ZW0sIG5lc3RlZFBhdGgsIGZpZWxkcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFZhbHVlPFQgPSBhbnk+KHZhbHVlOiBhbnksIGtleTogc3RyaW5nID0gJ2lkJyk6IFQgfCBudWxsIHtcbiAgaWYgKGlzTmlsKHZhbHVlKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpID8gZ2V0KHZhbHVlLCBrZXkpIDogdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkRlZXAob2JqOiBhbnkpIHtcbiAgcmV0dXJuIHRyYW5zZm9ybShvYmosIChyZXN1bHQ6IGFueSwgdmFsdWU6IGFueSwga2V5OiBzdHJpbmcpID0+IHtcbiAgICBpZiAoaXNPYmplY3RMaWtlKHZhbHVlKSkge1xuICAgICAgY29uc3QgY2xlYW5lZCA9IGNsZWFuRGVlcCh2YWx1ZSk7XG4gICAgICBpZiAoIWlzRW1wdHkoY2xlYW5lZCkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBjbGVhbmVkO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICAhaXNOaWwodmFsdWUpICYmIC8vIG5vdCBudWxsIG9yIHVuZGVmaW5lZFxuICAgICAgISh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKSA9PT0gJycpICYmIC8vIG5vdCBlbXB0eSBzdHJpbmdcbiAgICAgICEoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSAvLyBub3QgZW1wdHkgYXJyYXlcbiAgICApIHtcbiAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9KTtcbn1cblxudHlwZSBDaGFuZ2VFbnRyeSA9IHtcbiAgcGF0aDogc3RyaW5nO1xuICBvbGRWYWx1ZTogYW55O1xuICBuZXdWYWx1ZTogYW55O1xuICBhcnJheURpZmY/OiB7XG4gICAgYWRkZWQ6IGFueVtdO1xuICAgIHJlbW92ZWQ6IGFueVtdO1xuICB9O1xufTtcblxuZnVuY3Rpb24gZ2V0RGVlcENoYW5nZXMob2JqMTogYW55LCBvYmoyOiBhbnkpOiBDaGFuZ2VFbnRyeVtdIHtcbiAgY29uc3QgY2hhbmdlczogQ2hhbmdlRW50cnlbXSA9IFtdO1xuXG4gIGZ1bmN0aW9uIHdhbGsobzE6IGFueSwgbzI6IGFueSwgY3VycmVudFBhdGg6IHN0cmluZ1tdID0gW10pIHtcbiAgICAvLyBJZiBib3RoIHZhbHVlcyBhcmUgZGVlcGx5IGVxdWFsLCBza2lwXG4gICAgaWYgKGlzRXF1YWwobzEsIG8yKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgaXNPYmoxTmlsID0gbzEgPT09IG51bGwgfHwgbzEgPT09IHVuZGVmaW5lZDtcbiAgICBjb25zdCBpc09iajJOaWwgPSBvMiA9PT0gbnVsbCB8fCBvMiA9PT0gdW5kZWZpbmVkO1xuXG4gICAgLy8gSWYgb2JqMSBpcyBudWxsL3VuZGVmaW5lZCBhbmQgb2JqMiBpcyBub3QsIHRyZWF0IGVudGlyZSBvYmoyIGFzIGFkZGVkXG4gICAgaWYgKGlzT2JqMU5pbCAmJiAhaXNPYmoyTmlsKSB7XG4gICAgICBpZiAoaXNQbGFpbk9iamVjdChvMikpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobzIpKSB7XG4gICAgICAgICAgd2Fsayh1bmRlZmluZWQsIG8yW2tleV0sIFsuLi5jdXJyZW50UGF0aCwga2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShvMikpIHtcbiAgICAgICAgY2hhbmdlcy5wdXNoKHtcbiAgICAgICAgICBwYXRoOiBjdXJyZW50UGF0aC5qb2luKCcuJyksXG4gICAgICAgICAgb2xkVmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBuZXdWYWx1ZTogbzIsXG4gICAgICAgICAgYXJyYXlEaWZmOiB7XG4gICAgICAgICAgICBhZGRlZDogbzIsXG4gICAgICAgICAgICByZW1vdmVkOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICAgICAgcGF0aDogY3VycmVudFBhdGguam9pbignLicpLFxuICAgICAgICAgIG9sZFZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAgICAgbmV3VmFsdWU6IG8yLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJZiBvYmoyIGlzIG51bGwvdW5kZWZpbmVkIGFuZCBvYmoxIGlzIG5vdCwgdHJlYXQgZW50aXJlIG9iajEgYXMgcmVtb3ZlZFxuICAgIGlmICghaXNPYmoxTmlsICYmIGlzT2JqMk5pbCkge1xuICAgICAgaWYgKGlzUGxhaW5PYmplY3QobzEpKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG8xKSkge1xuICAgICAgICAgIHdhbGsobzFba2V5XSwgdW5kZWZpbmVkLCBbLi4uY3VycmVudFBhdGgsIGtleV0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkobzEpKSB7XG4gICAgICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICAgICAgcGF0aDogY3VycmVudFBhdGguam9pbignLicpLFxuICAgICAgICAgIG9sZFZhbHVlOiBvMSxcbiAgICAgICAgICBuZXdWYWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICAgIGFycmF5RGlmZjoge1xuICAgICAgICAgICAgYWRkZWQ6IFtdLFxuICAgICAgICAgICAgcmVtb3ZlZDogbzEsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjaGFuZ2VzLnB1c2goe1xuICAgICAgICAgIHBhdGg6IGN1cnJlbnRQYXRoLmpvaW4oJy4nKSxcbiAgICAgICAgICBvbGRWYWx1ZTogbzEsXG4gICAgICAgICAgbmV3VmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSWYgYm90aCBhcmUgYXJyYXlzLCBjb21wYXJlIGl0ZW1zXG4gICAgaWYgKEFycmF5LmlzQXJyYXkobzEpICYmIEFycmF5LmlzQXJyYXkobzIpKSB7XG4gICAgICBpZiAoIWlzRXF1YWwobzEsIG8yKSkge1xuICAgICAgICBjb25zdCBhZGRlZCA9IGRpZmZlcmVuY2VXaXRoKG8yLCBvMSwgaXNFcXVhbCk7XG4gICAgICAgIGNvbnN0IHJlbW92ZWQgPSBkaWZmZXJlbmNlV2l0aChvMSwgbzIsIGlzRXF1YWwpO1xuXG4gICAgICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICAgICAgcGF0aDogY3VycmVudFBhdGguam9pbignLicpLFxuICAgICAgICAgIG9sZFZhbHVlOiBvMSxcbiAgICAgICAgICBuZXdWYWx1ZTogbzIsXG4gICAgICAgICAgYXJyYXlEaWZmOiB7XG4gICAgICAgICAgICBhZGRlZCxcbiAgICAgICAgICAgIHJlbW92ZWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSWYgYm90aCBhcmUgcGxhaW4gb2JqZWN0cywgd2FsayBlYWNoIGtleVxuICAgIGlmIChpc1BsYWluT2JqZWN0KG8xKSAmJiBpc1BsYWluT2JqZWN0KG8yKSkge1xuICAgICAgY29uc3QgYWxsS2V5cyA9IHVuaW9uKE9iamVjdC5rZXlzKG8xKSwgT2JqZWN0LmtleXMobzIpKTtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIGFsbEtleXMpIHtcbiAgICAgICAgd2FsayhvMVtrZXldLCBvMltrZXldLCBbLi4uY3VycmVudFBhdGgsIGtleV0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFByaW1pdGl2ZSB2YWx1ZXMgb3IgbWlzbWF0Y2hlZCB0eXBlc1xuICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICBwYXRoOiBjdXJyZW50UGF0aC5qb2luKCcuJyksXG4gICAgICBvbGRWYWx1ZTogbzEsXG4gICAgICBuZXdWYWx1ZTogbzIsXG4gICAgfSk7XG4gIH1cblxuICB3YWxrKG9iajEsIG9iajIpO1xuICByZXR1cm4gY2hhbmdlcztcbn1cblxuLy8gTWV0aG9kIDE6IFJldHVybnMgb25seSBjaGFuZ2VkIHBhdGhzXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhbmdlZFBhdGhzKG9iajE6IGFueSwgb2JqMjogYW55KTogc3RyaW5nW10ge1xuICByZXR1cm4gZ2V0RGVlcENoYW5nZXMob2JqMSwgb2JqMikubWFwKChjaGFuZ2UpID0+IGNoYW5nZS5wYXRoKTtcbn1cblxuLy8gTWV0aG9kIDI6IFJldHVybnMgZnVsbCBjaGFuZ2UgZW50cmllc1xuZXhwb3J0IGZ1bmN0aW9uIGdldERldGFpbGVkQ2hhbmdlcyhvYmoxOiBhbnksIG9iajI6IGFueSk6IENoYW5nZUVudHJ5W10ge1xuICByZXR1cm4gZ2V0RGVlcENoYW5nZXMob2JqMSwgb2JqMik7XG59XG5cblxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW51bVZhbHVlcyhlbnVtVHlwZTogYW55KTogeyBpZDogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH1bXSB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhlbnVtVHlwZSkubWFwKChba2V5LCB2YWx1ZV0pID0+ICh7IGlkOiB2YWx1ZSBhcyBzdHJpbmcsIHRpdGxlOiBrZXkgYXMgc3RyaW5nIH0pKTtcbn1cblxuXG5cblxuXG4iXX0=","import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';\nimport { cloneDeep, isEqual } from 'lodash-es';\nimport { computed } from '@angular/core';\nimport { getSmart, setSmart } from '../utils/object-util';\nexport class AXPContextChangeEvent {\n}\nexport const AXPContextStore = signalStore({\n providedIn: 'root',\n}, \n// Initial State\nwithState(() => ({\n data: {}, // Shared context data\n state: 'initiated', // Current state\n initialSnapshot: {}, // Snapshot of the first initialized state\n previousSnapshot: {}, // Snapshot of the previous state\n lastChange: {\n state: 'initiated',\n }, // Last change event\n})), \n// Computed Signals\nwithComputed(({ data, state, lastChange, initialSnapshot, previousSnapshot }) => ({\n isChanged: computed(() => state() === 'changed'),\n isReset: computed(() => state() === 'restored'),\n isInitiated: computed(() => state() === 'initiated'),\n isEmpty: computed(() => Object.keys(data()).length === 0),\n isDirty: computed(() => !isEqual(data(), previousSnapshot())),\n snapshot: computed(() => cloneDeep(data())), // Current data snapshot\n initial: computed(() => cloneDeep(initialSnapshot())), // Initial snapshot\n previous: computed(() => cloneDeep(previousSnapshot())), // Previous snapshot\n changeEvent: computed(() => lastChange()), // Reactive last change event\n})), \n// Methods for State Management\nwithMethods((store) => ({\n // Update a specific value\n update(path, value) {\n const currentData = cloneDeep(store.data());\n const oldValue = getSmart(currentData, path);\n // Skip if the value hasn't changed\n if (isEqual(oldValue, value)) {\n return;\n }\n // Update the value and prepare the change event\n const updatedData = setSmart(currentData, path, value);\n const changeEvent = {\n oldValue,\n newValue: value,\n path,\n state: 'changed',\n data: updatedData,\n };\n // Patch the state\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: updatedData,\n state: 'changed',\n lastChange: changeEvent,\n });\n },\n patch(context) {\n const currentData = cloneDeep(store.data());\n // Update the value and prepare the change event\n const updatedData = { ...currentData, ...context };\n const changeEvent = {\n state: 'patch',\n data: updatedData,\n };\n // Patch the state\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: updatedData,\n state: 'changed',\n lastChange: changeEvent,\n });\n },\n // Reset to the initial state\n reset() {\n const initialData = store.initial();\n const changeEvent = {\n oldValue: cloneDeep(store.data()), // Current data becomes old value\n newValue: cloneDeep(initialData), // Reset to the initial state\n path: '',\n state: 'restored',\n data: initialData,\n };\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: initialData,\n state: 'restored',\n lastChange: changeEvent,\n });\n },\n // Initialize the state\n set(initialData) {\n const currentData = store.data();\n if (isEqual(currentData, initialData)) {\n return; // Skip if the current state matches the initial state\n }\n const changeEvent = {\n oldValue: null,\n newValue: cloneDeep(initialData),\n path: '',\n state: 'initiated',\n data: initialData,\n };\n patchState(store, {\n initialSnapshot: cloneDeep(initialData), // Save the initial state\n previousSnapshot: store.snapshot(), // Save the current state as the previous\n data: initialData,\n state: 'initiated',\n lastChange: changeEvent,\n });\n },\n // Get a specific value\n getValue(path) {\n return getSmart(store.data(), path);\n },\n})));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1zdG9yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvY29udGV4dC9jb250ZXh0LXN0b3JlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBUzFELE1BQU0sT0FBTyxxQkFBcUI7Q0FNakM7QUFFRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUN0QztJQUNJLFVBQVUsRUFBRSxNQUFNO0NBQ3JCO0FBQ0QsZ0JBQWdCO0FBQ2hCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2IsSUFBSSxFQUFFLEVBQW9CLEVBQUUsc0JBQXNCO0lBQ2xELEtBQUssRUFBRSxXQUE4QixFQUFFLGdCQUFnQjtJQUN2RCxlQUFlLEVBQUUsRUFBRSxFQUFFLDBDQUEwQztJQUMvRCxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsaUNBQWlDO0lBQ3ZELFVBQVUsRUFBRTtRQUNSLEtBQUssRUFBRSxXQUFXO0tBQ0ksRUFBRSxvQkFBb0I7Q0FDbkQsQ0FBQyxDQUFDO0FBRUgsbUJBQW1CO0FBQ25CLFlBQVksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUs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V0FBVztTQUMxQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsdUJBQXVCO0lBQ3ZCLFFBQVEsQ0FBQyxJQUFZO1FBQ2pCLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0osQ0FBQyxDQUFDLENBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNpZ25hbFN0b3JlLCB3aXRoU3RhdGUsIHdpdGhDb21wdXRlZCwgd2l0aE1ldGhvZHMsIHBhdGNoU3RhdGUgfSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0U21hcnQsIHNldFNtYXJ0IH0gZnJvbSAnLi4vdXRpbHMvb2JqZWN0LXV0aWwnO1xuXG5cbmV4cG9ydCB0eXBlIEFYUENvbnRleHRTdGF0ZSA9ICdpbml0aWF0ZWQnIHwgJ3Jlc3RvcmVkJyB8ICdjaGFuZ2VkJyB8ICdwYXRjaCc7XG5cbmV4cG9ydCB0eXBlIEFYUENvbnRleHREYXRhID0ge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUENvbnRleHRDaGFuZ2VFdmVudCB7XG4gICAgb2xkVmFsdWU/OiBhbnk7XG4gICAgbmV3VmFsdWU/OiBhbnk7XG4gICAgcGF0aD86IHN0cmluZztcbiAgICBzdGF0ZTogQVhQQ29udGV4dFN0YXRlO1xuICAgIGRhdGE6IGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IEFYUENvbnRleHRTdG9yZSA9IHNpZ25hbFN0b3JlKFxuICAgIHtcbiAgICAgICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIH0sXG4gICAgLy8gSW5pdGlhbCBTdGF0ZVxuICAgIHdpdGhTdGF0ZSgoKSA9PiAoe1xuICAgICAgICBkYXRhOiB7fSBhcyBBWFBDb250ZXh0RGF0YSwgLy8gU2hhcmVkIGNvbnRleHQgZGF0YVxuICAgICAgICBzdGF0ZTogJ2luaXRpYXRlZCcgYXMgQVhQQ29udGV4dFN0YXRlLCAvLyBDdXJyZW50IHN0YXRlXG4gICAgICAgIGluaXRpYWxTbmFwc2hvdDoge30sIC8vIFNuYXBzaG90IG9mIHRoZSBmaXJzdCBpbml0aWFsaXplZCBzdGF0ZVxuICAgICAgICBwcmV2aW91c1NuYXBzaG90OiB7fSwgLy8gU25hcHNob3Qgb2YgdGhlIHByZXZpb3VzIHN0YXRlXG4gICAgICAgIGxhc3RDaGFuZ2U6IHtcbiAgICAgICAgICAgIHN0YXRlOiAnaW5pdGlhdGVkJyxcbiAgICAgICAgfSBhcyBBWFBDb250ZXh0Q2hhbmdlRXZlbnQsIC8vIExhc3QgY2hhbmdlIGV2ZW50XG4gICAgfSkpLFxuXG4gICAgLy8gQ29tcHV0ZWQgU2lnbmFsc1xuICAgIHdpdGhDb21wdXRlZCgoeyBkYXRhLCBzdGF0ZSwgbGFzdENoYW5nZSwgaW5pdGlhbFNuYXBzaG90LCBwcmV2aW91c1NuYXBzaG90IH0pID0+ICh7XG4gICAgICAgIGlzQ2hhbmdlZDogY29tcHV0ZWQoKCkgPT4gc3RhdGUoKSA9PT0gJ2NoYW5nZWQnKSxcbiAgICAgICAgaXNSZXNldDogY29tcHV0ZWQoKCkgPT4gc3RhdGUoKSA9PT0gJ3Jlc3RvcmVkJyksXG4gICAgICAgIGlzSW5pdGlhdGVkOiBjb21wdXRlZCgoKSA9PiBzdGF0ZSgpID09PSAnaW5pdGlhdGVkJyksXG4gICAgICAgIGlzRW1wdHk6IGNvbXB1dGVkKCgpID0+IE9iamVjdC5rZXlzKGRhdGEoKSkubGVuZ3RoID09PSAwKSxcbiAgICAgICAgaXNEaXJ0eTogY29tcHV0ZWQoKCkgPT4gIWlzRXF1YWwoZGF0YSgpLCBwcmV2aW91c1NuYXBzaG90KCkpKSwgXG4gICAgICAgIHNuYXBzaG90OiBjb21wdXRlZCgoKSA9PiBjbG9uZURlZXAoZGF0YSgpKSksIC8vIEN1cnJlbnQgZGF0YSBzbmFwc2hvdFxuICAgICAgICBpbml0aWFsOiBjb21wdXRlZCgoKSA9PiBjbG9uZURlZXAoaW5pdGlhbFNuYXBzaG90KCkpKSwgLy8gSW5pdGlhbCBzbmFwc2hvdFxuICAgICAgICBwcmV2aW91czogY29tcHV0ZWQoKCkgPT4gY2xvbmVEZWVwKHByZXZpb3VzU25hcHNob3QoKSkpLCAvLyBQcmV2aW91cyBzbmFwc2hvdFxuICAgICAgICBjaGFuZ2VFdmVudDogY29tcHV0ZWQoKCkgPT4gbGFzdENoYW5nZSgpKSwgLy8gUmVhY3RpdmUgbGFzdCBjaGFuZ2UgZXZlbnRcbiAgICB9KSksXG5cbiAgICAvLyBNZXRob2RzIGZvciBTdGF0ZSBNYW5hZ2VtZW50XG4gICAgd2l0aE1ldGhvZHMoKHN0b3JlKSA9PiAoe1xuICAgICAgICAvLyBVcGRhdGUgYSBzcGVjaWZpYyB2YWx1ZVxuICAgICAgICB1cGRhdGUocGF0aDogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0YSA9IGNsb25lRGVlcChzdG9yZS5kYXRhKCkpO1xuICAgICAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSBnZXRTbWFydChjdXJyZW50RGF0YSwgcGF0aCk7XG5cbiAgICAgICAgICAgIC8vIFNraXAgaWYgdGhlIHZhbHVlIGhhc24ndCBjaGFuZ2VkXG4gICAgICAgICAgICBpZiAoaXNFcXVhbChvbGRWYWx1ZSwgdmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBVcGRhdGUgdGhlIHZhbHVlIGFuZCBwcmVwYXJlIHRoZSBjaGFuZ2UgZXZlbnRcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0gc2V0U21hcnQoY3VycmVudERhdGEsIHBhdGgsIHZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZUV2ZW50OiBBWFBDb250ZXh0Q2hhbmdlRXZlbnQgPSB7XG4gICAgICAgICAgICAgICAgb2xkVmFsdWUsXG4gICAgICAgICAgICAgICAgbmV3VmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdjaGFuZ2VkJyxcbiAgICAgICAgICAgICAgICBkYXRhOiB1cGRhdGVkRGF0YSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8vIFBhdGNoIHRoZSBzdGF0ZVxuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgIHByZXZpb3VzU25hcHNob3Q6IHN0b3JlLnNuYXBzaG90KCksIC8vIFNhdmUgdGhlIHByZXZpb3VzIHN0YXRlXG4gICAgICAgICAgICAgICAgZGF0YTogdXBkYXRlZERhdGEsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdjaGFuZ2VkJyxcbiAgICAgICAgICAgICAgICBsYXN0Q2hhbmdlOiBjaGFuZ2VFdmVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIHBhdGNoKGNvbnRleHQ6IHt9KSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0YSA9IGNsb25lRGVlcChzdG9yZS5kYXRhKCkpO1xuICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSB2YWx1ZSBhbmQgcHJlcGFyZSB0aGUgY2hhbmdlIGV2ZW50XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IHsgLi4uY3VycmVudERhdGEsIC4uLmNvbnRleHQgfTtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZUV2ZW50OiBBWFBDb250ZXh0Q2hhbmdlRXZlbnQgPSB7XG4gICAgICAgICAgICAgICAgc3RhdGU6ICdwYXRjaCcsXG4gICAgICAgICAgICAgICAgZGF0YTogdXBkYXRlZERhdGEsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAvLyBQYXRjaCB0aGUgc3RhdGVcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICBwcmV2aW91c1NuYXBzaG90OiBzdG9yZS5zbmFwc2hvdCgpLCAvLyBTYXZlIHRoZSBwcmV2aW91cyBzdGF0ZVxuICAgICAgICAgICAgICAgIGRhdGE6IHVwZGF0ZWREYXRhLFxuICAgICAgICAgICAgICAgIHN0YXRlOiAnY2hhbmdlZCcsXG4gICAgICAgICAgICAgICAgbGFzdENoYW5nZTogY2hhbmdlRXZlbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICAvLyBSZXNldCB0byB0aGUgaW5pdGlhbCBzdGF0ZVxuICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgIGNvbnN0IGluaXRpYWxEYXRhID0gc3RvcmUuaW5pdGlhbCgpO1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlRXZlbnQ6IEFYUENvbnRleHRDaGFuZ2VFdmVudCA9IHtcbiAgICAgICAgICAgICAgICBvbGRWYWx1ZTogY2xvbmVEZWVwKHN0b3JlLmRhdGEoKSksIC8vIEN1cnJlbnQgZGF0YSBiZWNvbWVzIG9sZCB2YWx1ZVxuICAgICAgICAgICAgICAgIG5ld1ZhbHVlOiBjbG9uZURlZXAoaW5pdGlhbERhdGEpLCAvLyBSZXNldCB0byB0aGUgaW5pdGlhbCBzdGF0ZVxuICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgICAgIHN0YXRlOiAncmVzdG9yZWQnLFxuICAgICAgICAgICAgICAgIGRhdGE6IGluaXRpYWxEYXRhLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgIHByZXZpb3VzU25hcHNob3Q6IHN0b3JlLnNuYXBzaG90KCksIC8vIFNhdmUgdGhlIHByZXZpb3VzIHN0YXRlXG4gICAgICAgICAgICAgICAgZGF0YTogaW5pdGlhbERhdGEsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdyZXN0b3JlZCcsXG4gICAgICAgICAgICAgICAgbGFzdENoYW5nZTogY2hhbmdlRXZlbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICAvLyBJbml0aWFsaXplIHRoZSBzdGF0ZVxuICAgICAgICBzZXQoaW5pdGlhbERhdGE6IGFueSkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudERhdGEgPSBzdG9yZS5kYXRhKCk7XG4gICAgICAgICAgICBpZiAoaXNFcXVhbChjdXJyZW50RGF0YSwgaW5pdGlhbERhdGEpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBTa2lwIGlmIHRoZSBjdXJyZW50IHN0YXRlIG1hdGNoZXMgdGhlIGluaXRpYWwgc3RhdGVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY2hhbmdlRXZlbnQ6IEFYUENvbnRleHRDaGFuZ2VFdmVudCA9IHtcbiAgICAgICAgICAgICAgICBvbGRWYWx1ZTogbnVsbCxcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZTogY2xvbmVEZWVwKGluaXRpYWxEYXRhKSxcbiAgICAgICAgICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ2luaXRpYXRlZCcsXG4gICAgICAgICAgICAgICAgZGF0YTogaW5pdGlhbERhdGEsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgaW5pdGlhbFNuYXBzaG90OiBjbG9uZURlZXAoaW5pdGlhbERhdGEpLCAvLyBTYXZlIHRoZSBpbml0aWFsIHN0YXRlXG4gICAgICAgICAgICAgICAgcHJldmlvdXNTbmFwc2hvdDogc3RvcmUuc25hcHNob3QoKSwgLy8gU2F2ZSB0aGUgY3VycmVudCBzdGF0ZSBhcyB0aGUgcHJldmlvdXNcbiAgICAgICAgICAgICAgICBkYXRhOiBpbml0aWFsRGF0YSxcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ2luaXRpYXRlZCcsXG4gICAgICAgICAgICAgICAgbGFzdENoYW5nZTogY2hhbmdlRXZlbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgLy8gR2V0IGEgc3BlY2lmaWMgdmFsdWVcbiAgICAgICAgZ2V0VmFsdWUocGF0aDogc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0U21hcnQoc3RvcmUuZGF0YSgpLCBwYXRoKTtcbiAgICAgICAgfSxcbiAgICB9KSlcbik7XG4iXX0=","export class AXPDataGenerator {\n static uuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (char) => {\n const random = (Math.random() * 16) | 0;\n const value = char === 'x' ? random : (random & 0x3) | 0x8;\n return value.toString(16);\n });\n }\n static number(...args) {\n let min = 0;\n let max = 100;\n if (args.length == 1)\n max = args[0];\n if (args.length == 2) {\n min = args[0];\n max = args[1];\n }\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n static date(...args) {\n let start = new Date(2000, 0, 1);\n let end = new Date();\n if (args.length === 1) {\n start = args[0];\n }\n else if (args.length === 2) {\n start = args[0];\n end = args[1];\n }\n const startTime = start.getTime();\n const endTime = end.getTime();\n return new Date(startTime + Math.random() * (endTime - startTime));\n }\n static array(length = 5, generator) {\n return Array.from({ length }, generator);\n }\n static pick(...args) {\n if (args.length < 1) {\n throw new Error('Invalid parameters');\n }\n const items = args[0];\n const count = args[1] ?? 1;\n if (count < 1) {\n throw new Error('Count must be at least 1');\n }\n // If the count is greater than the number of items, just return a shuffled copy of the array\n if (count >= items.length) {\n return [...items].sort(() => Math.random() - 0.5);\n }\n // Shuffle the array and slice the first 'count' elements\n const shuffled = items.slice();\n for (let i = shuffled.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]]; // Swap elements\n }\n return count == 1 ? shuffled.slice(0, count)[0] : shuffled.slice(0, count);\n }\n static string(length = 10) {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n static boolean() {\n return Math.random() >= 0.5;\n }\n static item(array = []) {\n return array.length > 0 ? array[Math.floor(Math.random() * array.length)] : undefined;\n }\n static color(format = 'hex') {\n // Generate HSL values with safe ranges for good contrast\n const h = Math.floor(Math.random() * 360);\n const s = Math.floor(Math.random() * 20) + 60; // 60% - 80%\n const l = Math.floor(Math.random() * 20) + 40; // 40% - 60%\n if (format === 'hsl') {\n return `hsl(${h}, ${s}%, ${l}%)`;\n }\n // Convert HSL to RGB\n const { r, g, b } = this.hslToRgb(h, s / 100, l / 100);\n if (format === 'rgb') {\n return `rgb(${r}, ${g}, ${b})`;\n }\n // Convert RGB to HEX\n const toHex = (val) => val.toString(16).padStart(2, '0');\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n }\n //TODO: move or read from utils\n static hslToRgb(h, s, l) {\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs((h / 60) % 2 - 1));\n const m = l - c / 2;\n let r = 0, g = 0, b = 0;\n if (h < 60)\n [r, g, b] = [c, x, 0];\n else if (h < 120)\n [r, g, b] = [x, c, 0];\n else if (h < 180)\n [r, g, b] = [0, c, x];\n else if (h < 240)\n [r, g, b] = [0, x, c];\n else if (h < 300)\n [r, g, b] = [x, 0, c];\n else\n [r, g, b] = [c, 0, x];\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255)\n };\n }\n static alphanumeric(length = 10) {\n const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n static alphabet(length = 10) {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n static phone() {\n const areaCode = this.number(100, 999);\n const exchangeCode = this.number(100, 999);\n const lineNumber = this.number(1000, 9999);\n return `${areaCode}-${exchangeCode}-${lineNumber}`;\n }\n static firstName() {\n const firstNames = ['John', 'Allen', 'Jak', 'Rose', 'Kate', 'Liam', 'Olivia', 'Noah', 'Emma', 'Ava'];\n return this.pick(firstNames);\n }\n static lastName() {\n const lastNames = ['Gates', 'Jonsen', 'Smith', 'Ford', 'Jakson', 'Brown', 'Johnson', 'Williams', 'Jones', 'Garcia'];\n return this.pick(lastNames);\n }\n static email(...args) {\n const domains = ['gmail.com', 'yahoo.com', 'outlook.com', 'example.com'];\n const domain = this.pick(domains);\n const separator = this.pick(['.', '_', '']);\n const randomSuffix = this.boolean() ? this.number(1, 99).toString() : '';\n if (args.length === 2) {\n const firstName = args[0].toLowerCase();\n const lastName = args[1].toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n }\n else {\n const firstName = this.firstName().toLowerCase();\n const lastName = this.lastName().toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n }\n }\n static country() {\n const countries = ['USA', 'Canada', 'Mexico', 'Germany', 'France', 'Japan', 'Australia'];\n return this.pick(countries);\n }\n static city() {\n const cities = ['Los Angeles', 'Toronto', 'Vancouver', 'Berlin', 'Paris', 'Tokyo', 'Sydney'];\n return this.pick(cities);\n }\n static state() {\n const states = ['NY', 'CA', 'TX', 'ON', 'BC', 'NSW', 'BER', 'IDF', 'TYO'];\n return this.pick(states);\n }\n static address() {\n const streets = ['Main St', 'High St', 'Maple Ave', 'Oak St', 'Pine St', 'Cedar St'];\n const streetNumber = this.number(100, 9999);\n const street = this.pick(streets);\n const city = this.city();\n const state = this.state();\n const zip = this.number(10000, 99999);\n const country = this.country();\n return `${streetNumber} ${street}, ${city}, ${state} ${zip}, ${country}`;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9kYXRhL2RhdGEtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsTUFBTSxDQUFDLElBQUk7UUFDVCxPQUFPLHNDQUFzQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0RSxNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDM0QsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFjO1FBQzdCLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNaLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckIsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNkLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FB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QUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPO1FBQ1osTUFBTSxPQUFPLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsT0FBTyxHQUFHLFlBQVksSUFBSSxNQUFNLEtBQUssSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLEtBQUssT0FBTyxFQUFFLENBQUM7SUFDM0UsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgY2xhc3MgQVhQRGF0YUdlbmVyYXRvciB7XG4gIHN0YXRpYyB1dWlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICd4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgKGNoYXIpID0+IHtcbiAgICAgIGNvbnN0IHJhbmRvbSA9IChNYXRoLnJhbmRvbSgpICogMTYpIHwgMDtcbiAgICAgIGNvbnN0IHZhbHVlID0gY2hhciA9PT0gJ3gnID8gcmFuZG9tIDogKHJhbmRvbSAmIDB4MykgfCAweDg7XG4gICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoMTYpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIG51bWJlcihtYXg6IG51bWJlcik6IG51bWJlcjtcbiAgc3RhdGljIG51bWJlcihtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXI7XG4gIHN0YXRpYyBudW1iZXIoLi4uYXJnczogbnVtYmVyW10pOiBudW1iZXIge1xuICAgIGxldCBtaW4gPSAwO1xuICAgIGxldCBtYXggPSAxMDA7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID09IDEpIG1heCA9IGFyZ3NbMF07XG4gICAgaWYgKGFyZ3MubGVuZ3RoID09IDIpIHtcbiAgICAgIG1pbiA9IGFyZ3NbMF07XG4gICAgICBtYXggPSBhcmdzWzFdO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKG1heCAtIG1pbiArIDEpKSArIG1pbjtcbiAgfVxuXG4gIHN0YXRpYyBkYXRlKCk6IERhdGU7XG4gIHN0YXRpYyBkYXRlKHN0YXJ0OiBEYXRlKTogRGF0ZTtcbiAgc3RhdGljIGRhdGUoc3RhcnQ6IERhdGUsIGVuZDogRGF0ZSk6IERhdGU7XG4gIHN0YXRpYyBkYXRlKC4uLmFyZ3M6IGFueVtdKTogRGF0ZSB7XG4gICAgbGV0IHN0YXJ0ID0gbmV3IERhdGUoMjAwMCwgMCwgMSk7XG4gICAgbGV0IGVuZCA9IG5ldyBEYXRlKCk7XG5cbiAgICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHN0YXJ0ID0gYXJnc1swXTtcbiAgICB9IGVsc2UgaWYgKGFyZ3MubGVuZ3RoID09PSAyKSB7XG4gICAgICBzdGFydCA9IGFyZ3NbMF07XG4gICAgICBlbmQgPSBhcmdzWzFdO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0VGltZSA9IHN0YXJ0LmdldFRpbWUoKTtcbiAgICBjb25zdCBlbmRUaW1lID0gZW5kLmdldFRpbWUoKTtcbiAgICByZXR1cm4gbmV3IERhdGUoc3RhcnRUaW1lICsgTWF0aC5yYW5kb20oKSAqIChlbmRUaW1lIC0gc3RhcnRUaW1lKSk7XG4gIH1cblxuICBzdGF0aWMgYXJyYXk8VD4obGVuZ3RoOiBudW1iZXIgPSA1LCBnZW5lcmF0b3I6ICgpID0+IFQpOiBUW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoIH0sIGdlbmVyYXRvcik7XG4gIH1cblxuICBzdGF0aWMgcGljazxUPihpdGVtczogVFtdKTogVDtcbiAgc3RhdGljIHBpY2s8VD4oaXRlbXM6IFRbXSwgY291bnQ6IG51bWJlcik6IFRbXTtcbiAgc3RhdGljIHBpY2s8VD4oLi4uYXJnczogYW55W10pOiBUIHwgVFtdIHtcbiAgICBpZiAoYXJncy5sZW5ndGggPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcGFyYW1ldGVycycpO1xuICAgIH1cbiAgICBjb25zdCBpdGVtczogVFtdID0gYXJnc1swXTtcbiAgICBjb25zdCBjb3VudDogbnVtYmVyID0gYXJnc1sxXSA/PyAxO1xuICAgIGlmIChjb3VudCA8IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ291bnQgbXVzdCBiZSBhdCBsZWFzdCAxJyk7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGNvdW50IGlzIGdyZWF0ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGl0ZW1zLCBqdXN0IHJldHVybiBhIHNodWZmbGVkIGNvcHkgb2YgdGhlIGFycmF5XG4gICAgaWYgKGNvdW50ID49IGl0ZW1zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIFsuLi5pdGVtc10uc29ydCgoKSA9PiBNYXRoLnJhbmRvbSgpIC0gMC41KTtcbiAgICB9XG5cbiAgICAvLyBTaHVmZmxlIHRoZSBhcnJheSBhbmQgc2xpY2UgdGhlIGZpcnN0ICdjb3VudCcgZWxlbWVudHNcbiAgICBjb25zdCBzaHVmZmxlZCA9IGl0ZW1zLnNsaWNlKCk7XG4gICAgZm9yIChsZXQgaSA9IHNodWZmbGVkLmxlbmd0aCAtIDE7IGkgPiAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IGogPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAoaSArIDEpKTtcbiAgICAgIFtzaHVmZmxlZFtpXSwgc2h1ZmZsZWRbal1dID0gW3NodWZmbGVkW2pdLCBzaHVmZmxlZFtpXV07IC8vIFN3YXAgZWxlbWVudHNcbiAgICB9XG4gICAgcmV0dXJuIGNvdW50ID09IDEgPyBzaHVmZmxlZC5zbGljZSgwLCBjb3VudClbMF0gOiBzaHVmZmxlZC5zbGljZSgwLCBjb3VudCk7XG4gIH1cblxuICBzdGF0aWMgc3RyaW5nKGxlbmd0aDogbnVtYmVyID0gMTApOiBzdHJpbmcge1xuICAgIGNvbnN0IGNoYXJzID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JztcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9LCAoKSA9PiBjaGFycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcnMubGVuZ3RoKSkpLmpvaW4oJycpO1xuICB9XG5cbiAgc3RhdGljIGJvb2xlYW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgPj0gMC41O1xuICB9XG5cbiAgc3RhdGljIGl0ZW08VD4oYXJyYXk6IFRbXSA9IFtdKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGFycmF5Lmxlbmd0aCA+IDAgPyBhcnJheVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBhcnJheS5sZW5ndGgpXSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyBjb2xvcihmb3JtYXQ6ICdoc2wnIHwgJ3JnYicgfCAnaGV4JyA9ICdoZXgnKTogc3RyaW5nIHtcbiAgICAvLyBHZW5lcmF0ZSBIU0wgdmFsdWVzIHdpdGggc2FmZSByYW5nZXMgZm9yIGdvb2QgY29udHJhc3RcbiAgICBjb25zdCBoID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMzYwKTtcbiAgICBjb25zdCBzID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjApICsgNjA7IC8vIDYwJSAtIDgwJVxuICAgIGNvbnN0IGwgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyMCkgKyA0MDsgLy8gNDAlIC0gNjAlXG5cbiAgICBpZiAoZm9ybWF0ID09PSAnaHNsJykge1xuICAgICAgcmV0dXJuIGBoc2woJHtofSwgJHtzfSUsICR7bH0lKWA7XG4gICAgfVxuXG4gICAgLy8gQ29udmVydCBIU0wgdG8gUkdCXG4gICAgY29uc3QgeyByLCBnLCBiIH0gPSB0aGlzLmhzbFRvUmdiKGgsIHMgLyAxMDAsIGwgLyAxMDApO1xuXG4gICAgaWYgKGZvcm1hdCA9PT0gJ3JnYicpIHtcbiAgICAgIHJldHVybiBgcmdiKCR7cn0sICR7Z30sICR7Yn0pYDtcbiAgICB9XG5cbiAgICAvLyBDb252ZXJ0IFJHQiB0byBIRVhcbiAgICBjb25zdCB0b0hleCA9ICh2YWw6IG51bWJlcikgPT4gdmFsLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIHJldHVybiBgIyR7dG9IZXgocil9JHt0b0hleChnKX0ke3RvSGV4KGIpfWA7XG4gIH1cblxuICAvL1RPRE86IG1vdmUgb3IgcmVhZCBmcm9tIHV0aWxzXG4gIHByaXZhdGUgc3RhdGljIGhzbFRvUmdiKGg6IG51bWJlciwgczogbnVtYmVyLCBsOiBudW1iZXIpOiB7IHI6IG51bWJlcjsgZzogbnVtYmVyOyBiOiBudW1iZXIgfSB7XG4gICAgY29uc3QgYyA9ICgxIC0gTWF0aC5hYnMoMiAqIGwgLSAxKSkgKiBzO1xuICAgIGNvbnN0IHggPSBjICogKDEgLSBNYXRoLmFicygoaCAvIDYwKSAlIDIgLSAxKSk7XG4gICAgY29uc3QgbSA9IGwgLSBjIC8gMjtcbiAgICBsZXQgciA9IDAsIGcgPSAwLCBiID0gMDtcblxuICAgIGlmIChoIDwgNjApIFtyLCBnLCBiXSA9IFtjLCB4LCAwXTtcbiAgICBlbHNlIGlmIChoIDwgMTIwKSBbciwgZywgYl0gPSBbeCwgYywgMF07XG4gICAgZWxzZSBpZiAoaCA8IDE4MCkgW3IsIGcsIGJdID0gWzAsIGMsIHhdO1xuICAgIGVsc2UgaWYgKGggPCAyNDApIFtyLCBnLCBiXSA9IFswLCB4LCBjXTtcbiAgICBlbHNlIGlmIChoIDwgMzAwKSBbciwgZywgYl0gPSBbeCwgMCwgY107XG4gICAgZWxzZVtyLCBnLCBiXSA9IFtjLCAwLCB4XTtcblxuICAgIHJldHVybiB7XG4gICAgICByOiBNYXRoLnJvdW5kKChyICsgbSkgKiAyNTUpLFxuICAgICAgZzogTWF0aC5yb3VuZCgoZyArIG0pICogMjU1KSxcbiAgICAgIGI6IE1hdGgucm91bmQoKGIgKyBtKSAqIDI1NSlcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGFscGhhbnVtZXJpYyhsZW5ndGg6IG51bWJlciA9IDEwKTogc3RyaW5nIHtcbiAgICBjb25zdCBjaGFycyA9ICcwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eic7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGggfSwgKCkgPT4gY2hhcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJzLmxlbmd0aCkpKS5qb2luKCcnKTtcbiAgfVxuICBzdGF0aWMgYWxwaGFiZXQobGVuZ3RoOiBudW1iZXIgPSAxMCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2hhcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eic7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGggfSwgKCkgPT4gY2hhcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJzLmxlbmd0aCkpKS5qb2luKCcnKTtcbiAgfVxuXG4gIHN0YXRpYyBwaG9uZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFyZWFDb2RlID0gdGhpcy5udW1iZXIoMTAwLCA5OTkpO1xuICAgIGNvbnN0IGV4Y2hhbmdlQ29kZSA9IHRoaXMubnVtYmVyKDEwMCwgOTk5KTtcbiAgICBjb25zdCBsaW5lTnVtYmVyID0gdGhpcy5udW1iZXIoMTAwMCwgOTk5OSk7XG4gICAgcmV0dXJuIGAke2FyZWFDb2RlfS0ke2V4Y2hhbmdlQ29kZX0tJHtsaW5lTnVtYmVyfWA7XG4gIH1cblxuICBzdGF0aWMgZmlyc3ROYW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZmlyc3ROYW1lcyA9IFsnSm9obicsICdBbGxlbicsICdKYWsnLCAnUm9zZScsICdLYXRlJywgJ0xpYW0nLCAnT2xpdmlhJywgJ05vYWgnLCAnRW1tYScsICdBdmEnXTtcbiAgICByZXR1cm4gdGhpcy5waWNrKGZpcnN0TmFtZXMpO1xuICB9XG5cbiAgc3RhdGljIGxhc3ROYW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbGFzdE5hbWVzID0gWydHYXRlcycsICdKb25zZW4nLCAnU21pdGgnLCAnRm9yZCcsICdKYWtzb24nLCAnQnJvd24nLCAnSm9obnNvbicsICdXaWxsaWFtcycsICdKb25lcycsICdHYXJjaWEnXTtcbiAgICByZXR1cm4gdGhpcy5waWNrKGxhc3ROYW1lcyk7XG4gIH1cblxuICBzdGF0aWMgZW1haWwoKTogc3RyaW5nO1xuICBzdGF0aWMgZW1haWwoZmlyc3ROYW1lOiBzdHJpbmcsIGxhc3ROYW1lOiBzdHJpbmcpOiBzdHJpbmc7XG4gIHN0YXRpYyBlbWFpbCguLi5hcmdzOiBhbnlbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgZG9tYWlucyA9IFsnZ21haWwuY29tJywgJ3lhaG9vLmNvbScsICdvdXRsb29rLmNvbScsICdleGFtcGxlLmNvbSddO1xuICAgIGNvbnN0IGRvbWFpbiA9IHRoaXMucGljayhkb21haW5zKTtcbiAgICBjb25zdCBzZXBhcmF0b3IgPSB0aGlzLnBpY2soWycuJywgJ18nLCAnJ10pO1xuICAgIGNvbnN0IHJhbmRvbVN1ZmZpeCA9IHRoaXMuYm9vbGVhbigpID8gdGhpcy5udW1iZXIoMSwgOTkpLnRvU3RyaW5nKCkgOiAnJztcblxuICAgIGlmIChhcmdzLmxlbmd0aCA9PT0gMikge1xuICAgICAgY29uc3QgZmlyc3ROYW1lID0gYXJnc1swXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgY29uc3QgbGFzdE5hbWUgPSBhcmdzWzFdLnRvTG93ZXJDYXNlKCk7XG4gICAgICByZXR1cm4gYCR7Zmlyc3ROYW1lfSR7c2VwYXJhdG9yfSR7bGFzdE5hbWV9JHtyYW5kb21TdWZmaXh9QCR7ZG9tYWlufWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZpcnN0TmFtZSA9IHRoaXMuZmlyc3ROYW1lKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IGxhc3ROYW1lID0gdGhpcy5sYXN0TmFtZSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICByZXR1cm4gYCR7Zmlyc3ROYW1lfSR7c2VwYXJhdG9yfSR7bGFzdE5hbWV9JHtyYW5kb21TdWZmaXh9QCR7ZG9tYWlufWA7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGNvdW50cnkoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb3VudHJpZXMgPSBbJ1VTQScsICdDYW5hZGEnLCAnTWV4aWNvJywgJ0dlcm1hbnknLCAnRnJhbmNlJywgJ0phcGFuJywgJ0F1c3RyYWxpYSddO1xuICAgIHJldHVybiB0aGlzLnBpY2soY291bnRyaWVzKTtcbiAgfVxuXG4gIHN0YXRpYyBjaXR5KCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2l0aWVzID0gWydMb3MgQW5nZWxlcycsICdUb3JvbnRvJywgJ1ZhbmNvdXZlcicsICdCZXJsaW4nLCAnUGFyaXMnLCAnVG9reW8nLCAnU3lkbmV5J107XG4gICAgcmV0dXJuIHRoaXMucGljayhjaXRpZXMpO1xuICB9XG5cbiAgc3RhdGljIHN0YXRlKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RhdGVzID0gWydOWScsICdDQScsICdUWCcsICdPTicsICdCQycsICdOU1cnLCAnQkVSJywgJ0lERicsICdUWU8nXTtcbiAgICByZXR1cm4gdGhpcy5waWNrKHN0YXRlcyk7XG4gIH1cblxuICBzdGF0aWMgYWRkcmVzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0cmVldHMgPSBbJ01haW4gU3QnLCAnSGlnaCBTdCcsICdNYXBsZSBBdmUnLCAnT2FrIFN0JywgJ1BpbmUgU3QnLCAnQ2VkYXIgU3QnXTtcbiAgICBjb25zdCBzdHJlZXROdW1iZXIgPSB0aGlzLm51bWJlcigxMDAsIDk5OTkpO1xuICAgIGNvbnN0IHN0cmVldCA9IHRoaXMucGljayhzdHJlZXRzKTtcbiAgICBjb25zdCBjaXR5ID0gdGhpcy5jaXR5KCk7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlKCk7XG4gICAgY29uc3QgemlwID0gdGhpcy5udW1iZXIoMTAwMDAsIDk5OTk5KTtcbiAgICBjb25zdCBjb3VudHJ5ID0gdGhpcy5jb3VudHJ5KCk7XG4gICAgcmV0dXJuIGAke3N0cmVldE51bWJlcn0gJHtzdHJlZXR9LCAke2NpdHl9LCAke3N0YXRlfSAke3ppcH0sICR7Y291bnRyeX1gO1xuICB9XG59XG4iXX0=","import { extractValue } from \"../utils/object-util\";\nexport function objectKeyValueTransforms(keyName) {\n return {\n getter: (value) => {\n return extractValue(value, keyName);\n },\n setter: (value) => {\n return extractValue(value, keyName);\n },\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtdHJhbnNmb3JtZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9kYXRhL3ZhbHVlLXRyYW5zZm9ybWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVFwRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsT0FBZTtJQUNwRCxPQUFPO1FBQ0gsTUFBTSxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDbkIsT0FBTyxZQUFZLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxNQUFNLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNuQixPQUFPLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEMsQ0FBQztLQUNKLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0cmFjdFZhbHVlIH0gZnJvbSBcIi4uL3V0aWxzL29iamVjdC11dGlsXCI7XG5leHBvcnQgdHlwZSBBWFBWYWx1ZVRyYW5zZm9ybWVyRnVuY3Rpb24gPSAodmFsdWU6IGFueSkgPT4gYW55O1xuXG5leHBvcnQgdHlwZSBBWFBWYWx1ZVRyYW5zZm9ybWVyRnVuY3Rpb25zID0ge1xuICAgIGdldHRlcj86IEFYUFZhbHVlVHJhbnNmb3JtZXJGdW5jdGlvbjtcbiAgICBzZXR0ZXI/OiBBWFBWYWx1ZVRyYW5zZm9ybWVyRnVuY3Rpb247XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gb2JqZWN0S2V5VmFsdWVUcmFuc2Zvcm1zKGtleU5hbWU6IHN0cmluZyk6IEFYUFZhbHVlVHJhbnNmb3JtZXJGdW5jdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICAgIGdldHRlcjogKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBleHRyYWN0VmFsdWUodmFsdWUsIGtleU5hbWUpO1xuICAgICAgICB9LFxuICAgICAgICBzZXR0ZXI6ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZXh0cmFjdFZhbHVlKHZhbHVlLCBrZXlOYW1lKTtcbiAgICAgICAgfSxcbiAgICB9O1xufSJdfQ==","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { set } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport const AXP_DATASOURCE_DEFINITION_PROVIDER = new InjectionToken('AXP_DATASOURCE_TYPE_PROVIDER');\nexport class AXPDataSourceDefinitionProviderService {\n constructor() {\n this.providers = inject(AXP_DATASOURCE_DEFINITION_PROVIDER, { optional: true });\n }\n async items() {\n const items = [];\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n set(provider, '__parent__', this);\n items.push(...(await provider.items()));\n }\n }\n return items;\n }\n async get(name) {\n return (await this.items()).find((c) => c.name == name);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDataSourceDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDataSourceDefinitionProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDataSourceDefinitionProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS1kZWZpbml0aW9uLXByb3ZpZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9kYXRhL2RhdGFzb3VyY2UtZGVmaW5pdGlvbi1wcm92aWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQStCaEMsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsSUFBSSxjQUFjLENBQ2xFLDhCQUE4QixDQUMvQixDQUFDO0FBR0YsTUFBTSxPQUFPLHNDQUFzQztJQURuRDtRQUVVLGNBQVMsR0FBRyxNQUFNLENBQUMsa0NBQWtDLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQWdCcEY7SUFkQyxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sS0FBSyxHQUE4QixFQUFFLENBQUM7UUFDNUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2xDLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN0QyxHQUFHLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDbEMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFZO1FBQ3BCLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDOzhHQWhCVSxzQ0FBc0M7a0hBQXRDLHNDQUFzQyxjQUR6QixNQUFNOzsyRkFDbkIsc0NBQXNDO2tCQURsRCxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGF0YVNvdXJjZSB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBGaWx0ZXJEZWZpbml0aW9uLCBBWFBPcHRpb25zRGF0YSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGF0YVNvdXJjZURhdGFGaWVsZERlZmluaXRpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRhdGF0eXBlOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgb3B0aW9ucz86IEFYUE9wdGlvbnNEYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERhdGFTb3VyY2VEZWZpbml0aW9uPFQgPSBhbnk+IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB2YWx1ZUZpZWxkPzoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICB9O1xuICB0ZXh0RmllbGQ/OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gIH07XG4gIGNvbHVtbnM6IEFYUERhdGFTb3VyY2VEYXRhRmllbGREZWZpbml0aW9uW107XG4gIGZpbHRlcnM6IEFYUEZpbHRlckRlZmluaXRpb25bXTtcbiAgc2FtcGxlcz86IGFueVtdO1xuICBzb3VyY2U6ICgpID0+IEFYRGF0YVNvdXJjZTxUPiB8IFByb21pc2U8QVhEYXRhU291cmNlPFQ+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBEYXRhU291cmNlRGVmaW5pdGlvblByb3ZpZGVyIHtcbiAgaXRlbXMoKTogUHJvbWlzZTxBWFBEYXRhU291cmNlRGVmaW5pdGlvbltdPjtcbn1cblxuZXhwb3J0IGNvbnN0IEFYUF9EQVRBU09VUkNFX0RFRklOSVRJT05fUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQRGF0YVNvdXJjZURlZmluaXRpb25Qcm92aWRlcltdPihcbiAgJ0FYUF9EQVRBU09VUkNFX1RZUEVfUFJPVklERVInLFxuKTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBEYXRhU291cmNlRGVmaW5pdGlvblByb3ZpZGVyU2VydmljZSBpbXBsZW1lbnRzIEFYUERhdGFTb3VyY2VEZWZpbml0aW9uUHJvdmlkZXIge1xuICBwcml2YXRlIHByb3ZpZGVycyA9IGluamVjdChBWFBfREFUQVNPVVJDRV9ERUZJTklUSU9OX1BST1ZJREVSLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIGFzeW5jIGl0ZW1zKCk6IFByb21pc2U8QVhQRGF0YVNvdXJjZURlZmluaXRpb25bXT4ge1xuICAgIGNvbnN0IGl0ZW1zOiBBWFBEYXRhU291cmNlRGVmaW5pdGlvbltdID0gW107XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5wcm92aWRlcnMpKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICAgIHNldChwcm92aWRlciwgJ19fcGFyZW50X18nLCB0aGlzKTtcbiAgICAgICAgaXRlbXMucHVzaCguLi4oYXdhaXQgcHJvdmlkZXIuaXRlbXMoKSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cblxuICBhc3luYyBnZXQobmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFBEYXRhU291cmNlRGVmaW5pdGlvbiB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5pdGVtcygpKS5maW5kKChjKSA9PiBjLm5hbWUgPT0gbmFtZSk7XG4gIH1cbn1cbiJdfQ==","import { Directive, ElementRef, input, effect } from '@angular/core';\nimport { set, get } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport class AXPElementDataDirective {\n constructor(elementRef) {\n this.elementRef = elementRef;\n this.data = input(null, ...(ngDevMode ? [{ debugName: \"data\", alias: 'axp-data' }] : [{ alias: 'axp-data' }]));\n this.path = input('__data__', ...(ngDevMode ? [{ debugName: \"path\", alias: 'axp-data-path' }] : [{ alias: 'axp-data-path' }]));\n // Effect to update element data when inputs change\n this.updateEffect = effect(() => {\n const currentData = this.data();\n const currentPath = this.path();\n set(this.elementRef.nativeElement, currentPath, currentData);\n }, ...(ngDevMode ? [{ debugName: \"updateEffect\" }] : []));\n }\n ngOnInit() {\n // Initial data setup\n set(this.elementRef.nativeElement, this.path(), this.data());\n }\n /**\n * Get data from the element\n */\n getData() {\n return get(this.elementRef.nativeElement, this.path());\n }\n /**\n * Update data at runtime\n */\n setData(data) {\n set(this.elementRef.nativeElement, this.path(), data);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPElementDataDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.8\", type: AXPElementDataDirective, isStandalone: true, selector: \"[axp-data]\", inputs: { data: { classPropertyName: \"data\", publicName: \"axp-data\", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: \"path\", publicName: \"axp-data-path\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPElementDataDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-data]',\n standalone: true\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1kYXRhLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvZWxlbWVudC1kYXRhLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQU1yQyxNQUFNLE9BQU8sdUJBQXVCO0lBS2hDLFlBQW9CLFVBQW1DO1FBQW5DLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBSHZELFNBQUksR0FBRyxLQUFLLENBQU0sSUFBSSx3Q0FBSSxLQUFLLEVBQUUsVUFBVSxPQUFuQixFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBQyxDQUFDO1FBQy9DLFNBQUksR0FBRyxLQUFLLENBQVMsVUFBVSx3Q0FBSSxLQUFLLEVBQUUsZUFBZSxPQUF4QixFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsR0FBQyxDQUFDO1FBUzdELG1EQUFtRDtRQUMzQyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDL0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsd0RBQUMsQ0FBQztJQVp3RCxDQUFDO0lBRTVELFFBQVE7UUFDSixxQkFBcUI7UUFDckIsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBU0Q7O09BRUc7SUFDSCxPQUFPO1FBQ0gsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLElBQVM7UUFDYixHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7OEdBL0JRLHVCQUF1QjtrR0FBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGlucHV0LCBPbkluaXQsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2V0LCBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1theHAtZGF0YV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQVhQRWxlbWVudERhdGFEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgZGF0YSA9IGlucHV0PGFueT4obnVsbCwgeyBhbGlhczogJ2F4cC1kYXRhJyB9KTtcbiAgICBwYXRoID0gaW5wdXQ8c3RyaW5nPignX19kYXRhX18nLCB7IGFsaWFzOiAnYXhwLWRhdGEtcGF0aCcgfSk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7IH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBJbml0aWFsIGRhdGEgc2V0dXBcbiAgICAgICAgc2V0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLnBhdGgoKSwgdGhpcy5kYXRhKCkpO1xuICAgIH1cblxuICAgIC8vIEVmZmVjdCB0byB1cGRhdGUgZWxlbWVudCBkYXRhIHdoZW4gaW5wdXRzIGNoYW5nZVxuICAgIHByaXZhdGUgdXBkYXRlRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudERhdGEgPSB0aGlzLmRhdGEoKTtcbiAgICAgICAgY29uc3QgY3VycmVudFBhdGggPSB0aGlzLnBhdGgoKTtcbiAgICAgICAgc2V0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjdXJyZW50UGF0aCwgY3VycmVudERhdGEpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogR2V0IGRhdGEgZnJvbSB0aGUgZWxlbWVudFxuICAgICAqL1xuICAgIGdldERhdGEoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIGdldCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5wYXRoKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBkYXRhIGF0IHJ1bnRpbWVcbiAgICAgKi9cbiAgICBzZXREYXRhKGRhdGE6IGFueSkge1xuICAgICAgICBzZXQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMucGF0aCgpLCBkYXRhKTtcbiAgICB9XG59ICJdfQ==","import { Directive, HostListener, Output, EventEmitter } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPDblClickDirective {\n constructor() {\n this.onDblClick = new EventEmitter();\n this.lastTap = 0;\n this.doubleTapThreshold = 300; // milliseconds\n }\n // Listen for the native dblclick event (desktop)\n handleOnDblClick(event) {\n this.onDblClick.emit(event);\n }\n // Listen for touchend events (mobile)\n onTouchEnd(event) {\n const currentTime = new Date().getTime();\n const tapGap = currentTime - this.lastTap;\n if (tapGap > 0 && tapGap < this.doubleTapThreshold) {\n // Detected a double-tap\n this.onDblClick.emit(event);\n event.preventDefault(); // Optionally prevent further default actions\n }\n this.lastTap = currentTime;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDblClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPDblClickDirective, isStandalone: true, selector: \"[onDblClick]\", outputs: { onDblClick: \"onDblClick\" }, host: { listeners: { \"dblclick\": \"handleOnDblClick($event)\", \"touchend\": \"onTouchEnd($event)\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDblClickDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[onDblClick]'\n }]\n }], propDecorators: { onDblClick: [{\n type: Output\n }], handleOnDblClick: [{\n type: HostListener,\n args: ['dblclick', ['$event']]\n }], onTouchEnd: [{\n type: HostListener,\n args: ['touchend', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGJsLWNsaWNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvZGJsLWNsaWNrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUs5RSxNQUFNLE9BQU8sb0JBQW9CO0lBSGpDO1FBSWMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFFekMsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNILHVCQUFrQixHQUFHLEdBQUcsQ0FBQyxDQUFDLGVBQWU7S0FxQjdEO0lBbkJHLGlEQUFpRDtJQUVqRCxnQkFBZ0IsQ0FBQyxLQUFZO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxzQ0FBc0M7SUFFdEMsVUFBVSxDQUFDLEtBQWlCO1FBQ3hCLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekMsTUFBTSxNQUFNLEdBQUcsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFMUMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNqRCx3QkFBd0I7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsNkNBQTZDO1FBQ3pFLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQztJQUMvQixDQUFDOzhHQXhCUSxvQkFBb0I7a0dBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztpQkFDM0I7OEJBRWEsVUFBVTtzQkFBbkIsTUFBTTtnQkFPUCxnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBT3BDLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbb25EYmxDbGlja10nXG59KVxuZXhwb3J0IGNsYXNzIEFYUERibENsaWNrRGlyZWN0aXZlIHtcbiAgICBAT3V0cHV0KCkgb25EYmxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICBwcml2YXRlIGxhc3RUYXAgPSAwO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG91YmxlVGFwVGhyZXNob2xkID0gMzAwOyAvLyBtaWxsaXNlY29uZHNcblxuICAgIC8vIExpc3RlbiBmb3IgdGhlIG5hdGl2ZSBkYmxjbGljayBldmVudCAoZGVza3RvcClcbiAgICBASG9zdExpc3RlbmVyKCdkYmxjbGljaycsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlT25EYmxDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkRibENsaWNrLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8vIExpc3RlbiBmb3IgdG91Y2hlbmQgZXZlbnRzIChtb2JpbGUpXG4gICAgQEhvc3RMaXN0ZW5lcigndG91Y2hlbmQnLCBbJyRldmVudCddKVxuICAgIG9uVG91Y2hFbmQoZXZlbnQ6IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgY29uc3QgdGFwR2FwID0gY3VycmVudFRpbWUgLSB0aGlzLmxhc3RUYXA7XG5cbiAgICAgICAgaWYgKHRhcEdhcCA+IDAgJiYgdGFwR2FwIDwgdGhpcy5kb3VibGVUYXBUaHJlc2hvbGQpIHtcbiAgICAgICAgICAgIC8vIERldGVjdGVkIGEgZG91YmxlLXRhcFxuICAgICAgICAgICAgdGhpcy5vbkRibENsaWNrLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8gT3B0aW9uYWxseSBwcmV2ZW50IGZ1cnRoZXIgZGVmYXVsdCBhY3Rpb25zXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sYXN0VGFwID0gY3VycmVudFRpbWU7XG4gICAgfVxufVxuIl19","// src/app/directives/grid-layout.directive.ts\nimport { Directive, ElementRef, Renderer2, input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPGridLayoutDirective {\n constructor(el, renderer) {\n this.el = el;\n this.renderer = renderer;\n this.options = input.required(...(ngDevMode ? [{ debugName: \"options\", alias: 'axp-grid-layout' }] : [{ alias: 'axp-grid-layout' }]));\n }\n ngOnChanges(changes) {\n if (changes['options']) {\n this.applyTailwindClasses();\n }\n }\n applyTailwindClasses() {\n const placement = this.options()?.placement;\n if (!placement)\n return;\n // Clear existing grid classes\n this.clearClasses();\n // Apply new grid classes based on the input options\n this.setClasses(placement.md, 'md:');\n this.setClasses(placement.lg, 'lg:');\n this.setClasses(placement.xl, 'xl:');\n this.setClasses(placement.xxl, '2xl:');\n }\n setClasses(placement, prefix) {\n if (placement == null)\n return;\n const colStart = placement.colStart ? `${prefix}ax-col-start-${placement.colStart}` : '';\n const colEnd = placement.colEnd ? `${prefix}ax-col-end-${placement.colEnd}` : '';\n const colSpan = placement.colSpan ? `${prefix}ax-col-span-${placement.colSpan}` : '';\n const rowStart = placement.rowStart ? `${prefix}ax-row-start-${placement.rowStart}` : '';\n const rowEnd = placement.rowEnd ? `${prefix}ax-row-end-${placement.rowEnd}` : '';\n const rowSpan = placement.rowSpan ? `${prefix}ax-row-span-${placement.rowSpan}` : '';\n const order = placement.order ? `${prefix}ax-order-${placement.order}` : ''; // Handling order\n [colStart, colEnd, colSpan, rowStart, rowEnd, rowSpan, order].forEach(cls => {\n if (cls) {\n this.renderer.addClass(this.el.nativeElement, cls);\n }\n });\n }\n clearClasses() {\n const currentClasses = this.el.nativeElement.className.split(' ');\n currentClasses.forEach((className) => {\n if (className.startsWith('ax-col-') || className.startsWith('ax-row-') || className.startsWith('ax-order-')) {\n this.renderer.removeClass(this.el.nativeElement, className);\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPGridLayoutDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.8\", type: AXPGridLayoutDirective, isStandalone: true, selector: \"[axp-grid-layout]\", inputs: { options: { classPropertyName: \"options\", publicName: \"axp-grid-layout\", isSignal: true, isRequired: true, transformFunction: null } }, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPGridLayoutDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-grid-layout]',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1sYXlvdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9ncmlkLWxheW91dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOENBQThDO0FBRTlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBNEIsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9sRyxNQUFNLE9BQU8sc0JBQXNCO0lBRy9CLFlBQW9CLEVBQWMsRUFBVSxRQUFtQjtRQUEzQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUYvRCxZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsMENBQXlCLEtBQUssRUFBRSxpQkFBaUIsT0FBMUIsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsR0FBQyxDQUFDO0lBRVYsQ0FBQztJQUVwRSxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNoQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsU0FBUyxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUN2Qiw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXBCLG9EQUFvRDtRQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVPLFVBQVUsQ0FBQyxTQUF1QyxFQUFFLE1BQWM7UUFDdEUsSUFBSSxTQUFTLElBQUksSUFBSTtZQUFFLE9BQU87UUFFOUIsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLGdCQUFnQixTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6RixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sY0FBYyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNqRixNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sZUFBZSxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyRixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sZ0JBQWdCLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pGLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxjQUFjLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pGLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxlQUFlLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JGLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxZQUFZLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsaUJBQWlCO1FBRTlGLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3hFLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDdkQsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFlBQVk7UUFDaEIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsRSxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBaUIsRUFBRSxFQUFFO1lBQ3pDLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFDMUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDaEUsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0FqRFEsc0JBQXNCO2tHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2FwcC9kaXJlY3RpdmVzL2dyaWQtbGF5b3V0LmRpcmVjdGl2ZS50c1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQR3JpZExheW91dE9wdGlvbnMsIEFYUEdyaWRQbGFjZW1lbnQgfSBmcm9tICcuLi90eXBlcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2F4cC1ncmlkLWxheW91dF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEFYUEdyaWRMYXlvdXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIG9wdGlvbnMgPSBpbnB1dC5yZXF1aXJlZDxBWFBHcmlkTGF5b3V0T3B0aW9ucz4oeyBhbGlhczogJ2F4cC1ncmlkLWxheW91dCcgfSk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHsgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlc1snb3B0aW9ucyddKSB7XG4gICAgICAgICAgICB0aGlzLmFwcGx5VGFpbHdpbmRDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5VGFpbHdpbmRDbGFzc2VzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwbGFjZW1lbnQgPSB0aGlzLm9wdGlvbnMoKT8ucGxhY2VtZW50O1xuICAgICAgICBpZiAoIXBsYWNlbWVudCkgcmV0dXJuO1xuICAgICAgICAvLyBDbGVhciBleGlzdGluZyBncmlkIGNsYXNzZXNcbiAgICAgICAgdGhpcy5jbGVhckNsYXNzZXMoKTtcblxuICAgICAgICAvLyBBcHBseSBuZXcgZ3JpZCBjbGFzc2VzIGJhc2VkIG9uIHRoZSBpbnB1dCBvcHRpb25zXG4gICAgICAgIHRoaXMuc2V0Q2xhc3NlcyhwbGFjZW1lbnQubWQsICdtZDonKTtcbiAgICAgICAgdGhpcy5zZXRDbGFzc2VzKHBsYWNlbWVudC5sZywgJ2xnOicpO1xuICAgICAgICB0aGlzLnNldENsYXNzZXMocGxhY2VtZW50LnhsLCAneGw6Jyk7XG4gICAgICAgIHRoaXMuc2V0Q2xhc3NlcyhwbGFjZW1lbnQueHhsLCAnMnhsOicpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q2xhc3NlcyhwbGFjZW1lbnQ6IEFYUEdyaWRQbGFjZW1lbnQgfCB1bmRlZmluZWQsIHByZWZpeDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChwbGFjZW1lbnQgPT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGNvbFN0YXJ0ID0gcGxhY2VtZW50LmNvbFN0YXJ0ID8gYCR7cHJlZml4fWF4LWNvbC1zdGFydC0ke3BsYWNlbWVudC5jb2xTdGFydH1gIDogJyc7XG4gICAgICAgIGNvbnN0IGNvbEVuZCA9IHBsYWNlbWVudC5jb2xFbmQgPyBgJHtwcmVmaXh9YXgtY29sLWVuZC0ke3BsYWNlbWVudC5jb2xFbmR9YCA6ICcnO1xuICAgICAgICBjb25zdCBjb2xTcGFuID0gcGxhY2VtZW50LmNvbFNwYW4gPyBgJHtwcmVmaXh9YXgtY29sLXNwYW4tJHtwbGFjZW1lbnQuY29sU3Bhbn1gIDogJyc7XG4gICAgICAgIGNvbnN0IHJvd1N0YXJ0ID0gcGxhY2VtZW50LnJvd1N0YXJ0ID8gYCR7cHJlZml4fWF4LXJvdy1zdGFydC0ke3BsYWNlbWVudC5yb3dTdGFydH1gIDogJyc7XG4gICAgICAgIGNvbnN0IHJvd0VuZCA9IHBsYWNlbWVudC5yb3dFbmQgPyBgJHtwcmVmaXh9YXgtcm93LWVuZC0ke3BsYWNlbWVudC5yb3dFbmR9YCA6ICcnO1xuICAgICAgICBjb25zdCByb3dTcGFuID0gcGxhY2VtZW50LnJvd1NwYW4gPyBgJHtwcmVmaXh9YXgtcm93LXNwYW4tJHtwbGFjZW1lbnQucm93U3Bhbn1gIDogJyc7XG4gICAgICAgIGNvbnN0IG9yZGVyID0gcGxhY2VtZW50Lm9yZGVyID8gYCR7cHJlZml4fWF4LW9yZGVyLSR7cGxhY2VtZW50Lm9yZGVyfWAgOiAnJzsgLy8gSGFuZGxpbmcgb3JkZXJcblxuICAgICAgICBbY29sU3RhcnQsIGNvbEVuZCwgY29sU3Bhbiwgcm93U3RhcnQsIHJvd0VuZCwgcm93U3Bhbiwgb3JkZXJdLmZvckVhY2goY2xzID0+IHtcbiAgICAgICAgICAgIGlmIChjbHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgY2xzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhckNsYXNzZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRDbGFzc2VzID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZS5zcGxpdCgnICcpO1xuICAgICAgICBjdXJyZW50Q2xhc3Nlcy5mb3JFYWNoKChjbGFzc05hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKGNsYXNzTmFtZS5zdGFydHNXaXRoKCdheC1jb2wtJykgfHwgY2xhc3NOYW1lLnN0YXJ0c1dpdGgoJ2F4LXJvdy0nKSB8fCBjbGFzc05hbWUuc3RhcnRzV2l0aCgnYXgtb3JkZXItJykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19","// src/app/directives/grid-layout.directive.ts\nimport { Directive, ElementRef, ViewContainerRef, computed, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPContentCheckerDirective {\n constructor() {\n this.viewContainerRef = inject(ViewContainerRef);\n this.elementRef = inject((ElementRef));\n this.isEmpty = computed(() => this.viewContainerRef.length === 0, ...(ngDevMode ? [{ debugName: \"isEmpty\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPContentCheckerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPContentCheckerDirective, isStandalone: true, selector: \"[axp-content-checker]\", exportAs: [\"checker\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPContentCheckerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-content-checker]',\n standalone: true,\n exportAs: 'checker'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1jaGVja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvY29udGVudC1jaGVja2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEM7QUFFOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPMUYsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQU9XLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLGVBQVUsR0FBK0IsTUFBTSxDQUFDLENBQUEsVUFBMEIsQ0FBQSxDQUFDLENBQUM7UUFFNUUsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsbURBQUMsQ0FBQztLQUN2RTs4R0FOWSwwQkFBMEI7a0dBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFMdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLFNBQVM7aUJBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2FwcC9kaXJlY3RpdmVzL2dyaWQtbGF5b3V0LmRpcmVjdGl2ZS50c1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIFZpZXdDb250YWluZXJSZWYsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbYXhwLWNvbnRlbnQtY2hlY2tlcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgZXhwb3J0QXM6ICdjaGVja2VyJ1xufSlcbmV4cG9ydCBjbGFzcyBBWFBDb250ZW50Q2hlY2tlckRpcmVjdGl2ZSB7XG5cbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4pO1xuXG4gICAgcHVibGljIGlzRW1wdHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnZpZXdDb250YWluZXJSZWYubGVuZ3RoID09PSAwKTtcbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { isUndefined } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXPDataGenerator } from '../data/data-generator';\nimport * as i0 from \"@angular/core\";\nexport class AXPBroadcastEventService {\n constructor() {\n this.eventSubjects = new Map();\n this.pendingRequests = new Map();\n this.multiTabEventHistory = new Set(); // Prevent duplicate processing of the same event\n this.instanceId = AXPDataGenerator.uuid();\n this.channel = new BroadcastChannel('platform_global_events');\n // Handle incoming messages\n this.channel.onmessage = (event) => {\n const { type, payload, requestId, response, sourceId } = event.data;\n // Prevent processing the same event multiple times (multi-tab synchronization)\n if (requestId && this.multiTabEventHistory.has(requestId)) {\n return;\n }\n if (requestId) {\n this.multiTabEventHistory.add(requestId); // Store processed requestId\n setTimeout(() => this.multiTabEventHistory.delete(requestId), 10000); // Cleanup after 10 sec\n }\n // Handle responses to pending requests\n if (requestId && !isUndefined(response) && this.pendingRequests.has(requestId)) {\n this.pendingRequests.get(requestId)(response);\n this.pendingRequests.delete(requestId);\n return;\n }\n // Handle normal broadcast events\n // Ignore events originating from this same instance to avoid double-delivery\n if (sourceId && sourceId === this.instanceId) {\n return;\n }\n if (type && this.eventSubjects.has(type)) {\n this.eventSubjects.get(type).next({ data: payload, requestId });\n }\n };\n }\n /**\n * Publish an event without expecting a response\n */\n publish(type, payload) {\n this.channel.postMessage({ type, payload, sourceId: this.instanceId });\n // Local echo so same-tab listeners receive the event as well\n if (this.eventSubjects.has(type)) {\n this.eventSubjects.get(type).next({ data: payload });\n }\n }\n /**\n * Subscribe to an event\n */\n listen(type) {\n if (!this.eventSubjects.has(type)) {\n this.eventSubjects.set(type, new Subject());\n }\n return this.eventSubjects.get(type).asObservable();\n }\n /**\n * Unsubscribe from an event\n */\n unsubscribe(type) {\n if (this.eventSubjects.has(type)) {\n this.eventSubjects.get(type).complete();\n this.eventSubjects.delete(type);\n }\n }\n /**\n * Send a message and wait for a response with retry logic\n */\n async sendAndWaitForResponse(type, payload, options = {\n timeout: 60 * 60 * 1000,\n retries: 3,\n retryDelay: 1000,\n }) {\n const requestId = AXPDataGenerator.uuid();\n const attemptRequest = (attempt) => {\n return new Promise((resolve, reject) => {\n this.pendingRequests.set(requestId, resolve);\n this.channel.postMessage({ type, payload, requestId });\n setTimeout(() => {\n if (this.pendingRequests.has(requestId)) {\n this.pendingRequests.delete(requestId);\n if (attempt < options.retries) {\n console.warn(`Retrying request '${type}' (${attempt + 1}/${options.retries})...`);\n resolve(attemptRequest(attempt + 1)); // Retry request\n }\n else {\n reject(new Error(`Timeout: No response received for event '${type}' after ${options.retries} attempts.`));\n }\n }\n }, options.timeout);\n });\n };\n return attemptRequest(0);\n }\n /**\n * Respond to a request\n */\n respondToRequest(requestId, response) {\n if (!requestId) {\n console.warn('Invalid requestId. Cannot send response.');\n return;\n }\n this.channel.postMessage({ requestId, response });\n }\n /**\n * Cleanup when the service is destroyed\n */\n ngOnDestroy() {\n this.channel.close();\n // Complete all subjects\n this.eventSubjects.forEach((subject) => subject.complete());\n this.eventSubjects.clear();\n // Reject all pending requests to avoid dangling promises\n this.pendingRequests.forEach((resolve, requestId) => {\n resolve(Promise.reject(new Error(`Service destroyed. Request ${requestId} was not completed.`)));\n });\n this.pendingRequests.clear();\n // Cleanup multi-tab event history\n this.multiTabEventHistory.clear();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBroadcastEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBroadcastEventService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBroadcastEventService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2V2ZW50LXNlcnZpY2UvZXZlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFLMUQsTUFBTSxPQUFPLHdCQUF3QjtJQU9uQztRQUxRLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQXNELENBQUM7UUFDOUUsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztRQUM3RCx5QkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDLENBQUMsaURBQWlEO1FBQ2xGLGVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUdwRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUU5RCwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDcEUsK0VBQStFO1lBQy9FLElBQUksU0FBUyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDMUQsT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLElBQUks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QUksQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1lBQ3pELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVyQix3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFM0IseURBQXlEO1FBQ3pELElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFO1lBQ2xELE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDhCQUE4QixTQUFTLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25HLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUU3QixrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BDLENBQUM7OEdBMUlVLHdCQUF3QjtrSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzJGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzVW5kZWZpbmVkIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUERhdGFHZW5lcmF0b3IgfSBmcm9tICcuLi9kYXRhL2RhdGEtZ2VuZXJhdG9yJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYUEJyb2FkY2FzdEV2ZW50U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgY2hhbm5lbDogQnJvYWRjYXN0Q2hhbm5lbDtcbiAgcHJpdmF0ZSBldmVudFN1YmplY3RzID0gbmV3IE1hcDxzdHJpbmcsIFN1YmplY3Q8eyBkYXRhOiBhbnk7IHJlcXVlc3RJZD86IHN0cmluZyB9Pj4oKTtcbiAgcHJpdmF0ZSBwZW5kaW5nUmVxdWVzdHMgPSBuZXcgTWFwPHN0cmluZywgKHJlc3BvbnNlOiBhbnkpID0+IHZvaWQ+KCk7XG4gIHByaXZhdGUgbXVsdGlUYWJFdmVudEhpc3RvcnkgPSBuZXcgU2V0PHN0cmluZz4oKTsgLy8gUHJldmVudCBkdXBsaWNhdGUgcHJvY2Vzc2luZyBvZiB0aGUgc2FtZSBldmVudFxuICBwcml2YXRlIHJlYWRvbmx5IGluc3RhbmNlSWQgPSBBWFBEYXRhR2VuZXJhdG9yLnV1aWQoKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmNoYW5uZWwgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbCgncGxhdGZvcm1fZ2xvYmFsX2V2ZW50cycpO1xuXG4gICAgLy8gSGFuZGxlIGluY29taW5nIG1lc3NhZ2VzXG4gICAgdGhpcy5jaGFubmVsLm9ubWVzc2FnZSA9IChldmVudCkgPT4ge1xuICAgICAgY29uc3QgeyB0eXBlLCBwYXlsb2FkLCByZXF1ZXN0SWQsIHJlc3BvbnNlLCBzb3VyY2VJZCB9ID0gZXZlbnQuZGF0YTtcbiAgICAgIC8vIFByZXZlbnQgcHJvY2Vzc2luZyB0aGUgc2FtZSBldmVudCBtdWx0aXBsZSB0aW1lcyAobXVsdGktdGFiIHN5bmNocm9uaXphdGlvbilcbiAgICAgIGlmIChyZXF1ZXN0SWQgJiYgdGhpcy5tdWx0aVRhYkV2ZW50SGlzdG9yeS5oYXMocmVxdWVzdElkKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXF1ZXN0SWQpIHtcbiAgICAgICAgdGhpcy5tdWx0aVRhYkV2ZW50SGlzdG9yeS5hZGQocmVxdWVzdElkKTsgLy8gU3RvcmUgcHJvY2Vzc2VkIHJlcXVlc3RJZFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubXVsdGlUYWJFdmVudEhpc3RvcnkuZGVsZXRlKHJlcXVlc3RJZCksIDEwMDAwKTsgLy8gQ2xlYW51cCBhZnRlciAxMCBzZWNcbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIHJlc3BvbnNlcyB0byBwZW5kaW5nIHJlcXVlc3RzXG4gICAgICBpZiAocmVxdWVzdElkICYmICFpc1VuZGVmaW5lZChyZXNwb25zZSkgJiYgdGhpcy5wZW5kaW5nUmVxdWVzdHMuaGFzKHJlcXVlc3RJZCkpIHtcbiAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuZ2V0KHJlcXVlc3RJZCkhKHJlc3BvbnNlKTtcbiAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuZGVsZXRlKHJlcXVlc3RJZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIG5vcm1hbCBicm9hZGNhc3QgZXZlbnRzXG4gICAgICAvLyBJZ25vcmUgZXZlbnRzIG9yaWdpbmF0aW5nIGZyb20gdGhpcyBzYW1lIGluc3RhbmNlIHRvIGF2b2lkIGRvdWJsZS1kZWxpdmVyeVxuICAgICAgaWYgKHNvdXJjZUlkICYmIHNvdXJjZUlkID09PSB0aGlzLmluc3RhbmNlSWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGUgJiYgdGhpcy5ldmVudFN1YmplY3RzLmhhcyh0eXBlKSkge1xuICAgICAgICB0aGlzLmV2ZW50U3ViamVjdHMuZ2V0KHR5cGUpIS5uZXh0KHsgZGF0YTogcGF5bG9hZCwgcmVxdWVzdElkIH0pO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUHVibGlzaCBhbiBldmVudCB3aXRob3V0IGV4cGVjdGluZyBhIHJlc3BvbnNlXG4gICAqL1xuICBwdWJsaWMgcHVibGlzaDxUPih0eXBlOiBzdHJpbmcsIHBheWxvYWQ/OiBUKTogdm9pZCB7XG4gICAgdGhpcy5jaGFubmVsLnBvc3RNZXNzYWdlKHsgdHlwZSwgcGF5bG9hZCwgc291cmNlSWQ6IHRoaXMuaW5zdGFuY2VJZCB9KTtcbiAgICAvLyBMb2NhbCBlY2hvIHNvIHNhbWUtdGFiIGxpc3RlbmVycyByZWNlaXZlIHRoZSBldmVudCBhcyB3ZWxsXG4gICAgaWYgKHRoaXMuZXZlbnRTdWJqZWN0cy5oYXModHlwZSkpIHtcbiAgICAgIHRoaXMuZXZlbnRTdWJqZWN0cy5nZXQodHlwZSkhLm5leHQoeyBkYXRhOiBwYXlsb2FkIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gYW4gZXZlbnRcbiAgICovXG4gIHB1YmxpYyBsaXN0ZW48VD4odHlwZTogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IGRhdGE6IFQ7IHJlcXVlc3RJZD86IHN0cmluZyB9PiB7XG4gICAgaWYgKCF0aGlzLmV2ZW50U3ViamVjdHMuaGFzKHR5cGUpKSB7XG4gICAgICB0aGlzLmV2ZW50U3ViamVjdHMuc2V0KHR5cGUsIG5ldyBTdWJqZWN0PHsgZGF0YTogVDsgcmVxdWVzdElkPzogc3RyaW5nIH0+KCkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5ldmVudFN1YmplY3RzLmdldCh0eXBlKSEuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgZnJvbSBhbiBldmVudFxuICAgKi9cbiAgcHVibGljIHVuc3Vic2NyaWJlKHR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmV2ZW50U3ViamVjdHMuaGFzKHR5cGUpKSB7XG4gICAgICB0aGlzLmV2ZW50U3ViamVjdHMuZ2V0KHR5cGUpIS5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5ldmVudFN1YmplY3RzLmRlbGV0ZSh0eXBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBhIG1lc3NhZ2UgYW5kIHdhaXQgZm9yIGEgcmVzcG9uc2Ugd2l0aCByZXRyeSBsb2dpY1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHNlbmRBbmRXYWl0Rm9yUmVzcG9uc2U8VCwgUj4oXG4gICAgdHlwZTogc3RyaW5nLFxuICAgIHBheWxvYWQ/OiBULFxuICAgIG9wdGlvbnM6IHsgdGltZW91dDogbnVtYmVyOyByZXRyaWVzOiBudW1iZXI7IHJldHJ5RGVsYXk6IG51bWJlciB9ID0ge1xuICAgICAgdGltZW91dDogNjAgKiA2MCAqIDEwMDAsXG4gICAgICByZXRyaWVzOiAzLFxuICAgICAgcmV0cnlEZWxheTogMTAwMCxcbiAgICB9LFxuICApOiBQcm9taXNlPFI+IHtcbiAgICBjb25zdCByZXF1ZXN0SWQgPSBBWFBEYXRhR2VuZXJhdG9yLnV1aWQoKTtcblxuICAgIGNvbnN0IGF0dGVtcHRSZXF1ZXN0ID0gKGF0dGVtcHQ6IG51bWJlcik6IFByb21pc2U8Uj4gPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPFI+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuc2V0KHJlcXVlc3RJZCwgcmVzb2x2ZSk7XG5cbiAgICAgICAgdGhpcy5jaGFubmVsLnBvc3RNZXNzYWdlKHsgdHlwZSwgcGF5bG9hZCwgcmVxdWVzdElkIH0pO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnBlbmRpbmdSZXF1ZXN0cy5oYXMocmVxdWVzdElkKSkge1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuZGVsZXRlKHJlcXVlc3RJZCk7XG4gICAgICAgICAgICBpZiAoYXR0ZW1wdCA8IG9wdGlvbnMucmV0cmllcykge1xuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFJldHJ5aW5nIHJlcXVlc3QgJyR7dHlwZX0nICgke2F0dGVtcHQgKyAxfS8ke29wdGlvbnMucmV0cmllc30pLi4uYCk7XG4gICAgICAgICAgICAgIHJlc29sdmUoYXR0ZW1wdFJlcXVlc3QoYXR0ZW1wdCArIDEpKTsgLy8gUmV0cnkgcmVxdWVzdFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihgVGltZW91dDogTm8gcmVzcG9uc2UgcmVjZWl2ZWQgZm9yIGV2ZW50ICcke3R5cGV9JyBhZnRlciAke29wdGlvbnMucmV0cmllc30gYXR0ZW1wdHMuYCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSwgb3B0aW9ucy50aW1lb3V0KTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gYXR0ZW1wdFJlcXVlc3QoMCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzcG9uZCB0byBhIHJlcXVlc3RcbiAgICovXG4gIHB1YmxpYyByZXNwb25kVG9SZXF1ZXN0KHJlcXVlc3RJZDogc3RyaW5nLCByZXNwb25zZTogYW55KTogdm9pZCB7XG4gICAgaWYgKCFyZXF1ZXN0SWQpIHtcbiAgICAgIGNvbnNvbGUud2FybignSW52YWxpZCByZXF1ZXN0SWQuIENhbm5vdCBzZW5kIHJlc3BvbnNlLicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNoYW5uZWwucG9zdE1lc3NhZ2UoeyByZXF1ZXN0SWQsIHJlc3BvbnNlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFudXAgd2hlbiB0aGUgc2VydmljZSBpcyBkZXN0cm95ZWRcbiAgICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbm5lbC5jbG9zZSgpO1xuXG4gICAgLy8gQ29tcGxldGUgYWxsIHN1YmplY3RzXG4gICAgdGhpcy5ldmVudFN1YmplY3RzLmZvckVhY2goKHN1YmplY3QpID0+IHN1YmplY3QuY29tcGxldGUoKSk7XG4gICAgdGhpcy5ldmVudFN1YmplY3RzLmNsZWFyKCk7XG5cbiAgICAvLyBSZWplY3QgYWxsIHBlbmRpbmcgcmVxdWVzdHMgdG8gYXZvaWQgZGFuZ2xpbmcgcHJvbWlzZXNcbiAgICB0aGlzLnBlbmRpbmdSZXF1ZXN0cy5mb3JFYWNoKChyZXNvbHZlLCByZXF1ZXN0SWQpID0+IHtcbiAgICAgIHJlc29sdmUoUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKGBTZXJ2aWNlIGRlc3Ryb3llZC4gUmVxdWVzdCAke3JlcXVlc3RJZH0gd2FzIG5vdCBjb21wbGV0ZWQuYCkpKTtcbiAgICB9KTtcbiAgICB0aGlzLnBlbmRpbmdSZXF1ZXN0cy5jbGVhcigpO1xuXG4gICAgLy8gQ2xlYW51cCBtdWx0aS10YWIgZXZlbnQgaGlzdG9yeVxuICAgIHRoaXMubXVsdGlUYWJFdmVudEhpc3RvcnkuY2xlYXIoKTtcbiAgfVxufVxuIl19","import { Injectable, InjectionToken, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPExpressionEvaluatorScopeProviderContext {\n constructor() {\n this.scopes = {};\n }\n addScope(namespace, functions) {\n this.scopes[namespace] = { ...this.scopes[namespace], ...functions };\n }\n getScopes() {\n return this.scopes;\n }\n}\nexport const AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER = new InjectionToken('AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER');\nexport class AXPExpressionEvaluatorScopeProviderService {\n constructor() {\n this.providers = inject(AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, { optional: true });\n this.cache = null;\n }\n async load() {\n if (this.cache)\n return;\n const context = new AXPExpressionEvaluatorScopeProviderContext();\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n await provider.provide(context);\n }\n }\n this.cache = context.getScopes();\n }\n async getScopesAsync() {\n await this.load();\n return this.cache || {};\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPExpressionEvaluatorScopeProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPExpressionEvaluatorScopeProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPExpressionEvaluatorScopeProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbi1ldmFsdWF0b3Itc2NvcGUtcHJvdmlkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2V4cHJlc3Npb24tZXZhbHVhdG9yL2V4cHJlc3Npb24tZXZhbHVhdG9yLXNjb3BlLXByb3ZpZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9uRSxNQUFNLE9BQU8sMENBQTBDO0lBQXZEO1FBQ1ksV0FBTSxHQUFnQyxFQUFFLENBQUM7SUFPckQsQ0FBQztJQU5HLFFBQVEsQ0FBQyxTQUFpQixFQUFFLFNBQXVDO1FBQy9ELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUN6RSxDQUFDO0lBQ0QsU0FBUztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0NBQ0o7QUFHRCxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBRyxJQUFJLGNBQWMsQ0FDckUseUNBQXlDLENBQzVDLENBQUM7QUFHRixNQUFNLE9BQU8sMENBQTBDO0lBRHZEO1FBRVksY0FBUyxHQUFHLE1BQU0sQ0FBQyx1Q0FBdUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hGLFVBQUssR0FBdUMsSUFBSSxDQUFDO0tBaUI1RDtJQWZXLEtBQUssQ0FBQyxJQUFJO1FBQ2QsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSwwQ0FBMEMsRUFBRSxDQUFDO1FBQ2pFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDcEMsTUFBTSxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVNLEtBQUssQ0FBQyxjQUFjO1FBQ3ZCLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs4R0FsQlEsMENBQTBDO2tIQUExQywwQ0FBMEMsY0FEN0IsTUFBTTs7MkZBQ25CLDBDQUEwQztrQkFEdEQsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgfSBmcm9tICcuL2V4cHJlc3Npb24tZXZhbHVhdG9yLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyIHtcbiAgICBwcm92aWRlKGNvbnRleHQ6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyQ29udGV4dCk6IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCBjbGFzcyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGVQcm92aWRlckNvbnRleHQge1xuICAgIHByaXZhdGUgc2NvcGVzOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7fTtcbiAgICBhZGRTY29wZShuYW1lc3BhY2U6IHN0cmluZywgZnVuY3Rpb25zOiB7IFtuYW1lOiBzdHJpbmddOiBGdW5jdGlvbiB9KSB7XG4gICAgICAgIHRoaXMuc2NvcGVzW25hbWVzcGFjZV0gPSB7IC4uLnRoaXMuc2NvcGVzW25hbWVzcGFjZV0sIC4uLmZ1bmN0aW9ucyB9O1xuICAgIH1cbiAgICBnZXRTY29wZXMoKTogQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NvcGVzO1xuICAgIH1cbn1cbmV4cG9ydCB0eXBlIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVycyA9IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyW10gfCAoKCkgPT4gQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlUHJvdmlkZXJbXSk7XG5cbmV4cG9ydCBjb25zdCBBWFBfRVhQUkVTU0lPTl9FVkFMVUFUT1JfU0NPUEVfUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlUHJvdmlkZXJzPihcbiAgICAnQVhQX0VYUFJFU1NJT05fRVZBTFVBVE9SX1NDT1BFX1BST1ZJREVSJ1xuKTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGVQcm92aWRlclNlcnZpY2Uge1xuICAgIHByaXZhdGUgcHJvdmlkZXJzID0gaW5qZWN0KEFYUF9FWFBSRVNTSU9OX0VWQUxVQVRPUl9TQ09QRV9QUk9WSURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICBwcml2YXRlIGNhY2hlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgfCBudWxsID0gbnVsbDtcblxuICAgIHByaXZhdGUgYXN5bmMgbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuY2FjaGUpIHJldHVybjtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGVQcm92aWRlckNvbnRleHQoKTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5wcm92aWRlcnMpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgcHJvdmlkZXIucHJvdmlkZShjb250ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNhY2hlID0gY29udGV4dC5nZXRTY29wZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0U2NvcGVzQXN5bmMoKTogUHJvbWlzZTxBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGU+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmNhY2hlIHx8IHt9O1xuICAgIH1cbn0gIl19","import { Injectable, inject } from '@angular/core';\nimport { AXPExpressionEvaluatorScopeProviderService } from './expression-evaluator-scope-provider.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPExpressionEvaluatorService {\n constructor() {\n // Memoization cache for compiled expressions\n this.expressionCache = new Map();\n this.providerService = inject(AXPExpressionEvaluatorScopeProviderService);\n }\n getOrCompileFunction(expression) {\n if (!this.expressionCache.has(expression)) {\n // Check if expression contains multiple statements (has semicolons or newlines)\n const hasMultipleStatements = expression.includes(';') || expression.includes('\\n');\n let fn;\n if (hasMultipleStatements) {\n // For multiple statements, execute them in sequence and return the last expression\n fn = new Function('scope', `with (scope) { return (async function() { ${expression} })(); }`);\n }\n else {\n // For single expressions, use return\n fn = new Function('scope', `with (scope) { return (async function() { return ${expression}; })(); }`);\n }\n this.expressionCache.set(expression, fn);\n }\n return this.expressionCache.get(expression);\n }\n async getMergedScope(userScope) {\n const pluginScopes = await this.providerService.getScopesAsync();\n // Merge pluginScopes and userScope (userScope takes precedence)\n return { ...pluginScopes, ...userScope };\n }\n async evaluate(source, scope) {\n try {\n const mergedScope = await this.getMergedScope(scope);\n if (typeof source === 'string' && source.includes('{{')) {\n return await this.evaluateStringExpression(source, mergedScope);\n }\n else if (Array.isArray(source)) {\n const evaluatedArray = [];\n for (const item of source) {\n evaluatedArray.push(await this.evaluate(item, mergedScope));\n }\n return evaluatedArray;\n }\n else if (typeof source === 'object' && source !== null) {\n const evaluatedObject = {};\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n evaluatedObject[key] = await this.evaluate(source[key], mergedScope);\n }\n }\n return evaluatedObject;\n }\n else {\n return source;\n }\n }\n catch (error) {\n console.error('Expression evaluator - Error evaluating expression:', source, error);\n return false;\n }\n }\n async evaluateStringExpression(templateExpression, scope) {\n // Check if the input is exactly a single {{ ... }} expression (handle multiline)\n const exactMatch = templateExpression.match(/^\\s*\\{\\{\\s*([\\s\\S]*?)\\s*\\}\\}\\s*$/);\n if (exactMatch) {\n const expression = exactMatch[1];\n const sandbox = this.getOrCompileFunction(expression);\n const result = await sandbox(scope);\n return result;\n }\n // Otherwise, interpolate all {{ ... }} expressions in the string\n const regex = /\\{\\{\\s*([\\s\\S]*?)\\s*\\}\\}/g;\n // Collect all matches and their positions\n const matches = [];\n let match;\n while ((match = regex.exec(templateExpression)) !== null) {\n matches.push({\n expression: match[1],\n start: match.index,\n end: regex.lastIndex,\n raw: match[0],\n });\n }\n // Evaluate all expressions in parallel\n const values = await Promise.all(matches.map((m) => {\n const sandbox = this.getOrCompileFunction(m.expression);\n return sandbox(scope);\n }));\n // Reconstruct the string with evaluated values\n let result = '';\n let lastIndex = 0;\n matches.forEach((m, i) => {\n result += templateExpression.slice(lastIndex, m.start);\n const value = values[i];\n result += value !== undefined && value !== null ? value : '';\n lastIndex = m.end;\n });\n result += templateExpression.slice(lastIndex);\n return result;\n }\n isExpression(expression) {\n if (typeof expression === 'string') {\n return expression.includes('{{');\n }\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPExpressionEvaluatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPExpressionEvaluatorService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPExpressionEvaluatorService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbi1ldmFsdWF0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2V4cHJlc3Npb24tZXZhbHVhdG9yL2V4cHJlc3Npb24tZXZhbHVhdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBSzNHLE1BQU0sT0FBTyw2QkFBNkI7SUFEMUM7UUFFRSw2Q0FBNkM7UUFDckMsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUM5QyxvQkFBZSxHQUFHLE1BQU0sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0tBdUc5RTtJQXJHUyxvQkFBb0IsQ0FBQyxVQUFrQjtRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUMxQyxnRkFBZ0Y7WUFDaEYsTUFBTSxxQkFBcUIsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFcEYsSUFBSSxFQUFZLENBQUM7WUFDakIsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO2dCQUMxQixtRkFBbUY7Z0JBQ25GLEVBQUUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsNkNBQTZDLFVBQVUsVUFBVSxDQUFDLENBQUM7WUFDaEcsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLHFDQUFxQztnQkFDckMsRUFBRSxHQUFHLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRSxvREFBb0QsVUFBVSxXQUFXLENBQUMsQ0FBQztZQUN4RyxDQUFDO1lBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBRSxDQUFDO0lBQy9DLENBQUM7SUFFTyxLQUFLLENBQUMsY0FBYyxDQUFDLFNBQXNDO1FBQ2pFLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNqRSxnRUFBZ0U7UUFDaEUsT0FBTyxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBbUIsRUFBRSxLQUFrQztRQUMzRSxJQUFJLENBQUM7WUFDSCxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN4RCxPQUFPLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztZQUNsRSxDQUFDO2lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNLGNBQWMsR0FBRyxFQUFFLENBQUM7Z0JBQzFCLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQzFCLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUM5RCxDQUFDO2dCQUNELE9BQU8sY0FBYyxDQUFDO1lBQ3hCLENBQUM7aUJBQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN6RCxNQUFNLGVBQWUsR0FBUSxFQUFFLENBQUM7Z0JBQ2hDLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ3pCLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUMvQixlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztvQkFDdkUsQ0FBQztnQkFDSCxDQUFDO2dCQUNELE9BQU8sZUFBZSxDQUFDO1lBQ3pCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBYyxFQUFFLENBQUM7WUFDeEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxxREFBcUQsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDcEYsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxrQkFBMEIsRUFBRSxLQUFrQztRQUNuRyxpRkFBaUY7UUFDakYsTUFBTSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDaEYsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEMsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELGlFQUFpRTtRQUNqRSxNQUFNLEtBQUssR0FBRywyQkFBMkIsQ0FBQztRQUMxQywwQ0FBMEM7UUFDMUMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksS0FBSyxDQUFDO1FBQ1YsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN6RCxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNYLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7Z0JBQ2xCLEdBQUcsRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDcEIsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDZCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsdUNBQXVDO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2hCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDeEQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLCtDQUErQztRQUMvQyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdkIsTUFBTSxJQUFJLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM3RCxTQUFTLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLFlBQVksQ0FBQyxVQUFrQjtRQUNwQyxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ25DLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQXpHVSw2QkFBNkI7a0hBQTdCLDZCQUE2QixjQURoQixNQUFNOzsyRkFDbkIsNkJBQTZCO2tCQUR6QyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi9leHByZXNzaW9uLWV2YWx1YXRvci1zY29wZS1wcm92aWRlci5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlID0geyBbbmFtZTogc3RyaW5nXTogeyBbbmFtZTogc3RyaW5nXTogRnVuY3Rpb24gfSB9O1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlIHtcbiAgLy8gTWVtb2l6YXRpb24gY2FjaGUgZm9yIGNvbXBpbGVkIGV4cHJlc3Npb25zXG4gIHByaXZhdGUgZXhwcmVzc2lvbkNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIEZ1bmN0aW9uPigpO1xuICBwcml2YXRlIHByb3ZpZGVyU2VydmljZSA9IGluamVjdChBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGVQcm92aWRlclNlcnZpY2UpO1xuXG4gIHByaXZhdGUgZ2V0T3JDb21waWxlRnVuY3Rpb24oZXhwcmVzc2lvbjogc3RyaW5nKTogRnVuY3Rpb24ge1xuICAgIGlmICghdGhpcy5leHByZXNzaW9uQ2FjaGUuaGFzKGV4cHJlc3Npb24pKSB7XG4gICAgICAvLyBDaGVjayBpZiBleHByZXNzaW9uIGNvbnRhaW5zIG11bHRpcGxlIHN0YXRlbWVudHMgKGhhcyBzZW1pY29sb25zIG9yIG5ld2xpbmVzKVxuICAgICAgY29uc3QgaGFzTXVsdGlwbGVTdGF0ZW1lbnRzID0gZXhwcmVzc2lvbi5pbmNsdWRlcygnOycpIHx8IGV4cHJlc3Npb24uaW5jbHVkZXMoJ1xcbicpO1xuXG4gICAgICBsZXQgZm46IEZ1bmN0aW9uO1xuICAgICAgaWYgKGhhc011bHRpcGxlU3RhdGVtZW50cykge1xuICAgICAgICAvLyBGb3IgbXVsdGlwbGUgc3RhdGVtZW50cywgZXhlY3V0ZSB0aGVtIGluIHNlcXVlbmNlIGFuZCByZXR1cm4gdGhlIGxhc3QgZXhwcmVzc2lvblxuICAgICAgICBmbiA9IG5ldyBGdW5jdGlvbignc2NvcGUnLCBgd2l0aCAoc2NvcGUpIHsgcmV0dXJuIChhc3luYyBmdW5jdGlvbigpIHsgJHtleHByZXNzaW9ufSB9KSgpOyB9YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBGb3Igc2luZ2xlIGV4cHJlc3Npb25zLCB1c2UgcmV0dXJuXG4gICAgICAgIGZuID0gbmV3IEZ1bmN0aW9uKCdzY29wZScsIGB3aXRoIChzY29wZSkgeyByZXR1cm4gKGFzeW5jIGZ1bmN0aW9uKCkgeyByZXR1cm4gJHtleHByZXNzaW9ufTsgfSkoKTsgfWApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmV4cHJlc3Npb25DYWNoZS5zZXQoZXhwcmVzc2lvbiwgZm4pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5leHByZXNzaW9uQ2FjaGUuZ2V0KGV4cHJlc3Npb24pITtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0TWVyZ2VkU2NvcGUodXNlclNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUpOiBQcm9taXNlPEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZT4ge1xuICAgIGNvbnN0IHBsdWdpblNjb3BlcyA9IGF3YWl0IHRoaXMucHJvdmlkZXJTZXJ2aWNlLmdldFNjb3Blc0FzeW5jKCk7XG4gICAgLy8gTWVyZ2UgcGx1Z2luU2NvcGVzIGFuZCB1c2VyU2NvcGUgKHVzZXJTY29wZSB0YWtlcyBwcmVjZWRlbmNlKVxuICAgIHJldHVybiB7IC4uLnBsdWdpblNjb3BlcywgLi4udXNlclNjb3BlIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZXZhbHVhdGUoc291cmNlOiBhbnkgfCBhbnlbXSwgc2NvcGU6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSk6IFByb21pc2U8YW55PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1lcmdlZFNjb3BlID0gYXdhaXQgdGhpcy5nZXRNZXJnZWRTY29wZShzY29wZSk7XG4gICAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gJ3N0cmluZycgJiYgc291cmNlLmluY2x1ZGVzKCd7eycpKSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmV2YWx1YXRlU3RyaW5nRXhwcmVzc2lvbihzb3VyY2UsIG1lcmdlZFNjb3BlKTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShzb3VyY2UpKSB7XG4gICAgICAgIGNvbnN0IGV2YWx1YXRlZEFycmF5ID0gW107XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBzb3VyY2UpIHtcbiAgICAgICAgICBldmFsdWF0ZWRBcnJheS5wdXNoKGF3YWl0IHRoaXMuZXZhbHVhdGUoaXRlbSwgbWVyZ2VkU2NvcGUpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXZhbHVhdGVkQXJyYXk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzb3VyY2UgPT09ICdvYmplY3QnICYmIHNvdXJjZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBldmFsdWF0ZWRPYmplY3Q6IGFueSA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgICBpZiAoc291cmNlLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgIGV2YWx1YXRlZE9iamVjdFtrZXldID0gYXdhaXQgdGhpcy5ldmFsdWF0ZShzb3VyY2Vba2V5XSwgbWVyZ2VkU2NvcGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXZhbHVhdGVkT2JqZWN0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgY29uc29sZS5lcnJvcignRXhwcmVzc2lvbiBldmFsdWF0b3IgLSBFcnJvciBldmFsdWF0aW5nIGV4cHJlc3Npb246Jywgc291cmNlLCBlcnJvcik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBldmFsdWF0ZVN0cmluZ0V4cHJlc3Npb24odGVtcGxhdGVFeHByZXNzaW9uOiBzdHJpbmcsIHNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUpOiBQcm9taXNlPGFueT4ge1xuICAgIC8vIENoZWNrIGlmIHRoZSBpbnB1dCBpcyBleGFjdGx5IGEgc2luZ2xlIHt7IC4uLiB9fSBleHByZXNzaW9uIChoYW5kbGUgbXVsdGlsaW5lKVxuICAgIGNvbnN0IGV4YWN0TWF0Y2ggPSB0ZW1wbGF0ZUV4cHJlc3Npb24ubWF0Y2goL15cXHMqXFx7XFx7XFxzKihbXFxzXFxTXSo/KVxccypcXH1cXH1cXHMqJC8pO1xuICAgIGlmIChleGFjdE1hdGNoKSB7XG4gICAgICBjb25zdCBleHByZXNzaW9uID0gZXhhY3RNYXRjaFsxXTtcbiAgICAgIGNvbnN0IHNhbmRib3ggPSB0aGlzLmdldE9yQ29tcGlsZUZ1bmN0aW9uKGV4cHJlc3Npb24pO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2FuZGJveChzY29wZSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICAvLyBPdGhlcndpc2UsIGludGVycG9sYXRlIGFsbCB7eyAuLi4gfX0gZXhwcmVzc2lvbnMgaW4gdGhlIHN0cmluZ1xuICAgIGNvbnN0IHJlZ2V4ID0gL1xce1xce1xccyooW1xcc1xcU10qPylcXHMqXFx9XFx9L2c7XG4gICAgLy8gQ29sbGVjdCBhbGwgbWF0Y2hlcyBhbmQgdGhlaXIgcG9zaXRpb25zXG4gICAgY29uc3QgbWF0Y2hlcyA9IFtdO1xuICAgIGxldCBtYXRjaDtcbiAgICB3aGlsZSAoKG1hdGNoID0gcmVnZXguZXhlYyh0ZW1wbGF0ZUV4cHJlc3Npb24pKSAhPT0gbnVsbCkge1xuICAgICAgbWF0Y2hlcy5wdXNoKHtcbiAgICAgICAgZXhwcmVzc2lvbjogbWF0Y2hbMV0sXG4gICAgICAgIHN0YXJ0OiBtYXRjaC5pbmRleCxcbiAgICAgICAgZW5kOiByZWdleC5sYXN0SW5kZXgsXG4gICAgICAgIHJhdzogbWF0Y2hbMF0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgLy8gRXZhbHVhdGUgYWxsIGV4cHJlc3Npb25zIGluIHBhcmFsbGVsXG4gICAgY29uc3QgdmFsdWVzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBtYXRjaGVzLm1hcCgobSkgPT4ge1xuICAgICAgICBjb25zdCBzYW5kYm94ID0gdGhpcy5nZXRPckNvbXBpbGVGdW5jdGlvbihtLmV4cHJlc3Npb24pO1xuICAgICAgICByZXR1cm4gc2FuZGJveChzY29wZSk7XG4gICAgICB9KSxcbiAgICApO1xuICAgIC8vIFJlY29uc3RydWN0IHRoZSBzdHJpbmcgd2l0aCBldmFsdWF0ZWQgdmFsdWVzXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgIGxldCBsYXN0SW5kZXggPSAwO1xuICAgIG1hdGNoZXMuZm9yRWFjaCgobSwgaSkgPT4ge1xuICAgICAgcmVzdWx0ICs9IHRlbXBsYXRlRXhwcmVzc2lvbi5zbGljZShsYXN0SW5kZXgsIG0uc3RhcnQpO1xuICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZXNbaV07XG4gICAgICByZXN1bHQgKz0gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCA/IHZhbHVlIDogJyc7XG4gICAgICBsYXN0SW5kZXggPSBtLmVuZDtcbiAgICB9KTtcbiAgICByZXN1bHQgKz0gdGVtcGxhdGVFeHByZXNzaW9uLnNsaWNlKGxhc3RJbmRleCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBpc0V4cHJlc3Npb24oZXhwcmVzc2lvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiBleHByZXNzaW9uID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGV4cHJlc3Npb24uaW5jbHVkZXMoJ3t7Jyk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19","import { Injectable, inject, provideAppInitializer } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPAppStartUpService {\n constructor() {\n this.tasks = [];\n }\n registerTask(task) {\n this.tasks.push(task);\n }\n async runAllTasks() {\n for (const task of this.tasks.sort((a, b) => a.priority - b.priority)) {\n console.log(`Running \"${task.statusText}\" with priority \"${task.priority}\"`);\n this.updateStatus(task.statusText);\n await task.run();\n }\n }\n updateStatus(status) {\n const loadingText = document.querySelector('#loadingText');\n if (loadingText) {\n loadingText.innerHTML = status;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPAppStartUpService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPAppStartUpService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPAppStartUpService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\nfunction initAppFactory(appInitService) {\n return () => appInitService.runAllTasks();\n}\nexport const AXPAppStartUpProvider = provideAppInitializer(() => {\n const initializerFn = initAppFactory(inject(AXPAppStartUpService));\n return initializerFn();\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXN0YXJ0dXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3N0YXJ0dXAvYXBwLXN0YXJ0dXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRMUUsTUFBTSxPQUFPLG9CQUFvQjtJQUhqQztRQUlVLFVBQUssR0FBcUIsRUFBRSxDQUFDO0tBb0J0QztJQWxCQyxZQUFZLENBQUMsSUFBb0I7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksQ0FBQyxVQUFVLG9CQUFvQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUM3RSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNuQyxNQUFNLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FBQyxNQUFjO1FBQ2pDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0QsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixXQUFXLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQzs4R0FwQlUsb0JBQW9CO2tIQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7MkZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUF3QkQsU0FBUyxjQUFjLENBQUMsY0FBb0M7SUFDMUQsT0FBTyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDNUMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtJQUM5RCxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztJQUNuRSxPQUFPLGFBQWEsRUFBRSxDQUFDO0FBQ3pCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0LCBwcm92aWRlQXBwSW5pdGlhbGl6ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFN0YXJ0VXBUYXNrIH0gZnJvbSAnLi9hcHAtc3RhcnR1cC50eXBlcyc7XG5cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQXBwU3RhcnRVcFNlcnZpY2Uge1xuICBwcml2YXRlIHRhc2tzOiBBWFBTdGFydFVwVGFza1tdID0gW107XG5cbiAgcmVnaXN0ZXJUYXNrKHRhc2s6IEFYUFN0YXJ0VXBUYXNrKSB7XG4gICAgdGhpcy50YXNrcy5wdXNoKHRhc2spO1xuICB9XG5cbiAgYXN5bmMgcnVuQWxsVGFza3MoKSB7XG4gICAgZm9yIChjb25zdCB0YXNrIG9mIHRoaXMudGFza3Muc29ydCgoYSwgYikgPT4gYS5wcmlvcml0eSAtIGIucHJpb3JpdHkpKSB7XG4gICAgICBjb25zb2xlLmxvZyhgUnVubmluZyBcIiR7dGFzay5zdGF0dXNUZXh0fVwiIHdpdGggcHJpb3JpdHkgXCIke3Rhc2sucHJpb3JpdHl9XCJgKTtcbiAgICAgIHRoaXMudXBkYXRlU3RhdHVzKHRhc2suc3RhdHVzVGV4dCk7XG4gICAgICBhd2FpdCB0YXNrLnJ1bigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3RhdHVzKHN0YXR1czogc3RyaW5nKSB7XG4gICAgY29uc3QgbG9hZGluZ1RleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbG9hZGluZ1RleHQnKTtcbiAgICBpZiAobG9hZGluZ1RleHQpIHtcbiAgICAgIGxvYWRpbmdUZXh0LmlubmVySFRNTCA9IHN0YXR1cztcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdEFwcEZhY3RvcnkoYXBwSW5pdFNlcnZpY2U6IEFYUEFwcFN0YXJ0VXBTZXJ2aWNlKSB7XG4gIHJldHVybiAoKSA9PiBhcHBJbml0U2VydmljZS5ydW5BbGxUYXNrcygpO1xufVxuXG5leHBvcnQgY29uc3QgQVhQQXBwU3RhcnRVcFByb3ZpZGVyID0gcHJvdmlkZUFwcEluaXRpYWxpemVyKCgpID0+IHtcbiAgY29uc3QgaW5pdGlhbGl6ZXJGbiA9IGluaXRBcHBGYWN0b3J5KGluamVjdChBWFBBcHBTdGFydFVwU2VydmljZSkpO1xuICByZXR1cm4gaW5pdGlhbGl6ZXJGbigpO1xufSk7XG4iXX0=","/**\n * Additional suggested generic actions for future consideration:\n *\n * Data & Content Actions:\n * - Search = 'search' - Search functionality\n * - Filter = 'filter' - Apply filters\n * - Sort = 'sort' - Sort data\n * - Group = 'group' - Group data\n * - Expand = 'expand' - Expand details\n * - Collapse = 'collapse' - Collapse details\n * - Pin = 'pin' - Pin to favorites\n * - Bookmark = 'bookmark' - Bookmark item\n * - Favorite = 'favorite' - Mark as favorite\n * - Star = 'star' - Star rating\n *\n * Workflow Actions:\n * - Start = 'start' - Start process/workflow\n * - Stop = 'stop' - Stop process\n * - Pause = 'pause' - Pause process\n * - Resume = 'resume' - Resume process\n * - Cancel = 'cancel' - Cancel operation\n * - Complete = 'complete' - Mark as complete\n * - Close = 'close' - Close item\n * - Reopen = 'reopen' - Reopen closed item\n * - Forward = 'forward' - Forward to next step\n * - Back = 'back' - Go back\n *\n * Communication Actions:\n * - Reply = 'reply' - Reply to message\n * - Forward = 'forward' - Forward message\n * - Notify = 'notify' - Send notification\n * - Invite = 'invite' - Invite user\n * - Join = 'join' - Join group/meeting\n * - Leave = 'leave' - Leave group/meeting\n *\n * Security Actions:\n * - Login = 'login' - User login\n * - Logout = 'logout' - User logout\n * - Block = 'block' - Block user/content\n * - Unblock = 'unblock' - Unblock user/content\n * - Ban = 'ban' - Ban user\n * - Unban = 'unban' - Unban user\n * - Verify = 'verify' - Verify identity\n * - Authenticate = 'authenticate' - Authenticate\n *\n * File & Media Actions:\n * - Open = 'open' - Open file\n * - Save = 'save' - Save file\n * - SaveAs = 'save-as' - Save as new file\n * - Attach = 'attach' - Attach file\n * - Detach = 'detach' - Detach file\n * - Compress = 'compress' - Compress files\n * - Extract = 'extract' - Extract archive\n * - Convert = 'convert' - Convert format\n * - Crop = 'crop' - Crop image\n * - Resize = 'resize' - Resize image\n *\n * System Actions:\n * - Sync = 'sync' - Synchronize data\n * - Backup = 'backup' - Create backup\n * - Restore = 'restore' - Restore from backup\n * - Reset = 'reset' - Reset to defaults\n * - Clear = 'clear' - Clear data\n * - Optimize = 'optimize' - Optimize performance\n * - Update = 'update' - Update system\n * - Install = 'install' - Install component\n * - Uninstall = 'uninstall' - Uninstall component\n * - Enable = 'enable' - Enable feature\n * - Disable = 'disable' - Disable feature\n *\n * Analytics & Monitoring:\n * - Monitor = 'monitor' - Monitor activity\n * - Track = 'track' - Track progress\n * - Analyze = 'analyze' - Analyze data\n * - Debug = 'debug' - Debug issue\n * - Log = 'log' - View logs\n * - Alert = 'alert' - Set alert\n * - Dashboard = 'dashboard' - View dashboard\n * - Metrics = 'metrics' - View metrics\n *\n * Collaboration Actions:\n * - Collaborate = 'collaborate' - Start collaboration\n * - Share = 'share' - Share content\n * - Comment = 'comment' - Add comment\n * - Like = 'like' - Like content\n * - Follow = 'follow' - Follow user/content\n * - Subscribe = 'subscribe' - Subscribe to updates\n * - Unsubscribe = 'unsubscribe' - Unsubscribe\n * - Rate = 'rate' - Rate content\n * - Review = 'review' - Review content\n * - Recommend = 'recommend' - Recommend content\n */\nexport var AXPSystemActionType;\n(function (AXPSystemActionType) {\n AXPSystemActionType[\"View\"] = \"view\";\n AXPSystemActionType[\"Create\"] = \"create\";\n AXPSystemActionType[\"Update\"] = \"update\";\n AXPSystemActionType[\"Delete\"] = \"delete\";\n AXPSystemActionType[\"Approve\"] = \"approve\";\n AXPSystemActionType[\"Reject\"] = \"reject\";\n AXPSystemActionType[\"Submit\"] = \"submit\";\n AXPSystemActionType[\"Export\"] = \"export\";\n AXPSystemActionType[\"Import\"] = \"import\";\n AXPSystemActionType[\"Print\"] = \"print\";\n AXPSystemActionType[\"Assign\"] = \"assign\";\n AXPSystemActionType[\"Lock\"] = \"lock\";\n AXPSystemActionType[\"Unlock\"] = \"unlock\";\n AXPSystemActionType[\"Share\"] = \"share\";\n AXPSystemActionType[\"Configure\"] = \"configure\";\n AXPSystemActionType[\"Reorder\"] = \"reorder\";\n AXPSystemActionType[\"Preview\"] = \"preview\";\n AXPSystemActionType[\"Duplicate\"] = \"duplicate\";\n AXPSystemActionType[\"Archive\"] = \"archive\";\n AXPSystemActionType[\"Publish\"] = \"publish\";\n AXPSystemActionType[\"Unpublish\"] = \"unpublish\";\n AXPSystemActionType[\"Upload\"] = \"upload\";\n AXPSystemActionType[\"Download\"] = \"download\";\n AXPSystemActionType[\"Copy\"] = \"copy\";\n AXPSystemActionType[\"Move\"] = \"move\";\n AXPSystemActionType[\"Rename\"] = \"rename\";\n AXPSystemActionType[\"Restore\"] = \"restore\";\n AXPSystemActionType[\"Manage\"] = \"manage\";\n AXPSystemActionType[\"Info\"] = \"info\";\n AXPSystemActionType[\"Confirm\"] = \"confirm\";\n AXPSystemActionType[\"Design\"] = \"design\";\n AXPSystemActionType[\"VersionHistory\"] = \"version-history\";\n AXPSystemActionType[\"Compare\"] = \"compare\";\n AXPSystemActionType[\"Comments\"] = \"comments\";\n AXPSystemActionType[\"Sign\"] = \"sign\";\n AXPSystemActionType[\"Setup\"] = \"setup\";\n AXPSystemActionType[\"Send\"] = \"send\";\n AXPSystemActionType[\"Report\"] = \"report\";\n AXPSystemActionType[\"Sent\"] = \"sent\";\n AXPSystemActionType[\"Review\"] = \"review\";\n AXPSystemActionType[\"Generate\"] = \"generate\";\n AXPSystemActionType[\"Refresh\"] = \"refresh\";\n AXPSystemActionType[\"Reload\"] = \"reload\";\n AXPSystemActionType[\"Search\"] = \"search\";\n AXPSystemActionType[\"Filter\"] = \"filter\";\n AXPSystemActionType[\"Sort\"] = \"sort\";\n AXPSystemActionType[\"Start\"] = \"start\";\n AXPSystemActionType[\"Stop\"] = \"stop\";\n AXPSystemActionType[\"Pause\"] = \"pause\";\n AXPSystemActionType[\"Cancel\"] = \"cancel\";\n AXPSystemActionType[\"Close\"] = \"close\";\n AXPSystemActionType[\"Complete\"] = \"complete\";\n AXPSystemActionType[\"Save\"] = \"save\";\n AXPSystemActionType[\"SaveAs\"] = \"save-as\";\n AXPSystemActionType[\"Sync\"] = \"sync\";\n AXPSystemActionType[\"Reset\"] = \"reset\";\n AXPSystemActionType[\"Clear\"] = \"clear\";\n})(AXPSystemActionType || (AXPSystemActionType = {}));\nconst i18n = (key) => `@general:actions.${key}`;\nexport const AXPSystemActions = Object.freeze({\n View: {\n key: AXPSystemActionType.View,\n title: i18n('view.title'),\n icon: 'fa-light fa-eye',\n color: 'primary',\n descriptions: {\n title: i18n('view.title'),\n tooltip: i18n('view.description'),\n permission: i18n('view.permission'),\n audit: i18n('view.audit')\n }\n },\n Create: {\n key: AXPSystemActionType.Create,\n title: i18n('create.title'),\n icon: 'fa-light fa-plus',\n color: 'primary',\n descriptions: {\n title: i18n('create.title'),\n tooltip: i18n('create.description'),\n permission: i18n('create.permission'),\n audit: i18n('create.audit')\n }\n },\n Edit: {\n key: AXPSystemActionType.Update,\n title: i18n('edit.title'),\n icon: 'fa-light fa-pen',\n color: 'default',\n descriptions: {\n title: i18n('edit.title'),\n tooltip: i18n('edit.description'),\n permission: i18n('edit.permission'),\n audit: i18n('edit.audit')\n }\n },\n Delete: {\n key: AXPSystemActionType.Delete,\n title: i18n('delete.title'),\n icon: 'fa-light fa-trash',\n color: 'danger',\n critical: true,\n descriptions: {\n title: i18n('delete.title'),\n tooltip: i18n('delete.description'),\n permission: i18n('delete.permission'),\n audit: i18n('delete.audit')\n }\n },\n Approve: {\n key: AXPSystemActionType.Approve,\n title: i18n('approve.title'),\n icon: 'fa-light fa-circle-check',\n color: 'success',\n critical: true,\n descriptions: {\n title: i18n('approve.title'),\n tooltip: i18n('approve.description'),\n permission: i18n('approve.permission'),\n audit: i18n('approve.audit')\n }\n },\n Submit: {\n key: AXPSystemActionType.Submit,\n title: i18n('submit.title'),\n icon: 'fa-light fa-paper-plane',\n color: 'primary',\n descriptions: {\n title: i18n('submit.title'),\n tooltip: i18n('submit.description'),\n permission: i18n('submit.permission'),\n audit: i18n('submit.audit')\n }\n },\n Reject: {\n key: AXPSystemActionType.Reject,\n title: i18n('reject.title'),\n icon: 'fa-light fa-ban',\n color: 'danger',\n critical: true,\n descriptions: {\n title: i18n('reject.title'),\n tooltip: i18n('reject.description'),\n permission: i18n('reject.permission'),\n audit: i18n('reject.audit')\n }\n },\n Export: {\n key: AXPSystemActionType.Export,\n title: i18n('export.title'),\n icon: 'fa-light fa-download',\n color: 'default',\n descriptions: {\n title: i18n('export.title'),\n tooltip: i18n('export.description'),\n permission: i18n('export.permission'),\n audit: i18n('export.audit')\n }\n },\n Import: {\n key: AXPSystemActionType.Import,\n title: i18n('import.title'),\n icon: 'fa-light fa-upload',\n color: 'default',\n descriptions: {\n title: i18n('import.title'),\n tooltip: i18n('import.description'),\n permission: i18n('import.permission'),\n audit: i18n('import.audit')\n }\n },\n Print: {\n key: AXPSystemActionType.Print,\n title: i18n('print.title'),\n icon: 'fa-light fa-print',\n color: 'default',\n descriptions: {\n title: i18n('print.title'),\n tooltip: i18n('print.description'),\n permission: i18n('print.permission'),\n audit: i18n('print.audit')\n }\n },\n Duplicate: {\n key: AXPSystemActionType.Duplicate,\n title: i18n('duplicate.title'),\n icon: 'fa-light fa-clone',\n color: 'warning',\n descriptions: {\n title: i18n('duplicate.title'),\n tooltip: i18n('duplicate.description'),\n permission: i18n('duplicate.permission'),\n audit: i18n('duplicate.audit')\n }\n },\n Archive: {\n key: AXPSystemActionType.Archive,\n title: i18n('archive.title'),\n icon: 'fa-light fa-box-archive',\n color: 'default',\n descriptions: {\n title: i18n('archive.title'),\n tooltip: i18n('archive.description'),\n permission: i18n('archive.permission'),\n audit: i18n('archive.audit')\n }\n },\n Restore: {\n key: AXPSystemActionType.Restore,\n title: i18n('restore.title'),\n icon: 'fa-light fa-arrow-rotate-left',\n color: 'default',\n descriptions: {\n title: i18n('restore.title'),\n tooltip: i18n('restore.description'),\n permission: i18n('restore.permission'),\n audit: i18n('restore.audit')\n }\n },\n Assign: {\n key: AXPSystemActionType.Assign,\n title: i18n('assign.title'),\n icon: 'fa-light fa-user-plus',\n color: 'primary',\n descriptions: {\n title: i18n('assign.title'),\n tooltip: i18n('assign.description'),\n permission: i18n('assign.permission'),\n audit: i18n('assign.audit')\n }\n },\n Lock: {\n key: AXPSystemActionType.Lock,\n title: i18n('lock.title'),\n icon: 'fa-light fa-lock',\n color: 'warning',\n descriptions: {\n title: i18n('lock.title'),\n tooltip: i18n('lock.description'),\n permission: i18n('lock.permission'),\n audit: i18n('lock.audit')\n }\n },\n Unlock: {\n key: AXPSystemActionType.Unlock,\n title: i18n('unlock.title'),\n icon: 'fa-light fa-unlock',\n color: 'success',\n descriptions: {\n title: i18n('unlock.title'),\n tooltip: i18n('unlock.description'),\n permission: i18n('unlock.permission'),\n audit: i18n('unlock.audit')\n }\n },\n Share: {\n key: AXPSystemActionType.Share,\n title: i18n('share.title'),\n icon: 'fa-light fa-share-nodes',\n color: 'info',\n descriptions: {\n title: i18n('share.title'),\n tooltip: i18n('share.description'),\n permission: i18n('share.permission'),\n audit: i18n('share.audit')\n }\n },\n Configure: {\n key: AXPSystemActionType.Configure,\n title: i18n('configure.title'),\n icon: 'fa-light fa-sliders',\n color: 'primary',\n descriptions: {\n title: i18n('configure.title'),\n tooltip: i18n('configure.description'),\n permission: i18n('configure.permission'),\n audit: i18n('configure.audit')\n }\n },\n Reorder: {\n key: AXPSystemActionType.Reorder,\n title: i18n('reorder.title'),\n icon: 'fa-light fa-arrow-down-up-across-line',\n color: 'default',\n descriptions: {\n title: i18n('reorder.title'),\n tooltip: i18n('reorder.description'),\n permission: i18n('reorder.permission'),\n audit: i18n('reorder.audit')\n }\n },\n Preview: {\n key: AXPSystemActionType.Preview,\n title: i18n('preview.title'),\n icon: 'fa-light fa-magnifying-glass',\n color: 'default',\n descriptions: {\n title: i18n('preview.title'),\n tooltip: i18n('preview.description'),\n permission: i18n('preview.permission'),\n audit: i18n('preview.audit')\n }\n },\n Publish: {\n key: AXPSystemActionType.Publish,\n title: i18n('publish.title'),\n icon: 'fa-light fa-globe',\n color: 'success',\n descriptions: {\n title: i18n('publish.title'),\n tooltip: i18n('publish.description'),\n permission: i18n('publish.permission'),\n audit: i18n('publish.audit')\n }\n },\n Unpublish: {\n key: AXPSystemActionType.Unpublish,\n title: i18n('unpublish.title'),\n icon: 'fa-light fa-globe-slash',\n color: 'danger',\n descriptions: {\n title: i18n('unpublish.title'),\n tooltip: i18n('unpublish.description'),\n permission: i18n('unpublish.permission'),\n audit: i18n('unpublish.audit')\n }\n },\n Upload: {\n key: AXPSystemActionType.Upload,\n title: i18n('upload.title'),\n icon: 'fa-light fa-upload',\n color: 'default',\n descriptions: {\n title: i18n('upload.title'),\n tooltip: i18n('upload.description'),\n permission: i18n('upload.permission'),\n audit: i18n('upload.audit')\n }\n },\n Download: {\n key: AXPSystemActionType.Download,\n title: i18n('download.title'),\n icon: 'fa-light fa-download',\n color: 'default',\n descriptions: {\n title: i18n('download.title'),\n tooltip: i18n('download.description'),\n permission: i18n('download.permission'),\n audit: i18n('download.audit')\n }\n },\n Copy: {\n key: AXPSystemActionType.Copy,\n title: i18n('copy.title'),\n icon: 'fa-light fa-copy',\n color: 'default',\n descriptions: {\n title: i18n('copy.title'),\n tooltip: i18n('copy.description'),\n permission: i18n('copy.permission'),\n audit: i18n('copy.audit')\n }\n },\n Move: {\n key: AXPSystemActionType.Move,\n title: i18n('move.title'),\n icon: 'fa-light fa-arrow-right-arrow-left',\n color: 'default',\n descriptions: {\n title: i18n('move.title'),\n tooltip: i18n('move.description'),\n permission: i18n('move.permission'),\n audit: i18n('move.audit')\n }\n },\n Rename: {\n key: AXPSystemActionType.Rename,\n title: i18n('rename.title'),\n icon: 'fa-light fa-pen',\n color: 'default',\n descriptions: {\n title: i18n('rename.title'),\n tooltip: i18n('rename.description'),\n permission: i18n('rename.permission'),\n audit: i18n('rename.audit')\n }\n },\n Manage: {\n key: AXPSystemActionType.Manage,\n title: i18n('manage.title'),\n icon: 'fa-light fa-gear',\n color: 'default',\n descriptions: {\n title: i18n('manage.title'),\n tooltip: i18n('manage.description'),\n permission: i18n('manage.permission'),\n audit: i18n('manage.audit')\n }\n },\n Info: {\n key: AXPSystemActionType.Info,\n title: i18n('info.title'),\n icon: 'fa-light fa-info',\n color: 'default',\n descriptions: {\n title: i18n('info.title'),\n tooltip: i18n('info.description'),\n permission: i18n('info.permission'),\n audit: i18n('info.audit')\n }\n },\n Confirm: {\n key: AXPSystemActionType.Confirm,\n title: i18n('confirm.title'),\n icon: 'fa-light fa-check',\n color: 'success',\n descriptions: {\n title: i18n('confirm.title'),\n tooltip: i18n('confirm.description'),\n permission: i18n('confirm.permission'),\n audit: i18n('confirm.audit')\n }\n },\n Design: {\n key: AXPSystemActionType.Design,\n title: i18n('design.title'),\n icon: 'fa-light fa-paintbrush',\n color: 'default',\n descriptions: {\n title: i18n('design.title'),\n tooltip: i18n('design.description'),\n permission: i18n('design.permission'),\n audit: i18n('design.audit')\n }\n },\n VersionHistory: {\n key: AXPSystemActionType.VersionHistory,\n title: i18n('version-history.title'),\n icon: 'fa-light fa-history',\n color: 'default',\n descriptions: {\n title: i18n('version-history.title'),\n tooltip: i18n('version-history.description'),\n permission: i18n('version-history.permission'),\n audit: i18n('version-history.audit')\n }\n },\n Compare: {\n key: AXPSystemActionType.Compare,\n title: i18n('compare.title'),\n icon: 'fa-light fa-code-compare',\n color: 'default',\n descriptions: {\n title: i18n('compare.title'),\n tooltip: i18n('compare.description'),\n permission: i18n('compare.permission'),\n audit: i18n('compare.audit')\n }\n },\n Comments: {\n key: AXPSystemActionType.Comments,\n title: i18n('comments.title'),\n icon: 'fa-light fa-comments',\n color: 'default',\n descriptions: {\n title: i18n('comments.title'),\n tooltip: i18n('comments.description'),\n permission: i18n('comments.permission'),\n audit: i18n('comments.audit')\n }\n },\n Sign: {\n key: AXPSystemActionType.Sign,\n title: i18n('sign.title'),\n icon: 'fa-light fa-signature',\n color: 'default',\n descriptions: {\n title: i18n('sign.title'),\n tooltip: i18n('sign.description'),\n permission: i18n('sign.permission'),\n audit: i18n('sign.audit')\n }\n },\n Setup: {\n key: AXPSystemActionType.Setup,\n title: i18n('setup.title'),\n icon: 'fa-light fa-cog',\n color: 'default',\n descriptions: {\n title: i18n('setup.title'),\n tooltip: i18n('setup.description'),\n permission: i18n('setup.permission'),\n audit: i18n('setup.audit')\n }\n },\n Send: {\n key: AXPSystemActionType.Send,\n title: i18n('send.title'),\n icon: 'fa-light fa-envelope',\n color: 'default',\n descriptions: {\n title: i18n('send.title'),\n tooltip: i18n('send.description'),\n permission: i18n('send.permission'),\n audit: i18n('send.audit')\n }\n },\n Report: {\n key: AXPSystemActionType.Report,\n title: i18n('report.title'),\n icon: 'fa-light fa-chart-line',\n color: 'default',\n descriptions: {\n title: i18n('report.title'),\n tooltip: i18n('report.description'),\n permission: i18n('report.permission'),\n audit: i18n('report.audit')\n }\n },\n Sent: {\n key: AXPSystemActionType.Sent,\n title: i18n('sent.title'),\n icon: 'fa-light fa-paper-plane',\n color: 'default',\n descriptions: {\n title: i18n('sent.title'),\n tooltip: i18n('sent.description'),\n permission: i18n('sent.permission'),\n audit: i18n('sent.audit')\n }\n },\n Review: {\n key: AXPSystemActionType.Review,\n title: i18n('review.title'),\n icon: 'fa-light fa-eye',\n color: 'default',\n descriptions: {\n title: i18n('review.title'),\n tooltip: i18n('review.description'),\n permission: i18n('review.permission'),\n audit: i18n('review.audit')\n }\n },\n Generate: {\n key: AXPSystemActionType.Generate,\n title: i18n('generate.title'),\n icon: 'fa-light fa-wand-magic-sparkles',\n color: 'primary',\n descriptions: {\n title: i18n('generate.title'),\n tooltip: i18n('generate.description'),\n permission: i18n('generate.permission'),\n audit: i18n('generate.audit')\n }\n },\n Refresh: {\n key: AXPSystemActionType.Refresh,\n title: i18n('refresh.title'),\n icon: 'fa-light fa-arrows-rotate',\n color: 'default',\n descriptions: {\n title: i18n('refresh.title'),\n tooltip: i18n('refresh.description'),\n permission: i18n('refresh.permission'),\n audit: i18n('refresh.audit')\n }\n },\n Reload: {\n key: AXPSystemActionType.Reload,\n title: i18n('reload.title'),\n icon: 'fa-light fa-arrows-rotate',\n color: 'default',\n descriptions: {\n title: i18n('reload.title'),\n tooltip: i18n('reload.description'),\n permission: i18n('reload.permission'),\n audit: i18n('reload.audit')\n }\n },\n Search: {\n key: AXPSystemActionType.Search,\n title: i18n('search.title'),\n icon: 'fa-light fa-magnifying-glass',\n color: 'default',\n descriptions: {\n title: i18n('search.title'),\n tooltip: i18n('search.description'),\n permission: i18n('search.permission'),\n audit: i18n('search.audit')\n }\n },\n Filter: {\n key: AXPSystemActionType.Filter,\n title: i18n('filter.title'),\n icon: 'fa-light fa-filter',\n color: 'default',\n descriptions: {\n title: i18n('filter.title'),\n tooltip: i18n('filter.description'),\n permission: i18n('filter.permission'),\n audit: i18n('filter.audit')\n }\n },\n Sort: {\n key: AXPSystemActionType.Sort,\n title: i18n('sort.title'),\n icon: 'fa-light fa-arrow-down-up-across-line',\n color: 'default',\n descriptions: {\n title: i18n('sort.title'),\n tooltip: i18n('sort.description'),\n permission: i18n('sort.permission'),\n audit: i18n('sort.audit')\n }\n },\n Start: {\n key: AXPSystemActionType.Start,\n title: i18n('start.title'),\n icon: 'fa-light fa-play',\n color: 'success',\n descriptions: {\n title: i18n('start.title'),\n tooltip: i18n('start.description'),\n permission: i18n('start.permission'),\n audit: i18n('start.audit')\n }\n },\n Stop: {\n key: AXPSystemActionType.Stop,\n title: i18n('stop.title'),\n icon: 'fa-light fa-stop',\n color: 'danger',\n critical: true,\n descriptions: {\n title: i18n('stop.title'),\n tooltip: i18n('stop.description'),\n permission: i18n('stop.permission'),\n audit: i18n('stop.audit')\n }\n },\n Pause: {\n key: AXPSystemActionType.Pause,\n title: i18n('pause.title'),\n icon: 'fa-light fa-pause',\n color: 'warning',\n descriptions: {\n title: i18n('pause.title'),\n tooltip: i18n('pause.description'),\n permission: i18n('pause.permission'),\n audit: i18n('pause.audit')\n }\n },\n Cancel: {\n key: AXPSystemActionType.Cancel,\n title: i18n('cancel.title'),\n icon: 'fa-light fa-xmark',\n color: 'danger',\n critical: true,\n descriptions: {\n title: i18n('cancel.title'),\n tooltip: i18n('cancel.description'),\n permission: i18n('cancel.permission'),\n audit: i18n('cancel.audit')\n }\n },\n Close: {\n key: AXPSystemActionType.Close,\n title: i18n('close.title'),\n icon: 'fa-light fa-xmark',\n color: 'default',\n descriptions: {\n title: i18n('close.title'),\n tooltip: i18n('close.description'),\n permission: i18n('close.permission'),\n audit: i18n('close.audit')\n }\n },\n Complete: {\n key: AXPSystemActionType.Complete,\n title: i18n('complete.title'),\n icon: 'fa-light fa-check',\n color: 'success',\n descriptions: {\n title: i18n('complete.title'),\n tooltip: i18n('complete.description'),\n permission: i18n('complete.permission'),\n audit: i18n('complete.audit')\n }\n },\n Save: {\n key: AXPSystemActionType.Save,\n title: i18n('save.title'),\n icon: 'fa-light fa-floppy-disk',\n color: 'primary',\n descriptions: {\n title: i18n('save.title'),\n tooltip: i18n('save.description'),\n permission: i18n('save.permission'),\n audit: i18n('save.audit')\n }\n },\n SaveAs: {\n key: AXPSystemActionType.SaveAs,\n title: i18n('save-as.title'),\n icon: 'fa-light fa-floppy-disk',\n color: 'default',\n descriptions: {\n title: i18n('save-as.title'),\n tooltip: i18n('save-as.description'),\n permission: i18n('save-as.permission'),\n audit: i18n('save-as.audit')\n }\n },\n Sync: {\n key: AXPSystemActionType.Sync,\n title: i18n('sync.title'),\n icon: 'fa-light fa-arrows-rotate',\n color: 'default',\n descriptions: {\n title: i18n('sync.title'),\n tooltip: i18n('sync.description'),\n permission: i18n('sync.permission'),\n audit: i18n('sync.audit')\n }\n },\n Reset: {\n key: AXPSystemActionType.Reset,\n title: i18n('reset.title'),\n icon: 'fa-light fa-arrow-rotate-left',\n color: 'warning',\n critical: true,\n descriptions: {\n title: i18n('reset.title'),\n tooltip: i18n('reset.description'),\n permission: i18n('reset.permission'),\n audit: i18n('reset.audit')\n }\n },\n Clear: {\n key: AXPSystemActionType.Clear,\n title: i18n('clear.title'),\n icon: 'fa-light fa-eraser',\n color: 'default',\n descriptions: {\n title: i18n('clear.title'),\n tooltip: i18n('clear.description'),\n permission: i18n('clear.permission'),\n audit: i18n('clear.audit')\n }\n },\n});\nexport function getSystemActions(type) {\n return Object.values(AXPSystemActions).find(action => action.key === type);\n}\n/**\n * Resolves the visual appearance (color and icon) for entity actions\n * using the system actions from the core module.\n */\nexport function resolveActionLook(actionType) {\n // Try to get system action first\n const systemActionType = actionType;\n if (systemActionType) {\n const systemAction = getSystemActions(systemActionType);\n if (systemAction) {\n return {\n color: (systemAction.color || 'default'),\n icon: systemAction.icon || ''\n };\n }\n }\n // Fallback for unknown actions\n return {\n color: 'default',\n icon: ''\n };\n}\n/**\n * Resolves the title, description, icon and color for button actions\n * using the system actions from the core module.\n * @param actionType\n * @returns\n */\nexport function getActionButton(actionType) {\n const systemActionType = actionType;\n if (systemActionType) {\n const systemAction = getSystemActions(systemActionType);\n if (systemAction) {\n return {\n name: actionType,\n icon: systemAction.icon || '',\n color: systemAction.color || 'default',\n title: systemAction.title,\n description: systemAction.descriptions.title\n };\n }\n }\n // Fallback for unknown actions\n return {\n name: actionType,\n title: actionType,\n description: `Perform ${actionType} action`,\n icon: '',\n color: 'default'\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3R5cGVzL2FjdGlvbnMudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyRkc7QUFFSCxNQUFNLENBQU4sSUFBWSxtQkEwRFg7QUExREQsV0FBWSxtQkFBbUI7SUFDM0Isb0NBQWEsQ0FBQTtJQUNiLHdDQUFpQixDQUFBO0lBQ2pCLHdDQUFpQixDQUFBO0lBQ2pCLHdDQUFpQixDQUFBO0lBQ2pCLDBDQUFtQixDQUFBO0lBQ25CLHdDQUFpQixDQUFBO0lBQ2pCLHdDQUFpQixDQUFBO0lBQ2pCLHdDQUFpQixDQUFBO0lBQ2pCLHdDQUFpQixDQUFBO0lBQ2pCLHNDQUFlLENBQUE7SUFDZix3Q0FBaUIsQ0FBQTtJQUNqQixvQ0FBYSxDQUFBO0lBQ2Isd0NBQWlCLENBQUE7SUFDakIsc0NBQWUsQ0FBQTtJQUNmLDhDQUF1QixDQUFBO0lBQ3ZCLDBDQUFtQixDQUFBO0lBQ25CLDBDQUFtQixDQUFBO0lBQ25CLDhDQUF1QixDQUFBO0lBQ3ZCLDBDQUFtQixDQUFBO0lBQ25CLDBDQUFtQixDQUFBO0lBQ25CLDhDQUF1QixDQUFBO0lBQ3ZCLHdDQUFpQixDQUFBO0lBQ2pCLDRDQUFxQixDQUFBO0lBQ3JCLG9DQUFhLENBQUE7SUFDYixvQ0FBYSxDQUFBO0lBQ2Isd0NBQWlCLENBQUE7SUFDakIsMENBQW1CLENBQUE7SUFDbkIsd0NBQWlCLENBQUE7SUFDakIsb0NBQWEsQ0FBQTtJQUNiLDBDQUFtQixDQUFBO0lBQ25CLHdDQUFpQixDQUFBO0lBQ2pCLHlEQUFrQyxDQUFBO0lBQ2xDLDBDQUFtQixDQUFBO0lBQ25CLDRDQUFx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SCxJQUFJLEVBQUUsVUFBVTtRQUNoQixLQUFLLEVBQUUsVUFBVTtRQUNqQixXQUFXLEVBQUUsV0FBVyxVQUFVLFNBQVM7UUFDM0MsSUFBSSxFQUFFLEVBQUU7UUFDUixLQUFLLEVBQUUsU0FBUztLQUNuQixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYU3R5bGVDb2xvclR5cGUgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuXG4vKipcbiAqIEFkZGl0aW9uYWwgc3VnZ2VzdGVkIGdlbmVyaWMgYWN0aW9ucyBmb3IgZnV0dXJlIGNvbnNpZGVyYXRpb246XG4gKiBcbiAqIERhdGEgJiBDb250ZW50IEFjdGlvbnM6XG4gKiAtIFNlYXJjaCA9ICdzZWFyY2gnIC0gU2VhcmNoIGZ1bmN0aW9uYWxpdHlcbiAqIC0gRmlsdGVyID0gJ2ZpbHRlcicgLSBBcHBseSBmaWx0ZXJzXG4gKiAtIFNvcnQgPSAnc29ydCcgLSBTb3J0IGRhdGFcbiAqIC0gR3JvdXAgPSAnZ3JvdXAnIC0gR3JvdXAgZGF0YVxuICogLSBFeHBhbmQgPSAnZXhwYW5kJyAtIEV4cGFuZCBkZXRhaWxzXG4gKiAtIENvbGxhcHNlID0gJ2NvbGxhcHNlJyAtIENvbGxhcHNlIGRldGFpbHNcbiAqIC0gUGluID0gJ3BpbicgLSBQaW4gdG8gZmF2b3JpdGVzXG4gKiAtIEJvb2ttYXJrID0gJ2Jvb2ttYXJrJyAtIEJvb2ttYXJrIGl0ZW1cbiAqIC0gRmF2b3JpdGUgPSAnZmF2b3JpdGUnIC0gTWFyayBhcyBmYXZvcml0ZVxuICogLSBTdGFyID0gJ3N0YXInIC0gU3RhciByYXRpbmdcbiAqIFxuICogV29ya2Zsb3cgQWN0aW9uczpcbiAqIC0gU3RhcnQgPSAnc3RhcnQnIC0gU3RhcnQgcHJvY2Vzcy93b3JrZmxvd1xuICogLSBTdG9wID0gJ3N0b3AnIC0gU3RvcCBwcm9jZXNzXG4gKiAtIFBhdXNlID0gJ3BhdXNlJyAtIFBhdXNlIHByb2Nlc3NcbiAqIC0gUmVzdW1lID0gJ3Jlc3VtZScgLSBSZXN1bWUgcHJvY2Vzc1xuICogLSBDYW5jZWwgPSAnY2FuY2VsJyAtIENhbmNlbCBvcGVyYXRpb25cbiAqIC0gQ29tcGxldGUgPSAnY29tcGxldGUnIC0gTWFyayBhcyBjb21wbGV0ZVxuICogLSBDbG9zZSA9ICdjbG9zZScgLSBDbG9zZSBpdGVtXG4gKiAtIFJlb3BlbiA9ICdyZW9wZW4nIC0gUmVvcGVuIGNsb3NlZCBpdGVtXG4gKiAtIEZvcndhcmQgPSAnZm9yd2FyZCcgLSBGb3J3YXJkIHRvIG5leHQgc3RlcFxuICogLSBCYWNrID0gJ2JhY2snIC0gR28gYmFja1xuICogXG4gKiBDb21tdW5pY2F0aW9uIEFjdGlvbnM6XG4gKiAtIFJlcGx5ID0gJ3JlcGx5JyAtIFJlcGx5IHRvIG1lc3NhZ2VcbiAqIC0gRm9yd2FyZCA9ICdmb3J3YXJkJyAtIEZvcndhcmQgbWVzc2FnZVxuICogLSBOb3RpZnkgPSAnbm90aWZ5JyAtIFNlbmQgbm90aWZpY2F0aW9uXG4gKiAtIEludml0ZSA9ICdpbnZpdGUnIC0gSW52aXRlIHVzZXJcbiAqIC0gSm9pbiA9ICdqb2luJyAtIEpvaW4gZ3JvdXAvbWVldGluZ1xuICogLSBMZWF2ZSA9ICdsZWF2ZScgLSBMZWF2ZSBncm91cC9tZWV0aW5nXG4gKiBcbiAqIFNlY3VyaXR5IEFjdGlvbnM6XG4gKiAtIExvZ2luID0gJ2xvZ2luJyAtIFVzZXIgbG9naW5cbiAqIC0gTG9nb3V0ID0gJ2xvZ291dCcgLSBVc2VyIGxvZ291dFxuICogLSBCbG9jayA9ICdibG9jaycgLSBCbG9jayB1c2VyL2NvbnRlbnRcbiAqIC0gVW5ibG9jayA9ICd1bmJsb2NrJyAtIFVuYmxvY2sgdXNlci9jb250ZW50XG4gKiAtIEJhbiA9ICdiYW4nIC0gQmFuIHVzZXJcbiAqIC0gVW5iYW4gPSAndW5iYW4nIC0gVW5iYW4gdXNlclxuICogLSBWZXJpZnkgPSAndmVyaWZ5JyAtIFZlcmlmeSBpZGVudGl0eVxuICogLSBBdXRoZW50aWNhdGUgPSAnYXV0aGVudGljYXRlJyAtIEF1dGhlbnRpY2F0ZVxuICogXG4gKiBGaWxlICYgTWVkaWEgQWN0aW9uczpcbiAqIC0gT3BlbiA9ICdvcGVuJyAtIE9wZW4gZmlsZVxuICogLSBTYXZlID0gJ3NhdmUnIC0gU2F2ZSBmaWxlXG4gKiAtIFNhdmVBcyA9ICdzYXZlLWFzJyAtIFNhdmUgYXMgbmV3IGZpbGVcbiAqIC0gQXR0YWNoID0gJ2F0dGFjaCcgLSBBdHRhY2ggZmlsZVxuICogLSBEZXRhY2ggPSAnZGV0YWNoJyAtIERldGFjaCBmaWxlXG4gKiAtIENvbXByZXNzID0gJ2NvbXByZXNzJyAtIENvbXByZXNzIGZpbGVzXG4gKiAtIEV4dHJhY3QgPSAnZXh0cmFjdCcgLSBFeHRyYWN0IGFyY2hpdmVcbiAqIC0gQ29udmVydCA9ICdjb252ZXJ0JyAtIENvbnZlcnQgZm9ybWF0XG4gKiAtIENyb3AgPSAnY3JvcCcgLSBDcm9wIGltYWdlXG4gKiAtIFJlc2l6ZSA9ICdyZXNpemUnIC0gUmVzaXplIGltYWdlXG4gKiBcbiAqIFN5c3RlbSBBY3Rpb25zOlxuICogLSBTeW5jID0gJ3N5bmMnIC0gU3luY2hyb25pemUgZGF0YVxuICogLSBCYWNrdXAgPSAnYmFja3VwJyAtIENyZWF0ZSBiYWNrdXBcbiAqIC0gUmVzdG9yZSA9ICdyZXN0b3JlJyAtIFJlc3RvcmUgZnJvbSBiYWNrdXBcbiAqIC0gUmVzZXQgPSAncmVzZXQnIC0gUmVzZXQgdG8gZGVmYXVsdHNcbiAqIC0gQ2xlYXIgPSAnY2xlYXInIC0gQ2xlYXIgZGF0YVxuICogLSBPcHRpbWl6ZSA9ICdvcHRpbWl6ZScgLSBPcHRpbWl6ZSBwZXJmb3JtYW5jZVxuICogLSBVcGRhdGUgPSAndXBkYXRlJyAtIFVwZGF0ZSBzeXN0ZW1cbiAqIC0gSW5zdGFsbCA9ICdpbnN0YWxsJyAtIEluc3RhbGwgY29tcG9uZW50XG4gKiAtIFVuaW5zdGFsbCA9ICd1bmluc3RhbGwnIC0gVW5pbnN0YWxsIGNvbXBvbmVudFxuICogLSBFbmFibGUgPSAnZW5hYmxlJyAtIEVuYWJsZSBmZWF0dXJlXG4gKiAtIERpc2FibGUgPSAnZGlzYWJsZScgLSBEaXNhYmxlIGZlYXR1cmVcbiAqIFxuICogQW5hbHl0aWNzICYgTW9uaXRvcmluZzpcbiAqIC0gTW9uaXRvciA9ICdtb25pdG9yJyAtIE1vbml0b3IgYWN0aXZpdHlcbiAqIC0gVHJhY2sgPSAndHJhY2snIC0gVHJhY2sgcHJvZ3Jlc3NcbiAqIC0gQW5hbHl6ZSA9ICdhbmFseXplJyAtIEFuYWx5emUgZGF0YVxuICogLSBEZWJ1ZyA9ICdkZWJ1ZycgLSBEZWJ1ZyBpc3N1ZVxuICogLSBMb2cgPSAnbG9nJyAtIFZpZXcgbG9nc1xuICogLSBBbGVydCA9ICdhbGVydCcgLSBTZXQgYWxlcnRcbiAqIC0gRGFzaGJvYXJkID0gJ2Rhc2hib2FyZCcgLSBWaWV3IGRhc2hib2FyZFxuICogLSBNZXRyaWNzID0gJ21ldHJpY3MnIC0gVmlldyBtZXRyaWNzXG4gKiBcbiAqIENvbGxhYm9yYXRpb24gQWN0aW9uczpcbiAqIC0gQ29sbGFib3JhdGUgPSAnY29sbGFib3JhdGUnIC0gU3RhcnQgY29sbGFib3JhdGlvblxuICogLSBTaGFyZSA9ICdzaGFyZScgLSBTaGFyZSBjb250ZW50XG4gKiAtIENvbW1lbnQgPSAnY29tbWVudCcgLSBBZGQgY29tbWVudFxuICogLSBMaWtlID0gJ2xpa2UnIC0gTGlrZSBjb250ZW50XG4gKiAtIEZvbGxvdyA9ICdmb2xsb3cnIC0gRm9sbG93IHVzZXIvY29udGVudFxuICogLSBTdWJzY3JpYmUgPSAnc3Vic2NyaWJlJyAtIFN1YnNjcmliZSB0byB1cGRhdGVzXG4gKiAtIFVuc3Vic2NyaWJlID0gJ3Vuc3Vic2NyaWJlJyAtIFVuc3Vic2NyaWJlXG4gKiAtIFJhdGUgPSAncmF0ZScgLSBSYXRlIGNvbnRlbnRcbiAqIC0gUmV2aWV3ID0gJ3JldmlldycgLSBSZXZpZXcgY29udGVudFxuICogLSBSZWNvbW1lbmQgPSAncmVjb21tZW5kJyAtIFJlY29tbWVuZCBjb250ZW50XG4gKi9cblxuZXhwb3J0IGVudW0gQVhQU3lzdGVtQWN0aW9uVHlwZSB7XG4gICAgVmlldyA9ICd2aWV3JyxcbiAgICBDcmVhdGUgPSAnY3JlYXRlJyxcbiAgICBVcGRhdGUgPSAndXBkYXRlJyxcbiAgICBEZWxldGUgPSAnZGVsZXRlJyxcbiAgICBBcHByb3ZlID0gJ2FwcHJvdmUnLFxuICAgIFJlamVjdCA9ICdyZWplY3QnLFxuICAgIFN1Ym1pdCA9ICdzdWJtaXQnLFxuICAgIEV4cG9ydCA9ICdleHBvcnQnLFxuICAgIEltcG9ydCA9ICdpbXBvcnQnLFxuICAgIFByaW50ID0gJ3ByaW50JyxcbiAgICBBc3NpZ24gPSAnYXNzaWduJyxcbiAgICBMb2NrID0gJ2xvY2snLFxuICAgIFVubG9jayA9ICd1bmxvY2snLFxuICAgIFNoYXJlID0gJ3NoYXJlJyxcbiAgICBDb25maWd1cmUgPSAnY29uZmlndXJlJyxcbiAgICBSZW9yZGVyID0gJ3Jlb3JkZXInLFxuICAgIFByZXZpZXcgPSAncHJldmlldycsXG4gICAgRHVwbGljYXRlID0gJ2R1cGxpY2F0ZScsXG4gICAgQXJjaGl2ZSA9ICdhcmNoaXZlJyxcbiAgICBQdWJsaXNoID0gJ3B1Ymxpc2gnLFxuICAgIFVucHVibGlzaCA9ICd1bnB1Ymxpc2gnLFxuICAgIFVwbG9hZCA9ICd1cGxvYWQnLFxuICAgIERvd25sb2FkID0gJ2Rvd25sb2FkJyxcbiAgICBDb3B5ID0gJ2NvcHknLFxuICAgIE1vdmUgPSAnbW92ZScsXG4gICAgUmVuYW1lID0gJ3JlbmFtZScsXG4gICAgUmVzdG9yZSA9ICdyZXN0b3JlJyxcbiAgICBNYW5hZ2UgPSAnbWFuYWdlJyxcbiAgICBJbmZvID0gJ2luZm8nLFxuICAgIENvbmZpcm0gPSAnY29uZmlybScsXG4gICAgRGVzaWduID0gJ2Rlc2lnbicsXG4gICAgVmVyc2lvbkhpc3RvcnkgPSAndmVyc2lvbi1oaXN0b3J5JyxcbiAgICBDb21wYXJlID0gJ2NvbXBhcmUnLFxuICAgIENvbW1lbnRzID0gJ2NvbW1lbnRzJyxcbiAgICBTaWduID0gJ3NpZ24nLFxuICAgIFNldHVwID0gJ3NldHVwJyxcbiAgICBTZW5kID0gJ3NlbmQnLFxuICAgIFJlcG9ydCA9ICdyZXBvcnQnLFxuICAgIFNlbnQgPSAnc2VudCcsXG4gICAgUmV2aWV3ID0gJ3JldmlldycsXG4gICAgR2VuZXJhdGUgPSAnZ2VuZXJhdGUnLFxuICAgIFJlZnJlc2ggPSAncmVmcmVzaCcsXG4gICAgUmVsb2FkID0gJ3JlbG9hZCcsXG4gICAgU2VhcmNoID0gJ3NlYXJjaCcsXG4gICAgRmlsdGVyID0gJ2ZpbHRlcicsXG4gICAgU29ydCA9ICdzb3J0JyxcbiAgICBTdGFydCA9ICdzdGFydCcsXG4gICAgU3RvcCA9ICdzdG9wJyxcbiAgICBQYXVzZSA9ICdwYXVzZScsXG4gICAgQ2FuY2VsID0gJ2NhbmNlbCcsXG4gICAgQ2xvc2UgPSAnY2xvc2UnLFxuICAgIENvbXBsZXRlID0gJ2NvbXBsZXRlJyxcbiAgICBTYXZlID0gJ3NhdmUnLFxuICAgIFNhdmVBcyA9ICdzYXZlLWFzJyxcbiAgICBTeW5jID0gJ3N5bmMnLFxuICAgIFJlc2V0ID0gJ3Jlc2V0JyxcbiAgICBDbGVhciA9ICdjbGVhcicsXG59XG5leHBvcnQgaW50ZXJmYWNlIEFYUFN5c3RlbUFjdGlvbiB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIGNvbG9yPzogc3RyaW5nO1xuICAgIGNyaXRpY2FsPzogYm9vbGVhbjtcbiAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgdGl0bGU6IHN0cmluZztcbiAgICAgICAgdG9vbHRpcDogc3RyaW5nO1xuICAgICAgICBwZXJtaXNzaW9uOiBzdHJpbmc7XG4gICAgICAgIGF1ZGl0OiBzdHJpbmc7XG4gICAgfTtcbn1cblxuY29uc3QgaTE4biA9IChrZXk6IHN0cmluZykgPT4gYEBnZW5lcmFsOmFjdGlvbnMuJHtrZXl9YDtcblxuZXhwb3J0IGNvbnN0IEFYUFN5c3RlbUFjdGlvbnMgPSBPYmplY3QuZnJlZXplKHtcbiAgICBWaWV3OiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5WaWV3LFxuICAgICAgICB0aXRsZTogaTE4bigndmlldy50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZXllJyxcbiAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigndmlldy50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigndmlldy5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigndmlldy5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigndmlldy5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIENyZWF0ZToge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuQ3JlYXRlLFxuICAgICAgICB0aXRsZTogaTE4bignY3JlYXRlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1wbHVzJyxcbiAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignY3JlYXRlLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdjcmVhdGUuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2NyZWF0ZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignY3JlYXRlLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgRWRpdDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuVXBkYXRlLFxuICAgICAgICB0aXRsZTogaTE4bignZWRpdC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcGVuJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignZWRpdC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignZWRpdC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignZWRpdC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignZWRpdC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIERlbGV0ZToge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuRGVsZXRlLFxuICAgICAgICB0aXRsZTogaTE4bignZGVsZXRlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS10cmFzaCcsXG4gICAgICAgIGNvbG9yOiAnZGFuZ2VyJyxcbiAgICAgICAgY3JpdGljYWw6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2RlbGV0ZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignZGVsZXRlLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdkZWxldGUucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2RlbGV0ZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIEFwcHJvdmU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkFwcHJvdmUsXG4gICAgICAgIHRpdGxlOiBpMThuKCdhcHByb3ZlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1jaXJjbGUtY2hlY2snLFxuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICBjcml0aWNhbDogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignYXBwcm92ZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignYXBwcm92ZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignYXBwcm92ZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignYXBwcm92ZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFN1Ym1pdDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuU3VibWl0LFxuICAgICAgICB0aXRsZTogaTE4bignc3VibWl0LnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1wYXBlci1wbGFuZScsXG4gICAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3N1Ym1pdC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignc3VibWl0LmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdzdWJtaXQucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3N1Ym1pdC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFJlamVjdDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuUmVqZWN0LFxuICAgICAgICB0aXRsZTogaTE4bigncmVqZWN0LnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1iYW4nLFxuICAgICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICAgIGNyaXRpY2FsOiB0cnVlLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdyZWplY3QudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3JlamVjdC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncmVqZWN0LnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdyZWplY3QuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBFeHBvcnQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkV4cG9ydCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2V4cG9ydC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZG93bmxvYWQnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdleHBvcnQudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2V4cG9ydC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignZXhwb3J0LnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdleHBvcnQuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBJbXBvcnQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkltcG9ydCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2ltcG9ydC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtdXBsb2FkJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignaW1wb3J0LnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdpbXBvcnQuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2ltcG9ydC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignaW1wb3J0LmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgUHJpbnQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlByaW50LFxuICAgICAgICB0aXRsZTogaTE4bigncHJpbnQudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXByaW50JyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigncHJpbnQudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3ByaW50LmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdwcmludC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncHJpbnQuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBEdXBsaWNhdGU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkR1cGxpY2F0ZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2R1cGxpY2F0ZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtY2xvbmUnLFxuICAgICAgICBjb2xvcjogJ3dhcm5pbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdkdXBsaWNhdGUudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2R1cGxpY2F0ZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignZHVwbGljYXRlLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdkdXBsaWNhdGUuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBBcmNoaXZlOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5BcmNoaXZlLFxuICAgICAgICB0aXRsZTogaTE4bignYXJjaGl2ZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtYm94LWFyY2hpdmUnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdhcmNoaXZlLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdhcmNoaXZlLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdhcmNoaXZlLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdhcmNoaXZlLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgUmVzdG9yZToge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuUmVzdG9yZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3Jlc3RvcmUudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWFycm93LXJvdGF0ZS1sZWZ0JyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigncmVzdG9yZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigncmVzdG9yZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncmVzdG9yZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncmVzdG9yZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIEFzc2lnbjoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuQXNzaWduLFxuICAgICAgICB0aXRsZTogaTE4bignYXNzaWduLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS11c2VyLXBsdXMnLFxuICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdhc3NpZ24udGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2Fzc2lnbi5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignYXNzaWduLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdhc3NpZ24uYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBMb2NrOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5Mb2NrLFxuICAgICAgICB0aXRsZTogaTE4bignbG9jay50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtbG9jaycsXG4gICAgICAgIGNvbG9yOiAnd2FybmluZycsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2xvY2sudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2xvY2suZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2xvY2sucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2xvY2suYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBVbmxvY2s6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlVubG9jayxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3VubG9jay50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtdW5sb2NrJyxcbiAgICAgICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigndW5sb2NrLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCd1bmxvY2suZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3VubG9jay5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigndW5sb2NrLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgU2hhcmU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlNoYXJlLFxuICAgICAgICB0aXRsZTogaTE4bignc2hhcmUudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXNoYXJlLW5vZGVzJyxcbiAgICAgICAgY29sb3I6ICdpbmZvJyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignc2hhcmUudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3NoYXJlLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdzaGFyZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignc2hhcmUuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBDb25maWd1cmU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkNvbmZpZ3VyZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2NvbmZpZ3VyZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtc2xpZGVycycsXG4gICAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2NvbmZpZ3VyZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignY29uZmlndXJlLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdjb25maWd1cmUucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2NvbmZpZ3VyZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFJlb3JkZXI6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlJlb3JkZXIsXG4gICAgICAgIHRpdGxlOiBpMThuKCdyZW9yZGVyLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1hcnJvdy1kb3duLXVwLWFjcm9zcy1saW5lJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigncmVvcmRlci50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigncmVvcmRlci5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncmVvcmRlci5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncmVvcmRlci5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFByZXZpZXc6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlByZXZpZXcsXG4gICAgICAgIHRpdGxlOiBpMThuKCdwcmV2aWV3LnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1tYWduaWZ5aW5nLWdsYXNzJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigncHJldmlldy50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigncHJldmlldy5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncHJldmlldy5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncHJldmlldy5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFB1Ymxpc2g6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlB1Ymxpc2gsXG4gICAgICAgIHRpdGxlOiBpMThuKCdwdWJsaXNoLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1nbG9iZScsXG4gICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3B1Ymxpc2gudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3B1Ymxpc2guZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3B1Ymxpc2gucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3B1Ymxpc2guYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBVbnB1Ymxpc2g6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlVucHVibGlzaCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3VucHVibGlzaC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZ2xvYmUtc2xhc2gnLFxuICAgICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3VucHVibGlzaC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigndW5wdWJsaXNoLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCd1bnB1Ymxpc2gucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3VucHVibGlzaC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFVwbG9hZDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuVXBsb2FkLFxuICAgICAgICB0aXRsZTogaTE4bigndXBsb2FkLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS11cGxvYWQnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCd1cGxvYWQudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3VwbG9hZC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigndXBsb2FkLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCd1cGxvYWQuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBEb3dubG9hZDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuRG93bmxvYWQsXG4gICAgICAgIHRpdGxlOiBpMThuKCdkb3dubG9hZC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZG93bmxvYWQnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdkb3dubG9hZC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignZG93bmxvYWQuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2Rvd25sb2FkLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdkb3dubG9hZC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIENvcHk6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkNvcHksXG4gICAgICAgIHRpdGxlOiBpMThuKCdjb3B5LnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1jb3B5JyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignY29weS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignY29weS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignY29weS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignY29weS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIE1vdmU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLk1vdmUsXG4gICAgICAgIHRpdGxlOiBpMThuKCdtb3ZlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1hcnJvdy1yaWdodC1hcnJvdy1sZWZ0JyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignbW92ZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignbW92ZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignbW92ZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignbW92ZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFJlbmFtZToge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuUmVuYW1lLFxuICAgICAgICB0aXRsZTogaTE4bigncmVuYW1lLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1wZW4nLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdyZW5hbWUudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3JlbmFtZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncmVuYW1lLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdyZW5hbWUuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBNYW5hZ2U6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLk1hbmFnZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ21hbmFnZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZ2VhcicsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ21hbmFnZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignbWFuYWdlLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdtYW5hZ2UucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ21hbmFnZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIEluZm86IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkluZm8sXG4gICAgICAgIHRpdGxlOiBpMThuKCdpbmZvLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1pbmZvJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignaW5mby50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignaW5mby5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignaW5mby5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignaW5mby5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIENvbmZpcm06IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkNvbmZpcm0sXG4gICAgICAgIHRpdGxlOiBpMThuKCdjb25maXJtLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1jaGVjaycsXG4gICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2NvbmZpcm0udGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2NvbmZpcm0uZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2NvbmZpcm0ucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2NvbmZpcm0uYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBEZXNpZ246IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkRlc2lnbixcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2Rlc2lnbi50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcGFpbnRicnVzaCcsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2Rlc2lnbi50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignZGVzaWduLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdkZXNpZ24ucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2Rlc2lnbi5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFZlcnNpb25IaXN0b3J5OiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5WZXJzaW9uSGlzdG9yeSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3ZlcnNpb24taGlzdG9yeS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtaGlzdG9yeScsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3ZlcnNpb24taGlzdG9yeS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigndmVyc2lvbi1oaXN0b3J5LmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCd2ZXJzaW9uLWhpc3RvcnkucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3ZlcnNpb24taGlzdG9yeS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIENvbXBhcmU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkNvbXBhcmUsXG4gICAgICAgIHRpdGxlOiBpMThuKCdjb21wYXJlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1jb2RlLWNvbXBhcmUnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdjb21wYXJlLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdjb21wYXJlLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdjb21wYXJlLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdjb21wYXJlLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgQ29tbWVudHM6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkNvbW1lbnRzLFxuICAgICAgICB0aXRsZTogaTE4bignY29tbWVudHMudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWNvbW1lbnRzJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignY29tbWVudHMudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2NvbW1lbnRzLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdjb21tZW50cy5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignY29tbWVudHMuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBTaWduOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5TaWduLFxuICAgICAgICB0aXRsZTogaTE4bignc2lnbi50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtc2lnbmF0dXJlJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignc2lnbi50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignc2lnbi5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignc2lnbi5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignc2lnbi5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFNldHVwOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5TZXR1cCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3NldHVwLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1jb2cnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdzZXR1cC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignc2V0dXAuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3NldHVwLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdzZXR1cC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFNlbmQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlNlbmQsXG4gICAgICAgIHRpdGxlOiBpMThuKCdzZW5kLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1lbnZlbG9wZScsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3NlbmQudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3NlbmQuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3NlbmQucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3NlbmQuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBSZXBvcnQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlJlcG9ydCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3JlcG9ydC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtY2hhcnQtbGluZScsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3JlcG9ydC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigncmVwb3J0LmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdyZXBvcnQucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3JlcG9ydC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFNlbnQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlNlbnQsXG4gICAgICAgIHRpdGxlOiBpMThuKCdzZW50LnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1wYXBlci1wbGFuZScsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3NlbnQudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3NlbnQuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3NlbnQucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3NlbnQuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBSZXZpZXc6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlJldmlldyxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3Jldmlldy50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZXllJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigncmV2aWV3LnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdyZXZpZXcuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3Jldmlldy5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncmV2aWV3LmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgR2VuZXJhdGU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkdlbmVyYXRlLFxuICAgICAgICB0aXRsZTogaTE4bignZ2VuZXJhdGUudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXdhbmQtbWFnaWMtc3BhcmtsZXMnLFxuICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdnZW5lcmF0ZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignZ2VuZXJhdGUuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2dlbmVyYXRlLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdnZW5lcmF0ZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFJlZnJlc2g6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlJlZnJlc2gsXG4gICAgICAgIHRpdGxlOiBpMThuKCdyZWZyZXNoLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1hcnJvd3Mtcm90YXRlJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigncmVmcmVzaC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigncmVmcmVzaC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncmVmcmVzaC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncmVmcmVzaC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFJlbG9hZDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuUmVsb2FkLFxuICAgICAgICB0aXRsZTogaTE4bigncmVsb2FkLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1hcnJvd3Mtcm90YXRlJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigncmVsb2FkLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdyZWxvYWQuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3JlbG9hZC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncmVsb2FkLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgU2VhcmNoOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5TZWFyY2gsXG4gICAgICAgIHRpdGxlOiBpMThuKCdzZWFyY2gudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLW1hZ25pZnlpbmctZ2xhc3MnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdzZWFyY2gudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3NlYXJjaC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignc2VhcmNoLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdzZWFyY2guYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBGaWx0ZXI6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkZpbHRlcixcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2ZpbHRlci50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZmlsdGVyJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignZmlsdGVyLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdmaWx0ZXIuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2ZpbHRlci5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignZmlsdGVyLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgU29ydDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuU29ydCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3NvcnQudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWFycm93LWRvd24tdXAtYWNyb3NzLWxpbmUnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdzb3J0LnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdzb3J0LmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdzb3J0LnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdzb3J0LmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgU3RhcnQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlN0YXJ0LFxuICAgICAgICB0aXRsZTogaTE4bignc3RhcnQudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXBsYXknLFxuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdzdGFydC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignc3RhcnQuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3N0YXJ0LnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdzdGFydC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFN0b3A6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlN0b3AsXG4gICAgICAgIHRpdGxlOiBpMThuKCdzdG9wLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1zdG9wJyxcbiAgICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgICAgICBjcml0aWNhbDogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignc3RvcC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignc3RvcC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignc3RvcC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignc3RvcC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFBhdXNlOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5QYXVzZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3BhdXNlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1wYXVzZScsXG4gICAgICAgIGNvbG9yOiAnd2FybmluZycsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3BhdXNlLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdwYXVzZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncGF1c2UucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3BhdXNlLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgQ2FuY2VsOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5DYW5jZWwsXG4gICAgICAgIHRpdGxlOiBpMThuKCdjYW5jZWwudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXhtYXJrJyxcbiAgICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgICAgICBjcml0aWNhbDogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignY2FuY2VsLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdjYW5jZWwuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2NhbmNlbC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignY2FuY2VsLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgQ2xvc2U6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkNsb3NlLFxuICAgICAgICB0aXRsZTogaTE4bignY2xvc2UudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXhtYXJrJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignY2xvc2UudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2Nsb3NlLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdjbG9zZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignY2xvc2UuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBDb21wbGV0ZToge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuQ29tcGxldGUsXG4gICAgICAgIHRpdGxlOiBpMThuKCdjb21wbGV0ZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtY2hlY2snLFxuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdjb21wbGV0ZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignY29tcGxldGUuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2NvbXBsZXRlLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdjb21wbGV0ZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFNhdmU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlNhdmUsXG4gICAgICAgIHRpdGxlOiBpMThuKCdzYXZlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1mbG9wcHktZGlzaycsXG4gICAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3NhdmUudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3NhdmUuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3NhdmUucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3NhdmUuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBTYXZlQXM6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlNhdmVBcyxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3NhdmUtYXMudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWZsb3BweS1kaXNrJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignc2F2ZS1hcy50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignc2F2ZS1hcy5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignc2F2ZS1hcy5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignc2F2ZS1hcy5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFN5bmM6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlN5bmMsXG4gICAgICAgIHRpdGxlOiBpMThuKCdzeW5jLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1hcnJvd3Mtcm90YXRlJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignc3luYy50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignc3luYy5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignc3luYy5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignc3luYy5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFJlc2V0OiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5SZXNldCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3Jlc2V0LnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1hcnJvdy1yb3RhdGUtbGVmdCcsXG4gICAgICAgIGNvbG9yOiAnd2FybmluZycsXG4gICAgICAgIGNyaXRpY2FsOiB0cnVlLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdyZXNldC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigncmVzZXQuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3Jlc2V0LnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdyZXNldC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIENsZWFyOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5DbGVhcixcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2NsZWFyLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1lcmFzZXInLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdjbGVhci50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignY2xlYXIuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2NsZWFyLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdjbGVhci5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuXG59IGFzIGNvbnN0IHNhdGlzZmllcyBSZWNvcmQ8c3RyaW5nLCBBWFBTeXN0ZW1BY3Rpb24+KTtcblxuXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTeXN0ZW1BY3Rpb25zKHR5cGU6IEFYUFN5c3RlbUFjdGlvblR5cGUpOiBBWFBTeXN0ZW1BY3Rpb24ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKEFYUFN5c3RlbUFjdGlvbnMpLmZpbmQoYWN0aW9uID0+IGFjdGlvbi5rZXkgPT09IHR5cGUpIGFzIEFYUFN5c3RlbUFjdGlvbjtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgdmlzdWFsIGFwcGVhcmFuY2UgKGNvbG9yIGFuZCBpY29uKSBmb3IgZW50aXR5IGFjdGlvbnNcbiAqIHVzaW5nIHRoZSBzeXN0ZW0gYWN0aW9ucyBmcm9tIHRoZSBjb3JlIG1vZHVsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVBY3Rpb25Mb29rKGFjdGlvblR5cGU6IHN0cmluZyk6IHsgY29sb3I6IEFYU3R5bGVDb2xvclR5cGU7IGljb246IHN0cmluZyB9IHtcbiAgICAvLyBUcnkgdG8gZ2V0IHN5c3RlbSBhY3Rpb24gZmlyc3RcbiAgICBjb25zdCBzeXN0ZW1BY3Rpb25UeXBlID0gYWN0aW9uVHlwZSBhcyBBWFBTeXN0ZW1BY3Rpb25UeXBlO1xuICAgIGlmIChzeXN0ZW1BY3Rpb25UeXBlKSB7XG4gICAgICAgIGNvbnN0IHN5c3RlbUFjdGlvbiA9IGdldFN5c3RlbUFjdGlvbnMoc3lzdGVtQWN0aW9uVHlwZSk7XG4gICAgICAgIGlmIChzeXN0ZW1BY3Rpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IChzeXN0ZW1BY3Rpb24uY29sb3IgfHwgJ2RlZmF1bHQnKSBhcyBBWFN0eWxlQ29sb3JUeXBlLFxuICAgICAgICAgICAgICAgIGljb246IHN5c3RlbUFjdGlvbi5pY29uIHx8ICcnXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2sgZm9yIHVua25vd24gYWN0aW9uc1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcgYXMgQVhTdHlsZUNvbG9yVHlwZSxcbiAgICAgICAgaWNvbjogJydcbiAgICB9O1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSB0aXRsZSwgZGVzY3JpcHRpb24sIGljb24gYW5kIGNvbG9yIGZvciBidXR0b24gYWN0aW9uc1xuICogdXNpbmcgdGhlIHN5c3RlbSBhY3Rpb25zIGZyb20gdGhlIGNvcmUgbW9kdWxlLlxuICogQHBhcmFtIGFjdGlvblR5cGUgXG4gKiBAcmV0dXJucyBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFjdGlvbkJ1dHRvbihhY3Rpb25UeXBlOiBzdHJpbmcpOiB7IG5hbWU6IHN0cmluZzsgdGl0bGU6IHN0cmluZzsgZGVzY3JpcHRpb246IHN0cmluZywgaWNvbjogc3RyaW5nLCBjb2xvcjogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHN5c3RlbUFjdGlvblR5cGUgPSBhY3Rpb25UeXBlIGFzIEFYUFN5c3RlbUFjdGlvblR5cGU7XG4gICAgaWYgKHN5c3RlbUFjdGlvblR5cGUpIHtcbiAgICAgICAgY29uc3Qgc3lzdGVtQWN0aW9uID0gZ2V0U3lzdGVtQWN0aW9ucyhzeXN0ZW1BY3Rpb25UeXBlKTtcbiAgICAgICAgaWYgKHN5c3RlbUFjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBhY3Rpb25UeXBlLFxuICAgICAgICAgICAgICAgIGljb246IHN5c3RlbUFjdGlvbi5pY29uIHx8ICcnLFxuICAgICAgICAgICAgICAgIGNvbG9yOiBzeXN0ZW1BY3Rpb24uY29sb3IgfHwgJ2RlZmF1bHQnLFxuICAgICAgICAgICAgICAgIHRpdGxlOiBzeXN0ZW1BY3Rpb24udGl0bGUsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHN5c3RlbUFjdGlvbi5kZXNjcmlwdGlvbnMudGl0bGVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGYWxsYmFjayBmb3IgdW5rbm93biBhY3Rpb25zXG4gICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogYWN0aW9uVHlwZSxcbiAgICAgICAgdGl0bGU6IGFjdGlvblR5cGUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgUGVyZm9ybSAke2FjdGlvblR5cGV9IGFjdGlvbmAsXG4gICAgICAgIGljb246ICcnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnXG4gICAgfTtcbn1cbiJdfQ==","export function getNestedKeys(obj, prefix = '') {\n let keys = [];\n for (const key in obj) {\n if (typeof obj[key] === 'object' && obj[key] !== null && !Array.isArray(obj[key])) {\n keys = [...keys, ...getNestedKeys(obj[key], prefix + key + '.')];\n }\n else {\n keys.push(prefix + key);\n }\n }\n return keys;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3R5cGVzL2NvcmUudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUFRLEVBQUUsU0FBaUIsRUFBRTtJQUN6RCxJQUFJLElBQUksR0FBYSxFQUFFLENBQUM7SUFDeEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2xGLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEFYUFBhcnRpYWxOZXN0ZWQ8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdPzogVFtLXSBleHRlbmRzIG9iamVjdCA/IEFYUFBhcnRpYWxOZXN0ZWQ8VFtLXT4gOiBUW0tdO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5lc3RlZEtleXMob2JqOiBhbnksIHByZWZpeDogc3RyaW5nID0gJycpOiBzdHJpbmdbXSB7XG4gIGxldCBrZXlzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcbiAgICBpZiAodHlwZW9mIG9ialtrZXldID09PSAnb2JqZWN0JyAmJiBvYmpba2V5XSAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheShvYmpba2V5XSkpIHtcbiAgICAgIGtleXMgPSBbLi4ua2V5cywgLi4uZ2V0TmVzdGVkS2V5cyhvYmpba2V5XSwgcHJlZml4ICsga2V5ICsgJy4nKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGtleXMucHVzaChwcmVmaXggKyBrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4ga2V5cztcbn1cblxuZXhwb3J0IHR5cGUgQVhQRXhwcmVzc2lvbiA9IHN0cmluZztcblxuZXhwb3J0IHR5cGUgQVhQTWV0YURhdGEgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG5leHBvcnQgdHlwZSBBWFBPcHRpb25zRGF0YSA9IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQVmFsdWVVbml0IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICByYXRpbzogbnVtYmVyO1xuICBvcmRlcjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFZhbHVlVW5pdHMge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGl0ZW1zOiBBWFBWYWx1ZVVuaXRbXTtcbiAgZGVmYXVsdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVJlZmVyZW5jZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBVc2VyUmVmZXJlbmNlIHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZT86ICd1c2VyJztcbiAgZnVsbE5hbWU/OiBzdHJpbmc7XG4gIHVzZXJuYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEFwcGxpY2F0aW9uVXNlclJlZmVyZW5jZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQVhQQ29udGVudFR5cGUgPSAndGV4dCcgfCAnaW1hZ2UnIHwgJ2ZpbGUnIHwgJ3ZpZGVvJyB8ICdsaW5rJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBDb250ZW50IHtcbiAgY29udGVudDogc3RyaW5nO1xuICBjb250ZW50VHlwZTogQVhQQ29udGVudFR5cGU7XG59XG4iXX0=","import { getSystemActions } from './actions.types';\nexport function applySystemActionDefault(action, type) {\n const systemAction = getSystemActions(type);\n return {\n name: systemAction.key,\n title: systemAction.title,\n icon: systemAction.icon,\n color: systemAction.color,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi90eXBlcy9pbnRlcmFjdGl2ZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQXdDLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFpRnpGLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxNQUF5QixFQUFFLElBQXlCO0lBQzNGLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLE9BQU87UUFDTCxJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUc7UUFDdEIsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLO1FBQ3pCLElBQUksRUFBRSxZQUFZLENBQUMsSUFBSTtRQUN2QixLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7S0FDMUIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRXh0cmFzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFYUE1ldGFEYXRhIH0gZnJvbSAnLi9jb3JlLnR5cGVzJztcbmltcG9ydCB7IEFYUFN5c3RlbUFjdGlvbiwgQVhQU3lzdGVtQWN0aW9uVHlwZSwgZ2V0U3lzdGVtQWN0aW9ucyB9IGZyb20gJy4vYWN0aW9ucy50eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEFYUEFjdGlvbk1lbnVJdGVtID0ge1xuICBuYW1lPzogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbiAgYnJlYWs/OiBib29sZWFuO1xuICBpdGVtcz86IEFYUEFjdGlvbk1lbnVJdGVtW107XG4gIGNvbW1hbmQ/OiBBWFBFeGVjdXRlQ29tbWFuZDtcbiAgZGlzYWJsZWQ/OiBib29sZWFuIHwgc3RyaW5nO1xuICB2aXNpYmxlPzogYm9vbGVhbiB8IHN0cmluZztcbiAgcG9saWN5Pzogc3RyaW5nO1xufTtcblxuXG5leHBvcnQgdHlwZSBBWFBCYWNrQnV0dG9uID0ge1xuICB0aXRsZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQVhQQnJlYWRjcnVtYkl0ZW0gPSB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGNvbW1hbmQ/OiBBWFBFeGVjdXRlQ29tbWFuZDtcbn07XG5cbmV4cG9ydCB0eXBlIEFYUEJhZGdlID0ge1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgY29sb3I/OiAncHJpbWFyeScgfCAnc3VjY2VzcycgfCAnd2FybmluZycgfCAnZGFuZ2VyJztcbn07XG5cbmV4cG9ydCB0eXBlIEFYUEV4ZWN1dGVDb21tYW5kID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIG9wdGlvbnM/OiBBWFBNZXRhRGF0YTtcbiAgbWV0YWRhdGE/OiBBWFBNZXRhRGF0YTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRXhlY3V0ZUNvbW1hbmRSZXN1bHQ8VCA9IGFueT4ge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICByZXN1bHQ/OiBUO1xuICBlcnJvcj86IHtcbiAgICBjb2RlPzogc3RyaW5nO1xuICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgZGV0YWlscz86IGFueTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBRdWVyeUZldGNoUmVzdWx0PFQgPSBhbnk+IHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgcmVzdWx0Pzoge1xuICAgIGl0ZW1zPzogVFtdO1xuICAgIHRvdGFsPzogbnVtYmVyO1xuICB9O1xuICBlcnJvcj86IHtcbiAgICBjb2RlPzogc3RyaW5nO1xuICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgZGV0YWlscz86IGFueTtcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgQVhQTmF2aWdhdGVBY3Rpb25PcHRpb25zID0ge1xuICByb3V0ZXI6IHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgZXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcyAmIHsgdGFyZ2V0Pzogc3RyaW5nIH07XG4gIH07XG4gIG1vZGFsOiB7XG4gICAgY29tcG9uZW50OiBUeXBlPGFueT47XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBvcHRpb25zPzogYW55O1xuICB9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBBWFBOYXZpZ2F0ZUFjdGlvbkNvbW1hbmQ8VCBleHRlbmRzIGtleW9mIEFYUE5hdmlnYXRlQWN0aW9uT3B0aW9ucz4ge1xuICB0eXBlOiBUO1xuICBvcHRpb25zOiBBWFBOYXZpZ2F0ZUFjdGlvbk9wdGlvbnNbVF07XG59XG5cblxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlTeXN0ZW1BY3Rpb25EZWZhdWx0KGFjdGlvbjogQVhQQWN0aW9uTWVudUl0ZW0sIHR5cGU6IEFYUFN5c3RlbUFjdGlvblR5cGUpOiBBWFBBY3Rpb25NZW51SXRlbSB7XG4gIGNvbnN0IHN5c3RlbUFjdGlvbiA9IGdldFN5c3RlbUFjdGlvbnModHlwZSk7XG4gIHJldHVybiB7XG4gICAgbmFtZTogc3lzdGVtQWN0aW9uLmtleSxcbiAgICB0aXRsZTogc3lzdGVtQWN0aW9uLnRpdGxlLFxuICAgIGljb246IHN5c3RlbUFjdGlvbi5pY29uLFxuICAgIGNvbG9yOiBzeXN0ZW1BY3Rpb24uY29sb3IsXG4gIH07XG59Il19","export class AXPImageUrlLogoConfig {\n constructor(url, width, height) {\n this.url = url;\n this.width = width;\n this.height = height;\n }\n}\nexport class AXPComponentLogoConfig {\n constructor(component) {\n this.component = component;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nby50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3R5cGVzL2xvZ28udHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUFtQixHQUFXLEVBQVMsS0FBYyxFQUFTLE1BQWU7UUFBMUQsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUFTLFVBQUssR0FBTCxLQUFLLENBQVM7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFTO0lBQUcsQ0FBQztDQUNsRjtBQUNELE1BQU0sT0FBTyxzQkFBc0I7SUFHakMsWUFBbUIsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztJQUFHLENBQUM7Q0FDNUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQTG9nb0NvbmZpZyB7fVxuXG5leHBvcnQgY2xhc3MgQVhQSW1hZ2VVcmxMb2dvQ29uZmlnIGltcGxlbWVudHMgQVhQTG9nb0NvbmZpZyB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1cmw6IHN0cmluZywgcHVibGljIHdpZHRoPzogbnVtYmVyLCBwdWJsaWMgaGVpZ2h0PzogbnVtYmVyKSB7fVxufVxuZXhwb3J0IGNsYXNzIEFYUENvbXBvbmVudExvZ29Db25maWcgaW1wbGVtZW50cyBBWFBMb2dvQ29uZmlnIHtcbiAgaGVpZ2h0PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICB3aWR0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgY29uc3RydWN0b3IocHVibGljIGNvbXBvbmVudDogVHlwZTxhbnk+KSB7fVxufVxuIl19","export var AXPPlatformScope;\n(function (AXPPlatformScope) {\n AXPPlatformScope[\"Environment\"] = \"C\";\n AXPPlatformScope[\"Global\"] = \"G\";\n AXPPlatformScope[\"Platform\"] = \"P\";\n AXPPlatformScope[\"Tenant\"] = \"T\";\n AXPPlatformScope[\"User\"] = \"U\";\n})(AXPPlatformScope || (AXPPlatformScope = {}));\n;\nexport function resolvePlatformScopeKey(name) {\n const scopeMap = {\n environment: AXPPlatformScope.Environment,\n global: AXPPlatformScope.Global,\n platform: AXPPlatformScope.Platform,\n tenant: AXPPlatformScope.Tenant,\n user: AXPPlatformScope.User,\n };\n return scopeMap[name.toLowerCase()] ?? AXPPlatformScope.User;\n}\nexport function resolvePlatformScopeName(scope) {\n const scopeMap = {\n C: 'environment',\n G: 'global',\n P: 'platform',\n T: 'tenant',\n U: 'user',\n };\n return scopeMap[scope] ?? 'user';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi90eXBlcy9zY29wZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLENBQU4sSUFBWSxnQkFNWDtBQU5ELFdBQVksZ0JBQWdCO0lBQ3hCLHFDQUFpQixDQUFBO0lBQ2pCLGdDQUFZLENBQUE7SUFDWixrQ0FBYyxDQUFBO0lBQ2QsZ0NBQVksQ0FBQTtJQUNaLDhCQUFVLENBQUE7QUFDZCxDQUFDLEVBTlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU0zQjtBQUFBLENBQUM7QUFFRixNQUFNLFVBQVUsdUJBQXVCLENBQUMsSUFBWTtJQUNoRCxNQUFNLFFBQVEsR0FBd0M7UUFDbEQsV0FBVyxFQUFFLGdCQUFnQixDQUFDLFdBQVc7UUFDekMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE1BQU07UUFDL0IsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7UUFDbkMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE1BQU07UUFDL0IsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUk7S0FDOUIsQ0FBQztJQUNGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQztBQUNqRSxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEtBQTBCO0lBQy9ELE1BQU0sUUFBUSxHQUF3QztRQUNsRCxDQUFDLEVBQUUsYUFBYTtRQUNoQixDQUFDLEVBQUUsUUFBUTtRQUNYLENBQUMsRUFBRSxVQUFVO1FBQ2IsQ0FBQyxFQUFFLFFBQVE7UUFDWCxDQUFDLEVBQUUsTUFBTTtLQUNaLENBQUM7SUFDRixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUM7QUFDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEFYUFBsYXRmb3JtU2NvcGVLZXkgPSAnQycgfCAnRycgfCAnUCcgfCAnVCcgfCAnVSc7XG5leHBvcnQgZW51bSBBWFBQbGF0Zm9ybVNjb3BlIHtcbiAgICBFbnZpcm9ubWVudCA9ICdDJyxcbiAgICBHbG9iYWwgPSAnRycsXG4gICAgUGxhdGZvcm0gPSAnUCcsXG4gICAgVGVuYW50ID0gJ1QnLFxuICAgIFVzZXIgPSAnVSdcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlUGxhdGZvcm1TY29wZUtleShuYW1lOiBzdHJpbmcpOiBBWFBQbGF0Zm9ybVNjb3BlS2V5IHtcbiAgICBjb25zdCBzY29wZU1hcDogUmVjb3JkPHN0cmluZywgQVhQUGxhdGZvcm1TY29wZUtleT4gPSB7XG4gICAgICAgIGVudmlyb25tZW50OiBBWFBQbGF0Zm9ybVNjb3BlLkVudmlyb25tZW50LFxuICAgICAgICBnbG9iYWw6IEFYUFBsYXRmb3JtU2NvcGUuR2xvYmFsLFxuICAgICAgICBwbGF0Zm9ybTogQVhQUGxhdGZvcm1TY29wZS5QbGF0Zm9ybSxcbiAgICAgICAgdGVuYW50OiBBWFBQbGF0Zm9ybVNjb3BlLlRlbmFudCxcbiAgICAgICAgdXNlcjogQVhQUGxhdGZvcm1TY29wZS5Vc2VyLFxuICAgIH07XG4gICAgcmV0dXJuIHNjb3BlTWFwW25hbWUudG9Mb3dlckNhc2UoKV0gPz8gQVhQUGxhdGZvcm1TY29wZS5Vc2VyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBsYXRmb3JtU2NvcGVOYW1lKHNjb3BlOiBBWFBQbGF0Zm9ybVNjb3BlS2V5KTogc3RyaW5nIHtcbiAgICBjb25zdCBzY29wZU1hcDogUmVjb3JkPEFYUFBsYXRmb3JtU2NvcGVLZXksIHN0cmluZz4gPSB7XG4gICAgICAgIEM6ICdlbnZpcm9ubWVudCcsXG4gICAgICAgIEc6ICdnbG9iYWwnLFxuICAgICAgICBQOiAncGxhdGZvcm0nLFxuICAgICAgICBUOiAndGVuYW50JyxcbiAgICAgICAgVTogJ3VzZXInLFxuICAgIH07XG4gICAgcmV0dXJuIHNjb3BlTWFwW3Njb3BlXSA/PyAndXNlcic7XG59Il19","export var AXPExportTemplateToken;\n(function (AXPExportTemplateToken) {\n AXPExportTemplateToken[\"Date\"] = \"{date}\";\n AXPExportTemplateToken[\"Time\"] = \"{time}\";\n AXPExportTemplateToken[\"User\"] = \"{user}\";\n AXPExportTemplateToken[\"ReportTitle\"] = \"{title}\";\n AXPExportTemplateToken[\"UUID\"] = \"{uuid}\";\n})(AXPExportTemplateToken || (AXPExportTemplateToken = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvdHlwZXMvZXhwb3J0LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStFQSxNQUFNLENBQU4sSUFBWSxzQkFNWDtBQU5ELFdBQVksc0JBQXNCO0lBQzlCLHlDQUFlLENBQUE7SUFDZix5Q0FBZSxDQUFBO0lBQ2YseUNBQWUsQ0FBQTtJQUNmLGlEQUF1QixDQUFBO0lBQ3ZCLHlDQUFlLENBQUE7QUFDbkIsQ0FBQyxFQU5XLHNCQUFzQixLQUF0QixzQkFBc0IsUUFNakMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBpbnRlcmZhY2UgQVhQRXhwb3J0T3B0aW9ucyB7XG4gICAgZmlsZU5hbWVUZW1wbGF0ZT86IHN0cmluZzsgLy8g2YXYq9in2YQ6IFwiUmVwb3J0X3tkYXRlfV97dXNlcn1cIlxuXG4gICAgcGRmPzogQVhQRXhwb3J0UGRmT3B0aW9ucztcbiAgICBleGNlbD86IEFYUEV4cG9ydEV4Y2VsT3B0aW9ucztcbiAgICBjc3Y/OiBBWFBFeHBvcnRDc3ZPcHRpb25zO1xuICAgIHByaW50PzogQVhQRXhwb3J0UHJpbnRPcHRpb25zO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRXhwb3J0UGRmT3B0aW9ucyB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcblxuICAgIHBhZ2VTaXplPzogJ0E0JyB8ICdBMycgfCAnTGV0dGVyJyB8ICdMZWdhbCc7XG4gICAgb3JpZW50YXRpb24/OiAncG9ydHJhaXQnIHwgJ2xhbmRzY2FwZSc7XG5cbiAgICBtYXJnaW4/OiBudW1iZXIgfCB7XG4gICAgICAgIHRvcDogbnVtYmVyO1xuICAgICAgICBib3R0b206IG51bWJlcjtcbiAgICAgICAgbGVmdDogbnVtYmVyO1xuICAgICAgICByaWdodDogbnVtYmVyO1xuICAgIH07XG5cbiAgICBmb250Pzogc3RyaW5nO1xuICAgIGZvbnRTaXplPzogbnVtYmVyO1xuXG4gICAgaGVhZGVyRW5hYmxlZD86IGJvb2xlYW47XG4gICAgZm9vdGVyRW5hYmxlZD86IGJvb2xlYW47XG4gICAgc2hvd1BhZ2VOdW1iZXJzPzogYm9vbGVhbjtcblxuICAgIHdhdGVybWFya1RleHQ/OiBzdHJpbmc7XG4gICAgd2F0ZXJtYXJrT3BhY2l0eT86IG51bWJlcjtcblxuICAgIGNvbXByZXNzaW9uPzogYm9vbGVhbjtcbiAgICBlbWJlZEltYWdlcz86IGJvb2xlYW47XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBBWFBFeHBvcnRFeGNlbE9wdGlvbnMge1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBzaGVldE5hbWU/OiBzdHJpbmc7XG4gICAgaW5jbHVkZUZpbHRlcnM/OiBib29sZWFuO1xuICAgIGZyZWV6ZUhlYWRlcj86IGJvb2xlYW47XG4gICAgYXV0b0ZpdENvbHVtbnM/OiBib29sZWFuO1xuXG4gICAgc3R5bGU/OiB7XG4gICAgICAgIGhlYWRlckNvbG9yPzogc3RyaW5nO1xuICAgICAgICBmb250Pzogc3RyaW5nO1xuICAgICAgICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAgICAgbnVtYmVyRm9ybWF0PzogJ2F1dG8nIHwgJ2N1cnJlbmN5JyB8ICdwZXJjZW50JyB8ICdkZWNpbWFsJztcbiAgICB9O1xuXG4gICAgc3VtbWFyeVJvd0VuYWJsZWQ/OiBib29sZWFuO1xuICAgIGV4cG9ydEhpZGRlbkNvbHVtbnM/OiBib29sZWFuO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRXhwb3J0Q3N2T3B0aW9ucyB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcblxuICAgIGRlbGltaXRlcj86ICcsJyB8ICc7JyB8ICdcXHQnO1xuICAgIGluY2x1ZGVIZWFkZXJzPzogYm9vbGVhbjtcbiAgICBxdW90ZVZhbHVlcz86IGJvb2xlYW47XG4gICAgZW5jb2Rpbmc/OiAndXRmLTgnIHwgJ3V0Zi0xNicgfCAnaXNvLTg4NTktMSc7XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBBWFBFeHBvcnRQcmludE9wdGlvbnMge1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBpbmNsdWRlSGVhZGVyPzogYm9vbGVhbjtcbiAgICBpbmNsdWRlRm9vdGVyPzogYm9vbGVhbjtcbiAgICBzaG93UGFnZUJyZWFrcz86IGJvb2xlYW47XG4gICAgY3VzdG9tQ3NzVXJsPzogc3RyaW5nO1xufVxuXG5cbmV4cG9ydCBlbnVtIEFYUEV4cG9ydFRlbXBsYXRlVG9rZW4ge1xuICAgIERhdGUgPSAne2RhdGV9JyxcbiAgICBUaW1lID0gJ3t0aW1lfScsXG4gICAgVXNlciA9ICd7dXNlcn0nLFxuICAgIFJlcG9ydFRpdGxlID0gJ3t0aXRsZX0nLFxuICAgIFVVSUQgPSAne3V1aWR9Jyxcbn1cbiJdfQ==","import { AXCalendarService } from '@acorex/core/date-time';\nimport { inject, Pipe, signal } from '@angular/core';\nimport { interval } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nexport class AXPCountdownPipe {\n constructor() {\n this.calendarService = inject(AXCalendarService);\n this.countdownSignal = signal(this.setupTimer(), ...(ngDevMode ? [{ debugName: \"countdownSignal\" }] : []));\n this.targetDate = 0;\n this.prevValue = 0;\n }\n transform(value) {\n if (this.prevValue != value) {\n this.prevValue = value;\n const expireTime = this.calendarService.calendar.add(new Date(), 'second', value).date;\n this.updateTargetDate(expireTime.toISOString());\n }\n return this.countdownSignal();\n }\n setupTimer() {\n return interval(1000).pipe(startWith(0), map(() => {\n const diff = this.targetDate - new Date().getTime();\n if (diff < 0) {\n return \"Time's up!\";\n }\n const times = [86400, 3600, 60, 1].map((seconds) => Math.floor((diff / 1000 / seconds) % (seconds === 1 ? 60 : 24)));\n const labels = ['d', 'h', 'm', 's'];\n return times\n .map((t, i) => (t > 0 || i === 3 ? `${t}${labels[i]}` : ''))\n .join(' ')\n .trim();\n }));\n }\n updateTargetDate(value) {\n this.targetDate = new Date(value).getTime();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPCountdownPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPCountdownPipe, isStandalone: true, name: \"countdown\", pure: false }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPCountdownPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'countdown',\n pure: false,\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRkb3duLXRpbWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvdXRpbHMvY291bnRkb3duLXRpbWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFpQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU9oRCxNQUFNLE9BQU8sZ0JBQWdCO0lBTDdCO1FBTVUsb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU1QyxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLDJEQUFDLENBQUM7UUFFNUMsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixjQUFTLEdBQUcsQ0FBQyxDQUFDO0tBaUN2QjtJQS9CQyxTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksS0FBSyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN2RixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTyxVQUFVO1FBQ2hCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDeEIsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUNaLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEQsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2IsT0FBTyxZQUFZLENBQUM7WUFDdEIsQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JILE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDcEMsT0FBTyxLQUFLO2lCQUNULEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQzNELElBQUksQ0FBQyxHQUFHLENBQUM7aUJBQ1QsSUFBSSxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWE7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzhHQXRDVSxnQkFBZ0I7NEdBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFMNUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsV0FBVztvQkFDakIsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDYWxlbmRhclNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZGF0ZS10aW1lJztcbmltcG9ydCB7IGluamVjdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbnRlcnZhbCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2NvdW50ZG93bicsXG4gIHB1cmU6IGZhbHNlLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBDb3VudGRvd25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgY2FsZW5kYXJTZXJ2aWNlID0gaW5qZWN0KEFYQ2FsZW5kYXJTZXJ2aWNlKTtcblxuICBwcml2YXRlIGNvdW50ZG93blNpZ25hbCA9IHNpZ25hbCh0aGlzLnNldHVwVGltZXIoKSk7XG5cbiAgcHJpdmF0ZSB0YXJnZXREYXRlOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIHByZXZWYWx1ZSA9IDA7XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBudW1iZXIpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGlmICh0aGlzLnByZXZWYWx1ZSAhPSB2YWx1ZSkge1xuICAgICAgdGhpcy5wcmV2VmFsdWUgPSB2YWx1ZTtcbiAgICAgIGNvbnN0IGV4cGlyZVRpbWUgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5jYWxlbmRhci5hZGQobmV3IERhdGUoKSwgJ3NlY29uZCcsIHZhbHVlKS5kYXRlO1xuICAgICAgdGhpcy51cGRhdGVUYXJnZXREYXRlKGV4cGlyZVRpbWUudG9JU09TdHJpbmcoKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvdW50ZG93blNpZ25hbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFRpbWVyKCkge1xuICAgIHJldHVybiBpbnRlcnZhbCgxMDAwKS5waXBlKFxuICAgICAgc3RhcnRXaXRoKDApLFxuICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgY29uc3QgZGlmZiA9IHRoaXMudGFyZ2V0RGF0ZSAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgICBpZiAoZGlmZiA8IDApIHtcbiAgICAgICAgICByZXR1cm4gXCJUaW1lJ3MgdXAhXCI7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0aW1lcyA9IFs4NjQwMCwgMzYwMCwgNjAsIDFdLm1hcCgoc2Vjb25kcykgPT4gTWF0aC5mbG9vcigoZGlmZiAvIDEwMDAgLyBzZWNvbmRzKSAlIChzZWNvbmRzID09PSAxID8gNjAgOiAyNCkpKTtcbiAgICAgICAgY29uc3QgbGFiZWxzID0gWydkJywgJ2gnLCAnbScsICdzJ107XG4gICAgICAgIHJldHVybiB0aW1lc1xuICAgICAgICAgIC5tYXAoKHQsIGkpID0+ICh0ID4gMCB8fCBpID09PSAzID8gYCR7dH0ke2xhYmVsc1tpXX1gIDogJycpKVxuICAgICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgICAudHJpbSgpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUYXJnZXREYXRlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRhcmdldERhdGUgPSBuZXcgRGF0ZSh2YWx1ZSkuZ2V0VGltZSgpO1xuICB9XG59XG4iXX0=","import { endsWith, get, gt, gte, includes, isEmpty, isEqual, isNil, lt, lte, orderBy, startsWith } from 'lodash-es';\nconst loggingEnabled = false; // Set to true to enable logging, false to disable\nfunction applyCondition(item, condition) {\n const rawValue = condition.field ? get(item, condition.field) : null;\n const itemValue = typeof rawValue === 'string' ? rawValue.toLowerCase() : rawValue;\n const conditionValue = typeof condition.value === 'string' ? condition.value.toLowerCase() : condition.value;\n // Conditional Logging for debugging\n if (loggingEnabled) {\n console.log('Condition:', condition);\n console.log('Item Value:', itemValue);\n console.log('Condition Value:', conditionValue);\n }\n let result;\n const valueToCompare = isNil(condition.field) || condition.field === '' ? conditionValue : itemValue;\n const conditionType = condition?.operator?.type;\n if (!conditionType) {\n return true;\n }\n const op = String(conditionType);\n switch (op) {\n case 'equal':\n case 'eq':\n result = isEqual(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Equal check result:', result);\n }\n break;\n case 'notEqual':\n case 'ne':\n case 'neq':\n result = !isEqual(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Not equal check result:', result);\n }\n break;\n case 'greaterThan':\n case 'gt':\n result = gt(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Greater than check result:', result);\n }\n break;\n case 'lessThan':\n case 'lt':\n result = lt(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Less than check result:', result);\n }\n break;\n case 'greaterThanOrEqual':\n case 'gte':\n result = gte(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Greater than or equal check result:', result);\n }\n break;\n case 'lessThanOrEqual':\n case 'lte':\n result = lte(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Less than or equal check result:', result);\n }\n break;\n case 'contains':\n if (typeof valueToCompare === 'string') {\n result = includes(valueToCompare, conditionValue);\n }\n else if (Array.isArray(valueToCompare)) {\n result = includes(valueToCompare.map((val) => val.toString().toLowerCase()), conditionValue);\n }\n else {\n result = false;\n }\n if (loggingEnabled) {\n console.log('Contains check result:', result);\n }\n break;\n case 'in':\n if (Array.isArray(conditionValue)) {\n if (typeof valueToCompare === 'string') {\n result = conditionValue.some(val => typeof val === 'string' ? val.toLowerCase() === valueToCompare : val === valueToCompare);\n }\n else if (Array.isArray(valueToCompare)) {\n result = valueToCompare.some(val => conditionValue.some(condVal => typeof val === 'string' && typeof condVal === 'string'\n ? val.toLowerCase() === condVal.toLowerCase()\n : val === condVal));\n }\n else {\n result = conditionValue.includes(valueToCompare);\n }\n }\n else {\n result = false;\n }\n if (loggingEnabled) {\n console.log('In check result:', result);\n }\n break;\n case 'notContains':\n if (typeof valueToCompare === 'string') {\n result = !includes(valueToCompare, conditionValue);\n }\n else if (Array.isArray(valueToCompare)) {\n result = !includes(valueToCompare.map((val) => val.toString().toLowerCase()), conditionValue);\n }\n else {\n result = false;\n }\n if (loggingEnabled) {\n console.log('Not contains check result:', result);\n }\n break;\n case 'startsWith':\n result = typeof valueToCompare === 'string' && startsWith(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Starts with check result:', result);\n }\n break;\n case 'endsWith':\n result = typeof valueToCompare === 'string' && endsWith(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Ends with check result:', result);\n }\n break;\n case 'isEmpty':\n result = isEmpty(valueToCompare);\n if (loggingEnabled) {\n console.log('Is empty check result:', result);\n }\n break;\n case 'isNull':\n result = isNil(valueToCompare);\n if (loggingEnabled) {\n console.log('Is null check result:', result);\n }\n break;\n case 'isNotEmpty':\n result = !isEmpty(valueToCompare);\n if (loggingEnabled) {\n console.log('Is not empty check result:', result);\n }\n break;\n case 'between':\n result = !isNil(valueToCompare) && valueToCompare >= condition.value.from && valueToCompare <= condition.value.to;\n if (loggingEnabled) {\n console.log('Between check result:', result);\n }\n break;\n default:\n result = true;\n if (loggingEnabled) {\n console.log('Default case, returning true');\n }\n }\n // Apply negative flag if present on operator (invert the result)\n const isNegative = !!condition?.operator?.negative;\n return isNegative ? !result : result;\n}\nexport function applyFilterArray(dataArray, filters, logic = 'and') {\n if (filters && filters.length) {\n return dataArray.filter((item) => {\n if (logic === 'and') {\n return filters.every((f) => {\n return f.filters ? applyFilterArray([item], f.filters, f.logic).length > 0 : applyCondition(item, f);\n });\n }\n else {\n // logic === 'or'\n return filters.some((f) => {\n return f.filters ? applyFilterArray([item], f.filters, f.logic).length > 0 : applyCondition(item, f);\n });\n }\n });\n }\n else {\n return dataArray;\n }\n}\nexport function applySortArray(dataArray, sorts) {\n if (sorts && sorts.length > 0) {\n const sortFields = sorts.map((s) => s.field);\n const sortOrders = sorts.map((s) => s.dir);\n return orderBy(dataArray, sortFields, sortOrders);\n }\n else\n return dataArray;\n}\nexport function applyPagination(dataArray, skip, take) {\n return dataArray.slice(skip, skip + take);\n}\nexport async function applyQueryArray(dataArray, query) {\n let result = [...dataArray];\n // Apply filtering\n if (query.filter) {\n result = applyFilterArray(result, [query.filter], query.filter.logic ?? 'and');\n }\n // Store total count before pagination\n const total = result.length;\n // Apply sorting\n if (query.sort && query.sort.length > 0) {\n result = applySortArray(result, query.sort);\n }\n // Apply pagination\n result = applyPagination(result, query.skip, query.take);\n return {\n items: result,\n total,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb25kaXRpb25lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3V0aWxzL2RhdGEtY29uZGl0aW9uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBILE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDLGtEQUFrRDtBQUVoRixTQUFTLGNBQWMsQ0FBQyxJQUFTLEVBQUUsU0FBbUM7SUFDcEUsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNyRSxNQUFNLFNBQVMsR0FBRyxPQUFPLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ25GLE1BQU0sY0FBYyxHQUFHLE9BQU8sU0FBUyxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFFN0csb0NBQW9DO0lBQ3BDLElBQUksY0FBYyxFQUFFLENBQUM7UUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdEMsT0FBTyxD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S0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFFNUIsZ0JBQWdCO0lBQ2hCLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN4QyxNQUFNLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixNQUFNLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV6RCxPQUFPO1FBQ0wsS0FBSyxFQUFFLE1BQU07UUFDYixLQUFLO0tBQ04sQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWERhdGFTb3VyY2VDYWxsYmFja1Jlc3VsdCxcbiAgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uLFxuICBBWERhdGFTb3VyY2VMb2FkQ2FsbGJhY2ssXG4gIEFYRGF0YVNvdXJjZVF1ZXJ5LFxuICBBWERhdGFTb3VyY2VTb3J0T3B0aW9uLFxufSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgZW5kc1dpdGgsIGdldCwgZ3QsIGd0ZSwgaW5jbHVkZXMsIGlzRW1wdHksIGlzRXF1YWwsIGlzTmlsLCBsdCwgbHRlLCBvcmRlckJ5LCBzdGFydHNXaXRoIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuY29uc3QgbG9nZ2luZ0VuYWJsZWQgPSBmYWxzZTsgLy8gU2V0IHRvIHRydWUgdG8gZW5hYmxlIGxvZ2dpbmcsIGZhbHNlIHRvIGRpc2FibGVcblxuZnVuY3Rpb24gYXBwbHlDb25kaXRpb24oaXRlbTogYW55LCBjb25kaXRpb246IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbikge1xuICBjb25zdCByYXdWYWx1ZSA9IGNvbmRpdGlvbi5maWVsZCA/IGdldChpdGVtLCBjb25kaXRpb24uZmllbGQpIDogbnVsbDtcbiAgY29uc3QgaXRlbVZhbHVlID0gdHlwZW9mIHJhd1ZhbHVlID09PSAnc3RyaW5nJyA/IHJhd1ZhbHVlLnRvTG93ZXJDYXNlKCkgOiByYXdWYWx1ZTtcbiAgY29uc3QgY29uZGl0aW9uVmFsdWUgPSB0eXBlb2YgY29uZGl0aW9uLnZhbHVlID09PSAnc3RyaW5nJyA/IGNvbmRpdGlvbi52YWx1ZS50b0xvd2VyQ2FzZSgpIDogY29uZGl0aW9uLnZhbHVlO1xuXG4gIC8vIENvbmRpdGlvbmFsIExvZ2dpbmcgZm9yIGRlYnVnZ2luZ1xuICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICBjb25zb2xlLmxvZygnQ29uZGl0aW9uOicsIGNvbmRpdGlvbik7XG4gICAgY29uc29sZS5sb2coJ0l0ZW0gVmFsdWU6JywgaXRlbVZhbHVlKTtcbiAgICBjb25zb2xlLmxvZygnQ29uZGl0aW9uIFZhbHVlOicsIGNvbmRpdGlvblZhbHVlKTtcbiAgfVxuXG4gIGxldCByZXN1bHQ6IGJvb2xlYW47XG4gIGNvbnN0IHZhbHVlVG9Db21wYXJlID0gaXNOaWwoY29uZGl0aW9uLmZpZWxkKSB8fCBjb25kaXRpb24uZmllbGQgPT09ICcnID8gY29uZGl0aW9uVmFsdWUgOiBpdGVtVmFsdWU7XG4gIGNvbnN0IGNvbmRpdGlvblR5cGUgPSBjb25kaXRpb24/Lm9wZXJhdG9yPy50eXBlO1xuICBpZiAoIWNvbmRpdGlvblR5cGUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IG9wID0gU3RyaW5nKGNvbmRpdGlvblR5cGUpO1xuXG4gIHN3aXRjaCAob3ApIHtcbiAgICBjYXNlICdlcXVhbCc6XG4gICAgY2FzZSAnZXEnOlxuICAgICAgcmVzdWx0ID0gaXNFcXVhbCh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdFcXVhbCBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ25vdEVxdWFsJzpcbiAgICBjYXNlICduZSc6XG4gICAgY2FzZSAnbmVxJzpcbiAgICAgIHJlc3VsdCA9ICFpc0VxdWFsKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ05vdCBlcXVhbCBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2dyZWF0ZXJUaGFuJzpcbiAgICBjYXNlICdndCc6XG4gICAgICByZXN1bHQgPSBndCh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdHcmVhdGVyIHRoYW4gY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdsZXNzVGhhbic6XG4gICAgY2FzZSAnbHQnOlxuICAgICAgcmVzdWx0ID0gbHQodmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnTGVzcyB0aGFuIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZ3JlYXRlclRoYW5PckVxdWFsJzpcbiAgICBjYXNlICdndGUnOlxuICAgICAgcmVzdWx0ID0gZ3RlKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0dyZWF0ZXIgdGhhbiBvciBlcXVhbCBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2xlc3NUaGFuT3JFcXVhbCc6XG4gICAgY2FzZSAnbHRlJzpcbiAgICAgIHJlc3VsdCA9IGx0ZSh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdMZXNzIHRoYW4gb3IgZXF1YWwgY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdjb250YWlucyc6XG4gICAgICBpZiAodHlwZW9mIHZhbHVlVG9Db21wYXJlID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXN1bHQgPSBpbmNsdWRlcyh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlVG9Db21wYXJlKSkge1xuICAgICAgICByZXN1bHQgPSBpbmNsdWRlcyhcbiAgICAgICAgICB2YWx1ZVRvQ29tcGFyZS5tYXAoKHZhbCkgPT4gdmFsLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICAgY29uZGl0aW9uVmFsdWUsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnQ29udGFpbnMgY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdpbic6XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjb25kaXRpb25WYWx1ZSkpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZVRvQ29tcGFyZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICByZXN1bHQgPSBjb25kaXRpb25WYWx1ZS5zb21lKHZhbCA9PlxuICAgICAgICAgICAgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgPyB2YWwudG9Mb3dlckNhc2UoKSA9PT0gdmFsdWVUb0NvbXBhcmUgOiB2YWwgPT09IHZhbHVlVG9Db21wYXJlXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlVG9Db21wYXJlKSkge1xuICAgICAgICAgIHJlc3VsdCA9IHZhbHVlVG9Db21wYXJlLnNvbWUodmFsID0+XG4gICAgICAgICAgICBjb25kaXRpb25WYWx1ZS5zb21lKGNvbmRWYWwgPT5cbiAgICAgICAgICAgICAgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIGNvbmRWYWwgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgPyB2YWwudG9Mb3dlckNhc2UoKSA9PT0gY29uZFZhbC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgOiB2YWwgPT09IGNvbmRWYWxcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IGNvbmRpdGlvblZhbHVlLmluY2x1ZGVzKHZhbHVlVG9Db21wYXJlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0luIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbm90Q29udGFpbnMnOlxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZVRvQ29tcGFyZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVzdWx0ID0gIWluY2x1ZGVzKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVUb0NvbXBhcmUpKSB7XG4gICAgICAgIHJlc3VsdCA9ICFpbmNsdWRlcyhcbiAgICAgICAgICB2YWx1ZVRvQ29tcGFyZS5tYXAoKHZhbCkgPT4gdmFsLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICAgY29uZGl0aW9uVmFsdWUsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnTm90IGNvbnRhaW5zIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnc3RhcnRzV2l0aCc6XG4gICAgICByZXN1bHQgPSB0eXBlb2YgdmFsdWVUb0NvbXBhcmUgPT09ICdzdHJpbmcnICYmIHN0YXJ0c1dpdGgodmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlIGFzIHN0cmluZyk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1N0YXJ0cyB3aXRoIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZW5kc1dpdGgnOlxuICAgICAgcmVzdWx0ID0gdHlwZW9mIHZhbHVlVG9Db21wYXJlID09PSAnc3RyaW5nJyAmJiBlbmRzV2l0aCh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUgYXMgc3RyaW5nKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnRW5kcyB3aXRoIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnaXNFbXB0eSc6XG4gICAgICByZXN1bHQgPSBpc0VtcHR5KHZhbHVlVG9Db21wYXJlKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnSXMgZW1wdHkgY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdpc051bGwnOlxuICAgICAgcmVzdWx0ID0gaXNOaWwodmFsdWVUb0NvbXBhcmUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdJcyBudWxsIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnaXNOb3RFbXB0eSc6XG4gICAgICByZXN1bHQgPSAhaXNFbXB0eSh2YWx1ZVRvQ29tcGFyZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0lzIG5vdCBlbXB0eSBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2JldHdlZW4nOlxuICAgICAgcmVzdWx0ID0gIWlzTmlsKHZhbHVlVG9Db21wYXJlKSAmJiB2YWx1ZVRvQ29tcGFyZSA+PSAoY29uZGl0aW9uLnZhbHVlIGFzIHsgZnJvbTogbnVtYmVyOyB0bzogbnVtYmVyIH0pLmZyb20gJiYgdmFsdWVUb0NvbXBhcmUgPD0gKGNvbmRpdGlvbi52YWx1ZSBhcyB7IGZyb206IG51bWJlcjsgdG86IG51bWJlciB9KS50bztcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnQmV0d2VlbiBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXN1bHQgPSB0cnVlO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdEZWZhdWx0IGNhc2UsIHJldHVybmluZyB0cnVlJyk7XG4gICAgICB9XG4gIH1cblxuICAvLyBBcHBseSBuZWdhdGl2ZSBmbGFnIGlmIHByZXNlbnQgb24gb3BlcmF0b3IgKGludmVydCB0aGUgcmVzdWx0KVxuICBjb25zdCBpc05lZ2F0aXZlID0gISFjb25kaXRpb24/Lm9wZXJhdG9yPy5uZWdhdGl2ZTtcbiAgcmV0dXJuIGlzTmVnYXRpdmUgPyAhcmVzdWx0IDogcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlGaWx0ZXJBcnJheShcbiAgZGF0YUFycmF5OiBhbnlbXSxcbiAgZmlsdGVycz86IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbltdLFxuICBsb2dpYzogJ2FuZCcgfCAnb3InID0gJ2FuZCcsXG4pOiBhbnlbXSB7XG4gIGlmIChmaWx0ZXJzICYmIGZpbHRlcnMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGRhdGFBcnJheS5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgIGlmIChsb2dpYyA9PT0gJ2FuZCcpIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlcnMuZXZlcnkoKGYpID0+IHtcbiAgICAgICAgICByZXR1cm4gZi5maWx0ZXJzID8gYXBwbHlGaWx0ZXJBcnJheShbaXRlbV0sIGYuZmlsdGVycywgZi5sb2dpYykubGVuZ3RoID4gMCA6IGFwcGx5Q29uZGl0aW9uKGl0ZW0sIGYpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGxvZ2ljID09PSAnb3InXG4gICAgICAgIHJldHVybiBmaWx0ZXJzLnNvbWUoKGYpID0+IHtcbiAgICAgICAgICByZXR1cm4gZi5maWx0ZXJzID8gYXBwbHlGaWx0ZXJBcnJheShbaXRlbV0sIGYuZmlsdGVycywgZi5sb2dpYykubGVuZ3RoID4gMCA6IGFwcGx5Q29uZGl0aW9uKGl0ZW0sIGYpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZGF0YUFycmF5O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVNvcnRBcnJheShkYXRhQXJyYXk6IGFueSwgc29ydHM6IEFYRGF0YVNvdXJjZVNvcnRPcHRpb25bXSkge1xuICBpZiAoc29ydHMgJiYgc29ydHMubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IHNvcnRGaWVsZHMgPSBzb3J0cy5tYXAoKHMpID0+IHMuZmllbGQpO1xuICAgIGNvbnN0IHNvcnRPcmRlcnMgPSBzb3J0cy5tYXAoKHMpID0+IHMuZGlyKTtcbiAgICByZXR1cm4gb3JkZXJCeShkYXRhQXJyYXksIHNvcnRGaWVsZHMsIHNvcnRPcmRlcnMpO1xuICB9IGVsc2UgcmV0dXJuIGRhdGFBcnJheTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGFnaW5hdGlvbjxUPihkYXRhQXJyYXk6IFRbXSwgc2tpcDogbnVtYmVyLCB0YWtlOiBudW1iZXIpOiBUW10ge1xuICByZXR1cm4gZGF0YUFycmF5LnNsaWNlKHNraXAsIHNraXAgKyB0YWtlKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwcGx5UXVlcnlBcnJheTxUPihcbiAgZGF0YUFycmF5OiBUW10sXG4gIHF1ZXJ5OiBBWERhdGFTb3VyY2VRdWVyeSxcbik6IFByb21pc2U8QVhEYXRhU291cmNlQ2FsbGJhY2tSZXN1bHQ8VD4+IHtcbiAgbGV0IHJlc3VsdCA9IFsuLi5kYXRhQXJyYXldO1xuXG4gIC8vIEFwcGx5IGZpbHRlcmluZ1xuICBpZiAocXVlcnkuZmlsdGVyKSB7XG4gICAgcmVzdWx0ID0gYXBwbHlGaWx0ZXJBcnJheShyZXN1bHQsIFtxdWVyeS5maWx0ZXJdLCBxdWVyeS5maWx0ZXIubG9naWMgPz8gJ2FuZCcpO1xuICB9XG5cbiAgLy8gU3RvcmUgdG90YWwgY291bnQgYmVmb3JlIHBhZ2luYXRpb25cbiAgY29uc3QgdG90YWwgPSByZXN1bHQubGVuZ3RoO1xuXG4gIC8vIEFwcGx5IHNvcnRpbmdcbiAgaWYgKHF1ZXJ5LnNvcnQgJiYgcXVlcnkuc29ydC5sZW5ndGggPiAwKSB7XG4gICAgcmVzdWx0ID0gYXBwbHlTb3J0QXJyYXkocmVzdWx0LCBxdWVyeS5zb3J0KTtcbiAgfVxuXG4gIC8vIEFwcGx5IHBhZ2luYXRpb25cbiAgcmVzdWx0ID0gYXBwbHlQYWdpbmF0aW9uKHJlc3VsdCwgcXVlcnkuc2tpcCwgcXVlcnkudGFrZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBpdGVtczogcmVzdWx0LFxuICAgIHRvdGFsLFxuICB9O1xufVxuIl19","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Service for applying and resetting text highlighting within specified HTML elements.\n */\nexport class AXHighlightService {\n constructor() { }\n /**\n * Highlights all occurrences of a search value within the elements matching the provided query selector.\n *\n * @param querySelector - CSS selector to identify target elements.\n * @param searchValue - Text to search and highlight.\n */\n highlight(querySelector, searchValue) {\n this.clear();\n if (!querySelector || !searchValue) {\n return;\n }\n this.querySelector = querySelector;\n this.searchValue = searchValue;\n const elements = document.querySelectorAll(querySelector);\n elements.forEach((element) => {\n this.applyHighlight(element);\n });\n }\n /**\n * Resets all highlighted text within the elements matching the previously used query selector.\n */\n clear() {\n const elements = document.querySelectorAll(`${this.querySelector} .ax-highlight-text`);\n elements.forEach((element) => {\n let combinedText = '';\n element.querySelectorAll('span').forEach((span) => {\n combinedText += span.textContent;\n });\n const mergedSpan = document.createElement('span');\n mergedSpan.textContent = combinedText;\n element?.parentNode?.replaceChild(mergedSpan, element);\n });\n }\n /**\n * Applies highlighting to a specific element by matching text against the search value.\n *\n * @param element - The HTML element to apply highlights to.\n */\n applyHighlight(element) {\n const searchRegex = new RegExp(`(${this.searchValue})`, 'gi');\n this.recursivelyHighlight(element, searchRegex);\n }\n /**\n * Recursively applies highlighting to text nodes within an element.\n *\n * @param element - The current node being processed.\n * @param searchRegex - Regular expression for matching text to highlight.\n */\n recursivelyHighlight(element, searchRegex) {\n const childNodes = Array.from(element.childNodes);\n childNodes.forEach((node) => {\n if (node.nodeType === Node.TEXT_NODE) {\n const textContent = node.textContent || '';\n if (textContent.match(searchRegex)) {\n const highlightedHTML = this.createHighlightedHTML(textContent, searchRegex);\n const tempContainer = document.createElement('div');\n tempContainer.innerHTML = highlightedHTML;\n const fragment = document.createDocumentFragment();\n Array.from(tempContainer.childNodes).forEach((child) => fragment.appendChild(child));\n node.replaceWith(fragment);\n }\n }\n else if (node.nodeType === Node.ELEMENT_NODE) {\n this.recursivelyHighlight(node, searchRegex);\n }\n });\n }\n /**\n * Generates the HTML structure for highlighted text.\n *\n * @param textContent - The original text content to process.\n * @param searchRegex - Regular expression for matching text to highlight.\n * @returns A string of HTML with highlighted portions wrapped in span elements.\n */\n createHighlightedHTML(textContent, searchRegex) {\n let parts = [];\n let match;\n let lastIndex = 0;\n let resultHTML = '<span class=\"ax-highlight-text\">';\n while ((match = searchRegex.exec(textContent)) !== null) {\n if (match.index > lastIndex) {\n resultHTML += `<span>${textContent.slice(lastIndex, match.index)}</span>`;\n }\n resultHTML += `<span class=\"ax-highlight\">${match[0]}</span>`;\n lastIndex = searchRegex.lastIndex;\n }\n if (lastIndex < textContent.length) {\n resultHTML += `<span>${textContent.slice(lastIndex)}</span>`;\n }\n resultHTML += '</span>';\n return resultHTML;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXHighlightService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXHighlightService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXHighlightService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi91dGlscy9oaWdobGlnaHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzQzs7R0FFRztBQUlILE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsZ0JBQWdCLENBQUM7SUFFakI7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUMsYUFBcUIsRUFBRSxXQUFtQjtRQUNsRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBc0IsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUNWLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLHNCQUFzQixDQUFDLENBQUM7UUFDeEYsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2hE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TUFBTSxFQUFFLENBQUM7WUFDbkMsVUFBVSxJQUFJLFNBQVMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQy9ELENBQUM7UUFFRCxVQUFVLElBQUksU0FBUyxDQUFDO1FBRXhCLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7OEdBN0dVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogU2VydmljZSBmb3IgYXBwbHlpbmcgYW5kIHJlc2V0dGluZyB0ZXh0IGhpZ2hsaWdodGluZyB3aXRoaW4gc3BlY2lmaWVkIEhUTUwgZWxlbWVudHMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWEhpZ2hsaWdodFNlcnZpY2Uge1xuICBwcml2YXRlIHF1ZXJ5U2VsZWN0b3I6IHN0cmluZyB8IG51bGw7XG4gIHByaXZhdGUgc2VhcmNoVmFsdWU6IHN0cmluZyB8IG51bGw7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICAvKipcbiAgICogSGlnaGxpZ2h0cyBhbGwgb2NjdXJyZW5jZXMgb2YgYSBzZWFyY2ggdmFsdWUgd2l0aGluIHRoZSBlbGVtZW50cyBtYXRjaGluZyB0aGUgcHJvdmlkZWQgcXVlcnkgc2VsZWN0b3IuXG4gICAqXG4gICAqIEBwYXJhbSBxdWVyeVNlbGVjdG9yIC0gQ1NTIHNlbGVjdG9yIHRvIGlkZW50aWZ5IHRhcmdldCBlbGVtZW50cy5cbiAgICogQHBhcmFtIHNlYXJjaFZhbHVlIC0gVGV4dCB0byBzZWFyY2ggYW5kIGhpZ2hsaWdodC5cbiAgICovXG4gIGhpZ2hsaWdodChxdWVyeVNlbGVjdG9yOiBzdHJpbmcsIHNlYXJjaFZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyKCk7XG4gICAgaWYgKCFxdWVyeVNlbGVjdG9yIHx8ICFzZWFyY2hWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IgPSBxdWVyeVNlbGVjdG9yO1xuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZTtcbiAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwocXVlcnlTZWxlY3Rvcik7XG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgdGhpcy5hcHBseUhpZ2hsaWdodChlbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgYWxsIGhpZ2hsaWdodGVkIHRleHQgd2l0aGluIHRoZSBlbGVtZW50cyBtYXRjaGluZyB0aGUgcHJldmlvdXNseSB1c2VkIHF1ZXJ5IHNlbGVjdG9yLlxuICAgKi9cbiAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgJHt0aGlzLnF1ZXJ5U2VsZWN0b3J9ICAuYXgtaGlnaGxpZ2h0LXRleHRgKTtcbiAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICBsZXQgY29tYmluZWRUZXh0ID0gJyc7XG4gICAgICBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3NwYW4nKS5mb3JFYWNoKChzcGFuKSA9PiB7XG4gICAgICAgIGNvbWJpbmVkVGV4dCArPSBzcGFuLnRleHRDb250ZW50O1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IG1lcmdlZFNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICBtZXJnZWRTcGFuLnRleHRDb250ZW50ID0gY29tYmluZWRUZXh0O1xuXG4gICAgICBlbGVtZW50Py5wYXJlbnROb2RlPy5yZXBsYWNlQ2hpbGQobWVyZ2VkU3BhbiwgZWxlbWVudCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyBoaWdobGlnaHRpbmcgdG8gYSBzcGVjaWZpYyBlbGVtZW50IGJ5IG1hdGNoaW5nIHRleHQgYWdhaW5zdCB0aGUgc2VhcmNoIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gZWxlbWVudCAtIFRoZSBIVE1MIGVsZW1lbnQgdG8gYXBwbHkgaGlnaGxpZ2h0cyB0by5cbiAgICovXG4gIHByaXZhdGUgYXBwbHlIaWdobGlnaHQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzZWFyY2hSZWdleCA9IG5ldyBSZWdFeHAoYCgke3RoaXMuc2VhcmNoVmFsdWV9KWAsICdnaScpO1xuICAgIHRoaXMucmVjdXJzaXZlbHlIaWdobGlnaHQoZWxlbWVudCwgc2VhcmNoUmVnZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY3Vyc2l2ZWx5IGFwcGxpZXMgaGlnaGxpZ2h0aW5nIHRvIHRleHQgbm9kZXMgd2l0aGluIGFuIGVsZW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBlbGVtZW50IC0gVGhlIGN1cnJlbnQgbm9kZSBiZWluZyBwcm9jZXNzZWQuXG4gICAqIEBwYXJhbSBzZWFyY2hSZWdleCAtIFJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgbWF0Y2hpbmcgdGV4dCB0byBoaWdobGlnaHQuXG4gICAqL1xuICBwcml2YXRlIHJlY3Vyc2l2ZWx5SGlnaGxpZ2h0KGVsZW1lbnQ6IE5vZGUsIHNlYXJjaFJlZ2V4OiBSZWdFeHApOiB2b2lkIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gQXJyYXkuZnJvbShlbGVtZW50LmNoaWxkTm9kZXMpO1xuXG4gICAgY2hpbGROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgY29uc3QgdGV4dENvbnRlbnQgPSBub2RlLnRleHRDb250ZW50IHx8ICcnO1xuICAgICAgICBpZiAodGV4dENvbnRlbnQubWF0Y2goc2VhcmNoUmVnZXgpKSB7XG4gICAgICAgICAgY29uc3QgaGlnaGxpZ2h0ZWRIVE1MID0gdGhpcy5jcmVhdGVIaWdobGlnaHRlZEhUTUwodGV4dENvbnRlbnQsIHNlYXJjaFJlZ2V4KTtcbiAgICAgICAgICBjb25zdCB0ZW1wQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgdGVtcENvbnRhaW5lci5pbm5lckhUTUwgPSBoaWdobGlnaHRlZEhUTUw7XG5cbiAgICAgICAgICBjb25zdCBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgICBBcnJheS5mcm9tKHRlbXBDb250YWluZXIuY2hpbGROb2RlcykuZm9yRWFjaCgoY2hpbGQpID0+IGZyYWdtZW50LmFwcGVuZENoaWxkKGNoaWxkKSk7XG5cbiAgICAgICAgICBub2RlLnJlcGxhY2VXaXRoKGZyYWdtZW50KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSkge1xuICAgICAgICB0aGlzLnJlY3Vyc2l2ZWx5SGlnaGxpZ2h0KG5vZGUsIHNlYXJjaFJlZ2V4KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIEhUTUwgc3RydWN0dXJlIGZvciBoaWdobGlnaHRlZCB0ZXh0LlxuICAgKlxuICAgKiBAcGFyYW0gdGV4dENvbnRlbnQgLSBUaGUgb3JpZ2luYWwgdGV4dCBjb250ZW50IHRvIHByb2Nlc3MuXG4gICAqIEBwYXJhbSBzZWFyY2hSZWdleCAtIFJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgbWF0Y2hpbmcgdGV4dCB0byBoaWdobGlnaHQuXG4gICAqIEByZXR1cm5zIEEgc3RyaW5nIG9mIEhUTUwgd2l0aCBoaWdobGlnaHRlZCBwb3J0aW9ucyB3cmFwcGVkIGluIHNwYW4gZWxlbWVudHMuXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUhpZ2hsaWdodGVkSFRNTCh0ZXh0Q29udGVudDogc3RyaW5nLCBzZWFyY2hSZWdleDogUmVnRXhwKTogc3RyaW5nIHtcbiAgICBsZXQgcGFydHM6IHN0cmluZ1tdID0gW107XG4gICAgbGV0IG1hdGNoO1xuICAgIGxldCBsYXN0SW5kZXggPSAwO1xuICAgIGxldCByZXN1bHRIVE1MID0gJzxzcGFuIGNsYXNzPVwiYXgtaGlnaGxpZ2h0LXRleHRcIj4nO1xuXG4gICAgd2hpbGUgKChtYXRjaCA9IHNlYXJjaFJlZ2V4LmV4ZWModGV4dENvbnRlbnQpKSAhPT0gbnVsbCkge1xuICAgICAgaWYgKG1hdGNoLmluZGV4ID4gbGFzdEluZGV4KSB7XG4gICAgICAgIHJlc3VsdEhUTUwgKz0gYDxzcGFuPiR7dGV4dENvbnRlbnQuc2xpY2UobGFzdEluZGV4LCBtYXRjaC5pbmRleCl9PC9zcGFuPmA7XG4gICAgICB9XG4gICAgICByZXN1bHRIVE1MICs9IGA8c3BhbiBjbGFzcz1cImF4LWhpZ2hsaWdodFwiPiR7bWF0Y2hbMF19PC9zcGFuPmA7XG4gICAgICBsYXN0SW5kZXggPSBzZWFyY2hSZWdleC5sYXN0SW5kZXg7XG4gICAgfVxuXG4gICAgaWYgKGxhc3RJbmRleCA8IHRleHRDb250ZW50Lmxlbmd0aCkge1xuICAgICAgcmVzdWx0SFRNTCArPSBgPHNwYW4+JHt0ZXh0Q29udGVudC5zbGljZShsYXN0SW5kZXgpfTwvc3Bhbj5gO1xuICAgIH1cblxuICAgIHJlc3VsdEhUTUwgKz0gJzwvc3Bhbj4nO1xuXG4gICAgcmV0dXJuIHJlc3VsdEhUTUw7XG4gIH1cbn1cbiJdfQ==","export function extractTextFromHtml(value) {\n const div = document.createElement('div');\n div.innerHTML = value;\n return div.textContent || div.innerText || '';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvdXRpbHMvc3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxtQkFBbUIsQ0FBRSxLQUFhO0lBQ2hELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDdEIsT0FBTyxHQUFHLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZXh0cmFjdFRleHRGcm9tSHRtbCAodmFsdWU6IHN0cmluZykge1xuICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgZGl2LmlubmVySFRNTCA9IHZhbHVlO1xuICByZXR1cm4gZGl2LnRleHRDb250ZW50IHx8IGRpdi5pbm5lclRleHQgfHwgJyc7XG59XG5cbiJdfQ==","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport const AXP_ACTIVITY_LOG_PROVIDER = new InjectionToken('AXP_ACTIVITY_LOGS_PROVIDER');\nexport class AXPActivityLogService {\n constructor() {\n this.providers = inject(AXP_ACTIVITY_LOG_PROVIDER, { optional: true });\n }\n async getHistory(refId, refType, options) {\n return (await Promise.all(this.providers?.map((p) => p.getHistory(refId, refType, options)) ?? [])).flat();\n }\n async getHistoryByIds(refId, refType, ids) {\n return (await Promise.all(this.providers?.map((p) => p.getHistoryByIds(refId, refType, ids)) ?? [])).flat();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPActivityLogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPActivityLogService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPActivityLogService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9hY3Rpdml0eS1sb2cvYWN0aXZpdHktbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUluRSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGNBQWMsQ0FBMkIsNEJBQTRCLENBQUMsQ0FBQztBQUdwSCxNQUFNLE9BQU8scUJBQXFCO0lBRGxDO1FBRVUsY0FBUyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBVTNFO0lBUkMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFhLEVBQUUsT0FBZSxFQUFFLE9BQXFFO1FBQ3BILE9BQU8sQ0FBQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFN0csQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBYSxFQUFFLE9BQWUsRUFBRSxHQUFhO1FBQ2pFLE9BQU8sQ0FBQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUcsQ0FBQzs4R0FWVSxxQkFBcUI7a0hBQXJCLHFCQUFxQixjQURSLE1BQU07OzJGQUNuQixxQkFBcUI7a0JBRGpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQQWN0aXZpdHlMb2dQcm92aWRlciB9IGZyb20gJy4vYWN0aXZpdHktbG9nLnByb3ZpZGVyJztcbmltcG9ydCB7IEFYUEFjdGl2aXR5TG9nIH0gZnJvbSAnLi9hY3Rpdml0eS1sb2cudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgQVhQX0FDVElWSVRZX0xPR19QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBBY3Rpdml0eUxvZ1Byb3ZpZGVyW10+KCdBWFBfQUNUSVZJVFlfTE9HU19QUk9WSURFUicpO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEFjdGl2aXR5TG9nU2VydmljZSB7XG4gIHByaXZhdGUgcHJvdmlkZXJzID0gaW5qZWN0KEFYUF9BQ1RJVklUWV9MT0dfUFJPVklERVIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgYXN5bmMgZ2V0SGlzdG9yeShyZWZJZDogc3RyaW5nLCByZWZUeXBlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGZyb20/OiBEYXRlOyB0bz86IERhdGU7IGxpbWl0PzogbnVtYmVyOyBvZmZzZXQ/OiBudW1iZXIgfSk6IFByb21pc2U8QVhQQWN0aXZpdHlMb2dbXT4ge1xuICAgIHJldHVybiAoYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5wcm92aWRlcnM/Lm1hcCgocCkgPT4gcC5nZXRIaXN0b3J5KHJlZklkLCByZWZUeXBlLCBvcHRpb25zKSkgPz8gW10pKS5mbGF0KCk7XG5cbiAgfVxuXG4gIGFzeW5jIGdldEhpc3RvcnlCeUlkcyhyZWZJZDogc3RyaW5nLCByZWZUeXBlOiBzdHJpbmcsIGlkczogc3RyaW5nW10pOiBQcm9taXNlPEFYUEFjdGl2aXR5TG9nW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMucHJvdmlkZXJzPy5tYXAoKHApID0+IHAuZ2V0SGlzdG9yeUJ5SWRzKHJlZklkLCByZWZUeXBlLCBpZHMpKSA/PyBbXSkpLmZsYXQoKTtcbiAgfVxufSJdfQ==","export class AXPActivityLogProvider {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9nLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvYWN0aXZpdHktbG9nL2FjdGl2aXR5LWxvZy5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQWdCLHNCQUFzQjtDQUczQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEFjdGl2aXR5TG9nIH0gZnJvbSAnLi9hY3Rpdml0eS1sb2cudHlwZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQQWN0aXZpdHlMb2dQcm92aWRlciB7XG4gIGFic3RyYWN0IGdldEhpc3RvcnkocmVmSWQ6IHN0cmluZywgcmVmVHlwZTogc3RyaW5nLCBvcHRpb25zPzogeyBmcm9tPzogRGF0ZTsgdG8/OiBEYXRlOyBsaW1pdD86IG51bWJlcjsgb2Zmc2V0PzogbnVtYmVyIH0pOiBQcm9taXNlPEFYUEFjdGl2aXR5TG9nW10+O1xuICBhYnN0cmFjdCBnZXRIaXN0b3J5QnlJZHMocmVmSWQ6IHN0cmluZywgcmVmVHlwZTogc3RyaW5nLCBpZHM6IHN0cmluZ1tdKTogUHJvbWlzZTxBWFBBY3Rpdml0eUxvZ1tdPjtcbn0iXX0=","import { InjectionToken } from '@angular/core';\nexport const AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER = new InjectionToken('AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0ZWQtZXZlbnQtbGlzdGVuZXIucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9kaXN0cmlidXRlZC1ldmVudHMvZGlzdHJpYnV0ZWQtZXZlbnQtbGlzdGVuZXIucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0vQyxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBRyxJQUFJLGNBQWMsQ0FDdkUseUNBQXlDLENBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBBWFBEaXN0cmlidXRlZEV2ZW50TGlzdGVuZXJQcm92aWRlclRva2VuPFQ+ID1cbiAgfCBBWFBEaXN0cmlidXRlZEV2ZW50TGlzdGVuZXJQcm92aWRlcjxUPlxuICB8IFByb21pc2U8QVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyUHJvdmlkZXI8VD4+O1xuXG5leHBvcnQgY29uc3QgQVhQX0RJU1RSSUJVVEVEX0VWRU5UX0xJU1RFTkVSX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuPEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclByb3ZpZGVyVG9rZW48YW55PltdPihcbiAgJ0FYUF9ESVNUUklCVVRFRF9FVkVOVF9MSVNURU5FUl9QUk9WSURFUidcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyUHJvdmlkZXI8VElucHV0ID0gYW55LCBUT3V0cHV0ID0gdm9pZD4ge1xuICBrZXk6IHN0cmluZztcbiAgZXhlY3V0ZShkYXRhOiBUSW5wdXQpOiBQcm9taXNlPFRPdXRwdXQ+IHwgVE91dHB1dDtcblxuICBwcmlvcml0eT86IG51bWJlcjtcbn0iXX0=","//#region ---- Imports ----\nimport { inject, Injectable, Injector, runInInjectionContext } from '@angular/core';\nimport { AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER } from './distributed-event-listener.provider';\nimport * as i0 from \"@angular/core\";\n//#endregion\nexport class AXPDistributedEventListenerService {\n constructor() {\n //#region ---- Providers & Caches ----\n this.listenerProviders = inject(AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, { optional: true }) || [];\n this.injector = inject(Injector);\n /** Cache for listeners by key. */\n this.listenersByKey = new Map();\n /** Flag to track if providers have been loaded */\n this.providersLoaded = false;\n }\n //#endregion\n //#region ---- Public API ----\n /**\n * Dispatches an event to all registered listeners for the given key.\n * @param key The event key.\n * @param data The event data to pass to listeners.\n */\n async dispatch(key, data) {\n const providers = await this.resolveProviders();\n const matched = providers.filter(p => p.key === key);\n if (!matched.length) {\n console.warn(`[AXPDistributedEventListenerService] No provider found for key='${key}'`);\n return;\n }\n for (const provider of matched) {\n try {\n await Promise.resolve(runInInjectionContext(this.injector, () => provider.execute(data)));\n }\n catch (err) {\n console.error(`[AXPDistributedEventListenerService] Provider for key='${key}' failed`, err);\n }\n }\n }\n /**\n * Dispatch with async response (first matching provider, with retry/timeout)\n */\n async dispatchAsync(key, data, options = {\n timeout: 60_000,\n retries: 3,\n retryDelay: 1000,\n }) {\n const providers = await this.resolveProviders();\n const matched = providers.filter(p => p.key === key);\n if (!matched.length) {\n throw new Error(`No provider found for key='${key}'`);\n }\n const attempt = (n) => {\n return new Promise((resolve, reject) => {\n let finished = false;\n const timer = setTimeout(() => {\n if (!finished) {\n if (n < options.retries) {\n console.warn(`[dispatchAsync] retrying key='${key}' (${n + 1}/${options.retries})`);\n resolve(attempt(n + 1));\n }\n else {\n reject(new Error(`Timeout: no response for key='${key}' after ${options.retries} attempts.`));\n }\n }\n }, options.timeout);\n try {\n const provider = matched[0];\n const result = runInInjectionContext(this.injector, () => provider.execute(data));\n Promise.resolve(result)\n .then((r) => {\n finished = true;\n clearTimeout(timer);\n resolve(r);\n })\n .catch(err => {\n finished = true;\n clearTimeout(timer);\n reject(err);\n });\n }\n catch (err) {\n clearTimeout(timer);\n reject(err);\n }\n });\n };\n return attempt(0);\n }\n /**\n * Resolve all providers (handle both direct provider and Promise<provider>)\n */\n async resolveProviders() {\n return Promise.all(this.listenerProviders.map(p => p instanceof Promise ? p : Promise.resolve(p)));\n }\n /**\n * Returns all listeners for a specific event key.\n * @param key The event key.\n * @returns Array of listeners for the key.\n */\n async getListeners(key) {\n await this.ensureProvidersLoaded();\n return this.listenersByKey.get(key) || [];\n }\n /**\n * Returns all registered event keys.\n * @returns Array of all event keys that have listeners.\n */\n async getRegisteredKeys() {\n await this.ensureProvidersLoaded();\n return Array.from(this.listenersByKey.keys());\n }\n //#endregion\n //#region ---- Private Methods ----\n /**\n * Ensures that all providers have been loaded and cached.\n */\n async ensureProvidersLoaded() {\n if (this.providersLoaded) {\n return;\n }\n // Resolve all providers\n const resolvedProviders = await Promise.all(this.listenerProviders);\n // Group listeners by key\n for (const provider of resolvedProviders) {\n if (provider) {\n const existingListeners = this.listenersByKey.get(provider.key) || [];\n existingListeners.push(provider);\n this.listenersByKey.set(provider.key, existingListeners);\n }\n }\n this.providersLoaded = true;\n }\n //#endregion\n //#region ---- Cache Management ----\n /** Clears the listeners cache and forces reload on next access. */\n clearListenersCache() {\n this.listenersByKey.clear();\n this.providersLoaded = false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDistributedEventListenerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDistributedEventListenerService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDistributedEventListenerService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0ZWQtZXZlbnQtbGlzdGVuZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2Rpc3RyaWJ1dGVkLWV2ZW50cy9kaXN0cmlidXRlZC1ldmVudC1saXN0ZW5lci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUUvQixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLHVDQUF1QyxFQUF1QyxNQUFNLHVDQUF1QyxDQUFDOztBQUVySSxZQUFZO0FBS1osTUFBTSxPQUFPLGtDQUFrQztJQUgvQztRQUlFLDBDQUEwQztRQUV6QixzQkFBaUIsR0FBRyxNQUFNLENBQUMsdUNBQXVDLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUYsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU3QyxrQ0FBa0M7UUFDMUIsbUJBQWMsR0FBNEQsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUU1RixrREFBa0Q7UUFDMUMsb0JBQWUsR0FBRyxLQUFLLENBQUM7S0FxS2pDO0lBbktDLFlBQVk7SUFFWixrQ0FBa0M7SUFFbEM7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBVyxFQUFFLElBQVU7UUFDcEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNoRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE9B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QUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFcEUseUJBQXlCO1FBQ3pCLEtBQUssTUFBTSxRQUFRLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN6QyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdEUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDM0QsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQsWUFBWTtJQUVaLHdDQUF3QztJQUV4QyxtRUFBbUU7SUFDbkUsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQzs4R0E1S1Usa0NBQWtDO2tIQUFsQyxrQ0FBa0MsY0FGakMsTUFBTTs7MkZBRVAsa0NBQWtDO2tCQUg5QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgSW1wb3J0cyAgIC0tLS1cblxuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBfRElTVFJJQlVURURfRVZFTlRfTElTVEVORVJfUFJPVklERVIsIEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclByb3ZpZGVyIH0gZnJvbSAnLi9kaXN0cmlidXRlZC1ldmVudC1saXN0ZW5lci5wcm92aWRlcic7XG5cbi8vI2VuZHJlZ2lvblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyU2VydmljZSB7XG4gIC8vI3JlZ2lvbiAtLS0tICAgUHJvdmlkZXJzICYgQ2FjaGVzICAgLS0tLVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgbGlzdGVuZXJQcm92aWRlcnMgPSBpbmplY3QoQVhQX0RJU1RSSUJVVEVEX0VWRU5UX0xJU1RFTkVSX1BST1ZJREVSLCB7IG9wdGlvbmFsOiB0cnVlIH0pIHx8IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICAvKiogQ2FjaGUgZm9yIGxpc3RlbmVycyBieSBrZXkuICovXG4gIHByaXZhdGUgbGlzdGVuZXJzQnlLZXk6IE1hcDxzdHJpbmcsIEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclByb3ZpZGVyPGFueT5bXT4gPSBuZXcgTWFwKCk7XG4gIFxuICAvKiogRmxhZyB0byB0cmFjayBpZiBwcm92aWRlcnMgaGF2ZSBiZWVuIGxvYWRlZCAqL1xuICBwcml2YXRlIHByb3ZpZGVyc0xvYWRlZCA9IGZhbHNlO1xuICBcbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBQdWJsaWMgQVBJICAgLS0tLVxuXG4gIC8qKlxuICAgKiBEaXNwYXRjaGVzIGFuIGV2ZW50IHRvIGFsbCByZWdpc3RlcmVkIGxpc3RlbmVycyBmb3IgdGhlIGdpdmVuIGtleS5cbiAgICogQHBhcmFtIGtleSBUaGUgZXZlbnQga2V5LlxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZXZlbnQgZGF0YSB0byBwYXNzIHRvIGxpc3RlbmVycy5cbiAgICovXG4gIGFzeW5jIGRpc3BhdGNoKGtleTogc3RyaW5nLCBkYXRhPzogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcHJvdmlkZXJzID0gYXdhaXQgdGhpcy5yZXNvbHZlUHJvdmlkZXJzKCk7XG4gICAgY29uc3QgbWF0Y2hlZCA9IHByb3ZpZGVycy5maWx0ZXIocCA9PiBwLmtleSA9PT0ga2V5KTtcblxuICAgIGlmICghbWF0Y2hlZC5sZW5ndGgpIHtcbiAgICAgIGNvbnNvbGUud2FybihgW0FYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclNlcnZpY2VdIE5vIHByb3ZpZGVyIGZvdW5kIGZvciBrZXk9JyR7a2V5fSdgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIG1hdGNoZWQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IFByb21pc2UucmVzb2x2ZShcbiAgICAgICAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4gcHJvdmlkZXIuZXhlY3V0ZShkYXRhKSlcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBbQVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyU2VydmljZV0gUHJvdmlkZXIgZm9yIGtleT0nJHtrZXl9JyBmYWlsZWRgLCBlcnIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4vKipcbiAgICogRGlzcGF0Y2ggd2l0aCBhc3luYyByZXNwb25zZSAoZmlyc3QgbWF0Y2hpbmcgcHJvdmlkZXIsIHdpdGggcmV0cnkvdGltZW91dClcbiAgICovXG5wdWJsaWMgYXN5bmMgZGlzcGF0Y2hBc3luYzxULCBSPihcbiAga2V5OiBzdHJpbmcsXG4gIGRhdGE6IFQsXG4gIG9wdGlvbnM6IHsgdGltZW91dDogbnVtYmVyOyByZXRyaWVzOiBudW1iZXI7IHJldHJ5RGVsYXk6IG51bWJlciB9ID0ge1xuICAgIHRpbWVvdXQ6IDYwXzAwMCxcbiAgICByZXRyaWVzOiAzLFxuICAgIHJldHJ5RGVsYXk6IDEwMDAsXG4gIH1cbik6IFByb21pc2U8Uj4ge1xuICBjb25zdCBwcm92aWRlcnMgPSBhd2FpdCB0aGlzLnJlc29sdmVQcm92aWRlcnMoKTtcbiAgY29uc3QgbWF0Y2hlZCA9IHByb3ZpZGVycy5maWx0ZXIocCA9PiBwLmtleSA9PT0ga2V5KTtcblxuICBpZiAoIW1hdGNoZWQubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyBwcm92aWRlciBmb3VuZCBmb3Iga2V5PScke2tleX0nYCk7XG4gIH1cblxuICBjb25zdCBhdHRlbXB0ID0gKG46IG51bWJlcik6IFByb21pc2U8Uj4gPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxSPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBsZXQgZmluaXNoZWQgPSBmYWxzZTtcblxuICAgICAgY29uc3QgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKCFmaW5pc2hlZCkge1xuICAgICAgICAgIGlmIChuIDwgb3B0aW9ucy5yZXRyaWVzKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgIGBbZGlzcGF0Y2hBc3luY10gcmV0cnlpbmcga2V5PScke2tleX0nICgke24gKyAxfS8ke29wdGlvbnMucmV0cmllc30pYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJlc29sdmUoYXR0ZW1wdChuICsgMSkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWplY3QoXG4gICAgICAgICAgICAgIG5ldyBFcnJvcihgVGltZW91dDogbm8gcmVzcG9uc2UgZm9yIGtleT0nJHtrZXl9JyBhZnRlciAke29wdGlvbnMucmV0cmllc30gYXR0ZW1wdHMuYClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LCBvcHRpb25zLnRpbWVvdXQpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwcm92aWRlciA9IG1hdGNoZWRbMF07XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PlxuICAgICAgICAgIHByb3ZpZGVyLmV4ZWN1dGUoZGF0YSlcbiAgICAgICAgKTtcblxuICAgICAgICBQcm9taXNlLnJlc29sdmUocmVzdWx0KVxuICAgICAgICAgIC50aGVuKChyOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICAgICAgICByZXNvbHZlKHIpO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIGF0dGVtcHQoMCk7XG59XG5cbiAvKipcbiAgICogUmVzb2x2ZSBhbGwgcHJvdmlkZXJzIChoYW5kbGUgYm90aCBkaXJlY3QgcHJvdmlkZXIgYW5kIFByb21pc2U8cHJvdmlkZXI+KVxuICAgKi9cbiBwcml2YXRlIGFzeW5jIHJlc29sdmVQcm92aWRlcnMoKTogUHJvbWlzZTxBWFBEaXN0cmlidXRlZEV2ZW50TGlzdGVuZXJQcm92aWRlcjxhbnk+W10+IHtcbiAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgIHRoaXMubGlzdGVuZXJQcm92aWRlcnMubWFwKHAgPT5cbiAgICAgIHAgaW5zdGFuY2VvZiBQcm9taXNlID8gcCA6IFByb21pc2UucmVzb2x2ZShwKVxuICAgIClcbiAgKTtcbn1cblxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCBsaXN0ZW5lcnMgZm9yIGEgc3BlY2lmaWMgZXZlbnQga2V5LlxuICAgKiBAcGFyYW0ga2V5IFRoZSBldmVudCBrZXkuXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIGxpc3RlbmVycyBmb3IgdGhlIGtleS5cbiAgICovXG4gIGFzeW5jIGdldExpc3RlbmVycyhrZXk6IHN0cmluZyk6IFByb21pc2U8QVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyUHJvdmlkZXI8YW55PltdPiB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVQcm92aWRlcnNMb2FkZWQoKTtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5lcnNCeUtleS5nZXQoa2V5KSB8fCBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCByZWdpc3RlcmVkIGV2ZW50IGtleXMuXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIGFsbCBldmVudCBrZXlzIHRoYXQgaGF2ZSBsaXN0ZW5lcnMuXG4gICAqL1xuICBhc3luYyBnZXRSZWdpc3RlcmVkS2V5cygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVQcm92aWRlcnNMb2FkZWQoKTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmxpc3RlbmVyc0J5S2V5LmtleXMoKSk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFByaXZhdGUgTWV0aG9kcyAgIC0tLS1cblxuICAvKipcbiAgICogRW5zdXJlcyB0aGF0IGFsbCBwcm92aWRlcnMgaGF2ZSBiZWVuIGxvYWRlZCBhbmQgY2FjaGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBlbnN1cmVQcm92aWRlcnNMb2FkZWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMucHJvdmlkZXJzTG9hZGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUmVzb2x2ZSBhbGwgcHJvdmlkZXJzXG4gICAgY29uc3QgcmVzb2x2ZWRQcm92aWRlcnMgPSBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLmxpc3RlbmVyUHJvdmlkZXJzKTtcblxuICAgIC8vIEdyb3VwIGxpc3RlbmVycyBieSBrZXlcbiAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHJlc29sdmVkUHJvdmlkZXJzKSB7XG4gICAgICBpZiAocHJvdmlkZXIpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdMaXN0ZW5lcnMgPSB0aGlzLmxpc3RlbmVyc0J5S2V5LmdldChwcm92aWRlci5rZXkpIHx8IFtdO1xuICAgICAgICBleGlzdGluZ0xpc3RlbmVycy5wdXNoKHByb3ZpZGVyKTtcbiAgICAgICAgdGhpcy5saXN0ZW5lcnNCeUtleS5zZXQocHJvdmlkZXIua2V5LCBleGlzdGluZ0xpc3RlbmVycyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5wcm92aWRlcnNMb2FkZWQgPSB0cnVlO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBDYWNoZSBNYW5hZ2VtZW50ICAgLS0tLVxuXG4gIC8qKiBDbGVhcnMgdGhlIGxpc3RlbmVycyBjYWNoZSBhbmQgZm9yY2VzIHJlbG9hZCBvbiBuZXh0IGFjY2Vzcy4gKi9cbiAgY2xlYXJMaXN0ZW5lcnNDYWNoZSgpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbmVyc0J5S2V5LmNsZWFyKCk7XG4gICAgdGhpcy5wcm92aWRlcnNMb2FkZWQgPSBmYWxzZTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufSJdfQ==","import { Injectable, Injector, inject, runInInjectionContext } from '@angular/core';\nimport { AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, } from '../distributed-events/distributed-event-listener.provider';\nimport * as i0 from \"@angular/core\";\nexport class AXPHookService {\n constructor() {\n this.listenerProviders = inject(AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, { optional: true }) || [];\n this.injector = inject(Injector);\n }\n /**\n * Resolve all providers (handle both direct providers and Promise<provider>)\n */\n async resolveProviders() {\n return Promise.all(this.listenerProviders.map(p => p instanceof Promise ? p : Promise.resolve(p)));\n }\n /**\n * Fire sync hooks (fire-and-forget).\n * All providers with the given key will be executed.\n * Execution is not awaited.\n */\n fire(key, data) {\n this.resolveProviders().then(providers => {\n providers\n .filter(p => p.key === key)\n .sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0))\n .forEach(p => {\n try {\n runInInjectionContext(this.injector, () => p.execute(data));\n }\n catch (err) {\n console.error(`[AXPHookService] Hook '${key}' failed`, err);\n }\n });\n });\n }\n /**\n * Run async hooks sequentially (waterfall).\n * The output of each hook is passed as input to the next hook.\n * Returns the final merged data after all hooks are executed.\n */\n async runAsync(key, initialData) {\n const providers = (await this.resolveProviders())\n .filter(p => p.key === key)\n .sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0));\n let data = initialData;\n for (const p of providers) {\n data = await Promise.resolve(runInInjectionContext(this.injector, () => p.execute(data)));\n }\n return data;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPHookService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPHookService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPHookService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2hvb2svdXRpbGwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUNMLHVDQUF1QyxHQUV4QyxNQUFNLDJEQUEyRCxDQUFDOztBQUduRSxNQUFNLE9BQU8sY0FBYztJQUQzQjtRQUVtQixzQkFBaUIsR0FDaEMsTUFBTSxDQUFDLHVDQUF1QyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNELGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7S0FtRDlDO0lBakRDOztPQUVHO0lBQ0ssS0FBSyxDQUFDLGdCQUFnQjtRQUM1QixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQ2hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDN0IsQ0FBQyxZQUFZLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUM5QyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLElBQUksQ0FBSSxHQUFXLEVBQUUsSUFBTztRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDdkMsU0FBUztpQkFDTixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQztpQkFDMUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDckQsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNYLElBQUksQ0FBQztvQkFDSCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDOUQsQ0FBQztnQkFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO29CQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEdBQUcsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUM5RCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLFFBQVEsQ0FBSSxHQUFXLEVBQUUsV0FBYztRQUNsRCxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7YUFDOUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUM7YUFDMUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXpELElBQUksSUFBSSxHQUFHLFdBQVcsQ0FBQztRQUN2QixLQUFLLE1BQU0sQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQzFCLElBQUksR0FBRyxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQzFCLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUM1RCxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs4R0FyRFUsY0FBYztrSEFBZCxjQUFjLGNBREQsTUFBTTs7MkZBQ25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIGluamVjdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBWFBfRElTVFJJQlVURURfRVZFTlRfTElTVEVORVJfUFJPVklERVIsXG4gIEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclByb3ZpZGVyLFxufSBmcm9tICcuLi9kaXN0cmlidXRlZC1ldmVudHMvZGlzdHJpYnV0ZWQtZXZlbnQtbGlzdGVuZXIucHJvdmlkZXInO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEhvb2tTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBsaXN0ZW5lclByb3ZpZGVycyA9XG4gICAgaW5qZWN0KEFYUF9ESVNUUklCVVRFRF9FVkVOVF9MSVNURU5FUl9QUk9WSURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgYWxsIHByb3ZpZGVycyAoaGFuZGxlIGJvdGggZGlyZWN0IHByb3ZpZGVycyBhbmQgUHJvbWlzZTxwcm92aWRlcj4pXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlc29sdmVQcm92aWRlcnMoKTogUHJvbWlzZTxBWFBEaXN0cmlidXRlZEV2ZW50TGlzdGVuZXJQcm92aWRlcjxhbnksIGFueT5bXT4ge1xuICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgIHRoaXMubGlzdGVuZXJQcm92aWRlcnMubWFwKHAgPT5cbiAgICAgICAgcCBpbnN0YW5jZW9mIFByb21pc2UgPyBwIDogUHJvbWlzZS5yZXNvbHZlKHApXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlIHN5bmMgaG9va3MgKGZpcmUtYW5kLWZvcmdldCkuXG4gICAqIEFsbCBwcm92aWRlcnMgd2l0aCB0aGUgZ2l2ZW4ga2V5IHdpbGwgYmUgZXhlY3V0ZWQuXG4gICAqIEV4ZWN1dGlvbiBpcyBub3QgYXdhaXRlZC5cbiAgICovXG4gIHB1YmxpYyBmaXJlPFQ+KGtleTogc3RyaW5nLCBkYXRhOiBUKTogdm9pZCB7XG4gICAgdGhpcy5yZXNvbHZlUHJvdmlkZXJzKCkudGhlbihwcm92aWRlcnMgPT4ge1xuICAgICAgcHJvdmlkZXJzXG4gICAgICAgIC5maWx0ZXIocCA9PiBwLmtleSA9PT0ga2V5KVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gKGEucHJpb3JpdHkgPz8gMCkgLSAoYi5wcmlvcml0eSA/PyAwKSlcbiAgICAgICAgLmZvckVhY2gocCA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiBwLmV4ZWN1dGUoZGF0YSkpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgW0FYUEhvb2tTZXJ2aWNlXSBIb29rICcke2tleX0nIGZhaWxlZGAsIGVycik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gYXN5bmMgaG9va3Mgc2VxdWVudGlhbGx5ICh3YXRlcmZhbGwpLlxuICAgKiBUaGUgb3V0cHV0IG9mIGVhY2ggaG9vayBpcyBwYXNzZWQgYXMgaW5wdXQgdG8gdGhlIG5leHQgaG9vay5cbiAgICogUmV0dXJucyB0aGUgZmluYWwgbWVyZ2VkIGRhdGEgYWZ0ZXIgYWxsIGhvb2tzIGFyZSBleGVjdXRlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBydW5Bc3luYzxUPihrZXk6IHN0cmluZywgaW5pdGlhbERhdGE6IFQpOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCBwcm92aWRlcnMgPSAoYXdhaXQgdGhpcy5yZXNvbHZlUHJvdmlkZXJzKCkpXG4gICAgICAuZmlsdGVyKHAgPT4gcC5rZXkgPT09IGtleSlcbiAgICAgIC5zb3J0KChhLCBiKSA9PiAoYS5wcmlvcml0eSA/PyAwKSAtIChiLnByaW9yaXR5ID8/IDApKTtcblxuICAgIGxldCBkYXRhID0gaW5pdGlhbERhdGE7XG4gICAgZm9yIChjb25zdCBwIG9mIHByb3ZpZGVycykge1xuICAgICAgZGF0YSA9IGF3YWl0IFByb21pc2UucmVzb2x2ZShcbiAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IHAuZXhlY3V0ZShkYXRhKSlcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWNvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2Fjb3JleC1wbGF0Zm9ybS1jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|