@acorex/platform 20.2.3 → 20.2.4-next.1
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 +91 -3
- package/core/index.d.ts +65 -58
- package/fesm2022/acorex-platform-common.mjs +16 -8
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +110 -158
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +109 -55
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +1086 -35
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +15 -122
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +2518 -1006
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +243 -65
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-hHXxHlFG.mjs → acorex-platform-themes-default-entity-master-create-view.component-I7Eq8Nti.mjs} +3 -3
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-hHXxHlFG.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-I7Eq8Nti.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DXGLsVis.mjs +706 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DXGLsVis.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-DC3MrDtI.mjs → acorex-platform-themes-default-entity-master-modify-view.component-16sdMBvH.mjs} +3 -10
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-16sdMBvH.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-Bb90PeHq.mjs → acorex-platform-themes-default-entity-master-single-view.component-CVaJzWb2.mjs} +25 -17
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CVaJzWb2.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +65 -495
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-color-chooser-column.component-DjKLg513.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-DjKLg513.mjs} +1 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DjKLg513.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-color-chooser-view.component-DE0wO98F.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-DE0wO98F.mjs} +1 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DE0wO98F.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +10 -12
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-BI18uzNZ.mjs → acorex-platform-widgets-checkbox-widget-designer.component-Cv7dEMCm.mjs} +2 -2
- package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-Cv7dEMCm.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-edit.component-B3SJUnGQ.mjs +50 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-edit.component-B3SJUnGQ.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-view.component-BLR0JkRt.mjs +42 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-view.component-BLR0JkRt.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-edit.component-hzR2FgOm.mjs +55 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-edit.component-hzR2FgOm.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-view.component-IDm6Clua.mjs +50 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-view.component-IDm6Clua.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-widget-edit.component-BRO9tYDa.mjs +48 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-widget-edit.component-BRO9tYDa.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-widget-view.component-CkpLimyW.mjs +42 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-widget-view.component-CkpLimyW.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-file-list-popup.component-DFbPO0ud.mjs → acorex-platform-widgets-file-list-popup.component-B601gPsW.mjs} +66 -3
- package/fesm2022/acorex-platform-widgets-file-list-popup.component-B601gPsW.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-nLZYiPnF.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-BDQIfr0g.mjs} +5 -5
- package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-nLZYiPnF.mjs.map → acorex-platform-widgets-tabular-data-edit-popup.component-BDQIfr0g.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-D6kiasYM.mjs → acorex-platform-widgets-tabular-data-view-popup.component-CmPqtt0G.mjs} +3 -3
- package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-D6kiasYM.mjs.map → acorex-platform-widgets-tabular-data-view-popup.component-CmPqtt0G.mjs.map} +1 -1
- package/fesm2022/acorex-platform-widgets.mjs +1352 -218
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +3 -0
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/layout/builder/index.d.ts +19 -5
- package/layout/components/index.d.ts +214 -9
- package/layout/designer/index.d.ts +3 -46
- package/layout/entity/index.d.ts +203 -332
- package/layout/views/index.d.ts +83 -21
- package/package.json +5 -5
- package/themes/default/index.d.ts +5 -2
- package/widgets/index.d.ts +107 -11
- package/workflow/index.d.ts +3 -1
- package/fesm2022/acorex-platform-themes-default-create-entity-view.component-SY0oMDoH.mjs +0 -22
- package/fesm2022/acorex-platform-themes-default-create-entity-view.component-SY0oMDoH.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-hf4QOz_4.mjs +0 -665
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-hf4QOz_4.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DC3MrDtI.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Bb90PeHq.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-color-chooser-column.component-DjKLg513.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-color-chooser-view.component-DE0wO98F.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-BI18uzNZ.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-file-list-popup.component-DFbPO0ud.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/lib/distributed-events/entity-event-dispatcher.service.js","../tmp-esm2022/core/lib/distributed-events/example-event-listener.provider.js","../tmp-esm2022/core/acorex-platform-core.js"],"sourcesContent":["import { get, isArray, isEmpty, isNil, isObjectLike, isPlainObject, merge, set, transform } 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 ;\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}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi91dGlscy9vYmplY3QtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFN0csTUFBTSxVQUFVLDJCQUEyQixDQUFDLEdBQVEsRUFBRSxRQUFnQixFQUFFLE1BQWdCO0lBQ3RGLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztJQUV2QixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUM3QyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMzQixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDM0QsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBUSxF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LEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBVSxrQkFBa0I7VUFDekUsQ0FBQztZQUNELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldCwgaXNBcnJheSwgaXNFbXB0eSwgaXNOaWwsIGlzT2JqZWN0TGlrZSwgaXNQbGFpbk9iamVjdCwgbWVyZ2UsIHNldCwgdHJhbnNmb3JtIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3ROZXN0ZWRGaWVsZHNXaWxkY2FyZChvYmo6IGFueSwgYmFzZVBhdGg6IHN0cmluZywgZmllbGRzOiBzdHJpbmdbXSk6IGFueSB7XG4gIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG5cbiAgaWYgKGZpZWxkcy5sZW5ndGggPT09IDEgJiYgZmllbGRzWzBdID09PSAnKicpIHtcbiAgICBjb25zdCBmdWxsT2JqID0gZ2V0KG9iaiwgYmFzZVBhdGgpO1xuICAgIHJldHVybiBpc1BsYWluT2JqZWN0KGZ1bGxPYmopID8gZnVsbE9iaiA6IHt9O1xuICB9XG5cbiAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICBjb25zdCBmdWxsUGF0aCA9IGJhc2VQYXRoID8gYCR7YmFzZVBhdGh9LiR7ZmllbGR9YCA6IGZpZWxkO1xuICAgIGNvbnN0IHZhbHVlID0gZ2V0KG9iaiwgZnVsbFBhdGgpO1xuICAgIHNldChyZXN1bHQsIGZpZWxkLCB2YWx1ZSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0U21hcnQob2JqOiBhbnksIHNtYXJ0UGF0aDogc3RyaW5nLCB2YWx1ZTogYW55KTogYW55IHtcbiAgY29uc3QgcGF0aFBhcnRzID0gc21hcnRQYXRoLnNwbGl0KCcuJyk7XG4gIGNvbnN0IGxhc3RQYXJ0ID0gcGF0aFBhcnRzW3BhdGhQYXJ0cy5sZW5ndGggLSAxXTtcbiAgY29uc3QgZmllbGRNYXRjaCA9IGxhc3RQYXJ0Lm1hdGNoKC9eXFx7KC4rKVxcfSQvKTtcblxuICBpZiAoIWZpZWxkTWF0Y2gpIHtcbiAgICBzZXQob2JqLCBzbWFydFBhdGgsIHZhbHVlKTtcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgY29uc3QgZmllbGRzID0gZmllbGRNYXRjaFsxXS5zcGxpdCgnLCcpLm1hcCgoZikgPT4gZi50cmltKCkpO1xuICBjb25zdCBiYXNlUGF0aCA9IHBhdGhQYXJ0cy5zbGljZSgwLCAtMSkuam9pbignLicpO1xuICBjb25zdCBbYXJyYXlLZXksIC4uLnJlc3RQYXRoXSA9IGJhc2VQYXRoLnNwbGl0KCcuJyk7XG5cbiAgLy8gTWFrZSBzdXJlIHRoZSBhcnJheSBleGlzdHNcbiAgaWYgKCFvYmpbYXJyYXlLZXldKSBvYmpbYXJyYXlLZXldID0gW107XG5cbiAgLy8g8J+foSBDYXNlIEE6IHZhbHVlIGlzIGFycmF5IChub3JtYWwgc2V0KVxuICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBpdGVtID0gdmFsdWVbaV07XG4gICAgICBjb25zdCB0YXJnZXRJdGVtID0gb2JqW2FycmF5S2V5XVtpXSA/PyB7fTtcbiAgICAgIGNvbnN0IG5lc3RlZCA9IHt9O1xuXG4gICAgICBpZiAocmVzdFBhdGgubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBwaWNrZWQgPSBleHRyYWN0TmVzdGVkRmllbGRzV2lsZGNhcmQoaXRlbSwgcmVzdFBhdGguam9pbignLicpLCBmaWVsZHMpO1xuICAgICAgICBzZXQobmVzdGVkLCByZXN0UGF0aC5qb2luKCcuJyksIHBpY2tlZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBwaWNrZWQgPSBleHRyYWN0TmVzdGVkRmllbGRzV2lsZGNhcmQoaXRlbSwgJycsIGZpZWxkcyk7XG4gICAgICAgIE9iamVjdC5hc3NpZ24obmVzdGVkLCBwaWNrZWQpO1xuICAgICAgfVxuXG4gICAgICBvYmpbYXJyYXlLZXldW2ldID0gbWVyZ2Uoe30sIHRhcmdldEl0ZW0sIG5lc3RlZCk7XG4gICAgfVxuICB9XG5cbiAgLy8g8J+foiBDYXNlIEI6IHZhbHVlIGlzIGEgc2luZ2xlIHZhbHVlIOKGkiBicm9hZGNhc3RcbiAgZWxzZSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmpbYXJyYXlLZXldLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCB0YXJnZXRJdGVtID0gb2JqW2FycmF5S2V5XVtpXSA/PyB7fTtcbiAgICAgIGNvbnN0IG5lc3RlZCA9IHt9O1xuXG4gICAgICBpZiAocmVzdFBhdGgubGVuZ3RoID4gMCkge1xuICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgICAgICAgIHNldChuZXN0ZWQsIGAke3Jlc3RQYXRoLmpvaW4oJy4nKX0uJHtmaWVsZH1gLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICAgICAgc2V0KG5lc3RlZCwgZmllbGQsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvYmpbYXJyYXlLZXldW2ldID0gbWVyZ2Uoe30sIHRhcmdldEl0ZW0sIG5lc3RlZCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdEZpZWxkc0Zyb21QYXRoKG9iajogYW55LCBiYXNlUGF0aDogc3RyaW5nLCBmaWVsZHM6IHN0cmluZ1tdKTogYW55IHtcbiAgaWYgKGZpZWxkcy5sZW5ndGggPT09IDEgJiYgZmllbGRzWzBdID09PSAnKicpIHtcbiAgICBjb25zdCBmdWxsT2JqID0gYmFzZVBhdGggPyBnZXQob2JqLCBiYXNlUGF0aCkgOiBvYmo7XG4gICAgcmV0dXJuIGlzUGxhaW5PYmplY3QoZnVsbE9iaikgPyBmdWxsT2JqIDoge307XG4gIH1cblxuICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gYmFzZVBhdGggPyBgJHtiYXNlUGF0aH0uJHtmaWVsZH1gIDogZmllbGQ7XG4gICAgY29uc3QgdmFsID0gZ2V0KG9iaiwgZnVsbFBhdGgpO1xuICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVzdWx0W2ZpZWxkXSA9IHZhbDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNtYXJ0KG9iajogYW55LCBzbWFydFBhdGg6IHN0cmluZyk6IGFueSB7XG4gIGNvbnN0IHBhdGhQYXJ0cyA9IHNtYXJ0UGF0aC5zcGxpdCgnLicpO1xuICBjb25zdCBsYXN0UGFydCA9IHBhdGhQYXJ0c1twYXRoUGFydHMubGVuZ3RoIC0gMV07XG4gIGNvbnN0IGZpZWxkTWF0Y2ggPSBsYXN0UGFydC5tYXRjaCgvXlxceyguKylcXH0kLyk7XG5cbiAgLy8gU2ltcGxlIGdldCAobm8gZmllbGRzKVxuICBpZiAoIWZpZWxkTWF0Y2gpIHtcbiAgICByZXR1cm4gZ2V0KG9iaiwgc21hcnRQYXRoKTtcbiAgfVxuXG4gIGNvbnN0IGZpZWxkcyA9IGZpZWxkTWF0Y2hbMV0uc3BsaXQoJywnKS5tYXAoKGYpID0+IGYudHJpbSgpKTtcbiAgY29uc3QgYmFzZVBhdGggPSBwYXRoUGFydHMuc2xpY2UoMCwgLTEpLmpvaW4oJy4nKTtcbiAgY29uc3QgaXRlbXMgPSBnZXQob2JqLCBiYXNlUGF0aCk7XG5cbiAgaWYgKCFpc0FycmF5KGl0ZW1zKSkgcmV0dXJuIFtdO1xuXG4gIGNvbnN0IG5lc3RlZFBhdGggPSBiYXNlUGF0aC5pbmNsdWRlcygnLicpID8gYmFzZVBhdGguc3BsaXQoJy4nKS5zbGljZSgxKS5qb2luKCcuJykgOiAnJztcblxuICByZXR1cm4gaXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgcmV0dXJuIGV4dHJhY3RGaWVsZHNGcm9tUGF0aChpdGVtLCBuZXN0ZWRQYXRoLCBmaWVsZHMpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RWYWx1ZTxUID0gYW55PihcbiAgdmFsdWU6IGFueSxcbiAga2V5OiBzdHJpbmcgPSAnaWQnXG4pOiBUIHwgbnVsbCB7XG4gIGlmIChpc05pbCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgPyBnZXQodmFsdWUsIGtleSkgOiB2YWx1ZTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5EZWVwKG9iajogYW55KSB7XG4gIHJldHVybiB0cmFuc2Zvcm0ob2JqLCAocmVzdWx0OiBhbnksIHZhbHVlOiBhbnksIGtleTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKGlzT2JqZWN0TGlrZSh2YWx1ZSkpIHtcbiAgICAgIGNvbnN0IGNsZWFuZWQgPSBjbGVhbkRlZXAodmFsdWUpO1xuICAgICAgaWYgKCFpc0VtcHR5KGNsZWFuZWQpKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gY2xlYW5lZDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKFxuICAgICAgIWlzTmlsKHZhbHVlKSAmJiAgICAgICAgICAgIC8vIG5vdCBudWxsIG9yIHVuZGVmaW5lZFxuICAgICAgISh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKSA9PT0gJycpICYmIC8vIG5vdCBlbXB0eSBzdHJpbmdcbiAgICAgICEoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSAgICAgICAgICAvLyBub3QgZW1wdHkgYXJyYXlcbiAgICApIHtcbiAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9KTtcbn0iXX0=","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 ngAfterViewInit() {\n setTimeout(() => {\n console.log(this.elementRef.nativeElement.childNodes);\n }, 1000);\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1jaGVja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvY29udGVudC1jaGVja2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEM7QUFFOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPMUYsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQU9XLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLGVBQVUsR0FBK0IsTUFBTSxDQUFDLENBQUEsVUFBMEIsQ0FBQSxDQUFDLENBQUM7UUFFNUUsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsbURBQUMsQ0FBQztLQVF2RTtJQU5HLGVBQWU7UUFDWCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxRCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDYixDQUFDOzhHQVhRLDBCQUEwQjtrR0FBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUx0QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsU0FBUztpQkFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvYXBwL2RpcmVjdGl2ZXMvZ3JpZC1sYXlvdXQuZGlyZWN0aXZlLnRzXG5cbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgVmlld0NvbnRhaW5lclJlZiwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1theHAtY29udGVudC1jaGVja2VyXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBleHBvcnRBczogJ2NoZWNrZXInXG59KVxuZXhwb3J0IGNsYXNzIEFYUENvbnRlbnRDaGVja2VyRGlyZWN0aXZlIHtcblxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pik7XG5cbiAgICBwdWJsaWMgaXNFbXB0eSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudmlld0NvbnRhaW5lclJlZi5sZW5ndGggPT09IDApO1xuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoaWxkTm9kZXMpO1xuICAgICAgICB9LCAxMDAwKTtcbiAgICB9XG5cbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXPDataGenerator } from '../data/data-generator';\nimport { isUndefined } from 'lodash-es';\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.channel = new BroadcastChannel('platform_global_events');\n // Handle incoming messages\n this.channel.onmessage = (event) => {\n const { type, payload, requestId, response } = 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 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 });\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 = { timeout: 60 * 60 * 1000, retries: 3, retryDelay: 1000 }) {\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2V2ZW50LXNlcnZpY2UvZXZlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFLeEMsTUFBTSxPQUFPLHdCQUF3QjtJQU1qQztRQUpRLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQXNELENBQUM7UUFDOUUsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztRQUM3RCx5QkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDLENBQUMsaURBQWlEO1FBRy9GLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRTlELDJCQUEyQjtRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQy9CLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQzFELCtFQUErRTtZQUMvRSxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hELE9BQU87WUFDWCxDQUFDO1lBRUQsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDWixJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsNEJBQTRC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SSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUU7WUFDaEQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsOEJBQThCLFNBQVMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckcsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTdCLGtDQUFrQztRQUNsQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEMsQ0FBQzs4R0E3SFEsd0JBQXdCO2tIQUF4Qix3QkFBd0IsY0FGckIsTUFBTTs7MkZBRVQsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQRGF0YUdlbmVyYXRvciB9IGZyb20gJy4uL2RhdGEvZGF0YS1nZW5lcmF0b3InO1xuaW1wb3J0IHsgaXNVbmRlZmluZWQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFYUEJyb2FkY2FzdEV2ZW50U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBjaGFubmVsOiBCcm9hZGNhc3RDaGFubmVsO1xuICAgIHByaXZhdGUgZXZlbnRTdWJqZWN0cyA9IG5ldyBNYXA8c3RyaW5nLCBTdWJqZWN0PHsgZGF0YTogYW55LCByZXF1ZXN0SWQ/OiBzdHJpbmcgfT4+KCk7XG4gICAgcHJpdmF0ZSBwZW5kaW5nUmVxdWVzdHMgPSBuZXcgTWFwPHN0cmluZywgKHJlc3BvbnNlOiBhbnkpID0+IHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBtdWx0aVRhYkV2ZW50SGlzdG9yeSA9IG5ldyBTZXQ8c3RyaW5nPigpOyAvLyBQcmV2ZW50IGR1cGxpY2F0ZSBwcm9jZXNzaW5nIG9mIHRoZSBzYW1lIGV2ZW50XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jaGFubmVsID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoJ3BsYXRmb3JtX2dsb2JhbF9ldmVudHMnKTtcblxuICAgICAgICAvLyBIYW5kbGUgaW5jb21pbmcgbWVzc2FnZXNcbiAgICAgICAgdGhpcy5jaGFubmVsLm9ubWVzc2FnZSA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyB0eXBlLCBwYXlsb2FkLCByZXF1ZXN0SWQsIHJlc3BvbnNlIH0gPSBldmVudC5kYXRhO1xuICAgICAgICAgICAgLy8gUHJldmVudCBwcm9jZXNzaW5nIHRoZSBzYW1lIGV2ZW50IG11bHRpcGxlIHRpbWVzIChtdWx0aS10YWIgc3luY2hyb25pemF0aW9uKVxuICAgICAgICAgICAgaWYgKHJlcXVlc3RJZCAmJiB0aGlzLm11bHRpVGFiRXZlbnRIaXN0b3J5LmhhcyhyZXF1ZXN0SWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVxdWVzdElkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tdWx0aVRhYkV2ZW50SGlzdG9yeS5hZGQocmVxdWVzdElkKTsgLy8gU3RvcmUgcHJvY2Vzc2VkIHJlcXVlc3RJZFxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5tdWx0aVRhYkV2ZW50SGlzdG9yeS5kZWxldGUocmVxdWVzdElkKSwgMTAwMDApOyAvLyBDbGVhbnVwIGFmdGVyIDEwIHNlY1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBIYW5kbGUgcmVzcG9uc2VzIHRvIHBlbmRpbmcgcmVxdWVzdHNcbiAgICAgICAgICAgIGlmIChyZXF1ZXN0SWQgJiYgIWlzVW5kZWZpbmVkKHJlc3BvbnNlKSAmJiB0aGlzLnBlbmRpbmdSZXF1ZXN0cy5oYXMocmVxdWVzdElkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZ1JlcXVlc3RzLmdldChyZXF1ZXN0SWQpIShyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuZGVsZXRlKHJlcXVlc3RJZCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBIYW5kbGUgbm9ybWFsIGJyb2FkY2FzdCBldmVudHNcbiAgICAgICAgICAgIGlmICh0eXBlICYmIHRoaXMuZXZlbnRTdWJqZWN0cy5oYXModHlwZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV2ZW50U3ViamVjdHMuZ2V0KHR5cGUpIS5uZXh0KHsgZGF0YTogcGF5bG9hZCwgcmVxdWVzdElkIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggYW4gZXZlbnQgd2l0aG91dCBleHBlY3RpbmcgYSByZXNwb25zZVxuICAgICAqL1xuICAgIHB1YmxpYyBwdWJsaXNoPFQ+KHR5cGU6IHN0cmluZywgcGF5bG9hZD86IFQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFubmVsLnBvc3RNZXNzYWdlKHsgdHlwZSwgcGF5bG9hZCB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdWJzY3JpYmUgdG8gYW4gZXZlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgbGlzdGVuPFQ+KHR5cGU6IHN0cmluZyk6IE9ic2VydmFibGU8eyBkYXRhOiBULCByZXF1ZXN0SWQ/OiBzdHJpbmcgfT4ge1xuICAgICAgICBpZiAoIXRoaXMuZXZlbnRTdWJqZWN0cy5oYXModHlwZSkpIHtcbiAgICAgICAgICAgIHRoaXMuZXZlbnRTdWJqZWN0cy5zZXQodHlwZSwgbmV3IFN1YmplY3Q8eyBkYXRhOiBULCByZXF1ZXN0SWQ/OiBzdHJpbmcgfT4oKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRTdWJqZWN0cy5nZXQodHlwZSkhLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVuc3Vic2NyaWJlIGZyb20gYW4gZXZlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgdW5zdWJzY3JpYmUodHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmV2ZW50U3ViamVjdHMuaGFzKHR5cGUpKSB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50U3ViamVjdHMuZ2V0KHR5cGUpIS5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgdGhpcy5ldmVudFN1YmplY3RzLmRlbGV0ZSh0eXBlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlbmQgYSBtZXNzYWdlIGFuZCB3YWl0IGZvciBhIHJlc3BvbnNlIHdpdGggcmV0cnkgbG9naWNcbiAgICAgKi9cbiAgICBwdWJsaWMgYXN5bmMgc2VuZEFuZFdhaXRGb3JSZXNwb25zZTxULCBSPihcbiAgICAgICAgdHlwZTogc3RyaW5nLFxuICAgICAgICBwYXlsb2FkPzogVCxcbiAgICAgICAgb3B0aW9uczogeyB0aW1lb3V0OiBudW1iZXI7IHJldHJpZXM6IG51bWJlcjsgcmV0cnlEZWxheTogbnVtYmVyIH0gPSB7IHRpbWVvdXQ6IDYwICogNjAgKiAxMDAwLCByZXRyaWVzOiAzLCByZXRyeURlbGF5OiAxMDAwIH1cbiAgICApOiBQcm9taXNlPFI+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdElkID0gQVhQRGF0YUdlbmVyYXRvci51dWlkKCk7XG5cbiAgICAgICAgY29uc3QgYXR0ZW1wdFJlcXVlc3QgPSAoYXR0ZW1wdDogbnVtYmVyKTogUHJvbWlzZTxSPiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8Uj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZ1JlcXVlc3RzLnNldChyZXF1ZXN0SWQsIHJlc29sdmUpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFubmVsLnBvc3RNZXNzYWdlKHsgdHlwZSwgcGF5bG9hZCwgcmVxdWVzdElkIH0pO1xuXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnBlbmRpbmdSZXF1ZXN0cy5oYXMocmVxdWVzdElkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuZGVsZXRlKHJlcXVlc3RJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ZW1wdCA8IG9wdGlvbnMucmV0cmllcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgUmV0cnlpbmcgcmVxdWVzdCAnJHt0eXBlfScgKCR7YXR0ZW1wdCArIDF9LyR7b3B0aW9ucy5yZXRyaWVzfSkuLi5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGF0dGVtcHRSZXF1ZXN0KGF0dGVtcHQgKyAxKSk7IC8vIFJldHJ5IHJlcXVlc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihgVGltZW91dDogTm8gcmVzcG9uc2UgcmVjZWl2ZWQgZm9yIGV2ZW50ICcke3R5cGV9JyBhZnRlciAke29wdGlvbnMucmV0cmllc30gYXR0ZW1wdHMuYCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgb3B0aW9ucy50aW1lb3V0KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBhdHRlbXB0UmVxdWVzdCgwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNwb25kIHRvIGEgcmVxdWVzdFxuICAgICAqL1xuICAgIHB1YmxpYyByZXNwb25kVG9SZXF1ZXN0KHJlcXVlc3RJZDogc3RyaW5nLCByZXNwb25zZTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghcmVxdWVzdElkKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0ludmFsaWQgcmVxdWVzdElkLiBDYW5ub3Qgc2VuZCByZXNwb25zZS4nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoYW5uZWwucG9zdE1lc3NhZ2UoeyByZXF1ZXN0SWQsIHJlc3BvbnNlIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFudXAgd2hlbiB0aGUgc2VydmljZSBpcyBkZXN0cm95ZWRcbiAgICAgKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFubmVsLmNsb3NlKCk7XG5cbiAgICAgICAgLy8gQ29tcGxldGUgYWxsIHN1YmplY3RzXG4gICAgICAgIHRoaXMuZXZlbnRTdWJqZWN0cy5mb3JFYWNoKChzdWJqZWN0KSA9PiBzdWJqZWN0LmNvbXBsZXRlKCkpO1xuICAgICAgICB0aGlzLmV2ZW50U3ViamVjdHMuY2xlYXIoKTtcblxuICAgICAgICAvLyBSZWplY3QgYWxsIHBlbmRpbmcgcmVxdWVzdHMgdG8gYXZvaWQgZGFuZ2xpbmcgcHJvbWlzZXNcbiAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuZm9yRWFjaCgocmVzb2x2ZSwgcmVxdWVzdElkKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKFByb21pc2UucmVqZWN0KG5ldyBFcnJvcihgU2VydmljZSBkZXN0cm95ZWQuIFJlcXVlc3QgJHtyZXF1ZXN0SWR9IHdhcyBub3QgY29tcGxldGVkLmApKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnBlbmRpbmdSZXF1ZXN0cy5jbGVhcigpO1xuXG4gICAgICAgIC8vIENsZWFudXAgbXVsdGktdGFiIGV2ZW50IGhpc3RvcnlcbiAgICAgICAgdGhpcy5tdWx0aVRhYkV2ZW50SGlzdG9yeS5jbGVhcigpO1xuICAgIH1cbn1cbiJdfQ==","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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi90eXBlcy9pbnRlcmFjdGl2ZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQXdDLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUEyRXpGLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxNQUF5QixFQUFFLElBQXlCO0lBQzNGLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLE9BQU87UUFDTCxJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUc7UUFDdEIsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLO1FBQ3pCLElBQUksRUFBRSxZQUFZLENBQUMsSUFBSTtRQUN2QixLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7S0FDMUIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRXh0cmFzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFYUE1ldGFEYXRhIH0gZnJvbSAnLi9jb3JlLnR5cGVzJztcbmltcG9ydCB7IEFYUFN5c3RlbUFjdGlvbiwgQVhQU3lzdGVtQWN0aW9uVHlwZSwgZ2V0U3lzdGVtQWN0aW9ucyB9IGZyb20gJy4vYWN0aW9ucy50eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEFYUEFjdGlvbk1lbnVJdGVtID0ge1xuICBuYW1lPzogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbiAgYnJlYWs/OiBib29sZWFuO1xuICBpdGVtcz86IEFYUEFjdGlvbk1lbnVJdGVtW107XG4gIGNvbW1hbmQ/OiBBWFBFeGVjdXRlQ29tbWFuZDtcbiAgZGlzYWJsZWQ/OiBib29sZWFuIHwgc3RyaW5nO1xuICB2aXNpYmxlPzogYm9vbGVhbiB8IHN0cmluZztcbiAgcG9saWN5Pzogc3RyaW5nO1xufTtcblxuXG5leHBvcnQgdHlwZSBBWFBCYWNrQnV0dG9uID0ge1xuICB0aXRsZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQVhQQnJlYWRjcnVtYkl0ZW0gPSB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGNvbW1hbmQ/OiBBWFBFeGVjdXRlQ29tbWFuZDtcbn07XG5cbmV4cG9ydCB0eXBlIEFYUEV4ZWN1dGVDb21tYW5kID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIG9wdGlvbnM/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 switch (conditionType) {\n case 'equal':\n result = isEqual(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Equal check result:', result);\n }\n break;\n case 'notEqual':\n result = !isEqual(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Not equal check result:', result);\n }\n break;\n case 'greaterThan':\n result = gt(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Greater than check result:', result);\n }\n break;\n case 'lessThan':\n result = lt(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Less than check result:', result);\n }\n break;\n case 'greaterThanOrEqual':\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 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 return 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb25kaXRpb25lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3V0aWxzL2RhdGEtY29uZGl0aW9uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBILE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDLGtEQUFrRDtBQUVoRixTQUFTLGNBQWMsQ0FBQyxJQUFTLEVBQUUsU0FBYztJQUMvQyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3JFLE1BQU0sU0FBUyxHQUFHLE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDbkYsTUFBTSxjQUFjLEdBQUcsT0FBTyxTQUFTLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUU3RyxvQ0FBb0M7SUFDcEMsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0QyxPQUFPLENB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QUFNO1FBQ2IsS0FBSztLQUNOLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhEYXRhU291cmNlQ2FsbGJhY2tSZXN1bHQsXG4gIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbixcbiAgQVhEYXRhU291cmNlTG9hZENhbGxiYWNrLFxuICBBWERhdGFTb3VyY2VRdWVyeSxcbiAgQVhEYXRhU291cmNlU29ydE9wdGlvbixcbn0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IGVuZHNXaXRoLCBnZXQsIGd0LCBndGUsIGluY2x1ZGVzLCBpc0VtcHR5LCBpc0VxdWFsLCBpc05pbCwgbHQsIGx0ZSwgb3JkZXJCeSwgc3RhcnRzV2l0aCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmNvbnN0IGxvZ2dpbmdFbmFibGVkID0gZmFsc2U7IC8vIFNldCB0byB0cnVlIHRvIGVuYWJsZSBsb2dnaW5nLCBmYWxzZSB0byBkaXNhYmxlXG5cbmZ1bmN0aW9uIGFwcGx5Q29uZGl0aW9uKGl0ZW06IGFueSwgY29uZGl0aW9uOiBhbnkpIHtcbiAgY29uc3QgcmF3VmFsdWUgPSBjb25kaXRpb24uZmllbGQgPyBnZXQoaXRlbSwgY29uZGl0aW9uLmZpZWxkKSA6IG51bGw7XG4gIGNvbnN0IGl0ZW1WYWx1ZSA9IHR5cGVvZiByYXdWYWx1ZSA9PT0gJ3N0cmluZycgPyByYXdWYWx1ZS50b0xvd2VyQ2FzZSgpIDogcmF3VmFsdWU7XG4gIGNvbnN0IGNvbmRpdGlvblZhbHVlID0gdHlwZW9mIGNvbmRpdGlvbi52YWx1ZSA9PT0gJ3N0cmluZycgPyBjb25kaXRpb24udmFsdWUudG9Mb3dlckNhc2UoKSA6IGNvbmRpdGlvbi52YWx1ZTtcblxuICAvLyBDb25kaXRpb25hbCBMb2dnaW5nIGZvciBkZWJ1Z2dpbmdcbiAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgY29uc29sZS5sb2coJ0NvbmRpdGlvbjonLCBjb25kaXRpb24pO1xuICAgIGNvbnNvbGUubG9nKCdJdGVtIFZhbHVlOicsIGl0ZW1WYWx1ZSk7XG4gICAgY29uc29sZS5sb2coJ0NvbmRpdGlvbiBWYWx1ZTonLCBjb25kaXRpb25WYWx1ZSk7XG4gIH1cblxuICBsZXQgcmVzdWx0OiBib29sZWFuO1xuICBjb25zdCB2YWx1ZVRvQ29tcGFyZSA9IGlzTmlsKGNvbmRpdGlvbi5maWVsZCkgfHwgY29uZGl0aW9uLmZpZWxkID09PSAnJyA/IGNvbmRpdGlvblZhbHVlIDogaXRlbVZhbHVlO1xuICBjb25zdCBjb25kaXRpb25UeXBlID0gY29uZGl0aW9uPy5vcGVyYXRvcj8udHlwZTtcbiAgaWYgKCFjb25kaXRpb25UeXBlKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzd2l0Y2ggKGNvbmRpdGlvblR5cGUpIHtcbiAgICBjYXNlICdlcXVhbCc6XG4gICAgICByZXN1bHQgPSBpc0VxdWFsKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0VxdWFsIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbm90RXF1YWwnOlxuICAgICAgcmVzdWx0ID0gIWlzRXF1YWwodmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnTm90IGVxdWFsIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZ3JlYXRlclRoYW4nOlxuICAgICAgcmVzdWx0ID0gZ3QodmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnR3JlYXRlciB0aGFuIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbGVzc1RoYW4nOlxuICAgICAgcmVzdWx0ID0gbHQodmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnTGVzcyB0aGFuIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZ3JlYXRlclRoYW5PckVxdWFsJzpcbiAgICAgIHJlc3VsdCA9IGd0ZSh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdHcmVhdGVyIHRoYW4gb3IgZXF1YWwgY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdsZXNzVGhhbk9yRXF1YWwnOlxuICAgICAgcmVzdWx0ID0gbHRlKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0xlc3MgdGhhbiBvciBlcXVhbCBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2NvbnRhaW5zJzpcbiAgICAgIGlmICh0eXBlb2YgdmFsdWVUb0NvbXBhcmUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJlc3VsdCA9IGluY2x1ZGVzKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVUb0NvbXBhcmUpKSB7XG4gICAgICAgIHJlc3VsdCA9IGluY2x1ZGVzKFxuICAgICAgICAgIHZhbHVlVG9Db21wYXJlLm1hcCgodmFsKSA9PiB2YWwudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKSxcbiAgICAgICAgICBjb25kaXRpb25WYWx1ZSxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdDb250YWlucyBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2luJzpcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvbmRpdGlvblZhbHVlKSkge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlVG9Db21wYXJlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJlc3VsdCA9IGNvbmRpdGlvblZhbHVlLnNvbWUodmFsID0+IFxuICAgICAgICAgICAgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgPyB2YWwudG9Mb3dlckNhc2UoKSA9PT0gdmFsdWVUb0NvbXBhcmUgOiB2YWwgPT09IHZhbHVlVG9Db21wYXJlXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlVG9Db21wYXJlKSkge1xuICAgICAgICAgIHJlc3VsdCA9IHZhbHVlVG9Db21wYXJlLnNvbWUodmFsID0+IFxuICAgICAgICAgICAgY29uZGl0aW9uVmFsdWUuc29tZShjb25kVmFsID0+IFxuICAgICAgICAgICAgICB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgY29uZFZhbCA9PT0gJ3N0cmluZycgXG4gICAgICAgICAgICAgICAgPyB2YWwudG9Mb3dlckNhc2UoKSA9PT0gY29uZFZhbC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgOiB2YWwgPT09IGNvbmRWYWxcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IGNvbmRpdGlvblZhbHVlLmluY2x1ZGVzKHZhbHVlVG9Db21wYXJlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0luIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbm90Q29udGFpbnMnOlxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZVRvQ29tcGFyZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVzdWx0ID0gIWluY2x1ZGVzKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVUb0NvbXBhcmUpKSB7XG4gICAgICAgIHJlc3VsdCA9ICFpbmNsdWRlcyhcbiAgICAgICAgICB2YWx1ZVRvQ29tcGFyZS5tYXAoKHZhbCkgPT4gdmFsLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICAgY29uZGl0aW9uVmFsdWUsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnTm90IGNvbnRhaW5zIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnc3RhcnRzV2l0aCc6XG4gICAgICByZXN1bHQgPSB0eXBlb2YgdmFsdWVUb0NvbXBhcmUgPT09ICdzdHJpbmcnICYmIHN0YXJ0c1dpdGgodmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnU3RhcnRzIHdpdGggY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdlbmRzV2l0aCc6XG4gICAgICByZXN1bHQgPSB0eXBlb2YgdmFsdWVUb0NvbXBhcmUgPT09ICdzdHJpbmcnICYmIGVuZHNXaXRoKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0VuZHMgd2l0aCBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2lzRW1wdHknOlxuICAgICAgcmVzdWx0ID0gaXNFbXB0eSh2YWx1ZVRvQ29tcGFyZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0lzIGVtcHR5IGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnaXNOdWxsJzpcbiAgICAgIHJlc3VsdCA9IGlzTmlsKHZhbHVlVG9Db21wYXJlKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnSXMgbnVsbCBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2lzTm90RW1wdHknOlxuICAgICAgcmVzdWx0ID0gIWlzRW1wdHkodmFsdWVUb0NvbXBhcmUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdJcyBub3QgZW1wdHkgY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdiZXR3ZWVuJzpcbiAgICAgIHJlc3VsdCA9ICFpc05pbCh2YWx1ZVRvQ29tcGFyZSkgJiYgdmFsdWVUb0NvbXBhcmUgPj0gY29uZGl0aW9uLnZhbHVlLmZyb20gJiYgdmFsdWVUb0NvbXBhcmUgPD0gY29uZGl0aW9uLnZhbHVlLnRvO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdCZXR3ZWVuIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJlc3VsdCA9IHRydWU7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0RlZmF1bHQgY2FzZSwgcmV0dXJuaW5nIHRydWUnKTtcbiAgICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseUZpbHRlckFycmF5KFxuICBkYXRhQXJyYXk6IGFueVtdLFxuICBmaWx0ZXJzPzogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uW10sXG4gIGxvZ2ljOiAnYW5kJyB8ICdvcicgPSAnYW5kJyxcbik6IGFueVtdIHtcbiAgaWYgKGZpbHRlcnMgJiYgZmlsdGVycy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZGF0YUFycmF5LmZpbHRlcigoaXRlbSkgPT4ge1xuICAgICAgaWYgKGxvZ2ljID09PSAnYW5kJykge1xuICAgICAgICByZXR1cm4gZmlsdGVycy5ldmVyeSgoZikgPT4ge1xuICAgICAgICAgIHJldHVybiBmLmZpbHRlcnMgPyBhcHBseUZpbHRlckFycmF5KFtpdGVtXSwgZi5maWx0ZXJzLCBmLmxvZ2ljKS5sZW5ndGggPiAwIDogYXBwbHlDb25kaXRpb24oaXRlbSwgZik7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gbG9naWMgPT09ICdvcidcbiAgICAgICAgcmV0dXJuIGZpbHRlcnMuc29tZSgoZikgPT4ge1xuICAgICAgICAgIHJldHVybiBmLmZpbHRlcnMgPyBhcHBseUZpbHRlckFycmF5KFtpdGVtXSwgZi5maWx0ZXJzLCBmLmxvZ2ljKS5sZW5ndGggPiAwIDogYXBwbHlDb25kaXRpb24oaXRlbSwgZik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBkYXRhQXJyYXk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5U29ydEFycmF5KGRhdGFBcnJheTogYW55LCBzb3J0czogQVhEYXRhU291cmNlU29ydE9wdGlvbltdKSB7XG4gIGlmIChzb3J0cyAmJiBzb3J0cy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3Qgc29ydEZpZWxkcyA9IHNvcnRzLm1hcCgocykgPT4gcy5maWVsZCk7XG4gICAgY29uc3Qgc29ydE9yZGVycyA9IHNvcnRzLm1hcCgocykgPT4gcy5kaXIpO1xuICAgIHJldHVybiBvcmRlckJ5KGRhdGFBcnJheSwgc29ydEZpZWxkcywgc29ydE9yZGVycyk7XG4gIH0gZWxzZSByZXR1cm4gZGF0YUFycmF5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlQYWdpbmF0aW9uPFQ+KGRhdGFBcnJheTogVFtdLCBza2lwOiBudW1iZXIsIHRha2U6IG51bWJlcik6IFRbXSB7XG4gIHJldHVybiBkYXRhQXJyYXkuc2xpY2Uoc2tpcCwgc2tpcCArIHRha2UpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBwbHlRdWVyeUFycmF5PFQ+KFxuICBkYXRhQXJyYXk6IFRbXSxcbiAgcXVlcnk6IEFYRGF0YVNvdXJjZVF1ZXJ5LFxuKTogUHJvbWlzZTxBWERhdGFTb3VyY2VDYWxsYmFja1Jlc3VsdDxUPj4ge1xuICBsZXQgcmVzdWx0ID0gWy4uLmRhdGFBcnJheV07XG5cbiAgLy8gQXBwbHkgZmlsdGVyaW5nXG4gIGlmIChxdWVyeS5maWx0ZXIpIHtcbiAgICByZXN1bHQgPSBhcHBseUZpbHRlckFycmF5KHJlc3VsdCwgW3F1ZXJ5LmZpbHRlcl0sIHF1ZXJ5LmZpbHRlci5sb2dpYyA/PyAnYW5kJyk7XG4gIH1cblxuICAvLyBTdG9yZSB0b3RhbCBjb3VudCBiZWZvcmUgcGFnaW5hdGlvblxuICBjb25zdCB0b3RhbCA9IHJlc3VsdC5sZW5ndGg7XG5cbiAgLy8gQXBwbHkgc29ydGluZ1xuICBpZiAocXVlcnkuc29ydCAmJiBxdWVyeS5zb3J0Lmxlbmd0aCA+IDApIHtcbiAgICByZXN1bHQgPSBhcHBseVNvcnRBcnJheShyZXN1bHQsIHF1ZXJ5LnNvcnQpO1xuICB9XG5cbiAgLy8gQXBwbHkgcGFnaW5hdGlvblxuICByZXN1bHQgPSBhcHBseVBhZ2luYXRpb24ocmVzdWx0LCBxdWVyeS5za2lwLCBxdWVyeS50YWtlKTtcblxuICByZXR1cm4ge1xuICAgIGl0ZW1zOiByZXN1bHQsXG4gICAgdG90YWwsXG4gIH07XG59XG4iXX0=","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 } 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 /** 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(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0ZWQtZXZlbnQtbGlzdGVuZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2Rpc3RyaWJ1dGVkLWV2ZW50cy9kaXN0cmlidXRlZC1ldmVudC1saXN0ZW5lci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUUvQixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUNBQXVDLEVBQXVDLE1BQU0sdUNBQXVDLENBQUM7O0FBRXJJLFlBQVk7QUFLWixNQUFNLE9BQU8sa0NBQWtDO0lBSC9DO1FBSUUsMENBQTBDO1FBRXpCLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyx1Q0FBdUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUUvRyxrQ0FBa0M7UUFDMUIsbUJBQWMsR0FBNEQsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUU1RixrREFBa0Q7UUFDMUMsb0JBQWUsR0FBRyxLQUFLLENBQUM7S0FzRmpDO0lBcEZDLFlBQVk7SUFFWixrQ0FBa0M7SUFFbEM7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBVyxFQUFFLElBQVU7UUFDcEMsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUVuQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFckQsb0NBQW9DO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDO2dCQUNILE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDakQsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQywyQ0FBMkMsR0FBRyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3pFLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsa0RBQWtEO1lBQzlFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBVztRQUM1QixNQUFNLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsaUJBQWlCO1FBQ3JCLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDbkMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsWUFBWTtJQUVaLHVDQUF1QztJQUV2Qzs7T0FFRztJQUNLLEtBQUssQ0FBQyxxQkFBcUI7UUFDakMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsT0FBTztRQUNULENBQUM7UUFFRCx3QkFBd0I7UUFDeEIsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFcEUseUJBQXlCO1FBQ3pCLEtBQUssTUFBTSxRQUFRLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN6QyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdEUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDM0QsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQsWUFBWTtJQUVaLHdDQUF3QztJQUV4QyxtRUFBbUU7SUFDbkUsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQzs4R0E1RlUsa0NBQWtDO2tIQUFsQyxrQ0FBa0MsY0FGakMsTUFBTTs7MkZBRVAsa0NBQWtDO2tCQUg5QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgSW1wb3J0cyAgIC0tLS1cblxuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBfRElTVFJJQlVURURfRVZFTlRfTElTVEVORVJfUFJPVklERVIsIEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclByb3ZpZGVyIH0gZnJvbSAnLi9kaXN0cmlidXRlZC1ldmVudC1saXN0ZW5lci5wcm92aWRlcic7XG5cbi8vI2VuZHJlZ2lvblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyU2VydmljZSB7XG4gIC8vI3JlZ2lvbiAtLS0tICAgUHJvdmlkZXJzICYgQ2FjaGVzICAgLS0tLVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgbGlzdGVuZXJQcm92aWRlcnMgPSBpbmplY3QoQVhQX0RJU1RSSUJVVEVEX0VWRU5UX0xJU1RFTkVSX1BST1ZJREVSLCB7IG9wdGlvbmFsOiB0cnVlIH0pIHx8IFtdO1xuXG4gIC8qKiBDYWNoZSBmb3IgbGlzdGVuZXJzIGJ5IGtleS4gKi9cbiAgcHJpdmF0ZSBsaXN0ZW5lcnNCeUtleTogTWFwPHN0cmluZywgQVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyUHJvdmlkZXI8YW55PltdPiA9IG5ldyBNYXAoKTtcbiAgXG4gIC8qKiBGbGFnIHRvIHRyYWNrIGlmIHByb3ZpZGVycyBoYXZlIGJlZW4gbG9hZGVkICovXG4gIHByaXZhdGUgcHJvdmlkZXJzTG9hZGVkID0gZmFsc2U7XG4gIFxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFB1YmxpYyBBUEkgICAtLS0tXG5cbiAgLyoqXG4gICAqIERpc3BhdGNoZXMgYW4gZXZlbnQgdG8gYWxsIHJlZ2lzdGVyZWQgbGlzdGVuZXJzIGZvciB0aGUgZ2l2ZW4ga2V5LlxuICAgKiBAcGFyYW0ga2V5IFRoZSBldmVudCBrZXkuXG4gICAqIEBwYXJhbSBkYXRhIFRoZSBldmVudCBkYXRhIHRvIHBhc3MgdG8gbGlzdGVuZXJzLlxuICAgKi9cbiAgYXN5bmMgZGlzcGF0Y2goa2V5OiBzdHJpbmcsIGRhdGE/OiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVByb3ZpZGVyc0xvYWRlZCgpO1xuICAgIFxuICAgIGNvbnN0IGxpc3RlbmVycyA9IHRoaXMubGlzdGVuZXJzQnlLZXkuZ2V0KGtleSkgfHwgW107XG4gICAgXG4gICAgLy8gRXhlY3V0ZSBhbGwgbGlzdGVuZXJzIGluIHBhcmFsbGVsXG4gICAgY29uc3QgcHJvbWlzZXMgPSBsaXN0ZW5lcnMubWFwKGxpc3RlbmVyID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobGlzdGVuZXIuZXhlY3V0ZShkYXRhKSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBleGVjdXRpbmcgbGlzdGVuZXIgZm9yIGV2ZW50IGtleSAnJHtrZXl9JzpgLCBlcnJvcik7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8gQ29udGludWUgd2l0aCBvdGhlciBsaXN0ZW5lcnMgZXZlbiBpZiBvbmUgZmFpbHNcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCBsaXN0ZW5lcnMgZm9yIGEgc3BlY2lmaWMgZXZlbnQga2V5LlxuICAgKiBAcGFyYW0ga2V5IFRoZSBldmVudCBrZXkuXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIGxpc3RlbmVycyBmb3IgdGhlIGtleS5cbiAgICovXG4gIGFzeW5jIGdldExpc3RlbmVycyhrZXk6IHN0cmluZyk6IFByb21pc2U8QVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyUHJvdmlkZXI8YW55PltdPiB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVQcm92aWRlcnNMb2FkZWQoKTtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5lcnNCeUtleS5nZXQoa2V5KSB8fCBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCByZWdpc3RlcmVkIGV2ZW50IGtleXMuXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIGFsbCBldmVudCBrZXlzIHRoYXQgaGF2ZSBsaXN0ZW5lcnMuXG4gICAqL1xuICBhc3luYyBnZXRSZWdpc3RlcmVkS2V5cygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVQcm92aWRlcnNMb2FkZWQoKTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmxpc3RlbmVyc0J5S2V5LmtleXMoKSk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFByaXZhdGUgTWV0aG9kcyAgIC0tLS1cblxuICAvKipcbiAgICogRW5zdXJlcyB0aGF0IGFsbCBwcm92aWRlcnMgaGF2ZSBiZWVuIGxvYWRlZCBhbmQgY2FjaGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBlbnN1cmVQcm92aWRlcnNMb2FkZWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMucHJvdmlkZXJzTG9hZGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUmVzb2x2ZSBhbGwgcHJvdmlkZXJzXG4gICAgY29uc3QgcmVzb2x2ZWRQcm92aWRlcnMgPSBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLmxpc3RlbmVyUHJvdmlkZXJzKTtcblxuICAgIC8vIEdyb3VwIGxpc3RlbmVycyBieSBrZXlcbiAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHJlc29sdmVkUHJvdmlkZXJzKSB7XG4gICAgICBpZiAocHJvdmlkZXIpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdMaXN0ZW5lcnMgPSB0aGlzLmxpc3RlbmVyc0J5S2V5LmdldChwcm92aWRlci5rZXkpIHx8IFtdO1xuICAgICAgICBleGlzdGluZ0xpc3RlbmVycy5wdXNoKHByb3ZpZGVyKTtcbiAgICAgICAgdGhpcy5saXN0ZW5lcnNCeUtleS5zZXQocHJvdmlkZXIua2V5LCBleGlzdGluZ0xpc3RlbmVycyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5wcm92aWRlcnNMb2FkZWQgPSB0cnVlO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBDYWNoZSBNYW5hZ2VtZW50ICAgLS0tLVxuXG4gIC8qKiBDbGVhcnMgdGhlIGxpc3RlbmVycyBjYWNoZSBhbmQgZm9yY2VzIHJlbG9hZCBvbiBuZXh0IGFjY2Vzcy4gKi9cbiAgY2xlYXJMaXN0ZW5lcnNDYWNoZSgpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbmVyc0J5S2V5LmNsZWFyKCk7XG4gICAgdGhpcy5wcm92aWRlcnNMb2FkZWQgPSBmYWxzZTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufSJdfQ==","import { Injectable, inject } from '@angular/core';\nimport { AXPDistributedEventListenerService } from './distributed-event-listener.service';\nimport * as i0 from \"@angular/core\";\n//import { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\n/**\n * Entity Event Dispatcher - A wrapper for entity-specific events\n * Handles pattern-based dispatching for entity operations with wildcard support\n */\nexport class AXPEntityEventDispatcherService {\n constructor() {\n this.eventService = inject(AXPDistributedEventListenerService);\n }\n //private readonly entityRegistry = inject(AXPEntityDefinitionRegistryService);\n /**\n * Dispatch entity events with pattern matching support for wildcard listeners\n * @param operation The operation type (inserted, updated, deleted)\n * @param entityName The full entity name (e.g., 'PlatformManagement.Category')\n * @param data The event data\n */\n async dispatchEntityEvent(operation, entityName, data) {\n console.log('dispatchEntityEvent', operation, entityName, data);\n const enhancedData = {\n ...data,\n entityName,\n operation,\n timestamp: new Date(),\n source: 'entity-dispatcher'\n };\n // Get all possible event keys that could match this entity operation\n const eventKeysToDispatch = await this.getAllMatchingEventKeys(operation, entityName);\n console.log('eventKeysToDispatch', eventKeysToDispatch);\n // Dispatch to all matching patterns simultaneously\n const dispatchPromises = eventKeysToDispatch.map(key => this.eventService.dispatch(key, enhancedData));\n await Promise.all(dispatchPromises);\n }\n /**\n * Get all event keys that should be dispatched for this entity operation\n * including wildcard pattern matches\n */\n async getAllMatchingEventKeys(operation, entityName) {\n const eventKeys = new Set();\n // 1. Add exact patterns for this specific entity\n const exactKeys = this.generateEventKeys(operation, entityName);\n exactKeys.forEach(key => eventKeys.add(key));\n // 2. Find and add wildcard listeners that match this entity\n const wildcardKeys = await this.findMatchingWildcardKeys(operation, entityName);\n wildcardKeys.forEach(key => eventKeys.add(key));\n return Array.from(eventKeys);\n }\n /**\n * Find wildcard listener keys that match this entity operation\n */\n async findMatchingWildcardKeys(operation, entityName) {\n const matchingKeys = [];\n // Get all registered listeners\n const allListenerKeys = await this.eventService.getRegisteredKeys();\n // Generate the event key that would be dispatched\n const actualEventKey = `entity.${operation}.${entityName}`;\n // Check each listener key for wildcard patterns\n for (const listenerKey of allListenerKeys) {\n if (listenerKey.includes('*') && this.matchesEntityPattern(actualEventKey, listenerKey)) {\n matchingKeys.push(listenerKey);\n }\n }\n return matchingKeys;\n }\n /**\n * Check if an entity event key matches a wildcard pattern\n * Only supports entity patterns (entity.*)\n */\n matchesEntityPattern(eventKey, pattern) {\n // Only process entity patterns\n if (!pattern.startsWith('entity.') || !pattern.includes('*')) {\n return false;\n }\n // Convert pattern to regex\n const regexPattern = pattern\n .replace(/\\./g, '\\\\.') // Escape dots\n .replace(/\\*/g, '.*'); // Convert * to regex wildcard\n const regex = new RegExp(`^${regexPattern}$`);\n return regex.test(eventKey);\n }\n /**\n * Generate all possible event keys for an entity operation\n * @param operation The operation type\n * @param entityName The entity name (e.g., 'PlatformManagement.Category')\n */\n generateEventKeys(operation, entityName) {\n const keys = [];\n // 1. Base pattern: entity.inserted\n keys.push(`entity.${operation}`);\n // 2. Specific entity pattern: entity.inserted.PlatformManagement.Category\n keys.push(`entity.${operation}.${entityName}`);\n // 3. Module-level pattern: entity.inserted.PlatformManagement\n const entityParts = entityName.split('.');\n if (entityParts.length > 1) {\n const moduleName = entityParts[0];\n keys.push(`entity.${operation}.${moduleName}`);\n }\n return keys;\n }\n /**\n * Convenience methods for specific operations\n */\n async dispatchInserted(entityName, data) {\n await this.dispatchEntityEvent('inserted', entityName, data);\n }\n async dispatchUpdated(entityName, data) {\n await this.dispatchEntityEvent('updated', entityName, data);\n }\n async dispatchDeleted(entityName, data) {\n await this.dispatchEntityEvent('deleted', entityName, data);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityEventDispatcherService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityEventDispatcherService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityEventDispatcherService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWV2ZW50LWRpc3BhdGNoZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2Rpc3RyaWJ1dGVkLWV2ZW50cy9lbnRpdHktZXZlbnQtZGlzcGF0Y2hlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQUMxRixzRkFBc0Y7QUFFdEY7OztHQUdHO0FBSUgsTUFBTSxPQUFPLCtCQUErQjtJQUg1QztRQUltQixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0tBc0k1RTtJQXJJQywrRUFBK0U7SUFFL0U7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsbUJBQW1CLENBQ3ZCLFNBQTZDLEVBQzdDLFVBQWtCLEVBQ2xCLElBQVM7UUFFVCxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFaEUsTUFBTSxZQUFZLEdBQUc7WUFDbkIsR0FBRyxJQUFJO1lBQ1AsVUFBVTtZQUNWLFNBQVM7WUFDVCxTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDckIsTUFBTSxFQUFFLG1CQUFtQjtTQUM1QixDQUFDO1FBRUYscUVBQXFFO1FBQ3JFLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXRGLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUV4RCxtREFBbUQ7UUFDbkQsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFD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LENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzNCLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFVBQWtCLEVBQUUsSUFBUztRQUNsRCxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZSxDQUFDLFVBQWtCLEVBQUUsSUFBUztRQUNqRCxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZSxDQUFDLFVBQWtCLEVBQUUsSUFBUztRQUNqRCxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7OEdBdElVLCtCQUErQjtrSEFBL0IsK0JBQStCLGNBRjlCLE1BQU07OzJGQUVQLCtCQUErQjtrQkFIM0MsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclNlcnZpY2UgfSBmcm9tICcuL2Rpc3RyaWJ1dGVkLWV2ZW50LWxpc3RlbmVyLnNlcnZpY2UnO1xuLy9pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcblxuLyoqXG4gKiBFbnRpdHkgRXZlbnQgRGlzcGF0Y2hlciAtIEEgd3JhcHBlciBmb3IgZW50aXR5LXNwZWNpZmljIGV2ZW50c1xuICogSGFuZGxlcyBwYXR0ZXJuLWJhc2VkIGRpc3BhdGNoaW5nIGZvciBlbnRpdHkgb3BlcmF0aW9ucyB3aXRoIHdpbGRjYXJkIHN1cHBvcnRcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50U2VydmljZSA9IGluamVjdChBWFBEaXN0cmlidXRlZEV2ZW50TGlzdGVuZXJTZXJ2aWNlKTtcbiAgLy9wcml2YXRlIHJlYWRvbmx5IGVudGl0eVJlZ2lzdHJ5ID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBEaXNwYXRjaCBlbnRpdHkgZXZlbnRzIHdpdGggcGF0dGVybiBtYXRjaGluZyBzdXBwb3J0IGZvciB3aWxkY2FyZCBsaXN0ZW5lcnNcbiAgICogQHBhcmFtIG9wZXJhdGlvbiBUaGUgb3BlcmF0aW9uIHR5cGUgKGluc2VydGVkLCB1cGRhdGVkLCBkZWxldGVkKVxuICAgKiBAcGFyYW0gZW50aXR5TmFtZSBUaGUgZnVsbCBlbnRpdHkgbmFtZSAoZS5nLiwgJ1BsYXRmb3JtTWFuYWdlbWVudC5DYXRlZ29yeScpXG4gICAqIEBwYXJhbSBkYXRhIFRoZSBldmVudCBkYXRhXG4gICAqL1xuICBhc3luYyBkaXNwYXRjaEVudGl0eUV2ZW50KFxuICAgIG9wZXJhdGlvbjogJ2luc2VydGVkJyB8ICd1cGRhdGVkJyB8ICdkZWxldGVkJyxcbiAgICBlbnRpdHlOYW1lOiBzdHJpbmcsXG4gICAgZGF0YTogYW55XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnNvbGUubG9nKCdkaXNwYXRjaEVudGl0eUV2ZW50Jywgb3BlcmF0aW9uLCBlbnRpdHlOYW1lLCBkYXRhKTtcbiAgICBcbiAgICBjb25zdCBlbmhhbmNlZERhdGEgPSB7XG4gICAgICAuLi5kYXRhLFxuICAgICAgZW50aXR5TmFtZSxcbiAgICAgIG9wZXJhdGlvbixcbiAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKSxcbiAgICAgIHNvdXJjZTogJ2VudGl0eS1kaXNwYXRjaGVyJ1xuICAgIH07XG5cbiAgICAvLyBHZXQgYWxsIHBvc3NpYmxlIGV2ZW50IGtleXMgdGhhdCBjb3VsZCBtYXRjaCB0aGlzIGVudGl0eSBvcGVyYXRpb25cbiAgICBjb25zdCBldmVudEtleXNUb0Rpc3BhdGNoID0gYXdhaXQgdGhpcy5nZXRBbGxNYXRjaGluZ0V2ZW50S2V5cyhvcGVyYXRpb24sIGVudGl0eU5hbWUpO1xuXG4gICAgY29uc29sZS5sb2coJ2V2ZW50S2V5c1RvRGlzcGF0Y2gnLCBldmVudEtleXNUb0Rpc3BhdGNoKTtcbiAgICBcbiAgICAvLyBEaXNwYXRjaCB0byBhbGwgbWF0Y2hpbmcgcGF0dGVybnMgc2ltdWx0YW5lb3VzbHlcbiAgICBjb25zdCBkaXNwYXRjaFByb21pc2VzID0gZXZlbnRLZXlzVG9EaXNwYXRjaC5tYXAoa2V5ID0+IFxuICAgICAgdGhpcy5ldmVudFNlcnZpY2UuZGlzcGF0Y2goa2V5LCBlbmhhbmNlZERhdGEpXG4gICAgKTtcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKGRpc3BhdGNoUHJvbWlzZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgZXZlbnQga2V5cyB0aGF0IHNob3VsZCBiZSBkaXNwYXRjaGVkIGZvciB0aGlzIGVudGl0eSBvcGVyYXRpb25cbiAgICogaW5jbHVkaW5nIHdpbGRjYXJkIHBhdHRlcm4gbWF0Y2hlc1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBnZXRBbGxNYXRjaGluZ0V2ZW50S2V5cyhvcGVyYXRpb246IHN0cmluZywgZW50aXR5TmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IGV2ZW50S2V5cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIFxuICAgIC8vIDEuIEFkZCBleGFjdCBwYXR0ZXJucyBmb3IgdGhpcyBzcGVjaWZpYyBlbnRpdHlcbiAgICBjb25zdCBleGFjdEtleXMgPSB0aGlzLmdlbmVyYXRlRXZlbnRLZXlzKG9wZXJhdGlvbiwgZW50aXR5TmFtZSk7XG4gICAgZXhhY3RLZXlzLmZvckVhY2goa2V5ID0+IGV2ZW50S2V5cy5hZGQoa2V5KSk7XG4gICAgXG4gICAgLy8gMi4gRmluZCBhbmQgYWRkIHdpbGRjYXJkIGxpc3RlbmVycyB0aGF0IG1hdGNoIHRoaXMgZW50aXR5XG4gICAgY29uc3Qgd2lsZGNhcmRLZXlzID0gYXdhaXQgdGhpcy5maW5kTWF0Y2hpbmdXaWxkY2FyZEtleXMob3BlcmF0aW9uLCBlbnRpdHlOYW1lKTtcbiAgICB3aWxkY2FyZEtleXMuZm9yRWFjaChrZXkgPT4gZXZlbnRLZXlzLmFkZChrZXkpKTtcbiAgICBcbiAgICByZXR1cm4gQXJyYXkuZnJvbShldmVudEtleXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgd2lsZGNhcmQgbGlzdGVuZXIga2V5cyB0aGF0IG1hdGNoIHRoaXMgZW50aXR5IG9wZXJhdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBmaW5kTWF0Y2hpbmdXaWxkY2FyZEtleXMob3BlcmF0aW9uOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBjb25zdCBtYXRjaGluZ0tleXM6IHN0cmluZ1tdID0gW107XG4gICAgXG4gICAgLy8gR2V0IGFsbCByZWdpc3RlcmVkIGxpc3RlbmVyc1xuICAgIGNvbnN0IGFsbExpc3RlbmVyS2V5cyA9IGF3YWl0IHRoaXMuZXZlbnRTZXJ2aWNlLmdldFJlZ2lzdGVyZWRLZXlzKCk7XG4gICAgXG4gICAgLy8gR2VuZXJhdGUgdGhlIGV2ZW50IGtleSB0aGF0IHdvdWxkIGJlIGRpc3BhdGNoZWRcbiAgICBjb25zdCBhY3R1YWxFdmVudEtleSA9IGBlbnRpdHkuJHtvcGVyYXRpb259LiR7ZW50aXR5TmFtZX1gO1xuICAgIFxuICAgIC8vIENoZWNrIGVhY2ggbGlzdGVuZXIga2V5IGZvciB3aWxkY2FyZCBwYXR0ZXJuc1xuICAgIGZvciAoY29uc3QgbGlzdGVuZXJLZXkgb2YgYWxsTGlzdGVuZXJLZXlzKSB7XG4gICAgICBpZiAobGlzdGVuZXJLZXkuaW5jbHVkZXMoJyonKSAmJiB0aGlzLm1hdGNoZXNFbnRpdHlQYXR0ZXJuKGFjdHVhbEV2ZW50S2V5LCBsaXN0ZW5lcktleSkpIHtcbiAgICAgICAgbWF0Y2hpbmdLZXlzLnB1c2gobGlzdGVuZXJLZXkpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICByZXR1cm4gbWF0Y2hpbmdLZXlzO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIGVudGl0eSBldmVudCBrZXkgbWF0Y2hlcyBhIHdpbGRjYXJkIHBhdHRlcm5cbiAgICogT25seSBzdXBwb3J0cyBlbnRpdHkgcGF0dGVybnMgKGVudGl0eS4qKVxuICAgKi9cbiAgcHJpdmF0ZSBtYXRjaGVzRW50aXR5UGF0dGVybihldmVudEtleTogc3RyaW5nLCBwYXR0ZXJuOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAvLyBPbmx5IHByb2Nlc3MgZW50aXR5IHBhdHRlcm5zXG4gICAgaWYgKCFwYXR0ZXJuLnN0YXJ0c1dpdGgoJ2VudGl0eS4nKSB8fCAhcGF0dGVybi5pbmNsdWRlcygnKicpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIFxuICAgIC8vIENvbnZlcnQgcGF0dGVybiB0byByZWdleFxuICAgIGNvbnN0IHJlZ2V4UGF0dGVybiA9IHBhdHRlcm5cbiAgICAgIC5yZXBsYWNlKC9cXC4vZywgJ1xcXFwuJykgIC8vIEVzY2FwZSBkb3RzXG4gICAgICAucmVwbGFjZSgvXFwqL2csICcuKicpOyAgLy8gQ29udmVydCAqIHRvIHJlZ2V4IHdpbGRjYXJkXG4gICAgXG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBeJHtyZWdleFBhdHRlcm59JGApO1xuICAgIHJldHVybiByZWdleC50ZXN0KGV2ZW50S2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBhbGwgcG9zc2libGUgZXZlbnQga2V5cyBmb3IgYW4gZW50aXR5IG9wZXJhdGlvblxuICAgKiBAcGFyYW0gb3BlcmF0aW9uIFRoZSBvcGVyYXRpb24gdHlwZVxuICAgKiBAcGFyYW0gZW50aXR5TmFtZSBUaGUgZW50aXR5IG5hbWUgKGUuZy4sICdQbGF0Zm9ybU1hbmFnZW1lbnQuQ2F0ZWdvcnknKVxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZUV2ZW50S2V5cyhvcGVyYXRpb246IHN0cmluZywgZW50aXR5TmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gW107XG4gICAgXG4gICAgLy8gMS4gQmFzZSBwYXR0ZXJuOiBlbnRpdHkuaW5zZXJ0ZWRcbiAgICBrZXlzLnB1c2goYGVudGl0eS4ke29wZXJhdGlvbn1gKTtcbiAgICBcbiAgICAvLyAyLiBTcGVjaWZpYyBlbnRpdHkgcGF0dGVybjogZW50aXR5Lmluc2VydGVkLlBsYXRmb3JtTWFuYWdlbWVudC5DYXRlZ29yeVxuICAgIGtleXMucHVzaChgZW50aXR5LiR7b3BlcmF0aW9ufS4ke2VudGl0eU5hbWV9YCk7XG4gICAgXG4gICAgLy8gMy4gTW9kdWxlLWxldmVsIHBhdHRlcm46IGVudGl0eS5pbnNlcnRlZC5QbGF0Zm9ybU1hbmFnZW1lbnRcbiAgICBjb25zdCBlbnRpdHlQYXJ0cyA9IGVudGl0eU5hbWUuc3BsaXQoJy4nKTtcbiAgICBpZiAoZW50aXR5UGFydHMubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgbW9kdWxlTmFtZSA9IGVudGl0eVBhcnRzWzBdO1xuICAgICAga2V5cy5wdXNoKGBlbnRpdHkuJHtvcGVyYXRpb259LiR7bW9kdWxlTmFtZX1gKTtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIGtleXM7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kcyBmb3Igc3BlY2lmaWMgb3BlcmF0aW9uc1xuICAgKi9cbiAgYXN5bmMgZGlzcGF0Y2hJbnNlcnRlZChlbnRpdHlOYW1lOiBzdHJpbmcsIGRhdGE6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZGlzcGF0Y2hFbnRpdHlFdmVudCgnaW5zZXJ0ZWQnLCBlbnRpdHlOYW1lLCBkYXRhKTtcbiAgfVxuXG4gIGFzeW5jIGRpc3BhdGNoVXBkYXRlZChlbnRpdHlOYW1lOiBzdHJpbmcsIGRhdGE6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZGlzcGF0Y2hFbnRpdHlFdmVudCgndXBkYXRlZCcsIGVudGl0eU5hbWUsIGRhdGEpO1xuICB9XG5cbiAgYXN5bmMgZGlzcGF0Y2hEZWxldGVkKGVudGl0eU5hbWU6IHN0cmluZywgZGF0YTogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5kaXNwYXRjaEVudGl0eUV2ZW50KCdkZWxldGVkJywgZW50aXR5TmFtZSwgZGF0YSk7XG4gIH1cbn0iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Example implementation of a distributed event listener provider.\n * This is just a sample to show how to implement the interface.\n */\nexport class ExampleEventListenerProvider {\n constructor() {\n this.key = 'example.event';\n }\n async execute(data) {\n console.log('Example event received:', data);\n // Your implementation here\n // For example:\n // - Log the event\n // - Update cache\n // - Send notifications\n // - Call external APIs\n // - Update UI state\n // Simulate async work\n await new Promise(resolve => setTimeout(resolve, 100));\n console.log('Example event processed successfully');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: ExampleEventListenerProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: ExampleEventListenerProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: ExampleEventListenerProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS1ldmVudC1saXN0ZW5lci5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2Rpc3RyaWJ1dGVkLWV2ZW50cy9leGFtcGxlLWV2ZW50LWxpc3RlbmVyLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDOzs7R0FHRztBQUVILE1BQU0sT0FBTyw0QkFBNEI7SUFEekM7UUFFRSxRQUFHLEdBQUcsZUFBZSxDQUFDO0tBa0J2QjtJQWhCQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQVM7UUFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU3QywyQkFBMkI7UUFDM0IsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixpQkFBaUI7UUFDakIsdUJBQXVCO1FBQ3ZCLHVCQUF1QjtRQUN2QixvQkFBb0I7UUFFcEIsc0JBQXNCO1FBQ3RCLE1BQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0lBQ3RELENBQUM7OEdBbEJVLDRCQUE0QjtrSEFBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyUHJvdmlkZXIgfSBmcm9tICcuL2Rpc3RyaWJ1dGVkLWV2ZW50LWxpc3RlbmVyLnByb3ZpZGVyJztcblxuLyoqXG4gKiBFeGFtcGxlIGltcGxlbWVudGF0aW9uIG9mIGEgZGlzdHJpYnV0ZWQgZXZlbnQgbGlzdGVuZXIgcHJvdmlkZXIuXG4gKiBUaGlzIGlzIGp1c3QgYSBzYW1wbGUgdG8gc2hvdyBob3cgdG8gaW1wbGVtZW50IHRoZSBpbnRlcmZhY2UuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFeGFtcGxlRXZlbnRMaXN0ZW5lclByb3ZpZGVyIGltcGxlbWVudHMgQVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyUHJvdmlkZXI8YW55PiB7XG4gIGtleSA9ICdleGFtcGxlLmV2ZW50JztcblxuICBhc3luYyBleGVjdXRlKGRhdGE6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnNvbGUubG9nKCdFeGFtcGxlIGV2ZW50IHJlY2VpdmVkOicsIGRhdGEpO1xuICAgIFxuICAgIC8vIFlvdXIgaW1wbGVtZW50YXRpb24gaGVyZVxuICAgIC8vIEZvciBleGFtcGxlOlxuICAgIC8vIC0gTG9nIHRoZSBldmVudFxuICAgIC8vIC0gVXBkYXRlIGNhY2hlXG4gICAgLy8gLSBTZW5kIG5vdGlmaWNhdGlvbnNcbiAgICAvLyAtIENhbGwgZXh0ZXJuYWwgQVBJc1xuICAgIC8vIC0gVXBkYXRlIFVJIHN0YXRlXG4gICAgXG4gICAgLy8gU2ltdWxhdGUgYXN5bmMgd29ya1xuICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDApKTtcbiAgICBcbiAgICBjb25zb2xlLmxvZygnRXhhbXBsZSBldmVudCBwcm9jZXNzZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gIH1cbn1cblxuLyoqXG4gKiBFeGFtcGxlIG9mIGhvdyB0byByZWdpc3RlciB0aGlzIHByb3ZpZGVyIGluIHlvdXIgbW9kdWxlOlxuICogXG4gKiBATmdNb2R1bGUoe1xuICogICBwcm92aWRlcnM6IFtcbiAqICAgICB7XG4gKiAgICAgICBwcm92aWRlOiBBWFBfRElTVFJJQlVURURfRVZFTlRfTElTVEVORVJfUFJPVklERVIsXG4gKiAgICAgICB1c2VDbGFzczogRXhhbXBsZUV2ZW50TGlzdGVuZXJQcm92aWRlcixcbiAqICAgICAgIG11bHRpOiB0cnVlLFxuICogICAgIH1cbiAqICAgXVxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBZb3VyTW9kdWxlIHsgfVxuICogXG4gKiBPciB3aXRoIGxhenkgbG9hZGluZzpcbiAqIFxuICogQE5nTW9kdWxlKHtcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAge1xuICogICAgICAgcHJvdmlkZTogQVhQX0RJU1RSSUJVVEVEX0VWRU5UX0xJU1RFTkVSX1BST1ZJREVSLFxuICogICAgICAgdXNlRmFjdG9yeTogYXN5bmMgKCkgPT4ge1xuICogICAgICAgICByZXR1cm4gbmV3IEV4YW1wbGVFdmVudExpc3RlbmVyUHJvdmlkZXIoKTtcbiAqICAgICAgIH0sXG4gKiAgICAgICBtdWx0aTogdHJ1ZSxcbiAqICAgICB9XG4gKiAgIF1cbiAqIH0pXG4gKi8iXX0=","/**\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/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}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi91dGlscy9vYmplY3QtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsY0FBYyxFQUNkLEdBQUcsRUFDSCxPQUFPLEVBQ1AsT0FBTyxFQUNQLE9BQU8sRUFDUCxLQUFLLEVBQ0wsWUFBWSxFQUNaLGFBQWEsRUFDYixLQUFLLEVBQ0wsR0FBRyxFQUNILFNBQVMsRUFDVCxLQUFLLEdBQ04sTUFBTSxXQUFXLENBQUM7QUFFbkIsTUFBTSxVQUFVLDJCQUEyQixDQUFDLEdBQVEsRUFBRSxRQUFnQixFQUFFLE1BQWdCO0lBQ3RGLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztJQUV2QixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUM3QyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMzQixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDM0QsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztB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QUcsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDaEQsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBRUQsdUNBQXVDO1FBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDWCxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDM0IsUUFBUSxFQUFFLEVBQUU7WUFDWixRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCx1Q0FBdUM7QUFDdkMsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFTLEVBQUUsSUFBUztJQUNsRCxPQUFPLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVELHdDQUF3QztBQUN4QyxNQUFNLFVBQVUsa0JBQWtCLENBQUMsSUFBUyxFQUFFLElBQVM7SUFDckQsT0FBTyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3BDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBkaWZmZXJlbmNlV2l0aCxcbiAgZ2V0LFxuICBpc0FycmF5LFxuICBpc0VtcHR5LFxuICBpc0VxdWFsLFxuICBpc05pbCxcbiAgaXNPYmplY3RMaWtlLFxuICBpc1BsYWluT2JqZWN0LFxuICBtZXJnZSxcbiAgc2V0LFxuICB0cmFuc2Zvcm0sXG4gIHVuaW9uLFxufSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdE5lc3RlZEZpZWxkc1dpbGRjYXJkKG9iajogYW55LCBiYXNlUGF0aDogc3RyaW5nLCBmaWVsZHM6IHN0cmluZ1tdKTogYW55IHtcbiAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcblxuICBpZiAoZmllbGRzLmxlbmd0aCA9PT0gMSAmJiBmaWVsZHNbMF0gPT09ICcqJykge1xuICAgIGNvbnN0IGZ1bGxPYmogPSBnZXQob2JqLCBiYXNlUGF0aCk7XG4gICAgcmV0dXJuIGlzUGxhaW5PYmplY3QoZnVsbE9iaikgPyBmdWxsT2JqIDoge307XG4gIH1cblxuICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gYmFzZVBhdGggPyBgJHtiYXNlUGF0aH0uJHtmaWVsZH1gIDogZmllbGQ7XG4gICAgY29uc3QgdmFsdWUgPSBnZXQob2JqLCBmdWxsUGF0aCk7XG4gICAgc2V0KHJlc3VsdCwgZmllbGQsIHZhbHVlKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTbWFydChvYmo6IGFueSwgc21hcnRQYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBhbnkge1xuICBjb25zdCBwYXRoUGFydHMgPSBzbWFydFBhdGguc3BsaXQoJy4nKTtcbiAgY29uc3QgbGFzdFBhcnQgPSBwYXRoUGFydHNbcGF0aFBhcnRzLmxlbmd0aCAtIDFdO1xuICBjb25zdCBmaWVsZE1hdGNoID0gbGFzdFBhcnQubWF0Y2goL15cXHsoLispXFx9JC8pO1xuXG4gIGlmICghZmllbGRNYXRjaCkge1xuICAgIHNldChvYmosIHNtYXJ0UGF0aCwgdmFsdWUpO1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICBjb25zdCBmaWVsZHMgPSBmaWVsZE1hdGNoWzFdLnNwbGl0KCcsJykubWFwKChmKSA9PiBmLnRyaW0oKSk7XG4gIGNvbnN0IGJhc2VQYXRoID0gcGF0aFBhcnRzLnNsaWNlKDAsIC0xKS5qb2luKCcuJyk7XG4gIGNvbnN0IFthcnJheUtleSwgLi4ucmVzdFBhdGhdID0gYmFzZVBhdGguc3BsaXQoJy4nKTtcblxuICAvLyBNYWtlIHN1cmUgdGhlIGFycmF5IGV4aXN0c1xuICBpZiAoIW9ialthcnJheUtleV0pIG9ialthcnJheUtleV0gPSBbXTtcblxuICAvLyDwn5+hIENhc2UgQTogdmFsdWUgaXMgYXJyYXkgKG5vcm1hbCBzZXQpXG4gIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSB2YWx1ZVtpXTtcbiAgICAgIGNvbnN0IHRhcmdldEl0ZW0gPSBvYmpbYXJyYXlLZXldW2ldID8/IHt9O1xuICAgICAgY29uc3QgbmVzdGVkID0ge307XG5cbiAgICAgIGlmIChyZXN0UGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHBpY2tlZCA9IGV4dHJhY3ROZXN0ZWRGaWVsZHNXaWxkY2FyZChpdGVtLCByZXN0UGF0aC5qb2luKCcuJyksIGZpZWxkcyk7XG4gICAgICAgIHNldChuZXN0ZWQsIHJlc3RQYXRoLmpvaW4oJy4nKSwgcGlja2VkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHBpY2tlZCA9IGV4dHJhY3ROZXN0ZWRGaWVsZHNXaWxkY2FyZChpdGVtLCAnJywgZmllbGRzKTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXN0ZWQsIHBpY2tlZCk7XG4gICAgICB9XG5cbiAgICAgIG9ialthcnJheUtleV1baV0gPSBtZXJnZSh7fSwgdGFyZ2V0SXRlbSwgbmVzdGVkKTtcbiAgICB9XG4gIH1cblxuICAvLyDwn5+iIENhc2UgQjogdmFsdWUgaXMgYSBzaW5nbGUgdmFsdWUg4oaSIGJyb2FkY2FzdFxuICBlbHNlIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9ialthcnJheUtleV0ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHRhcmdldEl0ZW0gPSBvYmpbYXJyYXlLZXldW2ldID8/IHt9O1xuICAgICAgY29uc3QgbmVzdGVkID0ge307XG5cbiAgICAgIGlmIChyZXN0UGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICAgICAgc2V0KG5lc3RlZCwgYCR7cmVzdFBhdGguam9pbignLicpfS4ke2ZpZWxkfWAsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgICAgICBzZXQobmVzdGVkLCBmaWVsZCwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9ialthcnJheUtleV1baV0gPSBtZXJnZSh7fSwgdGFyZ2V0SXRlbSwgbmVzdGVkKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0RmllbGRzRnJvbVBhdGgob2JqOiBhbnksIGJhc2VQYXRoOiBzdHJpbmcsIGZpZWxkczogc3RyaW5nW10pOiBhbnkge1xuICBpZiAoZmllbGRzLmxlbmd0aCA9PT0gMSAmJiBmaWVsZHNbMF0gPT09ICcqJykge1xuICAgIGNvbnN0IGZ1bGxPYmogPSBiYXNlUGF0aCA/IGdldChvYmosIGJhc2VQYXRoKSA6IG9iajtcbiAgICByZXR1cm4gaXNQbGFpbk9iamVjdChmdWxsT2JqKSA/IGZ1bGxPYmogOiB7fTtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgY29uc3QgZnVsbFBhdGggPSBiYXNlUGF0aCA/IGAke2Jhc2VQYXRofS4ke2ZpZWxkfWAgOiBmaWVsZDtcbiAgICBjb25zdCB2YWwgPSBnZXQob2JqLCBmdWxsUGF0aCk7XG4gICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXN1bHRbZmllbGRdID0gdmFsO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U21hcnQob2JqOiBhbnksIHNtYXJ0UGF0aDogc3RyaW5nKTogYW55IHtcbiAgY29uc3QgcGF0aFBhcnRzID0gc21hcnRQYXRoLnNwbGl0KCcuJyk7XG4gIGNvbnN0IGxhc3RQYXJ0ID0gcGF0aFBhcnRzW3BhdGhQYXJ0cy5sZW5ndGggLSAxXTtcbiAgY29uc3QgZmllbGRNYXRjaCA9IGxhc3RQYXJ0Lm1hdGNoKC9eXFx7KC4rKVxcfSQvKTtcblxuICAvLyBTaW1wbGUgZ2V0IChubyBmaWVsZHMpXG4gIGlmICghZmllbGRNYXRjaCkge1xuICAgIHJldHVybiBnZXQob2JqLCBzbWFydFBhdGgpO1xuICB9XG5cbiAgY29uc3QgZmllbGRzID0gZmllbGRNYXRjaFsxXS5zcGxpdCgnLCcpLm1hcCgoZikgPT4gZi50cmltKCkpO1xuICBjb25zdCBiYXNlUGF0aCA9IHBhdGhQYXJ0cy5zbGljZSgwLCAtMSkuam9pbignLicpO1xuICBjb25zdCBpdGVtcyA9IGdldChvYmosIGJhc2VQYXRoKTtcblxuICBpZiAoIWlzQXJyYXkoaXRlbXMpKSByZXR1cm4gW107XG5cbiAgY29uc3QgbmVzdGVkUGF0aCA9IGJhc2VQYXRoLmluY2x1ZGVzKCcuJykgPyBiYXNlUGF0aC5zcGxpdCgnLicpLnNsaWNlKDEpLmpvaW4oJy4nKSA6ICcnO1xuXG4gIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICByZXR1cm4gZXh0cmFjdEZpZWxkc0Zyb21QYXRoKGl0ZW0sIG5lc3RlZFBhdGgsIGZpZWxkcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFZhbHVlPFQgPSBhbnk+KHZhbHVlOiBhbnksIGtleTogc3RyaW5nID0gJ2lkJyk6IFQgfCBudWxsIHtcbiAgaWYgKGlzTmlsKHZhbHVlKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpID8gZ2V0KHZhbHVlLCBrZXkpIDogdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkRlZXAob2JqOiBhbnkpIHtcbiAgcmV0dXJuIHRyYW5zZm9ybShvYmosIChyZXN1bHQ6IGFueSwgdmFsdWU6IGFueSwga2V5OiBzdHJpbmcpID0+IHtcbiAgICBpZiAoaXNPYmplY3RMaWtlKHZhbHVlKSkge1xuICAgICAgY29uc3QgY2xlYW5lZCA9IGNsZWFuRGVlcCh2YWx1ZSk7XG4gICAgICBpZiAoIWlzRW1wdHkoY2xlYW5lZCkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBjbGVhbmVkO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICAhaXNOaWwodmFsdWUpICYmIC8vIG5vdCBudWxsIG9yIHVuZGVmaW5lZFxuICAgICAgISh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKSA9PT0gJycpICYmIC8vIG5vdCBlbXB0eSBzdHJpbmdcbiAgICAgICEoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSAvLyBub3QgZW1wdHkgYXJyYXlcbiAgICApIHtcbiAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9KTtcbn1cblxudHlwZSBDaGFuZ2VFbnRyeSA9IHtcbiAgcGF0aDogc3RyaW5nO1xuICBvbGRWYWx1ZTogYW55O1xuICBuZXdWYWx1ZTogYW55O1xuICBhcnJheURpZmY/OiB7XG4gICAgYWRkZWQ6IGFueVtdO1xuICAgIHJlbW92ZWQ6IGFueVtdO1xuICB9O1xufTtcblxuZnVuY3Rpb24gZ2V0RGVlcENoYW5nZXMob2JqMTogYW55LCBvYmoyOiBhbnkpOiBDaGFuZ2VFbnRyeVtdIHtcbiAgY29uc3QgY2hhbmdlczogQ2hhbmdlRW50cnlbXSA9IFtdO1xuXG4gIGZ1bmN0aW9uIHdhbGsobzE6IGFueSwgbzI6IGFueSwgY3VycmVudFBhdGg6IHN0cmluZ1tdID0gW10pIHtcbiAgICAvLyBJZiBib3RoIHZhbHVlcyBhcmUgZGVlcGx5IGVxdWFsLCBza2lwXG4gICAgaWYgKGlzRXF1YWwobzEsIG8yKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgaXNPYmoxTmlsID0gbzEgPT09IG51bGwgfHwgbzEgPT09IHVuZGVmaW5lZDtcbiAgICBjb25zdCBpc09iajJOaWwgPSBvMiA9PT0gbnVsbCB8fCBvMiA9PT0gdW5kZWZpbmVkO1xuXG4gICAgLy8gSWYgb2JqMSBpcyBudWxsL3VuZGVmaW5lZCBhbmQgb2JqMiBpcyBub3QsIHRyZWF0IGVudGlyZSBvYmoyIGFzIGFkZGVkXG4gICAgaWYgKGlzT2JqMU5pbCAmJiAhaXNPYmoyTmlsKSB7XG4gICAgICBpZiAoaXNQbGFpbk9iamVjdChvMikpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobzIpKSB7XG4gICAgICAgICAgd2Fsayh1bmRlZmluZWQsIG8yW2tleV0sIFsuLi5jdXJyZW50UGF0aCwga2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShvMikpIHtcbiAgICAgICAgY2hhbmdlcy5wdXNoKHtcbiAgICAgICAgICBwYXRoOiBjdXJyZW50UGF0aC5qb2luKCcuJyksXG4gICAgICAgICAgb2xkVmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBuZXdWYWx1ZTogbzIsXG4gICAgICAgICAgYXJyYXlEaWZmOiB7XG4gICAgICAgICAgICBhZGRlZDogbzIsXG4gICAgICAgICAgICByZW1vdmVkOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICAgICAgcGF0aDogY3VycmVudFBhdGguam9pbignLicpLFxuICAgICAgICAgIG9sZFZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAgICAgbmV3VmFsdWU6IG8yLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJZiBvYmoyIGlzIG51bGwvdW5kZWZpbmVkIGFuZCBvYmoxIGlzIG5vdCwgdHJlYXQgZW50aXJlIG9iajEgYXMgcmVtb3ZlZFxuICAgIGlmICghaXNPYmoxTmlsICYmIGlzT2JqMk5pbCkge1xuICAgICAgaWYgKGlzUGxhaW5PYmplY3QobzEpKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG8xKSkge1xuICAgICAgICAgIHdhbGsobzFba2V5XSwgdW5kZWZpbmVkLCBbLi4uY3VycmVudFBhdGgsIGtleV0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkobzEpKSB7XG4gICAgICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICAgICAgcGF0aDogY3VycmVudFBhdGguam9pbignLicpLFxuICAgICAgICAgIG9sZFZhbHVlOiBvMSxcbiAgICAgICAgICBuZXdWYWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICAgIGFycmF5RGlmZjoge1xuICAgICAgICAgICAgYWRkZWQ6IFtdLFxuICAgICAgICAgICAgcmVtb3ZlZDogbzEsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjaGFuZ2VzLnB1c2goe1xuICAgICAgICAgIHBhdGg6IGN1cnJlbnRQYXRoLmpvaW4oJy4nKSxcbiAgICAgICAgICBvbGRWYWx1ZTogbzEsXG4gICAgICAgICAgbmV3VmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSWYgYm90aCBhcmUgYXJyYXlzLCBjb21wYXJlIGl0ZW1zXG4gICAgaWYgKEFycmF5LmlzQXJyYXkobzEpICYmIEFycmF5LmlzQXJyYXkobzIpKSB7XG4gICAgICBpZiAoIWlzRXF1YWwobzEsIG8yKSkge1xuICAgICAgICBjb25zdCBhZGRlZCA9IGRpZmZlcmVuY2VXaXRoKG8yLCBvMSwgaXNFcXVhbCk7XG4gICAgICAgIGNvbnN0IHJlbW92ZWQgPSBkaWZmZXJlbmNlV2l0aChvMSwgbzIsIGlzRXF1YWwpO1xuXG4gICAgICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICAgICAgcGF0aDogY3VycmVudFBhdGguam9pbignLicpLFxuICAgICAgICAgIG9sZFZhbHVlOiBvMSxcbiAgICAgICAgICBuZXdWYWx1ZTogbzIsXG4gICAgICAgICAgYXJyYXlEaWZmOiB7XG4gICAgICAgICAgICBhZGRlZCxcbiAgICAgICAgICAgIHJlbW92ZWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSWYgYm90aCBhcmUgcGxhaW4gb2JqZWN0cywgd2FsayBlYWNoIGtleVxuICAgIGlmIChpc1BsYWluT2JqZWN0KG8xKSAmJiBpc1BsYWluT2JqZWN0KG8yKSkge1xuICAgICAgY29uc3QgYWxsS2V5cyA9IHVuaW9uKE9iamVjdC5rZXlzKG8xKSwgT2JqZWN0LmtleXMobzIpKTtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIGFsbEtleXMpIHtcbiAgICAgICAgd2FsayhvMVtrZXldLCBvMltrZXldLCBbLi4uY3VycmVudFBhdGgsIGtleV0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFByaW1pdGl2ZSB2YWx1ZXMgb3IgbWlzbWF0Y2hlZCB0eXBlc1xuICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICBwYXRoOiBjdXJyZW50UGF0aC5qb2luKCcuJyksXG4gICAgICBvbGRWYWx1ZTogbzEsXG4gICAgICBuZXdWYWx1ZTogbzIsXG4gICAgfSk7XG4gIH1cblxuICB3YWxrKG9iajEsIG9iajIpO1xuICByZXR1cm4gY2hhbmdlcztcbn1cblxuLy8gTWV0aG9kIDE6IFJldHVybnMgb25seSBjaGFuZ2VkIHBhdGhzXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhbmdlZFBhdGhzKG9iajE6IGFueSwgb2JqMjogYW55KTogc3RyaW5nW10ge1xuICByZXR1cm4gZ2V0RGVlcENoYW5nZXMob2JqMSwgb2JqMikubWFwKChjaGFuZ2UpID0+IGNoYW5nZS5wYXRoKTtcbn1cblxuLy8gTWV0aG9kIDI6IFJldHVybnMgZnVsbCBjaGFuZ2UgZW50cmllc1xuZXhwb3J0IGZ1bmN0aW9uIGdldERldGFpbGVkQ2hhbmdlcyhvYmoxOiBhbnksIG9iajI6IGFueSk6IENoYW5nZUVudHJ5W10ge1xuICByZXR1cm4gZ2V0RGVlcENoYW5nZXMob2JqMSwgb2JqMik7XG59XG4iXX0=","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 { Subject } from 'rxjs';\nimport { AXPDataGenerator } from '../data/data-generator';\nimport { isUndefined } from 'lodash-es';\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.channel = new BroadcastChannel('platform_global_events');\n // Handle incoming messages\n this.channel.onmessage = (event) => {\n const { type, payload, requestId, response } = 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 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 });\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 = { timeout: 60 * 60 * 1000, retries: 3, retryDelay: 1000 }) {\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2V2ZW50LXNlcnZpY2UvZXZlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFLeEMsTUFBTSxPQUFPLHdCQUF3QjtJQU1qQztRQUpRLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQXNELENBQUM7UUFDOUUsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztRQUM3RCx5QkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDLENBQUMsaURBQWlEO1FBRy9GLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRTlELDJCQUEyQjtRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQy9CLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQzFELCtFQUErRTtZQUMvRSxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hELE9BQU87WUFDWCxDQUFDO1lBRUQsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDWixJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsNEJBQTRCO2dCQUN0RSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLHVCQUF1QjtZQUNqRyxDQUFDO1lBRUQsdUNBQXVDO1lBQ3ZDLElBQUksU0FBUyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQzdFLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDdkMsT0FBTztZQUNYLENBQUM7WUFFRCxpQ0FBaUM7WUFDakMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLENBQUM7UUFDTCxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPLENBQUksSUFBWSxFQUFFLE9BQVc7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUksSUFBWTtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxPQUFPLEVBQW1DLENBQUMsQ0FBQztRQUNqRixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXLENBQUMsSUFBWTtRQUMzQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxzQkFBc0IsQ0FDL0IsSUFBWSxFQUNaLE9BQVcsRUFDWCxVQUFvRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7UUFFN0gsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFMUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFlLEVBQWMsRUFBRTtZQUNuRCxPQUFPLElBQUksT0FBTyxDQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUN0QyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBRTdDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO2dCQUV2RCxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNaLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQzt3QkFDdEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7d0JBQ3ZDLElBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQzs0QkFDNUIsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sTUFBTSxDQUFDLENBQUM7NEJBQ2xGLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0I7d0JBQzFELENBQUM7NkJBQU0sQ0FBQzs0QkFDSixNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsNENBQTRDLElBQUksV0FBVyxPQUFPLENBQUMsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDO3dCQUM5RyxDQUFDO29CQUNMLENBQUM7Z0JBQ0wsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQztRQUVGLE9BQU8sY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNJLGdCQUFnQixDQUFDLFNBQWlCLEVBQUUsUUFBYTtRQUNwRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7WUFDekQsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXJCLHdCQUF3QjtRQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUUzQix5REFBeUQ7UUFDekQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUU7WUFDaEQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsOEJBQThCLFNBQVMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckcsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTdCLGtDQUFrQztRQUNsQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEMsQ0FBQzs4R0E3SFEsd0JBQXdCO2tIQUF4Qix3QkFBd0IsY0FGckIsTUFBTTs7MkZBRVQsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQRGF0YUdlbmVyYXRvciB9IGZyb20gJy4uL2RhdGEvZGF0YS1nZW5lcmF0b3InO1xuaW1wb3J0IHsgaXNVbmRlZmluZWQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFYUEJyb2FkY2FzdEV2ZW50U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBjaGFubmVsOiBCcm9hZGNhc3RDaGFubmVsO1xuICAgIHByaXZhdGUgZXZlbnRTdWJqZWN0cyA9IG5ldyBNYXA8c3RyaW5nLCBTdWJqZWN0PHsgZGF0YTogYW55LCByZXF1ZXN0SWQ/OiBzdHJpbmcgfT4+KCk7XG4gICAgcHJpdmF0ZSBwZW5kaW5nUmVxdWVzdHMgPSBuZXcgTWFwPHN0cmluZywgKHJlc3BvbnNlOiBhbnkpID0+IHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBtdWx0aVRhYkV2ZW50SGlzdG9yeSA9IG5ldyBTZXQ8c3RyaW5nPigpOyAvLyBQcmV2ZW50IGR1cGxpY2F0ZSBwcm9jZXNzaW5nIG9mIHRoZSBzYW1lIGV2ZW50XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jaGFubmVsID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoJ3BsYXRmb3JtX2dsb2JhbF9ldmVudHMnKTtcblxuICAgICAgICAvLyBIYW5kbGUgaW5jb21pbmcgbWVzc2FnZXNcbiAgICAgICAgdGhpcy5jaGFubmVsLm9ubWVzc2FnZSA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyB0eXBlLCBwYXlsb2FkLCByZXF1ZXN0SWQsIHJlc3BvbnNlIH0gPSBldmVudC5kYXRhO1xuICAgICAgICAgICAgLy8gUHJldmVudCBwcm9jZXNzaW5nIHRoZSBzYW1lIGV2ZW50IG11bHRpcGxlIHRpbWVzIChtdWx0aS10YWIgc3luY2hyb25pemF0aW9uKVxuICAgICAgICAgICAgaWYgKHJlcXVlc3RJZCAmJiB0aGlzLm11bHRpVGFiRXZlbnRIaXN0b3J5LmhhcyhyZXF1ZXN0SWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVxdWVzdElkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tdWx0aVRhYkV2ZW50SGlzdG9yeS5hZGQocmVxdWVzdElkKTsgLy8gU3RvcmUgcHJvY2Vzc2VkIHJlcXVlc3RJZFxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5tdWx0aVRhYkV2ZW50SGlzdG9yeS5kZWxldGUocmVxdWVzdElkKSwgMTAwMDApOyAvLyBDbGVhbnVwIGFmdGVyIDEwIHNlY1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBIYW5kbGUgcmVzcG9uc2VzIHRvIHBlbmRpbmcgcmVxdWVzdHNcbiAgICAgICAgICAgIGlmIChyZXF1ZXN0SWQgJiYgIWlzVW5kZWZpbmVkKHJlc3BvbnNlKSAmJiB0aGlzLnBlbmRpbmdSZXF1ZXN0cy5oYXMocmVxdWVzdElkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZ1JlcXVlc3RzLmdldChyZXF1ZXN0SWQpIShyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuZGVsZXRlKHJlcXVlc3RJZCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBIYW5kbGUgbm9ybWFsIGJyb2FkY2FzdCBldmVudHNcbiAgICAgICAgICAgIGlmICh0eXBlICYmIHRoaXMuZXZlbnRTdWJqZWN0cy5oYXModHlwZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV2ZW50U3ViamVjdHMuZ2V0KHR5cGUpIS5uZXh0KHsgZGF0YTogcGF5bG9hZCwgcmVxdWVzdElkIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2ggYW4gZXZlbnQgd2l0aG91dCBleHBlY3RpbmcgYSByZXNwb25zZVxuICAgICAqL1xuICAgIHB1YmxpYyBwdWJsaXNoPFQ+KHR5cGU6IHN0cmluZywgcGF5bG9hZD86IFQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFubmVsLnBvc3RNZXNzYWdlKHsgdHlwZSwgcGF5bG9hZCB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdWJzY3JpYmUgdG8gYW4gZXZlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgbGlzdGVuPFQ+KHR5cGU6IHN0cmluZyk6IE9ic2VydmFibGU8eyBkYXRhOiBULCByZXF1ZXN0SWQ/OiBzdHJpbmcgfT4ge1xuICAgICAgICBpZiAoIXRoaXMuZXZlbnRTdWJqZWN0cy5oYXModHlwZSkpIHtcbiAgICAgICAgICAgIHRoaXMuZXZlbnRTdWJqZWN0cy5zZXQodHlwZSwgbmV3IFN1YmplY3Q8eyBkYXRhOiBULCByZXF1ZXN0SWQ/OiBzdHJpbmcgfT4oKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRTdWJqZWN0cy5nZXQodHlwZSkhLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVuc3Vic2NyaWJlIGZyb20gYW4gZXZlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgdW5zdWJzY3JpYmUodHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmV2ZW50U3ViamVjdHMuaGFzKHR5cGUpKSB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50U3ViamVjdHMuZ2V0KHR5cGUpIS5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgdGhpcy5ldmVudFN1YmplY3RzLmRlbGV0ZSh0eXBlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlbmQgYSBtZXNzYWdlIGFuZCB3YWl0IGZvciBhIHJlc3BvbnNlIHdpdGggcmV0cnkgbG9naWNcbiAgICAgKi9cbiAgICBwdWJsaWMgYXN5bmMgc2VuZEFuZFdhaXRGb3JSZXNwb25zZTxULCBSPihcbiAgICAgICAgdHlwZTogc3RyaW5nLFxuICAgICAgICBwYXlsb2FkPzogVCxcbiAgICAgICAgb3B0aW9uczogeyB0aW1lb3V0OiBudW1iZXI7IHJldHJpZXM6IG51bWJlcjsgcmV0cnlEZWxheTogbnVtYmVyIH0gPSB7IHRpbWVvdXQ6IDYwICogNjAgKiAxMDAwLCByZXRyaWVzOiAzLCByZXRyeURlbGF5OiAxMDAwIH1cbiAgICApOiBQcm9taXNlPFI+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdElkID0gQVhQRGF0YUdlbmVyYXRvci51dWlkKCk7XG5cbiAgICAgICAgY29uc3QgYXR0ZW1wdFJlcXVlc3QgPSAoYXR0ZW1wdDogbnVtYmVyKTogUHJvbWlzZTxSPiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8Uj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZ1JlcXVlc3RzLnNldChyZXF1ZXN0SWQsIHJlc29sdmUpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFubmVsLnBvc3RNZXNzYWdlKHsgdHlwZSwgcGF5bG9hZCwgcmVxdWVzdElkIH0pO1xuXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnBlbmRpbmdSZXF1ZXN0cy5oYXMocmVxdWVzdElkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuZGVsZXRlKHJlcXVlc3RJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ZW1wdCA8IG9wdGlvbnMucmV0cmllcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgUmV0cnlpbmcgcmVxdWVzdCAnJHt0eXBlfScgKCR7YXR0ZW1wdCArIDF9LyR7b3B0aW9ucy5yZXRyaWVzfSkuLi5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGF0dGVtcHRSZXF1ZXN0KGF0dGVtcHQgKyAxKSk7IC8vIFJldHJ5IHJlcXVlc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihgVGltZW91dDogTm8gcmVzcG9uc2UgcmVjZWl2ZWQgZm9yIGV2ZW50ICcke3R5cGV9JyBhZnRlciAke29wdGlvbnMucmV0cmllc30gYXR0ZW1wdHMuYCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgb3B0aW9ucy50aW1lb3V0KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBhdHRlbXB0UmVxdWVzdCgwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNwb25kIHRvIGEgcmVxdWVzdFxuICAgICAqL1xuICAgIHB1YmxpYyByZXNwb25kVG9SZXF1ZXN0KHJlcXVlc3RJZDogc3RyaW5nLCByZXNwb25zZTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghcmVxdWVzdElkKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0ludmFsaWQgcmVxdWVzdElkLiBDYW5ub3Qgc2VuZCByZXNwb25zZS4nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoYW5uZWwucG9zdE1lc3NhZ2UoeyByZXF1ZXN0SWQsIHJlc3BvbnNlIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFudXAgd2hlbiB0aGUgc2VydmljZSBpcyBkZXN0cm95ZWRcbiAgICAgKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFubmVsLmNsb3NlKCk7XG5cbiAgICAgICAgLy8gQ29tcGxldGUgYWxsIHN1YmplY3RzXG4gICAgICAgIHRoaXMuZXZlbnRTdWJqZWN0cy5mb3JFYWNoKChzdWJqZWN0KSA9PiBzdWJqZWN0LmNvbXBsZXRlKCkpO1xuICAgICAgICB0aGlzLmV2ZW50U3ViamVjdHMuY2xlYXIoKTtcblxuICAgICAgICAvLyBSZWplY3QgYWxsIHBlbmRpbmcgcmVxdWVzdHMgdG8gYXZvaWQgZGFuZ2xpbmcgcHJvbWlzZXNcbiAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuZm9yRWFjaCgocmVzb2x2ZSwgcmVxdWVzdElkKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKFByb21pc2UucmVqZWN0KG5ldyBFcnJvcihgU2VydmljZSBkZXN0cm95ZWQuIFJlcXVlc3QgJHtyZXF1ZXN0SWR9IHdhcyBub3QgY29tcGxldGVkLmApKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnBlbmRpbmdSZXF1ZXN0cy5jbGVhcigpO1xuXG4gICAgICAgIC8vIENsZWFudXAgbXVsdGktdGFiIGV2ZW50IGhpc3RvcnlcbiAgICAgICAgdGhpcy5tdWx0aVRhYkV2ZW50SGlzdG9yeS5jbGVhcigpO1xuICAgIH1cbn1cbiJdfQ==","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 switch (conditionType) {\n case 'equal':\n result = isEqual(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Equal check result:', result);\n }\n break;\n case 'notEqual':\n result = !isEqual(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Not equal check result:', result);\n }\n break;\n case 'greaterThan':\n result = gt(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Greater than check result:', result);\n }\n break;\n case 'lessThan':\n result = lt(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Less than check result:', result);\n }\n break;\n case 'greaterThanOrEqual':\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 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 return 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb25kaXRpb25lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3V0aWxzL2RhdGEtY29uZGl0aW9uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBILE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDLGtEQUFrRDtBQUVoRixTQUFTLGNBQWMsQ0FBQyxJQUFTLEVBQUUsU0FBYztJQUMvQyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3JFLE1BQU0sU0FBUyxHQUFHLE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDbkYsTUFBTSxjQUFjLEdBQUcsT0FBTyxTQUFTLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUU3RyxvQ0FBb0M7SUFDcEMsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0QyxPQUFPLENB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QUFNO1FBQ2IsS0FBSztLQUNOLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhEYXRhU291cmNlQ2FsbGJhY2tSZXN1bHQsXG4gIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbixcbiAgQVhEYXRhU291cmNlTG9hZENhbGxiYWNrLFxuICBBWERhdGFTb3VyY2VRdWVyeSxcbiAgQVhEYXRhU291cmNlU29ydE9wdGlvbixcbn0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IGVuZHNXaXRoLCBnZXQsIGd0LCBndGUsIGluY2x1ZGVzLCBpc0VtcHR5LCBpc0VxdWFsLCBpc05pbCwgbHQsIGx0ZSwgb3JkZXJCeSwgc3RhcnRzV2l0aCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmNvbnN0IGxvZ2dpbmdFbmFibGVkID0gZmFsc2U7IC8vIFNldCB0byB0cnVlIHRvIGVuYWJsZSBsb2dnaW5nLCBmYWxzZSB0byBkaXNhYmxlXG5cbmZ1bmN0aW9uIGFwcGx5Q29uZGl0aW9uKGl0ZW06IGFueSwgY29uZGl0aW9uOiBhbnkpIHtcbiAgY29uc3QgcmF3VmFsdWUgPSBjb25kaXRpb24uZmllbGQgPyBnZXQoaXRlbSwgY29uZGl0aW9uLmZpZWxkKSA6IG51bGw7XG4gIGNvbnN0IGl0ZW1WYWx1ZSA9IHR5cGVvZiByYXdWYWx1ZSA9PT0gJ3N0cmluZycgPyByYXdWYWx1ZS50b0xvd2VyQ2FzZSgpIDogcmF3VmFsdWU7XG4gIGNvbnN0IGNvbmRpdGlvblZhbHVlID0gdHlwZW9mIGNvbmRpdGlvbi52YWx1ZSA9PT0gJ3N0cmluZycgPyBjb25kaXRpb24udmFsdWUudG9Mb3dlckNhc2UoKSA6IGNvbmRpdGlvbi52YWx1ZTtcblxuICAvLyBDb25kaXRpb25hbCBMb2dnaW5nIGZvciBkZWJ1Z2dpbmdcbiAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgY29uc29sZS5sb2coJ0NvbmRpdGlvbjonLCBjb25kaXRpb24pO1xuICAgIGNvbnNvbGUubG9nKCdJdGVtIFZhbHVlOicsIGl0ZW1WYWx1ZSk7XG4gICAgY29uc29sZS5sb2coJ0NvbmRpdGlvbiBWYWx1ZTonLCBjb25kaXRpb25WYWx1ZSk7XG4gIH1cblxuICBsZXQgcmVzdWx0OiBib29sZWFuO1xuICBjb25zdCB2YWx1ZVRvQ29tcGFyZSA9IGlzTmlsKGNvbmRpdGlvbi5maWVsZCkgfHwgY29uZGl0aW9uLmZpZWxkID09PSAnJyA/IGNvbmRpdGlvblZhbHVlIDogaXRlbVZhbHVlO1xuICBjb25zdCBjb25kaXRpb25UeXBlID0gY29uZGl0aW9uPy5vcGVyYXRvcj8udHlwZTtcbiAgaWYgKCFjb25kaXRpb25UeXBlKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzd2l0Y2ggKGNvbmRpdGlvblR5cGUpIHtcbiAgICBjYXNlICdlcXVhbCc6XG4gICAgICByZXN1bHQgPSBpc0VxdWFsKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0VxdWFsIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbm90RXF1YWwnOlxuICAgICAgcmVzdWx0ID0gIWlzRXF1YWwodmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnTm90IGVxdWFsIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZ3JlYXRlclRoYW4nOlxuICAgICAgcmVzdWx0ID0gZ3QodmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnR3JlYXRlciB0aGFuIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbGVzc1RoYW4nOlxuICAgICAgcmVzdWx0ID0gbHQodmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnTGVzcyB0aGFuIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZ3JlYXRlclRoYW5PckVxdWFsJzpcbiAgICAgIHJlc3VsdCA9IGd0ZSh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdHcmVhdGVyIHRoYW4gb3IgZXF1YWwgY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdsZXNzVGhhbk9yRXF1YWwnOlxuICAgICAgcmVzdWx0ID0gbHRlKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0xlc3MgdGhhbiBvciBlcXVhbCBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2NvbnRhaW5zJzpcbiAgICAgIGlmICh0eXBlb2YgdmFsdWVUb0NvbXBhcmUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJlc3VsdCA9IGluY2x1ZGVzKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVUb0NvbXBhcmUpKSB7XG4gICAgICAgIHJlc3VsdCA9IGluY2x1ZGVzKFxuICAgICAgICAgIHZhbHVlVG9Db21wYXJlLm1hcCgodmFsKSA9PiB2YWwudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKSxcbiAgICAgICAgICBjb25kaXRpb25WYWx1ZSxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdDb250YWlucyBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2luJzpcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvbmRpdGlvblZhbHVlKSkge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlVG9Db21wYXJlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJlc3VsdCA9IGNvbmRpdGlvblZhbHVlLnNvbWUodmFsID0+IFxuICAgICAgICAgICAgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgPyB2YWwudG9Mb3dlckNhc2UoKSA9PT0gdmFsdWVUb0NvbXBhcmUgOiB2YWwgPT09IHZhbHVlVG9Db21wYXJlXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlVG9Db21wYXJlKSkge1xuICAgICAgICAgIHJlc3VsdCA9IHZhbHVlVG9Db21wYXJlLnNvbWUodmFsID0+IFxuICAgICAgICAgICAgY29uZGl0aW9uVmFsdWUuc29tZShjb25kVmFsID0+IFxuICAgICAgICAgICAgICB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgY29uZFZhbCA9PT0gJ3N0cmluZycgXG4gICAgICAgICAgICAgICAgPyB2YWwudG9Mb3dlckNhc2UoKSA9PT0gY29uZFZhbC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgOiB2YWwgPT09IGNvbmRWYWxcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IGNvbmRpdGlvblZhbHVlLmluY2x1ZGVzKHZhbHVlVG9Db21wYXJlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0luIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbm90Q29udGFpbnMnOlxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZVRvQ29tcGFyZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVzdWx0ID0gIWluY2x1ZGVzKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVUb0NvbXBhcmUpKSB7XG4gICAgICAgIHJlc3VsdCA9ICFpbmNsdWRlcyhcbiAgICAgICAgICB2YWx1ZVRvQ29tcGFyZS5tYXAoKHZhbCkgPT4gdmFsLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICAgY29uZGl0aW9uVmFsdWUsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnTm90IGNvbnRhaW5zIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnc3RhcnRzV2l0aCc6XG4gICAgICByZXN1bHQgPSB0eXBlb2YgdmFsdWVUb0NvbXBhcmUgPT09ICdzdHJpbmcnICYmIHN0YXJ0c1dpdGgodmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnU3RhcnRzIHdpdGggY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdlbmRzV2l0aCc6XG4gICAgICByZXN1bHQgPSB0eXBlb2YgdmFsdWVUb0NvbXBhcmUgPT09ICdzdHJpbmcnICYmIGVuZHNXaXRoKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0VuZHMgd2l0aCBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2lzRW1wdHknOlxuICAgICAgcmVzdWx0ID0gaXNFbXB0eSh2YWx1ZVRvQ29tcGFyZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0lzIGVtcHR5IGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnaXNOdWxsJzpcbiAgICAgIHJlc3VsdCA9IGlzTmlsKHZhbHVlVG9Db21wYXJlKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnSXMgbnVsbCBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2lzTm90RW1wdHknOlxuICAgICAgcmVzdWx0ID0gIWlzRW1wdHkodmFsdWVUb0NvbXBhcmUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdJcyBub3QgZW1wdHkgY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdiZXR3ZWVuJzpcbiAgICAgIHJlc3VsdCA9ICFpc05pbCh2YWx1ZVRvQ29tcGFyZSkgJiYgdmFsdWVUb0NvbXBhcmUgPj0gY29uZGl0aW9uLnZhbHVlLmZyb20gJiYgdmFsdWVUb0NvbXBhcmUgPD0gY29uZGl0aW9uLnZhbHVlLnRvO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdCZXR3ZWVuIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJlc3VsdCA9IHRydWU7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0RlZmF1bHQgY2FzZSwgcmV0dXJuaW5nIHRydWUnKTtcbiAgICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseUZpbHRlckFycmF5KFxuICBkYXRhQXJyYXk6IGFueVtdLFxuICBmaWx0ZXJzPzogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uW10sXG4gIGxvZ2ljOiAnYW5kJyB8ICdvcicgPSAnYW5kJyxcbik6IGFueVtdIHtcbiAgaWYgKGZpbHRlcnMgJiYgZmlsdGVycy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZGF0YUFycmF5LmZpbHRlcigoaXRlbSkgPT4ge1xuICAgICAgaWYgKGxvZ2ljID09PSAnYW5kJykge1xuICAgICAgICByZXR1cm4gZmlsdGVycy5ldmVyeSgoZikgPT4ge1xuICAgICAgICAgIHJldHVybiBmLmZpbHRlcnMgPyBhcHBseUZpbHRlckFycmF5KFtpdGVtXSwgZi5maWx0ZXJzLCBmLmxvZ2ljKS5sZW5ndGggPiAwIDogYXBwbHlDb25kaXRpb24oaXRlbSwgZik7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gbG9naWMgPT09ICdvcidcbiAgICAgICAgcmV0dXJuIGZpbHRlcnMuc29tZSgoZikgPT4ge1xuICAgICAgICAgIHJldHVybiBmLmZpbHRlcnMgPyBhcHBseUZpbHRlckFycmF5KFtpdGVtXSwgZi5maWx0ZXJzLCBmLmxvZ2ljKS5sZW5ndGggPiAwIDogYXBwbHlDb25kaXRpb24oaXRlbSwgZik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBkYXRhQXJyYXk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5U29ydEFycmF5KGRhdGFBcnJheTogYW55LCBzb3J0czogQVhEYXRhU291cmNlU29ydE9wdGlvbltdKSB7XG4gIGlmIChzb3J0cyAmJiBzb3J0cy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3Qgc29ydEZpZWxkcyA9IHNvcnRzLm1hcCgocykgPT4gcy5maWVsZCk7XG4gICAgY29uc3Qgc29ydE9yZGVycyA9IHNvcnRzLm1hcCgocykgPT4gcy5kaXIpO1xuICAgIHJldHVybiBvcmRlckJ5KGRhdGFBcnJheSwgc29ydEZpZWxkcywgc29ydE9yZGVycyk7XG4gIH0gZWxzZSByZXR1cm4gZGF0YUFycmF5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlQYWdpbmF0aW9uPFQ+KGRhdGFBcnJheTogVFtdLCBza2lwOiBudW1iZXIsIHRha2U6IG51bWJlcik6IFRbXSB7XG4gIHJldHVybiBkYXRhQXJyYXkuc2xpY2Uoc2tpcCwgc2tpcCArIHRha2UpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBwbHlRdWVyeUFycmF5PFQ+KFxuICBkYXRhQXJyYXk6IFRbXSxcbiAgcXVlcnk6IEFYRGF0YVNvdXJjZVF1ZXJ5LFxuKTogUHJvbWlzZTxBWERhdGFTb3VyY2VDYWxsYmFja1Jlc3VsdDxUPj4ge1xuICBsZXQgcmVzdWx0ID0gWy4uLmRhdGFBcnJheV07XG5cbiAgLy8gQXBwbHkgZmlsdGVyaW5nXG4gIGlmIChxdWVyeS5maWx0ZXIpIHtcbiAgICByZXN1bHQgPSBhcHBseUZpbHRlckFycmF5KHJlc3VsdCwgW3F1ZXJ5LmZpbHRlcl0sIHF1ZXJ5LmZpbHRlci5sb2dpYyA/PyAnYW5kJyk7XG4gIH1cblxuICAvLyBTdG9yZSB0b3RhbCBjb3VudCBiZWZvcmUgcGFnaW5hdGlvblxuICBjb25zdCB0b3RhbCA9IHJlc3VsdC5sZW5ndGg7XG5cbiAgLy8gQXBwbHkgc29ydGluZ1xuICBpZiAocXVlcnkuc29ydCAmJiBxdWVyeS5zb3J0Lmxlbmd0aCA+IDApIHtcbiAgICByZXN1bHQgPSBhcHBseVNvcnRBcnJheShyZXN1bHQsIHF1ZXJ5LnNvcnQpO1xuICB9XG5cbiAgLy8gQXBwbHkgcGFnaW5hdGlvblxuICByZXN1bHQgPSBhcHBseVBhZ2luYXRpb24ocmVzdWx0LCBxdWVyeS5za2lwLCBxdWVyeS50YWtlKTtcblxuICByZXR1cm4ge1xuICAgIGl0ZW1zOiByZXN1bHQsXG4gICAgdG90YWwsXG4gIH07XG59XG4iXX0=","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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi91dGlscy9oaWdobGlnaHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzQzs7R0FFRztBQUlILE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsZ0JBQWdCLENBQUM7SUFFakI7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUMsYUFBcUIsRUFBRSxXQUFtQjtRQUNsRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBc0IsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUNWLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLHNCQUFzQixDQUFDLENBQUM7UUFDeEYsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2hELFlBQVksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsRCxVQUFVLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQztZQUV0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGNBQWMsQ0FBQyxPQUFvQjtRQUN6QyxNQUFNLFdBQVcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLG9CQUFvQixDQUFDLE9BQWEsRUFBRSxXQUFtQjtRQUM3RCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsRCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDMUIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDckMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7Z0JBQzNDLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO29CQUNuQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO29CQUM3RSxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwRCxhQUFhLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQztvQkFFMUMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixFQUFFLENBQUM7b0JBQ25ELEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUVyRixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM3QixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUMvQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQy9DLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxxQkFBcUIsQ0FBQyxXQUFtQixFQUFFLFdBQW1CO1FBQ3BFLElBQUksS0FBSyxHQUFhLEVBQUUsQ0FBQztRQUN6QixJQUFJLEtBQUssQ0FBQztRQUNWLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLFVBQVUsR0FBRyxrQ0FBa0MsQ0FBQztRQUVwRCxPQUFPLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN4RCxJQUFJLEtBQUssQ0FBQyxLQUFLLEdBQUcsU0FBUyxFQUFFLENBQUM7Z0JBQzVCLFVBQVUsSUFBSSxTQUFTLFdBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQzVFLENBQUM7WUFDRCxVQUFVLElBQUksOEJBQThCLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzlELFNBQVMsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLFNBQVMsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkMsVUFBVSxJQUFJLFNBQVMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQy9ELENBQUM7UUFFRCxVQUFVLElBQUksU0FBUyxDQUFDO1FBRXhCLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7OEdBN0dVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogU2VydmljZSBmb3IgYXBwbHlpbmcgYW5kIHJlc2V0dGluZyB0ZXh0IGhpZ2hsaWdodGluZyB3aXRoaW4gc3BlY2lmaWVkIEhUTUwgZWxlbWVudHMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWEhpZ2hsaWdodFNlcnZpY2Uge1xuICBwcml2YXRlIHF1ZXJ5U2VsZWN0b3I6IHN0cmluZyB8IG51bGw7XG4gIHByaXZhdGUgc2VhcmNoVmFsdWU6IHN0cmluZyB8IG51bGw7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICAvKipcbiAgICogSGlnaGxpZ2h0cyBhbGwgb2NjdXJyZW5jZXMgb2YgYSBzZWFyY2ggdmFsdWUgd2l0aGluIHRoZSBlbGVtZW50cyBtYXRjaGluZyB0aGUgcHJvdmlkZWQgcXVlcnkgc2VsZWN0b3IuXG4gICAqXG4gICAqIEBwYXJhbSBxdWVyeVNlbGVjdG9yIC0gQ1NTIHNlbGVjdG9yIHRvIGlkZW50aWZ5IHRhcmdldCBlbGVtZW50cy5cbiAgICogQHBhcmFtIHNlYXJjaFZhbHVlIC0gVGV4dCB0byBzZWFyY2ggYW5kIGhpZ2hsaWdodC5cbiAgICovXG4gIGhpZ2hsaWdodChxdWVyeVNlbGVjdG9yOiBzdHJpbmcsIHNlYXJjaFZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyKCk7XG4gICAgaWYgKCFxdWVyeVNlbGVjdG9yIHx8ICFzZWFyY2hWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IgPSBxdWVyeVNlbGVjdG9yO1xuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZTtcbiAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwocXVlcnlTZWxlY3Rvcik7XG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgdGhpcy5hcHBseUhpZ2hsaWdodChlbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgYWxsIGhpZ2hsaWdodGVkIHRleHQgd2l0aGluIHRoZSBlbGVtZW50cyBtYXRjaGluZyB0aGUgcHJldmlvdXNseSB1c2VkIHF1ZXJ5IHNlbGVjdG9yLlxuICAgKi9cbiAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgJHt0aGlzLnF1ZXJ5U2VsZWN0b3J9ICAuYXgtaGlnaGxpZ2h0LXRleHRgKTtcbiAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICBsZXQgY29tYmluZWRUZXh0ID0gJyc7XG4gICAgICBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3NwYW4nKS5mb3JFYWNoKChzcGFuKSA9PiB7XG4gICAgICAgIGNvbWJpbmVkVGV4dCArPSBzcGFuLnRleHRDb250ZW50O1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IG1lcmdlZFNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICBtZXJnZWRTcGFuLnRleHRDb250ZW50ID0gY29tYmluZWRUZXh0O1xuXG4gICAgICBlbGVtZW50Py5wYXJlbnROb2RlPy5yZXBsYWNlQ2hpbGQobWVyZ2VkU3BhbiwgZWxlbWVudCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyBoaWdobGlnaHRpbmcgdG8gYSBzcGVjaWZpYyBlbGVtZW50IGJ5IG1hdGNoaW5nIHRleHQgYWdhaW5zdCB0aGUgc2VhcmNoIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gZWxlbWVudCAtIFRoZSBIVE1MIGVsZW1lbnQgdG8gYXBwbHkgaGlnaGxpZ2h0cyB0by5cbiAgICovXG4gIHByaXZhdGUgYXBwbHlIaWdobGlnaHQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzZWFyY2hSZWdleCA9IG5ldyBSZWdFeHAoYCgke3RoaXMuc2VhcmNoVmFsdWV9KWAsICdnaScpO1xuICAgIHRoaXMucmVjdXJzaXZlbHlIaWdobGlnaHQoZWxlbWVudCwgc2VhcmNoUmVnZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY3Vyc2l2ZWx5IGFwcGxpZXMgaGlnaGxpZ2h0aW5nIHRvIHRleHQgbm9kZXMgd2l0aGluIGFuIGVsZW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBlbGVtZW50IC0gVGhlIGN1cnJlbnQgbm9kZSBiZWluZyBwcm9jZXNzZWQuXG4gICAqIEBwYXJhbSBzZWFyY2hSZWdleCAtIFJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgbWF0Y2hpbmcgdGV4dCB0byBoaWdobGlnaHQuXG4gICAqL1xuICBwcml2YXRlIHJlY3Vyc2l2ZWx5SGlnaGxpZ2h0KGVsZW1lbnQ6IE5vZGUsIHNlYXJjaFJlZ2V4OiBSZWdFeHApOiB2b2lkIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gQXJyYXkuZnJvbShlbGVtZW50LmNoaWxkTm9kZXMpO1xuXG4gICAgY2hpbGROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgY29uc3QgdGV4dENvbnRlbnQgPSBub2RlLnRleHRDb250ZW50IHx8ICcnO1xuICAgICAgICBpZiAodGV4dENvbnRlbnQubWF0Y2goc2VhcmNoUmVnZXgpKSB7XG4gICAgICAgICAgY29uc3QgaGlnaGxpZ2h0ZWRIVE1MID0gdGhpcy5jcmVhdGVIaWdobGlnaHRlZEhUTUwodGV4dENvbnRlbnQsIHNlYXJjaFJlZ2V4KTtcbiAgICAgICAgICBjb25zdCB0ZW1wQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgdGVtcENvbnRhaW5lci5pbm5lckhUTUwgPSBoaWdobGlnaHRlZEhUTUw7XG5cbiAgICAgICAgICBjb25zdCBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgICBBcnJheS5mcm9tKHRlbXBDb250YWluZXIuY2hpbGROb2RlcykuZm9yRWFjaCgoY2hpbGQpID0+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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"}
|