@acorex/platform 20.3.0-next.7 → 20.3.0-next.9
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 +0 -2
- package/core/index.d.ts +386 -47
- package/fesm2022/acorex-platform-common.mjs +5 -10
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +427 -125
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +422 -26
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +1843 -111
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +19 -12
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +463 -510
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +23 -15
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-BXbkGGei.mjs → acorex-platform-themes-default-entity-master-create-view.component-Ct-ri59W.mjs} +3 -3
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Ct-ri59W.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-gQIK6PIx.mjs → acorex-platform-themes-default-entity-master-list-view.component-7BB4LdjK.mjs} +9 -9
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-7BB4LdjK.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BDJR088o.mjs +101 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BDJR088o.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +8 -8
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-KpZWpnOJ.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BgEh06Tn.mjs} +21 -11
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BgEh06Tn.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-settings.provider-CXiRmniv.mjs → acorex-platform-themes-shared-settings.provider-CLUKU4y0.mjs} +2 -2
- package/fesm2022/acorex-platform-themes-shared-settings.provider-CLUKU4y0.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-BvOiVCgt.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-AeOQxjbS.mjs} +20 -5
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-AeOQxjbS.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-BW0rfkjk.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-DEVzRd6-.mjs} +20 -5
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DEVzRd6-.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +205 -38
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-C-4bWr9G.mjs → acorex-platform-widgets-checkbox-widget-view.component-KYCQ2qTJ.mjs} +51 -35
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-KYCQ2qTJ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-file-list-popup.component-rW2RD35f.mjs → acorex-platform-widgets-file-list-popup.component-Cmtq2bBV.mjs} +3 -3
- package/fesm2022/acorex-platform-widgets-file-list-popup.component-Cmtq2bBV.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-DNvnQ4Mc.mjs → acorex-platform-widgets-page-widget-designer.component-D8ivmxzT.mjs} +2 -2
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-D8ivmxzT.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-CPVRbE8B.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-CMqq_iOj.mjs} +8 -8
- package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-CMqq_iOj.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets.mjs +4590 -5073
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/layout/builder/index.d.ts +62 -8
- package/layout/components/index.d.ts +780 -54
- package/layout/designer/index.d.ts +4 -2
- package/layout/entity/index.d.ts +53 -10
- package/package.json +9 -9
- package/widgets/index.d.ts +1441 -433
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-BXbkGGei.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-gQIK6PIx.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Bp1JLsj1.mjs +0 -101
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Bp1JLsj1.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-KpZWpnOJ.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-settings.provider-CXiRmniv.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BvOiVCgt.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BW0rfkjk.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-C-4bWr9G.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-file-list-popup.component-rW2RD35f.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DNvnQ4Mc.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-CPVRbE8B.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-layout-builder.mjs","sources":["../tmp-esm2022/layout/builder/lib/builder/widget-status.types.js","../tmp-esm2022/layout/builder/lib/builder/builder.service.js","../tmp-esm2022/layout/builder/lib/builder/context-store.service.js","../tmp-esm2022/layout/builder/lib/builder/widget-catalog.js","../tmp-esm2022/layout/builder/lib/builder/widget.types.js","../tmp-esm2022/layout/builder/lib/builder/widget-base.component.js","../tmp-esm2022/layout/builder/lib/builder/base-widget/box-model-widget.component.js","../tmp-esm2022/layout/builder/lib/builder/base-widget/block-base-widget.component.js","../tmp-esm2022/layout/builder/lib/builder/base-widget/flex-base-widget.component.js","../tmp-esm2022/layout/builder/lib/builder/base-widget/inline-base-widget.component.js","../tmp-esm2022/layout/builder/lib/builder/base-widget/flex-item-base-widget.component.js","../tmp-esm2022/layout/builder/lib/builder/base-widget/grid-base-widget.component.js","../tmp-esm2022/layout/builder/lib/builder/base-widget/grid-item-base-widget.component.js","../tmp-esm2022/layout/builder/lib/builder/widget-registery.service.js","../tmp-esm2022/layout/builder/lib/builder/widget-column-renderer.js","../tmp-esm2022/layout/builder/lib/builder/widget-container.component.js","../tmp-esm2022/layout/builder/lib/builder/widget-placeholder.component.js","../tmp-esm2022/layout/builder/lib/builder/widget-renderer.directive.js","../tmp-esm2022/layout/builder/lib/builder/builder.module.js","../tmp-esm2022/layout/builder/lib/builder/helper/property-editor.helper.js","../tmp-esm2022/layout/builder/lib/builder/widget-categories.js","../tmp-esm2022/layout/builder/lib/builder/widget-group.types.js","../tmp-esm2022/layout/builder/acorex-platform-layout-builder.js"],"sourcesContent":["export var AXPPageStatus;\n(function (AXPPageStatus) {\n // Idle statuses\n AXPPageStatus[\"Idle\"] = \"idle\";\n // Rendering statuses\n AXPPageStatus[\"Rendering\"] = \"rendering\";\n AXPPageStatus[\"Rendered\"] = \"rendered\";\n // Processing statuses\n AXPPageStatus[\"Processing\"] = \"processing\";\n // Submission statuses\n AXPPageStatus[\"Submitting\"] = \"submitting\";\n AXPPageStatus[\"Submitted\"] = \"submitted\";\n // Validation statuses\n AXPPageStatus[\"Validating\"] = \"validating\";\n AXPPageStatus[\"Validated\"] = \"validated\";\n // Error handling\n AXPPageStatus[\"Error\"] = \"error\";\n})(AXPPageStatus || (AXPPageStatus = {}));\nexport var AXPWidgetStatus;\n(function (AXPWidgetStatus) {\n // Rendering statuses\n AXPWidgetStatus[\"Rendering\"] = \"rendering\";\n AXPWidgetStatus[\"Rendered\"] = \"rendered\";\n // Processing statuses\n AXPWidgetStatus[\"Processing\"] = \"processing\";\n // Error handling\n AXPWidgetStatus[\"Error\"] = \"error\";\n})(AXPWidgetStatus || (AXPWidgetStatus = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXN0YXR1cy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL3dpZGdldC1zdGF0dXMudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksYUFxQlg7QUFyQkQsV0FBWSxhQUFhO0lBQ3JCLGdCQUFnQjtJQUNoQiw4QkFBYSxDQUFBO0lBRWIscUJBQXFCO0lBQ3JCLHdDQUF1QixDQUFBO0lBQ3ZCLHNDQUFxQixDQUFBO0lBRXJCLHNCQUFzQjtJQUN0QiwwQ0FBeUIsQ0FBQTtJQUV6QixzQkFBc0I7SUFDdEIsMENBQXlCLENBQUE7SUFDekIsd0NBQXVCLENBQUE7SUFFdkIsc0JBQXNCO0lBQ3RCLDBDQUF5QixDQUFBO0lBQ3pCLHdDQUF1QixDQUFBO0lBRXZCLGlCQUFpQjtJQUNqQixnQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFyQlcsYUFBYSxLQUFiLGFBQWEsUUFxQnhCO0FBRUQsTUFBTSxDQUFOLElBQVksZUFVWDtBQVZELFdBQVksZUFBZTtJQUN2QixxQkFBcUI7SUFDckIsMENBQXVCLENBQUE7SUFDdkIsd0NBQXFCLENBQUE7SUFFckIsc0JBQXNCO0lBQ3RCLDRDQUF5QixDQUFBO0lBRXpCLGlCQUFpQjtJQUNqQixrQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFWVyxlQUFlLEtBQWYsZUFBZSxRQVUxQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEFYUFBhZ2VTdGF0dXMge1xuICAgIC8vIElkbGUgc3RhdHVzZXNcbiAgICBJZGxlID0gJ2lkbGUnLCAgICAgICAgICAgICAgICAgLy8gVGhlIHBhZ2UgaXMgaWRsZS5cblxuICAgIC8vIFJlbmRlcmluZyBzdGF0dXNlc1xuICAgIFJlbmRlcmluZyA9ICdyZW5kZXJpbmcnLCAgICAgICAvLyBUaGUgcGFnZSBpcyBiZWluZyByZW5kZXJlZC5cbiAgICBSZW5kZXJlZCA9ICdyZW5kZXJlZCcsICAgICAgICAgLy8gVGhlIHJlbmRlcmluZyBwcm9jZXNzIGlzIGNvbXBsZXRlLiBzaG91bGQgYmUgcmVuYW1lZCB0byBpZGxlXG5cbiAgICAvLyBQcm9jZXNzaW5nIHN0YXR1c2VzXG4gICAgUHJvY2Vzc2luZyA9ICdwcm9jZXNzaW5nJywgICAgIC8vIFRoZSBwYWdlIGlzIHBlcmZvcm1pbmcgYSB0YXNrIG9yIGludGVyYWN0aW9uLlxuXG4gICAgLy8gU3VibWlzc2lvbiBzdGF0dXNlc1xuICAgIFN1Ym1pdHRpbmcgPSAnc3VibWl0dGluZycsICAgLy8gVGhlIGZvcm0gaXMgYmVpbmcgc3VibWl0dGVkLlxuICAgIFN1Ym1pdHRlZCA9ICdzdWJtaXR0ZWQnLCAgICAgLy8gU3VibWlzc2lvbiBpcyBjb21wbGV0ZWQuXG5cbiAgICAvLyBWYWxpZGF0aW9uIHN0YXR1c2VzXG4gICAgVmFsaWRhdGluZyA9ICd2YWxpZGF0aW5nJywgICAgIC8vIFRoZSBmb3JtIGlzIGJlaW5nIHZhbGlkYXRlZC5cbiAgICBWYWxpZGF0ZWQgPSAndmFsaWRhdGVkJywgICAgICAgLy8gVmFsaWRhdGlvbiBpcyBjb21wbGV0ZWQuICBcblxuICAgIC8vIEVycm9yIGhhbmRsaW5nXG4gICAgRXJyb3IgPSAnZXJyb3InLFxufVxuXG5leHBvcnQgZW51bSBBWFBXaWRnZXRTdGF0dXMge1xuICAgIC8vIFJlbmRlcmluZyBzdGF0dXNlc1xuICAgIFJlbmRlcmluZyA9ICdyZW5kZXJpbmcnLCAgICAgICAvLyBUaGUgd2lkZ2V0IGlzIGJlaW5nIHJlbmRlcmVkLlxuICAgIFJlbmRlcmVkID0gJ3JlbmRlcmVkJywgICAgICAgICAvLyBUaGUgcmVuZGVyaW5nIHByb2Nlc3MgaXMgY29tcGxldGUuXG5cbiAgICAvLyBQcm9jZXNzaW5nIHN0YXR1c2VzXG4gICAgUHJvY2Vzc2luZyA9ICdwcm9jZXNzaW5nJywgICAgIC8vIFRoZSB3aWRnZXQgaXMgcGVyZm9ybWluZyBhIHRhc2sgb3IgaW50ZXJhY3Rpb24uXG5cbiAgICAvLyBFcnJvciBoYW5kbGluZ1xuICAgIEVycm9yID0gJ2Vycm9yJywgICAgICAgICAgICAgICAvLyBBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgYW55IHBoYXNlLlxufVxuIl19","import { computed, Injectable, signal } from '@angular/core';\nimport { set } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXPPageStatus, AXPWidgetStatus } from './widget-status.types';\nimport * as i0 from \"@angular/core\";\nexport class AXPLayoutElement {\n api() {\n return {};\n }\n}\nexport class AXPLayoutBuilderService {\n constructor() {\n this.variables$ = signal({}, ...(ngDevMode ? [{ debugName: \"variables$\" }] : []));\n this.functions$ = signal({}, ...(ngDevMode ? [{ debugName: \"functions$\" }] : []));\n this.onRefresh = new Subject();\n this.widgets = new Map();\n this.onWidgetRegistered = new Subject();\n this.status$ = signal(AXPPageStatus.Rendering, ...(ngDevMode ? [{ debugName: \"status$\" }] : []));\n this.status = this.status$.asReadonly();\n this.isBusy = computed(() => {\n return [AXPPageStatus.Processing, AXPPageStatus.Submitting, AXPPageStatus.Rendering].includes(this.status());\n }, ...(ngDevMode ? [{ debugName: \"isBusy\" }] : []));\n }\n get variables() {\n return this.variables$();\n }\n get functions() {\n return this.functions$();\n }\n updateStatus() {\n this.status$.update(() => this.detectStatus());\n }\n detectStatus() {\n const statuses = Array.from(this.widgets.values()).map((c) => c.status());\n // Rendering statuses\n if (statuses.some((status) => status === AXPWidgetStatus.Rendering)) {\n return AXPPageStatus.Rendering;\n }\n if (statuses.every((status) => status === AXPWidgetStatus.Rendered)) {\n return AXPPageStatus.Rendered;\n }\n // Processing statuses\n if (statuses.some((status) => status === AXPWidgetStatus.Processing)) {\n return AXPPageStatus.Processing;\n }\n // Error handling\n if (statuses.some((status) => status === AXPWidgetStatus.Error)) {\n return AXPPageStatus.Error;\n }\n return AXPPageStatus.Rendered; // Default to Loaded when all widgets are in a completed state\n }\n refresh() {\n setTimeout(() => {\n this.onRefresh.next();\n }, 0);\n }\n setStatus(status) {\n this.status$.set(status);\n }\n setVariables(...args) {\n if (args.length == 0)\n return;\n else if (args.length == 1)\n this.variables$.set(args[0]);\n else if (args.length == 2) {\n this.variables$.update((v) => set(v, args[0], args[1]));\n }\n }\n setFunctions(...args) {\n if (args.length == 0)\n return;\n else if (args.length == 1)\n this.functions$.set(args[0]);\n else if (args.length == 2) {\n this.functions$.update((v) => set(v, args[0], args[1]));\n }\n }\n registerWidget(id, widget) {\n this.widgets.set(id, widget);\n this.onWidgetRegistered.next({ id, widget });\n }\n getWidget(id) {\n return this.widgets.get(id);\n }\n /**\n * Waits until a widget with the given id is registered, then resolves with it.\n * If the widget is already registered, resolves immediately.\n * Optionally accepts a timeout (in ms) after which it resolves with undefined.\n */\n async waitForWidget(id, timeoutMs) {\n const existing = this.widgets.get(id);\n if (existing) {\n return existing;\n }\n return new Promise((resolve) => {\n let resolved = false;\n let timer = null;\n const sub = this.onWidgetRegistered.subscribe(({ id: registeredId, widget }) => {\n if (registeredId === id && !resolved) {\n resolved = true;\n sub.unsubscribe();\n if (timer) {\n clearTimeout(timer);\n }\n resolve(widget);\n }\n });\n if (timeoutMs != null && timeoutMs > 0) {\n timer = setTimeout(() => {\n if (!resolved) {\n resolved = true;\n sub.unsubscribe();\n resolve(undefined);\n }\n }, timeoutMs);\n }\n });\n }\n ngOnDestroy() { }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBuilderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBuilderService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBuilderService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvYnVpbGRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFJdkUsTUFBTSxPQUFnQixnQkFBZ0I7SUFJcEMsR0FBRztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztDQUNGO0FBR0QsTUFBTSxPQUFPLHVCQUF1QjtJQURwQztRQUVtQixlQUFVLEdBQUcsTUFBTSxDQUFNLEVBQUUsc0RBQUMsQ0FBQztRQUM3QixlQUFVLEdBQUcsTUFBTSxDQUE4QixFQUFFLHNEQUFDLENBQUM7UUFFdEQsY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRXZELFlBQU8sR0FBRyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztRQUNyQyx1QkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBNEMsQ0FBQztRQUU3RSxZQUFPLEdBQUcsTUFBTSxDQUFnQixhQUFhLENBQUMsU0FBUyxtREFBQyxDQUFDO1FBQzFELFdBQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRW5DLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3JDLE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEs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RSxJQUFJLFlBQVksS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDckMsUUFBUSxHQUFHLElBQUksQ0FBQztvQkFDaEIsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUNsQixJQUFJLEtBQUssRUFBRSxDQUFDO3dCQUNWLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDdEIsQ0FBQztvQkFDRCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2xCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksU0FBUyxJQUFJLElBQUksSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLEtBQUssR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUN0QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQ2QsUUFBUSxHQUFHLElBQUksQ0FBQzt3QkFDaEIsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO3dCQUNsQixPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ3JCLENBQUM7Z0JBQ0gsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2hCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLEtBQVUsQ0FBQzs4R0EvSFgsdUJBQXVCO2tIQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgSW5qZWN0YWJsZSwgU2lnbmFsLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBQYWdlU3RhdHVzLCBBWFBXaWRnZXRTdGF0dXMgfSBmcm9tICcuL3dpZGdldC1zdGF0dXMudHlwZXMnO1xuXG5leHBvcnQgdHlwZSBBWFBMYXlvdXRFbGVtZW50QVBJID0geyBbbmFtZTogc3RyaW5nXTogU3ViamVjdDxhbnk+IHwgRnVuY3Rpb24gfTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUExheW91dEVsZW1lbnQge1xuICBhYnN0cmFjdCBnZXQgaWQoKTogc3RyaW5nIHwgbnVsbDtcbiAgYWJzdHJhY3QgZ2V0IHN0YXR1cygpOiBTaWduYWw8QVhQV2lkZ2V0U3RhdHVzPjtcblxuICBhcGkoKTogQVhQTGF5b3V0RWxlbWVudEFQSSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFBMYXlvdXRCdWlsZGVyU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmFyaWFibGVzJCA9IHNpZ25hbDxhbnk+KHt9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBmdW5jdGlvbnMkID0gc2lnbmFsPHsgW2tleTogc3RyaW5nXTogRnVuY3Rpb24gfT4oe30pO1xuXG4gIHB1YmxpYyByZWFkb25seSBvblJlZnJlc2g6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgd2lkZ2V0cyA9IG5ldyBNYXA8c3RyaW5nLCBBWFBMYXlvdXRFbGVtZW50PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IG9uV2lkZ2V0UmVnaXN0ZXJlZCA9IG5ldyBTdWJqZWN0PHsgaWQ6IHN0cmluZzsgd2lkZ2V0OiBBWFBMYXlvdXRFbGVtZW50IH0+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0dXMkID0gc2lnbmFsPEFYUFBhZ2VTdGF0dXM+KEFYUFBhZ2VTdGF0dXMuUmVuZGVyaW5nKTtcbiAgcHVibGljIHJlYWRvbmx5IHN0YXR1cyA9IHRoaXMuc3RhdHVzJC5hc1JlYWRvbmx5KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlzQnVzeSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gW0FYUFBhZ2VTdGF0dXMuUHJvY2Vzc2luZywgQVhQUGFnZVN0YXR1cy5TdWJtaXR0aW5nLCBBWFBQYWdlU3RhdHVzLlJlbmRlcmluZ10uaW5jbHVkZXModGhpcy5zdGF0dXMoKSk7XG4gIH0pO1xuXG4gIGdldCB2YXJpYWJsZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGVzJCgpO1xuICB9XG5cbiAgZ2V0IGZ1bmN0aW9ucygpOiB7IFtrZXk6IHN0cmluZ106IEZ1bmN0aW9uIH0ge1xuICAgIHJldHVybiB0aGlzLmZ1bmN0aW9ucyQoKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVTdGF0dXMoKSB7XG4gICAgdGhpcy5zdGF0dXMkLnVwZGF0ZSgoKSA9PiB0aGlzLmRldGVjdFN0YXR1cygpKTtcbiAgfVxuXG4gIHByaXZhdGUgZGV0ZWN0U3RhdHVzKCk6IEFYUFBhZ2VTdGF0dXMge1xuICAgIGNvbnN0IHN0YXR1c2VzID0gQXJyYXkuZnJvbSh0aGlzLndpZGdldHMudmFsdWVzKCkpLm1hcCgoYykgPT4gYy5zdGF0dXMoKSk7XG4gICAgLy8gUmVuZGVyaW5nIHN0YXR1c2VzXG4gICAgaWYgKHN0YXR1c2VzLnNvbWUoKHN0YXR1cykgPT4gc3RhdHVzID09PSBBWFBXaWRnZXRTdGF0dXMuUmVuZGVyaW5nKSkge1xuICAgICAgcmV0dXJuIEFYUFBhZ2VTdGF0dXMuUmVuZGVyaW5nO1xuICAgIH1cbiAgICBpZiAoc3RhdHVzZXMuZXZlcnkoKHN0YXR1cykgPT4gc3RhdHVzID09PSBBWFBXaWRnZXRTdGF0dXMuUmVuZGVyZWQpKSB7XG4gICAgICByZXR1cm4gQVhQUGFnZVN0YXR1cy5SZW5kZXJlZDtcbiAgICB9XG5cbiAgICAvLyBQcm9jZXNzaW5nIHN0YXR1c2VzXG4gICAgaWYgKHN0YXR1c2VzLnNvbWUoKHN0YXR1cykgPT4gc3RhdHVzID09PSBBWFBXaWRnZXRTdGF0dXMuUHJvY2Vzc2luZykpIHtcbiAgICAgIHJldHVybiBBWFBQYWdlU3RhdHVzLlByb2Nlc3Npbmc7XG4gICAgfVxuXG4gICAgLy8gRXJyb3IgaGFuZGxpbmdcbiAgICBpZiAoc3RhdHVzZXMuc29tZSgoc3RhdHVzKSA9PiBzdGF0dXMgPT09IEFYUFdpZGdldFN0YXR1cy5FcnJvcikpIHtcbiAgICAgIHJldHVybiBBWFBQYWdlU3RhdHVzLkVycm9yO1xuICAgIH1cblxuICAgIHJldHVybiBBWFBQYWdlU3RhdHVzLlJlbmRlcmVkOyAvLyBEZWZhdWx0IHRvIExvYWRlZCB3aGVuIGFsbCB3aWRnZXRzIGFyZSBpbiBhIGNvbXBsZXRlZCBzdGF0ZVxuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMub25SZWZyZXNoLm5leHQoKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIHNldFN0YXR1cyhzdGF0dXM6IEFYUFBhZ2VTdGF0dXMpIHtcbiAgICB0aGlzLnN0YXR1cyQuc2V0KHN0YXR1cyk7XG4gIH1cblxuICBzZXRWYXJpYWJsZXMoa2V5c1ZhbHVlczogYW55KTogdm9pZDtcbiAgc2V0VmFyaWFibGVzKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZDtcbiAgc2V0VmFyaWFibGVzKC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID09IDApIHJldHVybjtcbiAgICBlbHNlIGlmIChhcmdzLmxlbmd0aCA9PSAxKSB0aGlzLnZhcmlhYmxlcyQuc2V0KGFyZ3NbMF0pO1xuICAgIGVsc2UgaWYgKGFyZ3MubGVuZ3RoID09IDIpIHtcbiAgICAgIHRoaXMudmFyaWFibGVzJC51cGRhdGUoKHYpID0+IHNldCh2LCBhcmdzWzBdLCBhcmdzWzFdKSk7XG4gICAgfVxuICB9XG5cbiAgc2V0RnVuY3Rpb25zKGtleXNWYWx1ZXM6IGFueSk6IHZvaWQ7XG4gIHNldEZ1bmN0aW9ucyhrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQ7XG4gIHNldEZ1bmN0aW9ucyguLi5hcmdzOiBhbnlbXSk6IHZvaWQge1xuICAgIGlmIChhcmdzLmxlbmd0aCA9PSAwKSByZXR1cm47XG4gICAgZWxzZSBpZiAoYXJncy5sZW5ndGggPT0gMSkgdGhpcy5mdW5jdGlvbnMkLnNldChhcmdzWzBdKTtcbiAgICBlbHNlIGlmIChhcmdzLmxlbmd0aCA9PSAyKSB7XG4gICAgICB0aGlzLmZ1bmN0aW9ucyQudXBkYXRlKCh2KSA9PiBzZXQodiwgYXJnc1swXSwgYXJnc1sxXSkpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyV2lkZ2V0KGlkOiBzdHJpbmcsIHdpZGdldDogQVhQTGF5b3V0RWxlbWVudCkge1xuICAgIHRoaXMud2lkZ2V0cy5zZXQoaWQsIHdpZGdldCk7XG4gICAgdGhpcy5vbldpZGdldFJlZ2lzdGVyZWQubmV4dCh7IGlkLCB3aWRnZXQgfSk7XG4gIH1cblxuICBnZXRXaWRnZXQoaWQ6IHN0cmluZyk6IEFYUExheW91dEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLndpZGdldHMuZ2V0KGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXYWl0cyB1bnRpbCBhIHdpZGdldCB3aXRoIHRoZSBnaXZlbiBpZCBpcyByZWdpc3RlcmVkLCB0aGVuIHJlc29sdmVzIHdpdGggaXQuXG4gICAqIElmIHRoZSB3aWRnZXQgaXMgYWxyZWFkeSByZWdpc3RlcmVkLCByZXNvbHZlcyBpbW1lZGlhdGVseS5cbiAgICogT3B0aW9uYWxseSBhY2NlcHRzIGEgdGltZW91dCAoaW4gbXMpIGFmdGVyIHdoaWNoIGl0IHJlc29sdmVzIHdpdGggdW5kZWZpbmVkLlxuICAgKi9cbiAgYXN5bmMgd2FpdEZvcldpZGdldChpZDogc3RyaW5nLCB0aW1lb3V0TXM/OiBudW1iZXIpOiBQcm9taXNlPEFYUExheW91dEVsZW1lbnQgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBleGlzdGluZyA9IHRoaXMud2lkZ2V0cy5nZXQoaWQpO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxBWFBMYXlvdXRFbGVtZW50IHwgdW5kZWZpbmVkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgbGV0IHJlc29sdmVkID0gZmFsc2U7XG4gICAgICBsZXQgdGltZXI6IGFueSA9IG51bGw7XG4gICAgICBjb25zdCBzdWIgPSB0aGlzLm9uV2lkZ2V0UmVnaXN0ZXJlZC5zdWJzY3JpYmUoKHsgaWQ6IHJlZ2lzdGVyZWRJZCwgd2lkZ2V0IH0pID0+IHtcbiAgICAgICAgaWYgKHJlZ2lzdGVyZWRJZCA9PT0gaWQgJiYgIXJlc29sdmVkKSB7XG4gICAgICAgICAgcmVzb2x2ZWQgPSB0cnVlO1xuICAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIGlmICh0aW1lcikge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzb2x2ZSh3aWRnZXQpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKHRpbWVvdXRNcyAhPSBudWxsICYmIHRpbWVvdXRNcyA+IDApIHtcbiAgICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIXJlc29sdmVkKSB7XG4gICAgICAgICAgICByZXNvbHZlZCA9IHRydWU7XG4gICAgICAgICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHJlc29sdmUodW5kZWZpbmVkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHRpbWVvdXRNcyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHt9XG59XG4iXX0=","import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';\nimport { cloneDeep, get, isEqual } from 'lodash-es';\nimport { computed } from '@angular/core';\nimport { setSmart } from '@acorex/platform/core';\nexport class AXPLayoutContextChangeEvent {\n}\nexport const AXPLayoutBuilderContextStore = signalStore(\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 = get(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 get(store.data(), path);\n },\n})));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1zdG9yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvY29udGV4dC1zdG9yZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFPLE9BQU8sRUFBUyxNQUFNLFdBQVcsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUlqRCxNQUFNLE9BQU8sMkJBQTJCO0NBTXZDO0FBRUQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsV0FBVztBQUNuRCxnQkFBZ0I7QUFDaEIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDYixJQUFJLEVBQUUsRUFBRSxFQUFFLHNCQUFzQjtJQUNoQyxLQUFLLEVBQUUsV0FBb0MsRUFBRSxnQkFBZ0I7SUFDN0QsZUFBZSxFQUFFLEVBQUUsRUFBRSwwQ0FBMEM7SUFDL0QsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLGlDQUFpQztJQUN2RCxVQUFVLEVBQUU7UUFDUixLQUFLLEVBQUUsV0FBVztLQUNVLEVBQUUsb0JBQW9CO0NBQ3pELENBQUMsQ0FBQztBQUVILG1CQUFtQjtBQUNuQixZQUFZLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLFNBQVMsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssU0FBUyxDQUFDO0lBQ2hELE9BQU8sRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssVUFBVSxDQUFDO0lBQy9DLFdBQVcsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssV0FBVyxDQUFDO0lBQ3BELE9BQU8sRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDekQsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDN0QsUUFBUSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLHdCQUF3QjtJQUNyRSxPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLEVBQUUsbUJBQW1CO0lBQzFFLFFBQVEsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxFQUFFLG9CQUFvQjtJQUM3RSxXQUFXLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsNkJBQTZCO0NBQzNFLENBQUMsQ0FBQztBQUVILCtCQUErQjtBQUMvQixXQUFXLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEIsMEJBQTBCO0lBQzFCLE1BQU0sQ0FBQyxJQUFZLEVBQUUsS0FBVTtRQUMzQixNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV4QyxtQ0FBbUM7UUFDbkMsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTztRQUNYLENBQUM7UUFFRCxnREFBZ0Q7UUFDaEQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkQsTUFBTSxXQUFXLEdBQWdDO1lBQzdDLFFBQVE7WUFDUixRQUFRLEVBQUUsS0FBSztZQUNmLElBQUk7WUFDSixLQUFLLEVBQUUsU0FBUztZQUNoQixJQUFJLEVBQUUsV0FBVztTQUNwQixDQUFDO1FBRUYsa0JBQWtCO1FBQ2xCLFVBQVUsQ0FBQyxLQUFLLEVBQUU7WUFDZCxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsMEJBQTBCO1lBQzlELElBQUksRUFBRSxXQUFXO1lBQ2pCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFVBQVUsRUFBRSxXQUFXO1NBQzFCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBVztRQUNiLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QyxnREFBZ0Q7UUFDaEQsTUFBTSxXQUFXLEdBQUcsRUFBRSxHQUFHLFdBQVcsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ25ELE1BQU0sV0FBVyxHQUFnQztZQUM3QyxLQUFLLEVBQUUsT0FBTztZQUNkLElBQUksRUFBRSxXQUFXO1NBQ3BCLENBQUM7UUFFRixrQkFBa0I7UUFDbEIsVUFBVSxDQUFDLEtBQUssRUFBRTtZQUNkLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSwwQkFBMEI7WUFDOUQsSUFBSSxFQUFFLFdBQVc7WUFDakIsS0FBSyxFQUFFLFNBQVM7WUFDaEIsVUFBVSxFQUFFLFdBQVc7U0FDMUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELDZCQUE2QjtJQUM3QixLQUFLO1FBQ0QsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BDLE1BQU0sV0FBVyxHQUFnQztZQUM3QyxRQUFRLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLGlDQUFpQztZQUNwRSxRQUFRLEVBQUUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLDZCQUE2QjtZQUMvRCxJQUFJLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRSxVQUFVO1lBQ2pCLElBQUksRUFBRSxXQUFXO1NBQ3BCLENBQUM7UUFFRixVQUFVLENBQUMsS0FBSyxFQUFFO1lBQ2QsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLDBCQUEwQjtZQUM5RCxJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsVUFBVTtZQUNqQixVQUFVLEVBQUUsV0FBVztTQUMxQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsdUJBQXVCO0lBQ3ZCLEdBQUcsQ0FBQyxXQUFnQjtRQUNoQixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakMsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDcEMsT0FBTyxDQUFDLHNEQUFzRDtRQUNsRSxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQWdDO1lBQzdDLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUM7WUFDaEMsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFLLEVBQUUsV0FBVztZQUNsQixJQUFJLEVBQUUsV0FBVztTQUNwQixDQUFDO1FBRUYsVUFBVSxDQUFDLEtBQUssRUFBRTtZQUNkLGVBQWUsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUseUJBQXlCO1lBQ2xFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSx5Q0FBeUM7WUFDN0UsSUFBSSxFQUFFLFdBQVc7WUFDakIsS0FBSyxFQUFFLFdBQVc7WUFDbEIsVUFBVSxFQUFFLFdBQVc7U0FDMUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELHVCQUF1QjtJQUN2QixRQUFRLENBQUMsSUFBWTtRQUNqQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNKLENBQUMsQ0FBQyxDQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaWduYWxTdG9yZSwgd2l0aFN0YXRlLCB3aXRoQ29tcHV0ZWQsIHdpdGhNZXRob2RzLCBwYXRjaFN0YXRlIH0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGdldCwgc2V0LCBpc0VxdWFsLCBtZXJnZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2V0U21hcnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBBWFBMYXlvdXRDb250ZXh0U3RhdGUgPSAnaW5pdGlhdGVkJyB8ICdyZXN0b3JlZCcgfCAnY2hhbmdlZCcgfCAncGF0Y2gnO1xuXG5leHBvcnQgY2xhc3MgQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50IHtcbiAgICBvbGRWYWx1ZT86IGFueTtcbiAgICBuZXdWYWx1ZT86IGFueTtcbiAgICBwYXRoPzogc3RyaW5nO1xuICAgIHN0YXRlOiBBWFBMYXlvdXRDb250ZXh0U3RhdGU7XG4gICAgZGF0YTogYW55O1xufVxuXG5leHBvcnQgY29uc3QgQVhQTGF5b3V0QnVpbGRlckNvbnRleHRTdG9yZSA9IHNpZ25hbFN0b3JlKFxuICAgIC8vIEluaXRpYWwgU3RhdGVcbiAgICB3aXRoU3RhdGUoKCkgPT4gKHtcbiAgICAgICAgZGF0YToge30sIC8vIFNoYXJlZCBjb250ZXh0IGRhdGFcbiAgICAgICAgc3RhdGU6ICdpbml0aWF0ZWQnIGFzIEFYUExheW91dENvbnRleHRTdGF0ZSwgLy8gQ3VycmVudCBzdGF0ZVxuICAgICAgICBpbml0aWFsU25hcHNob3Q6IHt9LCAvLyBTbmFwc2hvdCBvZiB0aGUgZmlyc3QgaW5pdGlhbGl6ZWQgc3RhdGVcbiAgICAgICAgcHJldmlvdXNTbmFwc2hvdDoge30sIC8vIFNuYXBzaG90IG9mIHRoZSBwcmV2aW91cyBzdGF0ZVxuICAgICAgICBsYXN0Q2hhbmdlOiB7XG4gICAgICAgICAgICBzdGF0ZTogJ2luaXRpYXRlZCcsXG4gICAgICAgIH0gYXMgQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50LCAvLyBMYXN0IGNoYW5nZSBldmVudFxuICAgIH0pKSxcblxuICAgIC8vIENvbXB1dGVkIFNpZ25hbHNcbiAgICB3aXRoQ29tcHV0ZWQoKHsgZGF0YSwgc3RhdGUsIGxhc3RDaGFuZ2UsIGluaXRpYWxTbmFwc2hvdCwgcHJldmlvdXNTbmFwc2hvdCB9KSA9PiAoe1xuICAgICAgICBpc0NoYW5nZWQ6IGNvbXB1dGVkKCgpID0+IHN0YXRlKCkgPT09ICdjaGFuZ2VkJyksXG4gICAgICAgIGlzUmVzZXQ6IGNvbXB1dGVkKCgpID0+IHN0YXRlKCkgPT09ICdyZXN0b3JlZCcpLFxuICAgICAgICBpc0luaXRpYXRlZDogY29tcHV0ZWQoKCkgPT4gc3RhdGUoKSA9PT0gJ2luaXRpYXRlZCcpLFxuICAgICAgICBpc0VtcHR5OiBjb21wdXRlZCgoKSA9PiBPYmplY3Qua2V5cyhkYXRhKCkpLmxlbmd0aCA9PT0gMCksXG4gICAgICAgIGlzRGlydHk6IGNvbXB1dGVkKCgpID0+ICFpc0VxdWFsKGRhdGEoKSwgcHJldmlvdXNTbmFwc2hvdCgpKSksIFxuICAgICAgICBzbmFwc2hvdDogY29tcHV0ZWQoKCkgPT4gY2xvbmVEZWVwKGRhdGEoKSkpLCAvLyBDdXJyZW50IGRhdGEgc25hcHNob3RcbiAgICAgICAgaW5pdGlhbDogY29tcHV0ZWQoKCkgPT4gY2xvbmVEZWVwKGluaXRpYWxTbmFwc2hvdCgpKSksIC8vIEluaXRpYWwgc25hcHNob3RcbiAgICAgICAgcHJldmlvdXM6IGNvbXB1dGVkKCgpID0+IGNsb25lRGVlcChwcmV2aW91c1NuYXBzaG90KCkpKSwgLy8gUHJldmlvdXMgc25hcHNob3RcbiAgICAgICAgY2hhbmdlRXZlbnQ6IGNvbXB1dGVkKCgpID0+IGxhc3RDaGFuZ2UoKSksIC8vIFJlYWN0aXZlIGxhc3QgY2hhbmdlIGV2ZW50XG4gICAgfSkpLFxuXG4gICAgLy8gTWV0aG9kcyBmb3IgU3RhdGUgTWFuYWdlbWVudFxuICAgIHdpdGhNZXRob2RzKChzdG9yZSkgPT4gKHtcbiAgICAgICAgLy8gVXBkYXRlIGEgc3BlY2lmaWMgdmFsdWVcbiAgICAgICAgdXBkYXRlKHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudERhdGEgPSBjbG9uZURlZXAoc3RvcmUuZGF0YSgpKTtcbiAgICAgICAgICAgIGNvbnN0IG9sZFZhbHVlID0gZ2V0KGN1cnJlbnREYXRhLCBwYXRoKTtcblxuICAgICAgICAgICAgLy8gU2tpcCBpZiB0aGUgdmFsdWUgaGFzbid0IGNoYW5nZWRcbiAgICAgICAgICAgIGlmIChpc0VxdWFsKG9sZFZhbHVlLCB2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgdmFsdWUgYW5kIHByZXBhcmUgdGhlIGNoYW5nZSBldmVudFxuICAgICAgICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBzZXRTbWFydChjdXJyZW50RGF0YSwgcGF0aCwgdmFsdWUpO1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlRXZlbnQ6IEFYUExheW91dENvbnRleHRDaGFuZ2VFdmVudCA9IHtcbiAgICAgICAgICAgICAgICBvbGRWYWx1ZSxcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZTogdmFsdWUsXG4gICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ2NoYW5nZWQnLFxuICAgICAgICAgICAgICAgIGRhdGE6IHVwZGF0ZWREYXRhLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgLy8gUGF0Y2ggdGhlIHN0YXRlXG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgcHJldmlvdXNTbmFwc2hvdDogc3RvcmUuc25hcHNob3QoKSwgLy8gU2F2ZSB0aGUgcHJldmlvdXMgc3RhdGVcbiAgICAgICAgICAgICAgICBkYXRhOiB1cGRhdGVkRGF0YSxcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ2NoYW5nZWQnLFxuICAgICAgICAgICAgICAgIGxhc3RDaGFuZ2U6IGNoYW5nZUV2ZW50LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgcGF0Y2goY29udGV4dDoge30pIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnREYXRhID0gY2xvbmVEZWVwKHN0b3JlLmRhdGEoKSk7XG4gICAgICAgICAgICAvLyBVcGRhdGUgdGhlIHZhbHVlIGFuZCBwcmVwYXJlIHRoZSBjaGFuZ2UgZXZlbnRcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0geyAuLi5jdXJyZW50RGF0YSwgLi4uY29udGV4dCB9O1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlRXZlbnQ6IEFYUExheW91dENvbnRleHRDaGFuZ2VFdmVudCA9IHtcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ3BhdGNoJyxcbiAgICAgICAgICAgICAgICBkYXRhOiB1cGRhdGVkRGF0YSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8vIFBhdGNoIHRoZSBzdGF0ZVxuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgIHByZXZpb3VzU25hcHNob3Q6IHN0b3JlLnNuYXBzaG90KCksIC8vIFNhdmUgdGhlIHByZXZpb3VzIHN0YXRlXG4gICAgICAgICAgICAgICAgZGF0YTogdXBkYXRlZERhdGEsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdjaGFuZ2VkJyxcbiAgICAgICAgICAgICAgICBsYXN0Q2hhbmdlOiBjaGFuZ2VFdmVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8vIFJlc2V0IHRvIHRoZSBpbml0aWFsIHN0YXRlXG4gICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgY29uc3QgaW5pdGlhbERhdGEgPSBzdG9yZS5pbml0aWFsKCk7XG4gICAgICAgICAgICBjb25zdCBjaGFuZ2VFdmVudDogQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50ID0ge1xuICAgICAgICAgICAgICAgIG9sZFZhbHVlOiBjbG9uZURlZXAoc3RvcmUuZGF0YSgpKSwgLy8gQ3VycmVudCBkYXRhIGJlY29tZXMgb2xkIHZhbHVlXG4gICAgICAgICAgICAgICAgbmV3VmFsdWU6IGNsb25lRGVlcChpbml0aWFsRGF0YSksIC8vIFJlc2V0IHRvIHRoZSBpbml0aWFsIHN0YXRlXG4gICAgICAgICAgICAgICAgcGF0aDogJycsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdyZXN0b3JlZCcsXG4gICAgICAgICAgICAgICAgZGF0YTogaW5pdGlhbERhdGEsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgcHJldmlvdXNTbmFwc2hvdDogc3RvcmUuc25hcHNob3QoKSwgLy8gU2F2ZSB0aGUgcHJldmlvdXMgc3RhdGVcbiAgICAgICAgICAgICAgICBkYXRhOiBpbml0aWFsRGF0YSxcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ3Jlc3RvcmVkJyxcbiAgICAgICAgICAgICAgICBsYXN0Q2hhbmdlOiBjaGFuZ2VFdmVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHN0YXRlXG4gICAgICAgIHNldChpbml0aWFsRGF0YTogYW55KSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0YSA9IHN0b3JlLmRhdGEoKTtcbiAgICAgICAgICAgIGlmIChpc0VxdWFsKGN1cnJlbnREYXRhLCBpbml0aWFsRGF0YSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47IC8vIFNraXAgaWYgdGhlIGN1cnJlbnQgc3RhdGUgbWF0Y2hlcyB0aGUgaW5pdGlhbCBzdGF0ZVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjaGFuZ2VFdmVudDogQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50ID0ge1xuICAgICAgICAgICAgICAgIG9sZFZhbHVlOiBudWxsLFxuICAgICAgICAgICAgICAgIG5ld1ZhbHVlOiBjbG9uZURlZXAoaW5pdGlhbERhdGEpLFxuICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgICAgIHN0YXRlOiAnaW5pdGlhdGVkJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBpbml0aWFsRGF0YSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICBpbml0aWFsU25hcHNob3Q6IGNsb25lRGVlcChpbml0aWFsRGF0YSksIC8vIFNhdmUgdGhlIGluaXRpYWwgc3RhdGVcbiAgICAgICAgICAgICAgICBwcmV2aW91c1NuYXBzaG90OiBzdG9yZS5zbmFwc2hvdCgpLCAvLyBTYXZlIHRoZSBjdXJyZW50IHN0YXRlIGFzIHRoZSBwcmV2aW91c1xuICAgICAgICAgICAgICAgIGRhdGE6IGluaXRpYWxEYXRhLFxuICAgICAgICAgICAgICAgIHN0YXRlOiAnaW5pdGlhdGVkJyxcbiAgICAgICAgICAgICAgICBsYXN0Q2hhbmdlOiBjaGFuZ2VFdmVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8vIEdldCBhIHNwZWNpZmljIHZhbHVlXG4gICAgICAgIGdldFZhbHVlKHBhdGg6IHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIGdldChzdG9yZS5kYXRhKCksIHBhdGgpO1xuICAgICAgICB9LFxuICAgIH0pKVxuKTtcbiJdfQ==","const AXPWidgetsCatalog = {\n timeDuration: 'time-duration',\n tagable: 'tagable-editor',\n checkbox: 'checkbox-editor',\n color: 'color-editor',\n contact: 'contact-editor',\n dateTime: 'date-time-editor',\n email: 'email-editor',\n largeText: 'large-text-editor',\n link: 'link-editor',\n number: 'number-editor',\n numberUnit: 'number-unit-editor',\n password: 'password-editor',\n phone: 'phone-editor',\n richText: 'rich-text-editor',\n select: 'select-editor',\n selectionList: 'selection-list-editor',\n text: 'text-editor',\n table: 'table-editor',\n toggle: 'toggle-editor',\n blockLayout: 'block-layout',\n pageLayout: 'page-layout',\n repeaterLayout: 'repeater-layout',\n textBlockLayout: 'text-block-layout',\n fileUploader: 'file-uploader',\n fileTypeExtension: 'file-type-extension',\n map: 'map',\n imageMarker: 'image-marker',\n image: 'image',\n gallery: 'gallery',\n signature: 'signature',\n buttonAction: 'button-action',\n document: 'document-layout',\n lookup: 'lookup-editor',\n formField: 'form-field',\n qrcode: 'qrcode',\n advancedGrid: 'advanced-grid-layout',\n advancedGridItem: 'advanced-grid-item-layout',\n grid: 'grid-layout',\n gridItem: 'grid-item-layout',\n gridRow: 'grid-row-layout',\n widgetSelector: 'widget-selector',\n template: 'template',\n templateDesigner: 'template-designer',\n cronJob: 'cron-job',\n spacing: 'spacing',\n direction: 'direction',\n border: 'border',\n flexLayout: 'flex-layout',\n flexItem: 'flex-item-layout',\n avatar: 'avatar',\n themePaletteChooser: 'theme-palette-chooser',\n themeModeChooser: 'theme-mode-chooser',\n menuOrientationChooser: 'menu-orientation-chooser',\n fontStyleChooser: 'font-style-chooser',\n fontSizeChooser: 'font-size-chooser',\n iconChooser: 'icon-chooser',\n themeColorChooser: 'theme-color-chooser',\n gridOptions: 'grid-options',\n gridItemOptions: 'grid-item-options',\n advancedGridOptions: 'advanced-grid-options',\n stringFilter: 'string-filter',\n numberFilter: 'number-filter',\n dateTimeFilter: 'datetime-filter',\n booleanFilter: 'boolean-filter',\n lookupFilter: 'lookup-filter',\n flexOptions: 'flex-options',\n flexItemOptions: 'flex-item-options',\n selectFilter: 'select-filter',\n requiredValidation: 'required-validation',\n regularExpressionValidation: 'regular-expression-validation',\n minLengthValidation: 'min-length-validation',\n maxLengthValidation: 'max-length-validation',\n lessThanValidation: 'less-than-validation',\n greaterThanValidation: 'greater-than-validation',\n betweenValidation: 'between-validation',\n equalValidation: 'equal-validation',\n callbackValidation: 'callback-validation',\n donutChart: 'donut-chart',\n lineChart: 'line-chart',\n barChart: 'bar-chart',\n gaugeChart: 'gauge-chart',\n stickyNote: 'sticky-note',\n clockCalendar: 'clock-calendar',\n analogClock: 'analog-clock',\n weather: 'weather',\n minimalWeather: 'minimal-weather',\n advancedWeather: 'advanced-weather',\n metaData: 'meta-data-editor',\n templateEditor: 'template-box-editor',\n panel: 'panel',\n notification: 'notification',\n taskBoard: 'task-board',\n comment: 'comment',\n list: 'list',\n listToolbar: 'list-toolbar',\n entityList: 'entity-list',\n documentUploader: 'document-uploader',\n};\nexport { AXPWidgetsCatalog };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNhdGFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci93aWRnZXQtY2F0YWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLGlCQUFpQixHQUFzQjtJQUMzQyxZQUFZLEVBQUUsZUFBZTtJQUM3QixPQUFPLEVBQUUsZ0JBQWdCO0lBQ3pCLFFBQVEsRUFBRSxpQkFBaUI7SUFDM0IsS0FBSyxFQUFFLGNBQWM7SUFDckIsT0FBTyxFQUFFLGdCQUFnQjtJQUN6QixRQUFRLEVBQUUsa0JBQWtCO0lBQzVCLEtBQUssRUFBRSxjQUFjO0lBQ3JCLFNBQVMsRUFBRSxtQkFBbUI7SUFDOUIsSUFBSSxFQUFFLGFBQWE7SUFDbkIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsVUFBVSxFQUFFLG9CQUFvQjtJQUNoQyxRQUFRLEVBQUUsaUJBQWlCO0lBQzNCLEtBQUssRUFBRSxjQUFjO0lBQ3JCLFFBQVEsRUFBRSxrQkFBa0I7SUFDNUIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsYUFBYSxFQUFFLHVCQUF1QjtJQUN0QyxJQUFJLEVBQUUsYUFBYTtJQUNuQixLQUFLLEVBQUUsY0FBYztJQUNyQixNQUFNLEVBQUUsZUFBZTtJQUN2QixXQUFXLEVBQUUsY0FBYztJQUMzQixVQUFVLEVBQUUsYUFBYTtJQUN6QixjQUFjLEVBQUUsaUJBQWlCO0lBQ2pDLGVBQWUsRUFBRSxtQkFBbUI7SUFDcEMsWUFBWSxFQUFFLGVBQWU7SUFDN0IsaUJBQWlCLEVBQUUscUJBQXFCO0lBQ3hDLEdBQUcsRUFBRSxLQUFLO0lBQ1YsV0FBVyxFQUFFLGNBQWM7SUFDM0IsS0FBSyxFQUFFLE9BQU87SUFDZCxPQUFPLEVBQUUsU0FBUztJQUNsQixTQUFTLEVBQUUsV0FBVztJQUN0QixZQUFZLEVBQUUsZUFBZTtJQUM3QixRQUFRLEVBQUUsaUJBQWlCO0lBQzNCLE1BQU0sRUFBRSxlQUFlO0lBQ3ZCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFlBQVksRUFBRSxzQkFBc0I7SUFDcEMsZ0JBQWdCLEVBQUUsMkJBQTJCO0lBQzdDLElBQUksRUFBRSxhQUFhO0lBQ25CLFFBQVEsRUFBRSxrQkFBa0I7SUFDNUIsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixjQUFjLEVBQUUsaUJBQWlCO0lBQ2pDLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLGdCQUFnQixFQUFFLG1CQUFtQjtJQUNyQyxPQUFPLEVBQUUsVUFBVTtJQUNuQixPQUFPLEVBQUUsU0FBUztJQUNsQixTQUFTLEVBQUUsV0FBVztJQUN0QixNQUFNLEVBQUUsUUFBUTtJQUNoQixVQUFVLEVBQUUsYUFBYTtJQUN6QixRQUFRLEVBQUUsa0JBQWtCO0lBQzVCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLG1CQUFtQixFQUFFLHVCQUF1QjtJQUM1QyxnQkFBZ0IsRUFBRSxvQkFBb0I7SUFDdEMsc0JBQXNCLEVBQUUsMEJBQTBCO0lBQ2xELGdCQUFnQixFQUFFLG9CQUFvQjtJQUN0QyxlQUFlLEVBQUUsbUJBQW1CO0lBQ3BDLFdBQVcsRUFBRSxjQUFjO0lBQzNCLGlCQUFpQixFQUFFLHFCQUFxQjtJQUN4QyxXQUFXLEVBQUUsY0FBYztJQUMzQixlQUFlLEVBQUUsbUJBQW1CO0lBQ3BDLG1CQUFtQixFQUFFLHVCQUF1QjtJQUM1QyxZQUFZLEVBQUUsZUFBZTtJQUM3QixZQUFZLEVBQUUsZUFBZTtJQUM3QixjQUFjLEVBQUUsaUJBQWlCO0lBQ2pDLGFBQWEsRUFBRSxnQkFBZ0I7SUFDL0IsWUFBWSxFQUFFLGVBQWU7SUFDN0IsV0FBVyxFQUFFLGNBQWM7SUFDM0IsZUFBZSxFQUFFLG1CQUFtQjtJQUNwQyxZQUFZLEVBQUUsZUFBZTtJQUM3QixrQkFBa0IsRUFBRSxxQkFBcUI7SUFDekMsMkJBQTJCLEVBQUUsK0JBQStCO0lBQzVELG1CQUFtQixFQUFFLHVCQUF1QjtJQUM1QyxtQkFBbUIsRUFBRSx1QkFBdUI7SUFDNUMsa0JBQWtCLEVBQUUsc0JBQXNCO0lBQzFDLHFCQUFxQixFQUFFLHlCQUF5QjtJQUNoRCxpQkFBaUIsRUFBRSxvQkFBb0I7SUFDdkMsZUFBZSxFQUFFLGtCQUFrQjtJQUNuQyxrQkFBa0IsRUFBRSxxQkFBcUI7SUFDekMsVUFBVSxFQUFFLGFBQWE7SUFDekIsU0FBUyxFQUFFLFlBQVk7SUFDdkIsUUFBUSxFQUFFLFdBQVc7SUFDckIsVUFBVSxFQUFFLGFBQWE7SUFDekIsVUFBVSxFQUFFLGFBQWE7SUFDekIsYUFBYSxFQUFFLGdCQUFnQjtJQUMvQixXQUFXLEVBQUUsY0FBYztJQUMzQixPQUFPLEVBQUUsU0FBUztJQUNsQixjQUFjLEVBQUUsaUJBQWlCO0lBQ2pDLGVBQWUsRUFBRSxrQkFBa0I7SUFDbkMsUUFBUSxFQUFFLGtCQUFrQjtJQUM1QixjQUFjLEVBQUUscUJBQXFCO0lBQ3JDLEtBQUssRUFBRSxPQUFPO0lBQ2QsWUFBWSxFQUFFLGNBQWM7SUFDNUIsU0FBUyxFQUFFLFlBQVk7SUFDdkIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsSUFBSSxFQUFFLE1BQU07SUFDWixXQUFXLEVBQUUsY0FBYztJQUMzQixVQUFVLEVBQUUsYUFBYTtJQUV6QixnQkFBZ0IsRUFBRSxtQkFBbUI7Q0FDdEMsQ0FBQztBQUVGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQV2lkZ2V0VHlwZXNNYXAgfSBmcm9tICcuL3dpZGdldC1tYXAnO1xuXG5jb25zdCBBWFBXaWRnZXRzQ2F0YWxvZzogQVhQV2lkZ2V0VHlwZXNNYXAgPSB7XG4gIHRpbWVEdXJhdGlvbjogJ3RpbWUtZHVyYXRpb24nLFxuICB0YWdhYmxlOiAndGFnYWJsZS1lZGl0b3InLFxuICBjaGVja2JveDogJ2NoZWNrYm94LWVkaXRvcicsXG4gIGNvbG9yOiAnY29sb3ItZWRpdG9yJyxcbiAgY29udGFjdDogJ2NvbnRhY3QtZWRpdG9yJyxcbiAgZGF0ZVRpbWU6ICdkYXRlLXRpbWUtZWRpdG9yJyxcbiAgZW1haWw6ICdlbWFpbC1lZGl0b3InLFxuICBsYXJnZVRleHQ6ICdsYXJnZS10ZXh0LWVkaXRvcicsXG4gIGxpbms6ICdsaW5rLWVkaXRvcicsXG4gIG51bWJlcjogJ251bWJlci1lZGl0b3InLFxuICBudW1iZXJVbml0OiAnbnVtYmVyLXVuaXQtZWRpdG9yJyxcbiAgcGFzc3dvcmQ6ICdwYXNzd29yZC1lZGl0b3InLFxuICBwaG9uZTogJ3Bob25lLWVkaXRvcicsXG4gIHJpY2hUZXh0OiAncmljaC10ZXh0LWVkaXRvcicsXG4gIHNlbGVjdDogJ3NlbGVjdC1lZGl0b3InLFxuICBzZWxlY3Rpb25MaXN0OiAnc2VsZWN0aW9uLWxpc3QtZWRpdG9yJyxcbiAgdGV4dDogJ3RleHQtZWRpdG9yJyxcbiAgdGFibGU6ICd0YWJsZS1lZGl0b3InLFxuICB0b2dnbGU6ICd0b2dnbGUtZWRpdG9yJyxcbiAgYmxvY2tMYXlvdXQ6ICdibG9jay1sYXlvdXQnLFxuICBwYWdlTGF5b3V0OiAncGFnZS1sYXlvdXQnLFxuICByZXBlYXRlckxheW91dDogJ3JlcGVhdGVyLWxheW91dCcsXG4gIHRleHRCbG9ja0xheW91dDogJ3RleHQtYmxvY2stbGF5b3V0JyxcbiAgZmlsZVVwbG9hZGVyOiAnZmlsZS11cGxvYWRlcicsXG4gIGZpbGVUeXBlRXh0ZW5zaW9uOiAnZmlsZS10eXBlLWV4dGVuc2lvbicsXG4gIG1hcDogJ21hcCcsXG4gIGltYWdlTWFya2VyOiAnaW1hZ2UtbWFya2VyJyxcbiAgaW1hZ2U6ICdpbWFnZScsXG4gIGdhbGxlcnk6ICdnYWxsZXJ5JyxcbiAgc2lnbmF0dXJlOiAnc2lnbmF0dXJlJyxcbiAgYnV0dG9uQWN0aW9uOiAnYnV0dG9uLWFjdGlvbicsXG4gIGRvY3VtZW50OiAnZG9jdW1lbnQtbGF5b3V0JyxcbiAgbG9va3VwOiAnbG9va3VwLWVkaXRvcicsXG4gIGZvcm1GaWVsZDogJ2Zvcm0tZmllbGQnLFxuICBxcmNvZGU6ICdxcmNvZGUnLFxuICBhZHZhbmNlZEdyaWQ6ICdhZHZhbmNlZC1ncmlkLWxheW91dCcsXG4gIGFkdmFuY2VkR3JpZEl0ZW06ICdhZHZhbmNlZC1ncmlkLWl0ZW0tbGF5b3V0JyxcbiAgZ3JpZDogJ2dyaWQtbGF5b3V0JyxcbiAgZ3JpZEl0ZW06ICdncmlkLWl0ZW0tbGF5b3V0JyxcbiAgZ3JpZFJvdzogJ2dyaWQtcm93LWxheW91dCcsXG4gIHdpZGdldFNlbGVjdG9yOiAnd2lkZ2V0LXNlbGVjdG9yJyxcbiAgdGVtcGxhdGU6ICd0ZW1wbGF0ZScsXG4gIHRlbXBsYXRlRGVzaWduZXI6ICd0ZW1wbGF0ZS1kZXNpZ25lcicsXG4gIGNyb25Kb2I6ICdjcm9uLWpvYicsXG4gIHNwYWNpbmc6ICdzcGFjaW5nJyxcbiAgZGlyZWN0aW9uOiAnZGlyZWN0aW9uJyxcbiAgYm9yZGVyOiAnYm9yZGVyJyxcbiAgZmxleExheW91dDogJ2ZsZXgtbGF5b3V0JyxcbiAgZmxleEl0ZW06ICdmbGV4LWl0ZW0tbGF5b3V0JyxcbiAgYXZhdGFyOiAnYXZhdGFyJyxcbiAgdGhlbWVQYWxldHRlQ2hvb3NlcjogJ3RoZW1lLXBhbGV0dGUtY2hvb3NlcicsXG4gIHRoZW1lTW9kZUNob29zZXI6ICd0aGVtZS1tb2RlLWNob29zZXInLFxuICBtZW51T3JpZW50YXRpb25DaG9vc2VyOiAnbWVudS1vcmllbnRhdGlvbi1jaG9vc2VyJyxcbiAgZm9udFN0eWxlQ2hvb3NlcjogJ2ZvbnQtc3R5bGUtY2hvb3NlcicsXG4gIGZvbnRTaXplQ2hvb3NlcjogJ2ZvbnQtc2l6ZS1jaG9vc2VyJyxcbiAgaWNvbkNob29zZXI6ICdpY29uLWNob29zZXInLFxuICB0aGVtZUNvbG9yQ2hvb3NlcjogJ3RoZW1lLWNvbG9yLWNob29zZXInLFxuICBncmlkT3B0aW9uczogJ2dyaWQtb3B0aW9ucycsXG4gIGdyaWRJdGVtT3B0aW9uczogJ2dyaWQtaXRlbS1vcHRpb25zJyxcbiAgYWR2YW5jZWRHcmlkT3B0aW9uczogJ2FkdmFuY2VkLWdyaWQtb3B0aW9ucycsXG4gIHN0cmluZ0ZpbHRlcjogJ3N0cmluZy1maWx0ZXInLFxuICBudW1iZXJGaWx0ZXI6ICdudW1iZXItZmlsdGVyJyxcbiAgZGF0ZVRpbWVGaWx0ZXI6ICdkYXRldGltZS1maWx0ZXInLFxuICBib29sZWFuRmlsdGVyOiAnYm9vbGVhbi1maWx0ZXInLFxuICBsb29rdXBGaWx0ZXI6ICdsb29rdXAtZmlsdGVyJyxcbiAgZmxleE9wdGlvbnM6ICdmbGV4LW9wdGlvbnMnLFxuICBmbGV4SXRlbU9wdGlvbnM6ICdmbGV4LWl0ZW0tb3B0aW9ucycsXG4gIHNlbGVjdEZpbHRlcjogJ3NlbGVjdC1maWx0ZXInLFxuICByZXF1aXJlZFZhbGlkYXRpb246ICdyZXF1aXJlZC12YWxpZGF0aW9uJyxcbiAgcmVndWxhckV4cHJlc3Npb25WYWxpZGF0aW9uOiAncmVndWxhci1leHByZXNzaW9uLXZhbGlkYXRpb24nLFxuICBtaW5MZW5ndGhWYWxpZGF0aW9uOiAnbWluLWxlbmd0aC12YWxpZGF0aW9uJyxcbiAgbWF4TGVuZ3RoVmFsaWRhdGlvbjogJ21heC1sZW5ndGgtdmFsaWRhdGlvbicsXG4gIGxlc3NUaGFuVmFsaWRhdGlvbjogJ2xlc3MtdGhhbi12YWxpZGF0aW9uJyxcbiAgZ3JlYXRlclRoYW5WYWxpZGF0aW9uOiAnZ3JlYXRlci10aGFuLXZhbGlkYXRpb24nLFxuICBiZXR3ZWVuVmFsaWRhdGlvbjogJ2JldHdlZW4tdmFsaWRhdGlvbicsXG4gIGVxdWFsVmFsaWRhdGlvbjogJ2VxdWFsLXZhbGlkYXRpb24nLFxuICBjYWxsYmFja1ZhbGlkYXRpb246ICdjYWxsYmFjay12YWxpZGF0aW9uJyxcbiAgZG9udXRDaGFydDogJ2RvbnV0LWNoYXJ0JyxcbiAgbGluZUNoYXJ0OiAnbGluZS1jaGFydCcsXG4gIGJhckNoYXJ0OiAnYmFyLWNoYXJ0JyxcbiAgZ2F1Z2VDaGFydDogJ2dhdWdlLWNoYXJ0JyxcbiAgc3RpY2t5Tm90ZTogJ3N0aWNreS1ub3RlJyxcbiAgY2xvY2tDYWxlbmRhcjogJ2Nsb2NrLWNhbGVuZGFyJyxcbiAgYW5hbG9nQ2xvY2s6ICdhbmFsb2ctY2xvY2snLFxuICB3ZWF0aGVyOiAnd2VhdGhlcicsXG4gIG1pbmltYWxXZWF0aGVyOiAnbWluaW1hbC13ZWF0aGVyJyxcbiAgYWR2YW5jZWRXZWF0aGVyOiAnYWR2YW5jZWQtd2VhdGhlcicsXG4gIG1ldGFEYXRhOiAnbWV0YS1kYXRhLWVkaXRvcicsXG4gIHRlbXBsYXRlRWRpdG9yOiAndGVtcGxhdGUtYm94LWVkaXRvcicsXG4gIHBhbmVsOiAncGFuZWwnLFxuICBub3RpZmljYXRpb246ICdub3RpZmljYXRpb24nLFxuICB0YXNrQm9hcmQ6ICd0YXNrLWJvYXJkJyxcbiAgY29tbWVudDogJ2NvbW1lbnQnLFxuICBsaXN0OiAnbGlzdCcsXG4gIGxpc3RUb29sYmFyOiAnbGlzdC10b29sYmFyJyxcbiAgZW50aXR5TGlzdDogJ2VudGl0eS1saXN0JyxcblxuICBkb2N1bWVudFVwbG9hZGVyOiAnZG9jdW1lbnQtdXBsb2FkZXInLFxufTtcblxuZXhwb3J0IHsgQVhQV2lkZ2V0c0NhdGFsb2cgfTtcbiJdfQ==","import { InjectionToken } from '@angular/core';\nimport { cloneDeep, isNil, merge } from 'lodash-es';\nimport { AXPWidgetsCatalog } from './widget-catalog';\nexport function cloneProperty(property, values) {\n return merge(cloneDeep(property), values);\n}\nexport function createStringProperty(ctor) {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'string',\n defaultValue: ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: !isNil(ctor.visible) ? ctor.visible : true,\n };\n}\nexport function createNumberProperty(ctor) {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'number',\n defaultValue: ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.number,\n options: ctor.options,\n },\n },\n visible: !isNil(ctor.visible) ? ctor.visible : true,\n };\n}\nexport function createBooleanProperty(ctor) {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'boolean',\n defaultValue: ctor.defaultValue ?? false,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: ctor.visible ?? true,\n };\n}\nexport function createSelectProperty(ctor) {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'string',\n defaultValue: Array.isArray(ctor.defaultValue)\n ? ctor.defaultValue.map((item) => (typeof item === 'string' ? { id: item } : item))\n : typeof ctor.defaultValue === 'string'\n ? { id: ctor.defaultValue, title: ctor.defaultValue }\n : ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: ctor.dataSource.map((item) => (typeof item === 'string' ? { id: item, title: item } : item)),\n },\n },\n },\n visible: ctor.visible ?? true,\n };\n}\nexport const AXP_WIDGET_TOKEN = new InjectionToken('AXP_WIDGET_TOKEN');\nexport const AXP_WIDGET_COLUMN_TOKEN = new InjectionToken('AXP_WIDGET_COLUMN_TOKEN');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvd2lkZ2V0LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBNkJyRCxNQUFNLFVBQVUsYUFBYSxDQUMzQixRQUEyQixFQUMzQixNQUEyQztJQUUzQyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxJQU9wQztJQUNDLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7UUFDakIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1FBQ2pCLE1BQU0sRUFBRTtZQUNOLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixTQUFTLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJO2dCQUM1QixJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUM3QjtTQUNGO1FBQ0QsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSTtLQUNwRCxDQUFDO0FBQ0os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QyxDQUFDO2lCQUN6RzthQUNGO1NBQ0Y7UUFDRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJO0tBQzlCLENBQUM7QUFDSixDQUFDO0FBaUNELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUFxQixrQkFBa0IsQ0FBQyxDQUFDO0FBQzNGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUEyQix5QkFBeUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhQRGF0YVR5cGUsXG4gIEFYUE1ldGFEYXRhLFxuICBBWFBPcHRpb25zRGF0YSxcbiAgQVhQUGFydGlhbE5lc3RlZCxcbiAgQVhQVmFsaWRhdGlvblJ1bGVzLFxuICBBWFBWYWx1ZVRyYW5zZm9ybWVyRnVuY3Rpb25zLFxuICBBWFBXaWRnZXRUcmlnZ2Vycyxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGlzTmlsLCBtZXJnZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBXaWRnZXRzQ2F0YWxvZyB9IGZyb20gJy4vd2lkZ2V0LWNhdGFsb2cnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q2F0ZWdvcnkgfSBmcm9tICcuL3dpZGdldC1jYXRlZ29yaWVzJztcbmltcG9ydCB7IEFYUFdpZGdldEdyb3VwIH0gZnJvbSAnLi93aWRnZXQtZ3JvdXAudHlwZXMnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0VHlwZXNNYXAgfSBmcm9tICcuL3dpZGdldC1tYXAnO1xuaW1wb3J0IHsgQVhQUGFnZVN0YXR1cyB9IGZyb20gJy4vd2lkZ2V0LXN0YXR1cy50eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2lkZ2V0UHJvcGVydHlHcm91cCB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgb3JkZXI6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBXaWRnZXRQcm9wZXJ0eSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGdyb3VwOiBBWFBXaWRnZXRQcm9wZXJ0eUdyb3VwO1xuICBvcmRlcj86IG51bWJlcjtcbiAgc2NoZW1hOiB7XG4gICAgZGF0YVR5cGU6IEFYUERhdGFUeXBlO1xuICAgIG51bGxhYmxlPzogYm9vbGVhbjtcbiAgICBkZWZhdWx0VmFsdWU/OiBhbnkgfCBzdHJpbmcgfCAoKGNvbnRleHQ6IGFueSB8IG51bGwpID0+IGFueSk7XG4gICAgaW50ZXJmYWNlOiBSZXF1aXJlZDxQaWNrPEFYUFdpZGdldE5vZGUsICdwYXRoJz4+ICYgT21pdDxBWFBXaWRnZXROb2RlLCAncGF0aCc+O1xuICB9O1xuICBvcHRpb25zPzogQVhQT3B0aW9uc0RhdGE7XG4gIHZhbGlkYXRpb25zPzogQVhQVmFsaWRhdGlvblJ1bGVzO1xuICB2aXNpYmxlOiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xvbmVQcm9wZXJ0eShcbiAgcHJvcGVydHk6IEFYUFdpZGdldFByb3BlcnR5LFxuICB2YWx1ZXM6IEFYUFBhcnRpYWxOZXN0ZWQ8QVhQV2lkZ2V0UHJvcGVydHk+XG4pOiBBWFBXaWRnZXRQcm9wZXJ0eSB7XG4gIHJldHVybiBtZXJnZShjbG9uZURlZXAocHJvcGVydHkpLCB2YWx1ZXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3RyaW5nUHJvcGVydHkoY3Rvcjoge1xuICBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcbiAgZ3JvdXA6IEFYUFdpZGdldFByb3BlcnR5R3JvdXA7XG4gIHZpc2libGU/OiBib29sZWFuO1xufSk6IEFYUFdpZGdldFByb3BlcnR5IHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBjdG9yLm5hbWUsXG4gICAgdGl0bGU6IGN0b3IudGl0bGUsXG4gICAgZ3JvdXA6IGN0b3IuZ3JvdXAsXG4gICAgc2NoZW1hOiB7XG4gICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICBkZWZhdWx0VmFsdWU6IGN0b3IuZGVmYXVsdFZhbHVlLFxuICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgIG5hbWU6IGN0b3IubmFtZSxcbiAgICAgICAgcGF0aDogY3Rvci5wYXRoID8/IGN0b3IubmFtZSxcbiAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB2aXNpYmxlOiAhaXNOaWwoY3Rvci52aXNpYmxlKSA/IGN0b3IudmlzaWJsZSA6IHRydWUsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOdW1iZXJQcm9wZXJ0eShjdG9yOiB7XG4gIGRlZmF1bHRWYWx1ZT86IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuICBncm91cDogQVhQV2lkZ2V0UHJvcGVydHlHcm91cDtcbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIG9wdGlvbnM/OiB7XG4gICAgbWluVmFsdWU/OiBudW1iZXI7XG4gICAgbWF4VmFsdWU/OiBudW1iZXI7XG4gICAgZGVjaW1hbHM/OiBudW1iZXI7XG4gIH07XG59KTogQVhQV2lkZ2V0UHJvcGVydHkge1xuICByZXR1cm4ge1xuICAgIG5hbWU6IGN0b3IubmFtZSxcbiAgICB0aXRsZTogY3Rvci50aXRsZSxcbiAgICBncm91cDogY3Rvci5ncm91cCxcbiAgICBzY2hlbWE6IHtcbiAgICAgIGRhdGFUeXBlOiAnbnVtYmVyJyxcbiAgICAgIGRlZmF1bHRWYWx1ZTogY3Rvci5kZWZhdWx0VmFsdWUsXG4gICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgbmFtZTogY3Rvci5uYW1lLFxuICAgICAgICBwYXRoOiBjdG9yLnBhdGggPz8gY3Rvci5uYW1lLFxuICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5udW1iZXIsXG4gICAgICAgIG9wdGlvbnM6IGN0b3Iub3B0aW9ucyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB2aXNpYmxlOiAhaXNOaWwoY3Rvci52aXNpYmxlKSA/IGN0b3IudmlzaWJsZSA6IHRydWUsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCb29sZWFuUHJvcGVydHkoY3Rvcjoge1xuICBkZWZhdWx0VmFsdWU/OiBib29sZWFuO1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGdyb3VwOiBBWFBXaWRnZXRQcm9wZXJ0eUdyb3VwO1xuICB2aXNpYmxlPzogYm9vbGVhbjtcbn0pOiBBWFBXaWRnZXRQcm9wZXJ0eSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogY3Rvci5uYW1lLFxuICAgIHRpdGxlOiBjdG9yLnRpdGxlLFxuICAgIGdyb3VwOiBjdG9yLmdyb3VwLFxuICAgIHNjaGVtYToge1xuICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgIGRlZmF1bHRWYWx1ZTogY3Rvci5kZWZhdWx0VmFsdWUgPz8gZmFsc2UsXG4gICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgbmFtZTogY3Rvci5uYW1lLFxuICAgICAgICBwYXRoOiBjdG9yLnBhdGggPz8gY3Rvci5uYW1lLFxuICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgICB9LFxuICAgIH0sXG4gICAgdmlzaWJsZTogY3Rvci52aXNpYmxlID8/IHRydWUsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZWxlY3RQcm9wZXJ0eTxUID0gc3RyaW5nIHwgeyBpZDogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH0+KGN0b3I6IHtcbiAgZGVmYXVsdFZhbHVlOiBUIHwgVFtdIHwgYW55O1xuICBkYXRhU291cmNlOiBUW107XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcbiAgZ3JvdXA6IEFYUFdpZGdldFByb3BlcnR5R3JvdXA7XG4gIHZpc2libGU/OiBib29sZWFuO1xufSk6IEFYUFdpZGdldFByb3BlcnR5IHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBjdG9yLm5hbWUsXG4gICAgdGl0bGU6IGN0b3IudGl0bGUsXG4gICAgZ3JvdXA6IGN0b3IuZ3JvdXAsXG4gICAgc2NoZW1hOiB7XG4gICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICBkZWZhdWx0VmFsdWU6IEFycmF5LmlzQXJyYXkoY3Rvci5kZWZhdWx0VmFsdWUpXG4gICAgICAgID8gY3Rvci5kZWZhdWx0VmFsdWUubWFwKChpdGVtKSA9PiAodHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnID8geyBpZDogaXRlbSB9IDogaXRlbSkpXG4gICAgICAgIDogdHlwZW9mIGN0b3IuZGVmYXVsdFZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8geyBpZDogY3Rvci5kZWZhdWx0VmFsdWUsIHRpdGxlOiBjdG9yLmRlZmF1bHRWYWx1ZSB9XG4gICAgICAgICAgOiBjdG9yLmRlZmF1bHRWYWx1ZSxcbiAgICAgIGludGVyZmFjZToge1xuICAgICAgICBuYW1lOiBjdG9yLm5hbWUsXG4gICAgICAgIHBhdGg6IGN0b3IucGF0aCA/PyBjdG9yLm5hbWUsXG4gICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnNlbGVjdCxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIGRhdGFTb3VyY2U6IGN0b3IuZGF0YVNvdXJjZS5tYXAoKGl0ZW0pID0+ICh0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycgPyB7IGlkOiBpdGVtLCB0aXRsZTogaXRlbSB9IDogaXRlbSkpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHZpc2libGU6IGN0b3IudmlzaWJsZSA/PyB0cnVlLFxuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldE5vZGUge1xuICB0eXBlOiBBWFBXaWRnZXRUeXBlc01hcFtrZXlvZiBBWFBXaWRnZXRUeXBlc01hcF0gfCBrZXlvZiBBWFBXaWRnZXRUeXBlc01hcCB8IHN0cmluZztcbiAgbW9kZT86IEFYUFdpZGdldFJlbmRlck1vZGVcbiAgcGF0aD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZGVmYXVsdFZhbHVlPzogYW55O1xuICBmb3JtdWxhPzogc3RyaW5nO1xuICBjaGlsZHJlbj86IEFYUFdpZGdldE5vZGVbXTtcbiAgb3B0aW9ucz86IEFYUE9wdGlvbnNEYXRhO1xuICB0cmlnZ2Vycz86IEFYUFdpZGdldFRyaWdnZXJzO1xuICBtZXRhPzogQVhQTWV0YURhdGE7XG4gIHZhbHVlVHJhbnNmb3Jtcz86IEFYUFZhbHVlVHJhbnNmb3JtZXJGdW5jdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2lkZ2V0Tm9kZVRva2VuIHtcbiAgZGVmYXVsdFZhbHVlPzogYW55O1xuICBjb25maWc6IEFYUFdpZGdldENvbmZpZztcbiAgbm9kZTogQVhQV2lkZ2V0Tm9kZTtcbiAgb3B0aW9ucz86IEFYUE9wdGlvbnNEYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldENvbHVtbk5vZGUge1xuICB0eXBlOiBzdHJpbmc7XG4gIHBhdGg6IHN0cmluZztcbiAgb3B0aW9ucz86IEFYUE9wdGlvbnNEYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldENvbHVtbk5vZGVUb2tlbiBleHRlbmRzIEFYUFdpZGdldENvbHVtbk5vZGUge1xuICBjb25maWc6IEFYUFdpZGdldENvbmZpZztcbn1cblxuZXhwb3J0IGNvbnN0IEFYUF9XSURHRVRfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQV2lkZ2V0Tm9kZVRva2VuPignQVhQX1dJREdFVF9UT0tFTicpO1xuZXhwb3J0IGNvbnN0IEFYUF9XSURHRVRfQ09MVU1OX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEFYUFdpZGdldENvbHVtbk5vZGVUb2tlbj4oJ0FYUF9XSURHRVRfQ09MVU1OX1RPS0VOJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2lkZ2V0Q29tcG9uZW50Q29uZmlnIHtcbiAgY29tcG9uZW50OiAoKSA9PiBQcm9taXNlPGFueT47XG4gIHByb3BlcnRpZXM/OiBBWFBXaWRnZXRQcm9wZXJ0eVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldENvbmZpZ0NvbXBvbmVudHMge1xuICBkZXNpZ25lcj86IEFYUFdpZGdldENvbXBvbmVudENvbmZpZztcbiAgdmlldz86IEFYUFdpZGdldENvbXBvbmVudENvbmZpZztcbiAgZWRpdD86IEFYUFdpZGdldENvbXBvbmVudENvbmZpZztcbiAgcHJpbnQ/OiBBWFBXaWRnZXRDb21wb25lbnRDb25maWc7XG4gIGNvbHVtbj86IEFYUFdpZGdldENvbXBvbmVudENvbmZpZztcbiAgZmlsdGVyPzogQVhQV2lkZ2V0Q29tcG9uZW50Q29uZmlnO1xufVxuXG5leHBvcnQgdHlwZSBBWFBXaWRnZXRWaWV3VHlwZSA9ICdjb250YWluZXInIHwgJ2VkaXRvcicgfCAnYWN0aW9uJyB8ICd2aWV3JyB8ICdmaWx0ZXInIHwgJ3ZhbGlkYXRpb24nIHwgJ2Rhc2hib2FyZCc7XG5cbmV4cG9ydCB0eXBlIEFYUFdpZGdldERlc2lnbmVyT3B0aW9uc01hcCA9IHtcbiAgY29udGFpbmVyOiB7IGNhbkluc2VydDogYm9vbGVhbiB9O1xuICBlZGl0b3I6IHtcbiAgICBuZWVkTGFiZWw6IGJvb2xlYW47XG4gIH07XG4gIGFjdGlvbjoge307XG4gIHZpZXc6IHt9O1xufTtcblxuZXhwb3J0IHR5cGUgQVhQRXh0cmFjdFdpZGdldENvbmZpZzxUPiA9IHtcbiAgdHlwZTogQVhQV2lkZ2V0Vmlld1R5cGU7XG4gIGRlc2lnbmVyOiBUIGV4dGVuZHMgeyB0eXBlOiBpbmZlciBWIH1cbiAgPyBWIGV4dGVuZHMga2V5b2YgQVhQV2lkZ2V0RGVzaWduZXJPcHRpb25zTWFwXG4gID8gQVhQV2lkZ2V0RGVzaWduZXJPcHRpb25zTWFwW1ZdXG4gIDogYW55XG4gIDogYW55O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBBWFBXaWRnZXRDb25maWc8VCA9IGFueT4ge1xuICBuYW1lOiBBWFBXaWRnZXRUeXBlc01hcFtrZXlvZiBBWFBXaWRnZXRUeXBlc01hcF0gfCBrZXlvZiBBWFBXaWRnZXRUeXBlc01hcCB8IHN0cmluZztcbiAgYWxpYXM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgdGl0bGU6IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNhdGVnb3JpZXM/OiBBWFBXaWRnZXRDYXRlZ29yeSB8IEFYUFdpZGdldENhdGVnb3J5W107XG4gIGdyb3Vwcz86IEFYUFdpZGdldEdyb3VwW107XG4gIHByb3BlcnRpZXM/OiBBWFBXaWRnZXRQcm9wZXJ0eVtdO1xuICBjb21wb25lbnRzOiBBWFBXaWRnZXRDb25maWdDb21wb25lbnRzO1xuICBtZXRhPzogQVhQTWV0YURhdGE7XG4gIHR5cGU6IEFYUEV4dHJhY3RXaWRnZXRDb25maWc8VD5bJ3R5cGUnXTtcbiAgZGVzaWduZXI/OiBBWFBFeHRyYWN0V2lkZ2V0Q29uZmlnPFQ+WydkZXNpZ25lciddO1xuICBvcHRpb25zPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgZGVmYXVsdEZpbHRlcldpZGdldE5hbWU/OlxuICB8ICdzdHJpbmctZmlsdGVyJ1xuICB8ICdudW1iZXItZmlsdGVyJ1xuICB8ICdkYXRldGltZS1maWx0ZXInXG4gIHwgJ2Jvb2xlYW4tZmlsdGVyJ1xuICB8ICdzZWxlY3QtZmlsdGVyJ1xuICB8ICdsb29rdXAtZmlsdGVyJztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgZXh0ZW5kZWRXaWRnZXQge1xuICB3aWRnZXQ6IEFYUFdpZGdldENvbmZpZztcbiAgcGFyZW50TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBBWFBXaWRnZXRSZW5kZXJNb2RlID0ga2V5b2YgQVhQV2lkZ2V0Q29uZmlnQ29tcG9uZW50cztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBMYXlvdXRCdWlsZGVyU3RhdHVzQ2hhbmdlZEV2ZW50IHtcbiAgc3RhdHVzOiBBWFBQYWdlU3RhdHVzO1xufVxuXG5cbiJdfQ==","import { AXDataSource, convertArrayToDataSource } from '@acorex/cdk/common';\nimport { AXPDataSourceDefinitionProviderService, extractValue, } from '@acorex/platform/core';\nimport { computed, effect, ElementRef, inject, Injectable, signal } from '@angular/core';\nimport { cloneDeep, get, isEqual, isNil, isObjectLike, isUndefined } from 'lodash-es';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { AXPLayoutBuilderService, AXPLayoutElement } from './builder.service';\nimport { AXPLayoutBuilderContextStore } from './context-store.service';\nimport { AXPWidgetStatus } from './widget-status.types';\nimport { AXP_WIDGET_COLUMN_TOKEN, AXP_WIDGET_TOKEN } from './widget.types';\nimport * as i0 from \"@angular/core\";\nexport class AXPBaseWidgetComponent extends AXPLayoutElement {\n constructor() {\n super(...arguments);\n this.token = inject(AXP_WIDGET_TOKEN);\n this.host = inject(ElementRef).nativeElement;\n this.layoutService = inject(AXPLayoutBuilderService);\n this.contextService = inject(AXPLayoutBuilderContextStore);\n this.config = this.token.config;\n this.node = this.token.node;\n this.name = this.token.node.name;\n this._options = signal(this.token.options ?? {}, ...(ngDevMode ? [{ debugName: \"_options\" }] : []));\n this.options = this._options.asReadonly();\n this.onOptionsChanged = new Subject();\n this._status = signal(AXPWidgetStatus.Rendering, ...(ngDevMode ? [{ debugName: \"_status\" }] : []));\n this.status = this._status.asReadonly();\n this.onStatusChanged = new BehaviorSubject(this._status());\n this.#statusEffect = effect(() => {\n this.onStatusChanged.next(this.status());\n }, ...(ngDevMode ? [{ debugName: \"#statusEffect\" }] : []));\n this.isBusy = computed(() => [AXPWidgetStatus.Rendering, AXPWidgetStatus.Processing].includes(this.status()), ...(ngDevMode ? [{ debugName: \"isBusy\" }] : []));\n this._children = signal(this.token.node.children ?? [], ...(ngDevMode ? [{ debugName: \"_children\" }] : []));\n this.children = this._children.asReadonly();\n }\n get id() {\n return this._id;\n }\n #statusEffect;\n outputs() {\n return [];\n }\n ngOnInit() {\n if (get(this.node, '__meta__.added')) {\n this.onAdded();\n }\n this.setStatus(AXPWidgetStatus.Rendered);\n }\n setStatus(status) {\n this._status.set(status);\n this.layoutService.updateStatus();\n }\n setOptions(values) {\n const oldValue = this.options();\n const value = cloneDeep(values);\n this._options.set({ ...oldValue, ...value });\n this.onOptionsChanged.next({ sender: this });\n }\n output(name) {\n const outputs = this.outputs().map((c) => (typeof c == 'string' ? { name: c, value: c } : c));\n if (outputs.some((c) => c.name == name)) {\n const opt = get(this, name);\n if (typeof opt == 'function') {\n return opt();\n }\n return opt;\n }\n return null;\n }\n call(name, ...args) {\n const fn = get(this, name);\n if (fn && typeof fn == 'function') {\n fn.bind(this)(...args);\n }\n }\n setChildren(children) {\n this._children.set([...children]);\n }\n onAdded() { }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBaseWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBaseWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBaseWidgetComponent, decorators: [{\n type: Injectable\n }] });\nexport class AXPLayoutBaseWidgetComponent extends AXPBaseWidgetComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBaseWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBaseWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBaseWidgetComponent, decorators: [{\n type: Injectable\n }] });\nexport class AXPValueWidgetComponent extends AXPLayoutBaseWidgetComponent {\n constructor() {\n super(...arguments);\n this.path = this.token.node.path;\n this.defaultValue = this.token.defaultValue ?? this.token.node.defaultValue;\n this._isValueWidget = false;\n this.isValueWidget = () => this._isValueWidget;\n this.onValueChanged = new Subject();\n this.fullPath = signal(null, ...(ngDevMode ? [{ debugName: \"fullPath\" }] : []));\n this.parentPath = signal(null, ...(ngDevMode ? [{ debugName: \"parentPath\" }] : []));\n this.getValue = computed(() => {\n return this.fullPath() ? this.extractValue(this.fullPath()) : null;\n }, ...(ngDevMode ? [{ debugName: \"getValue\", equal: isEqual }] : [{ equal: isEqual }]));\n this.validationRules = computed(() => {\n const validationsRaw = this.options()['validations'];\n if (validationsRaw == null) {\n return [];\n }\n return Object.values(this.options()['validations'])\n .filter((c) => c != null)\n .map((c) => ({\n rule: c.rule,\n message: c.message,\n options: c.options,\n }));\n }, ...(ngDevMode ? [{ debugName: \"validationRules\" }] : []));\n }\n ngOnInit() {\n this._isValueWidget = this.config.properties?.some((c) => c.name == 'path') ?? false;\n if (this.isValueWidget()) {\n this.detectFullPath();\n if (!isNil(this.defaultValue) && isNil(this.getValue())) {\n this.setValue(this.defaultValue);\n }\n }\n //\n super.ngOnInit();\n }\n extractValue(path) {\n const rawValue = this.contextService.getValue(path);\n if (this.node.valueTransforms?.getter) {\n return this.node.valueTransforms?.getter(rawValue);\n }\n return rawValue;\n }\n setValue(value) {\n if (this.node.valueTransforms?.setter) {\n value = this.node.valueTransforms?.setter(value);\n }\n const oldValue = this.getValue();\n value = isUndefined(value) ? null : value;\n if (isNil(value) && isNil(oldValue)) {\n return;\n }\n if (isEqual(oldValue, value)) {\n return;\n }\n if (this.fullPath()) {\n this.contextService.update(this.fullPath(), value);\n this.onValueChanged.next({ sender: this });\n }\n }\n detectFullPath() {\n const sections = [];\n const ids = [];\n //\n let parent = this;\n //\n while (parent) {\n const isValueWidget = parent instanceof AXPValueWidgetComponent && parent.isValueWidget();\n const valueParent = parent;\n const path = valueParent.path ?? (isValueWidget ? valueParent.name : null);\n const id = valueParent.name;\n //\n if (path) {\n sections.push(path);\n }\n if (parent.index != null && isValueWidget) {\n sections.push(`[${parent.index}]`);\n }\n if (id) {\n ids.push(id);\n if (parent.index != null) {\n ids.push(`${parent.index}`);\n }\n }\n parent = parent.parent;\n }\n //\n this.fullPath.set(sections.reverse().join('.'));\n this.parentPath.set(sections.slice(0, sections.length - 1).join('.'));\n this._id = this.name || this.parent ? ids.reverse().join('_') : null;\n if (this._id) {\n this.layoutService.registerWidget(this._id, this);\n }\n }\n handleValueChanged(e) {\n if (e.isUserInteraction) {\n this.setValue(e.value);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPValueWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPValueWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPValueWidgetComponent, decorators: [{\n type: Injectable\n }] });\nexport class AXPDataListWidgetComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.dataService = inject(AXPDataSourceDefinitionProviderService);\n this.textField = computed(() => this.options()['textField'] ?? 'title', ...(ngDevMode ? [{ debugName: \"textField\" }] : []));\n this.valueField = computed(() => this.options()['valueField'] ?? 'id', ...(ngDevMode ? [{ debugName: \"valueField\" }] : []));\n this.dataSource = signal(convertArrayToDataSource([]), ...(ngDevMode ? [{ debugName: \"dataSource\" }] : []));\n this.isReady = computed(() => {\n const key = this.dataSource().config?.key;\n const valueField = this.valueField();\n const result = key == valueField;\n return result;\n }, ...(ngDevMode ? [{ debugName: \"isReady\" }] : []));\n this.selectedItems = signal([], ...(ngDevMode ? [{ debugName: \"selectedItems\" }] : []));\n this.rf = effect(async () => {\n const rawValue = this.options()['dataSource'];\n // static datasource class\n if (rawValue instanceof AXDataSource) {\n this.dataSource.set(rawValue);\n }\n // static array datasource\n else if (Array.isArray(rawValue)) {\n const ds = new AXDataSource({\n key: this.valueField(),\n pageSize: 10,\n load: async (e) => {\n const raw = this.options()['dataSource'];\n return {\n items: raw,\n total: raw.length,\n };\n },\n byKey: (key) => {\n const raw = this.options()['dataSource'];\n const item = raw.filter((c) => c[this.valueField()] == key);\n return Promise.resolve(item[0]);\n },\n });\n this.dataSource.set(ds);\n }\n // resolve data source by name\n else if (rawValue && (typeof rawValue == 'string' || typeof rawValue == 'object')) {\n const id = typeof rawValue == 'object' ? rawValue['id'] : rawValue;\n const c = await this.dataService.get(id);\n if (this.mode == 'designer' && c?.samples?.length) {\n this.dataSource.set(convertArrayToDataSource(c.samples, {\n key: this.valueField(),\n pageSize: 500,\n }));\n }\n else {\n const ds = c?.source();\n if (ds && ds instanceof Promise) {\n const d = await ds;\n this.dataSource.set(d);\n }\n else if (ds) {\n this.dataSource.set(ds);\n }\n // empty datasource\n else {\n this.dataSource.set(convertArrayToDataSource([]));\n }\n }\n }\n // empty datasource\n else {\n this.dataSource.set(convertArrayToDataSource([]));\n }\n }, ...(ngDevMode ? [{ debugName: \"rf\" }] : []));\n this.effect2 = effect(async () => {\n const value = this.getValue();\n const items = [];\n if (Array.isArray(value)) {\n items.push(...(await Promise.all(value.map((item) => this.extractItem(item)))));\n }\n else {\n items.push(await this.extractItem(value));\n }\n this.selectedItems.set(items.filter((c) => c != null));\n }, ...(ngDevMode ? [{ debugName: \"effect2\" }] : []));\n }\n async extractItem(item) {\n if (isNil(item)) {\n return null;\n }\n if (isObjectLike(item) && get(item, this.textField()) != null) {\n return item;\n }\n const key = extractValue(item, this.valueField());\n const ds = this.dataSource();\n if (ds.config?.byKey) {\n const found = await ds.config?.byKey(key);\n if (found) {\n return found;\n }\n }\n return isObjectLike(item)\n ? item\n : {\n [this.valueField()]: item,\n [this.textField()]: item,\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDataListWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDataListWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDataListWidgetComponent, decorators: [{\n type: Injectable\n }] });\nexport class AXPColumnWidgetComponent {\n constructor() {\n this.token = inject(AXP_WIDGET_COLUMN_TOKEN);\n this.path = this.token.path;\n this.options = this.token.options ?? {};\n this.rawValue = null;\n this.nullText = this.options['nullText'];\n this.nullValue = this.options['nullValue'];\n this.value = computed(() => {\n if (isNil(this.rawValue) && !isNil(this.nullValue)) {\n return this.nullValue;\n }\n return this.rawValue;\n }, ...(ngDevMode ? [{ debugName: \"value\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPColumnWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPColumnWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPColumnWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvd2lkZ2V0LWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQXVCLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakcsT0FBTyxFQUNMLHNDQUFzQyxFQUd0QyxZQUFZLEdBQ2IsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQXNDLE1BQU0sZ0JBQWdCLENBQUM7O0FBTS9HLE1BQU0sT0FBZ0Isc0JBQXVCLFNBQVEsZ0JBQWdCO0lBRHJFOztRQUVxQixVQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUErQixDQUFDO1FBRXZELGtCQUFhLEdBQUcsTUFB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Q0FBQyxPQUFPLENBQUMsVUFBVSxDQUFXLENBQUM7UUFDbkQsY0FBUyxHQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFNLENBQUM7UUFFdkQsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDOUIsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUNuRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDeEIsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN2QixDQUFDLGlEQUFDLENBQUM7S0FFSjs4R0FqQnFCLHdCQUF3QjtrSEFBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUQ3QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRhU291cmNlLCBBWFZhbHVlQ2hhbmdlZEV2ZW50LCBjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2UgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHtcbiAgQVhQRGF0YVNvdXJjZURlZmluaXRpb25Qcm92aWRlclNlcnZpY2UsXG4gIEFYUFZhbGlkYXRpb25SdWxlLFxuICBBWFBWYWxpZGF0aW9uUnVsZXMsXG4gIGV4dHJhY3RWYWx1ZSxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IGNvbXB1dGVkLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0YWJsZSwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZ2V0LCBpc0VxdWFsLCBpc05pbCwgaXNPYmplY3RMaWtlLCBpc1VuZGVmaW5lZCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJTZXJ2aWNlLCBBWFBMYXlvdXRFbGVtZW50IH0gZnJvbSAnLi9idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlckNvbnRleHRTdG9yZSB9IGZyb20gJy4vY29udGV4dC1zdG9yZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUFdpZGdldFN0YXR1cyB9IGZyb20gJy4vd2lkZ2V0LXN0YXR1cy50eXBlcyc7XG5pbXBvcnQgeyBBWFBfV0lER0VUX0NPTFVNTl9UT0tFTiwgQVhQX1dJREdFVF9UT0tFTiwgQVhQV2lkZ2V0Tm9kZSwgQVhQV2lkZ2V0UmVuZGVyTW9kZSB9IGZyb20gJy4vd2lkZ2V0LnR5cGVzJztcblxuZXhwb3J0IHR5cGUgQVhQQ2xhc3NNYXAgPSBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj47XG5leHBvcnQgdHlwZSBBWFBTdHlsZU1hcCA9IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4+O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQQmFzZVdpZGdldENvbXBvbmVudCBleHRlbmRzIEFYUExheW91dEVsZW1lbnQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9rZW4gPSBpbmplY3QoQVhQX1dJREdFVF9UT0tFTik7XG4gIHB1YmxpYyByZWFkb25seSBob3N0ID0gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTERpdkVsZW1lbnQ7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxheW91dFNlcnZpY2UgPSBpbmplY3QoQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udGV4dFNlcnZpY2UgPSBpbmplY3QoQVhQTGF5b3V0QnVpbGRlckNvbnRleHRTdG9yZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbmZpZyA9IHRoaXMudG9rZW4uY29uZmlnO1xuICBwdWJsaWMgcmVhZG9ubHkgbm9kZSA9IHRoaXMudG9rZW4ubm9kZTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmFtZSA9IHRoaXMudG9rZW4ubm9kZS5uYW1lO1xuXG4gIHByb3RlY3RlZCBfaWQ6IHN0cmluZyB8IG51bGw7XG4gIHB1YmxpYyBnZXQgaWQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2lkO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9vcHRpb25zID0gc2lnbmFsPGFueT4odGhpcy50b2tlbi5vcHRpb25zID8/IHt9KTtcbiAgcHVibGljIG9wdGlvbnMgPSB0aGlzLl9vcHRpb25zLmFzUmVhZG9ubHkoKTtcblxuICBwdWJsaWMgb25PcHRpb25zQ2hhbmdlZCA9IG5ldyBTdWJqZWN0PHsgc2VuZGVyOiBBWFBCYXNlV2lkZ2V0Q29tcG9uZW50IH0+KCk7XG5cbiAgcHJpdmF0ZSBfc3RhdHVzID0gc2lnbmFsPEFYUFdpZGdldFN0YXR1cz4oQVhQV2lkZ2V0U3RhdHVzLlJlbmRlcmluZyk7XG4gIHB1YmxpYyBzdGF0dXMgPSB0aGlzLl9zdGF0dXMuYXNSZWFkb25seSgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBvblN0YXR1c0NoYW5nZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFYUFdpZGdldFN0YXR1cz4odGhpcy5fc3RhdHVzKCkpO1xuXG4gICNzdGF0dXNFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLm5leHQodGhpcy5zdGF0dXMoKSk7XG4gIH0pO1xuXG4gIHB1YmxpYyBpc0J1c3kgPSBjb21wdXRlZCgoKSA9PiBbQVhQV2lkZ2V0U3RhdHVzLlJlbmRlcmluZywgQVhQV2lkZ2V0U3RhdHVzLlByb2Nlc3NpbmddLmluY2x1ZGVzKHRoaXMuc3RhdHVzKCkpKTtcblxuICBwYXJlbnQ6IEFYUExheW91dEJhc2VXaWRnZXRDb21wb25lbnQgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBpbmRleDogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgbW9kZTogQVhQV2lkZ2V0UmVuZGVyTW9kZTtcbiAgbG9ja2VkOiBib29sZWFuO1xuXG4gIHByb3RlY3RlZCBvdXRwdXRzKCk6IChzdHJpbmcgfCB7IFtuYW1lOiBzdHJpbmddOiB1bmtub3duIH0pW10ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmIChnZXQodGhpcy5ub2RlLCAnX19tZXRhX18uYWRkZWQnKSkge1xuICAgICAgdGhpcy5vbkFkZGVkKCk7XG4gICAgfVxuICAgIHRoaXMuc2V0U3RhdHVzKEFYUFdpZGdldFN0YXR1cy5SZW5kZXJlZCk7XG4gIH1cblxuICBwdWJsaWMgc2V0U3RhdHVzKHN0YXR1czogQVhQV2lkZ2V0U3RhdHVzKSB7XG4gICAgdGhpcy5fc3RhdHVzLnNldChzdGF0dXMpO1xuICAgIHRoaXMubGF5b3V0U2VydmljZS51cGRhdGVTdGF0dXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRPcHRpb25zKHZhbHVlczogYW55KTogdm9pZCB7XG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLm9wdGlvbnMoKTtcbiAgICBjb25zdCB2YWx1ZSA9IGNsb25lRGVlcCh2YWx1ZXMpO1xuICAgIHRoaXMuX29wdGlvbnMuc2V0KHsgLi4ub2xkVmFsdWUsIC4uLnZhbHVlIH0pO1xuICAgIHRoaXMub25PcHRpb25zQ2hhbmdlZC5uZXh0KHsgc2VuZGVyOiB0aGlzIH0pO1xuICB9XG5cbiAgb3V0cHV0PFQgPSBhbnk+KG5hbWU6IHN0cmluZyk6IFQge1xuICAgIGNvbnN0IG91dHB1dHMgPSB0aGlzLm91dHB1dHMoKS5tYXAoKGMpID0+ICh0eXBlb2YgYyA9PSAnc3RyaW5nJyA/IHsgbmFtZTogYywgdmFsdWU6IGMgfSA6IGMpKSBhcyB7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICB2YWx1ZTogdW5rbm93bjtcbiAgICB9W107XG5cbiAgICBpZiAob3V0cHV0cy5zb21lKChjKSA9PiBjLm5hbWUgPT0gbmFtZSkpIHtcbiAgICAgIGNvbnN0IG9wdCA9IGdldCh0aGlzLCBuYW1lKTtcbiAgICAgIGlmICh0eXBlb2Ygb3B0ID09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG9wdCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9wdDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGwgYXMgVDtcbiAgfVxuXG4gIGNhbGwobmFtZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IHZvaWQge1xuICAgIGNvbnN0IGZuID0gZ2V0KHRoaXMsIG5hbWUpIGFzIEZ1bmN0aW9uO1xuICAgIGlmIChmbiAmJiB0eXBlb2YgZm4gPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZm4uYmluZCh0aGlzKSguLi5hcmdzKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NoaWxkcmVuID0gc2lnbmFsKHRoaXMudG9rZW4ubm9kZS5jaGlsZHJlbiA/PyBbXSk7XG4gIHByb3RlY3RlZCBjaGlsZHJlbiA9IHRoaXMuX2NoaWxkcmVuLmFzUmVhZG9ubHkoKTtcblxuICBzZXRDaGlsZHJlbihjaGlsZHJlbjogQVhQV2lkZ2V0Tm9kZVtdKSB7XG4gICAgdGhpcy5fY2hpbGRyZW4uc2V0KFsuLi5jaGlsZHJlbl0pO1xuICB9XG5cbiAgb25BZGRlZCgpIHt9XG5cbiAgaG9zdENsYXNzPygpOiBBWFBDbGFzc01hcDtcbiAgaG9zdFN0eWxlPygpOiBBWFBTdHlsZU1hcDtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUExheW91dEJhc2VXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBBWFBCYXNlV2lkZ2V0Q29tcG9uZW50IHt9XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxUID0gYW55IHwgbnVsbD4gZXh0ZW5kcyBBWFBMYXlvdXRCYXNlV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhdGggPSB0aGlzLnRva2VuLm5vZGUucGF0aDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlZmF1bHRWYWx1ZSA9IHRoaXMudG9rZW4uZGVmYXVsdFZhbHVlID8/IHRoaXMudG9rZW4ubm9kZS5kZWZhdWx0VmFsdWU7XG5cbiAgcHJpdmF0ZSBfaXNWYWx1ZVdpZGdldCA9IGZhbHNlO1xuICBwcml2YXRlIGlzVmFsdWVXaWRnZXQgPSAoKSA9PiB0aGlzLl9pc1ZhbHVlV2lkZ2V0O1xuXG4gIHB1YmxpYyBvblZhbHVlQ2hhbmdlZCA9IG5ldyBTdWJqZWN0PHsgc2VuZGVyOiBBWFBCYXNlV2lkZ2V0Q29tcG9uZW50IH0+KCk7XG5cbiAgcHVibGljIGZ1bGxQYXRoID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgcGFyZW50UGF0aCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9pc1ZhbHVlV2lkZ2V0ID0gdGhpcy5jb25maWcucHJvcGVydGllcz8uc29tZSgoYykgPT4gYy5uYW1lID09ICdwYXRoJykgPz8gZmFsc2U7XG4gICAgaWYgKHRoaXMuaXNWYWx1ZVdpZGdldCgpKSB7XG4gICAgICB0aGlzLmRldGVjdEZ1bGxQYXRoKCk7XG4gICAgICBpZiAoIWlzTmlsKHRoaXMuZGVmYXVsdFZhbHVlKSAmJiBpc05pbCh0aGlzLmdldFZhbHVlKCkpKSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5kZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICAvL1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUgPSBjb21wdXRlZDxUPihcbiAgICAoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5mdWxsUGF0aCgpID8gdGhpcy5leHRyYWN0VmFsdWUodGhpcy5mdWxsUGF0aCgpISkgOiBudWxsO1xuICAgIH0sXG4gICAgeyBlcXVhbDogaXNFcXVhbCB9LFxuICApO1xuXG4gIHByb3RlY3RlZCB2YWxpZGF0aW9uUnVsZXMgPSBjb21wdXRlZDxBWFBWYWxpZGF0aW9uUnVsZXM+KCgpID0+IHtcbiAgICBjb25zdCB2YWxpZGF0aW9uc1JhdyA9IHRoaXMub3B0aW9ucygpWyd2YWxpZGF0aW9ucyddO1xuICAgIGlmICh2YWxpZGF0aW9uc1JhdyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMub3B0aW9ucygpWyd2YWxpZGF0aW9ucyddKVxuICAgICAgLmZpbHRlcigoYykgPT4gYyAhPSBudWxsKVxuICAgICAgLm1hcChcbiAgICAgICAgKGM6IGFueSkgPT5cbiAgICAgICAgICAoe1xuICAgICAgICAgICAgcnVsZTogYy5ydWxlLFxuICAgICAgICAgICAgbWVzc2FnZTogYy5tZXNzYWdlLFxuICAgICAgICAgICAgb3B0aW9uczogYy5vcHRpb25zLFxuICAgICAgICAgIH0pIGFzIEFYUFZhbGlkYXRpb25SdWxlLFxuICAgICAgKTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGV4dHJhY3RWYWx1ZShwYXRoOiBzdHJpbmcpOiBhbnkge1xuICAgIGNvbnN0IHJhd1ZhbHVlID0gdGhpcy5jb250ZXh0U2VydmljZS5nZXRWYWx1ZShwYXRoKTtcbiAgICBpZiAodGhpcy5ub2RlLnZhbHVlVHJhbnNmb3Jtcz8uZ2V0dGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5ub2RlLnZhbHVlVHJhbnNmb3Jtcz8uZ2V0dGVyKHJhd1ZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJhd1ZhbHVlO1xuICB9XG5cbiAgc2V0VmFsdWUodmFsdWU6IFQgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHRoaXMubm9kZS52YWx1ZVRyYW5zZm9ybXM/LnNldHRlcikge1xuICAgICAgdmFsdWUgPSB0aGlzLm5vZGUudmFsdWVUcmFuc2Zvcm1zPy5zZXR0ZXIodmFsdWUpO1xuICAgIH1cbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICB2YWx1ZSA9IGlzVW5kZWZpbmVkKHZhbHVlKSA/IG51bGwgOiB2YWx1ZTtcbiAgICBpZiAoaXNOaWwodmFsdWUpICYmIGlzTmlsKG9sZFZhbHVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoaXNFcXVhbChvbGRWYWx1ZSwgdmFsdWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmZ1bGxQYXRoKCkpIHtcbiAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UudXBkYXRlKHRoaXMuZnVsbFBhdGgoKSEsIHZhbHVlKTtcbiAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQubmV4dCh7IHNlbmRlcjogdGhpcyB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRldGVjdEZ1bGxQYXRoKCkge1xuICAgIGNvbnN0IHNlY3Rpb25zID0gW107XG4gICAgY29uc3QgaWRzID0gW107XG4gICAgLy9cbiAgICBsZXQgcGFyZW50OiBBWFBMYXlvdXRCYXNlV2lkZ2V0Q29tcG9uZW50IHwgbnVsbCB8IHVuZGVmaW5lZCA9IHRoaXMgYXMgQVhQTGF5b3V0QmFzZVdpZGdldENvbXBvbmVudDtcbiAgICAvL1xuICAgIHdoaWxlIChwYXJlbnQpIHtcbiAgICAgIGNvbnN0IGlzVmFsdWVXaWRnZXQgPSBwYXJlbnQgaW5zdGFuY2VvZiBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCAmJiBwYXJlbnQuaXNWYWx1ZVdpZGdldCgpO1xuICAgICAgY29uc3QgdmFsdWVQYXJlbnQgPSBwYXJlbnQgYXMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQ8YW55PjtcbiAgICAgIGNvbnN0IHBhdGggPSB2YWx1ZVBhcmVudC5wYXRoID8/IChpc1ZhbHVlV2lkZ2V0ID8gdmFsdWVQYXJlbnQubmFtZSA6IG51bGwpO1xuICAgICAgY29uc3QgaWQgPSB2YWx1ZVBhcmVudC5uYW1lO1xuICAgICAgLy9cbiAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgIHNlY3Rpb25zLnB1c2gocGF0aCk7XG4gICAgICB9XG4gICAgICBpZiAocGFyZW50LmluZGV4ICE9IG51bGwgJiYgaXNWYWx1ZVdpZGdldCkge1xuICAgICAgICBzZWN0aW9ucy5wdXNoKGBbJHtwYXJlbnQuaW5kZXh9XWApO1xuICAgICAgfVxuICAgICAgaWYgKGlkKSB7XG4gICAgICAgIGlkcy5wdXNoKGlkKTtcbiAgICAgICAgaWYgKHBhcmVudC5pbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgaWRzLnB1c2goYCR7cGFyZW50LmluZGV4fWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50O1xuICAgIH1cbiAgICAvL1xuICAgIHRoaXMuZnVsbFBhdGguc2V0KHNlY3Rpb25zLnJldmVyc2UoKS5qb2luKCcuJykpO1xuICAgIHRoaXMucGFyZW50UGF0aC5zZXQoc2VjdGlvbnMuc2xpY2UoMCwgc2VjdGlvbnMubGVuZ3RoIC0gMSkuam9pbignLicpKTtcbiAgICB0aGlzLl9pZCA9IHRoaXMubmFtZSB8fCB0aGlzLnBhcmVudCA/IGlkcy5yZXZlcnNlKCkuam9pbignXycpIDogbnVsbDtcbiAgICBpZiAodGhpcy5faWQpIHtcbiAgICAgIHRoaXMubGF5b3V0U2VydmljZS5yZWdpc3RlcldpZGdldCh0aGlzLl9pZCwgdGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVZhbHVlQ2hhbmdlZChlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50PFQ+KSB7XG4gICAgaWYgKGUuaXNVc2VySW50ZXJhY3Rpb24pIHtcbiAgICAgIHRoaXMuc2V0VmFsdWUoZS52YWx1ZSk7XG4gICAgfVxuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBEYXRhTGlzdFdpZGdldENvbXBvbmVudCBleHRlbmRzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50PGFueT4ge1xuICBwcml2YXRlIGRhdGFTZXJ2aWNlID0gaW5qZWN0KEFYUERhdGFTb3VyY2VEZWZpbml0aW9uUHJvdmlkZXJTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgdGV4dEZpZWxkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsndGV4dEZpZWxkJ10gPz8gJ3RpdGxlJyk7XG4gIHByb3RlY3RlZCB2YWx1ZUZpZWxkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiAodGhpcy5vcHRpb25zKClbJ3ZhbHVlRmllbGQnXSBhcyBzdHJpbmcpID8/ICdpZCcpO1xuICBwcm90ZWN0ZWQgZGF0YVNvdXJjZSA9IHNpZ25hbDxBWERhdGFTb3VyY2U8YW55Pj4oY29udmVydEFycmF5VG9EYXRhU291cmNlPGFueT4oW10pKTtcblxuICBwcm90ZWN0ZWQgaXNSZWFkeSA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLmRhdGFTb3VyY2UoKS5jb25maWc/LmtleTtcbiAgICBjb25zdCB2YWx1ZUZpZWxkID0gdGhpcy52YWx1ZUZpZWxkKCk7XG4gICAgY29uc3QgcmVzdWx0ID0ga2V5ID09IHZhbHVlRmllbGQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG5cbiAgcHVibGljIHNlbGVjdGVkSXRlbXMgPSBzaWduYWw8YW55W10+KFtdKTtcblxuICBwcml2YXRlIHJmID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByYXdWYWx1ZSA9IHRoaXMub3B0aW9ucygpWydkYXRhU291cmNlJ107XG4gICAgLy8gc3RhdGljICBkYXRhc291cmNlIGNsYXNzXG4gICAgaWYgKHJhd1ZhbHVlIGluc3RhbmNlb2YgQVhEYXRhU291cmNlKSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2Uuc2V0KHJhd1ZhbHVlKTtcbiAgICB9XG4gICAgLy8gc3RhdGljIGFycmF5IGRhdGFzb3VyY2VcbiAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJhd1ZhbHVlKSkge1xuICAgICAgY29uc3QgZHMgPSBuZXcgQVhEYXRhU291cmNlKHtcbiAgICAgICAga2V5OiB0aGlzLnZhbHVlRmllbGQoKSxcbiAgICAgICAgcGFnZVNpemU6IDEwLFxuICAgICAgICBsb2FkOiBhc3luYyAoZTogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmF3ID0gdGhpcy5vcHRpb25zKClbJ2RhdGFTb3VyY2UnXTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHJhdyxcbiAgICAgICAgICAgIHRvdGFsOiByYXcubGVuZ3RoLFxuICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIGJ5S2V5OiAoa2V5OiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmF3ID0gdGhpcy5vcHRpb25zKClbJ2RhdGFTb3VyY2UnXTtcbiAgICAgICAgICBjb25zdCBpdGVtID0gcmF3LmZpbHRlcigoYzogYW55KSA9PiBjW3RoaXMudmFsdWVGaWVsZCgpXSA9PSBrZXkpO1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoaXRlbVswXSkgYXMgYW55O1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICB0aGlzLmRhdGFTb3VyY2Uuc2V0KGRzKTtcbiAgICB9XG4gICAgLy8gcmVzb2x2ZSBkYXRhIHNvdXJjZSBieSBuYW1lXG4gICAgZWxzZSBpZiAocmF3VmFsdWUgJiYgKHR5cGVvZiByYXdWYWx1ZSA9PSAnc3RyaW5nJyB8fCB0eXBlb2YgcmF3VmFsdWUgPT0gJ29iamVjdCcpKSB7XG4gICAgICBjb25zdCBpZCA9IHR5cGVvZiByYXdWYWx1ZSA9PSAnb2JqZWN0JyA/IHJhd1ZhbHVlWydpZCddIDogcmF3VmFsdWU7XG4gICAgICBjb25zdCBjID0gYXdhaXQgdGhpcy5kYXRhU2VydmljZS5nZXQoaWQpO1xuICAgICAgaWYgKHRoaXMubW9kZSA9PSAnZGVzaWduZXInICYmIGM/LnNhbXBsZXM/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2Uuc2V0KFxuICAgICAgICAgIGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZShjLnNhbXBsZXMsIHtcbiAgICAgICAgICAgIGtleTogdGhpcy52YWx1ZUZpZWxkKCksXG4gICAgICAgICAgICBwYWdlU2l6ZTogNTAwLFxuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZHMgPSBjPy5zb3VyY2UoKTtcbiAgICAgICAgaWYgKGRzICYmIGRzIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgIGNvbnN0IGQgPSBhd2FpdCBkcztcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2Uuc2V0KGQpO1xuICAgICAgICB9IGVsc2UgaWYgKGRzKSB7XG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlLnNldChkcyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZW1wdHkgZGF0YXNvdXJjZVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2Uuc2V0KGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZTxhbnk+KFtdKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gZW1wdHkgZGF0YXNvdXJjZVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5kYXRhU291cmNlLnNldChjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2U8YW55PihbXSkpO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGV4dHJhY3RJdGVtKGl0ZW06IHVua25vd24pOiBQcm9taXNlPGFueT4ge1xuICAgIGlmIChpc05pbChpdGVtKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmIChpc09iamVjdExpa2UoaXRlbSkgJiYgZ2V0KGl0ZW0sIHRoaXMudGV4dEZpZWxkKCkpICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSBleHRyYWN0VmFsdWUoaXRlbSwgdGhpcy52YWx1ZUZpZWxkKCkpO1xuICAgIGNvbnN0IGRzID0gdGhpcy5kYXRhU291cmNlKCk7XG4gICAgaWYgKGRzLmNvbmZpZz8uYnlLZXkpIHtcbiAgICAgIGNvbnN0IGZvdW5kID0gYXdhaXQgZHMuY29uZmlnPy5ieUtleShrZXkpO1xuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIHJldHVybiBmb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGlzT2JqZWN0TGlrZShpdGVtKVxuICAgICAgPyBpdGVtXG4gICAgICA6IHtcbiAgICAgICAgICBbdGhpcy52YWx1ZUZpZWxkKCldOiBpdGVtLFxuICAgICAgICAgIFt0aGlzLnRleHRGaWVsZCgpXTogaXRlbSxcbiAgICAgICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZWZmZWN0MiA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgY29uc3QgaXRlbXM6IGFueVtdID0gW107XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBpdGVtcy5wdXNoKC4uLihhd2FpdCBQcm9taXNlLmFsbCh2YWx1ZS5tYXAoKGl0ZW06IGFueSkgPT4gdGhpcy5leHRyYWN0SXRlbShpdGVtKSkpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGl0ZW1zLnB1c2goYXdhaXQgdGhpcy5leHRyYWN0SXRlbSh2YWx1ZSkpO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KGl0ZW1zLmZpbHRlcigoYykgPT4gYyAhPSBudWxsKSk7XG4gIH0pO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQQ29sdW1uV2lkZ2V0Q29tcG9uZW50PFQgPSBhbnkgfCBudWxsIHwgdm9pZD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IHRva2VuID0gaW5qZWN0KEFYUF9XSURHRVRfQ09MVU1OX1RPS0VOKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGF0aCA9IHRoaXMudG9rZW4ucGF0aDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnMgPSB0aGlzLnRva2VuLm9wdGlvbnMgPz8ge307XG4gIHByb3RlY3RlZCByZWFkb25seSByYXdWYWx1ZTogVCA9IG51bGwgYXMgVDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvd0RhdGE6IGFueTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG51bGxUZXh0OiBhbnkgPSB0aGlzLm9wdGlvbnNbJ251bGxUZXh0J10gYXMgc3RyaW5nO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbnVsbFZhbHVlOiBUID0gdGhpcy5vcHRpb25zWydudWxsVmFsdWUnXSBhcyBUO1xuXG4gIHByb3RlY3RlZCB2YWx1ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAoaXNOaWwodGhpcy5yYXdWYWx1ZSkgJiYgIWlzTmlsKHRoaXMubnVsbFZhbHVlKSkge1xuICAgICAgcmV0dXJuIHRoaXMubnVsbFZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yYXdWYWx1ZTtcbiAgfSk7XG5cbn1cbiJdfQ==","import { computed, Injectable } from '@angular/core';\nimport { AXPLayoutBaseWidgetComponent } from '../widget-base.component';\nimport * as i0 from \"@angular/core\";\nexport class AXPBoxModelLayoutWidgetComponent extends AXPLayoutBaseWidgetComponent {\n constructor() {\n super(...arguments);\n this.hostBoxStyle = computed(() => {\n const options = this.options();\n const style = {};\n const spacing = options?.['spacing'];\n const border = options?.['border'];\n const backgroundColor = options?.['backgroundColor'];\n const direction = options?.['direction'];\n const overflow = options?.['overflow'];\n const overflowX = options?.['overflowX'];\n const overflowY = options?.['overflowY'];\n style['background-color'] = backgroundColor ?? '';\n style['padding'] = spacing?.padding ?? '';\n style['margin'] = spacing?.margin ?? '';\n style['border-radius'] = border?.radius ?? '';\n style['border-width'] = border?.width ?? '';\n style['border-color'] = border?.color ?? '';\n style['border-style'] = border?.style ?? '';\n style['overflow'] = overflow ?? '';\n style['overflow-x'] = overflowX ?? '';\n style['overflow-y'] = overflowY ?? '';\n style['direction'] = direction ?? '';\n return style;\n }, ...(ngDevMode ? [{ debugName: \"hostBoxStyle\" }] : []));\n this.blockStyle = computed(() => {\n const options = this.options();\n const style = { ...this.hostBoxStyle() };\n const width = options?.['width'];\n const minWidth = options?.['minWidth'];\n const maxWidth = options?.['maxWidth'];\n const height = options?.['height'];\n const minHeight = options?.['minHeight'];\n const maxHeight = options?.['maxHeight'];\n style['min-width'] = minWidth ?? '';\n style['width'] = width ?? '';\n style['max-width'] = maxWidth ?? '';\n style['min-height'] = minHeight ?? '';\n style['height'] = height ?? '';\n style['max-height'] = maxHeight ?? '';\n return style;\n }, ...(ngDevMode ? [{ debugName: \"blockStyle\" }] : []));\n this.inlineStyle = computed(() => {\n return { ...this.hostBoxStyle() };\n }, ...(ngDevMode ? [{ debugName: \"inlineStyle\" }] : []));\n this.blockClass = computed(() => {\n return {\n 'ax-block': true,\n 'ax-w-full': true,\n // 'ax-widget-outline': true,\n };\n }, ...(ngDevMode ? [{ debugName: \"blockClass\" }] : []));\n this.inlineClass = computed(() => {\n return {\n 'ax-inline-block': true,\n };\n }, ...(ngDevMode ? [{ debugName: \"inlineClass\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBoxModelLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBoxModelLayoutWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBoxModelLayoutWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LW1vZGVsLXdpZGdldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci9iYXNlLXdpZGdldC9ib3gtbW9kZWwtd2lkZ2V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQWUsNEJBQTRCLEVBQWUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFHbEcsTUFBTSxPQUFnQixnQ0FBaUMsU0FBUSw0QkFBNEI7SUFEM0Y7O1FBRVMsaUJBQVksR0FBRyxRQUFRLENBQWMsR0FBRyxFQUFFO1lBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUUvQixNQUFNLEtBQUssR0FBb0MsRUFBRSxDQUFDO1lBRWxELE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBb0MsQ0FBQztZQUN4RSxNQUFNLE1BQU0sR0FBRyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQW1DLENBQUM7WUFFckUsTUFBTSxlQUFlLEdBQUcsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQXVCLENBQUM7WUFDM0UsTUFBTSxTQUFTLEdBQUcsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUF1QixDQUFDO1lBRS9ELE1BQU0sUUFBUSxHQUFHLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBdUIsQ0FBQztZQUM3RCxNQUFNLFNBQVMsR0FBRyxPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQXVCLENBQUM7WUFDL0QsTUFBTSxTQUFTLEdBQUcsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUF1QixDQUFDO1lBRS9ELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLGVBQWUsSUFBSSxFQUFFLENBQUM7WUFDbEQsS0FB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O2tCQURyRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEJvcmRlckJveFN0cmluZywgQVhQU3BhY2luZ0JveFN0cmluZyB9IGZyb20gJy4uL2hlbHBlcic7XG5pbXBvcnQgeyBBWFBDbGFzc01hcCwgQVhQTGF5b3V0QmFzZVdpZGdldENvbXBvbmVudCwgQVhQU3R5bGVNYXAgfSBmcm9tICcuLi93aWRnZXQtYmFzZS5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQQm94TW9kZWxMYXlvdXRXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBBWFBMYXlvdXRCYXNlV2lkZ2V0Q29tcG9uZW50IHtcbiAgcHVibGljIGhvc3RCb3hTdHlsZSA9IGNvbXB1dGVkPEFYUFN0eWxlTWFwPigoKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucygpO1xuXG4gICAgY29uc3Qgc3R5bGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4gPSB7fTtcblxuICAgIGNvbnN0IHNwYWNpbmcgPSBvcHRpb25zPy5bJ3NwYWNpbmcnXSBhcyBBWFBTcGFjaW5nQm94U3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGJvcmRlciA9IG9wdGlvbnM/LlsnYm9yZGVyJ10gYXMgQVhQQm9yZGVyQm94U3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgYmFja2dyb3VuZENvbG9yID0gb3B0aW9ucz8uWydiYWNrZ3JvdW5kQ29sb3InXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgZGlyZWN0aW9uID0gb3B0aW9ucz8uWydkaXJlY3Rpb24nXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBvdmVyZmxvdyA9IG9wdGlvbnM/Llsnb3ZlcmZsb3cnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgY29uc3Qgb3ZlcmZsb3dYID0gb3B0aW9ucz8uWydvdmVyZmxvd1gnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgY29uc3Qgb3ZlcmZsb3dZID0gb3B0aW9ucz8uWydvdmVyZmxvd1knXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBzdHlsZVsnYmFja2dyb3VuZC1jb2xvciddID0gYmFja2dyb3VuZENvbG9yID8/ICcnO1xuICAgIHN0eWxlWydwYWRkaW5nJ10gPSBzcGFjaW5nPy5wYWRkaW5nID8/ICcnO1xuICAgIHN0eWxlWydtYXJnaW4nXSA9IHNwYWNpbmc/Lm1hcmdpbiA/PyAnJztcblxuICAgIHN0eWxlWydib3JkZXItcmFkaXVzJ10gPSBib3JkZXI/LnJhZGl1cyA/PyAnJztcbiAgICBzdHlsZVsnYm9yZGVyLXdpZHRoJ10gPSBib3JkZXI/LndpZHRoID8/ICcnO1xuICAgIHN0eWxlWydib3JkZXItY29sb3InXSA9IGJvcmRlcj8uY29sb3IgPz8gJyc7XG4gICAgc3R5bGVbJ2JvcmRlci1zdHlsZSddID0gYm9yZGVyPy5zdHlsZSA/PyAnJztcblxuICAgIHN0eWxlWydvdmVyZmxvdyddID0gb3ZlcmZsb3cgPz8gJyc7XG4gICAgc3R5bGVbJ292ZXJmbG93LXgnXSA9IG92ZXJmbG93WCA/PyAnJztcbiAgICBzdHlsZVsnb3ZlcmZsb3cteSddID0gb3ZlcmZsb3dZID8/ICcnO1xuXG4gICAgc3R5bGVbJ2RpcmVjdGlvbiddID0gZGlyZWN0aW9uID8/ICcnO1xuXG4gICAgcmV0dXJuIHN0eWxlO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgYmxvY2tTdHlsZSA9IGNvbXB1dGVkPEFYUFN0eWxlTWFwPigoKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucygpO1xuXG4gICAgY29uc3Qgc3R5bGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4gPSB7IC4uLnRoaXMuaG9zdEJveFN0eWxlKCkgfTtcblxuICAgIGNvbnN0IHdpZHRoID0gb3B0aW9ucz8uWyd3aWR0aCddIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBtaW5XaWR0aCA9IG9wdGlvbnM/LlsnbWluV2lkdGgnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgbWF4V2lkdGggPSBvcHRpb25zPy5bJ21heFdpZHRoJ10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgaGVpZ2h0ID0gb3B0aW9ucz8uWydoZWlnaHQnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgbWluSGVpZ2h0ID0gb3B0aW9ucz8uWydtaW5IZWlnaHQnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgbWF4SGVpZ2h0ID0gb3B0aW9ucz8uWydtYXhIZWlnaHQnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBzdHlsZVsnbWluLXdpZHRoJ10gPSBtaW5XaWR0aCA/PyAnJztcbiAgICBzdHlsZVsnd2lkdGgnXSA9IHdpZHRoID8/ICcnO1xuICAgIHN0eWxlWydtYXgtd2lkdGgnXSA9IG1heFdpZHRoID8/ICcnO1xuXG4gICAgc3R5bGVbJ21pbi1oZWlnaHQnXSA9IG1pbkhlaWdodCA/PyAnJztcbiAgICBzdHlsZVsnaGVpZ2h0J10gPSBoZWlnaHQgPz8gJyc7XG4gICAgc3R5bGVbJ21heC1oZWlnaHQnXSA9IG1heEhlaWdodCA/PyAnJztcblxuICAgIHJldHVybiBzdHlsZTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGlubGluZVN0eWxlID0gY29tcHV0ZWQ8QVhQU3R5bGVNYXA+KCgpID0+IHtcbiAgICByZXR1cm4geyAuLi50aGlzLmhvc3RCb3hTdHlsZSgpIH07XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBibG9ja0NsYXNzID0gY29tcHV0ZWQ8QVhQQ2xhc3NNYXA+KCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2F4LWJsb2NrJzogdHJ1ZSxcbiAgICAgICdheC13LWZ1bGwnOiB0cnVlLFxuICAgICAgLy8gJ2F4LXdpZGdldC1vdXRsaW5lJzogdHJ1ZSxcbiAgICB9O1xuICB9KTtcblxuICBwcm90ZWN0ZWQgaW5saW5lQ2xhc3MgPSBjb21wdXRlZDxBWFBDbGFzc01hcD4oKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAnYXgtaW5saW5lLWJsb2NrJzogdHJ1ZSxcbiAgICB9O1xuICB9KTtcbn1cbiJdfQ==","import { Injectable, computed } from '@angular/core';\nimport { AXPBoxModelLayoutWidgetComponent } from './box-model-widget.component';\nimport * as i0 from \"@angular/core\";\nexport class AXPBlockBaseLayoutWidgetComponent extends AXPBoxModelLayoutWidgetComponent {\n constructor() {\n super(...arguments);\n this.hostClass = computed(() => this.blockClass(), ...(ngDevMode ? [{ debugName: \"hostClass\" }] : []));\n this.hostStyle = computed(() => this.blockStyle(), ...(ngDevMode ? [{ debugName: \"hostStyle\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBlockBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBlockBaseLayoutWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBlockBaseLayoutWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYmFzZS13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvYmFzZS13aWRnZXQvYmxvY2stYmFzZS13aWRnZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUdoRixNQUFNLE9BQWdCLGlDQUFrQyxTQUFRLGdDQUFnQztJQURoRzs7UUFFa0IsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLHFEQUFDLENBQUM7UUFDOUMsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLHFEQUFDLENBQUM7S0FDL0Q7OEdBSHFCLGlDQUFpQztrSEFBakMsaUNBQWlDOzsyRkFBakMsaUNBQWlDO2tCQUR0RCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEJveE1vZGVsTGF5b3V0V2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi9ib3gtbW9kZWwtd2lkZ2V0LmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBCbG9ja0Jhc2VMYXlvdXRXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBBWFBCb3hNb2RlbExheW91dFdpZGdldENvbXBvbmVudCB7XG4gIHB1YmxpYyBvdmVycmlkZSBob3N0Q2xhc3MgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmJsb2NrQ2xhc3MoKSk7XG4gIHB1YmxpYyBvdmVycmlkZSBob3N0U3R5bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmJsb2NrU3R5bGUoKSk7XG59XG4iXX0=","import { Injectable, computed } from '@angular/core';\nimport { isNil } from 'lodash-es';\nimport { AXPBlockBaseLayoutWidgetComponent } from './block-base-widget.component';\nimport * as i0 from \"@angular/core\";\nexport class AXPFlexBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent {\n constructor() {\n super(...arguments);\n this.flex = computed(() => this.options(), ...(ngDevMode ? [{ debugName: \"flex\" }] : []));\n this.hostFlexStyle = computed(() => {\n const blockStyle = this.blockStyle();\n const style = { ...blockStyle };\n const flex = this.flex();\n if (isNil(flex?.flexDirection)) {\n style['flex-direction'] = '';\n }\n else {\n style['flex-direction'] = flex.flexDirection;\n }\n if (isNil(flex?.flexWrap)) {\n style['flex-wrap'] = '';\n }\n else {\n style['flex-wrap'] = flex.flexWrap;\n }\n //TODO NEED TO FIX LATER\n style['overflow'] = flex?.flexWrap === 'nowrap' ? 'auto' : '';\n //END\n if (isNil(flex?.justifyContent)) {\n style['justify-content'] = '';\n }\n else {\n style['justify-content'] = flex.justifyContent;\n }\n if (isNil(flex?.alignItems)) {\n style['align-items'] = '';\n }\n else {\n style['align-items'] = flex.alignItems;\n }\n if (isNil(flex?.gap)) {\n style['gap'] = '';\n }\n else {\n style['gap'] = flex.gap;\n }\n return style;\n }, ...(ngDevMode ? [{ debugName: \"hostFlexStyle\" }] : []));\n this.hostFlexClass = computed(() => {\n return {\n ...this.blockClass(),\n 'ax-flex': true,\n 'ax-h-full': true,\n };\n }, ...(ngDevMode ? [{ debugName: \"hostFlexClass\" }] : []));\n this.hostClass = computed(() => {\n return this.hostFlexClass();\n }, ...(ngDevMode ? [{ debugName: \"hostClass\" }] : []));\n this.hostStyle = computed(() => {\n return this.hostFlexStyle();\n }, ...(ngDevMode ? [{ debugName: \"hostStyle\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPFlexBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPFlexBaseLayoutWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPFlexBaseLayoutWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxleC1iYXNlLXdpZGdldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci9iYXNlLXdpZGdldC9mbGV4LWJhc2Utd2lkZ2V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWxDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUdsRixNQUFNLE9BQWdCLGdDQUFpQyxTQUFRLGlDQUFpQztJQURoRzs7UUFFWSxTQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQWtDLGdEQUFDLENBQUM7UUFFekUsa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ25DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQyxNQUFNLEtBQUssR0FBb0MsRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFDO1lBQ2pFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQy9CLENBQUM7aUJBQU0sQ0FBQztnQkFDTixLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQy9DLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDMUIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMxQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDckMsQ0FBQztZQUNELHdCQUF3QjtZQUN4QixLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxFQUFFLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzlELEtBQUs7WUFDTCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2hDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ2pELENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM1QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDekMsQ0FBQztZQUNELElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNyQixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUMxQixDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLHlEQUFDLENBQUM7UUFFSSxrQkFBYSxHQUFHLFFBQVEsQ0FBMEIsR0FBRyxFQUFFO1lBQzVELE9BQU87Z0JBQ0wsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixTQUFTLEVBQUUsSUFBSTtnQkFDZixXQUFXLEVBQUUsSUFBSTthQUNsQixDQUFDO1FBQ0osQ0FBQyx5REFBQyxDQUFDO1FBRWEsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxxREFBQyxDQUFDO1FBRWEsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxxREFBQyxDQUFDO0tBQ0o7OEdBckRxQixnQ0FBZ0M7a0hBQWhDLGdDQUFnQzs7MkZBQWhDLGdDQUFnQztrQkFEckQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBGbGV4Qm94U3RyaW5nIH0gZnJvbSAnLi4vaGVscGVyJztcbmltcG9ydCB7IEFYUEJsb2NrQmFzZUxheW91dFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4vYmxvY2stYmFzZS13aWRnZXQuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUEZsZXhCYXNlTGF5b3V0V2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgQVhQQmxvY2tCYXNlTGF5b3V0V2lkZ2V0Q29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIGZsZXggPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKSBhcyBBWFBGbGV4Qm94U3RyaW5nIHwgdW5kZWZpbmVkKTtcblxuICBwdWJsaWMgaG9zdEZsZXhTdHlsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBibG9ja1N0eWxlID0gdGhpcy5ibG9ja1N0eWxlKCk7XG4gICAgY29uc3Qgc3R5bGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4gPSB7IC4uLmJsb2NrU3R5bGUgfTtcbiAgICBjb25zdCBmbGV4ID0gdGhpcy5mbGV4KCk7XG4gICAgaWYgKGlzTmlsKGZsZXg/LmZsZXhEaXJlY3Rpb24pKSB7XG4gICAgICBzdHlsZVsnZmxleC1kaXJlY3Rpb24nXSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZVsnZmxleC1kaXJlY3Rpb24nXSA9IGZsZXguZmxleERpcmVjdGlvbjtcbiAgICB9XG4gICAgaWYgKGlzTmlsKGZsZXg/LmZsZXhXcmFwKSkge1xuICAgICAgc3R5bGVbJ2ZsZXgtd3JhcCddID0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlWydmbGV4LXdyYXAnXSA9IGZsZXguZmxleFdyYXA7XG4gICAgfVxuICAgIC8vVE9ETyBORUVEIFRPIEZJWCBMQVRFUlxuICAgIHN0eWxlWydvdmVyZmxvdyddID0gZmxleD8uZmxleFdyYXAgPT09ICdub3dyYXAnID8gJ2F1dG8nIDogJyc7XG4gICAgLy9FTkRcbiAgICBpZiAoaXNOaWwoZmxleD8uanVzdGlmeUNvbnRlbnQpKSB7XG4gICAgICBzdHlsZVsnanVzdGlmeS1jb250ZW50J10gPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGVbJ2p1c3RpZnktY29udGVudCddID0gZmxleC5qdXN0aWZ5Q29udGVudDtcbiAgICB9XG4gICAgaWYgKGlzTmlsKGZsZXg/LmFsaWduSXRlbXMpKSB7XG4gICAgICBzdHlsZVsnYWxpZ24taXRlbXMnXSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZVsnYWxpZ24taXRlbXMnXSA9IGZsZXguYWxpZ25JdGVtcztcbiAgICB9XG4gICAgaWYgKGlzTmlsKGZsZXg/LmdhcCkpIHtcbiAgICAgIHN0eWxlWydnYXAnXSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZVsnZ2FwJ10gPSBmbGV4LmdhcDtcbiAgICB9XG4gICAgcmV0dXJuIHN0eWxlO1xuICB9KTtcblxuICBwdWJsaWMgaG9zdEZsZXhDbGFzcyA9IGNvbXB1dGVkPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PigoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuYmxvY2tDbGFzcygpLFxuICAgICAgJ2F4LWZsZXgnOiB0cnVlLFxuICAgICAgJ2F4LWgtZnVsbCc6IHRydWUsXG4gICAgfTtcbiAgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGhvc3RDbGFzcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5ob3N0RmxleENsYXNzKCk7XG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBob3N0U3R5bGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdEZsZXhTdHlsZSgpO1xuICB9KTtcbn1cbiJdfQ==","import { computed, Injectable } from '@angular/core';\nimport { AXPBoxModelLayoutWidgetComponent } from './box-model-widget.component';\nimport * as i0 from \"@angular/core\";\nexport class AXPInlineBaseLayoutWidgetComponent extends AXPBoxModelLayoutWidgetComponent {\n constructor() {\n super(...arguments);\n this.hostClass = computed(() => this.inlineClass(), ...(ngDevMode ? [{ debugName: \"hostClass\" }] : []));\n this.hostStyle = computed(() => this.inlineStyle(), ...(ngDevMode ? [{ debugName: \"hostStyle\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPInlineBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPInlineBaseLayoutWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPInlineBaseLayoutWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWJhc2Utd2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL2Jhc2Utd2lkZ2V0L2lubGluZS1iYXNlLXdpZGdldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBR2hGLE1BQU0sT0FBZ0Isa0NBQW1DLFNBQVEsZ0NBQWdDO0lBRGpHOztRQUVrQixjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUscURBQUMsQ0FBQztRQUMvQyxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUscURBQUMsQ0FBQztLQUNoRTs4R0FIcUIsa0NBQWtDO2tIQUFsQyxrQ0FBa0M7OzJGQUFsQyxrQ0FBa0M7a0JBRHZELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQQm94TW9kZWxMYXlvdXRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL2JveC1tb2RlbC13aWRnZXQuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUElubGluZUJhc2VMYXlvdXRXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBBWFBCb3hNb2RlbExheW91dFdpZGdldENvbXBvbmVudCB7XG4gIHB1YmxpYyBvdmVycmlkZSBob3N0Q2xhc3MgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmlubGluZUNsYXNzKCkpO1xuICBwdWJsaWMgb3ZlcnJpZGUgaG9zdFN0eWxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pbmxpbmVTdHlsZSgpKTtcbn1cbiJdfQ==","import { Injectable, computed } from '@angular/core';\nimport { isNil } from 'lodash-es';\nimport { AXPInlineBaseLayoutWidgetComponent } from './inline-base-widget.component';\nimport * as i0 from \"@angular/core\";\nexport class AXPFlexItemBaseLayoutWidgetComponent extends AXPInlineBaseLayoutWidgetComponent {\n constructor() {\n super(...arguments);\n this.flexItem = computed(() => this.options(), ...(ngDevMode ? [{ debugName: \"flexItem\" }] : []));\n this.hostFlexItemStyle = computed(() => {\n const inlineStyle = this.blockStyle();\n const style = { ...inlineStyle };\n const fi = this.flexItem();\n if (isNil(fi?.order)) {\n style['order'] = '';\n }\n else {\n style['order'] = fi.order;\n }\n if (isNil(fi?.grow)) {\n style['flex-grow'] = '';\n }\n else {\n style['flex-grow'] = fi.grow;\n }\n if (isNil(fi?.shrink)) {\n style['flex-shrink'] = '';\n }\n else {\n style['flex-shrink'] = fi.shrink;\n }\n if (isNil(fi?.basis)) {\n style['flex-basis'] = '';\n }\n else {\n style['flex-basis'] = fi.basis;\n }\n if (isNil(fi?.alignSelf)) {\n style['align-self'] = '';\n }\n else {\n style['align-self'] = fi.alignSelf;\n }\n return style;\n }, ...(ngDevMode ? [{ debugName: \"hostFlexItemStyle\" }] : []));\n this.hostFlexItemClass = computed(() => {\n return {\n ...this.blockClass(),\n };\n }, ...(ngDevMode ? [{ debugName: \"hostFlexItemClass\" }] : []));\n this.hostClass = computed(() => {\n return this.hostFlexItemClass();\n }, ...(ngDevMode ? [{ debugName: \"hostClass\" }] : []));\n this.hostStyle = computed(() => {\n return this.hostFlexItemStyle();\n }, ...(ngDevMode ? [{ debugName: \"hostStyle\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPFlexItemBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPFlexItemBaseLayoutWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPFlexItemBaseLayoutWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxleC1pdGVtLWJhc2Utd2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL2Jhc2Utd2lkZ2V0L2ZsZXgtaXRlbS1iYXNlLXdpZGdldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVsQyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFHcEYsTUFBTSxPQUFnQixvQ0FBcUMsU0FBUSxrQ0FBa0M7SUFEckc7O1FBRVksYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFzQyxvREFBQyxDQUFDO1FBRWpGLHNCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sS0FBSyxHQUFvQyxFQUFFLEdBQUcsV0FBVyxFQUFFLENBQUM7WUFDbEUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNyQixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUM1QixDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3BCLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDMUIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQy9CLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM1QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDbkMsQ0FBQztZQUNELElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNyQixLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzNCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNqQyxDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDM0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ3JDLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsNkRBQUMsQ0FBQztRQUVJLHNCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsT0FBTztnQkFDTCxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUU7YUFDckIsQ0FBQztRQUNKLENBQUMsNkRBQUMsQ0FBQztRQUVhLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDbEMsQ0FBQyxxREFBQyxDQUFDO1FBRWEsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNsQyxDQUFDLHFEQUFDLENBQUM7S0FDSjs4R0FoRHFCLG9DQUFvQztrSEFBcEMsb0NBQW9DOzsyRkFBcEMsb0NBQW9DO2tCQUR6RCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzTmlsIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUEZsZXhJdGVtQm94U3RyaW5nIH0gZnJvbSAnLi4vaGVscGVyJztcbmltcG9ydCB7IEFYUElubGluZUJhc2VMYXlvdXRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL2lubGluZS1iYXNlLXdpZGdldC5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQRmxleEl0ZW1CYXNlTGF5b3V0V2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgQVhQSW5saW5lQmFzZUxheW91dFdpZGdldENvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBmbGV4SXRlbSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpIGFzIEFYUEZsZXhJdGVtQm94U3RyaW5nIHwgdW5kZWZpbmVkKTtcblxuICBwdWJsaWMgaG9zdEZsZXhJdGVtU3R5bGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgaW5saW5lU3R5bGUgPSB0aGlzLmJsb2NrU3R5bGUoKTtcbiAgICBjb25zdCBzdHlsZTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPiA9IHsgLi4uaW5saW5lU3R5bGUgfTtcbiAgICBjb25zdCBmaSA9IHRoaXMuZmxleEl0ZW0oKTtcbiAgICBpZiAoaXNOaWwoZmk/Lm9yZGVyKSkge1xuICAgICAgc3R5bGVbJ29yZGVyJ10gPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGVbJ29yZGVyJ10gPSBmaS5vcmRlcjtcbiAgICB9XG4gICAgaWYgKGlzTmlsKGZpPy5ncm93KSkge1xuICAgICAgc3R5bGVbJ2ZsZXgtZ3JvdyddID0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlWydmbGV4LWdyb3cnXSA9IGZpLmdyb3c7XG4gICAgfVxuICAgIGlmIChpc05pbChmaT8uc2hyaW5rKSkge1xuICAgICAgc3R5bGVbJ2ZsZXgtc2hyaW5rJ10gPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGVbJ2ZsZXgtc2hyaW5rJ10gPSBmaS5zaHJpbms7XG4gICAgfVxuICAgIGlmIChpc05pbChmaT8uYmFzaXMpKSB7XG4gICAgICBzdHlsZVsnZmxleC1iYXNpcyddID0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlWydmbGV4LWJhc2lzJ10gPSBmaS5iYXNpcztcbiAgICB9XG4gICAgaWYgKGlzTmlsKGZpPy5hbGlnblNlbGYpKSB7XG4gICAgICBzdHlsZVsnYWxpZ24tc2VsZiddID0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlWydhbGlnbi1zZWxmJ10gPSBmaS5hbGlnblNlbGY7XG4gICAgfVxuICAgIHJldHVybiBzdHlsZTtcbiAgfSk7XG5cbiAgcHVibGljIGhvc3RGbGV4SXRlbUNsYXNzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmJsb2NrQ2xhc3MoKSxcbiAgICB9O1xuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgaG9zdENsYXNzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmhvc3RGbGV4SXRlbUNsYXNzKCk7XG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBob3N0U3R5bGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdEZsZXhJdGVtU3R5bGUoKTtcbiAgfSk7XG59XG4iXX0=","import { Injectable, computed } from '@angular/core';\nimport { AXPBlockBaseLayoutWidgetComponent } from './block-base-widget.component';\nimport * as i0 from \"@angular/core\";\nexport class AXPGridBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent {\n constructor() {\n super(...arguments);\n this.grid = computed(() => this.options()?.grid, ...(ngDevMode ? [{ debugName: \"grid\" }] : []));\n this.hostGridStyle = computed(() => {\n const style = { ...this.inlineStyle() };\n const g = this.grid()?.default;\n if (g?.gap)\n style['gap'] = g.gap;\n return style;\n }, ...(ngDevMode ? [{ debugName: \"hostGridStyle\" }] : []));\n this.hostGridClass = computed(() => {\n const cls = {\n ...this.inlineClass(),\n 'ax-grid': true,\n };\n const g = this.grid()?.default;\n if (g?.columns)\n cls[`lg:ax-grid-cols-${g.columns}`] = true;\n if (g?.rows)\n cls[`lg:ax-grid-rows-${g.rows}`] = true;\n if (g?.justifyItems)\n cls[`lg:ax-justify-items-${g.justifyItems}`] = true;\n if (g?.alignItems)\n cls[`lg:ax-align-items-${g.alignItems}`] = true;\n if (g?.autoFlow)\n cls[`lg:ax-grid-flow-${g.autoFlow}`] = true;\n return cls;\n }, ...(ngDevMode ? [{ debugName: \"hostGridClass\" }] : []));\n this.hostClass = computed(() => this.hostGridClass(), ...(ngDevMode ? [{ debugName: \"hostClass\" }] : []));\n this.hostStyle = computed(() => this.hostGridStyle(), ...(ngDevMode ? [{ debugName: \"hostStyle\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPGridBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPGridBaseLayoutWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPGridBaseLayoutWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1iYXNlLXdpZGdldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci9iYXNlLXdpZGdldC9ncmlkLWJhc2Utd2lkZ2V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFHbEYsTUFBTSxPQUFnQixnQ0FBaUMsU0FBUSxpQ0FBaUM7SUFEaEc7O1FBRVUsU0FBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBMkMsZ0RBQUMsQ0FBQztRQUVwRixrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsTUFBTSxLQUFLLEdBQW9DLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN6RSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDO1lBRS9CLElBQUksQ0FBQyxFQUFFLEdBQUc7Z0JBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFFakMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLHlEQUFDLENBQUM7UUFFSSxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsTUFBTSxHQUFHLEdBQTRCO2dCQUNuQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3JCLFNBQVMsRUFBRSxJQUFJO2FBQ2hCLENBQUM7WUFFRixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDO1lBRS9CLElBQUksQ0FBQyxFQUFFLE9BQU87Z0JBQUUsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDM0QsSUFBSSxDQUFDLEVBQUUsSUFBSTtnQkFBRSxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNyRCxJQUFJLENBQUMsRUFBRSxZQUFZO2dCQUFFLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3pFLElBQUksQ0FBQyxFQUFFLFVBQVU7Z0JBQUUsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDbkUsSUFBSSxDQUFDLEVBQUUsUUFBUTtnQkFBRSxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUU3RCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMseURBQUMsQ0FBQztRQUVhLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxxREFBQyxDQUFDO1FBQ2pELGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxxREFBQyxDQUFDO0tBQ2xFOzhHQS9CcUIsZ0NBQWdDO2tIQUFoQyxnQ0FBZ0M7OzJGQUFoQyxnQ0FBZ0M7a0JBRHJELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQR3JpZEJyZWFrcG9pbnRWYWx1ZXMgfSBmcm9tICcuLi9oZWxwZXInO1xuaW1wb3J0IHsgQVhQQmxvY2tCYXNlTGF5b3V0V2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi9ibG9jay1iYXNlLXdpZGdldC5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQR3JpZEJhc2VMYXlvdXRXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBBWFBCbG9ja0Jhc2VMYXlvdXRXaWRnZXRDb21wb25lbnQge1xuICBwcml2YXRlIGdyaWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKT8uZ3JpZCBhcyBBWFBHcmlkQnJlYWtwb2ludFZhbHVlcyB8IHVuZGVmaW5lZCk7XG5cbiAgcHVibGljIGhvc3RHcmlkU3R5bGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc3R5bGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4gPSB7IC4uLnRoaXMuaW5saW5lU3R5bGUoKSB9O1xuICAgIGNvbnN0IGcgPSB0aGlzLmdyaWQoKT8uZGVmYXVsdDtcblxuICAgIGlmIChnPy5nYXApIHN0eWxlWydnYXAnXSA9IGcuZ2FwO1xuXG4gICAgcmV0dXJuIHN0eWxlO1xuICB9KTtcblxuICBwdWJsaWMgaG9zdEdyaWRDbGFzcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjbHM6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge1xuICAgICAgLi4udGhpcy5pbmxpbmVDbGFzcygpLFxuICAgICAgJ2F4LWdyaWQnOiB0cnVlLFxuICAgIH07XG5cbiAgICBjb25zdCBnID0gdGhpcy5ncmlkKCk/LmRlZmF1bHQ7XG5cbiAgICBpZiAoZz8uY29sdW1ucykgY2xzW2BsZzpheC1ncmlkLWNvbHMtJHtnLmNvbHVtbnN9YF0gPSB0cnVlO1xuICAgIGlmIChnPy5yb3dzKSBjbHNbYGxnOmF4LWdyaWQtcm93cy0ke2cucm93c31gXSA9IHRydWU7XG4gICAgaWYgKGc/Lmp1c3RpZnlJdGVtcykgY2xzW2BsZzpheC1qdXN0aWZ5LWl0ZW1zLSR7Zy5qdXN0aWZ5SXRlbXN9YF0gPSB0cnVlO1xuICAgIGlmIChnPy5hbGlnbkl0ZW1zKSBjbHNbYGxnOmF4LWFsaWduLWl0ZW1zLSR7Zy5hbGlnbkl0ZW1zfWBdID0gdHJ1ZTtcbiAgICBpZiAoZz8uYXV0b0Zsb3cpIGNsc1tgbGc6YXgtZ3JpZC1mbG93LSR7Zy5hdXRvRmxvd31gXSA9IHRydWU7XG5cbiAgICByZXR1cm4gY2xzO1xuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgaG9zdENsYXNzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5ob3N0R3JpZENsYXNzKCkpO1xuICBwdWJsaWMgb3ZlcnJpZGUgaG9zdFN0eWxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5ob3N0R3JpZFN0eWxlKCkpO1xufVxuIl19","import { Injectable, computed } from '@angular/core';\nimport { AXPFlexBaseLayoutWidgetComponent } from './flex-base-widget.component';\nimport * as i0 from \"@angular/core\";\nexport class AXPGridItemBaseLayoutWidgetComponent extends AXPFlexBaseLayoutWidgetComponent {\n constructor() {\n super(...arguments);\n this.gridItem = computed(() => this.options(), ...(ngDevMode ? [{ debugName: \"gridItem\" }] : []));\n this.hostGridItemStyle = computed(() => {\n const style = { ...this.hostFlexStyle() };\n const g = this.gridItem();\n if (g?.alignSelf)\n style['align-self'] = g.alignSelf;\n if (g?.justifySelf)\n style['justify-self'] = g.justifySelf;\n return style;\n }, ...(ngDevMode ? [{ debugName: \"hostGridItemStyle\" }] : []));\n this.hostGridItemClass = computed(() => {\n const cls = { ...this.hostFlexClass() };\n const g = this.gridItem();\n if (g?.colSpan)\n cls[`lg:ax-col-span-${g.colSpan}`] = true;\n if (g?.colStart)\n cls[`lg:ax-col-start-${g.colStart}`] = true;\n if (g?.colEnd)\n cls[`lg:ax-col-end-${g.colEnd}`] = true;\n if (g?.rowSpan)\n cls[`lg:ax-row-span-${g.rowSpan}`] = true;\n if (g?.rowStart)\n cls[`lg:ax-row-start-${g.rowStart}`] = true;\n if (g?.rowEnd)\n cls[`lg:ax-row-end-${g.rowEnd}`] = true;\n return cls;\n }, ...(ngDevMode ? [{ debugName: \"hostGridItemClass\" }] : []));\n this.hostClass = computed(() => this.hostGridItemClass(), ...(ngDevMode ? [{ debugName: \"hostClass\" }] : []));\n this.hostStyle = computed(() => this.hostGridItemStyle(), ...(ngDevMode ? [{ debugName: \"hostStyle\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPGridItemBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPGridItemBaseLayoutWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPGridItemBaseLayoutWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1pdGVtLWJhc2Utd2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL2Jhc2Utd2lkZ2V0L2dyaWQtaXRlbS1iYXNlLXdpZGdldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBR2hGLE1BQU0sT0FBZ0Isb0NBQXFDLFNBQVEsZ0NBQWdDO0lBRG5HOztRQUVVLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBc0Msb0RBQUMsQ0FBQztRQUUvRSxzQkFBaUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3ZDLE1BQU0sS0FBSyxHQUFvQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDM0UsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBRTFCLElBQUksQ0FBQyxFQUFFLFNBQVM7Z0JBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDcEQsSUFBSSxDQUFDLEVBQUUsV0FBVztnQkFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztZQUUxRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsNkRBQUMsQ0FBQztRQUVJLHNCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsTUFBTSxHQUFHLEdBQTRCLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUNqRSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFMUIsSUFBSSxDQUFDLEVBQUUsT0FBTztnQkFBRSxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUMxRCxJQUFJLENBQUMsRUFBRSxRQUFRO2dCQUFFLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQzdELElBQUksQ0FBQyxFQUFFLE1BQU07Z0JBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7WUFFdkQsSUFBSSxDQUFDLEVBQUUsT0FBTztnQkFBRSxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUMxRCxJQUFJLENBQUMsRUFBRSxRQUFRO2dCQUFFLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQzdELElBQUksQ0FBQyxFQUFFLE1BQU07Z0JBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7WUFFdkQsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLDZEQUFDLENBQUM7UUFFYSxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxxREFBQyxDQUFDO1FBQ3JELGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLHFEQUFDLENBQUM7S0FDdEU7OEdBOUJxQixvQ0FBb0M7a0hBQXBDLG9DQUFvQzs7MkZBQXBDLG9DQUFvQztrQkFEekQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBHcmlkSXRlbUJveFN0cmluZyB9IGZyb20gJy4uL2hlbHBlci9wcm9wZXJ0eS1lZGl0b3IudHlwZSc7XG5pbXBvcnQgeyBBWFBGbGV4QmFzZUxheW91dFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4vZmxleC1iYXNlLXdpZGdldC5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQR3JpZEl0ZW1CYXNlTGF5b3V0V2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgQVhQRmxleEJhc2VMYXlvdXRXaWRnZXRDb21wb25lbnQge1xuICBwcml2YXRlIGdyaWRJdGVtID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCkgYXMgQVhQR3JpZEl0ZW1Cb3hTdHJpbmcgfCB1bmRlZmluZWQpO1xuXG4gIHB1YmxpYyBob3N0R3JpZEl0ZW1TdHlsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzdHlsZTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPiA9IHsgLi4udGhpcy5ob3N0RmxleFN0eWxlKCkgfTtcbiAgICBjb25zdCBnID0gdGhpcy5ncmlkSXRlbSgpO1xuXG4gICAgaWYgKGc/LmFsaWduU2VsZikgc3R5bGVbJ2FsaWduLXNlbGYnXSA9IGcuYWxpZ25TZWxmO1xuICAgIGlmIChnPy5qdXN0aWZ5U2VsZikgc3R5bGVbJ2p1c3RpZnktc2VsZiddID0gZy5qdXN0aWZ5U2VsZjtcblxuICAgIHJldHVybiBzdHlsZTtcbiAgfSk7XG5cbiAgcHVibGljIGhvc3RHcmlkSXRlbUNsYXNzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNsczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7IC4uLnRoaXMuaG9zdEZsZXhDbGFzcygpIH07XG4gICAgY29uc3QgZyA9IHRoaXMuZ3JpZEl0ZW0oKTtcblxuICAgIGlmIChnPy5jb2xTcGFuKSBjbHNbYGxnOmF4LWNvbC1zcGFuLSR7Zy5jb2xTcGFufWBdID0gdHJ1ZTtcbiAgICBpZiAoZz8uY29sU3RhcnQpIGNsc1tgbGc6YXgtY29sLXN0YXJ0LSR7Zy5jb2xTdGFydH1gXSA9IHRydWU7XG4gICAgaWYgKGc/LmNvbEVuZCkgY2xzW2BsZzpheC1jb2wtZW5kLSR7Zy5jb2xFbmR9YF0gPSB0cnVlO1xuXG4gICAgaWYgKGc/LnJvd1NwYW4pIGNsc1tgbGc6YXgtcm93LXNwYW4tJHtnLnJvd1NwYW59YF0gPSB0cnVlO1xuICAgIGlmIChnPy5yb3dTdGFydCkgY2xzW2BsZzpheC1yb3ctc3RhcnQtJHtnLnJvd1N0YXJ0fWBdID0gdHJ1ZTtcbiAgICBpZiAoZz8ucm93RW5kKSBjbHNbYGxnOmF4LXJvdy1lbmQtJHtnLnJvd0VuZH1gXSA9IHRydWU7XG5cbiAgICByZXR1cm4gY2xzO1xuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgaG9zdENsYXNzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5ob3N0R3JpZEl0ZW1DbGFzcygpKTtcbiAgcHVibGljIG92ZXJyaWRlIGhvc3RTdHlsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaG9zdEdyaWRJdGVtU3R5bGUoKSk7XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport class AXPWidgetRegistryService {\n /**\n *\n */\n constructor() {\n this.types = new Map();\n AXPWidgetRegistryService.instance = this;\n }\n register(widget) {\n this.types.set(widget.name, widget);\n }\n extend(parentName, widget) {\n const parentWidget = this.resolve(parentName);\n const newWidget = merge({}, parentWidget, widget);\n newWidget.name = widget.name;\n this.register(newWidget);\n }\n resolve(name) {\n const widget = this.types.get(name);\n if (!widget) {\n throw new Error(`Widget with name \"${name}\" does not exist.`);\n }\n return widget;\n }\n all() {\n return Array.from(this.types.values());\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetRegistryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXJlZ2lzdGVyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvd2lkZ2V0LXJlZ2lzdGVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFNbEMsTUFBTSxPQUFPLHdCQUF3QjtJQUtuQzs7T0FFRztJQUNIO1FBUFEsVUFBSyxHQUFpQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBUXRELHdCQUF3QixDQUFDLFFBQVEsR0FBQyxJQUFJLENBQUM7SUFDekMsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUF1QjtRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBa0IsRUFBRSxNQUF1QjtRQUNoRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELFNBQVMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBWTtRQUNsQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixJQUFJLG1CQUFtQixDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxHQUFHO1FBQ1IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDOzhHQWpDVSx3QkFBd0I7a0hBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzsyRkFFUCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q29uZmlnIH0gZnJvbSAnLi93aWRnZXQudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB0eXBlczogTWFwPHN0cmluZywgQVhQV2lkZ2V0Q29uZmlnPiA9IG5ldyBNYXAoKTtcblxuICBwdWJsaWMgc3RhdGljICBpbnN0YW5jZTpBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2U7XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UuaW5zdGFuY2U9dGhpcztcbiAgfVxuXG4gIHJlZ2lzdGVyKHdpZGdldDogQVhQV2lkZ2V0Q29uZmlnKSB7XG4gICAgdGhpcy50eXBlcy5zZXQod2lkZ2V0Lm5hbWUsIHdpZGdldCk7XG4gIH1cblxuICBleHRlbmQocGFyZW50TmFtZTogc3RyaW5nLCB3aWRnZXQ6IEFYUFdpZGdldENvbmZpZykge1xuICAgIGNvbnN0IHBhcmVudFdpZGdldCA9IHRoaXMucmVzb2x2ZShwYXJlbnROYW1lKTtcbiAgICBjb25zdCBuZXdXaWRnZXQgPSBtZXJnZSh7fSwgcGFyZW50V2lkZ2V0LCB3aWRnZXQpO1xuICAgIG5ld1dpZGdldC5uYW1lID0gd2lkZ2V0Lm5hbWU7XG4gICAgdGhpcy5yZWdpc3RlcihuZXdXaWRnZXQpO1xuICB9XG5cbiAgcmVzb2x2ZShuYW1lOiBzdHJpbmcpOiBBWFBXaWRnZXRDb25maWcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHdpZGdldCA9IHRoaXMudHlwZXMuZ2V0KG5hbWUpO1xuICAgIGlmICghd2lkZ2V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFdpZGdldCB3aXRoIG5hbWUgXCIke25hbWV9XCIgZG9lcyBub3QgZXhpc3QuYCk7XG4gICAgfVxuICAgIHJldHVybiB3aWRnZXQ7XG4gIH1cblxuICBwdWJsaWMgYWxsKCk6IEFYUFdpZGdldENvbmZpZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnR5cGVzLnZhbHVlcygpKTtcbiAgfVxufVxuIl19","import { AXBaseDataTable, AXDataTableColumnComponent } from '@acorex/components/data-table';\nimport { getSmart } from '@acorex/platform/core';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Injector, Input, TemplateRef, ViewChild, inject, signal, } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXP_WIDGET_COLUMN_TOKEN } from './widget.types';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/core/translation\";\nexport class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {\n constructor() {\n super(...arguments);\n this.widgetRegistery = inject(AXPWidgetRegistryService);\n this.grid = inject(AXBaseDataTable);\n this.mergedOptions = signal({}, ...(ngDevMode ? [{ debugName: \"mergedOptions\" }] : []));\n this.loadingRow = signal(null, ...(ngDevMode ? [{ debugName: \"loadingRow\" }] : []));\n this.injector = inject(Injector);\n this.cdr = inject(ChangeDetectorRef);\n }\n get node() {\n return this._node;\n }\n set node(v) {\n this._node = v;\n }\n get renderFooterTemplate() {\n return this.footerTemplate ?? this._contentFooterTemplate;\n }\n get renderCellTemplate() {\n return this.cellTemplate ?? this._contentCellTemplate;\n }\n async handleExpandRow(row) {\n this.loadingRow.set(row);\n await this.grid.expandRow(row);\n this.loadingRow.set(null);\n // if (row.data?.__meta__?.expanded === undefined) {\n // this.width = `${parseInt(this.width as string) + 24}px`;\n // }\n }\n get renderHeaderTemplate() {\n return this.headerTemplate ?? this._contentHeaderTemplate;\n }\n get loadingEnabled() {\n return true;\n }\n get name() {\n return `col-${this.node.path}`;\n }\n async ngOnInit() {\n const widget = this.widgetRegistery.resolve(this.node.type);\n const mode = 'column';\n this.component = await widget?.components[mode]?.component();\n //\n const props = widget?.components[mode]?.properties\n ?.filter((c) => c.schema.defaultValue)\n .map((c) => ({ [c.name]: c.schema.defaultValue }))\n .reduce((acc, curr) => {\n return { ...acc, ...curr };\n }, {});\n //\n this.mergedOptions.set(merge(props, this.node.options) || {});\n const tokenValue = {\n path: this.node.path,\n options: this.mergedOptions(),\n };\n this.widgetInjector = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_COLUMN_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n this.width = this.customWidth ? this.customWidth : (this.mergedOptions().width ?? '200px');\n this.allowResizing = this.mergedOptions().allowResizing || true;\n this.cdr.detectChanges();\n }\n getInputs(data) {\n return {\n rawValue: getSmart(data, this.node.path),\n rowData: data,\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetColumnRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPWidgetColumnRendererComponent, isStandalone: false, selector: \"axp-widget-column-renderer\", inputs: { caption: \"caption\", customExpandIcon: \"customExpandIcon\", customCollapseIcon: \"customCollapseIcon\", customWidth: \"customWidth\", node: \"node\", footerTemplate: \"footerTemplate\", expandHandler: \"expandHandler\", cellTemplate: \"cellTemplate\", headerTemplate: \"headerTemplate\" }, providers: [\n AXPLayoutBuilderService,\n { provide: AXDataTableColumnComponent, useExisting: AXPWidgetColumnRendererComponent },\n ], viewQueries: [{ propertyName: \"_contentFooterTemplate\", first: true, predicate: [\"footer\"], descendants: true }, { propertyName: \"_contentCellTemplate\", first: true, predicate: [\"cell\"], descendants: true }, { propertyName: \"_contentHeaderTemplate\", first: true, predicate: [\"header\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n <ng-template #header>{{ caption | translate | async }}</ng-template>\n <ng-template #cell let-row>\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n @if (expandHandler) {\n <div\n (click)=\"handleExpandRow(row)\"\n class=\"ax-expand-handler\"\n [class.ax-invisible]=\"row.data.hasChild === false\"\n id=\"ax-expand-handler-container\"\n [style.padding-inline-start.rem]=\"row.data?.__meta__?.level * 2\"\n >\n @if (loadingRow() === row) {\n <i class=\"fas fa-spinner-third ax-animate-twSpin ax-animate-infinite\"></i>\n } @else {\n @if (row.data?.__meta__?.expanded) {\n <i [class]=\"customCollapseIcon || 'far fa-minus-square ax-text-md ax-opacity-75'\"></i>\n } @else {\n <i [class]=\"customExpandIcon || 'far fa-plus-square ax-text-md ax-opacity-75'\"></i>\n }\n }\n </div>\n }\n @if (component && widgetInjector && row?.data) {\n <ng-container\n *ngComponentOutlet=\"component; injector: widgetInjector; inputs: getInputs(row.data)\"\n ></ng-container>\n }\n </div>\n </ng-template>\n <ng-template #footer></ng-template>\n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1.NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: [\"ngComponentOutlet\", \"ngComponentOutletInputs\", \"ngComponentOutletInjector\", \"ngComponentOutletEnvironmentInjector\", \"ngComponentOutletContent\", \"ngComponentOutletNgModule\", \"ngComponentOutletNgModuleFactory\"], exportAs: [\"ngComponentOutlet\"] }, { kind: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i2.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetColumnRendererComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-widget-column-renderer',\n template: `\n <ng-template #header>{{ caption | translate | async }}</ng-template>\n <ng-template #cell let-row>\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n @if (expandHandler) {\n <div\n (click)=\"handleExpandRow(row)\"\n class=\"ax-expand-handler\"\n [class.ax-invisible]=\"row.data.hasChild === false\"\n id=\"ax-expand-handler-container\"\n [style.padding-inline-start.rem]=\"row.data?.__meta__?.level * 2\"\n >\n @if (loadingRow() === row) {\n <i class=\"fas fa-spinner-third ax-animate-twSpin ax-animate-infinite\"></i>\n } @else {\n @if (row.data?.__meta__?.expanded) {\n <i [class]=\"customCollapseIcon || 'far fa-minus-square ax-text-md ax-opacity-75'\"></i>\n } @else {\n <i [class]=\"customExpandIcon || 'far fa-plus-square ax-text-md ax-opacity-75'\"></i>\n }\n }\n </div>\n }\n @if (component && widgetInjector && row?.data) {\n <ng-container\n *ngComponentOutlet=\"component; injector: widgetInjector; inputs: getInputs(row.data)\"\n ></ng-container>\n }\n </div>\n </ng-template>\n <ng-template #footer></ng-template>\n `,\n providers: [\n AXPLayoutBuilderService,\n { provide: AXDataTableColumnComponent, useExisting: AXPWidgetColumnRendererComponent },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['caption'],\n standalone: false,\n }]\n }], propDecorators: { customExpandIcon: [{\n type: Input\n }], customCollapseIcon: [{\n type: Input\n }], customWidth: [{\n type: Input\n }], node: [{\n type: Input,\n args: [{ required: true }]\n }], footerTemplate: [{\n type: Input\n }], _contentFooterTemplate: [{\n type: ViewChild,\n args: ['footer']\n }], expandHandler: [{\n type: Input\n }], cellTemplate: [{\n type: Input\n }], _contentCellTemplate: [{\n type: ViewChild,\n args: ['cell']\n }], headerTemplate: [{\n type: Input\n }], _contentHeaderTemplate: [{\n type: ViewChild,\n args: ['header']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbHVtbi1yZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL3dpZGdldC1jb2x1bW4tcmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsUUFBUSxFQUNSLEtBQUssRUFDTCxXQUFXLEVBQ1gsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQXVCLHVCQUF1QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUE0QzlFLE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSwwQkFBMEI7SUExQ2hGOztRQTJDWSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3JELFNBQUksR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFnQi9CLGtCQUFhLEdBQUcsTUFBTSxDQUFNLEVBQUUseURBQUMsQ0FBQztRQUM5QixlQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksc0RBQUMsQ0FBQztRQW9ENUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0EyQ3pDO0lBekdDLElBQ1csSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBVyxJQUFJLENBQUMsQ0FBc0I7UUFDcEMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQVdELElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDNUQsQ0FBQztJQVdELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDeEQsQ0FBQztJQVFTLEtBQUssQ0FBQyxlQUFlLENBQUMsR0FBUTtRQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLG9EQUFvRDtRQUNwRCw2REFBNkQ7UUFDN0QsSUFBSTtJQUNOLENBQUM7SUFFRCxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQU9ELEtBQUssQ0FBQyxRQUFRO1FBQ1osTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLE1BQU0sRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDN0QsRUFBRTtRQUNGLE1BQU0sS0FBSyxHQUFHLE1BQU0sRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVTtZQUNoRCxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7YUFDckMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO2FBQ2pELE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNwQixPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUM3QixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDVCxFQUFFO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTlELE1BQU0sVUFBVSxHQUFHO1lBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFDcEIsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUU7U0FDOUIsQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNwQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDckIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSx1QkFBdUI7b0JBQ2hDLFFBQVEsRUFBRSxVQUFVO2lCQUNyQjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQztRQUNoRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBUztRQUNqQixPQUFPO1lBQ0wsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFLLENBQUM7WUFDekMsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDO0lBQ0osQ0FBQzs4R0FsSFUsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0Msc1dBUmhDO1lBQ1QsdUJBQXVCO1lBQ3ZCLEVBQUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFdBQVcsRUFBRSxnQ0FBZ0MsRUFBRTtTQUN2RixxV0FuQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQ7OzJGQVNVLGdDQUFnQztrQkExQzVDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JUO29CQUNELFNBQVMsRUFBRTt3QkFDVCx1QkFBdUI7d0JBQ3ZCLEVBQUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFdBQVcsa0NBQWtDLEVBQUU7cUJBQ3ZGO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUM7b0JBQ25CLFVBQVUsRUFBRSxLQUFLO2lCQUNsQjs4QkFLVSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUssSUFBSTtzQkFEZCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFZbEIsY0FBYztzQkFEcEIsS0FBSztnQkFJRSxzQkFBc0I7c0JBRDdCLFNBQVM7dUJBQUMsUUFBUTtnQkFRWixhQUFhO3NCQURuQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUUsb0JBQW9CO3NCQUQzQixTQUFTO3VCQUFDLE1BQU07Z0JBUVYsY0FBYztzQkFEcEIsS0FBSztnQkFJRSxzQkFBc0I7c0JBRDdCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQmFzZURhdGFUYWJsZSwgQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGF0YS10YWJsZSc7XG5pbXBvcnQgeyBnZXRTbWFydCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyU2VydmljZSB9IGZyb20gJy4vYnVpbGRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vd2lkZ2V0LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUFdpZGdldENvbHVtbk5vZGUsIEFYUF9XSURHRVRfQ09MVU1OX1RPS0VOIH0gZnJvbSAnLi93aWRnZXQudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtd2lkZ2V0LWNvbHVtbi1yZW5kZXJlcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+e3sgY2FwdGlvbiB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LXJvdz5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWdhcC0yIGF4LWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICBAaWYgKGV4cGFuZEhhbmRsZXIpIHtcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlRXhwYW5kUm93KHJvdylcIlxuICAgICAgICAgICAgY2xhc3M9XCJheC1leHBhbmQtaGFuZGxlclwiXG4gICAgICAgICAgICBbY2xhc3MuYXgtaW52aXNpYmxlXT1cInJvdy5kYXRhLmhhc0NoaWxkID09PSBmYWxzZVwiXG4gICAgICAgICAgICBpZD1cImF4LWV4cGFuZC1oYW5kbGVyLWNvbnRhaW5lclwiXG4gICAgICAgICAgICBbc3R5bGUucGFkZGluZy1pbmxpbmUtc3RhcnQucmVtXT1cInJvdy5kYXRhPy5fX21ldGFfXz8ubGV2ZWwgKiAyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKGxvYWRpbmdSb3coKSA9PT0gcm93KSB7XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXNwaW5uZXItdGhpcmQgYXgtYW5pbWF0ZS10d1NwaW4gYXgtYW5pbWF0ZS1pbmZpbml0ZVwiPjwvaT5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICBAaWYgKHJvdy5kYXRhPy5fX21ldGFfXz8uZXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiY3VzdG9tQ29sbGFwc2VJY29uIHx8ICdmYXIgZmEtbWludXMtc3F1YXJlIGF4LXRleHQtbWQgYXgtb3BhY2l0eS03NSdcIj48L2k+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCJjdXN0b21FeHBhbmRJY29uIHx8ICdmYXIgZmEtcGx1cy1zcXVhcmUgYXgtdGV4dC1tZCAgYXgtb3BhY2l0eS03NSdcIj48L2k+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGNvbXBvbmVudCAmJiB3aWRnZXRJbmplY3RvciAmJiByb3c/LmRhdGEpIHtcbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdDb21wb25lbnRPdXRsZXQ9XCJjb21wb25lbnQ7IGluamVjdG9yOiB3aWRnZXRJbmplY3RvcjsgaW5wdXRzOiBnZXRJbnB1dHMocm93LmRhdGEpXCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNmb290ZXI+PC9uZy10ZW1wbGF0ZT5cbiAgYCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UsXG4gICAgeyBwcm92aWRlOiBBWERhdGFUYWJsZUNvbHVtbkNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYUFdpZGdldENvbHVtblJlbmRlcmVyQ29tcG9uZW50IH0sXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbnB1dHM6IFsnY2FwdGlvbiddLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV2lkZ2V0Q29sdW1uUmVuZGVyZXJDb21wb25lbnQgZXh0ZW5kcyBBWERhdGFUYWJsZUNvbHVtbkNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCB3aWRnZXRSZWdpc3RlcnkgPSBpbmplY3QoQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBncmlkID0gaW5qZWN0KEFYQmFzZURhdGFUYWJsZSk7XG5cbiAgQElucHV0KCkgY3VzdG9tRXhwYW5kSWNvbjogc3RyaW5nO1xuICBASW5wdXQoKSBjdXN0b21Db2xsYXBzZUljb246IHN0cmluZztcblxuICBASW5wdXQoKSBjdXN0b21XaWR0aDogc3RyaW5nO1xuXG4gIHByaXZhdGUgX25vZGU6IEFYUFdpZGdldENvbHVtbk5vZGU7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHB1YmxpYyBnZXQgbm9kZSgpOiBBWFBXaWRnZXRDb2x1bW5Ob2RlIHtcbiAgICByZXR1cm4gdGhpcy5fbm9kZTtcbiAgfVxuICBwdWJsaWMgc2V0IG5vZGUodjogQVhQV2lkZ2V0Q29sdW1uTm9kZSkge1xuICAgIHRoaXMuX25vZGUgPSB2O1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZWRPcHRpb25zID0gc2lnbmFsPGFueT4oe30pO1xuICBwcm90ZWN0ZWQgbG9hZGluZ1JvdyA9IHNpZ25hbChudWxsKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBWaWV3Q2hpbGQoJ2Zvb3RlcicpXG4gIHByaXZhdGUgX2NvbnRlbnRGb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgZ2V0IHJlbmRlckZvb3RlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5mb290ZXJUZW1wbGF0ZSA/PyB0aGlzLl9jb250ZW50Rm9vdGVyVGVtcGxhdGU7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgZXhwYW5kSGFuZGxlcjogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2VsbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBAVmlld0NoaWxkKCdjZWxsJylcbiAgcHJpdmF0ZSBfY29udGVudENlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgZ2V0IHJlbmRlckNlbGxUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuY2VsbFRlbXBsYXRlID8/IHRoaXMuX2NvbnRlbnRDZWxsVGVtcGxhdGU7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBWaWV3Q2hpbGQoJ2hlYWRlcicpXG4gIHByaXZhdGUgX2NvbnRlbnRIZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUV4cGFuZFJvdyhyb3c6IGFueSkge1xuICAgIHRoaXMubG9hZGluZ1Jvdy5zZXQocm93KTtcbiAgICBhd2FpdCB0aGlzLmdyaWQuZXhwYW5kUm93KHJvdyk7XG4gICAgdGhpcy5sb2FkaW5nUm93LnNldChudWxsKTtcbiAgICAvLyBpZiAocm93LmRhdGE/Ll9fbWV0YV9fPy5leHBhbmRlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gICB0aGlzLndpZHRoID0gYCR7cGFyc2VJbnQodGhpcy53aWR0aCBhcyBzdHJpbmcpICsgMjR9cHhgO1xuICAgIC8vIH1cbiAgfVxuXG4gIGdldCByZW5kZXJIZWFkZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuaGVhZGVyVGVtcGxhdGUgPz8gdGhpcy5fY29udGVudEhlYWRlclRlbXBsYXRlO1xuICB9XG5cbiAgZ2V0IGxvYWRpbmdFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGNvbC0ke3RoaXMubm9kZS5wYXRofWA7XG4gIH1cblxuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcm90ZWN0ZWQgd2lkZ2V0SW5qZWN0b3IhOiBJbmplY3RvcjtcbiAgcHJvdGVjdGVkIGNvbXBvbmVudCE6IGFueTtcblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCB3aWRnZXQgPSB0aGlzLndpZGdldFJlZ2lzdGVyeS5yZXNvbHZlKHRoaXMubm9kZS50eXBlKTtcbiAgICBjb25zdCBtb2RlID0gJ2NvbHVtbic7XG4gICAgdGhpcy5jb21wb25lbnQgPSBhd2FpdCB3aWRnZXQ/LmNvbXBvbmVudHNbbW9kZV0/LmNvbXBvbmVudCgpO1xuICAgIC8vXG4gICAgY29uc3QgcHJvcHMgPSB3aWRnZXQ/LmNvbXBvbmVudHNbbW9kZV0/LnByb3BlcnRpZXNcbiAgICAgID8uZmlsdGVyKChjKSA9PiBjLnNjaGVtYS5kZWZhdWx0VmFsdWUpXG4gICAgICAubWFwKChjKSA9PiAoeyBbYy5uYW1lXTogYy5zY2hlbWEuZGVmYXVsdFZhbHVlIH0pKVxuICAgICAgLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiB7XG4gICAgICAgIHJldHVybiB7IC4uLmFjYywgLi4uY3VyciB9O1xuICAgICAgfSwge30pO1xuICAgIC8vXG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLnNldChtZXJnZShwcm9wcywgdGhpcy5ub2RlLm9wdGlvbnMpIHx8IHt9KTtcblxuICAgIGNvbnN0IHRva2VuVmFsdWUgPSB7XG4gICAgICBwYXRoOiB0aGlzLm5vZGUucGF0aCxcbiAgICAgIG9wdGlvbnM6IHRoaXMubWVyZ2VkT3B0aW9ucygpLFxuICAgIH07XG4gICAgdGhpcy53aWRnZXRJbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFYUF9XSURHRVRfQ09MVU1OX1RPS0VOLFxuICAgICAgICAgIHVzZVZhbHVlOiB0b2tlblZhbHVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIHRoaXMud2lkdGggPSB0aGlzLmN1c3RvbVdpZHRoID8gdGhpcy5jdXN0b21XaWR0aCA6ICh0aGlzLm1lcmdlZE9wdGlvbnMoKS53aWR0aCA/PyAnMjAwcHgnKTtcbiAgICB0aGlzLmFsbG93UmVzaXppbmcgPSB0aGlzLm1lcmdlZE9wdGlvbnMoKS5hbGxvd1Jlc2l6aW5nIHx8IHRydWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZ2V0SW5wdXRzKGRhdGE6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJhd1ZhbHVlOiBnZXRTbWFydChkYXRhLCB0aGlzLm5vZGUucGF0aCEpLFxuICAgICAgcm93RGF0YTogZGF0YSxcbiAgICB9O1xuICB9XG59XG4iXX0=","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, computed, effect, inject, } from '@angular/core';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPLayoutBuilderContextStore } from './context-store.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPWidgetContainerComponent {\n set context(value) {\n this.contextService.set(value);\n }\n set functions(v) {\n this.builderService.setFunctions(v);\n }\n constructor() {\n this.contextService = inject(AXPLayoutBuilderContextStore);\n this.builderService = inject(AXPLayoutBuilderService);\n this.onContextChanged = new EventEmitter();\n this.status = computed(() => {\n return this.builderService.status();\n }, ...(ngDevMode ? [{ debugName: \"status\" }] : []));\n this.isBusy = computed(() => {\n return this.builderService.isBusy();\n }, ...(ngDevMode ? [{ debugName: \"isBusy\" }] : []));\n effect(() => {\n if (this.contextService.isChanged()) {\n this.onContextChanged.emit(this.contextService.changeEvent());\n }\n });\n }\n refresh() {\n this.builderService.refresh();\n }\n find(name) {\n return this.builderService.waitForWidget(name);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPWidgetContainerComponent, isStandalone: false, selector: \"axp-widgets-container\", inputs: { context: \"context\", functions: \"functions\" }, outputs: { onContextChanged: \"onContextChanged\" }, host: { styleAttribute: \"display: contents;\" }, providers: [AXPLayoutBuilderService, AXPLayoutBuilderContextStore], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetContainerComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-widgets-container',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'display: contents;' },\n providers: [AXPLayoutBuilderService, AXPLayoutBuilderContextStore],\n standalone: false,\n }]\n }], ctorParameters: () => [], propDecorators: { onContextChanged: [{\n type: Output\n }], context: [{\n type: Input\n }], functions: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci93aWRnZXQtY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNEJBQTRCLEVBQStCLE1BQU0seUJBQXlCLENBQUM7O0FBVXBHLE1BQU0sT0FBTywyQkFBMkI7SUFPdEMsSUFDSSxPQUFPLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFDVyxTQUFTLENBQUMsQ0FBTTtRQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7UUFoQmdCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDdEQsbUJBQWMsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUdqRCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBK0IsQ0FBQztRQW9CNUUsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RDLENBQUMsa0RBQUMsQ0FBQztRQUVJLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzVCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0QyxDQUFDLGtEQUFDLENBQUM7UUFiRCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ2hFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFXTSxPQUFPO1FBQ1osSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sSUFBSSxDQUFDLElBQVk7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRCxDQUFDOzhHQXhDVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixnT0FIM0IsQ0FBQyx1QkFBdUIsRUFBRSw0QkFBNEIsQ0FBQywwQkFIeEQsMkJBQTJCOzsyRkFNMUIsMkJBQTJCO2tCQVJ2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUU7b0JBQ3JDLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixFQUFFLDRCQUE0QixDQUFDO29CQUNsRSxVQUFVLEVBQUUsS0FBSztpQkFDbEI7d0RBTWlCLGdCQUFnQjtzQkFEL0IsTUFBTTtnQkFJSCxPQUFPO3NCQURWLEtBQUs7Z0JBTUssU0FBUztzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi9idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlckNvbnRleHRTdG9yZSwgQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50IH0gZnJvbSAnLi9jb250ZXh0LXN0b3JlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtd2lkZ2V0cy1jb250YWluZXInLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBzdHlsZTogJ2Rpc3BsYXk6IGNvbnRlbnRzOycgfSxcbiAgcHJvdmlkZXJzOiBbQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UsIEFYUExheW91dEJ1aWxkZXJDb250ZXh0U3RvcmVdLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV2lkZ2V0Q29udGFpbmVyQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IGNvbnRleHRTZXJ2aWNlID0gaW5qZWN0KEFYUExheW91dEJ1aWxkZXJDb250ZXh0U3RvcmUpO1xuICBwdWJsaWMgcmVhZG9ubHkgYnVpbGRlclNlcnZpY2UgPSBpbmplY3QoQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgb25Db250ZXh0Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50PigpO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBjb250ZXh0KHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnNldCh2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGZ1bmN0aW9ucyh2OiBhbnkpIHtcbiAgICB0aGlzLmJ1aWxkZXJTZXJ2aWNlLnNldEZ1bmN0aW9ucyh2KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5jb250ZXh0U2VydmljZS5pc0NoYW5nZWQoKSkge1xuICAgICAgICB0aGlzLm9uQ29udGV4dENoYW5nZWQuZW1pdCh0aGlzLmNvbnRleHRTZXJ2aWNlLmNoYW5nZUV2ZW50KCkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXR1cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5idWlsZGVyU2VydmljZS5zdGF0dXMoKTtcbiAgfSk7XG5cbiAgcHVibGljIGlzQnVzeSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5idWlsZGVyU2VydmljZS5pc0J1c3koKTtcbiAgfSk7XG5cblxuICBwdWJsaWMgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmJ1aWxkZXJTZXJ2aWNlLnJlZnJlc2goKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmJ1aWxkZXJTZXJ2aWNlLndhaXRGb3JXaWRnZXQobmFtZSk7XG4gIH1cbn1cbiJdfQ==","import { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/skeleton\";\nexport class AXPWidgetPlaceholderComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetPlaceholderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPWidgetPlaceholderComponent, isStandalone: true, selector: \"axp-widget-placeholder\", ngImport: i0, template: `<div>\n <ax-skeleton class=\"ax-w-full ax-h-10 ax-rounded-md\"></ax-skeleton>\n </div>`, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXSkeletonModule }, { kind: \"component\", type: i1.AXSkeletonComponent, selector: \"ax-skeleton\", inputs: [\"animated\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetPlaceholderComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-widget-placeholder',\n template: `<div>\n <ax-skeleton class=\"ax-w-full ax-h-10 ax-rounded-md\"></ax-skeleton>\n </div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXSkeletonModule],\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXBsYWNlaG9sZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL3dpZGdldC1wbGFjZWhvbGRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBV25FLE1BQU0sT0FBTyw2QkFBNkI7OEdBQTdCLDZCQUE2QjtrR0FBN0IsNkJBQTZCLGtGQVA5Qjs7U0FFSCwyREFFRyxnQkFBZ0I7OzJGQUdmLDZCQUE2QjtrQkFUekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7O1NBRUg7b0JBQ1AsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFNrZWxldG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NrZWxldG9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLXdpZGdldC1wbGFjZWhvbGRlcicsXG4gIHRlbXBsYXRlOiBgPGRpdj5cbiAgICA8YXgtc2tlbGV0b24gY2xhc3M9XCJheC13LWZ1bGwgYXgtaC0xMCBheC1yb3VuZGVkLW1kXCI+PC9heC1za2VsZXRvbj5cbiAgPC9kaXY+YCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtBWFNrZWxldG9uTW9kdWxlXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV2lkZ2V0UGxhY2Vob2xkZXJDb21wb25lbnQge31cbiJdfQ==","import { AXTranslationService } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { AXPExpressionEvaluatorService } from '@acorex/platform/core';\nimport { Directive, Injector, ViewContainerRef, effect, inject, input, output, signal, } from '@angular/core';\nimport { cloneDeep, get, isEmpty, isString, merge, set, sum } from 'lodash-es';\nimport { Subject, filter } from 'rxjs';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPLayoutBuilderContextStore } from './context-store.service';\nimport { AXPWidgetPlaceholderComponent } from './widget-placeholder.component';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXPWidgetStatus } from './widget-status.types';\nimport { AXP_WIDGET_TOKEN, } from './widget.types';\nimport * as i0 from \"@angular/core\";\nexport class AXPWidgetRendererDirective {\n //#endregion\n constructor() {\n this.parentNode = input(...(ngDevMode ? [undefined, { debugName: \"parentNode\" }] : []));\n this.index = input(...(ngDevMode ? [undefined, { debugName: \"index\" }] : []));\n this.mode = input.required(...(ngDevMode ? [{ debugName: \"mode\" }] : []));\n this.node = input.required(...(ngDevMode ? [{ debugName: \"node\" }] : []));\n this._options = signal({}, ...(ngDevMode ? [{ debugName: \"_options\" }] : []));\n this.options = this._options.asReadonly();\n this.onOptionsChanged = output();\n this.onValueChanged = output();\n //#region ---- Properties ----\n this.mergedOptions = signal({}, ...(ngDevMode ? [{ debugName: \"mergedOptions\" }] : []));\n this.injector = inject(Injector);\n this.builderService = inject(AXPLayoutBuilderService);\n this.contextService = inject(AXPLayoutBuilderContextStore);\n this.widgetRegistery = inject(AXPWidgetRegistryService);\n this.unsubscriber = inject(AXUnsubscriber);\n this.translateService = inject(AXTranslationService);\n this.widgetService = inject(AXPWidgetRegistryService);\n this.expressionEvaluator = inject(AXPExpressionEvaluatorService);\n this.viewContainerRef = inject(ViewContainerRef);\n this.isLoading = signal(false, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n this.expressionEvaluators = new Map();\n this.renderTimeoutId = null;\n this.hasInitialRender = false;\n this.onContextChanged = new Subject();\n effect(async () => {\n const changed = this.contextService.changeEvent();\n // Don't trigger re-render during initial setup\n if (!this.hasInitialRender) {\n return;\n }\n if ((await this.updateOptionsBasedOnContext()) > 0) {\n this.applyOptions();\n }\n if (this.checkFormulaForUpdate(this.node().formula, changed.path)) {\n await this.updateValueBasedOnFormula();\n }\n //\n if (changed.path) {\n this.onContextChanged.next({ path: changed.path });\n }\n });\n this.builderService.onRefresh.pipe(this.unsubscriber.takeUntilDestroy).subscribe(async () => {\n if ((await this.updateOptionsBasedOnContext()) > 0) {\n this.applyOptions();\n }\n });\n }\n // Detect input changes\n ngOnChanges(changes) {\n if (changes['mode'] || changes['node']) {\n // Check if either 'mode' or 'node' has changed\n this.rerenderComponent();\n }\n }\n rerenderComponent() {\n // Clear any pending render operation to prevent double rendering\n if (this.renderTimeoutId) {\n clearTimeout(this.renderTimeoutId);\n this.renderTimeoutId = null;\n }\n // Reset loading state to allow re-rendering\n this.isLoading.set(false);\n // Schedule the component loading\n this.renderTimeoutId = setTimeout(async () => {\n await this.loadComponent();\n this.renderTimeoutId = null;\n });\n }\n ngOnDestroy() {\n if (this.renderTimeoutId) {\n clearTimeout(this.renderTimeoutId);\n }\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n }\n async loadComponent() {\n if (this.isLoading()) {\n return;\n }\n this.isLoading.set(true);\n try {\n // Destroy the existing component if it exists\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n this.viewContainerRef.clear();\n //\n const widget = this.widgetRegistery.resolve(this.node().type);\n //\n const propertiesToProcess = [\n ...(widget?.properties ?? []),\n ...(widget?.components[this.mode()]?.properties ?? []),\n ]?.filter((c) => c.schema.defaultValue != null);\n // Process default values (evaluate expressions if needed)\n const props = {};\n for (const property of propertiesToProcess) {\n const defaultValue = property.schema.defaultValue;\n if (typeof defaultValue === 'string' && this.expressionEvaluator.isExpression(defaultValue)) {\n // Evaluate expression for default value\n try {\n const evaluatedValue = await this.evaluateExpression(defaultValue);\n props[property.name] = evaluatedValue;\n }\n catch (error) {\n console.error(`Error evaluating default value expression for property ${property.name}:`, error);\n props[property.name] = cloneDeep(defaultValue); // Fallback to original value\n }\n }\n else {\n // Use static default value\n props[property.name] = cloneDeep(defaultValue);\n }\n }\n //\n this.mergedOptions.set(merge(props, widget?.options, this.node().options) || {});\n this.preprocessAndInitialOptions(cloneDeep(this.node().options));\n await this.updateOptionsBasedOnContext();\n //\n this._options.update((val) => ({ ...val, ...this.mergedOptions() }));\n // Evaluate default value\n let defaultValue = this.node().defaultValue;\n if (defaultValue && this.expressionEvaluator.isExpression(defaultValue)) {\n defaultValue = await this.evaluateExpression(defaultValue);\n }\n //\n const tokenValue = {\n node: this.node(),\n defaultValue: defaultValue,\n options: this.mergedOptions(),\n config: widget,\n };\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n //\n const loadingRef = this.viewContainerRef.createComponent(AXPWidgetPlaceholderComponent);\n //\n const com = await widget?.components[this.mode()]?.component();\n if (!com) {\n console.error(`${this.node().type} widget component not found with mode: ${this.mode()}`);\n return;\n }\n this.componentRef = this.viewContainerRef.createComponent(com, { injector: token });\n this.instance = this.componentRef.instance;\n this.instance.setStatus(AXPWidgetStatus.Rendering);\n this.instance.parent = this.parentNode();\n this.instance.index = this.index();\n this.instance.mode = this.mode();\n this.instance.setStatus(AXPWidgetStatus.Rendered);\n this.instance?.onOptionsChanged?.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onOptionsChanged.emit({ sender: this, widget: c.sender });\n });\n this.instance?.onValueChanged?.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onValueChanged.emit({ sender: this, widget: c.sender });\n });\n await this.updateValueBasedOnFormula();\n await this.assignTriggers();\n //\n loadingRef.destroy();\n // Mark that initial render is complete\n this.hasInitialRender = true;\n }\n catch (error) {\n console.error('Error loading component:', error);\n }\n finally {\n this.isLoading.set(false);\n }\n }\n applyOptions() {\n if (!this.instance)\n return;\n this._options.update((val) => ({ ...val, ...this.mergedOptions() }));\n this.instance.setOptions(this.mergedOptions());\n }\n checkFormulaForUpdate(formula, path) {\n if (formula) {\n const regex = /context\\.eval\\('([^']+)'\\)/g;\n const matches = formula.match(regex);\n const nodes = matches ? matches.map((match) => match.match(/'([^']+)'/)[1]) : [];\n return nodes.includes(path);\n }\n else\n return false;\n }\n preprocessAndInitialOptions(obj, pathPrefix = '') {\n if (!obj) {\n return;\n }\n Object.entries(obj).forEach(([key, value]) => {\n const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;\n // CRITICAL FIX: Skip trigger actions during options processing\n //\n // PROBLEM: Trigger actions were being evaluated immediately during widget setup/options processing,\n // causing them to execute before the actual trigger event occurred. This meant triggers would fire\n // during initialization instead of when the specified context path actually changed.\n //\n // ROOT CAUSE: The expression evaluator was processing trigger action expressions (like console.log\n // or widget.setValue calls) as part of the normal options preprocessing, treating them as dynamic\n // expressions that needed immediate evaluation.\n //\n // SOLUTION: Detect when we're processing trigger actions and store them as static values without\n // expression evaluation. This ensures trigger actions are only evaluated when the trigger's\n // subscription callback actually fires (when the event condition is met).\n //\n // RESULT: Triggers now only execute when their event filters pass (e.g., when the specified\n // context path changes), not during widget initialization.\n if (currentPath.includes('triggers') && (key === 'action' || currentPath.endsWith('.action'))) {\n // Apply static values directly without expression evaluation\n this.mergedOptions.update((currentOptions) => {\n return set(currentOptions, currentPath, value);\n });\n return;\n }\n if (typeof value === 'string' && this.expressionEvaluator.isExpression(value)) {\n // Cache dynamic expression for later evaluation\n this.expressionEvaluators.set(currentPath, () => this.evaluateExpression(value));\n }\n else if (typeof value === 'object' &&\n value !== null &&\n (value.constructor === Object || Array.isArray(value))) {\n // Recursively handle nested objects\n this.preprocessAndInitialOptions(value, currentPath);\n }\n else {\n // Apply static values directly\n this.mergedOptions.update((currentOptions) => {\n return set(currentOptions, currentPath, value);\n });\n }\n });\n }\n async updateOptionsBasedOnContext() {\n const updatePromises = Array.from(this.expressionEvaluators).map(async ([path, evaluator]) => {\n const newValue = await evaluator();\n return { path, newValue };\n });\n // Wait for all evaluators to complete\n const updates = await Promise.all(updatePromises);\n // Apply updates to mergedOptions\n if (updates.length > 0) {\n this.mergedOptions.update((o) => {\n const updatedOptions = { ...o };\n updates.forEach(({ path, newValue }) => {\n // Set the new value in the updatedOptions object by path\n set(updatedOptions, path, newValue); // Assuming 'set' can handle paths like 'property.subproperty'\n });\n return updatedOptions;\n });\n }\n return updates.length;\n }\n async updateValueBasedOnFormula() {\n if (this.node().formula) {\n const value = await this.evaluateExpression(this.node().formula);\n this.instance.setValue(value);\n }\n }\n async evaluateExpression(templateExpression) {\n try {\n const scope = this.buildExpressionScope();\n return await this.expressionEvaluator.evaluate(templateExpression, scope);\n }\n catch (error) {\n console.error('Error evaluating expression:', error);\n return false;\n }\n }\n buildExpressionScope() {\n return {\n context: this.getContextScope(),\n events: this.getEventScope(),\n widget: this.getWidgetScope(),\n methods: this.getFunctionScope(),\n vars: this.getVariablesScope(),\n };\n }\n getContextScope() {\n return {\n eval: (path) => {\n //TODO: Handle array index\n const fullPath = path.startsWith('>') ? `${this.instance?.parentPath()}.${path.substring(1)}` : path;\n const value = this.contextService.getValue(fullPath);\n return value;\n },\n set: (path, value) => {\n this.contextService.update(path, value);\n },\n data: () => {\n return this.contextService.data();\n },\n isDirty: () => {\n return this.contextService.isDirty();\n },\n };\n }\n getEventScope() {\n return {\n context: (path) => {\n return this.onContextChanged.pipe(filter((c) => {\n // If no path filter specified, pass all events\n if (path == null || path === '') {\n return true;\n }\n // Ensure c.path exists\n if (!c.path) {\n return false;\n }\n // Pattern: \"prefix*\" - matches paths that start with prefix\n if (path.endsWith('*')) {\n const prefix = path.substring(0, path.length - 1);\n return c.path.startsWith(prefix);\n }\n // Pattern: \"*suffix\" - matches paths that end with suffix\n else if (path.startsWith('*')) {\n const suffix = path.substring(1);\n return c.path.endsWith(suffix);\n }\n // Exact match\n else {\n return c.path === path;\n }\n }));\n },\n from: (event) => get(this.instance.api(), event),\n };\n }\n getWidgetScope() {\n return {\n call: (name, ...args) => {\n this.instance.call(name, ...args);\n },\n setValue: (value) => {\n this.instance.setValue(value);\n },\n clear: () => {\n this.instance.setValue(undefined);\n },\n refresh: () => {\n const refresh = this.instance?.['refresh'];\n if (refresh && typeof refresh === 'function') {\n refresh.bind(this.instance)();\n }\n },\n output: (name) => {\n this.instance.output(name);\n },\n find: (id) => {\n return this.builderService.getWidget(id);\n },\n };\n }\n getFunctionScope() {\n const scope = {\n sum: (values) => {\n return sum(values);\n },\n translate: (text, options) => {\n return this.translateService.translateAsync(text, options);\n },\n widgetInfo: (name) => {\n return this.widgetService.resolve(name);\n },\n };\n // Add custom functions from builder service\n Object.entries(this.builderService.functions).forEach(([key, fn]) => {\n scope[key] = (...args) => {\n return fn(...args);\n };\n });\n return scope;\n }\n getVariablesScope() {\n return {\n eval: (path) => get(this.builderService.variables, path),\n };\n }\n async assignTriggers() {\n const node = this.node();\n // Check multiple possible locations for triggers\n const triggers = node.triggers || node.options?.['triggers'] || this.mergedOptions()?.triggers;\n if (!triggers) {\n return;\n }\n for (const trigger of triggers) {\n try {\n const event = await this.evaluateTrigger(trigger.event);\n if (event) {\n event.pipe(this.unsubscriber.takeUntilDestroy).subscribe(() => {\n const exec = async (action) => {\n if (!isEmpty(action) && isString(action)) {\n await this.evaluateAction(action);\n }\n };\n const actions = Array.isArray(trigger.action) ? trigger.action : [trigger.action];\n actions.forEach(async (a) => await exec(a));\n });\n }\n }\n catch (error) {\n console.error('Error assigning trigger:', error);\n }\n }\n }\n async evaluateTrigger(templateExpression) {\n try {\n const scope = this.buildExpressionScope();\n const result = await this.expressionEvaluator.evaluate(templateExpression, scope);\n // Check if result is an Observable\n if (result && typeof result.subscribe === 'function') {\n return result;\n }\n else {\n return null;\n }\n }\n catch (error) {\n console.error('Error evaluating trigger expression:', error);\n return null;\n }\n }\n async evaluateAction(templateExpression) {\n try {\n const scope = this.buildExpressionScope();\n await this.expressionEvaluator.evaluate(templateExpression, scope);\n }\n catch (error) {\n console.error('Error evaluating action expression:', templateExpression, error);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetRendererDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.8\", type: AXPWidgetRendererDirective, isStandalone: false, selector: \"[axp-widget-renderer]\", inputs: { parentNode: { classPropertyName: \"parentNode\", publicName: \"parentNode\", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: \"index\", publicName: \"index\", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: \"mode\", publicName: \"mode\", isSignal: true, isRequired: true, transformFunction: null }, node: { classPropertyName: \"node\", publicName: \"node\", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onOptionsChanged: \"onOptionsChanged\", onValueChanged: \"onValueChanged\" }, providers: [\n {\n provide: AXUnsubscriber,\n },\n ], exportAs: [\"widgetRenderer\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetRendererDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-widget-renderer]',\n exportAs: 'widgetRenderer',\n providers: [\n {\n provide: AXUnsubscriber,\n },\n ],\n standalone: false,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXJlbmRlcmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL3dpZGdldC1yZW5kZXJlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQStCLDZCQUE2QixFQUFlLE1BQU0sdUJBQXVCLENBQUM7QUFDaEgsT0FBTyxFQUVMLFNBQVMsRUFDVCxRQUFRLEVBRVIsZ0JBQWdCLEVBRWhCLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMvRSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUtMLGdCQUFnQixHQUNqQixNQUFNLGdCQUFnQixDQUFDOztBQWN4QixNQUFNLE9BQU8sMEJBQTBCO0lBc0Ny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LElBQUksT0FBTyxNQUFNLENBQUMsU0FBUyxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUNyRCxPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzdELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsY0FBYyxDQUFDLGtCQUEwQjtRQUNyRCxJQUFJLENBQUM7WUFDSCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUMxQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxFQUFFLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xGLENBQUM7SUFDSCxDQUFDOzhHQTlkVSwwQkFBMEI7a0dBQTFCLDBCQUEwQiw2b0JBUDFCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGNBQWM7YUFDeEI7U0FDRjs7MkZBR1UsMEJBQTBCO2tCQVZ0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsY0FBYzt5QkFDeEI7cUJBQ0Y7b0JBQ0QsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhUcmFuc2xhdGVPcHRpb25zLCBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFVuc3Vic2NyaWJlciB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XG5pbXBvcnQgeyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUsIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlLCBBWFBNZXRhRGF0YSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQge1xuICBDb21wb25lbnRSZWYsXG4gIERpcmVjdGl2ZSxcbiAgSW5qZWN0b3IsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFdyaXRhYmxlU2lnbmFsLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZ2V0LCBpc0VtcHR5LCBpc1N0cmluZywgbWVyZ2UsIHNldCwgc3VtIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGZpbHRlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UgfSBmcm9tICcuL2J1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyQ29udGV4dFN0b3JlIH0gZnJvbSAnLi9jb250ZXh0LXN0b3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQQmFzZVdpZGdldENvbXBvbmVudCwgQVhQTGF5b3V0QmFzZVdpZGdldENvbXBvbmVudCwgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBXaWRnZXRQbGFjZWhvbGRlckNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0LXBsYWNlaG9sZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL3dpZGdldC1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRTdGF0dXMgfSBmcm9tICcuL3dpZGdldC1zdGF0dXMudHlwZXMnO1xuaW1wb3J0IHtcbiAgQVhQV2lkZ2V0Q29uZmlnLFxuICBBWFBXaWRnZXROb2RlLFxuICBBWFBXaWRnZXROb2RlVG9rZW4sXG4gIEFYUFdpZGdldFJlbmRlck1vZGUsXG4gIEFYUF9XSURHRVRfVE9LRU4sXG59IGZyb20gJy4vd2lkZ2V0LnR5cGVzJztcblxuZXhwb3J0IHR5cGUgQVhQV2lkZ2V0UmVuZGVyZXJEaXJlY3RpdmVPcHRpb25zID0gQVhQTWV0YURhdGE7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1theHAtd2lkZ2V0LXJlbmRlcmVyXScsXG4gIGV4cG9ydEFzOiAnd2lkZ2V0UmVuZGVyZXInLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFVuc3Vic2NyaWJlcixcbiAgICB9LFxuICBdLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV2lkZ2V0UmVuZGVyZXJEaXJlY3RpdmUge1xuICBwYXJlbnROb2RlID0gaW5wdXQ8QVhQTGF5b3V0QmFzZVdpZGdldENvbXBvbmVudCB8IG51bGw+KCk7XG5cbiAgaW5kZXggPSBpbnB1dDxudW1iZXIgfCBudWxsPigpO1xuXG4gIG1vZGUgPSBpbnB1dC5yZXF1aXJlZDxBWFBXaWRnZXRSZW5kZXJNb2RlPigpO1xuICBub2RlID0gaW5wdXQucmVxdWlyZWQ8QVhQV2lkZ2V0Tm9kZT4oKTtcblxuICBwcml2YXRlIF9vcHRpb25zID0gc2lnbmFsPEFYUFdpZGdldFJlbmRlcmVyRGlyZWN0aXZlT3B0aW9ucz4oe30pO1xuICBwdWJsaWMgb3B0aW9ucyA9IHRoaXMuX29wdGlvbnMuYXNSZWFkb25seSgpO1xuXG4gIHB1YmxpYyBvbk9wdGlvbnNDaGFuZ2VkID0gb3V0cHV0PHsgc2VuZGVyOiBBWFBXaWRnZXRSZW5kZXJlckRpcmVjdGl2ZTsgd2lkZ2V0OiBBWFBCYXNlV2lkZ2V0Q29tcG9uZW50IH0+KCk7XG4gIHB1YmxpYyBvblZhbHVlQ2hhbmdlZCA9IG91dHB1dDx7IHNlbmRlcjogQVhQV2lkZ2V0UmVuZGVyZXJEaXJlY3RpdmU7IHdpZGdldDogQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfT4oKTtcblxuICAvLyNyZWdpb24gLS0tLSAgIFByb3BlcnRpZXMgICAtLS0tXG5cbiAgcHJvdGVjdGVkIG1lcmdlZE9wdGlvbnM6IFdyaXRhYmxlU2lnbmFsPGFueT4gPSBzaWduYWw8YW55Pih7fSk7XG5cbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByb3RlY3RlZCBidWlsZGVyU2VydmljZSA9IGluamVjdChBWFBMYXlvdXRCdWlsZGVyU2VydmljZSk7XG4gIHByb3RlY3RlZCBjb250ZXh0U2VydmljZSA9IGluamVjdChBWFBMYXlvdXRCdWlsZGVyQ29udGV4dFN0b3JlKTtcbiAgcHJvdGVjdGVkIHdpZGdldFJlZ2lzdGVyeSA9IGluamVjdChBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgdW5zdWJzY3JpYmVyID0gaW5qZWN0KEFYVW5zdWJzY3JpYmVyKTtcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgd2lkZ2V0U2VydmljZSA9IGluamVjdChBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgZXhwcmVzc2lvbkV2YWx1YXRvciA9IGluamVjdChBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2VydmljZSk7XG4gIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblxuICBwcm90ZWN0ZWQgaXNMb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgLy9UT0RPIGNoZWNrIGlmIGluc3RhbmNlIGNhbm5vdCBiZSBwdWJsaWMgY2hhbmdlIGl0OlxuICBwdWJsaWMgaW5zdGFuY2UhOiBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDtcbiAgcHJpdmF0ZSBleHByZXNzaW9uRXZhbHVhdG9yczogTWFwPHN0cmluZywgKCkgPT4gUHJvbWlzZTxhbnk+PiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+O1xuICBwcml2YXRlIHJlbmRlclRpbWVvdXRJZDogYW55ID0gbnVsbDtcbiAgcHJpdmF0ZSBoYXNJbml0aWFsUmVuZGVyID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBvbkNvbnRleHRDaGFuZ2VkID0gbmV3IFN1YmplY3Q8eyBwYXRoOiBzdHJpbmcgfT4oKTtcblxuICAvLyNlbmRyZWdpb25cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY2hhbmdlZCA9IHRoaXMuY29udGV4dFNlcnZpY2UuY2hhbmdlRXZlbnQoKTtcblxuICAgICAgLy8gRG9uJ3QgdHJpZ2dlciByZS1yZW5kZXIgZHVyaW5nIGluaXRpYWwgc2V0dXBcbiAgICAgIGlmICghdGhpcy5oYXNJbml0aWFsUmVuZGVyKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKChhd2FpdCB0aGlzLnVwZGF0ZU9wdGlvbnNCYXNlZE9uQ29udGV4dCgpKSA+IDApIHtcbiAgICAgICAgdGhpcy5hcHBseU9wdGlvbnMoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmNoZWNrRm9ybXVsYUZvclVwZGF0ZSh0aGlzLm5vZGUoKS5mb3JtdWxhLCBjaGFuZ2VkLnBhdGgpKSB7XG4gICAgICAgIGF3YWl0IHRoaXMudXBkYXRlVmFsdWVCYXNlZE9uRm9ybXVsYSgpO1xuICAgICAgfVxuICAgICAgLy9cbiAgICAgIGlmIChjaGFuZ2VkLnBhdGgpIHtcbiAgICAgICAgdGhpcy5vbkNvbnRleHRDaGFuZ2VkLm5leHQoeyBwYXRoOiBjaGFuZ2VkLnBhdGggfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmJ1aWxkZXJTZXJ2aWNlLm9uUmVmcmVzaC5waXBlKHRoaXMudW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICBpZiAoKGF3YWl0IHRoaXMudXBkYXRlT3B0aW9uc0Jhc2VkT25Db250ZXh0KCkpID4gMCkge1xuICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gRGV0ZWN0IGlucHV0IGNoYW5nZXNcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydtb2RlJ10gfHwgY2hhbmdlc1snbm9kZSddKSB7XG4gICAgICAvLyBDaGVjayBpZiBlaXRoZXIgJ21vZGUnIG9yICdub2RlJyBoYXMgY2hhbmdlZFxuICAgICAgdGhpcy5yZXJlbmRlckNvbXBvbmVudCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVyZW5kZXJDb21wb25lbnQoKSB7XG4gICAgLy8gQ2xlYXIgYW55IHBlbmRpbmcgcmVuZGVyIG9wZXJhdGlvbiB0byBwcmV2ZW50IGRvdWJsZSByZW5kZXJpbmdcbiAgICBpZiAodGhpcy5yZW5kZXJUaW1lb3V0SWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlbmRlclRpbWVvdXRJZCk7XG4gICAgICB0aGlzLnJlbmRlclRpbWVvdXRJZCA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgbG9hZGluZyBzdGF0ZSB0byBhbGxvdyByZS1yZW5kZXJpbmdcbiAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xuXG4gICAgLy8gU2NoZWR1bGUgdGhlIGNvbXBvbmVudCBsb2FkaW5nXG4gICAgdGhpcy5yZW5kZXJUaW1lb3V0SWQgPSBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHRoaXMubG9hZENvbXBvbmVudCgpO1xuICAgICAgdGhpcy5yZW5kZXJUaW1lb3V0SWQgPSBudWxsO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMucmVuZGVyVGltZW91dElkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5yZW5kZXJUaW1lb3V0SWQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRDb21wb25lbnQoKSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIERlc3Ryb3kgdGhlIGV4aXN0aW5nIGNvbXBvbmVudCBpZiBpdCBleGlzdHNcbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICB9XG4gICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICAgIC8vXG4gICAgICBjb25zdCB3aWRnZXQgPSB0aGlzLndpZGdldFJlZ2lzdGVyeS5yZXNvbHZlKHRoaXMubm9kZSgpLnR5cGUpO1xuICAgICAgLy9cbiAgICAgIGNvbnN0IHByb3BlcnRpZXNUb1Byb2Nlc3MgPSBbXG4gICAgICAgIC4uLih3aWRnZXQ/LnByb3BlcnRpZXMgPz8gW10pLFxuICAgICAgICAuLi4od2lkZ2V0Py5jb21wb25lbnRzW3RoaXMubW9kZSgpXT8ucHJvcGVydGllcyA/PyBbXSksXG4gICAgICBdPy5maWx0ZXIoKGMpID0+IGMuc2NoZW1hLmRlZmF1bHRWYWx1ZSAhPSBudWxsKTtcblxuICAgICAgLy8gUHJvY2VzcyBkZWZhdWx0IHZhbHVlcyAoZXZhbHVhdGUgZXhwcmVzc2lvbnMgaWYgbmVlZGVkKVxuICAgICAgY29uc3QgcHJvcHM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllc1RvUHJvY2Vzcykge1xuICAgICAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSBwcm9wZXJ0eS5zY2hlbWEuZGVmYXVsdFZhbHVlO1xuICAgICAgICBpZiAodHlwZW9mIGRlZmF1bHRWYWx1ZSA9PT0gJ3N0cmluZycgJiYgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9yLmlzRXhwcmVzc2lvbihkZWZhdWx0VmFsdWUpKSB7XG4gICAgICAgICAgLy8gRXZhbHVhdGUgZXhwcmVzc2lvbiBmb3IgZGVmYXVsdCB2YWx1ZVxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBldmFsdWF0ZWRWYWx1ZSA9IGF3YWl0IHRoaXMuZXZhbHVhdGVFeHByZXNzaW9uKGRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICBwcm9wc1twcm9wZXJ0eS5uYW1lXSA9IGV2YWx1YXRlZFZhbHVlO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBldmFsdWF0aW5nIGRlZmF1bHQgdmFsdWUgZXhwcmVzc2lvbiBmb3IgcHJvcGVydHkgJHtwcm9wZXJ0eS5uYW1lfTpgLCBlcnJvcik7XG4gICAgICAgICAgICBwcm9wc1twcm9wZXJ0eS5uYW1lXSA9IGNsb25lRGVlcChkZWZhdWx0VmFsdWUpOyAvLyBGYWxsYmFjayB0byBvcmlnaW5hbCB2YWx1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBVc2Ugc3RhdGljIGRlZmF1bHQgdmFsdWVcbiAgICAgICAgICBwcm9wc1twcm9wZXJ0eS5uYW1lXSA9IGNsb25lRGVlcChkZWZhdWx0VmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvL1xuICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLnNldChtZXJnZShwcm9wcywgd2lkZ2V0Py5vcHRpb25zLCB0aGlzLm5vZGUoKS5vcHRpb25zKSB8fCB7fSk7XG5cbiAgICAgIHRoaXMucHJlcHJvY2Vzc0FuZEluaXRpYWxPcHRpb25zKGNsb25lRGVlcCh0aGlzLm5vZGUoKS5vcHRpb25zKSk7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZU9wdGlvbnNCYXNlZE9uQ29udGV4dCgpO1xuICAgICAgLy9cbiAgICAgIHRoaXMuX29wdGlvbnMudXBkYXRlKCh2YWwpID0+ICh7IC4uLnZhbCwgLi4udGhpcy5tZXJnZWRPcHRpb25zKCkgfSkpO1xuICAgICAgLy8gRXZhbHVhdGUgZGVmYXVsdCB2YWx1ZVxuICAgICAgbGV0IGRlZmF1bHRWYWx1ZSA9IHRoaXMubm9kZSgpLmRlZmF1bHRWYWx1ZTtcbiAgICAgIGlmIChkZWZhdWx0VmFsdWUgJiYgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9yLmlzRXhwcmVzc2lvbihkZWZhdWx0VmFsdWUpKSB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IGF3YWl0IHRoaXMuZXZhbHVhdGVFeHByZXNzaW9uKGRlZmF1bHRWYWx1ZSk7XG4gICAgICB9XG4gICAgICAvL1xuICAgICAgY29uc3QgdG9rZW5WYWx1ZSA9IHtcbiAgICAgICAgbm9kZTogdGhpcy5ub2RlKCksXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdFZhbHVlLFxuICAgICAgICBvcHRpb25zOiB0aGlzLm1lcmdlZE9wdGlvbnMoKSxcbiAgICAgICAgY29uZmlnOiB3aWRnZXQsXG4gICAgICB9IGFzIEFYUFdpZGdldE5vZGVUb2tlbjtcbiAgICAgIGNvbnN0IHRva2VuID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBWFBfV0lER0VUX1RPS0VOLFxuICAgICAgICAgICAgdXNlVmFsdWU6IHRva2VuVmFsdWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgICAgLy9cbiAgICAgIGNvbnN0IGxvYWRpbmdSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KEFYUFdpZGdldFBsYWNlaG9sZGVyQ29tcG9uZW50KTtcbiAgICAgIC8vXG4gICAgICBjb25zdCBjb20gPSBhd2FpdCB3aWRnZXQ/LmNvbXBvbmVudHNbdGhpcy5tb2RlKCldPy5jb21wb25lbnQoKTtcbiAgICAgIGlmICghY29tKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYCR7dGhpcy5ub2RlKCkudHlwZX0gd2lkZ2V0IGNvbXBvbmVudCBub3QgZm91bmQgd2l0aCBtb2RlOiAke3RoaXMubW9kZSgpfWApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQ8QVhQVmFsdWVXaWRnZXRDb21wb25lbnQ8YW55Pj4oY29tLCB7IGluamVjdG9yOiB0b2tlbiB9KTtcbiAgICAgIHRoaXMuaW5zdGFuY2UgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICAgIHRoaXMuaW5zdGFuY2Uuc2V0U3RhdHVzKEFYUFdpZGdldFN0YXR1cy5SZW5kZXJpbmcpO1xuICAgICAgdGhpcy5pbnN0YW5jZS5wYXJlbnQgPSB0aGlzLnBhcmVudE5vZGUoKTtcbiAgICAgIHRoaXMuaW5zdGFuY2UuaW5kZXggPSB0aGlzLmluZGV4KCk7XG4gICAgICB0aGlzLmluc3RhbmNlLm1vZGUgPSB0aGlzLm1vZGUoKTtcbiAgICAgIHRoaXMuaW5zdGFuY2Uuc2V0U3RhdHVzKEFYUFdpZGdldFN0YXR1cy5SZW5kZXJlZCk7XG4gICAgICB0aGlzLmluc3RhbmNlPy5vbk9wdGlvbnNDaGFuZ2VkPy5waXBlKHRoaXMudW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgICB0aGlzLm9uT3B0aW9uc0NoYW5nZWQuZW1pdCh7IHNlbmRlcjogdGhpcywgd2lkZ2V0OiBjLnNlbmRlciB9KTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5pbnN0YW5jZT8ub25WYWx1ZUNoYW5nZWQ/LnBpcGUodGhpcy51bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQuZW1pdCh7IHNlbmRlcjogdGhpcywgd2lkZ2V0OiBjLnNlbmRlciBhcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9KTtcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgdGhpcy51cGRhdGVWYWx1ZUJhc2VkT25Gb3JtdWxhKCk7XG4gICAgICBhd2FpdCB0aGlzLmFzc2lnblRyaWdnZXJzKCk7XG4gICAgICAvL1xuICAgICAgbG9hZGluZ1JlZi5kZXN0cm95KCk7XG5cbiAgICAgIC8vIE1hcmsgdGhhdCBpbml0aWFsIHJlbmRlciBpcyBjb21wbGV0ZVxuICAgICAgdGhpcy5oYXNJbml0aWFsUmVuZGVyID0gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBjb21wb25lbnQ6JywgZXJyb3IpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlPcHRpb25zKCkge1xuICAgIGlmICghdGhpcy5pbnN0YW5jZSkgcmV0dXJuO1xuICAgIHRoaXMuX29wdGlvbnMudXBkYXRlKCh2YWwpID0+ICh7IC4uLnZhbCwgLi4udGhpcy5tZXJnZWRPcHRpb25zKCkgfSkpO1xuICAgIHRoaXMuaW5zdGFuY2Uuc2V0T3B0aW9ucyh0aGlzLm1lcmdlZE9wdGlvbnMoKSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRm9ybXVsYUZvclVwZGF0ZShmb3JtdWxhOiBzdHJpbmcgfCB1bmRlZmluZWQsIHBhdGg/OiBzdHJpbmcgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKGZvcm11bGEpIHtcbiAgICAgIGNvbnN0IHJlZ2V4ID0gL2NvbnRleHRcXC5ldmFsXFwoJyhbXiddKyknXFwpL2c7XG4gICAgICBjb25zdCBtYXRjaGVzID0gZm9ybXVsYS5tYXRjaChyZWdleCk7XG4gICAgICBjb25zdCBub2RlcyA9IG1hdGNoZXMgPyBtYXRjaGVzLm1hcCgobWF0Y2g6IGFueSkgPT4gbWF0Y2gubWF0Y2goLycoW14nXSspJy8pWzFdKSA6IFtdO1xuICAgICAgcmV0dXJuIG5vZGVzLmluY2x1ZGVzKHBhdGgpO1xuICAgIH0gZWxzZSByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcmVwcm9jZXNzQW5kSW5pdGlhbE9wdGlvbnMob2JqOiBhbnksIHBhdGhQcmVmaXg6IHN0cmluZyA9ICcnKTogdm9pZCB7XG4gICAgaWYgKCFvYmopIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgT2JqZWN0LmVudHJpZXMob2JqKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gcGF0aFByZWZpeCA/IGAke3BhdGhQcmVmaXh9LiR7a2V5fWAgOiBrZXk7XG5cbiAgICAgIC8vIENSSVRJQ0FMIEZJWDogU2tpcCB0cmlnZ2VyIGFjdGlvbnMgZHVyaW5nIG9wdGlvbnMgcHJvY2Vzc2luZ1xuICAgICAgLy9cbiAgICAgIC8vIFBST0JMRU06IFRyaWdnZXIgYWN0aW9ucyB3ZXJlIGJlaW5nIGV2YWx1YXRlZCBpbW1lZGlhdGVseSBkdXJpbmcgd2lkZ2V0IHNldHVwL29wdGlvbnMgcHJvY2Vzc2luZyxcbiAgICAgIC8vIGNhdXNpbmcgdGhlbSB0byBleGVjdXRlIGJlZm9yZSB0aGUgYWN0dWFsIHRyaWdnZXIgZXZlbnQgb2NjdXJyZWQuIFRoaXMgbWVhbnQgdHJpZ2dlcnMgd291bGQgZmlyZVxuICAgICAgLy8gZHVyaW5nIGluaXRpYWxpemF0aW9uIGluc3RlYWQgb2Ygd2hlbiB0aGUgc3BlY2lmaWVkIGNvbnRleHQgcGF0aCBhY3R1YWxseSBjaGFuZ2VkLlxuICAgICAgLy9cbiAgICAgIC8vIFJPT1QgQ0FVU0U6IFRoZSBleHByZXNzaW9uIGV2YWx1YXRvciB3YXMgcHJvY2Vzc2luZyB0cmlnZ2VyIGFjdGlvbiBleHByZXNzaW9ucyAobGlrZSBjb25zb2xlLmxvZ1xuICAgICAgLy8gb3Igd2lkZ2V0LnNldFZhbHVlIGNhbGxzKSBhcyBwYXJ0IG9mIHRoZSBub3JtYWwgb3B0aW9ucyBwcmVwcm9jZXNzaW5nLCB0cmVhdGluZyB0aGVtIGFzIGR5bmFtaWNcbiAgICAgIC8vIGV4cHJlc3Npb25zIHRoYXQgbmVlZGVkIGltbWVkaWF0ZSBldmFsdWF0aW9uLlxuICAgICAgLy9cbiAgICAgIC8vIFNPTFVUSU9OOiBEZXRlY3Qgd2hlbiB3ZSdyZSBwcm9jZXNzaW5nIHRyaWdnZXIgYWN0aW9ucyBhbmQgc3RvcmUgdGhlbSBhcyBzdGF0aWMgdmFsdWVzIHdpdGhvdXRcbiAgICAgIC8vIGV4cHJlc3Npb24gZXZhbHVhdGlvbi4gVGhpcyBlbnN1cmVzIHRyaWdnZXIgYWN0aW9ucyBhcmUgb25seSBldmFsdWF0ZWQgd2hlbiB0aGUgdHJpZ2dlcidzXG4gICAgICAvLyBzdWJzY3JpcHRpb24gY2FsbGJhY2sgYWN0dWFsbHkgZmlyZXMgKHdoZW4gdGhlIGV2ZW50IGNvbmRpdGlvbiBpcyBtZXQpLlxuICAgICAgLy9cbiAgICAgIC8vIFJFU1VMVDogVHJpZ2dlcnMgbm93IG9ubHkgZXhlY3V0ZSB3aGVuIHRoZWlyIGV2ZW50IGZpbHRlcnMgcGFzcyAoZS5nLiwgd2hlbiB0aGUgc3BlY2lmaWVkXG4gICAgICAvLyBjb250ZXh0IHBhdGggY2hhbmdlcyksIG5vdCBkdXJpbmcgd2lkZ2V0IGluaXRpYWxpemF0aW9uLlxuICAgICAgaWYgKGN1cnJlbnRQYXRoLmluY2x1ZGVzKCd0cmlnZ2VycycpICYmIChrZXkgPT09ICdhY3Rpb24nIHx8IGN1cnJlbnRQYXRoLmVuZHNXaXRoKCcuYWN0aW9uJykpKSB7XG4gICAgICAgIC8vIEFwcGx5IHN0YXRpYyB2YWx1ZXMgZGlyZWN0bHkgd2l0aG91dCBleHByZXNzaW9uIGV2YWx1YXRpb25cbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLnVwZGF0ZSgoY3VycmVudE9wdGlvbnMpID0+IHtcbiAgICAgICAgICByZXR1cm4gc2V0KGN1cnJlbnRPcHRpb25zLCBjdXJyZW50UGF0aCwgdmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuaXNFeHByZXNzaW9uKHZhbHVlKSkge1xuICAgICAgICAvLyBDYWNoZSBkeW5hbWljIGV4cHJlc3Npb24gZm9yIGxhdGVyIGV2YWx1YXRpb25cbiAgICAgICAgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9ycy5zZXQoY3VycmVudFBhdGgsICgpID0+IHRoaXMuZXZhbHVhdGVFeHByZXNzaW9uKHZhbHVlKSk7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgICAgIHZhbHVlICE9PSBudWxsICYmXG4gICAgICAgICh2YWx1ZS5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0IHx8IEFycmF5LmlzQXJyYXkodmFsdWUpKVxuICAgICAgKSB7XG4gICAgICAgIC8vIFJlY3Vyc2l2ZWx5IGhhbmRsZSBuZXN0ZWQgb2JqZWN0c1xuICAgICAgICB0aGlzLnByZXByb2Nlc3NBbmRJbml0aWFsT3B0aW9ucyh2YWx1ZSwgY3VycmVudFBhdGgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQXBwbHkgc3RhdGljIHZhbHVlcyBkaXJlY3RseVxuICAgICAgICB0aGlzLm1lcmdlZE9wdGlvbnMudXBkYXRlKChjdXJyZW50T3B0aW9ucykgPT4ge1xuICAgICAgICAgIHJldHVybiBzZXQoY3VycmVudE9wdGlvbnMsIGN1cnJlbnRQYXRoLCB2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlT3B0aW9uc0Jhc2VkT25Db250ZXh0KCkge1xuICAgIGNvbnN0IHVwZGF0ZVByb21pc2VzID0gQXJyYXkuZnJvbSh0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3JzKS5tYXAoYXN5bmMgKFtwYXRoLCBldmFsdWF0b3JdKSA9PiB7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGF3YWl0IGV2YWx1YXRvcigpO1xuICAgICAgcmV0dXJuIHsgcGF0aCwgbmV3VmFsdWUgfTtcbiAgICB9KTtcbiAgICAvLyBXYWl0IGZvciBhbGwgZXZhbHVhdG9ycyB0byBjb21wbGV0ZVxuICAgIGNvbnN0IHVwZGF0ZXMgPSBhd2FpdCBQcm9taXNlLmFsbCh1cGRhdGVQcm9taXNlcyk7XG4gICAgLy8gQXBwbHkgdXBkYXRlcyB0byBtZXJnZWRPcHRpb25zXG4gICAgaWYgKHVwZGF0ZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLnVwZGF0ZSgobykgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVkT3B0aW9ucyA9IHsgLi4ubyB9O1xuICAgICAgICB1cGRhdGVzLmZvckVhY2goKHsgcGF0aCwgbmV3VmFsdWUgfSkgPT4ge1xuICAgICAgICAgIC8vIFNldCB0aGUgbmV3IHZhbHVlIGluIHRoZSB1cGRhdGVkT3B0aW9ucyBvYmplY3QgYnkgcGF0aFxuICAgICAgICAgIHNldCh1cGRhdGVkT3B0aW9ucywgcGF0aCwgbmV3VmFsdWUpOyAvLyBBc3N1bWluZyAnc2V0JyBjYW4gaGFuZGxlIHBhdGhzIGxpa2UgJ3Byb3BlcnR5LnN1YnByb3BlcnR5J1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWRPcHRpb25zO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB1cGRhdGVzLmxlbmd0aDtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVZhbHVlQmFzZWRPbkZvcm11bGEoKSB7XG4gICAgaWYgKHRoaXMubm9kZSgpLmZvcm11bGEpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgdGhpcy5ldmFsdWF0ZUV4cHJlc3Npb24odGhpcy5ub2RlKCkuZm9ybXVsYSEpO1xuICAgICAgdGhpcy5pbnN0YW5jZS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBldmFsdWF0ZUV4cHJlc3Npb24odGVtcGxhdGVFeHByZXNzaW9uOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzY29wZSA9IHRoaXMuYnVpbGRFeHByZXNzaW9uU2NvcGUoKTtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUodGVtcGxhdGVFeHByZXNzaW9uLCBzY29wZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGV2YWx1YXRpbmcgZXhwcmVzc2lvbjonLCBlcnJvcik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEV4cHJlc3Npb25TY29wZSgpOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUge1xuICAgIHJldHVybiB7XG4gICAgICBjb250ZXh0OiB0aGlzLmdldENvbnRleHRTY29wZSgpLFxuICAgICAgZXZlbnRzOiB0aGlzLmdldEV2ZW50U2NvcGUoKSxcbiAgICAgIHdpZGdldDogdGhpcy5nZXRXaWRnZXRTY29wZSgpLFxuICAgICAgbWV0aG9kczogdGhpcy5nZXRGdW5jdGlvblNjb3BlKCksXG4gICAgICB2YXJzOiB0aGlzLmdldFZhcmlhYmxlc1Njb3BlKCksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29udGV4dFNjb3BlKCk6IHsgW25hbWU6IHN0cmluZ106IEZ1bmN0aW9uIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBldmFsOiAocGF0aDogc3RyaW5nKSA9PiB7XG4gICAgICAgIC8vVE9ETzogSGFuZGxlIGFycmF5IGluZGV4XG4gICAgICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aC5zdGFydHNXaXRoKCc+JykgPyBgJHt0aGlzLmluc3RhbmNlPy5wYXJlbnRQYXRoKCl9LiR7cGF0aC5zdWJzdHJpbmcoMSl9YCA6IHBhdGg7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jb250ZXh0U2VydmljZS5nZXRWYWx1ZShmdWxsUGF0aCk7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0sXG4gICAgICBzZXQ6IChwYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jb250ZXh0U2VydmljZS51cGRhdGUocGF0aCwgdmFsdWUpO1xuICAgICAgfSxcbiAgICAgIGRhdGE6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dFNlcnZpY2UuZGF0YSgpO1xuICAgICAgfSxcbiAgICAgIGlzRGlydHk6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dFNlcnZpY2UuaXNEaXJ0eSgpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFdmVudFNjb3BlKCk6IHsgW25hbWU6IHN0cmluZ106IEZ1bmN0aW9uIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBjb250ZXh0OiAocGF0aD86IHN0cmluZykgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vbkNvbnRleHRDaGFuZ2VkLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKChjKSA9PiB7XG4gICAgICAgICAgICAvLyBJZiBubyBwYXRoIGZpbHRlciBzcGVjaWZpZWQsIHBhc3MgYWxsIGV2ZW50c1xuICAgICAgICAgICAgaWYgKHBhdGggPT0gbnVsbCB8fCBwYXRoID09PSAnJykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEVuc3VyZSBjLnBhdGggZXhpc3RzXG4gICAgICAgICAgICBpZiAoIWMucGF0aCkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBQYXR0ZXJuOiBcInByZWZpeCpcIiAtIG1hdGNoZXMgcGF0aHMgdGhhdCBzdGFydCB3aXRoIHByZWZpeFxuICAgICAgICAgICAgaWYgKHBhdGguZW5kc1dpdGgoJyonKSkge1xuICAgICAgICAgICAgICBjb25zdCBwcmVmaXggPSBwYXRoLnN1YnN0cmluZygwLCBwYXRoLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgICByZXR1cm4gYy5wYXRoLnN0YXJ0c1dpdGgocHJlZml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFBhdHRlcm46IFwiKnN1ZmZpeFwiIC0gbWF0Y2hlcyBwYXRocyB0aGF0IGVuZCB3aXRoIHN1ZmZpeFxuICAgICAgICAgICAgZWxzZSBpZiAocGF0aC5zdGFydHNXaXRoKCcqJykpIHtcbiAgICAgICAgICAgICAgY29uc3Qgc3VmZml4ID0gcGF0aC5zdWJzdHJpbmcoMSk7XG4gICAgICAgICAgICAgIHJldHVybiBjLnBhdGguZW5kc1dpdGgoc3VmZml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEV4YWN0IG1hdGNoXG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGMucGF0aCA9PT0gcGF0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBmcm9tOiAoZXZlbnQ6IHN0cmluZykgPT4gZ2V0KHRoaXMuaW5zdGFuY2UuYXBpKCksIGV2ZW50KSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRXaWRnZXRTY29wZSgpOiB7IFtuYW1lOiBzdHJpbmddOiBGdW5jdGlvbiB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgY2FsbDogKG5hbWU6IHN0cmluZywgLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5jYWxsKG5hbWUsIC4uLmFyZ3MpO1xuICAgICAgfSxcbiAgICAgIHNldFZhbHVlOiAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmluc3RhbmNlLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgIH0sXG4gICAgICBjbGVhcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmluc3RhbmNlLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICB9LFxuICAgICAgcmVmcmVzaDogKCkgPT4ge1xuICAgICAgICBjb25zdCByZWZyZXNoID0gKHRoaXMuaW5zdGFuY2UgYXMgYW55KT8uWydyZWZyZXNoJ107XG4gICAgICAgIGlmIChyZWZyZXNoICYmIHR5cGVvZiByZWZyZXNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmVmcmVzaC5iaW5kKHRoaXMuaW5zdGFuY2UpKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBvdXRwdXQ6IChuYW1lOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5vdXRwdXQobmFtZSk7XG4gICAgICB9LFxuICAgICAgZmluZDogKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRlclNlcnZpY2UuZ2V0V2lkZ2V0KGlkKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RnVuY3Rpb25TY29wZSgpOiB7IFtuYW1lOiBzdHJpbmddOiBGdW5jdGlvbiB9IHtcbiAgICBjb25zdCBzY29wZTogeyBbbmFtZTogc3RyaW5nXTogRnVuY3Rpb24gfSA9IHtcbiAgICAgIHN1bTogKHZhbHVlczogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiBzdW0odmFsdWVzKTtcbiAgICAgIH0sXG4gICAgICB0cmFuc2xhdGU6ICh0ZXh0OiBzdHJpbmcsIG9wdGlvbnM/OiBBWFRyYW5zbGF0ZU9wdGlvbnMpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVBc3luYyh0ZXh0LCBvcHRpb25zKTtcbiAgICAgIH0sXG4gICAgICB3aWRnZXRJbmZvOiAobmFtZTogc3RyaW5nKTogQVhQV2lkZ2V0Q29uZmlnIHwgdW5kZWZpbmVkID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2lkZ2V0U2VydmljZS5yZXNvbHZlKG5hbWUpO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgLy8gQWRkIGN1c3RvbSBmdW5jdGlvbnMgZnJvbSBidWlsZGVyIHNlcnZpY2VcbiAgICBPYmplY3QuZW50cmllcyh0aGlzLmJ1aWxkZXJTZXJ2aWNlLmZ1bmN0aW9ucykuZm9yRWFjaCgoW2tleSwgZm5dKSA9PiB7XG4gICAgICBzY29wZVtrZXldID0gKC4uLmFyZ3M6IGFueVtdKSA9PiB7XG4gICAgICAgIHJldHVybiBmbiguLi5hcmdzKTtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2NvcGU7XG4gIH1cblxuICBwcml2YXRlIGdldFZhcmlhYmxlc1Njb3BlKCk6IHsgW25hbWU6IHN0cmluZ106IEZ1bmN0aW9uIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBldmFsOiAocGF0aDogc3RyaW5nKSA9PiBnZXQodGhpcy5idWlsZGVyU2VydmljZS52YXJpYWJsZXMsIHBhdGgpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFzc2lnblRyaWdnZXJzKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLm5vZGUoKTtcbiAgICAvLyBDaGVjayBtdWx0aXBsZSBwb3NzaWJsZSBsb2NhdGlvbnMgZm9yIHRyaWdnZXJzXG4gICAgY29uc3QgdHJpZ2dlcnMgPSBub2RlLnRyaWdnZXJzIHx8IG5vZGUub3B0aW9ucz8uWyd0cmlnZ2VycyddIHx8IHRoaXMubWVyZ2VkT3B0aW9ucygpPy50cmlnZ2VycztcblxuICAgIGlmICghdHJpZ2dlcnMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHRyaWdnZXIgb2YgdHJpZ2dlcnMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gYXdhaXQgdGhpcy5ldmFsdWF0ZVRyaWdnZXIodHJpZ2dlci5ldmVudCk7XG4gICAgICAgIGlmIChldmVudCkge1xuICAgICAgICAgIGV2ZW50LnBpcGUodGhpcy51bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV4ZWMgPSBhc3luYyAoYWN0aW9uOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFpc0VtcHR5KGFjdGlvbikgJiYgaXNTdHJpbmcoYWN0aW9uKSkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZXZhbHVhdGVBY3Rpb24oYWN0aW9uKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IGFjdGlvbnMgPSBBcnJheS5pc0FycmF5KHRyaWdnZXIuYWN0aW9uKSA/IHRyaWdnZXIuYWN0aW9uIDogW3RyaWdnZXIuYWN0aW9uXTtcbiAgICAgICAgICAgIGFjdGlvbnMuZm9yRWFjaChhc3luYyAoYTogc3RyaW5nKSA9PiBhd2FpdCBleGVjKGEpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgYXNzaWduaW5nIHRyaWdnZXI6JywgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXZhbHVhdGVUcmlnZ2VyKHRlbXBsYXRlRXhwcmVzc2lvbjogc3RyaW5nKTogUHJvbWlzZTxPYnNlcnZhYmxlPGFueT4gfCBudWxsPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNjb3BlID0gdGhpcy5idWlsZEV4cHJlc3Npb25TY29wZSgpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9yLmV2YWx1YXRlKHRlbXBsYXRlRXhwcmVzc2lvbiwgc2NvcGUpO1xuXG4gICAgICAvLyBDaGVjayBpZiByZXN1bHQgaXMgYW4gT2JzZXJ2YWJsZVxuICAgICAgaWYgKHJlc3VsdCAmJiB0eXBlb2YgcmVzdWx0LnN1YnNjcmliZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGV2YWx1YXRpbmcgdHJpZ2dlciBleHByZXNzaW9uOicsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXZhbHVhdGVBY3Rpb24odGVtcGxhdGVFeHByZXNzaW9uOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2NvcGUgPSB0aGlzLmJ1aWxkRXhwcmVzc2lvblNjb3BlKCk7XG4gICAgICBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUodGVtcGxhdGVFeHByZXNzaW9uLCBzY29wZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGV2YWx1YXRpbmcgYWN0aW9uIGV4cHJlc3Npb246JywgdGVtcGxhdGVFeHByZXNzaW9uLCBlcnJvcik7XG4gICAgfVxuICB9XG59XG4iXX0=","import { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { Inject, NgModule, Optional } from '@angular/core';\nimport { AXPWidgetColumnRendererComponent } from './widget-column-renderer';\nimport { AXPWidgetContainerComponent } from './widget-container.component';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXPWidgetRendererDirective } from './widget-renderer.directive';\nimport * as i0 from \"@angular/core\";\nconst COMPONENTS = [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective];\nexport class AXPLayoutBuilderModule {\n static forRoot(config) {\n return {\n ngModule: AXPLayoutBuilderModule,\n providers: [\n {\n provide: 'AXPLayoutBuilderModuleFactory',\n useFactory: (registry) => async () => {\n await Promise.all(config?.widgets?.map((w) => Promise.resolve(registry.register(w))) || []);\n await Promise.all(config?.extendedWidgets?.map((ew) => Promise.resolve(registry.extend(ew.parentName, ew.widget))) || []);\n },\n deps: [AXPWidgetRegistryService],\n multi: true,\n },\n ],\n };\n }\n static forChild(config) {\n return {\n ngModule: AXPLayoutBuilderModule,\n providers: [\n {\n provide: 'AXPLayoutBuilderModuleFactory',\n useFactory: (registry) => async () => {\n await Promise.all(config?.widgets?.map((w) => Promise.resolve(registry.register(w))) || []);\n await Promise.all(config?.extendedWidgets?.map((ew) => Promise.resolve(registry.extend(ew.parentName, ew.widget))) || []);\n },\n deps: [AXPWidgetRegistryService],\n multi: true,\n },\n ],\n };\n }\n /**\n * @ignore\n */\n constructor(instances) {\n instances?.forEach((f) => {\n f();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBuilderModule, deps: [{ token: 'AXPLayoutBuilderModuleFactory', optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBuilderModule, declarations: [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective], imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule, AXTranslationModule], exports: [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBuilderModule, imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule, AXTranslationModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBuilderModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule, AXTranslationModule],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: ['AXPLayoutBuilderModuleFactory']\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci9idWlsZGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBUXpFLE1BQU0sVUFBVSxHQUFHLENBQUMsMkJBQTJCLEVBQUUsZ0NBQWdDLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztBQU8vRyxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBc0M7UUFDbkQsT0FBTztZQUNMLFFBQVEsRUFBRSxzQkFBc0I7WUFDaEMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSwrQkFBK0I7b0JBQ3hDLFVBQVUsRUFBRSxDQUFDLFFBQWtDLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFO3dCQUM3RCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7d0JBRTVGLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQ3ZHLENBQUM7b0JBQ0osQ0FBQztvQkFDRCxJQUFJLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztvQkFDaEMsS0FBSyxFQUFFLElBQUk7aUJBQ1o7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFzQztRQUNwRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLCtCQUErQjtvQkFDeEMsVUFBVSxFQUFFLENBQUMsUUFBa0MsRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUU7d0JBQzdELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQzt3QkFFNUYsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FDdkcsQ0FBQztvQkFDSixDQUFDO29CQUNELElBQUksRUFBRSxDQUFDLHdCQUF3QixDQUFDO29CQUNoQyxLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQWlFLFNBQWdCO1FBQy9FLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN2QixDQUFDLEVBQUUsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FoRFUsc0JBQXNCLGtCQTRDRCwrQkFBK0I7K0dBNUNwRCxzQkFBc0IsaUJBUGYsMkJBQTJCLEVBQUUsZ0NBQWdDLEVBQUUsMEJBQTBCLGFBR2pHLFlBQVksRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixhQUh2RSwyQkFBMkIsRUFBRSxnQ0FBZ0MsRUFBRSwwQkFBMEI7K0dBT2hHLHNCQUFzQixZQUp2QixZQUFZLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxtQkFBbUI7OzJGQUk5RSxzQkFBc0I7a0JBTGxDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLENBQUM7b0JBQzFGLE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO29CQUN4QixZQUFZLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQztpQkFDOUI7OzBCQTZDYyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYU2tlbGV0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2tlbGV0b24nO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q29sdW1uUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldC1jb2x1bW4tcmVuZGVyZXInO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL3dpZGdldC1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRSZW5kZXJlckRpcmVjdGl2ZSB9IGZyb20gJy4vd2lkZ2V0LXJlbmRlcmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb25maWcsIGV4dGVuZGVkV2lkZ2V0IH0gZnJvbSAnLi93aWRnZXQudHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUExheW91dEJ1aWxkZXJNb2R1bGVDb25maWdzIHtcbiAgd2lkZ2V0cz86IEFYUFdpZGdldENvbmZpZ1tdO1xuICBleHRlbmRlZFdpZGdldHM/OiBleHRlbmRlZFdpZGdldFtdO1xufVxuXG5jb25zdCBDT01QT05FTlRTID0gW0FYUFdpZGdldENvbnRhaW5lckNvbXBvbmVudCwgQVhQV2lkZ2V0Q29sdW1uUmVuZGVyZXJDb21wb25lbnQsIEFYUFdpZGdldFJlbmRlcmVyRGlyZWN0aXZlXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUG9ydGFsTW9kdWxlLCBBWFNrZWxldG9uTW9kdWxlLCBDb21tb25Nb2R1bGUsIEFYVHJhbnNsYXRpb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UU10sXG4gIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVFNdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnPzogQVhQTGF5b3V0QnVpbGRlck1vZHVsZUNvbmZpZ3MpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYUExheW91dEJ1aWxkZXJNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFYUExheW91dEJ1aWxkZXJNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6ICdBWFBMYXlvdXRCdWlsZGVyTW9kdWxlRmFjdG9yeScsXG4gICAgICAgICAgdXNlRmFjdG9yeTogKHJlZ2lzdHJ5OiBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UpID0+IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGNvbmZpZz8ud2lkZ2V0cz8ubWFwKCh3KSA9PiBQcm9taXNlLnJlc29sdmUocmVnaXN0cnkucmVnaXN0ZXIodykpKSB8fCBbXSk7XG5cbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICBjb25maWc/LmV4dGVuZGVkV2lkZ2V0cz8ubWFwKChldykgPT4gUHJvbWlzZS5yZXNvbHZlKHJlZ2lzdHJ5LmV4dGVuZChldy5wYXJlbnROYW1lLCBldy53aWRnZXQpKSkgfHwgW10sXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVwczogW0FYUFdpZGdldFJlZ2lzdHJ5U2VydmljZV0sXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZm9yQ2hpbGQoY29uZmlnPzogQVhQTGF5b3V0QnVpbGRlck1vZHVsZUNvbmZpZ3MpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYUExheW91dEJ1aWxkZXJNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFYUExheW91dEJ1aWxkZXJNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6ICdBWFBMYXlvdXRCdWlsZGVyTW9kdWxlRmFjdG9yeScsXG4gICAgICAgICAgdXNlRmFjdG9yeTogKHJlZ2lzdHJ5OiBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UpID0+IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGNvbmZpZz8ud2lkZ2V0cz8ubWFwKCh3KSA9PiBQcm9taXNlLnJlc29sdmUocmVnaXN0cnkucmVnaXN0ZXIodykpKSB8fCBbXSk7XG5cbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICBjb25maWc/LmV4dGVuZGVkV2lkZ2V0cz8ubWFwKChldykgPT4gUHJvbWlzZS5yZXNvbHZlKHJlZ2lzdHJ5LmV4dGVuZChldy5wYXJlbnROYW1lLCBldy53aWRnZXQpKSkgfHwgW10sXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVwczogW0FYUFdpZGdldFJlZ2lzdHJ5U2VydmljZV0sXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdCgnQVhQTGF5b3V0QnVpbGRlck1vZHVsZUZhY3RvcnknKSBpbnN0YW5jZXM6IGFueVtdKSB7XG4gICAgaW5zdGFuY2VzPy5mb3JFYWNoKChmKSA9PiB7XG4gICAgICBmKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","export class AXPPropertyEditorHelper {\n static expandShorthand(values) {\n switch (values.length) {\n case 1:\n return [values[0], values[0], values[0], values[0]];\n case 2:\n return [values[0], values[1], values[0], values[1]];\n case 3:\n return [values[0], values[1], values[2], values[1]];\n case 4:\n return values;\n default:\n throw new Error(`Invalid shorthand value count. Input: ${values}`);\n }\n }\n static condenseShorthand(values) {\n if (values.length !== 4) {\n throw new Error('Expected 4 values for condensation.');\n }\n if (values[0] === values[1] && values[1] === values[2] && values[2] === values[3]) {\n return `${values[0]}`;\n }\n else if (values[0] === values[2] && values[1] === values[3]) {\n return `${values[0]} ${values[1]}`;\n }\n else if (values[1] === values[3]) {\n return `${values[0]} ${values[1]} ${values[2]}`;\n }\n else {\n return `${values[0]} ${values[1]} ${values[2]} ${values[3]}`;\n }\n }\n static parseSides(input) {\n const values = this.expandShorthand(input.match(/(?:rgb\\([^)]+\\)|[^ ]+)/g)?.map((value) => value.trim()) || []);\n return { top: values[0], right: values[1], bottom: values[2], left: values[3] };\n }\n static parseSidesWithUnits(input) {\n const values = this.expandShorthand(input.match(/(?:rgb\\([^)]+\\)|[^ ]+)/g)?.map((value) => value.trim()) || []);\n return {\n top: AXPPropertyEditorHelper.getValueWithUnit(values[0]).value,\n right: AXPPropertyEditorHelper.getValueWithUnit(values[1]).value,\n bottom: AXPPropertyEditorHelper.getValueWithUnit(values[2]).value,\n left: AXPPropertyEditorHelper.getValueWithUnit(values[3]).value,\n };\n }\n static parseCorners(input) {\n const values = this.expandShorthand(input.split(' ').map((value) => value.trim()));\n return {\n 'top-left': AXPPropertyEditorHelper.getValueWithUnit(values[0]).value,\n 'top-right': AXPPropertyEditorHelper.getValueWithUnit(values[1]).value,\n 'bottom-left': AXPPropertyEditorHelper.getValueWithUnit(values[2]).value,\n 'bottom-right': AXPPropertyEditorHelper.getValueWithUnit(values[3]).value,\n };\n }\n static parseSpacingBox(input) {\n return {\n margin: this.parseSidesWithUnits(input.margin),\n padding: this.parseSidesWithUnits(input.padding),\n };\n }\n static parseBorderBox(input) {\n return {\n width: this.parseSidesWithUnits(input.width),\n radius: this.parseCorners(input.radius),\n color: this.parseSides(input.color),\n style: this.parseSides(input.style),\n };\n }\n static parseSpacingBoxReverse(input, units) {\n const format = (value, unit) => `${value}${unit}`;\n return {\n margin: AXPPropertyEditorHelper.condenseShorthand([\n format(input.margin.top, units.margin.top),\n format(input.margin.right, units.margin.right),\n format(input.margin.bottom, units.margin.bottom),\n format(input.margin.left, units.margin.left),\n ]),\n padding: AXPPropertyEditorHelper.condenseShorthand([\n format(input.padding.top, units.padding.top),\n format(input.padding.right, units.padding.right),\n format(input.padding.bottom, units.padding.bottom),\n format(input.padding.left, units.padding.left),\n ]),\n };\n }\n static parseBorderBoxReverse(input, units) {\n const format = (value, unit) => `${value}${unit}`;\n return {\n width: AXPPropertyEditorHelper.condenseShorthand([\n format(input.width.top, units.width.top),\n format(input.width.right, units.width.right),\n format(input.width.bottom, units.width.bottom),\n format(input.width.left, units.width.left),\n ]),\n radius: AXPPropertyEditorHelper.condenseShorthand([\n format(input.radius['top-left'], units.radius['top-left']),\n format(input.radius['top-right'], units.radius['top-right']),\n format(input.radius['bottom-right'], units.radius['bottom-right']),\n format(input.radius['bottom-left'], units.radius['bottom-left']),\n ]),\n color: AXPPropertyEditorHelper.condenseShorthand([\n `${input.color.top}${units.color.top}`,\n `${input.color.right}${units.color.right}`,\n `${input.color.bottom}${units.color.bottom}`,\n `${input.color.left}${units.color.left}`,\n ]),\n style: AXPPropertyEditorHelper.condenseShorthand([\n `${input.style.top}${units.style.top}`,\n `${input.style.right}${units.style.right}`,\n `${input.style.bottom}${units.style.bottom}`,\n `${input.style.left}${units.style.left}`,\n ]),\n };\n }\n static getValueWithUnit(input) {\n if (typeof input === 'number')\n return { value: input, unit: 'px' };\n if (input === 'auto')\n return { value: 0, unit: 'px' };\n const match = input.match(/^([0-9.]+)([a-z%]*)$/i);\n if (!match)\n throw new Error(`Invalid unit format: ${input}`);\n return { value: parseFloat(match[1]), unit: match[2] || '' };\n }\n static getValueFromUnit(value, unit) {\n return unit ? `${value}${unit}` : `${value}`;\n }\n static parseGap(gap) {\n const parts = gap.split(/\\s+/);\n const match = parts[0].match(/^(\\d+\\.?\\d*)([a-z%]+)$/);\n if (!match) {\n throw new Error('Invalid gap format');\n }\n const [, xValue, unit] = match;\n let yValue = parseFloat(xValue);\n if (parts.length === 2) {\n const secondMatch = parts[1].match(/^(\\d+\\.?\\d*)[a-z%]+$/);\n if (!secondMatch) {\n throw new Error('Invalid gap format');\n }\n yValue = parseFloat(secondMatch[1]);\n }\n return {\n values: {\n x: parseFloat(xValue),\n y: yValue,\n },\n unit,\n };\n }\n static parseGridTemplate(gridTemplate) {\n const match = gridTemplate.match(/^repeat\\((\\d+),\\s*(?:1fr|auto|minmax\\([^)]*\\))\\)$/);\n if (!match) {\n throw new Error(\"Invalid grid template format. Expected 'repeat(N, 1fr|auto|minmax(...))'.\");\n }\n return parseInt(match[1], 10);\n }\n static createGridTemplate(repetitionCount) {\n if (repetitionCount <= 0) {\n throw new Error('Repetition count must be a positive integer.');\n }\n return `repeat(${repetitionCount}, 1fr)`;\n }\n}\nexport function findNonEmptyBreakpoints(values) {\n const breakpoints = ['default', 'sm', 'md', 'lg', 'xl', '2xl', '3xl'];\n const nonEmptyBreakpoints = [];\n for (const breakpoint of breakpoints) {\n if (values[breakpoint] !== undefined) {\n nonEmptyBreakpoints.push(breakpoint);\n }\n }\n return nonEmptyBreakpoints;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZWRpdG9yLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL2hlbHBlci9wcm9wZXJ0eS1lZGl0b3IuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE1BQU0sT0FBTyx1QkFBdUI7SUFDMUIsTUFBTSxDQUFDLGVBQWUsQ0FBbUIsTUFBVztRQUMxRCxRQUFRLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QixLQUFLLENBQUM7Z0JBQ0osT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RELEtBQUssQ0FBQztnQkFDSixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEQsS0FBSyxDQUFDO2dCQUNKLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RCxLQUFLLENBQUM7Z0JBQ0osT0FBTyxNQUFNLENBQUM7WUFDaEI7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN2RSxDQUFDO0lBQ0gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBSSxNQUFXO1FBQzdDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FB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QztJQUNILENBQUM7SUFFRCxPQUFPLG1CQUFtQixDQUFDO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWFBCb3JkZXJCb3gsXG4gIEFYUEJvcmRlckJveFN0cmluZyxcbiAgQVhQQnJlYWtwb2ludHMsXG4gIEFYUEJyZWFrcG9pbnRWYWx1ZXMsXG4gIEFYUFByb3BlcnR5Q29ybmVycyxcbiAgQVhQUHJvcGVydHlTaWRlcyxcbiAgQVhQU3BhY2luZ0JveCxcbiAgQVhQU3BhY2luZ0JveFN0cmluZyxcbn0gZnJvbSAnLi9wcm9wZXJ0eS1lZGl0b3IudHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBBWFBQcm9wZXJ0eUVkaXRvckhlbHBlciB7XG4gIHByaXZhdGUgc3RhdGljIGV4cGFuZFNob3J0aGFuZDxUIGV4dGVuZHMgc3RyaW5nPih2YWx1ZXM6IFRbXSk6IFRbXSB7XG4gICAgc3dpdGNoICh2YWx1ZXMubGVuZ3RoKSB7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHJldHVybiBbdmFsdWVzWzBdLCB2YWx1ZXNbMF0sIHZhbHVlc1swXSwgdmFsdWVzWzBdXTtcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgcmV0dXJuIFt2YWx1ZXNbMF0sIHZhbHVlc1sxXSwgdmFsdWVzWzBdLCB2YWx1ZXNbMV1dO1xuICAgICAgY2FzZSAzOlxuICAgICAgICByZXR1cm4gW3ZhbHVlc1swXSwgdmFsdWVzWzFdLCB2YWx1ZXNbMl0sIHZhbHVlc1sxXV07XG4gICAgICBjYXNlIDQ6XG4gICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgc2hvcnRoYW5kIHZhbHVlIGNvdW50LiBJbnB1dDogJHt2YWx1ZXN9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY29uZGVuc2VTaG9ydGhhbmQ8VD4odmFsdWVzOiBUW10pOiBzdHJpbmcge1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoICE9PSA0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIDQgdmFsdWVzIGZvciBjb25kZW5zYXRpb24uJyk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlc1swXSA9PT0gdmFsdWVzWzFdICYmIHZhbHVlc1sxXSA9PT0gdmFsdWVzWzJdICYmIHZhbHVlc1syXSA9PT0gdmFsdWVzWzNdKSB7XG4gICAgICByZXR1cm4gYCR7dmFsdWVzWzBdfWA7XG4gICAgfSBlbHNlIGlmICh2YWx1ZXNbMF0gPT09IHZhbHVlc1syXSAmJiB2YWx1ZXNbMV0gPT09IHZhbHVlc1szXSkge1xuICAgICAgcmV0dXJuIGAke3ZhbHVlc1swXX0gJHt2YWx1ZXNbMV19YDtcbiAgICB9IGVsc2UgaWYgKHZhbHVlc1sxXSA9PT0gdmFsdWVzWzNdKSB7XG4gICAgICByZXR1cm4gYCR7dmFsdWVzWzBdfSAke3ZhbHVlc1sxXX0gJHt2YWx1ZXNbMl19YDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGAke3ZhbHVlc1swXX0gJHt2YWx1ZXNbMV19ICR7dmFsdWVzWzJdfSAke3ZhbHVlc1szXX1gO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHBhcnNlU2lkZXMoaW5wdXQ6IHN0cmluZyk6IEFYUFByb3BlcnR5U2lkZXMge1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuZXhwYW5kU2hvcnRoYW5kKGlucHV0Lm1hdGNoKC8oPzpyZ2JcXChbXildK1xcKXxbXiBdKykvZyk/Lm1hcCgodmFsdWUpID0+IHZhbHVlLnRyaW0oKSkgfHwgW10pO1xuICAgIHJldHVybiB7IHRvcDogdmFsdWVzWzBdLCByaWdodDogdmFsdWVzWzFdLCBib3R0b206IHZhbHVlc1syXSwgbGVmdDogdmFsdWVzWzNdIH07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBwYXJzZVNpZGVzV2l0aFVuaXRzKGlucHV0OiBzdHJpbmcpOiBBWFBQcm9wZXJ0eVNpZGVzPG51bWJlcj4ge1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuZXhwYW5kU2hvcnRoYW5kKGlucHV0Lm1hdGNoKC8oPzpyZ2JcXChbXildK1xcKXxbXiBdKykvZyk/Lm1hcCgodmFsdWUpID0+IHZhbHVlLnRyaW0oKSkgfHwgW10pO1xuICAgIHJldHVybiB7XG4gICAgICB0b3A6IEFYUFByb3BlcnR5RWRpdG9ySGVscGVyLmdldFZhbHVlV2l0aFVuaXQodmFsdWVzWzBdKS52YWx1ZSxcbiAgICAgIHJpZ2h0OiBBWFBQcm9wZXJ0eUVkaXRvckhlbHBlci5nZXRWYWx1ZVdpdGhVbml0KHZhbHVlc1sxXSkudmFsdWUsXG4gICAgICBib3R0b206IEFYUFByb3BlcnR5RWRpdG9ySGVscGVyLmdldFZhbHVlV2l0aFVuaXQodmFsdWVzWzJdKS52YWx1ZSxcbiAgICAgIGxlZnQ6IEFYUFByb3BlcnR5RWRpdG9ySGVscGVyLmdldFZhbHVlV2l0aFVuaXQodmFsdWVzWzNdKS52YWx1ZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcGFyc2VDb3JuZXJzKGlucHV0OiBzdHJpbmcpOiBBWFBQcm9wZXJ0eUNvcm5lcnM8bnVtYmVyPiB7XG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5leHBhbmRTaG9ydGhhbmQoaW5wdXQuc3BsaXQoJyAnKS5tYXAoKHZhbHVlKSA9PiB2YWx1ZS50cmltKCkpKTtcbiAgICByZXR1cm4ge1xuICAgICAgJ3RvcC1sZWZ0JzogQVhQUHJvcGVydHlFZGl0b3JIZWxwZXIuZ2V0VmFsdWVXaXRoVW5pdCh2YWx1ZXNbMF0pLnZhbHVlLFxuICAgICAgJ3RvcC1yaWdodCc6IEFYUFByb3BlcnR5RWRpdG9ySGVscGVyLmdldFZhbHVlV2l0aFVuaXQodmFsdWVzWzFdKS52YWx1ZSxcbiAgICAgICdib3R0b20tbGVmdCc6IEFYUFByb3BlcnR5RWRpdG9ySGVscGVyLmdldFZhbHVlV2l0aFVuaXQodmFsdWVzWzJdKS52YWx1ZSxcbiAgICAgICdib3R0b20tcmlnaHQnOiBBWFBQcm9wZXJ0eUVkaXRvckhlbHBlci5nZXRWYWx1ZVdpdGhVbml0KHZhbHVlc1szXSkudmFsdWUsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2VTcGFjaW5nQm94KGlucHV0OiBBWFBTcGFjaW5nQm94U3RyaW5nKTogQVhQU3BhY2luZ0JveDxudW1iZXI+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbWFyZ2luOiB0aGlzLnBhcnNlU2lkZXNXaXRoVW5pdHMoaW5wdXQubWFyZ2luKSxcbiAgICAgIHBhZGRpbmc6IHRoaXMucGFyc2VTaWRlc1dpdGhVbml0cyhpbnB1dC5wYWRkaW5nKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBwYXJzZUJvcmRlckJveChpbnB1dDogQVhQQm9yZGVyQm94U3RyaW5nKTogQVhQQm9yZGVyQm94PG51bWJlciB8IHN0cmluZz4ge1xuICAgIHJldHVybiB7XG4gICAgICB3aWR0aDogdGhpcy5wYXJzZVNpZGVzV2l0aFVuaXRzKGlucHV0LndpZHRoKSxcbiAgICAgIHJhZGl1czogdGhpcy5wYXJzZUNvcm5lcnMoaW5wdXQucmFkaXVzKSxcbiAgICAgIGNvbG9yOiB0aGlzLnBhcnNlU2lkZXMoaW5wdXQuY29sb3IpLFxuICAgICAgc3R5bGU6IHRoaXMucGFyc2VTaWRlcyhpbnB1dC5zdHlsZSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2VTcGFjaW5nQm94UmV2ZXJzZShcbiAgICBpbnB1dDogQVhQU3BhY2luZ0JveDxudW1iZXI+LFxuICAgIHVuaXRzOiBBWFBTcGFjaW5nQm94PHN0cmluZz4sXG4gICk6IEFYUFNwYWNpbmdCb3hTdHJpbmcge1xuICAgIGNvbnN0IGZvcm1hdCA9ICh2YWx1ZTogbnVtYmVyLCB1bml0OiBzdHJpbmcpID0+IGAke3ZhbHVlfSR7dW5pdH1gO1xuICAgIHJldHVybiB7XG4gICAgICBtYXJnaW46IEFYUFByb3BlcnR5RWRpdG9ySGVscGVyLmNvbmRlbnNlU2hvcnRoYW5kKFtcbiAgICAgICAgZm9ybWF0KGlucHV0Lm1hcmdpbi50b3AsIHVuaXRzLm1hcmdpbi50b3ApLFxuICAgICAgICBmb3JtYXQoaW5wdXQubWFyZ2luLnJpZ2h0LCB1bml0cy5tYXJnaW4ucmlnaHQpLFxuICAgICAgICBmb3JtYXQoaW5wdXQubWFyZ2luLmJvdHRvbSwgdW5pdHMubWFyZ2luLmJvdHRvbSksXG4gICAgICAgIGZvcm1hdChpbnB1dC5tYXJnaW4ubGVmdCwgdW5pdHMubWFyZ2luLmxlZnQpLFxuICAgICAgXSksXG4gICAgICBwYWRkaW5nOiBBWFBQcm9wZXJ0eUVkaXRvckhlbHBlci5jb25kZW5zZVNob3J0aGFuZChbXG4gICAgICAgIGZvcm1hdChpbnB1dC5wYWRkaW5nLnRvcCwgdW5pdHMucGFkZGluZy50b3ApLFxuICAgICAgICBmb3JtYXQoaW5wdXQucGFkZGluZy5yaWdodCwgdW5pdHMucGFkZGluZy5yaWdodCksXG4gICAgICAgIGZvcm1hdChpbnB1dC5wYWRkaW5nLmJvdHRvbSwgdW5pdHMucGFkZGluZy5ib3R0b20pLFxuICAgICAgICBmb3JtYXQoaW5wdXQucGFkZGluZy5sZWZ0LCB1bml0cy5wYWRkaW5nLmxlZnQpLFxuICAgICAgXSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2VCb3JkZXJCb3hSZXZlcnNlKFxuICAgIGlucHV0OiBBWFBCb3JkZXJCb3g8bnVtYmVyIHwgc3RyaW5nPixcbiAgICB1bml0czogQVhQQm9yZGVyQm94PHN0cmluZz4sXG4gICk6IEFYUEJvcmRlckJveFN0cmluZyB7XG4gICAgY29uc3QgZm9ybWF0ID0gKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIHVuaXQ6IHN0cmluZykgPT4gYCR7dmFsdWV9JHt1bml0fWA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgd2lkdGg6IEFYUFByb3BlcnR5RWRpdG9ySGVscGVyLmNvbmRlbnNlU2hvcnRoYW5kKFtcbiAgICAgICAgZm9ybWF0KGlucHV0LndpZHRoLnRvcCwgdW5pdHMud2lkdGgudG9wKSxcbiAgICAgICAgZm9ybWF0KGlucHV0LndpZHRoLnJpZ2h0LCB1bml0cy53aWR0aC5yaWdodCksXG4gICAgICAgIGZvcm1hdChpbnB1dC53aWR0aC5ib3R0b20sIHVuaXRzLndpZHRoLmJvdHRvbSksXG4gICAgICAgIGZvcm1hdChpbnB1dC53aWR0aC5sZWZ0LCB1bml0cy53aWR0aC5sZWZ0KSxcbiAgICAgIF0pLFxuICAgICAgcmFkaXVzOiBBWFBQcm9wZXJ0eUVkaXRvckhlbHBlci5jb25kZW5zZVNob3J0aGFuZChbXG4gICAgICAgIGZvcm1hdChpbnB1dC5yYWRpdXNbJ3RvcC1sZWZ0J10sIHVuaXRzLnJhZGl1c1sndG9wLWxlZnQnXSksXG4gICAgICAgIGZvcm1hdChpbnB1dC5yYWRpdXNbJ3RvcC1yaWdodCddLCB1bml0cy5yYWRpdXNbJ3RvcC1yaWdodCddKSxcbiAgICAgICAgZm9ybWF0KGlucHV0LnJhZGl1c1snYm90dG9tLXJpZ2h0J10sIHVuaXRzLnJhZGl1c1snYm90dG9tLXJpZ2h0J10pLFxuICAgICAgICBmb3JtYXQoaW5wdXQucmFkaXVzWydib3R0b20tbGVmdCddLCB1bml0cy5yYWRpdXNbJ2JvdHRvbS1sZWZ0J10pLFxuICAgICAgXSksXG4gICAgICBjb2xvcjogQVhQUHJvcGVydHlFZGl0b3JIZWxwZXIuY29uZGVuc2VTaG9ydGhhbmQoW1xuICAgICAgICBgJHtpbnB1dC5jb2xvci50b3B9JHt1bml0cy5jb2xvci50b3B9YCxcbiAgICAgICAgYCR7aW5wdXQuY29sb3IucmlnaHR9JHt1bml0cy5jb2xvci5yaWdodH1gLFxuICAgICAgICBgJHtpbnB1dC5jb2xvci5ib3R0b219JHt1bml0cy5jb2xvci5ib3R0b219YCxcbiAgICAgICAgYCR7aW5wdXQuY29sb3IubGVmdH0ke3VuaXRzLmNvbG9yLmxlZnR9YCxcbiAgICAgIF0pLFxuICAgICAgc3R5bGU6IEFYUFByb3BlcnR5RWRpdG9ySGVscGVyLmNvbmRlbnNlU2hvcnRoYW5kKFtcbiAgICAgICAgYCR7aW5wdXQuc3R5bGUudG9wfSR7dW5pdHMuc3R5bGUudG9wfWAsXG4gICAgICAgIGAke2lucHV0LnN0eWxlLnJpZ2h0fSR7dW5pdHMuc3R5bGUucmlnaHR9YCxcbiAgICAgICAgYCR7aW5wdXQuc3R5bGUuYm90dG9tfSR7dW5pdHMuc3R5bGUuYm90dG9tfWAsXG4gICAgICAgIGAke2lucHV0LnN0eWxlLmxlZnR9JHt1bml0cy5zdHlsZS5sZWZ0fWAsXG4gICAgICBdKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRWYWx1ZVdpdGhVbml0KGlucHV0OiBzdHJpbmcgfCBudW1iZXIpOiB7IHZhbHVlOiBudW1iZXI7IHVuaXQ6IHN0cmluZyB9IHtcbiAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnbnVtYmVyJykgcmV0dXJuIHsgdmFsdWU6IGlucHV0LCB1bml0OiAncHgnIH07XG4gICAgaWYgKGlucHV0ID09PSAnYXV0bycpIHJldHVybiB7IHZhbHVlOiAwLCB1bml0OiAncHgnIH07XG5cbiAgICBjb25zdCBtYXRjaCA9IGlucHV0Lm1hdGNoKC9eKFswLTkuXSspKFthLXolXSopJC9pKTtcbiAgICBpZiAoIW1hdGNoKSB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdW5pdCBmb3JtYXQ6ICR7aW5wdXR9YCk7XG5cbiAgICByZXR1cm4geyB2YWx1ZTogcGFyc2VGbG9hdChtYXRjaFsxXSksIHVuaXQ6IG1hdGNoWzJdIHx8ICcnIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldFZhbHVlRnJvbVVuaXQodmFsdWU6IG51bWJlciwgdW5pdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdW5pdCA/IGAke3ZhbHVlfSR7dW5pdH1gIDogYCR7dmFsdWV9YDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2VHYXAoZ2FwOiBzdHJpbmcpOiB7IHZhbHVlczogUmVjb3JkPCd4JyB8ICd5JywgbnVtYmVyPjsgdW5pdDogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHBhcnRzID0gZ2FwLnNwbGl0KC9cXHMrLyk7XG4gICAgY29uc3QgbWF0Y2ggPSBwYXJ0c1swXS5tYXRjaCgvXihcXGQrXFwuP1xcZCopKFthLXolXSspJC8pO1xuICAgIGlmICghbWF0Y2gpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBnYXAgZm9ybWF0Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgWywgeFZhbHVlLCB1bml0XSA9IG1hdGNoO1xuICAgIGxldCB5VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7XG4gICAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgY29uc3Qgc2Vjb25kTWF0Y2ggPSBwYXJ0c1sxXS5tYXRjaCgvXihcXGQrXFwuP1xcZCopW2EteiVdKyQvKTtcbiAgICAgIGlmICghc2Vjb25kTWF0Y2gpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGdhcCBmb3JtYXQnKTtcbiAgICAgIH1cbiAgICAgIHlWYWx1ZSA9IHBhcnNlRmxvYXQoc2Vjb25kTWF0Y2hbMV0pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB2YWx1ZXM6IHtcbiAgICAgICAgeDogcGFyc2VGbG9hdCh4VmFsdWUpLFxuICAgICAgICB5OiB5VmFsdWUsXG4gICAgICB9LFxuICAgICAgdW5pdCxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBwYXJzZUdyaWRUZW1wbGF0ZShncmlkVGVtcGxhdGU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgbWF0Y2ggPSBncmlkVGVtcGxhdGUubWF0Y2goL15yZXBlYXRcXCgoXFxkKyksXFxzKig/OjFmcnxhdXRvfG1pbm1heFxcKFteKV0qXFwpKVxcKSQvKTtcbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGdyaWQgdGVtcGxhdGUgZm9ybWF0LiBFeHBlY3RlZCAncmVwZWF0KE4sIDFmcnxhdXRvfG1pbm1heCguLi4pKScuXCIpO1xuICAgIH1cbiAgICByZXR1cm4gcGFyc2VJbnQobWF0Y2hbMV0sIDEwKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlR3JpZFRlbXBsYXRlKHJlcGV0aXRpb25Db3VudDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAocmVwZXRpdGlvbkNvdW50IDw9IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVwZXRpdGlvbiBjb3VudCBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlci4nKTtcbiAgICB9XG4gICAgcmV0dXJuIGByZXBlYXQoJHtyZXBldGl0aW9uQ291bnR9LCAxZnIpYDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZE5vbkVtcHR5QnJlYWtwb2ludHM8VD4odmFsdWVzOiBBWFBCcmVha3BvaW50VmFsdWVzPFQ+KTogQVhQQnJlYWtwb2ludHNbXSB7XG4gIGNvbnN0IGJyZWFrcG9pbnRzOiBBWFBCcmVha3BvaW50c1tdID0gWydkZWZhdWx0JywgJ3NtJywgJ21kJywgJ2xnJywgJ3hsJywgJzJ4bCcsICczeGwnXTtcbiAgY29uc3Qgbm9uRW1wdHlCcmVha3BvaW50czogQVhQQnJlYWtwb2ludHNbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgYnJlYWtwb2ludCBvZiBicmVha3BvaW50cykge1xuICAgIGlmICh2YWx1ZXNbYnJlYWtwb2ludF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgbm9uRW1wdHlCcmVha3BvaW50cy5wdXNoKGJyZWFrcG9pbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBub25FbXB0eUJyZWFrcG9pbnRzO1xufVxuIl19","export const AXP_WIDGETS_LAYOUT_CATEGORY = {\n name: 'layout',\n order: 1,\n title: 'Layout',\n};\nexport const AXP_WIDGETS_EDITOR_CATEGORY = {\n name: 'editor',\n order: 2,\n title: 'Editors',\n};\nexport const AXP_WIDGETS_ACTION_CATEGORY = {\n name: 'action',\n order: 3,\n title: 'Action',\n};\nexport const AXP_WIDGETS_ADVANCE_CATEGORY = {\n name: 'advance',\n order: 4,\n title: 'Advance',\n};\nexport const AXP_WIDGETS_CATEGORIES = [\n AXP_WIDGETS_LAYOUT_CATEGORY,\n AXP_WIDGETS_EDITOR_CATEGORY,\n AXP_WIDGETS_ACTION_CATEGORY,\n AXP_WIDGETS_ADVANCE_CATEGORY,\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNhdGVnb3JpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci93aWRnZXQtY2F0ZWdvcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBc0I7SUFDNUQsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsQ0FBQztJQUNSLEtBQUssRUFBRSxRQUFRO0NBQ2hCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBc0I7SUFDNUQsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsQ0FBQztJQUNSLEtBQUssRUFBRSxTQUFTO0NBQ2pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBc0I7SUFDNUQsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsQ0FBQztJQUNSLEtBQUssRUFBRSxRQUFRO0NBQ2hCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBc0I7SUFDN0QsSUFBSSxFQUFFLFNBQVM7SUFDZixLQUFLLEVBQUUsQ0FBQztJQUNSLEtBQUssRUFBRSxTQUFTO0NBQ2pCLENBQUM7QUFJRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBd0I7SUFDekQsMkJBQTJCO0lBQzNCLDJCQUEyQjtJQUMzQiwyQkFBMkI7SUFDM0IsNEJBQTRCO0NBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldENhdGVnb3J5IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBvcmRlcjogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgQVhQX1dJREdFVFNfTEFZT1VUX0NBVEVHT1JZOiBBWFBXaWRnZXRDYXRlZ29yeSA9IHtcbiAgbmFtZTogJ2xheW91dCcsXG4gIG9yZGVyOiAxLFxuICB0aXRsZTogJ0xheW91dCcsXG59O1xuXG5leHBvcnQgY29uc3QgQVhQX1dJREdFVFNfRURJVE9SX0NBVEVHT1JZOiBBWFBXaWRnZXRDYXRlZ29yeSA9IHtcbiAgbmFtZTogJ2VkaXRvcicsXG4gIG9yZGVyOiAyLFxuICB0aXRsZTogJ0VkaXRvcnMnLFxufTtcblxuZXhwb3J0IGNvbnN0IEFYUF9XSURHRVRTX0FDVElPTl9DQVRFR09SWTogQVhQV2lkZ2V0Q2F0ZWdvcnkgPSB7XG4gIG5hbWU6ICdhY3Rpb24nLFxuICBvcmRlcjogMyxcbiAgdGl0bGU6ICdBY3Rpb24nLFxufTtcblxuZXhwb3J0IGNvbnN0IEFYUF9XSURHRVRTX0FEVkFOQ0VfQ0FURUdPUlk6IEFYUFdpZGdldENhdGVnb3J5ID0ge1xuICBuYW1lOiAnYWR2YW5jZScsXG4gIG9yZGVyOiA0LFxuICB0aXRsZTogJ0FkdmFuY2UnLFxufTtcblxuXG5cbmV4cG9ydCBjb25zdCBBWFBfV0lER0VUU19DQVRFR09SSUVTOiBBWFBXaWRnZXRDYXRlZ29yeVtdID0gW1xuICBBWFBfV0lER0VUU19MQVlPVVRfQ0FURUdPUlksXG4gIEFYUF9XSURHRVRTX0VESVRPUl9DQVRFR09SWSxcbiAgQVhQX1dJREdFVFNfQUNUSU9OX0NBVEVHT1JZLFxuICBBWFBfV0lER0VUU19BRFZBTkNFX0NBVEVHT1JZLFxuXTtcbiJdfQ==","export var AXPWidgetGroupEnum;\n(function (AXPWidgetGroupEnum) {\n AXPWidgetGroupEnum[\"FormElement\"] = \"form-element\";\n AXPWidgetGroupEnum[\"DashboardWidget\"] = \"dashboard-widget\";\n AXPWidgetGroupEnum[\"FormTemplate\"] = \"form-template\";\n AXPWidgetGroupEnum[\"PropertyEditor\"] = \"property-editor\";\n AXPWidgetGroupEnum[\"MetaData\"] = \"meta-data\";\n AXPWidgetGroupEnum[\"SettingWidget\"] = \"setting-widget\";\n AXPWidgetGroupEnum[\"EntityWidget\"] = \"entity-widget\";\n})(AXPWidgetGroupEnum || (AXPWidgetGroupEnum = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWdyb3VwLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvd2lkZ2V0LWdyb3VwLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE1BQU0sQ0FBTixJQUFZLGtCQVFYO0FBUkQsV0FBWSxrQkFBa0I7SUFDNUIsa0RBQTRCLENBQUE7SUFDNUIsMERBQW9DLENBQUE7SUFDcEMsb0RBQThCLENBQUE7SUFDOUIsd0RBQWtDLENBQUE7SUFDbEMsNENBQXNCLENBQUE7SUFDdEIsc0RBQWdDLENBQUE7SUFDaEMsb0RBQThCLENBQUE7QUFDaEMsQ0FBQyxFQVJXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFRN0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBBWFBXaWRnZXRHcm91cCA9XG4gICdmb3JtLWVsZW1lbnQnIHxcbiAgJ2Rhc2hib2FyZC13aWRnZXQnIHxcbiAgJ2Zvcm0tdGVtcGxhdGUnIHxcbiAgJ3Byb3BlcnR5LWVkaXRvcicgfFxuICAnbWV0YS1kYXRhJyB8XG4gICdzZXR0aW5nLXdpZGdldCcgfFxuICAnZW50aXR5LXdpZGdldCc7XG5cblxuZXhwb3J0IGVudW0gQVhQV2lkZ2V0R3JvdXBFbnVtIHtcbiAgRm9ybUVsZW1lbnQgPSAnZm9ybS1lbGVtZW50JyxcbiAgRGFzaGJvYXJkV2lkZ2V0ID0gJ2Rhc2hib2FyZC13aWRnZXQnLFxuICBGb3JtVGVtcGxhdGUgPSAnZm9ybS10ZW1wbGF0ZScsXG4gIFByb3BlcnR5RWRpdG9yID0gJ3Byb3BlcnR5LWVkaXRvcicsXG4gIE1ldGFEYXRhID0gJ21ldGEtZGF0YScsXG4gIFNldHRpbmdXaWRnZXQgPSAnc2V0dGluZy13aWRnZXQnLFxuICBFbnRpdHlXaWRnZXQgPSAnZW50aXR5LXdpZGdldCcsXG59Il19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWxheW91dC1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvYWNvcmV4LXBsYXRmb3JtLWxheW91dC1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-layout-builder.mjs","sources":["../tmp-esm2022/layout/builder/lib/builder/widget-status.types.js","../tmp-esm2022/layout/builder/lib/builder/builder.service.js","../tmp-esm2022/layout/builder/lib/builder/context-store.service.js","../tmp-esm2022/layout/builder/lib/builder/widget-catalog.js","../tmp-esm2022/layout/builder/lib/builder/widget.types.js","../tmp-esm2022/layout/builder/lib/builder/widget-base.component.js","../tmp-esm2022/layout/builder/lib/builder/base-widget/box-model-widget.component.js","../tmp-esm2022/layout/builder/lib/builder/base-widget/block-base-widget.component.js","../tmp-esm2022/layout/builder/lib/builder/base-widget/flex-base-widget.component.js","../tmp-esm2022/layout/builder/lib/builder/base-widget/inline-base-widget.component.js","../tmp-esm2022/layout/builder/lib/builder/base-widget/flex-item-base-widget.component.js","../tmp-esm2022/layout/builder/lib/builder/base-widget/grid-base-widget.component.js","../tmp-esm2022/layout/builder/lib/builder/base-widget/grid-item-base-widget.component.js","../tmp-esm2022/layout/builder/lib/builder/base-widget/table-base-widget.component.js","../tmp-esm2022/layout/builder/lib/builder/base-widget/table-item-ops-base-widget.component.js","../tmp-esm2022/layout/builder/lib/builder/base-widget/table-item-base-widget.component.js","../tmp-esm2022/layout/builder/lib/builder/widget-registery.service.js","../tmp-esm2022/layout/builder/lib/builder/widget-column-renderer.js","../tmp-esm2022/layout/builder/lib/builder/widget-container.component.js","../tmp-esm2022/layout/builder/lib/builder/widget-placeholder.component.js","../tmp-esm2022/layout/builder/lib/builder/widget-renderer.directive.js","../tmp-esm2022/layout/builder/lib/builder/builder.module.js","../tmp-esm2022/layout/builder/lib/builder/helper/property-editor.helper.js","../tmp-esm2022/layout/builder/lib/builder/widget-categories.js","../tmp-esm2022/layout/builder/lib/builder/widget-group.types.js","../tmp-esm2022/layout/builder/acorex-platform-layout-builder.js"],"sourcesContent":["export var AXPPageStatus;\n(function (AXPPageStatus) {\n // Idle statuses\n AXPPageStatus[\"Idle\"] = \"idle\";\n // Rendering statuses\n AXPPageStatus[\"Rendering\"] = \"rendering\";\n AXPPageStatus[\"Rendered\"] = \"rendered\";\n // Processing statuses\n AXPPageStatus[\"Processing\"] = \"processing\";\n // Submission statuses\n AXPPageStatus[\"Submitting\"] = \"submitting\";\n AXPPageStatus[\"Submitted\"] = \"submitted\";\n // Validation statuses\n AXPPageStatus[\"Validating\"] = \"validating\";\n AXPPageStatus[\"Validated\"] = \"validated\";\n // Error handling\n AXPPageStatus[\"Error\"] = \"error\";\n})(AXPPageStatus || (AXPPageStatus = {}));\nexport var AXPWidgetStatus;\n(function (AXPWidgetStatus) {\n // Rendering statuses\n AXPWidgetStatus[\"Rendering\"] = \"rendering\";\n AXPWidgetStatus[\"Rendered\"] = \"rendered\";\n // Processing statuses\n AXPWidgetStatus[\"Processing\"] = \"processing\";\n // Error handling\n AXPWidgetStatus[\"Error\"] = \"error\";\n})(AXPWidgetStatus || (AXPWidgetStatus = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXN0YXR1cy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL3dpZGdldC1zdGF0dXMudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksYUFxQlg7QUFyQkQsV0FBWSxhQUFhO0lBQ3JCLGdCQUFnQjtJQUNoQiw4QkFBYSxDQUFBO0lBRWIscUJBQXFCO0lBQ3JCLHdDQUF1QixDQUFBO0lBQ3ZCLHNDQUFxQixDQUFBO0lBRXJCLHNCQUFzQjtJQUN0QiwwQ0FBeUIsQ0FBQTtJQUV6QixzQkFBc0I7SUFDdEIsMENBQXlCLENBQUE7SUFDekIsd0NBQXVCLENBQUE7SUFFdkIsc0JBQXNCO0lBQ3RCLDBDQUF5QixDQUFBO0lBQ3pCLHdDQUF1QixDQUFBO0lBRXZCLGlCQUFpQjtJQUNqQixnQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFyQlcsYUFBYSxLQUFiLGFBQWEsUUFxQnhCO0FBRUQsTUFBTSxDQUFOLElBQVksZUFVWDtBQVZELFdBQVksZUFBZTtJQUN2QixxQkFBcUI7SUFDckIsMENBQXVCLENBQUE7SUFDdkIsd0NBQXFCLENBQUE7SUFFckIsc0JBQXNCO0lBQ3RCLDRDQUF5QixDQUFBO0lBRXpCLGlCQUFpQjtJQUNqQixrQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFWVyxlQUFlLEtBQWYsZUFBZSxRQVUxQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEFYUFBhZ2VTdGF0dXMge1xuICAgIC8vIElkbGUgc3RhdHVzZXNcbiAgICBJZGxlID0gJ2lkbGUnLCAgICAgICAgICAgICAgICAgLy8gVGhlIHBhZ2UgaXMgaWRsZS5cblxuICAgIC8vIFJlbmRlcmluZyBzdGF0dXNlc1xuICAgIFJlbmRlcmluZyA9ICdyZW5kZXJpbmcnLCAgICAgICAvLyBUaGUgcGFnZSBpcyBiZWluZyByZW5kZXJlZC5cbiAgICBSZW5kZXJlZCA9ICdyZW5kZXJlZCcsICAgICAgICAgLy8gVGhlIHJlbmRlcmluZyBwcm9jZXNzIGlzIGNvbXBsZXRlLiBzaG91bGQgYmUgcmVuYW1lZCB0byBpZGxlXG5cbiAgICAvLyBQcm9jZXNzaW5nIHN0YXR1c2VzXG4gICAgUHJvY2Vzc2luZyA9ICdwcm9jZXNzaW5nJywgICAgIC8vIFRoZSBwYWdlIGlzIHBlcmZvcm1pbmcgYSB0YXNrIG9yIGludGVyYWN0aW9uLlxuXG4gICAgLy8gU3VibWlzc2lvbiBzdGF0dXNlc1xuICAgIFN1Ym1pdHRpbmcgPSAnc3VibWl0dGluZycsICAgLy8gVGhlIGZvcm0gaXMgYmVpbmcgc3VibWl0dGVkLlxuICAgIFN1Ym1pdHRlZCA9ICdzdWJtaXR0ZWQnLCAgICAgLy8gU3VibWlzc2lvbiBpcyBjb21wbGV0ZWQuXG5cbiAgICAvLyBWYWxpZGF0aW9uIHN0YXR1c2VzXG4gICAgVmFsaWRhdGluZyA9ICd2YWxpZGF0aW5nJywgICAgIC8vIFRoZSBmb3JtIGlzIGJlaW5nIHZhbGlkYXRlZC5cbiAgICBWYWxpZGF0ZWQgPSAndmFsaWRhdGVkJywgICAgICAgLy8gVmFsaWRhdGlvbiBpcyBjb21wbGV0ZWQuICBcblxuICAgIC8vIEVycm9yIGhhbmRsaW5nXG4gICAgRXJyb3IgPSAnZXJyb3InLFxufVxuXG5leHBvcnQgZW51bSBBWFBXaWRnZXRTdGF0dXMge1xuICAgIC8vIFJlbmRlcmluZyBzdGF0dXNlc1xuICAgIFJlbmRlcmluZyA9ICdyZW5kZXJpbmcnLCAgICAgICAvLyBUaGUgd2lkZ2V0IGlzIGJlaW5nIHJlbmRlcmVkLlxuICAgIFJlbmRlcmVkID0gJ3JlbmRlcmVkJywgICAgICAgICAvLyBUaGUgcmVuZGVyaW5nIHByb2Nlc3MgaXMgY29tcGxldGUuXG5cbiAgICAvLyBQcm9jZXNzaW5nIHN0YXR1c2VzXG4gICAgUHJvY2Vzc2luZyA9ICdwcm9jZXNzaW5nJywgICAgIC8vIFRoZSB3aWRnZXQgaXMgcGVyZm9ybWluZyBhIHRhc2sgb3IgaW50ZXJhY3Rpb24uXG5cbiAgICAvLyBFcnJvciBoYW5kbGluZ1xuICAgIEVycm9yID0gJ2Vycm9yJywgICAgICAgICAgICAgICAvLyBBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgYW55IHBoYXNlLlxufVxuIl19","import { computed, Injectable, signal } from '@angular/core';\nimport { set } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXPPageStatus, AXPWidgetStatus } from './widget-status.types';\nimport * as i0 from \"@angular/core\";\nexport class AXPLayoutElement {\n api() {\n return {};\n }\n}\nexport class AXPLayoutBuilderService {\n constructor() {\n this.variables$ = signal({}, ...(ngDevMode ? [{ debugName: \"variables$\" }] : []));\n this.functions$ = signal({}, ...(ngDevMode ? [{ debugName: \"functions$\" }] : []));\n this.onRefresh = new Subject();\n this.widgets = new Map();\n this.onWidgetRegistered = new Subject();\n this.status$ = signal(AXPPageStatus.Rendering, ...(ngDevMode ? [{ debugName: \"status$\" }] : []));\n this.status = this.status$.asReadonly();\n this.isBusy = computed(() => {\n return [AXPPageStatus.Processing, AXPPageStatus.Submitting, AXPPageStatus.Rendering].includes(this.status());\n }, ...(ngDevMode ? [{ debugName: \"isBusy\" }] : []));\n }\n get variables() {\n return this.variables$();\n }\n get functions() {\n return this.functions$();\n }\n updateStatus() {\n this.status$.update(() => this.detectStatus());\n }\n detectStatus() {\n const statuses = Array.from(this.widgets.values()).map((c) => c.status());\n // Rendering statuses\n if (statuses.some((status) => status === AXPWidgetStatus.Rendering)) {\n return AXPPageStatus.Rendering;\n }\n if (statuses.every((status) => status === AXPWidgetStatus.Rendered)) {\n return AXPPageStatus.Rendered;\n }\n // Processing statuses\n if (statuses.some((status) => status === AXPWidgetStatus.Processing)) {\n return AXPPageStatus.Processing;\n }\n // Error handling\n if (statuses.some((status) => status === AXPWidgetStatus.Error)) {\n return AXPPageStatus.Error;\n }\n return AXPPageStatus.Rendered; // Default to Loaded when all widgets are in a completed state\n }\n refresh() {\n setTimeout(() => {\n this.onRefresh.next();\n }, 0);\n }\n setStatus(status) {\n this.status$.set(status);\n }\n setVariables(...args) {\n if (args.length == 0)\n return;\n else if (args.length == 1)\n this.variables$.set(args[0]);\n else if (args.length == 2) {\n this.variables$.update((v) => set(v, args[0], args[1]));\n }\n }\n setFunctions(...args) {\n if (args.length == 0)\n return;\n else if (args.length == 1)\n this.functions$.set(args[0]);\n else if (args.length == 2) {\n this.functions$.update((v) => set(v, args[0], args[1]));\n }\n }\n registerWidget(id, widget) {\n this.widgets.set(id, widget);\n this.onWidgetRegistered.next({ id, widget });\n }\n getWidget(id) {\n return this.widgets.get(id);\n }\n /**\n * Waits until a widget with the given id is registered, then resolves with it.\n * If the widget is already registered, resolves immediately.\n * Optionally accepts a timeout (in ms) after which it resolves with undefined.\n */\n async waitForWidget(id, timeoutMs) {\n const existing = this.widgets.get(id);\n if (existing) {\n return existing;\n }\n return new Promise((resolve) => {\n let resolved = false;\n let timer = null;\n const sub = this.onWidgetRegistered.subscribe(({ id: registeredId, widget }) => {\n if (registeredId === id && !resolved) {\n resolved = true;\n sub.unsubscribe();\n if (timer) {\n clearTimeout(timer);\n }\n resolve(widget);\n }\n });\n if (timeoutMs != null && timeoutMs > 0) {\n timer = setTimeout(() => {\n if (!resolved) {\n resolved = true;\n sub.unsubscribe();\n resolve(undefined);\n }\n }, timeoutMs);\n }\n });\n }\n ngOnDestroy() { }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBuilderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBuilderService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBuilderService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvYnVpbGRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFJdkUsTUFBTSxPQUFnQixnQkFBZ0I7SUFJcEMsR0FBRztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztDQUNGO0FBR0QsTUFBTSxPQUFPLHVCQUF1QjtJQURwQztRQUVtQixlQUFVLEdBQUcsTUFBTSxDQUFNLEVBQUUsc0RBQUMsQ0FBQztRQUM3QixlQUFVLEdBQUcsTUFBTSxDQUE4QixFQUFFLHNEQUFDLENBQUM7UUFFdEQsY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRXZELFlBQU8sR0FBRyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztRQUNyQyx1QkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBNEMsQ0FBQztRQUU3RSxZQUFPLEdBQUcsTUFBTSxDQUFnQixhQUFhLENBQUMsU0FBUyxtREFBQyxDQUFDO1FBQzFELFdBQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRW5DLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3JDLE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEs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RSxJQUFJLFlBQVksS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDckMsUUFBUSxHQUFHLElBQUksQ0FBQztvQkFDaEIsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUNsQixJQUFJLEtBQUssRUFBRSxDQUFDO3dCQUNWLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDdEIsQ0FBQztvQkFDRCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2xCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksU0FBUyxJQUFJLElBQUksSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLEtBQUssR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUN0QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQ2QsUUFBUSxHQUFHLElBQUksQ0FBQzt3QkFDaEIsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO3dCQUNsQixPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ3JCLENBQUM7Z0JBQ0gsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2hCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLEtBQVUsQ0FBQzs4R0EvSFgsdUJBQXVCO2tIQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgSW5qZWN0YWJsZSwgU2lnbmFsLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBQYWdlU3RhdHVzLCBBWFBXaWRnZXRTdGF0dXMgfSBmcm9tICcuL3dpZGdldC1zdGF0dXMudHlwZXMnO1xuXG5leHBvcnQgdHlwZSBBWFBMYXlvdXRFbGVtZW50QVBJID0geyBbbmFtZTogc3RyaW5nXTogU3ViamVjdDxhbnk+IHwgRnVuY3Rpb24gfTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUExheW91dEVsZW1lbnQge1xuICBhYnN0cmFjdCBnZXQgaWQoKTogc3RyaW5nIHwgbnVsbDtcbiAgYWJzdHJhY3QgZ2V0IHN0YXR1cygpOiBTaWduYWw8QVhQV2lkZ2V0U3RhdHVzPjtcblxuICBhcGkoKTogQVhQTGF5b3V0RWxlbWVudEFQSSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFBMYXlvdXRCdWlsZGVyU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmFyaWFibGVzJCA9IHNpZ25hbDxhbnk+KHt9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBmdW5jdGlvbnMkID0gc2lnbmFsPHsgW2tleTogc3RyaW5nXTogRnVuY3Rpb24gfT4oe30pO1xuXG4gIHB1YmxpYyByZWFkb25seSBvblJlZnJlc2g6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgd2lkZ2V0cyA9IG5ldyBNYXA8c3RyaW5nLCBBWFBMYXlvdXRFbGVtZW50PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IG9uV2lkZ2V0UmVnaXN0ZXJlZCA9IG5ldyBTdWJqZWN0PHsgaWQ6IHN0cmluZzsgd2lkZ2V0OiBBWFBMYXlvdXRFbGVtZW50IH0+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0dXMkID0gc2lnbmFsPEFYUFBhZ2VTdGF0dXM+KEFYUFBhZ2VTdGF0dXMuUmVuZGVyaW5nKTtcbiAgcHVibGljIHJlYWRvbmx5IHN0YXR1cyA9IHRoaXMuc3RhdHVzJC5hc1JlYWRvbmx5KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlzQnVzeSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gW0FYUFBhZ2VTdGF0dXMuUHJvY2Vzc2luZywgQVhQUGFnZVN0YXR1cy5TdWJtaXR0aW5nLCBBWFBQYWdlU3RhdHVzLlJlbmRlcmluZ10uaW5jbHVkZXModGhpcy5zdGF0dXMoKSk7XG4gIH0pO1xuXG4gIGdldCB2YXJpYWJsZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGVzJCgpO1xuICB9XG5cbiAgZ2V0IGZ1bmN0aW9ucygpOiB7IFtrZXk6IHN0cmluZ106IEZ1bmN0aW9uIH0ge1xuICAgIHJldHVybiB0aGlzLmZ1bmN0aW9ucyQoKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVTdGF0dXMoKSB7XG4gICAgdGhpcy5zdGF0dXMkLnVwZGF0ZSgoKSA9PiB0aGlzLmRldGVjdFN0YXR1cygpKTtcbiAgfVxuXG4gIHByaXZhdGUgZGV0ZWN0U3RhdHVzKCk6IEFYUFBhZ2VTdGF0dXMge1xuICAgIGNvbnN0IHN0YXR1c2VzID0gQXJyYXkuZnJvbSh0aGlzLndpZGdldHMudmFsdWVzKCkpLm1hcCgoYykgPT4gYy5zdGF0dXMoKSk7XG4gICAgLy8gUmVuZGVyaW5nIHN0YXR1c2VzXG4gICAgaWYgKHN0YXR1c2VzLnNvbWUoKHN0YXR1cykgPT4gc3RhdHVzID09PSBBWFBXaWRnZXRTdGF0dXMuUmVuZGVyaW5nKSkge1xuICAgICAgcmV0dXJuIEFYUFBhZ2VTdGF0dXMuUmVuZGVyaW5nO1xuICAgIH1cbiAgICBpZiAoc3RhdHVzZXMuZXZlcnkoKHN0YXR1cykgPT4gc3RhdHVzID09PSBBWFBXaWRnZXRTdGF0dXMuUmVuZGVyZWQpKSB7XG4gICAgICByZXR1cm4gQVhQUGFnZVN0YXR1cy5SZW5kZXJlZDtcbiAgICB9XG5cbiAgICAvLyBQcm9jZXNzaW5nIHN0YXR1c2VzXG4gICAgaWYgKHN0YXR1c2VzLnNvbWUoKHN0YXR1cykgPT4gc3RhdHVzID09PSBBWFBXaWRnZXRTdGF0dXMuUHJvY2Vzc2luZykpIHtcbiAgICAgIHJldHVybiBBWFBQYWdlU3RhdHVzLlByb2Nlc3Npbmc7XG4gICAgfVxuXG4gICAgLy8gRXJyb3IgaGFuZGxpbmdcbiAgICBpZiAoc3RhdHVzZXMuc29tZSgoc3RhdHVzKSA9PiBzdGF0dXMgPT09IEFYUFdpZGdldFN0YXR1cy5FcnJvcikpIHtcbiAgICAgIHJldHVybiBBWFBQYWdlU3RhdHVzLkVycm9yO1xuICAgIH1cblxuICAgIHJldHVybiBBWFBQYWdlU3RhdHVzLlJlbmRlcmVkOyAvLyBEZWZhdWx0IHRvIExvYWRlZCB3aGVuIGFsbCB3aWRnZXRzIGFyZSBpbiBhIGNvbXBsZXRlZCBzdGF0ZVxuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMub25SZWZyZXNoLm5leHQoKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIHNldFN0YXR1cyhzdGF0dXM6IEFYUFBhZ2VTdGF0dXMpIHtcbiAgICB0aGlzLnN0YXR1cyQuc2V0KHN0YXR1cyk7XG4gIH1cblxuICBzZXRWYXJpYWJsZXMoa2V5c1ZhbHVlczogYW55KTogdm9pZDtcbiAgc2V0VmFyaWFibGVzKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZDtcbiAgc2V0VmFyaWFibGVzKC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID09IDApIHJldHVybjtcbiAgICBlbHNlIGlmIChhcmdzLmxlbmd0aCA9PSAxKSB0aGlzLnZhcmlhYmxlcyQuc2V0KGFyZ3NbMF0pO1xuICAgIGVsc2UgaWYgKGFyZ3MubGVuZ3RoID09IDIpIHtcbiAgICAgIHRoaXMudmFyaWFibGVzJC51cGRhdGUoKHYpID0+IHNldCh2LCBhcmdzWzBdLCBhcmdzWzFdKSk7XG4gICAgfVxuICB9XG5cbiAgc2V0RnVuY3Rpb25zKGtleXNWYWx1ZXM6IGFueSk6IHZvaWQ7XG4gIHNldEZ1bmN0aW9ucyhrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQ7XG4gIHNldEZ1bmN0aW9ucyguLi5hcmdzOiBhbnlbXSk6IHZvaWQge1xuICAgIGlmIChhcmdzLmxlbmd0aCA9PSAwKSByZXR1cm47XG4gICAgZWxzZSBpZiAoYXJncy5sZW5ndGggPT0gMSkgdGhpcy5mdW5jdGlvbnMkLnNldChhcmdzWzBdKTtcbiAgICBlbHNlIGlmIChhcmdzLmxlbmd0aCA9PSAyKSB7XG4gICAgICB0aGlzLmZ1bmN0aW9ucyQudXBkYXRlKCh2KSA9PiBzZXQodiwgYXJnc1swXSwgYXJnc1sxXSkpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyV2lkZ2V0KGlkOiBzdHJpbmcsIHdpZGdldDogQVhQTGF5b3V0RWxlbWVudCkge1xuICAgIHRoaXMud2lkZ2V0cy5zZXQoaWQsIHdpZGdldCk7XG4gICAgdGhpcy5vbldpZGdldFJlZ2lzdGVyZWQubmV4dCh7IGlkLCB3aWRnZXQgfSk7XG4gIH1cblxuICBnZXRXaWRnZXQoaWQ6IHN0cmluZyk6IEFYUExheW91dEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLndpZGdldHMuZ2V0KGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXYWl0cyB1bnRpbCBhIHdpZGdldCB3aXRoIHRoZSBnaXZlbiBpZCBpcyByZWdpc3RlcmVkLCB0aGVuIHJlc29sdmVzIHdpdGggaXQuXG4gICAqIElmIHRoZSB3aWRnZXQgaXMgYWxyZWFkeSByZWdpc3RlcmVkLCByZXNvbHZlcyBpbW1lZGlhdGVseS5cbiAgICogT3B0aW9uYWxseSBhY2NlcHRzIGEgdGltZW91dCAoaW4gbXMpIGFmdGVyIHdoaWNoIGl0IHJlc29sdmVzIHdpdGggdW5kZWZpbmVkLlxuICAgKi9cbiAgYXN5bmMgd2FpdEZvcldpZGdldChpZDogc3RyaW5nLCB0aW1lb3V0TXM/OiBudW1iZXIpOiBQcm9taXNlPEFYUExheW91dEVsZW1lbnQgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBleGlzdGluZyA9IHRoaXMud2lkZ2V0cy5nZXQoaWQpO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxBWFBMYXlvdXRFbGVtZW50IHwgdW5kZWZpbmVkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgbGV0IHJlc29sdmVkID0gZmFsc2U7XG4gICAgICBsZXQgdGltZXI6IGFueSA9IG51bGw7XG4gICAgICBjb25zdCBzdWIgPSB0aGlzLm9uV2lkZ2V0UmVnaXN0ZXJlZC5zdWJzY3JpYmUoKHsgaWQ6IHJlZ2lzdGVyZWRJZCwgd2lkZ2V0IH0pID0+IHtcbiAgICAgICAgaWYgKHJlZ2lzdGVyZWRJZCA9PT0gaWQgJiYgIXJlc29sdmVkKSB7XG4gICAgICAgICAgcmVzb2x2ZWQgPSB0cnVlO1xuICAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIGlmICh0aW1lcikge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzb2x2ZSh3aWRnZXQpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKHRpbWVvdXRNcyAhPSBudWxsICYmIHRpbWVvdXRNcyA+IDApIHtcbiAgICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIXJlc29sdmVkKSB7XG4gICAgICAgICAgICByZXNvbHZlZCA9IHRydWU7XG4gICAgICAgICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHJlc29sdmUodW5kZWZpbmVkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHRpbWVvdXRNcyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHt9XG59XG4iXX0=","import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';\nimport { cloneDeep, get, isEqual } from 'lodash-es';\nimport { computed } from '@angular/core';\nimport { setSmart } from '@acorex/platform/core';\nexport class AXPLayoutContextChangeEvent {\n}\nexport const AXPLayoutBuilderContextStore = signalStore(\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 = get(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 get(store.data(), path);\n },\n})));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1zdG9yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvY29udGV4dC1zdG9yZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFPLE9BQU8sRUFBUyxNQUFNLFdBQVcsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUlqRCxNQUFNLE9BQU8sMkJBQTJCO0NBTXZDO0FBRUQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsV0FBVztBQUNuRCxnQkFBZ0I7QUFDaEIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDYixJQUFJLEVBQUUsRUFBRSxFQUFFLHNCQUFzQjtJQUNoQyxLQUFLLEVBQUUsV0FBb0MsRUFBRSxnQkFBZ0I7SUFDN0QsZUFBZSxFQUFFLEVBQUUsRUFBRSwwQ0FBMEM7SUFDL0QsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLGlDQUFpQztJQUN2RCxVQUFVLEVBQUU7UUFDUixLQUFLLEVBQUUsV0FBVztLQUNVLEVBQUUsb0JBQW9CO0NBQ3pELENBQUMsQ0FBQztBQUVILG1CQUFtQjtBQUNuQixZQUFZLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLFNBQVMsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssU0FBUyxDQUFDO0lBQ2hELE9BQU8sRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssVUFBVSxDQUFDO0lBQy9DLFdBQVcsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssV0FBVyxDQUFDO0lBQ3BELE9BQU8sRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDekQsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDN0QsUUFBUSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLHdCQUF3QjtJQUNyRSxPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLEVBQUUsbUJBQW1CO0lBQzFFLFFBQVEsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxFQUFFLG9CQUFvQjtJQUM3RSxXQUFXLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsNkJBQTZCO0NBQzNFLENBQUMsQ0FBQztBQUVILCtCQUErQjtBQUMvQixXQUFXLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEIsMEJBQTBCO0lBQzFCLE1BQU0sQ0FBQyxJQUFZLEVBQUUsS0FBVTtRQUMzQixNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV4QyxtQ0FBbUM7UUFDbkMsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTztRQUNYLENBQUM7UUFFRCxnREFBZ0Q7UUFDaEQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkQsTUFBTSxXQUFXLEdBQWdDO1lBQzdDLFFBQVE7WUFDUixRQUFRLEVBQUUsS0FBSztZQUNmLElBQUk7WUFDSixLQUFLLEVBQUUsU0FBUztZQUNoQixJQUFJLEVBQUUsV0FBVztTQUNwQixDQUFDO1FBRUYsa0JBQWtCO1FBQ2xCLFVBQVUsQ0FBQyxLQUFLLEVBQUU7WUFDZCxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsMEJBQTBCO1lBQzlELElBQUksRUFBRSxXQUFXO1lBQ2pCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFVBQVUsRUFBRSxXQUFXO1NBQzFCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBVztRQUNiLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QyxnREFBZ0Q7UUFDaEQsTUFBTSxXQUFXLEdBQUcsRUFBRSxHQUFHLFdBQVcsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ25ELE1BQU0sV0FBVyxHQUFnQztZQUM3QyxLQUFLLEVBQUUsT0FBTztZQUNkLElBQUksRUFBRSxXQUFXO1NBQ3BCLENBQUM7UUFFRixrQkFBa0I7UUFDbEIsVUFBVSxDQUFDLEtBQUssRUFBRTtZQUNkLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSwwQkFBMEI7WUFDOUQsSUFBSSxFQUFFLFdBQVc7WUFDakIsS0FBSyxFQUFFLFNBQVM7WUFDaEIsVUFBVSxFQUFFLFdBQVc7U0FDMUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELDZCQUE2QjtJQUM3QixLQUFLO1FBQ0QsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BDLE1BQU0sV0FBVyxHQUFnQztZQUM3QyxRQUFRLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLGlDQUFpQztZQUNwRSxRQUFRLEVBQUUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLDZCQUE2QjtZQUMvRCxJQUFJLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRSxVQUFVO1lBQ2pCLElBQUksRUFBRSxXQUFXO1NBQ3BCLENBQUM7UUFFRixVQUFVLENBQUMsS0FBSyxFQUFFO1lBQ2QsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLDBCQUEwQjtZQUM5RCxJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsVUFBVTtZQUNqQixVQUFVLEVBQUUsV0FBVztTQUMxQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsdUJBQXVCO0lBQ3ZCLEdBQUcsQ0FBQyxXQUFnQjtRQUNoQixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakMsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDcEMsT0FBTyxDQUFDLHNEQUFzRDtRQUNsRSxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQWdDO1lBQzdDLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUM7WUFDaEMsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFLLEVBQUUsV0FBVztZQUNsQixJQUFJLEVBQUUsV0FBVztTQUNwQixDQUFDO1FBRUYsVUFBVSxDQUFDLEtBQUssRUFBRTtZQUNkLGVBQWUsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUseUJBQXlCO1lBQ2xFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSx5Q0FBeUM7WUFDN0UsSUFBSSxFQUFFLFdBQVc7WUFDakIsS0FBSyxFQUFFLFdBQVc7WUFDbEIsVUFBVSxFQUFFLFdBQVc7U0FDMUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELHVCQUF1QjtJQUN2QixRQUFRLENBQUMsSUFBWTtRQUNqQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNKLENBQUMsQ0FBQyxDQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaWduYWxTdG9yZSwgd2l0aFN0YXRlLCB3aXRoQ29tcHV0ZWQsIHdpdGhNZXRob2RzLCBwYXRjaFN0YXRlIH0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGdldCwgc2V0LCBpc0VxdWFsLCBtZXJnZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2V0U21hcnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBBWFBMYXlvdXRDb250ZXh0U3RhdGUgPSAnaW5pdGlhdGVkJyB8ICdyZXN0b3JlZCcgfCAnY2hhbmdlZCcgfCAncGF0Y2gnO1xuXG5leHBvcnQgY2xhc3MgQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50IHtcbiAgICBvbGRWYWx1ZT86IGFueTtcbiAgICBuZXdWYWx1ZT86IGFueTtcbiAgICBwYXRoPzogc3RyaW5nO1xuICAgIHN0YXRlOiBBWFBMYXlvdXRDb250ZXh0U3RhdGU7XG4gICAgZGF0YTogYW55O1xufVxuXG5leHBvcnQgY29uc3QgQVhQTGF5b3V0QnVpbGRlckNvbnRleHRTdG9yZSA9IHNpZ25hbFN0b3JlKFxuICAgIC8vIEluaXRpYWwgU3RhdGVcbiAgICB3aXRoU3RhdGUoKCkgPT4gKHtcbiAgICAgICAgZGF0YToge30sIC8vIFNoYXJlZCBjb250ZXh0IGRhdGFcbiAgICAgICAgc3RhdGU6ICdpbml0aWF0ZWQnIGFzIEFYUExheW91dENvbnRleHRTdGF0ZSwgLy8gQ3VycmVudCBzdGF0ZVxuICAgICAgICBpbml0aWFsU25hcHNob3Q6IHt9LCAvLyBTbmFwc2hvdCBvZiB0aGUgZmlyc3QgaW5pdGlhbGl6ZWQgc3RhdGVcbiAgICAgICAgcHJldmlvdXNTbmFwc2hvdDoge30sIC8vIFNuYXBzaG90IG9mIHRoZSBwcmV2aW91cyBzdGF0ZVxuICAgICAgICBsYXN0Q2hhbmdlOiB7XG4gICAgICAgICAgICBzdGF0ZTogJ2luaXRpYXRlZCcsXG4gICAgICAgIH0gYXMgQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50LCAvLyBMYXN0IGNoYW5nZSBldmVudFxuICAgIH0pKSxcblxuICAgIC8vIENvbXB1dGVkIFNpZ25hbHNcbiAgICB3aXRoQ29tcHV0ZWQoKHsgZGF0YSwgc3RhdGUsIGxhc3RDaGFuZ2UsIGluaXRpYWxTbmFwc2hvdCwgcHJldmlvdXNTbmFwc2hvdCB9KSA9PiAoe1xuICAgICAgICBpc0NoYW5nZWQ6IGNvbXB1dGVkKCgpID0+IHN0YXRlKCkgPT09ICdjaGFuZ2VkJyksXG4gICAgICAgIGlzUmVzZXQ6IGNvbXB1dGVkKCgpID0+IHN0YXRlKCkgPT09ICdyZXN0b3JlZCcpLFxuICAgICAgICBpc0luaXRpYXRlZDogY29tcHV0ZWQoKCkgPT4gc3RhdGUoKSA9PT0gJ2luaXRpYXRlZCcpLFxuICAgICAgICBpc0VtcHR5OiBjb21wdXRlZCgoKSA9PiBPYmplY3Qua2V5cyhkYXRhKCkpLmxlbmd0aCA9PT0gMCksXG4gICAgICAgIGlzRGlydHk6IGNvbXB1dGVkKCgpID0+ICFpc0VxdWFsKGRhdGEoKSwgcHJldmlvdXNTbmFwc2hvdCgpKSksIFxuICAgICAgICBzbmFwc2hvdDogY29tcHV0ZWQoKCkgPT4gY2xvbmVEZWVwKGRhdGEoKSkpLCAvLyBDdXJyZW50IGRhdGEgc25hcHNob3RcbiAgICAgICAgaW5pdGlhbDogY29tcHV0ZWQoKCkgPT4gY2xvbmVEZWVwKGluaXRpYWxTbmFwc2hvdCgpKSksIC8vIEluaXRpYWwgc25hcHNob3RcbiAgICAgICAgcHJldmlvdXM6IGNvbXB1dGVkKCgpID0+IGNsb25lRGVlcChwcmV2aW91c1NuYXBzaG90KCkpKSwgLy8gUHJldmlvdXMgc25hcHNob3RcbiAgICAgICAgY2hhbmdlRXZlbnQ6IGNvbXB1dGVkKCgpID0+IGxhc3RDaGFuZ2UoKSksIC8vIFJlYWN0aXZlIGxhc3QgY2hhbmdlIGV2ZW50XG4gICAgfSkpLFxuXG4gICAgLy8gTWV0aG9kcyBmb3IgU3RhdGUgTWFuYWdlbWVudFxuICAgIHdpdGhNZXRob2RzKChzdG9yZSkgPT4gKHtcbiAgICAgICAgLy8gVXBkYXRlIGEgc3BlY2lmaWMgdmFsdWVcbiAgICAgICAgdXBkYXRlKHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudERhdGEgPSBjbG9uZURlZXAoc3RvcmUuZGF0YSgpKTtcbiAgICAgICAgICAgIGNvbnN0IG9sZFZhbHVlID0gZ2V0KGN1cnJlbnREYXRhLCBwYXRoKTtcblxuICAgICAgICAgICAgLy8gU2tpcCBpZiB0aGUgdmFsdWUgaGFzbid0IGNoYW5nZWRcbiAgICAgICAgICAgIGlmIChpc0VxdWFsKG9sZFZhbHVlLCB2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgdmFsdWUgYW5kIHByZXBhcmUgdGhlIGNoYW5nZSBldmVudFxuICAgICAgICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBzZXRTbWFydChjdXJyZW50RGF0YSwgcGF0aCwgdmFsdWUpO1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlRXZlbnQ6IEFYUExheW91dENvbnRleHRDaGFuZ2VFdmVudCA9IHtcbiAgICAgICAgICAgICAgICBvbGRWYWx1ZSxcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZTogdmFsdWUsXG4gICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ2NoYW5nZWQnLFxuICAgICAgICAgICAgICAgIGRhdGE6IHVwZGF0ZWREYXRhLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgLy8gUGF0Y2ggdGhlIHN0YXRlXG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgcHJldmlvdXNTbmFwc2hvdDogc3RvcmUuc25hcHNob3QoKSwgLy8gU2F2ZSB0aGUgcHJldmlvdXMgc3RhdGVcbiAgICAgICAgICAgICAgICBkYXRhOiB1cGRhdGVkRGF0YSxcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ2NoYW5nZWQnLFxuICAgICAgICAgICAgICAgIGxhc3RDaGFuZ2U6IGNoYW5nZUV2ZW50LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgcGF0Y2goY29udGV4dDoge30pIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnREYXRhID0gY2xvbmVEZWVwKHN0b3JlLmRhdGEoKSk7XG4gICAgICAgICAgICAvLyBVcGRhdGUgdGhlIHZhbHVlIGFuZCBwcmVwYXJlIHRoZSBjaGFuZ2UgZXZlbnRcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0geyAuLi5jdXJyZW50RGF0YSwgLi4uY29udGV4dCB9O1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlRXZlbnQ6IEFYUExheW91dENvbnRleHRDaGFuZ2VFdmVudCA9IHtcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ3BhdGNoJyxcbiAgICAgICAgICAgICAgICBkYXRhOiB1cGRhdGVkRGF0YSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8vIFBhdGNoIHRoZSBzdGF0ZVxuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgIHByZXZpb3VzU25hcHNob3Q6IHN0b3JlLnNuYXBzaG90KCksIC8vIFNhdmUgdGhlIHByZXZpb3VzIHN0YXRlXG4gICAgICAgICAgICAgICAgZGF0YTogdXBkYXRlZERhdGEsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdjaGFuZ2VkJyxcbiAgICAgICAgICAgICAgICBsYXN0Q2hhbmdlOiBjaGFuZ2VFdmVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8vIFJlc2V0IHRvIHRoZSBpbml0aWFsIHN0YXRlXG4gICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgY29uc3QgaW5pdGlhbERhdGEgPSBzdG9yZS5pbml0aWFsKCk7XG4gICAgICAgICAgICBjb25zdCBjaGFuZ2VFdmVudDogQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50ID0ge1xuICAgICAgICAgICAgICAgIG9sZFZhbHVlOiBjbG9uZURlZXAoc3RvcmUuZGF0YSgpKSwgLy8gQ3VycmVudCBkYXRhIGJlY29tZXMgb2xkIHZhbHVlXG4gICAgICAgICAgICAgICAgbmV3VmFsdWU6IGNsb25lRGVlcChpbml0aWFsRGF0YSksIC8vIFJlc2V0IHRvIHRoZSBpbml0aWFsIHN0YXRlXG4gICAgICAgICAgICAgICAgcGF0aDogJycsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdyZXN0b3JlZCcsXG4gICAgICAgICAgICAgICAgZGF0YTogaW5pdGlhbERhdGEsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgcHJldmlvdXNTbmFwc2hvdDogc3RvcmUuc25hcHNob3QoKSwgLy8gU2F2ZSB0aGUgcHJldmlvdXMgc3RhdGVcbiAgICAgICAgICAgICAgICBkYXRhOiBpbml0aWFsRGF0YSxcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ3Jlc3RvcmVkJyxcbiAgICAgICAgICAgICAgICBsYXN0Q2hhbmdlOiBjaGFuZ2VFdmVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHN0YXRlXG4gICAgICAgIHNldChpbml0aWFsRGF0YTogYW55KSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0YSA9IHN0b3JlLmRhdGEoKTtcbiAgICAgICAgICAgIGlmIChpc0VxdWFsKGN1cnJlbnREYXRhLCBpbml0aWFsRGF0YSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47IC8vIFNraXAgaWYgdGhlIGN1cnJlbnQgc3RhdGUgbWF0Y2hlcyB0aGUgaW5pdGlhbCBzdGF0ZVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjaGFuZ2VFdmVudDogQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50ID0ge1xuICAgICAgICAgICAgICAgIG9sZFZhbHVlOiBudWxsLFxuICAgICAgICAgICAgICAgIG5ld1ZhbHVlOiBjbG9uZURlZXAoaW5pdGlhbERhdGEpLFxuICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgICAgIHN0YXRlOiAnaW5pdGlhdGVkJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBpbml0aWFsRGF0YSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICBpbml0aWFsU25hcHNob3Q6IGNsb25lRGVlcChpbml0aWFsRGF0YSksIC8vIFNhdmUgdGhlIGluaXRpYWwgc3RhdGVcbiAgICAgICAgICAgICAgICBwcmV2aW91c1NuYXBzaG90OiBzdG9yZS5zbmFwc2hvdCgpLCAvLyBTYXZlIHRoZSBjdXJyZW50IHN0YXRlIGFzIHRoZSBwcmV2aW91c1xuICAgICAgICAgICAgICAgIGRhdGE6IGluaXRpYWxEYXRhLFxuICAgICAgICAgICAgICAgIHN0YXRlOiAnaW5pdGlhdGVkJyxcbiAgICAgICAgICAgICAgICBsYXN0Q2hhbmdlOiBjaGFuZ2VFdmVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8vIEdldCBhIHNwZWNpZmljIHZhbHVlXG4gICAgICAgIGdldFZhbHVlKHBhdGg6IHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIGdldChzdG9yZS5kYXRhKCksIHBhdGgpO1xuICAgICAgICB9LFxuICAgIH0pKVxuKTtcbiJdfQ==","const AXPWidgetsCatalog = {\n timeDuration: 'time-duration',\n tagable: 'tagable-editor',\n checkbox: 'checkbox-editor',\n color: 'color-editor',\n contact: 'contact-editor',\n dateTime: 'date-time-editor',\n largeText: 'large-text-editor',\n number: 'number-editor',\n numberUnit: 'number-unit-editor',\n password: 'password-editor',\n richText: 'rich-text-editor',\n select: 'select-editor',\n selectionList: 'selection-list-editor',\n text: 'text-editor',\n table: 'table-editor',\n toggle: 'toggle-editor',\n blockLayout: 'block-layout',\n pageLayout: 'page-layout',\n repeaterLayout: 'repeater-layout',\n textBlockLayout: 'text-block-layout',\n fileUploader: 'file-uploader',\n fileTypeExtension: 'file-type-extension',\n map: 'map',\n imageMarker: 'image-marker',\n image: 'image',\n gallery: 'gallery',\n signature: 'signature',\n buttonAction: 'button-action',\n document: 'document-layout',\n lookup: 'lookup-editor',\n formField: 'form-field',\n qrcode: 'qrcode',\n advancedGrid: 'advanced-grid-layout',\n advancedGridItem: 'advanced-grid-item-layout',\n grid: 'grid-layout',\n gridItem: 'grid-item-layout',\n // gridRow: 'grid-row-layout',\n widgetSelector: 'widget-selector',\n template: 'template',\n templateDesigner: 'template-designer',\n cronJob: 'cron-job',\n spacing: 'spacing',\n direction: 'direction',\n border: 'border',\n flexLayout: 'flex-layout',\n flexItem: 'flex-item-layout',\n tableLayout: 'table-layout',\n tableItem: 'table-item-layout',\n avatar: 'avatar',\n themePaletteChooser: 'theme-palette-chooser',\n themeModeChooser: 'theme-mode-chooser',\n menuOrientationChooser: 'menu-orientation-chooser',\n fontStyleChooser: 'font-style-chooser',\n fontSizeChooser: 'font-size-chooser',\n iconChooser: 'icon-chooser',\n themeColorChooser: 'theme-color-chooser',\n gridOptions: 'grid-options',\n gridItemOptions: 'grid-item-options',\n advancedGridOptions: 'advanced-grid-options',\n stringFilter: 'string-filter',\n numberFilter: 'number-filter',\n dateTimeFilter: 'datetime-filter',\n booleanFilter: 'boolean-filter',\n lookupFilter: 'lookup-filter',\n flexOptions: 'flex-options',\n flexItemOptions: 'flex-item-options',\n selectFilter: 'select-filter',\n requiredValidation: 'required-validation',\n regularExpressionValidation: 'regular-expression-validation',\n minLengthValidation: 'min-length-validation',\n maxLengthValidation: 'max-length-validation',\n lessThanValidation: 'less-than-validation',\n greaterThanValidation: 'greater-than-validation',\n betweenValidation: 'between-validation',\n equalValidation: 'equal-validation',\n callbackValidation: 'callback-validation',\n donutChart: 'donut-chart',\n lineChart: 'line-chart',\n barChart: 'bar-chart',\n gaugeChart: 'gauge-chart',\n stickyNote: 'sticky-note',\n clockCalendar: 'clock-calendar',\n analogClock: 'analog-clock',\n weather: 'weather',\n minimalWeather: 'minimal-weather',\n advancedWeather: 'advanced-weather',\n metaData: 'meta-data-editor',\n templateEditor: 'template-box-editor',\n panel: 'panel',\n notification: 'notification',\n taskBoard: 'task-board',\n comment: 'comment',\n list: 'list',\n listToolbar: 'list-toolbar',\n entityList: 'entity-list',\n documentUploader: 'document-uploader',\n};\nexport { AXPWidgetsCatalog };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNhdGFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci93aWRnZXQtY2F0YWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLGlCQUFpQixHQUFzQjtJQUMzQyxZQUFZLEVBQUUsZUFBZTtJQUM3QixPQUFPLEVBQUUsZ0JBQWdCO0lBQ3pCLFFBQVEsRUFBRSxpQkFBaUI7SUFDM0IsS0FBSyxFQUFFLGNBQWM7SUFDckIsT0FBTyxFQUFFLGdCQUFnQjtJQUN6QixRQUFRLEVBQUUsa0JBQWtCO0lBQzVCLFNBQVMsRUFBRSxtQkFBbUI7SUFDOUIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsVUFBVSxFQUFFLG9CQUFvQjtJQUNoQyxRQUFRLEVBQUUsaUJBQWlCO0lBQzNCLFFBQVEsRUFBRSxrQkFBa0I7SUFDNUIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsYUFBYSxFQUFFLHVCQUF1QjtJQUN0QyxJQUFJLEVBQUUsYUFBYTtJQUNuQixLQUFLLEVBQUUsY0FBYztJQUNyQixNQUFNLEVBQUUsZUFBZTtJQUN2QixXQUFXLEVBQUUsY0FBYztJQUMzQixVQUFVLEVBQUUsYUFBYTtJQUN6QixjQUFjLEVBQUUsaUJBQWlCO0lBQ2pDLGVBQWUsRUFBRSxtQkFBbUI7SUFDcEMsWUFBWSxFQUFFLGVBQWU7SUFDN0IsaUJBQWlCLEVBQUUscUJBQXFCO0lBQ3hDLEdBQUcsRUFBRSxLQUFLO0lBQ1YsV0FBVyxFQUFFLGNBQWM7SUFDM0IsS0FBSyxFQUFFLE9BQU87SUFDZCxPQUFPLEVBQUUsU0FBUztJQUNsQixTQUFTLEVBQUUsV0FBVztJQUN0QixZQUFZLEVBQUUsZUFBZTtJQUM3QixRQUFRLEVBQUUsaUJBQWlCO0lBQzNCLE1BQU0sRUFBRSxlQUFlO0lBQ3ZCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFlBQVksRUFBRSxzQkFBc0I7SUFDcEMsZ0JBQWdCLEVBQUUsMkJBQTJCO0lBQzdDLElBQUksRUFBRSxhQUFhO0lBQ25CLFFBQVEsRUFBRSxrQkFBa0I7SUFDNUIsOEJBQThCO0lBQzlCLGNBQWMsRUFBRSxpQkFBaUI7SUFDakMsUUFBUSxFQUFFLFVBQVU7SUFDcEIsZ0JBQWdCLEVBQUUsbUJBQW1CO0lBQ3JDLE9BQU8sRUFBRSxVQUFVO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFNBQVMsRUFBRSxXQUFXO0lBQ3RCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFVBQVUsRUFBRSxhQUFhO0lBQ3pCLFFBQVEsRUFBRSxrQkFBa0I7SUFDNUIsV0FBVyxFQUFFLGNBQWM7SUFDM0IsU0FBUyxFQUFFLG1CQUFtQjtJQUM5QixNQUFNLEVBQUUsUUFBUTtJQUNoQixtQkFBbUIsRUFBRSx1QkFBdUI7SUFDNUMsZ0JBQWdCLEVBQUUsb0JBQW9CO0lBQ3RDLHNCQUFzQixFQUFFLDBCQUEwQjtJQUNsRCxnQkFBZ0IsRUFBRSxvQkFBb0I7SUFDdEMsZUFBZSxFQUFFLG1CQUFtQjtJQUNwQyxXQUFXLEVBQUUsY0FBYztJQUMzQixpQkFBaUIsRUFBRSxxQkFBcUI7SUFDeEMsV0FBVyxFQUFFLGNBQWM7SUFDM0IsZUFBZSxFQUFFLG1CQUFtQjtJQUNwQyxtQkFBbUIsRUFBRSx1QkFBdUI7SUFDNUMsWUFBWSxFQUFFLGVBQWU7SUFDN0IsWUFBWSxFQUFFLGVBQWU7SUFDN0IsY0FBYyxFQUFFLGlCQUFpQjtJQUNqQyxhQUFhLEVBQUUsZ0JBQWdCO0lBQy9CLFlBQVksRUFBRSxlQUFlO0lBQzdCLFdBQVcsRUFBRSxjQUFjO0lBQzNCLGVBQWUsRUFBRSxtQkFBbUI7SUFDcEMsWUFBWSxFQUFFLGVBQWU7SUFDN0Isa0JBQWtCLEVBQUUscUJBQXFCO0lBQ3pDLDJCQUEyQixFQUFFLCtCQUErQjtJQUM1RCxtQkFBbUIsRUFBRSx1QkFBdUI7SUFDNUMsbUJBQW1CLEVBQUUsdUJBQXVCO0lBQzVDLGtCQUFrQixFQUFFLHNCQUFzQjtJQUMxQyxxQkFBcUIsRUFBRSx5QkFBeUI7SUFDaEQsaUJBQWlCLEVBQUUsb0JBQW9CO0lBQ3ZDLGVBQWUsRUFBRSxrQkFBa0I7SUFDbkMsa0JBQWtCLEVBQUUscUJBQXFCO0lBQ3pDLFVBQVUsRUFBRSxhQUFhO0lBQ3pCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLFVBQVUsRUFBRSxhQUFhO0lBQ3pCLFVBQVUsRUFBRSxhQUFhO0lBQ3pCLGFBQWEsRUFBRSxnQkFBZ0I7SUFDL0IsV0FBVyxFQUFFLGNBQWM7SUFDM0IsT0FBTyxFQUFFLFNBQVM7SUFDbEIsY0FBYyxFQUFFLGlCQUFpQjtJQUNqQyxlQUFlLEVBQUUsa0JBQWtCO0lBQ25DLFFBQVEsRUFBRSxrQkFBa0I7SUFDNUIsY0FBYyxFQUFFLHFCQUFxQjtJQUNyQyxLQUFLLEVBQUUsT0FBTztJQUNkLFlBQVksRUFBRSxjQUFjO0lBQzVCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLElBQUksRUFBRSxNQUFNO0lBQ1osV0FBVyxFQUFFLGNBQWM7SUFDM0IsVUFBVSxFQUFFLGFBQWE7SUFFekIsZ0JBQWdCLEVBQUUsbUJBQW1CO0NBQ3RDLENBQUM7QUFFRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFdpZGdldFR5cGVzTWFwIH0gZnJvbSAnLi93aWRnZXQtbWFwJztcblxuY29uc3QgQVhQV2lkZ2V0c0NhdGFsb2c6IEFYUFdpZGdldFR5cGVzTWFwID0ge1xuICB0aW1lRHVyYXRpb246ICd0aW1lLWR1cmF0aW9uJyxcbiAgdGFnYWJsZTogJ3RhZ2FibGUtZWRpdG9yJyxcbiAgY2hlY2tib3g6ICdjaGVja2JveC1lZGl0b3InLFxuICBjb2xvcjogJ2NvbG9yLWVkaXRvcicsXG4gIGNvbnRhY3Q6ICdjb250YWN0LWVkaXRvcicsXG4gIGRhdGVUaW1lOiAnZGF0ZS10aW1lLWVkaXRvcicsXG4gIGxhcmdlVGV4dDogJ2xhcmdlLXRleHQtZWRpdG9yJyxcbiAgbnVtYmVyOiAnbnVtYmVyLWVkaXRvcicsXG4gIG51bWJlclVuaXQ6ICdudW1iZXItdW5pdC1lZGl0b3InLFxuICBwYXNzd29yZDogJ3Bhc3N3b3JkLWVkaXRvcicsXG4gIHJpY2hUZXh0OiAncmljaC10ZXh0LWVkaXRvcicsXG4gIHNlbGVjdDogJ3NlbGVjdC1lZGl0b3InLFxuICBzZWxlY3Rpb25MaXN0OiAnc2VsZWN0aW9uLWxpc3QtZWRpdG9yJyxcbiAgdGV4dDogJ3RleHQtZWRpdG9yJyxcbiAgdGFibGU6ICd0YWJsZS1lZGl0b3InLFxuICB0b2dnbGU6ICd0b2dnbGUtZWRpdG9yJyxcbiAgYmxvY2tMYXlvdXQ6ICdibG9jay1sYXlvdXQnLFxuICBwYWdlTGF5b3V0OiAncGFnZS1sYXlvdXQnLFxuICByZXBlYXRlckxheW91dDogJ3JlcGVhdGVyLWxheW91dCcsXG4gIHRleHRCbG9ja0xheW91dDogJ3RleHQtYmxvY2stbGF5b3V0JyxcbiAgZmlsZVVwbG9hZGVyOiAnZmlsZS11cGxvYWRlcicsXG4gIGZpbGVUeXBlRXh0ZW5zaW9uOiAnZmlsZS10eXBlLWV4dGVuc2lvbicsXG4gIG1hcDogJ21hcCcsXG4gIGltYWdlTWFya2VyOiAnaW1hZ2UtbWFya2VyJyxcbiAgaW1hZ2U6ICdpbWFnZScsXG4gIGdhbGxlcnk6ICdnYWxsZXJ5JyxcbiAgc2lnbmF0dXJlOiAnc2lnbmF0dXJlJyxcbiAgYnV0dG9uQWN0aW9uOiAnYnV0dG9uLWFjdGlvbicsXG4gIGRvY3VtZW50OiAnZG9jdW1lbnQtbGF5b3V0JyxcbiAgbG9va3VwOiAnbG9va3VwLWVkaXRvcicsXG4gIGZvcm1GaWVsZDogJ2Zvcm0tZmllbGQnLFxuICBxcmNvZGU6ICdxcmNvZGUnLFxuICBhZHZhbmNlZEdyaWQ6ICdhZHZhbmNlZC1ncmlkLWxheW91dCcsXG4gIGFkdmFuY2VkR3JpZEl0ZW06ICdhZHZhbmNlZC1ncmlkLWl0ZW0tbGF5b3V0JyxcbiAgZ3JpZDogJ2dyaWQtbGF5b3V0JyxcbiAgZ3JpZEl0ZW06ICdncmlkLWl0ZW0tbGF5b3V0JyxcbiAgLy8gZ3JpZFJvdzogJ2dyaWQtcm93LWxheW91dCcsXG4gIHdpZGdldFNlbGVjdG9yOiAnd2lkZ2V0LXNlbGVjdG9yJyxcbiAgdGVtcGxhdGU6ICd0ZW1wbGF0ZScsXG4gIHRlbXBsYXRlRGVzaWduZXI6ICd0ZW1wbGF0ZS1kZXNpZ25lcicsXG4gIGNyb25Kb2I6ICdjcm9uLWpvYicsXG4gIHNwYWNpbmc6ICdzcGFjaW5nJyxcbiAgZGlyZWN0aW9uOiAnZGlyZWN0aW9uJyxcbiAgYm9yZGVyOiAnYm9yZGVyJyxcbiAgZmxleExheW91dDogJ2ZsZXgtbGF5b3V0JyxcbiAgZmxleEl0ZW06ICdmbGV4LWl0ZW0tbGF5b3V0JyxcbiAgdGFibGVMYXlvdXQ6ICd0YWJsZS1sYXlvdXQnLFxuICB0YWJsZUl0ZW06ICd0YWJsZS1pdGVtLWxheW91dCcsXG4gIGF2YXRhcjogJ2F2YXRhcicsXG4gIHRoZW1lUGFsZXR0ZUNob29zZXI6ICd0aGVtZS1wYWxldHRlLWNob29zZXInLFxuICB0aGVtZU1vZGVDaG9vc2VyOiAndGhlbWUtbW9kZS1jaG9vc2VyJyxcbiAgbWVudU9yaWVudGF0aW9uQ2hvb3NlcjogJ21lbnUtb3JpZW50YXRpb24tY2hvb3NlcicsXG4gIGZvbnRTdHlsZUNob29zZXI6ICdmb250LXN0eWxlLWNob29zZXInLFxuICBmb250U2l6ZUNob29zZXI6ICdmb250LXNpemUtY2hvb3NlcicsXG4gIGljb25DaG9vc2VyOiAnaWNvbi1jaG9vc2VyJyxcbiAgdGhlbWVDb2xvckNob29zZXI6ICd0aGVtZS1jb2xvci1jaG9vc2VyJyxcbiAgZ3JpZE9wdGlvbnM6ICdncmlkLW9wdGlvbnMnLFxuICBncmlkSXRlbU9wdGlvbnM6ICdncmlkLWl0ZW0tb3B0aW9ucycsXG4gIGFkdmFuY2VkR3JpZE9wdGlvbnM6ICdhZHZhbmNlZC1ncmlkLW9wdGlvbnMnLFxuICBzdHJpbmdGaWx0ZXI6ICdzdHJpbmctZmlsdGVyJyxcbiAgbnVtYmVyRmlsdGVyOiAnbnVtYmVyLWZpbHRlcicsXG4gIGRhdGVUaW1lRmlsdGVyOiAnZGF0ZXRpbWUtZmlsdGVyJyxcbiAgYm9vbGVhbkZpbHRlcjogJ2Jvb2xlYW4tZmlsdGVyJyxcbiAgbG9va3VwRmlsdGVyOiAnbG9va3VwLWZpbHRlcicsXG4gIGZsZXhPcHRpb25zOiAnZmxleC1vcHRpb25zJyxcbiAgZmxleEl0ZW1PcHRpb25zOiAnZmxleC1pdGVtLW9wdGlvbnMnLFxuICBzZWxlY3RGaWx0ZXI6ICdzZWxlY3QtZmlsdGVyJyxcbiAgcmVxdWlyZWRWYWxpZGF0aW9uOiAncmVxdWlyZWQtdmFsaWRhdGlvbicsXG4gIHJlZ3VsYXJFeHByZXNzaW9uVmFsaWRhdGlvbjogJ3JlZ3VsYXItZXhwcmVzc2lvbi12YWxpZGF0aW9uJyxcbiAgbWluTGVuZ3RoVmFsaWRhdGlvbjogJ21pbi1sZW5ndGgtdmFsaWRhdGlvbicsXG4gIG1heExlbmd0aFZhbGlkYXRpb246ICdtYXgtbGVuZ3RoLXZhbGlkYXRpb24nLFxuICBsZXNzVGhhblZhbGlkYXRpb246ICdsZXNzLXRoYW4tdmFsaWRhdGlvbicsXG4gIGdyZWF0ZXJUaGFuVmFsaWRhdGlvbjogJ2dyZWF0ZXItdGhhbi12YWxpZGF0aW9uJyxcbiAgYmV0d2VlblZhbGlkYXRpb246ICdiZXR3ZWVuLXZhbGlkYXRpb24nLFxuICBlcXVhbFZhbGlkYXRpb246ICdlcXVhbC12YWxpZGF0aW9uJyxcbiAgY2FsbGJhY2tWYWxpZGF0aW9uOiAnY2FsbGJhY2stdmFsaWRhdGlvbicsXG4gIGRvbnV0Q2hhcnQ6ICdkb251dC1jaGFydCcsXG4gIGxpbmVDaGFydDogJ2xpbmUtY2hhcnQnLFxuICBiYXJDaGFydDogJ2Jhci1jaGFydCcsXG4gIGdhdWdlQ2hhcnQ6ICdnYXVnZS1jaGFydCcsXG4gIHN0aWNreU5vdGU6ICdzdGlja3ktbm90ZScsXG4gIGNsb2NrQ2FsZW5kYXI6ICdjbG9jay1jYWxlbmRhcicsXG4gIGFuYWxvZ0Nsb2NrOiAnYW5hbG9nLWNsb2NrJyxcbiAgd2VhdGhlcjogJ3dlYXRoZXInLFxuICBtaW5pbWFsV2VhdGhlcjogJ21pbmltYWwtd2VhdGhlcicsXG4gIGFkdmFuY2VkV2VhdGhlcjogJ2FkdmFuY2VkLXdlYXRoZXInLFxuICBtZXRhRGF0YTogJ21ldGEtZGF0YS1lZGl0b3InLFxuICB0ZW1wbGF0ZUVkaXRvcjogJ3RlbXBsYXRlLWJveC1lZGl0b3InLFxuICBwYW5lbDogJ3BhbmVsJyxcbiAgbm90aWZpY2F0aW9uOiAnbm90aWZpY2F0aW9uJyxcbiAgdGFza0JvYXJkOiAndGFzay1ib2FyZCcsXG4gIGNvbW1lbnQ6ICdjb21tZW50JyxcbiAgbGlzdDogJ2xpc3QnLFxuICBsaXN0VG9vbGJhcjogJ2xpc3QtdG9vbGJhcicsXG4gIGVudGl0eUxpc3Q6ICdlbnRpdHktbGlzdCcsXG5cbiAgZG9jdW1lbnRVcGxvYWRlcjogJ2RvY3VtZW50LXVwbG9hZGVyJyxcbn07XG5cbmV4cG9ydCB7IEFYUFdpZGdldHNDYXRhbG9nIH07XG4iXX0=","import { InjectionToken } from '@angular/core';\nimport { cloneDeep, isNil, merge } from 'lodash-es';\nimport { AXPWidgetsCatalog } from './widget-catalog';\nexport function cloneProperty(property, values) {\n return merge(cloneDeep(property), values);\n}\nexport function createStringProperty(ctor) {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'string',\n defaultValue: ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: !isNil(ctor.visible) ? ctor.visible : true,\n };\n}\nexport function createNumberProperty(ctor) {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'number',\n defaultValue: ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.number,\n options: ctor.options,\n },\n },\n visible: !isNil(ctor.visible) ? ctor.visible : true,\n };\n}\nexport function createBooleanProperty(ctor) {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'boolean',\n defaultValue: ctor.defaultValue ?? false,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: ctor.visible ?? true,\n };\n}\nexport function createSelectProperty(ctor) {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'string',\n defaultValue: Array.isArray(ctor.defaultValue)\n ? ctor.defaultValue.map((item) => (typeof item === 'string' ? { id: item } : item))\n : typeof ctor.defaultValue === 'string'\n ? { id: ctor.defaultValue, title: ctor.defaultValue }\n : ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: ctor.dataSource.map((item) => (typeof item === 'string' ? { id: item, title: item } : item)),\n },\n },\n },\n visible: ctor.visible ?? true,\n };\n}\nexport const AXP_WIDGET_TOKEN = new InjectionToken('AXP_WIDGET_TOKEN');\nexport const AXP_WIDGET_COLUMN_TOKEN = new InjectionToken('AXP_WIDGET_COLUMN_TOKEN');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvd2lkZ2V0LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBNkJyRCxNQUFNLFVBQVUsYUFBYSxDQUMzQixRQUEyQixFQUMzQixNQUEyQztJQUUzQyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxJQU9wQztJQUNDLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7UUFDakIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1FBQ2pCLE1BQU0sRUFBRTtZQUNOLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixTQUFTLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJO2dCQUM1QixJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUM3QjtTQUNGO1FBQ0QsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSTtLQUNwRCxDQUFDO0FBQ0os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QyxDQUFDO2lCQUN6RzthQUNGO1NBQ0Y7UUFDRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJO0tBQzlCLENBQUM7QUFDSixDQUFDO0FBaUNELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUFxQixrQkFBa0IsQ0FBQyxDQUFDO0FBQzNGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUEyQix5QkFBeUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhQRGF0YVR5cGUsXG4gIEFYUE1ldGFEYXRhLFxuICBBWFBPcHRpb25zRGF0YSxcbiAgQVhQUGFydGlhbE5lc3RlZCxcbiAgQVhQVmFsaWRhdGlvblJ1bGVzLFxuICBBWFBWYWx1ZVRyYW5zZm9ybWVyRnVuY3Rpb25zLFxuICBBWFBXaWRnZXRUcmlnZ2Vycyxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGlzTmlsLCBtZXJnZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBXaWRnZXRzQ2F0YWxvZyB9IGZyb20gJy4vd2lkZ2V0LWNhdGFsb2cnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q2F0ZWdvcnkgfSBmcm9tICcuL3dpZGdldC1jYXRlZ29yaWVzJztcbmltcG9ydCB7IEFYUFdpZGdldEdyb3VwIH0gZnJvbSAnLi93aWRnZXQtZ3JvdXAudHlwZXMnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0VHlwZXNNYXAgfSBmcm9tICcuL3dpZGdldC1tYXAnO1xuaW1wb3J0IHsgQVhQUGFnZVN0YXR1cyB9IGZyb20gJy4vd2lkZ2V0LXN0YXR1cy50eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2lkZ2V0UHJvcGVydHlHcm91cCB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgb3JkZXI6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBXaWRnZXRQcm9wZXJ0eSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGdyb3VwOiBBWFBXaWRnZXRQcm9wZXJ0eUdyb3VwO1xuICBvcmRlcj86IG51bWJlcjtcbiAgc2NoZW1hOiB7XG4gICAgZGF0YVR5cGU6IEFYUERhdGFUeXBlO1xuICAgIG51bGxhYmxlPzogYm9vbGVhbjtcbiAgICBkZWZhdWx0VmFsdWU/OiBhbnkgfCBzdHJpbmcgfCAoKGNvbnRleHQ6IGFueSB8IG51bGwpID0+IGFueSk7XG4gICAgaW50ZXJmYWNlOiBSZXF1aXJlZDxQaWNrPEFYUFdpZGdldE5vZGUsICdwYXRoJz4+ICYgT21pdDxBWFBXaWRnZXROb2RlLCAncGF0aCc+O1xuICB9O1xuICBvcHRpb25zPzogQVhQT3B0aW9uc0RhdGE7XG4gIHZhbGlkYXRpb25zPzogQVhQVmFsaWRhdGlvblJ1bGVzO1xuICB2aXNpYmxlOiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xvbmVQcm9wZXJ0eShcbiAgcHJvcGVydHk6IEFYUFdpZGdldFByb3BlcnR5LFxuICB2YWx1ZXM6IEFYUFBhcnRpYWxOZXN0ZWQ8QVhQV2lkZ2V0UHJvcGVydHk+XG4pOiBBWFBXaWRnZXRQcm9wZXJ0eSB7XG4gIHJldHVybiBtZXJnZShjbG9uZURlZXAocHJvcGVydHkpLCB2YWx1ZXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3RyaW5nUHJvcGVydHkoY3Rvcjoge1xuICBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcbiAgZ3JvdXA6IEFYUFdpZGdldFByb3BlcnR5R3JvdXA7XG4gIHZpc2libGU/OiBib29sZWFuO1xufSk6IEFYUFdpZGdldFByb3BlcnR5IHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBjdG9yLm5hbWUsXG4gICAgdGl0bGU6IGN0b3IudGl0bGUsXG4gICAgZ3JvdXA6IGN0b3IuZ3JvdXAsXG4gICAgc2NoZW1hOiB7XG4gICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICBkZWZhdWx0VmFsdWU6IGN0b3IuZGVmYXVsdFZhbHVlLFxuICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgIG5hbWU6IGN0b3IubmFtZSxcbiAgICAgICAgcGF0aDogY3Rvci5wYXRoID8/IGN0b3IubmFtZSxcbiAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB2aXNpYmxlOiAhaXNOaWwoY3Rvci52aXNpYmxlKSA/IGN0b3IudmlzaWJsZSA6IHRydWUsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOdW1iZXJQcm9wZXJ0eShjdG9yOiB7XG4gIGRlZmF1bHRWYWx1ZT86IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuICBncm91cDogQVhQV2lkZ2V0UHJvcGVydHlHcm91cDtcbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIG9wdGlvbnM/OiB7XG4gICAgbWluVmFsdWU/OiBudW1iZXI7XG4gICAgbWF4VmFsdWU/OiBudW1iZXI7XG4gICAgZGVjaW1hbHM/OiBudW1iZXI7XG4gIH07XG59KTogQVhQV2lkZ2V0UHJvcGVydHkge1xuICByZXR1cm4ge1xuICAgIG5hbWU6IGN0b3IubmFtZSxcbiAgICB0aXRsZTogY3Rvci50aXRsZSxcbiAgICBncm91cDogY3Rvci5ncm91cCxcbiAgICBzY2hlbWE6IHtcbiAgICAgIGRhdGFUeXBlOiAnbnVtYmVyJyxcbiAgICAgIGRlZmF1bHRWYWx1ZTogY3Rvci5kZWZhdWx0VmFsdWUsXG4gICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgbmFtZTogY3Rvci5uYW1lLFxuICAgICAgICBwYXRoOiBjdG9yLnBhdGggPz8gY3Rvci5uYW1lLFxuICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5udW1iZXIsXG4gICAgICAgIG9wdGlvbnM6IGN0b3Iub3B0aW9ucyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB2aXNpYmxlOiAhaXNOaWwoY3Rvci52aXNpYmxlKSA/IGN0b3IudmlzaWJsZSA6IHRydWUsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCb29sZWFuUHJvcGVydHkoY3Rvcjoge1xuICBkZWZhdWx0VmFsdWU/OiBib29sZWFuO1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGdyb3VwOiBBWFBXaWRnZXRQcm9wZXJ0eUdyb3VwO1xuICB2aXNpYmxlPzogYm9vbGVhbjtcbn0pOiBBWFBXaWRnZXRQcm9wZXJ0eSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogY3Rvci5uYW1lLFxuICAgIHRpdGxlOiBjdG9yLnRpdGxlLFxuICAgIGdyb3VwOiBjdG9yLmdyb3VwLFxuICAgIHNjaGVtYToge1xuICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgIGRlZmF1bHRWYWx1ZTogY3Rvci5kZWZhdWx0VmFsdWUgPz8gZmFsc2UsXG4gICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgbmFtZTogY3Rvci5uYW1lLFxuICAgICAgICBwYXRoOiBjdG9yLnBhdGggPz8gY3Rvci5uYW1lLFxuICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgICB9LFxuICAgIH0sXG4gICAgdmlzaWJsZTogY3Rvci52aXNpYmxlID8/IHRydWUsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZWxlY3RQcm9wZXJ0eTxUID0gc3RyaW5nIHwgeyBpZDogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH0+KGN0b3I6IHtcbiAgZGVmYXVsdFZhbHVlOiBUIHwgVFtdIHwgYW55O1xuICBkYXRhU291cmNlOiBUW107XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcbiAgZ3JvdXA6IEFYUFdpZGdldFByb3BlcnR5R3JvdXA7XG4gIHZpc2libGU/OiBib29sZWFuO1xufSk6IEFYUFdpZGdldFByb3BlcnR5IHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBjdG9yLm5hbWUsXG4gICAgdGl0bGU6IGN0b3IudGl0bGUsXG4gICAgZ3JvdXA6IGN0b3IuZ3JvdXAsXG4gICAgc2NoZW1hOiB7XG4gICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICBkZWZhdWx0VmFsdWU6IEFycmF5LmlzQXJyYXkoY3Rvci5kZWZhdWx0VmFsdWUpXG4gICAgICAgID8gY3Rvci5kZWZhdWx0VmFsdWUubWFwKChpdGVtKSA9PiAodHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnID8geyBpZDogaXRlbSB9IDogaXRlbSkpXG4gICAgICAgIDogdHlwZW9mIGN0b3IuZGVmYXVsdFZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8geyBpZDogY3Rvci5kZWZhdWx0VmFsdWUsIHRpdGxlOiBjdG9yLmRlZmF1bHRWYWx1ZSB9XG4gICAgICAgICAgOiBjdG9yLmRlZmF1bHRWYWx1ZSxcbiAgICAgIGludGVyZmFjZToge1xuICAgICAgICBuYW1lOiBjdG9yLm5hbWUsXG4gICAgICAgIHBhdGg6IGN0b3IucGF0aCA/PyBjdG9yLm5hbWUsXG4gICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnNlbGVjdCxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIGRhdGFTb3VyY2U6IGN0b3IuZGF0YVNvdXJjZS5tYXAoKGl0ZW0pID0+ICh0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycgPyB7IGlkOiBpdGVtLCB0aXRsZTogaXRlbSB9IDogaXRlbSkpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHZpc2libGU6IGN0b3IudmlzaWJsZSA/PyB0cnVlLFxuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldE5vZGUge1xuICB0eXBlOiBBWFBXaWRnZXRUeXBlc01hcFtrZXlvZiBBWFBXaWRnZXRUeXBlc01hcF0gfCBrZXlvZiBBWFBXaWRnZXRUeXBlc01hcCB8IHN0cmluZztcbiAgbW9kZT86IEFYUFdpZGdldFJlbmRlck1vZGVcbiAgcGF0aD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZGVmYXVsdFZhbHVlPzogYW55O1xuICBmb3JtdWxhPzogc3RyaW5nO1xuICBjaGlsZHJlbj86IEFYUFdpZGdldE5vZGVbXTtcbiAgb3B0aW9ucz86IEFYUE9wdGlvbnNEYXRhO1xuICB0cmlnZ2Vycz86IEFYUFdpZGdldFRyaWdnZXJzO1xuICBtZXRhPzogQVhQTWV0YURhdGE7XG4gIHZhbHVlVHJhbnNmb3Jtcz86IEFYUFZhbHVlVHJhbnNmb3JtZXJGdW5jdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2lkZ2V0Tm9kZVRva2VuIHtcbiAgZGVmYXVsdFZhbHVlPzogYW55O1xuICBjb25maWc6IEFYUFdpZGdldENvbmZpZztcbiAgbm9kZTogQVhQV2lkZ2V0Tm9kZTtcbiAgb3B0aW9ucz86IEFYUE9wdGlvbnNEYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldENvbHVtbk5vZGUge1xuICB0eXBlOiBzdHJpbmc7XG4gIHBhdGg6IHN0cmluZztcbiAgb3B0aW9ucz86IEFYUE9wdGlvbnNEYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldENvbHVtbk5vZGVUb2tlbiBleHRlbmRzIEFYUFdpZGdldENvbHVtbk5vZGUge1xuICBjb25maWc6IEFYUFdpZGdldENvbmZpZztcbn1cblxuZXhwb3J0IGNvbnN0IEFYUF9XSURHRVRfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQV2lkZ2V0Tm9kZVRva2VuPignQVhQX1dJREdFVF9UT0tFTicpO1xuZXhwb3J0IGNvbnN0IEFYUF9XSURHRVRfQ09MVU1OX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEFYUFdpZGdldENvbHVtbk5vZGVUb2tlbj4oJ0FYUF9XSURHRVRfQ09MVU1OX1RPS0VOJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2lkZ2V0Q29tcG9uZW50Q29uZmlnIHtcbiAgY29tcG9uZW50OiAoKSA9PiBQcm9taXNlPGFueT47XG4gIHByb3BlcnRpZXM/OiBBWFBXaWRnZXRQcm9wZXJ0eVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldENvbmZpZ0NvbXBvbmVudHMge1xuICBkZXNpZ25lcj86IEFYUFdpZGdldENvbXBvbmVudENvbmZpZztcbiAgdmlldz86IEFYUFdpZGdldENvbXBvbmVudENvbmZpZztcbiAgZWRpdD86IEFYUFdpZGdldENvbXBvbmVudENvbmZpZztcbiAgcHJpbnQ/OiBBWFBXaWRnZXRDb21wb25lbnRDb25maWc7XG4gIGNvbHVtbj86IEFYUFdpZGdldENvbXBvbmVudENvbmZpZztcbiAgZmlsdGVyPzogQVhQV2lkZ2V0Q29tcG9uZW50Q29uZmlnO1xufVxuXG5leHBvcnQgdHlwZSBBWFBXaWRnZXRWaWV3VHlwZSA9ICdjb250YWluZXInIHwgJ2VkaXRvcicgfCAnYWN0aW9uJyB8ICd2aWV3JyB8ICdmaWx0ZXInIHwgJ3ZhbGlkYXRpb24nIHwgJ2Rhc2hib2FyZCc7XG5cbmV4cG9ydCB0eXBlIEFYUFdpZGdldERlc2lnbmVyT3B0aW9uc01hcCA9IHtcbiAgY29udGFpbmVyOiB7IGNhbkluc2VydDogYm9vbGVhbiB9O1xuICBlZGl0b3I6IHtcbiAgICBuZWVkTGFiZWw6IGJvb2xlYW47XG4gIH07XG4gIGFjdGlvbjoge307XG4gIHZpZXc6IHt9O1xufTtcblxuZXhwb3J0IHR5cGUgQVhQRXh0cmFjdFdpZGdldENvbmZpZzxUPiA9IHtcbiAgdHlwZTogQVhQV2lkZ2V0Vmlld1R5cGU7XG4gIGRlc2lnbmVyOiBUIGV4dGVuZHMgeyB0eXBlOiBpbmZlciBWIH1cbiAgPyBWIGV4dGVuZHMga2V5b2YgQVhQV2lkZ2V0RGVzaWduZXJPcHRpb25zTWFwXG4gID8gQVhQV2lkZ2V0RGVzaWduZXJPcHRpb25zTWFwW1ZdXG4gIDogYW55XG4gIDogYW55O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBBWFBXaWRnZXRDb25maWc8VCA9IGFueT4ge1xuICBuYW1lOiBBWFBXaWRnZXRUeXBlc01hcFtrZXlvZiBBWFBXaWRnZXRUeXBlc01hcF0gfCBrZXlvZiBBWFBXaWRnZXRUeXBlc01hcCB8IHN0cmluZztcbiAgYWxpYXM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgdGl0bGU6IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNhdGVnb3JpZXM/OiBBWFBXaWRnZXRDYXRlZ29yeSB8IEFYUFdpZGdldENhdGVnb3J5W107XG4gIGdyb3Vwcz86IEFYUFdpZGdldEdyb3VwW107XG4gIHByb3BlcnRpZXM/OiBBWFBXaWRnZXRQcm9wZXJ0eVtdO1xuICBjb21wb25lbnRzOiBBWFBXaWRnZXRDb25maWdDb21wb25lbnRzO1xuICBtZXRhPzogQVhQTWV0YURhdGE7XG4gIHR5cGU6IEFYUEV4dHJhY3RXaWRnZXRDb25maWc8VD5bJ3R5cGUnXTtcbiAgZGVzaWduZXI/OiBBWFBFeHRyYWN0V2lkZ2V0Q29uZmlnPFQ+WydkZXNpZ25lciddO1xuICBvcHRpb25zPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgZGVmYXVsdEZpbHRlcldpZGdldE5hbWU/OlxuICB8ICdzdHJpbmctZmlsdGVyJ1xuICB8ICdudW1iZXItZmlsdGVyJ1xuICB8ICdkYXRldGltZS1maWx0ZXInXG4gIHwgJ2Jvb2xlYW4tZmlsdGVyJ1xuICB8ICdzZWxlY3QtZmlsdGVyJ1xuICB8ICdsb29rdXAtZmlsdGVyJztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgZXh0ZW5kZWRXaWRnZXQge1xuICB3aWRnZXQ6IEFYUFdpZGdldENvbmZpZztcbiAgcGFyZW50TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBBWFBXaWRnZXRSZW5kZXJNb2RlID0ga2V5b2YgQVhQV2lkZ2V0Q29uZmlnQ29tcG9uZW50cztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBMYXlvdXRCdWlsZGVyU3RhdHVzQ2hhbmdlZEV2ZW50IHtcbiAgc3RhdHVzOiBBWFBQYWdlU3RhdHVzO1xufVxuXG5cbiJdfQ==","import { AXDataSource, convertArrayToDataSource } from '@acorex/cdk/common';\nimport { AXPDataSourceDefinitionProviderService, extractValue, } from '@acorex/platform/core';\nimport { computed, effect, ElementRef, inject, Injectable, signal } from '@angular/core';\nimport { cloneDeep, get, isEqual, isNil, isObjectLike, isUndefined } from 'lodash-es';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { AXPLayoutBuilderService, AXPLayoutElement } from './builder.service';\nimport { AXPLayoutBuilderContextStore } from './context-store.service';\nimport { AXPWidgetStatus } from './widget-status.types';\nimport { AXP_WIDGET_COLUMN_TOKEN, AXP_WIDGET_TOKEN } from './widget.types';\nimport * as i0 from \"@angular/core\";\nexport class AXPBaseWidgetComponent extends AXPLayoutElement {\n constructor() {\n super(...arguments);\n this.token = inject(AXP_WIDGET_TOKEN);\n this.host = inject(ElementRef).nativeElement;\n this.layoutService = inject(AXPLayoutBuilderService);\n this.contextService = inject(AXPLayoutBuilderContextStore);\n this.config = this.token.config;\n this.node = this.token.node;\n this.name = this.token.node.name;\n this.component = this;\n this._options = signal(this.token.options ?? {}, ...(ngDevMode ? [{ debugName: \"_options\" }] : []));\n this.options = this._options.asReadonly();\n this.onOptionsChanged = new Subject();\n this._status = signal(AXPWidgetStatus.Rendering, ...(ngDevMode ? [{ debugName: \"_status\" }] : []));\n this.status = this._status.asReadonly();\n this.onStatusChanged = new BehaviorSubject(this._status());\n this.#statusEffect = effect(() => {\n this.onStatusChanged.next(this.status());\n }, ...(ngDevMode ? [{ debugName: \"#statusEffect\" }] : []));\n this.isBusy = computed(() => [AXPWidgetStatus.Rendering, AXPWidgetStatus.Processing].includes(this.status()), ...(ngDevMode ? [{ debugName: \"isBusy\" }] : []));\n this._children = signal(this.token.node.children ?? [], ...(ngDevMode ? [{ debugName: \"_children\" }] : []));\n this.children = this._children.asReadonly();\n }\n get id() {\n return this._id;\n }\n #statusEffect;\n outputs() {\n return [];\n }\n ngOnInit() {\n if (get(this.node, '__meta__.added')) {\n this.onAdded();\n }\n this.setStatus(AXPWidgetStatus.Rendered);\n }\n setStatus(status) {\n this._status.set(status);\n this.layoutService.updateStatus();\n }\n setOptions(values) {\n const oldValue = this.options();\n const value = cloneDeep(values);\n this._options.set({ ...oldValue, ...value });\n this.onOptionsChanged.next({ sender: this });\n }\n output(name) {\n const outputs = this.outputs().map((c) => (typeof c == 'string' ? { name: c, value: c } : c));\n if (outputs.some((c) => c.name == name)) {\n const opt = get(this, name);\n if (typeof opt == 'function') {\n return opt();\n }\n return opt;\n }\n return null;\n }\n call(name, ...args) {\n const fn = get(this, name);\n if (fn && typeof fn == 'function') {\n fn.bind(this)(...args);\n }\n }\n setChildren(children) {\n this._children.set([...children]);\n }\n onAdded() { }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBaseWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBaseWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBaseWidgetComponent, decorators: [{\n type: Injectable\n }] });\nexport class AXPLayoutBaseWidgetComponent extends AXPBaseWidgetComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBaseWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBaseWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBaseWidgetComponent, decorators: [{\n type: Injectable\n }] });\nexport class AXPValueWidgetComponent extends AXPLayoutBaseWidgetComponent {\n constructor() {\n super(...arguments);\n this.path = this.token.node.path;\n this.defaultValue = this.token.defaultValue ?? this.token.node.defaultValue;\n this._isValueWidget = false;\n this.isValueWidget = () => this._isValueWidget;\n this.onValueChanged = new Subject();\n this.fullPath = signal(null, ...(ngDevMode ? [{ debugName: \"fullPath\" }] : []));\n this.parentPath = signal(null, ...(ngDevMode ? [{ debugName: \"parentPath\" }] : []));\n this.getValue = computed(() => {\n return this.fullPath() ? this.extractValue(this.fullPath()) : null;\n }, ...(ngDevMode ? [{ debugName: \"getValue\", equal: isEqual }] : [{ equal: isEqual }]));\n this.validationRules = computed(() => {\n const validationsRaw = this.options()['validations'];\n if (validationsRaw == null) {\n return [];\n }\n return Object.values(this.options()['validations'])\n .filter((c) => c != null)\n .map((c) => ({\n rule: c.rule,\n message: c.message,\n options: c.options,\n }));\n }, ...(ngDevMode ? [{ debugName: \"validationRules\" }] : []));\n }\n ngOnInit() {\n this._isValueWidget = this.config.properties?.some((c) => c.name == 'path') ?? false;\n if (this.isValueWidget()) {\n this.detectFullPath();\n if (!isNil(this.defaultValue) && isNil(this.getValue())) {\n this.setValue(this.defaultValue);\n }\n }\n //\n super.ngOnInit();\n }\n extractValue(path) {\n const rawValue = this.contextService.getValue(path);\n if (this.node.valueTransforms?.getter) {\n return this.node.valueTransforms?.getter(rawValue);\n }\n return rawValue;\n }\n setValue(value) {\n if (this.node.valueTransforms?.setter) {\n value = this.node.valueTransforms?.setter(value);\n }\n const oldValue = this.getValue();\n value = isUndefined(value) ? null : value;\n if (isNil(value) && isNil(oldValue)) {\n return;\n }\n if (isEqual(oldValue, value)) {\n return;\n }\n if (this.fullPath()) {\n this.contextService.update(this.fullPath(), value);\n this.onValueChanged.next({ sender: this });\n }\n }\n detectFullPath() {\n const sections = [];\n const ids = [];\n //\n let parent = this;\n //\n while (parent) {\n const isValueWidget = parent instanceof AXPValueWidgetComponent && parent.isValueWidget();\n const valueParent = parent;\n const path = valueParent.path ?? (isValueWidget ? valueParent.name : null);\n const id = valueParent.name;\n //\n if (path) {\n sections.push(path);\n }\n if (parent.index != null && isValueWidget) {\n sections.push(`[${parent.index}]`);\n }\n if (id) {\n ids.push(id);\n if (parent.index != null) {\n ids.push(`${parent.index}`);\n }\n }\n parent = parent.parent;\n }\n //\n this.fullPath.set(sections.reverse().join('.'));\n this.parentPath.set(sections.slice(0, sections.length - 1).join('.'));\n this._id = this.name || this.parent ? ids.reverse().join('_') : null;\n if (this._id) {\n this.layoutService.registerWidget(this._id, this);\n }\n }\n handleValueChanged(e) {\n if (e.isUserInteraction) {\n this.setValue(e.value);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPValueWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPValueWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPValueWidgetComponent, decorators: [{\n type: Injectable\n }] });\nexport class AXPDataListWidgetComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.dataService = inject(AXPDataSourceDefinitionProviderService);\n this.textField = computed(() => this.options()['textField'] ?? 'title', ...(ngDevMode ? [{ debugName: \"textField\" }] : []));\n this.valueField = computed(() => this.options()['valueField'] ?? 'id', ...(ngDevMode ? [{ debugName: \"valueField\" }] : []));\n this.dataSource = signal(convertArrayToDataSource([]), ...(ngDevMode ? [{ debugName: \"dataSource\" }] : []));\n this.isReady = computed(() => {\n const key = this.dataSource().config?.key;\n const valueField = this.valueField();\n const result = key == valueField;\n return result;\n }, ...(ngDevMode ? [{ debugName: \"isReady\" }] : []));\n this.selectedItems = signal([], ...(ngDevMode ? [{ debugName: \"selectedItems\" }] : []));\n this.rf = effect(async () => {\n const rawValue = this.options()['dataSource'];\n // static datasource class\n if (rawValue instanceof AXDataSource) {\n this.dataSource.set(rawValue);\n }\n // static array datasource\n else if (Array.isArray(rawValue)) {\n const ds = new AXDataSource({\n key: this.valueField(),\n pageSize: 10,\n load: async (e) => {\n const raw = this.options()['dataSource'];\n return {\n items: raw,\n total: raw.length,\n };\n },\n byKey: (key) => {\n const raw = this.options()['dataSource'];\n const item = raw.filter((c) => c[this.valueField()] == key);\n return Promise.resolve(item[0]);\n },\n });\n this.dataSource.set(ds);\n }\n // resolve data source by name\n else if (rawValue && (typeof rawValue == 'string' || typeof rawValue == 'object')) {\n const id = typeof rawValue == 'object' ? rawValue['id'] : rawValue;\n const c = await this.dataService.get(id);\n if (this.mode == 'designer' && c?.samples?.length) {\n this.dataSource.set(convertArrayToDataSource(c.samples, {\n key: this.valueField(),\n pageSize: 500,\n }));\n }\n else {\n const ds = c?.source();\n if (ds && ds instanceof Promise) {\n const d = await ds;\n this.dataSource.set(d);\n }\n else if (ds) {\n this.dataSource.set(ds);\n }\n // empty datasource\n else {\n this.dataSource.set(convertArrayToDataSource([]));\n }\n }\n }\n // empty datasource\n else {\n this.dataSource.set(convertArrayToDataSource([]));\n }\n }, ...(ngDevMode ? [{ debugName: \"rf\" }] : []));\n this.effect2 = effect(async () => {\n const value = this.getValue();\n const items = [];\n if (Array.isArray(value)) {\n items.push(...(await Promise.all(value.map((item) => this.extractItem(item)))));\n }\n else {\n items.push(await this.extractItem(value));\n }\n this.selectedItems.set(items.filter((c) => c != null));\n }, ...(ngDevMode ? [{ debugName: \"effect2\" }] : []));\n }\n async extractItem(item) {\n if (isNil(item)) {\n return null;\n }\n if (isObjectLike(item) && get(item, this.textField()) != null) {\n return item;\n }\n const key = extractValue(item, this.valueField());\n const ds = this.dataSource();\n if (ds.config?.byKey) {\n const found = await ds.config?.byKey(key);\n if (found) {\n return found;\n }\n }\n return isObjectLike(item)\n ? item\n : {\n [this.valueField()]: item,\n [this.textField()]: item,\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDataListWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDataListWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDataListWidgetComponent, decorators: [{\n type: Injectable\n }] });\nexport class AXPColumnWidgetComponent {\n constructor() {\n this.token = inject(AXP_WIDGET_COLUMN_TOKEN);\n this.path = this.token.path;\n this.options = this.token.options ?? {};\n this.rawValue = null;\n this.nullText = this.options['nullText'];\n this.nullValue = this.options['nullValue'];\n this.value = computed(() => {\n if (isNil(this.rawValue) && !isNil(this.nullValue)) {\n return this.nullValue;\n }\n return this.rawValue;\n }, ...(ngDevMode ? [{ debugName: \"value\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPColumnWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPColumnWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPColumnWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvd2lkZ2V0LWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQXVCLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakcsT0FBTyxFQUNMLHNDQUFzQyxFQUd0QyxZQUFZLEdBQ2IsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQWdCLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFzQyxNQUFNLGdCQUFnQixDQUFDOztBQU0vRyxNQUFNLE9BQWdCLHNCQUF1QixTQUFRLGdCQUFnQjtJQURyRTs7UUFFcUIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BDLFNBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBK0IsQ0FBQztRQUV2RCxrQkFBYSxHQUFHLE1B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LENBQUM7UUFFeEIsYUFBUSxHQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFXLENBQUM7UUFDbkQsY0FBUyxHQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFNLENBQUM7UUFFdkQsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDOUIsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUNuRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDeEIsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN2QixDQUFDLGlEQUFDLENBQUM7S0FDSjs4R0FoQnFCLHdCQUF3QjtrSEFBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUQ3QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRhU291cmNlLCBBWFZhbHVlQ2hhbmdlZEV2ZW50LCBjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2UgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHtcbiAgQVhQRGF0YVNvdXJjZURlZmluaXRpb25Qcm92aWRlclNlcnZpY2UsXG4gIEFYUFZhbGlkYXRpb25SdWxlLFxuICBBWFBWYWxpZGF0aW9uUnVsZXMsXG4gIGV4dHJhY3RWYWx1ZSxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudFJlZiwgY29tcHV0ZWQsIGVmZmVjdCwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbmplY3RhYmxlLCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBnZXQsIGlzRXF1YWwsIGlzTmlsLCBpc09iamVjdExpa2UsIGlzVW5kZWZpbmVkIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UsIEFYUExheW91dEVsZW1lbnQgfSBmcm9tICcuL2J1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyQ29udGV4dFN0b3JlIH0gZnJvbSAnLi9jb250ZXh0LXN0b3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0U3RhdHVzIH0gZnJvbSAnLi93aWRnZXQtc3RhdHVzLnR5cGVzJztcbmltcG9ydCB7IEFYUF9XSURHRVRfQ09MVU1OX1RPS0VOLCBBWFBfV0lER0VUX1RPS0VOLCBBWFBXaWRnZXROb2RlLCBBWFBXaWRnZXRSZW5kZXJNb2RlIH0gZnJvbSAnLi93aWRnZXQudHlwZXMnO1xuXG5leHBvcnQgdHlwZSBBWFBDbGFzc01hcCA9IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PjtcbmV4cG9ydCB0eXBlIEFYUFN0eWxlTWFwID0gUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPj47XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBCYXNlV2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgQVhQTGF5b3V0RWxlbWVudCB7XG4gIHByb3RlY3RlZCByZWFkb25seSB0b2tlbiA9IGluamVjdChBWFBfV0lER0VUX1RPS0VOKTtcbiAgcHVibGljIHJlYWRvbmx5IGhvc3QgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudCBhcyBIVE1MRGl2RWxlbWVudDtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGF5b3V0U2VydmljZSA9IGluamVjdChBWFBMYXlvdXRCdWlsZGVyU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb250ZXh0U2VydmljZSA9IGluamVjdChBWFBMYXlvdXRCdWlsZGVyQ29udGV4dFN0b3JlKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29uZmlnID0gdGhpcy50b2tlbi5jb25maWc7XG4gIHB1YmxpYyByZWFkb25seSBub2RlID0gdGhpcy50b2tlbi5ub2RlO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBuYW1lID0gdGhpcy50b2tlbi5ub2RlLm5hbWU7XG5cbiAgcHJvdGVjdGVkIGNvbXBvbmVudCA9IHRoaXM7XG5cbiAgcHJvdGVjdGVkIF9pZDogc3RyaW5nIHwgbnVsbDtcbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5faWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgX29wdGlvbnMgPSBzaWduYWwodGhpcy50b2tlbi5vcHRpb25zID8/IHt9KTtcbiAgcHVibGljIG9wdGlvbnMgPSB0aGlzLl9vcHRpb25zLmFzUmVhZG9ubHkoKTtcblxuICBwdWJsaWMgb25PcHRpb25zQ2hhbmdlZCA9IG5ldyBTdWJqZWN0PHsgc2VuZGVyOiBBWFBCYXNlV2lkZ2V0Q29tcG9uZW50IH0+KCk7XG5cbiAgcHJpdmF0ZSBfc3RhdHVzID0gc2lnbmFsPEFYUFdpZGdldFN0YXR1cz4oQVhQV2lkZ2V0U3RhdHVzLlJlbmRlcmluZyk7XG4gIHB1YmxpYyBzdGF0dXMgPSB0aGlzLl9zdGF0dXMuYXNSZWFkb25seSgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBvblN0YXR1c0NoYW5nZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFYUFdpZGdldFN0YXR1cz4odGhpcy5fc3RhdHVzKCkpO1xuXG4gICNzdGF0dXNFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLm5leHQodGhpcy5zdGF0dXMoKSk7XG4gIH0pO1xuXG4gIHB1YmxpYyBpc0J1c3kgPSBjb21wdXRlZCgoKSA9PiBbQVhQV2lkZ2V0U3RhdHVzLlJlbmRlcmluZywgQVhQV2lkZ2V0U3RhdHVzLlByb2Nlc3NpbmddLmluY2x1ZGVzKHRoaXMuc3RhdHVzKCkpKTtcblxuICBwYXJlbnQ6IEFYUExheW91dEJhc2VXaWRnZXRDb21wb25lbnQgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBwYXJlbnRDb21wb25lbnQ6IENvbXBvbmVudFJlZjxhbnk+IHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuICBwYXJlbnRFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGluZGV4OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBtb2RlOiBBWFBXaWRnZXRSZW5kZXJNb2RlO1xuICBsb2NrZWQ6IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIG91dHB1dHMoKTogKHN0cmluZyB8IHsgW25hbWU6IHN0cmluZ106IHVua25vd24gfSlbXSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKGdldCh0aGlzLm5vZGUsICdfX21ldGFfXy5hZGRlZCcpKSB7XG4gICAgICB0aGlzLm9uQWRkZWQoKTtcbiAgICB9XG4gICAgdGhpcy5zZXRTdGF0dXMoQVhQV2lkZ2V0U3RhdHVzLlJlbmRlcmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTdGF0dXMoc3RhdHVzOiBBWFBXaWRnZXRTdGF0dXMpIHtcbiAgICB0aGlzLl9zdGF0dXMuc2V0KHN0YXR1cyk7XG4gICAgdGhpcy5sYXlvdXRTZXJ2aWNlLnVwZGF0ZVN0YXR1cygpO1xuICB9XG5cbiAgcHVibGljIHNldE9wdGlvbnModmFsdWVzOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMub3B0aW9ucygpO1xuICAgIGNvbnN0IHZhbHVlID0gY2xvbmVEZWVwKHZhbHVlcyk7XG4gICAgdGhpcy5fb3B0aW9ucy5zZXQoeyAuLi5vbGRWYWx1ZSwgLi4udmFsdWUgfSk7XG4gICAgdGhpcy5vbk9wdGlvbnNDaGFuZ2VkLm5leHQoeyBzZW5kZXI6IHRoaXMgfSk7XG4gIH1cblxuICBvdXRwdXQ8VCA9IGFueT4obmFtZTogc3RyaW5nKTogVCB7XG4gICAgY29uc3Qgb3V0cHV0cyA9IHRoaXMub3V0cHV0cygpLm1hcCgoYykgPT4gKHR5cGVvZiBjID09ICdzdHJpbmcnID8geyBuYW1lOiBjLCB2YWx1ZTogYyB9IDogYykpIGFzIHtcbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIHZhbHVlOiB1bmtub3duO1xuICAgIH1bXTtcblxuICAgIGlmIChvdXRwdXRzLnNvbWUoKGMpID0+IGMubmFtZSA9PSBuYW1lKSkge1xuICAgICAgY29uc3Qgb3B0ID0gZ2V0KHRoaXMsIG5hbWUpO1xuICAgICAgaWYgKHR5cGVvZiBvcHQgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gb3B0KCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gb3B0O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbCBhcyBUO1xuICB9XG5cbiAgY2FsbChuYW1lOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgY29uc3QgZm4gPSBnZXQodGhpcywgbmFtZSkgYXMgRnVuY3Rpb247XG4gICAgaWYgKGZuICYmIHR5cGVvZiBmbiA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBmbi5iaW5kKHRoaXMpKC4uLmFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBfY2hpbGRyZW4gPSBzaWduYWwodGhpcy50b2tlbi5ub2RlLmNoaWxkcmVuID8/IFtdKTtcbiAgcHJvdGVjdGVkIGNoaWxkcmVuID0gdGhpcy5fY2hpbGRyZW4uYXNSZWFkb25seSgpO1xuXG4gIHNldENoaWxkcmVuKGNoaWxkcmVuOiBBWFBXaWRnZXROb2RlW10pIHtcbiAgICB0aGlzLl9jaGlsZHJlbi5zZXQoWy4uLmNoaWxkcmVuXSk7XG4gIH1cblxuICBvbkFkZGVkKCkge31cblxuICBob3N0Q2xhc3M/KCk6IEFYUENsYXNzTWFwO1xuICBob3N0U3R5bGU/KCk6IEFYUFN0eWxlTWFwO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQTGF5b3V0QmFzZVdpZGdldENvbXBvbmVudCBleHRlbmRzIEFYUEJhc2VXaWRnZXRDb21wb25lbnQge31cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50PFQgPSBhbnkgfCBudWxsPiBleHRlbmRzIEFYUExheW91dEJhc2VXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGF0aCA9IHRoaXMudG9rZW4ubm9kZS5wYXRoO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVmYXVsdFZhbHVlID0gdGhpcy50b2tlbi5kZWZhdWx0VmFsdWUgPz8gdGhpcy50b2tlbi5ub2RlLmRlZmF1bHRWYWx1ZTtcblxuICBwcml2YXRlIF9pc1ZhbHVlV2lkZ2V0ID0gZmFsc2U7XG4gIHByaXZhdGUgaXNWYWx1ZVdpZGdldCA9ICgpID0+IHRoaXMuX2lzVmFsdWVXaWRnZXQ7XG5cbiAgcHVibGljIG9uVmFsdWVDaGFuZ2VkID0gbmV3IFN1YmplY3Q8eyBzZW5kZXI6IEFYUEJhc2VXaWRnZXRDb21wb25lbnQgfT4oKTtcblxuICBwdWJsaWMgZnVsbFBhdGggPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyBwYXJlbnRQYXRoID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2lzVmFsdWVXaWRnZXQgPSB0aGlzLmNvbmZpZy5wcm9wZXJ0aWVzPy5zb21lKChjKSA9PiBjLm5hbWUgPT0gJ3BhdGgnKSA/PyBmYWxzZTtcbiAgICBpZiAodGhpcy5pc1ZhbHVlV2lkZ2V0KCkpIHtcbiAgICAgIHRoaXMuZGV0ZWN0RnVsbFBhdGgoKTtcbiAgICAgIGlmICghaXNOaWwodGhpcy5kZWZhdWx0VmFsdWUpICYmIGlzTmlsKHRoaXMuZ2V0VmFsdWUoKSkpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLmRlZmF1bHRWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vXG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRWYWx1ZSA9IGNvbXB1dGVkPFQ+KFxuICAgICgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmZ1bGxQYXRoKCkgPyB0aGlzLmV4dHJhY3RWYWx1ZSh0aGlzLmZ1bGxQYXRoKCkhKSA6IG51bGw7XG4gICAgfSxcbiAgICB7IGVxdWFsOiBpc0VxdWFsIH0sXG4gICk7XG5cbiAgcHJvdGVjdGVkIHZhbGlkYXRpb25SdWxlcyA9IGNvbXB1dGVkPEFYUFZhbGlkYXRpb25SdWxlcz4oKCkgPT4ge1xuICAgIGNvbnN0IHZhbGlkYXRpb25zUmF3ID0gdGhpcy5vcHRpb25zKClbJ3ZhbGlkYXRpb25zJ107XG4gICAgaWYgKHZhbGlkYXRpb25zUmF3ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5vcHRpb25zKClbJ3ZhbGlkYXRpb25zJ10pXG4gICAgICAuZmlsdGVyKChjKSA9PiBjICE9IG51bGwpXG4gICAgICAubWFwKFxuICAgICAgICAoYzogYW55KSA9PlxuICAgICAgICAgICh7XG4gICAgICAgICAgICBydWxlOiBjLnJ1bGUsXG4gICAgICAgICAgICBtZXNzYWdlOiBjLm1lc3NhZ2UsXG4gICAgICAgICAgICBvcHRpb25zOiBjLm9wdGlvbnMsXG4gICAgICAgICAgfSkgYXMgQVhQVmFsaWRhdGlvblJ1bGUsXG4gICAgICApO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgZXh0cmFjdFZhbHVlKHBhdGg6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3QgcmF3VmFsdWUgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmdldFZhbHVlKHBhdGgpO1xuICAgIGlmICh0aGlzLm5vZGUudmFsdWVUcmFuc2Zvcm1zPy5nZXR0ZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLm5vZGUudmFsdWVUcmFuc2Zvcm1zPy5nZXR0ZXIocmF3VmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gcmF3VmFsdWU7XG4gIH1cblxuICBzZXRWYWx1ZSh2YWx1ZTogVCB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodGhpcy5ub2RlLnZhbHVlVHJhbnNmb3Jtcz8uc2V0dGVyKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMubm9kZS52YWx1ZVRyYW5zZm9ybXM/LnNldHRlcih2YWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgIHZhbHVlID0gaXNVbmRlZmluZWQodmFsdWUpID8gbnVsbCA6IHZhbHVlO1xuICAgIGlmIChpc05pbCh2YWx1ZSkgJiYgaXNOaWwob2xkVmFsdWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChpc0VxdWFsKG9sZFZhbHVlLCB2YWx1ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZnVsbFBhdGgoKSkge1xuICAgICAgdGhpcy5jb250ZXh0U2VydmljZS51cGRhdGUodGhpcy5mdWxsUGF0aCgpISwgdmFsdWUpO1xuICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5uZXh0KHsgc2VuZGVyOiB0aGlzIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGV0ZWN0RnVsbFBhdGgoKSB7XG4gICAgY29uc3Qgc2VjdGlvbnMgPSBbXTtcbiAgICBjb25zdCBpZHMgPSBbXTtcbiAgICAvL1xuICAgIGxldCBwYXJlbnQ6IEFYUExheW91dEJhc2VXaWRnZXRDb21wb25lbnQgfCBudWxsIHwgdW5kZWZpbmVkID0gdGhpcyBhcyBBWFBMYXlvdXRCYXNlV2lkZ2V0Q29tcG9uZW50O1xuICAgIC8vXG4gICAgd2hpbGUgKHBhcmVudCkge1xuICAgICAgY29uc3QgaXNWYWx1ZVdpZGdldCA9IHBhcmVudCBpbnN0YW5jZW9mIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50ICYmIHBhcmVudC5pc1ZhbHVlV2lkZ2V0KCk7XG4gICAgICBjb25zdCB2YWx1ZVBhcmVudCA9IHBhcmVudCBhcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxhbnk+O1xuICAgICAgY29uc3QgcGF0aCA9IHZhbHVlUGFyZW50LnBhdGggPz8gKGlzVmFsdWVXaWRnZXQgPyB2YWx1ZVBhcmVudC5uYW1lIDogbnVsbCk7XG4gICAgICBjb25zdCBpZCA9IHZhbHVlUGFyZW50Lm5hbWU7XG4gICAgICAvL1xuICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgc2VjdGlvbnMucHVzaChwYXRoKTtcbiAgICAgIH1cbiAgICAgIGlmIChwYXJlbnQuaW5kZXggIT0gbnVsbCAmJiBpc1ZhbHVlV2lkZ2V0KSB7XG4gICAgICAgIHNlY3Rpb25zLnB1c2goYFske3BhcmVudC5pbmRleH1dYCk7XG4gICAgICB9XG4gICAgICBpZiAoaWQpIHtcbiAgICAgICAgaWRzLnB1c2goaWQpO1xuICAgICAgICBpZiAocGFyZW50LmluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgICBpZHMucHVzaChgJHtwYXJlbnQuaW5kZXh9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQ7XG4gICAgfVxuICAgIC8vXG4gICAgdGhpcy5mdWxsUGF0aC5zZXQoc2VjdGlvbnMucmV2ZXJzZSgpLmpvaW4oJy4nKSk7XG4gICAgdGhpcy5wYXJlbnRQYXRoLnNldChzZWN0aW9ucy5zbGljZSgwLCBzZWN0aW9ucy5sZW5ndGggLSAxKS5qb2luKCcuJykpO1xuICAgIHRoaXMuX2lkID0gdGhpcy5uYW1lIHx8IHRoaXMucGFyZW50ID8gaWRzLnJldmVyc2UoKS5qb2luKCdfJykgOiBudWxsO1xuICAgIGlmICh0aGlzLl9pZCkge1xuICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLnJlZ2lzdGVyV2lkZ2V0KHRoaXMuX2lkLCB0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8VD4pIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy5zZXRWYWx1ZShlLnZhbHVlKTtcbiAgICB9XG4gIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUERhdGFMaXN0V2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQ8YW55PiB7XG4gIHByaXZhdGUgZGF0YVNlcnZpY2UgPSBpbmplY3QoQVhQRGF0YVNvdXJjZURlZmluaXRpb25Qcm92aWRlclNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCB0ZXh0RmllbGQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHRoaXMub3B0aW9ucygpWyd0ZXh0RmllbGQnXSA/PyAndGl0bGUnKTtcbiAgcHJvdGVjdGVkIHZhbHVlRmllbGQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+ICh0aGlzLm9wdGlvbnMoKVsndmFsdWVGaWVsZCddIGFzIHN0cmluZykgPz8gJ2lkJyk7XG4gIHByb3RlY3RlZCBkYXRhU291cmNlID0gc2lnbmFsPEFYRGF0YVNvdXJjZTxhbnk+Pihjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2U8YW55PihbXSkpO1xuXG4gIHByb3RlY3RlZCBpc1JlYWR5ID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIGNvbnN0IGtleSA9IHRoaXMuZGF0YVNvdXJjZSgpLmNvbmZpZz8ua2V5O1xuICAgIGNvbnN0IHZhbHVlRmllbGQgPSB0aGlzLnZhbHVlRmllbGQoKTtcbiAgICBjb25zdCByZXN1bHQgPSBrZXkgPT0gdmFsdWVGaWVsZDtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcblxuICBwdWJsaWMgc2VsZWN0ZWRJdGVtcyA9IHNpZ25hbDxhbnlbXT4oW10pO1xuXG4gIHByaXZhdGUgcmYgPSBlZmZlY3QoYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHJhd1ZhbHVlID0gdGhpcy5vcHRpb25zKClbJ2RhdGFTb3VyY2UnXTtcbiAgICAvLyBzdGF0aWMgIGRhdGFzb3VyY2UgY2xhc3NcbiAgICBpZiAocmF3VmFsdWUgaW5zdGFuY2VvZiBBWERhdGFTb3VyY2UpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZXQocmF3VmFsdWUpO1xuICAgIH1cbiAgICAvLyBzdGF0aWMgYXJyYXkgZGF0YXNvdXJjZVxuICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocmF3VmFsdWUpKSB7XG4gICAgICBjb25zdCBkcyA9IG5ldyBBWERhdGFTb3VyY2Uoe1xuICAgICAgICBrZXk6IHRoaXMudmFsdWVGaWVsZCgpLFxuICAgICAgICBwYWdlU2l6ZTogMTAsXG4gICAgICAgIGxvYWQ6IGFzeW5jIChlOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCByYXcgPSB0aGlzLm9wdGlvbnMoKVsnZGF0YVNvdXJjZSddO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpdGVtczogcmF3LFxuICAgICAgICAgICAgdG90YWw6IHJhdy5sZW5ndGgsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgYnlLZXk6IChrZXk6IHVua25vd24pID0+IHtcbiAgICAgICAgICBjb25zdCByYXcgPSB0aGlzLm9wdGlvbnMoKVsnZGF0YVNvdXJjZSddO1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSByYXcuZmlsdGVyKChjOiBhbnkpID0+IGNbdGhpcy52YWx1ZUZpZWxkKCldID09IGtleSk7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShpdGVtWzBdKSBhcyBhbnk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZXQoZHMpO1xuICAgIH1cbiAgICAvLyByZXNvbHZlIGRhdGEgc291cmNlIGJ5IG5hbWVcbiAgICBlbHNlIGlmIChyYXdWYWx1ZSAmJiAodHlwZW9mIHJhd1ZhbHVlID09ICdzdHJpbmcnIHx8IHR5cGVvZiByYXdWYWx1ZSA9PSAnb2JqZWN0JykpIHtcbiAgICAgIGNvbnN0IGlkID0gdHlwZW9mIHJhd1ZhbHVlID09ICdvYmplY3QnID8gcmF3VmFsdWVbJ2lkJ10gOiByYXdWYWx1ZTtcbiAgICAgIGNvbnN0IGMgPSBhd2FpdCB0aGlzLmRhdGFTZXJ2aWNlLmdldChpZCk7XG4gICAgICBpZiAodGhpcy5tb2RlID09ICdkZXNpZ25lcicgJiYgYz8uc2FtcGxlcz8ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZXQoXG4gICAgICAgICAgY29udmVydEFycmF5VG9EYXRhU291cmNlKGMuc2FtcGxlcywge1xuICAgICAgICAgICAga2V5OiB0aGlzLnZhbHVlRmllbGQoKSxcbiAgICAgICAgICAgIHBhZ2VTaXplOiA1MDAsXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBkcyA9IGM/LnNvdXJjZSgpO1xuICAgICAgICBpZiAoZHMgJiYgZHMgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgY29uc3QgZCA9IGF3YWl0IGRzO1xuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZXQoZCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZHMpIHtcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2Uuc2V0KGRzKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBlbXB0eSBkYXRhc291cmNlXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZXQoY29udmVydEFycmF5VG9EYXRhU291cmNlPGFueT4oW10pKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBlbXB0eSBkYXRhc291cmNlXG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2Uuc2V0KGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZTxhbnk+KFtdKSk7XG4gICAgfVxuICB9KTtcblxuICBwcm90ZWN0ZWQgYXN5bmMgZXh0cmFjdEl0ZW0oaXRlbTogdW5rbm93bik6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKGlzTmlsKGl0ZW0pKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKGlzT2JqZWN0TGlrZShpdGVtKSAmJiBnZXQoaXRlbSwgdGhpcy50ZXh0RmllbGQoKSkgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfVxuICAgIGNvbnN0IGtleSA9IGV4dHJhY3RWYWx1ZShpdGVtLCB0aGlzLnZhbHVlRmllbGQoKSk7XG4gICAgY29uc3QgZHMgPSB0aGlzLmRhdGFTb3VyY2UoKTtcbiAgICBpZiAoZHMuY29uZmlnPy5ieUtleSkge1xuICAgICAgY29uc3QgZm91bmQgPSBhd2FpdCBkcy5jb25maWc/LmJ5S2V5KGtleSk7XG4gICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgcmV0dXJuIGZvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXNPYmplY3RMaWtlKGl0ZW0pXG4gICAgICA/IGl0ZW1cbiAgICAgIDoge1xuICAgICAgICAgIFt0aGlzLnZhbHVlRmllbGQoKV06IGl0ZW0sXG4gICAgICAgICAgW3RoaXMudGV4dEZpZWxkKCldOiBpdGVtLFxuICAgICAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBlZmZlY3QyID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICBjb25zdCBpdGVtczogYW55W10gPSBbXTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGl0ZW1zLnB1c2goLi4uKGF3YWl0IFByb21pc2UuYWxsKHZhbHVlLm1hcCgoaXRlbTogYW55KSA9PiB0aGlzLmV4dHJhY3RJdGVtKGl0ZW0pKSkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaXRlbXMucHVzaChhd2FpdCB0aGlzLmV4dHJhY3RJdGVtKHZhbHVlKSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zZXQoaXRlbXMuZmlsdGVyKChjKSA9PiBjICE9IG51bGwpKTtcbiAgfSk7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBDb2x1bW5XaWRnZXRDb21wb25lbnQ8VCA9IGFueSB8IG51bGwgfCB2b2lkPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdG9rZW4gPSBpbmplY3QoQVhQX1dJREdFVF9DT0xVTU5fVE9LRU4pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBwYXRoID0gdGhpcy50b2tlbi5wYXRoO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3B0aW9ucyA9IHRoaXMudG9rZW4ub3B0aW9ucyA/PyB7fTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJhd1ZhbHVlOiBUID0gbnVsbCBhcyBUO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm93RGF0YTogYW55O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbnVsbFRleHQ6IGFueSA9IHRoaXMub3B0aW9uc1snbnVsbFRleHQnXSBhcyBzdHJpbmc7XG4gIHByb3RlY3RlZCByZWFkb25seSBudWxsVmFsdWU6IFQgPSB0aGlzLm9wdGlvbnNbJ251bGxWYWx1ZSddIGFzIFQ7XG5cbiAgcHJvdGVjdGVkIHZhbHVlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmIChpc05pbCh0aGlzLnJhd1ZhbHVlKSAmJiAhaXNOaWwodGhpcy5udWxsVmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5udWxsVmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJhd1ZhbHVlO1xuICB9KTtcbn1cbiJdfQ==","import { computed, Injectable } from '@angular/core';\nimport { AXPLayoutBaseWidgetComponent } from '../widget-base.component';\nimport * as i0 from \"@angular/core\";\nexport class AXPBoxModelLayoutWidgetComponent extends AXPLayoutBaseWidgetComponent {\n constructor() {\n super(...arguments);\n this.hostBoxStyle = computed(() => {\n const options = this.options();\n const style = {};\n const spacing = options?.['spacing'];\n const border = options?.['border'];\n const backgroundColor = options?.['backgroundColor'];\n const direction = options?.['direction'];\n const overflow = options?.['overflow'];\n const overflowX = options?.['overflowX'];\n const overflowY = options?.['overflowY'];\n style['background-color'] = backgroundColor ?? '';\n style['padding'] = spacing?.padding ?? '';\n style['margin'] = spacing?.margin ?? '';\n style['border-radius'] = border?.radius ?? '';\n style['border-width'] = border?.width ?? '';\n style['border-color'] = border?.color ?? '';\n style['border-style'] = border?.style ?? '';\n style['overflow'] = overflow ?? '';\n style['overflow-x'] = overflowX ?? '';\n style['overflow-y'] = overflowY ?? '';\n style['direction'] = direction ?? '';\n return style;\n }, ...(ngDevMode ? [{ debugName: \"hostBoxStyle\" }] : []));\n this.blockStyle = computed(() => {\n const options = this.options();\n const style = { ...this.hostBoxStyle() };\n const width = options?.['width'];\n const minWidth = options?.['minWidth'];\n const maxWidth = options?.['maxWidth'];\n const height = options?.['height'];\n const minHeight = options?.['minHeight'];\n const maxHeight = options?.['maxHeight'];\n style['min-width'] = minWidth ?? '';\n style['width'] = width ?? '';\n style['max-width'] = maxWidth ?? '';\n style['min-height'] = minHeight ?? '';\n style['height'] = height ?? '';\n style['max-height'] = maxHeight ?? '';\n return style;\n }, ...(ngDevMode ? [{ debugName: \"blockStyle\" }] : []));\n this.inlineStyle = computed(() => {\n return { ...this.hostBoxStyle() };\n }, ...(ngDevMode ? [{ debugName: \"inlineStyle\" }] : []));\n this.blockClass = computed(() => {\n return {\n 'ax-block': true,\n 'ax-w-full': true,\n // 'ax-widget-outline': true,\n };\n }, ...(ngDevMode ? [{ debugName: \"blockClass\" }] : []));\n this.inlineClass = computed(() => {\n return {\n 'ax-inline-block': true,\n };\n }, ...(ngDevMode ? [{ debugName: \"inlineClass\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBoxModelLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBoxModelLayoutWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBoxModelLayoutWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LW1vZGVsLXdpZGdldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci9iYXNlLXdpZGdldC9ib3gtbW9kZWwtd2lkZ2V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQWUsNEJBQTRCLEVBQWUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFHbEcsTUFBTSxPQUFnQixnQ0FBaUMsU0FBUSw0QkFBNEI7SUFEM0Y7O1FBRVMsaUJBQVksR0FBRyxRQUFRLENBQWMsR0FBRyxFQUFFO1lBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUUvQixNQUFNLEtBQUssR0FBb0MsRUFBRSxDQUFDO1lBRWxELE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBb0MsQ0FBQztZQUN4RSxNQUFNLE1BQU0sR0FBRyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQW1DLENBQUM7WUFFckUsTUFBTSxlQUFlLEdBQUcsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQXVCLENBQUM7WUFDM0UsTUFBTSxTQUFTLEdBQUcsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUF1QixDQUFDO1lBRS9ELE1BQU0sUUFBUSxHQUFHLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBdUIsQ0FBQztZQUM3RCxNQUFNLFNBQVMsR0FBRyxPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQXVCLENBQUM7WUFDL0QsTUFBTSxTQUFTLEdBQUcsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUF1QixDQUFDO1lBRS9ELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLGVBQWUsSUFBSSxFQUFFLENBQUM7WUFDbEQsS0FB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O2tCQURyRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEJvcmRlckJveFN0cmluZywgQVhQU3BhY2luZ0JveFN0cmluZyB9IGZyb20gJy4uL2hlbHBlcic7XG5pbXBvcnQgeyBBWFBDbGFzc01hcCwgQVhQTGF5b3V0QmFzZVdpZGdldENvbXBvbmVudCwgQVhQU3R5bGVNYXAgfSBmcm9tICcuLi93aWRnZXQtYmFzZS5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQQm94TW9kZWxMYXlvdXRXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBBWFBMYXlvdXRCYXNlV2lkZ2V0Q29tcG9uZW50IHtcbiAgcHVibGljIGhvc3RCb3hTdHlsZSA9IGNvbXB1dGVkPEFYUFN0eWxlTWFwPigoKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucygpO1xuXG4gICAgY29uc3Qgc3R5bGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4gPSB7fTtcblxuICAgIGNvbnN0IHNwYWNpbmcgPSBvcHRpb25zPy5bJ3NwYWNpbmcnXSBhcyBBWFBTcGFjaW5nQm94U3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGJvcmRlciA9IG9wdGlvbnM/LlsnYm9yZGVyJ10gYXMgQVhQQm9yZGVyQm94U3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgYmFja2dyb3VuZENvbG9yID0gb3B0aW9ucz8uWydiYWNrZ3JvdW5kQ29sb3InXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgZGlyZWN0aW9uID0gb3B0aW9ucz8uWydkaXJlY3Rpb24nXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBvdmVyZmxvdyA9IG9wdGlvbnM/Llsnb3ZlcmZsb3cnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgY29uc3Qgb3ZlcmZsb3dYID0gb3B0aW9ucz8uWydvdmVyZmxvd1gnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgY29uc3Qgb3ZlcmZsb3dZID0gb3B0aW9ucz8uWydvdmVyZmxvd1knXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBzdHlsZVsnYmFja2dyb3VuZC1jb2xvciddID0gYmFja2dyb3VuZENvbG9yID8/ICcnO1xuICAgIHN0eWxlWydwYWRkaW5nJ10gPSBzcGFjaW5nPy5wYWRkaW5nID8/ICcnO1xuICAgIHN0eWxlWydtYXJnaW4nXSA9IHNwYWNpbmc/Lm1hcmdpbiA/PyAnJztcblxuICAgIHN0eWxlWydib3JkZXItcmFkaXVzJ10gPSBib3JkZXI/LnJhZGl1cyA/PyAnJztcbiAgICBzdHlsZVsnYm9yZGVyLXdpZHRoJ10gPSBib3JkZXI/LndpZHRoID8/ICcnO1xuICAgIHN0eWxlWydib3JkZXItY29sb3InXSA9IGJvcmRlcj8uY29sb3IgPz8gJyc7XG4gICAgc3R5bGVbJ2JvcmRlci1zdHlsZSddID0gYm9yZGVyPy5zdHlsZSA/PyAnJztcblxuICAgIHN0eWxlWydvdmVyZmxvdyddID0gb3ZlcmZsb3cgPz8gJyc7XG4gICAgc3R5bGVbJ292ZXJmbG93LXgnXSA9IG92ZXJmbG93WCA/PyAnJztcbiAgICBzdHlsZVsnb3ZlcmZsb3cteSddID0gb3ZlcmZsb3dZID8/ICcnO1xuXG4gICAgc3R5bGVbJ2RpcmVjdGlvbiddID0gZGlyZWN0aW9uID8/ICcnO1xuXG4gICAgcmV0dXJuIHN0eWxlO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgYmxvY2tTdHlsZSA9IGNvbXB1dGVkPEFYUFN0eWxlTWFwPigoKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucygpO1xuXG4gICAgY29uc3Qgc3R5bGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4gPSB7IC4uLnRoaXMuaG9zdEJveFN0eWxlKCkgfTtcblxuICAgIGNvbnN0IHdpZHRoID0gb3B0aW9ucz8uWyd3aWR0aCddIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBtaW5XaWR0aCA9IG9wdGlvbnM/LlsnbWluV2lkdGgnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgbWF4V2lkdGggPSBvcHRpb25zPy5bJ21heFdpZHRoJ10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgaGVpZ2h0ID0gb3B0aW9ucz8uWydoZWlnaHQnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgbWluSGVpZ2h0ID0gb3B0aW9ucz8uWydtaW5IZWlnaHQnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgbWF4SGVpZ2h0ID0gb3B0aW9ucz8uWydtYXhIZWlnaHQnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBzdHlsZVsnbWluLXdpZHRoJ10gPSBtaW5XaWR0aCA/PyAnJztcbiAgICBzdHlsZVsnd2lkdGgnXSA9IHdpZHRoID8/ICcnO1xuICAgIHN0eWxlWydtYXgtd2lkdGgnXSA9IG1heFdpZHRoID8/ICcnO1xuXG4gICAgc3R5bGVbJ21pbi1oZWlnaHQnXSA9IG1pbkhlaWdodCA/PyAnJztcbiAgICBzdHlsZVsnaGVpZ2h0J10gPSBoZWlnaHQgPz8gJyc7XG4gICAgc3R5bGVbJ21heC1oZWlnaHQnXSA9IG1heEhlaWdodCA/PyAnJztcblxuICAgIHJldHVybiBzdHlsZTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGlubGluZVN0eWxlID0gY29tcHV0ZWQ8QVhQU3R5bGVNYXA+KCgpID0+IHtcbiAgICByZXR1cm4geyAuLi50aGlzLmhvc3RCb3hTdHlsZSgpIH07XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBibG9ja0NsYXNzID0gY29tcHV0ZWQ8QVhQQ2xhc3NNYXA+KCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2F4LWJsb2NrJzogdHJ1ZSxcbiAgICAgICdheC13LWZ1bGwnOiB0cnVlLFxuICAgICAgLy8gJ2F4LXdpZGdldC1vdXRsaW5lJzogdHJ1ZSxcbiAgICB9O1xuICB9KTtcblxuICBwcm90ZWN0ZWQgaW5saW5lQ2xhc3MgPSBjb21wdXRlZDxBWFBDbGFzc01hcD4oKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAnYXgtaW5saW5lLWJsb2NrJzogdHJ1ZSxcbiAgICB9O1xuICB9KTtcbn1cbiJdfQ==","import { Injectable, computed } from '@angular/core';\nimport { AXPBoxModelLayoutWidgetComponent } from './box-model-widget.component';\nimport * as i0 from \"@angular/core\";\nexport class AXPBlockBaseLayoutWidgetComponent extends AXPBoxModelLayoutWidgetComponent {\n constructor() {\n super(...arguments);\n this.hostClass = computed(() => this.blockClass(), ...(ngDevMode ? [{ debugName: \"hostClass\" }] : []));\n this.hostStyle = computed(() => this.blockStyle(), ...(ngDevMode ? [{ debugName: \"hostStyle\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBlockBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBlockBaseLayoutWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPBlockBaseLayoutWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYmFzZS13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvYmFzZS13aWRnZXQvYmxvY2stYmFzZS13aWRnZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUdoRixNQUFNLE9BQWdCLGlDQUFrQyxTQUFRLGdDQUFnQztJQURoRzs7UUFFa0IsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLHFEQUFDLENBQUM7UUFDOUMsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLHFEQUFDLENBQUM7S0FDL0Q7OEdBSHFCLGlDQUFpQztrSEFBakMsaUNBQWlDOzsyRkFBakMsaUNBQWlDO2tCQUR0RCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEJveE1vZGVsTGF5b3V0V2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi9ib3gtbW9kZWwtd2lkZ2V0LmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBCbG9ja0Jhc2VMYXlvdXRXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBBWFBCb3hNb2RlbExheW91dFdpZGdldENvbXBvbmVudCB7XG4gIHB1YmxpYyBvdmVycmlkZSBob3N0Q2xhc3MgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmJsb2NrQ2xhc3MoKSk7XG4gIHB1YmxpYyBvdmVycmlkZSBob3N0U3R5bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmJsb2NrU3R5bGUoKSk7XG59XG4iXX0=","import { Injectable, computed } from '@angular/core';\nimport { isNil } from 'lodash-es';\nimport { AXPBlockBaseLayoutWidgetComponent } from './block-base-widget.component';\nimport * as i0 from \"@angular/core\";\nexport class AXPFlexBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent {\n constructor() {\n super(...arguments);\n this.flex = computed(() => this.options(), ...(ngDevMode ? [{ debugName: \"flex\" }] : []));\n this.hostFlexStyle = computed(() => {\n const blockStyle = this.blockStyle();\n const style = { ...blockStyle };\n const flex = this.flex();\n if (isNil(flex?.flexDirection)) {\n style['flex-direction'] = '';\n }\n else {\n style['flex-direction'] = flex.flexDirection;\n }\n if (isNil(flex?.flexWrap)) {\n style['flex-wrap'] = '';\n }\n else {\n style['flex-wrap'] = flex.flexWrap;\n }\n //TODO NEED TO FIX LATER\n style['overflow'] = flex?.flexWrap === 'nowrap' ? 'auto' : '';\n //END\n if (isNil(flex?.justifyContent)) {\n style['justify-content'] = '';\n }\n else {\n style['justify-content'] = flex.justifyContent;\n }\n if (isNil(flex?.alignItems)) {\n style['align-items'] = '';\n }\n else {\n style['align-items'] = flex.alignItems;\n }\n if (isNil(flex?.gap)) {\n style['gap'] = '';\n }\n else {\n style['gap'] = flex.gap;\n }\n return style;\n }, ...(ngDevMode ? [{ debugName: \"hostFlexStyle\" }] : []));\n this.hostFlexClass = computed(() => {\n return {\n ...this.blockClass(),\n 'ax-flex': true,\n 'ax-h-full': true,\n };\n }, ...(ngDevMode ? [{ debugName: \"hostFlexClass\" }] : []));\n this.hostClass = computed(() => {\n return this.hostFlexClass();\n }, ...(ngDevMode ? [{ debugName: \"hostClass\" }] : []));\n this.hostStyle = computed(() => {\n return this.hostFlexStyle();\n }, ...(ngDevMode ? [{ debugName: \"hostStyle\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPFlexBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPFlexBaseLayoutWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPFlexBaseLayoutWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxleC1iYXNlLXdpZGdldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci9iYXNlLXdpZGdldC9mbGV4LWJhc2Utd2lkZ2V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWxDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUdsRixNQUFNLE9BQWdCLGdDQUFpQyxTQUFRLGlDQUFpQztJQURoRzs7UUFFWSxTQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQWtDLGdEQUFDLENBQUM7UUFFekUsa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ25DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQyxNQUFNLEtBQUssR0FBb0MsRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFDO1lBQ2pFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQy9CLENBQUM7aUJBQU0sQ0FBQztnQkFDTixLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQy9DLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDMUIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMxQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDckMsQ0FBQztZQUNELHdCQUF3QjtZQUN4QixLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxFQUFFLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzlELEtBQUs7WUFDTCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2hDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ2pELENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM1QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDekMsQ0FBQztZQUNELElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNyQixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUMxQixDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLHlEQUFDLENBQUM7UUFFSSxrQkFBYSxHQUFHLFFBQVEsQ0FBMEIsR0FBRyxFQUFFO1lBQzVELE9BQU87Z0JBQ0wsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixTQUFTLEVBQUUsSUFBSTtnQkFDZixXQUFXLEVBQUUsSUFBSTthQUNsQixDQUFDO1FBQ0osQ0FBQyx5REFBQyxDQUFDO1FBRWEsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxxREFBQyxDQUFDO1FBRWEsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxxREFBQyxDQUFDO0tBQ0o7OEdBckRxQixnQ0FBZ0M7a0hBQWhDLGdDQUFnQzs7MkZBQWhDLGdDQUFnQztrQkFEckQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBGbGV4Qm94U3RyaW5nIH0gZnJvbSAnLi4vaGVscGVyJztcbmltcG9ydCB7IEFYUEJsb2NrQmFzZUxheW91dFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4vYmxvY2stYmFzZS13aWRnZXQuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUEZsZXhCYXNlTGF5b3V0V2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgQVhQQmxvY2tCYXNlTGF5b3V0V2lkZ2V0Q29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIGZsZXggPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKSBhcyBBWFBGbGV4Qm94U3RyaW5nIHwgdW5kZWZpbmVkKTtcblxuICBwdWJsaWMgaG9zdEZsZXhTdHlsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBibG9ja1N0eWxlID0gdGhpcy5ibG9ja1N0eWxlKCk7XG4gICAgY29uc3Qgc3R5bGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4gPSB7IC4uLmJsb2NrU3R5bGUgfTtcbiAgICBjb25zdCBmbGV4ID0gdGhpcy5mbGV4KCk7XG4gICAgaWYgKGlzTmlsKGZsZXg/LmZsZXhEaXJlY3Rpb24pKSB7XG4gICAgICBzdHlsZVsnZmxleC1kaXJlY3Rpb24nXSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZVsnZmxleC1kaXJlY3Rpb24nXSA9IGZsZXguZmxleERpcmVjdGlvbjtcbiAgICB9XG4gICAgaWYgKGlzTmlsKGZsZXg/LmZsZXhXcmFwKSkge1xuICAgICAgc3R5bGVbJ2ZsZXgtd3JhcCddID0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlWydmbGV4LXdyYXAnXSA9IGZsZXguZmxleFdyYXA7XG4gICAgfVxuICAgIC8vVE9ETyBORUVEIFRPIEZJWCBMQVRFUlxuICAgIHN0eWxlWydvdmVyZmxvdyddID0gZmxleD8uZmxleFdyYXAgPT09ICdub3dyYXAnID8gJ2F1dG8nIDogJyc7XG4gICAgLy9FTkRcbiAgICBpZiAoaXNOaWwoZmxleD8uanVzdGlmeUNvbnRlbnQpKSB7XG4gICAgICBzdHlsZVsnanVzdGlmeS1jb250ZW50J10gPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGVbJ2p1c3RpZnktY29udGVudCddID0gZmxleC5qdXN0aWZ5Q29udGVudDtcbiAgICB9XG4gICAgaWYgKGlzTmlsKGZsZXg/LmFsaWduSXRlbXMpKSB7XG4gICAgICBzdHlsZVsnYWxpZ24taXRlbXMnXSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZVsnYWxpZ24taXRlbXMnXSA9IGZsZXguYWxpZ25JdGVtcztcbiAgICB9XG4gICAgaWYgKGlzTmlsKGZsZXg/LmdhcCkpIHtcbiAgICAgIHN0eWxlWydnYXAnXSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZVsnZ2FwJ10gPSBmbGV4LmdhcDtcbiAgICB9XG4gICAgcmV0dXJuIHN0eWxlO1xuICB9KTtcblxuICBwdWJsaWMgaG9zdEZsZXhDbGFzcyA9IGNvbXB1dGVkPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PigoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuYmxvY2tDbGFzcygpLFxuICAgICAgJ2F4LWZsZXgnOiB0cnVlLFxuICAgICAgJ2F4LWgtZnVsbCc6IHRydWUsXG4gICAgfTtcbiAgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGhvc3RDbGFzcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5ob3N0RmxleENsYXNzKCk7XG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBob3N0U3R5bGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdEZsZXhTdHlsZSgpO1xuICB9KTtcbn1cbiJdfQ==","import { computed, Injectable } from '@angular/core';\nimport { AXPBoxModelLayoutWidgetComponent } from './box-model-widget.component';\nimport * as i0 from \"@angular/core\";\nexport class AXPInlineBaseLayoutWidgetComponent extends AXPBoxModelLayoutWidgetComponent {\n constructor() {\n super(...arguments);\n this.hostClass = computed(() => this.inlineClass(), ...(ngDevMode ? [{ debugName: \"hostClass\" }] : []));\n this.hostStyle = computed(() => this.inlineStyle(), ...(ngDevMode ? [{ debugName: \"hostStyle\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPInlineBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPInlineBaseLayoutWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPInlineBaseLayoutWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWJhc2Utd2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL2Jhc2Utd2lkZ2V0L2lubGluZS1iYXNlLXdpZGdldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBR2hGLE1BQU0sT0FBZ0Isa0NBQW1DLFNBQVEsZ0NBQWdDO0lBRGpHOztRQUVrQixjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUscURBQUMsQ0FBQztRQUMvQyxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUscURBQUMsQ0FBQztLQUNoRTs4R0FIcUIsa0NBQWtDO2tIQUFsQyxrQ0FBa0M7OzJGQUFsQyxrQ0FBa0M7a0JBRHZELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQQm94TW9kZWxMYXlvdXRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL2JveC1tb2RlbC13aWRnZXQuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUElubGluZUJhc2VMYXlvdXRXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBBWFBCb3hNb2RlbExheW91dFdpZGdldENvbXBvbmVudCB7XG4gIHB1YmxpYyBvdmVycmlkZSBob3N0Q2xhc3MgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmlubGluZUNsYXNzKCkpO1xuICBwdWJsaWMgb3ZlcnJpZGUgaG9zdFN0eWxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pbmxpbmVTdHlsZSgpKTtcbn1cbiJdfQ==","import { Injectable, computed } from '@angular/core';\nimport { isNil } from 'lodash-es';\nimport { AXPInlineBaseLayoutWidgetComponent } from './inline-base-widget.component';\nimport * as i0 from \"@angular/core\";\nexport class AXPFlexItemBaseLayoutWidgetComponent extends AXPInlineBaseLayoutWidgetComponent {\n constructor() {\n super(...arguments);\n this.flexItem = computed(() => this.options(), ...(ngDevMode ? [{ debugName: \"flexItem\" }] : []));\n this.hostFlexItemStyle = computed(() => {\n const inlineStyle = this.blockStyle();\n const style = { ...inlineStyle };\n const fi = this.flexItem();\n if (isNil(fi?.order)) {\n style['order'] = '';\n }\n else {\n style['order'] = fi.order;\n }\n if (isNil(fi?.grow)) {\n style['flex-grow'] = '';\n }\n else {\n style['flex-grow'] = fi.grow;\n }\n if (isNil(fi?.shrink)) {\n style['flex-shrink'] = '';\n }\n else {\n style['flex-shrink'] = fi.shrink;\n }\n if (isNil(fi?.basis)) {\n style['flex-basis'] = '';\n }\n else {\n style['flex-basis'] = fi.basis;\n }\n if (isNil(fi?.alignSelf)) {\n style['align-self'] = '';\n }\n else {\n style['align-self'] = fi.alignSelf;\n }\n return style;\n }, ...(ngDevMode ? [{ debugName: \"hostFlexItemStyle\" }] : []));\n this.hostFlexItemClass = computed(() => {\n return {\n ...this.blockClass(),\n };\n }, ...(ngDevMode ? [{ debugName: \"hostFlexItemClass\" }] : []));\n this.hostClass = computed(() => {\n return this.hostFlexItemClass();\n }, ...(ngDevMode ? [{ debugName: \"hostClass\" }] : []));\n this.hostStyle = computed(() => {\n return this.hostFlexItemStyle();\n }, ...(ngDevMode ? [{ debugName: \"hostStyle\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPFlexItemBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPFlexItemBaseLayoutWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPFlexItemBaseLayoutWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxleC1pdGVtLWJhc2Utd2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL2Jhc2Utd2lkZ2V0L2ZsZXgtaXRlbS1iYXNlLXdpZGdldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVsQyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFHcEYsTUFBTSxPQUFnQixvQ0FBcUMsU0FBUSxrQ0FBa0M7SUFEckc7O1FBRVksYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFzQyxvREFBQyxDQUFDO1FBRWpGLHNCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sS0FBSyxHQUFvQyxFQUFFLEdBQUcsV0FBVyxFQUFFLENBQUM7WUFDbEUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNyQixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUM1QixDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3BCLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDMUIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQy9CLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM1QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDbkMsQ0FBQztZQUNELElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNyQixLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzNCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNqQyxDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDM0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ3JDLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsNkRBQUMsQ0FBQztRQUVJLHNCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsT0FBTztnQkFDTCxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUU7YUFDckIsQ0FBQztRQUNKLENBQUMsNkRBQUMsQ0FBQztRQUVhLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDbEMsQ0FBQyxxREFBQyxDQUFDO1FBRWEsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNsQyxDQUFDLHFEQUFDLENBQUM7S0FDSjs4R0FoRHFCLG9DQUFvQztrSEFBcEMsb0NBQW9DOzsyRkFBcEMsb0NBQW9DO2tCQUR6RCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzTmlsIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUEZsZXhJdGVtQm94U3RyaW5nIH0gZnJvbSAnLi4vaGVscGVyJztcbmltcG9ydCB7IEFYUElubGluZUJhc2VMYXlvdXRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL2lubGluZS1iYXNlLXdpZGdldC5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQRmxleEl0ZW1CYXNlTGF5b3V0V2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgQVhQSW5saW5lQmFzZUxheW91dFdpZGdldENvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBmbGV4SXRlbSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpIGFzIEFYUEZsZXhJdGVtQm94U3RyaW5nIHwgdW5kZWZpbmVkKTtcblxuICBwdWJsaWMgaG9zdEZsZXhJdGVtU3R5bGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgaW5saW5lU3R5bGUgPSB0aGlzLmJsb2NrU3R5bGUoKTtcbiAgICBjb25zdCBzdHlsZTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPiA9IHsgLi4uaW5saW5lU3R5bGUgfTtcbiAgICBjb25zdCBmaSA9IHRoaXMuZmxleEl0ZW0oKTtcbiAgICBpZiAoaXNOaWwoZmk/Lm9yZGVyKSkge1xuICAgICAgc3R5bGVbJ29yZGVyJ10gPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGVbJ29yZGVyJ10gPSBmaS5vcmRlcjtcbiAgICB9XG4gICAgaWYgKGlzTmlsKGZpPy5ncm93KSkge1xuICAgICAgc3R5bGVbJ2ZsZXgtZ3JvdyddID0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlWydmbGV4LWdyb3cnXSA9IGZpLmdyb3c7XG4gICAgfVxuICAgIGlmIChpc05pbChmaT8uc2hyaW5rKSkge1xuICAgICAgc3R5bGVbJ2ZsZXgtc2hyaW5rJ10gPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGVbJ2ZsZXgtc2hyaW5rJ10gPSBmaS5zaHJpbms7XG4gICAgfVxuICAgIGlmIChpc05pbChmaT8uYmFzaXMpKSB7XG4gICAgICBzdHlsZVsnZmxleC1iYXNpcyddID0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlWydmbGV4LWJhc2lzJ10gPSBmaS5iYXNpcztcbiAgICB9XG4gICAgaWYgKGlzTmlsKGZpPy5hbGlnblNlbGYpKSB7XG4gICAgICBzdHlsZVsnYWxpZ24tc2VsZiddID0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlWydhbGlnbi1zZWxmJ10gPSBmaS5hbGlnblNlbGY7XG4gICAgfVxuICAgIHJldHVybiBzdHlsZTtcbiAgfSk7XG5cbiAgcHVibGljIGhvc3RGbGV4SXRlbUNsYXNzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmJsb2NrQ2xhc3MoKSxcbiAgICB9O1xuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgaG9zdENsYXNzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmhvc3RGbGV4SXRlbUNsYXNzKCk7XG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBob3N0U3R5bGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdEZsZXhJdGVtU3R5bGUoKTtcbiAgfSk7XG59XG4iXX0=","import { Injectable, computed } from '@angular/core';\nimport { AXPBlockBaseLayoutWidgetComponent } from './block-base-widget.component';\nimport * as i0 from \"@angular/core\";\nexport class AXPGridBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent {\n constructor() {\n super(...arguments);\n this.grid = computed(() => this.options()?.['grid'], ...(ngDevMode ? [{ debugName: \"grid\" }] : []));\n this.hostGridStyle = computed(() => {\n const style = { ...this.inlineStyle() };\n const g = this.grid()?.default;\n if (g?.gap)\n style['gap'] = g.gap;\n return style;\n }, ...(ngDevMode ? [{ debugName: \"hostGridStyle\" }] : []));\n this.hostGridClass = computed(() => {\n const cls = {\n ...this.inlineClass(),\n 'ax-grid': true,\n };\n const g = this.grid()?.default;\n if (g?.columns)\n cls[`lg:ax-grid-cols-${g.columns}`] = true;\n if (g?.rows)\n cls[`lg:ax-grid-rows-${g.rows}`] = true;\n if (g?.justifyItems)\n cls[`lg:ax-justify-items-${g.justifyItems}`] = true;\n if (g?.alignItems)\n cls[`lg:ax-align-items-${g.alignItems}`] = true;\n if (g?.autoFlow)\n cls[`lg:ax-grid-flow-${g.autoFlow}`] = true;\n return cls;\n }, ...(ngDevMode ? [{ debugName: \"hostGridClass\" }] : []));\n this.hostClass = computed(() => this.hostGridClass(), ...(ngDevMode ? [{ debugName: \"hostClass\" }] : []));\n this.hostStyle = computed(() => this.hostGridStyle(), ...(ngDevMode ? [{ debugName: \"hostStyle\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPGridBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPGridBaseLayoutWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPGridBaseLayoutWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1iYXNlLXdpZGdldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci9iYXNlLXdpZGdldC9ncmlkLWJhc2Utd2lkZ2V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFHbEYsTUFBTSxPQUFnQixnQ0FBaUMsU0FBUSxpQ0FBaUM7SUFEaEc7O1FBRVUsU0FBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQXdDLGdEQUFDLENBQUM7UUFFeEYsa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ25DLE1BQU0sS0FBSyxHQUFvQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDekUsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQztZQUUvQixJQUFJLENBQUMsRUFBRSxHQUFHO2dCQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBRWpDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyx5REFBQyxDQUFDO1FBRUksa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ25DLE1BQU0sR0FBRyxHQUE0QjtnQkFDbkMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNyQixTQUFTLEVBQUUsSUFBSTthQUNoQixDQUFDO1lBRUYsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQztZQUUvQixJQUFJLENBQUMsRUFBRSxPQUFPO2dCQUFFLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQzNELElBQUksQ0FBQyxFQUFFLElBQUk7Z0JBQUUsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDckQsSUFBSSxDQUFDLEVBQUUsWUFBWTtnQkFBRSxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUN6RSxJQUFJLENBQUMsRUFBRSxVQUFVO2dCQUFFLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ25FLElBQUksQ0FBQyxFQUFFLFFBQVE7Z0JBQUUsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7WUFFN0QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLHlEQUFDLENBQUM7UUFFYSxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUscURBQUMsQ0FBQztRQUNqRCxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUscURBQUMsQ0FBQztLQUNsRTs4R0EvQnFCLGdDQUFnQztrSEFBaEMsZ0NBQWdDOzsyRkFBaEMsZ0NBQWdDO2tCQURyRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEdyaWRCcmVha3BvaW50VmFsdWVzIH0gZnJvbSAnLi4vaGVscGVyJztcbmltcG9ydCB7IEFYUEJsb2NrQmFzZUxheW91dFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4vYmxvY2stYmFzZS13aWRnZXQuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUEdyaWRCYXNlTGF5b3V0V2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgQVhQQmxvY2tCYXNlTGF5b3V0V2lkZ2V0Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBncmlkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCk/LlsnZ3JpZCddIGFzIEFYUEdyaWRCcmVha3BvaW50VmFsdWVzIHwgdW5kZWZpbmVkKTtcblxuICBwdWJsaWMgaG9zdEdyaWRTdHlsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzdHlsZTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPiA9IHsgLi4udGhpcy5pbmxpbmVTdHlsZSgpIH07XG4gICAgY29uc3QgZyA9IHRoaXMuZ3JpZCgpPy5kZWZhdWx0O1xuXG4gICAgaWYgKGc/LmdhcCkgc3R5bGVbJ2dhcCddID0gZy5nYXA7XG5cbiAgICByZXR1cm4gc3R5bGU7XG4gIH0pO1xuXG4gIHB1YmxpYyBob3N0R3JpZENsYXNzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNsczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7XG4gICAgICAuLi50aGlzLmlubGluZUNsYXNzKCksXG4gICAgICAnYXgtZ3JpZCc6IHRydWUsXG4gICAgfTtcblxuICAgIGNvbnN0IGcgPSB0aGlzLmdyaWQoKT8uZGVmYXVsdDtcblxuICAgIGlmIChnPy5jb2x1bW5zKSBjbHNbYGxnOmF4LWdyaWQtY29scy0ke2cuY29sdW1uc31gXSA9IHRydWU7XG4gICAgaWYgKGc/LnJvd3MpIGNsc1tgbGc6YXgtZ3JpZC1yb3dzLSR7Zy5yb3dzfWBdID0gdHJ1ZTtcbiAgICBpZiAoZz8uanVzdGlmeUl0ZW1zKSBjbHNbYGxnOmF4LWp1c3RpZnktaXRlbXMtJHtnLmp1c3RpZnlJdGVtc31gXSA9IHRydWU7XG4gICAgaWYgKGc/LmFsaWduSXRlbXMpIGNsc1tgbGc6YXgtYWxpZ24taXRlbXMtJHtnLmFsaWduSXRlbXN9YF0gPSB0cnVlO1xuICAgIGlmIChnPy5hdXRvRmxvdykgY2xzW2BsZzpheC1ncmlkLWZsb3ctJHtnLmF1dG9GbG93fWBdID0gdHJ1ZTtcblxuICAgIHJldHVybiBjbHM7XG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBob3N0Q2xhc3MgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmhvc3RHcmlkQ2xhc3MoKSk7XG4gIHB1YmxpYyBvdmVycmlkZSBob3N0U3R5bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmhvc3RHcmlkU3R5bGUoKSk7XG59XG4iXX0=","import { Injectable, computed } from '@angular/core';\nimport { AXPFlexBaseLayoutWidgetComponent } from './flex-base-widget.component';\nimport * as i0 from \"@angular/core\";\nexport class AXPGridItemBaseLayoutWidgetComponent extends AXPFlexBaseLayoutWidgetComponent {\n constructor() {\n super(...arguments);\n this.gridItem = computed(() => this.options(), ...(ngDevMode ? [{ debugName: \"gridItem\" }] : []));\n this.hostGridItemStyle = computed(() => {\n const style = { ...this.hostFlexStyle() };\n const g = this.gridItem();\n if (g?.alignSelf)\n style['align-self'] = g.alignSelf;\n if (g?.justifySelf)\n style['justify-self'] = g.justifySelf;\n return style;\n }, ...(ngDevMode ? [{ debugName: \"hostGridItemStyle\" }] : []));\n this.hostGridItemClass = computed(() => {\n const cls = { ...this.hostFlexClass() };\n const g = this.gridItem();\n if (g?.colSpan)\n cls[`lg:ax-col-span-${g.colSpan}`] = true;\n if (g?.colStart)\n cls[`lg:ax-col-start-${g.colStart}`] = true;\n if (g?.colEnd)\n cls[`lg:ax-col-end-${g.colEnd}`] = true;\n if (g?.rowSpan)\n cls[`lg:ax-row-span-${g.rowSpan}`] = true;\n if (g?.rowStart)\n cls[`lg:ax-row-start-${g.rowStart}`] = true;\n if (g?.rowEnd)\n cls[`lg:ax-row-end-${g.rowEnd}`] = true;\n return cls;\n }, ...(ngDevMode ? [{ debugName: \"hostGridItemClass\" }] : []));\n this.hostClass = computed(() => this.hostGridItemClass(), ...(ngDevMode ? [{ debugName: \"hostClass\" }] : []));\n this.hostStyle = computed(() => this.hostGridItemStyle(), ...(ngDevMode ? [{ debugName: \"hostStyle\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPGridItemBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPGridItemBaseLayoutWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPGridItemBaseLayoutWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1pdGVtLWJhc2Utd2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL2Jhc2Utd2lkZ2V0L2dyaWQtaXRlbS1iYXNlLXdpZGdldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBR2hGLE1BQU0sT0FBZ0Isb0NBQXFDLFNBQVEsZ0NBQWdDO0lBRG5HOztRQUVVLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBc0Msb0RBQUMsQ0FBQztRQUUvRSxzQkFBaUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3ZDLE1BQU0sS0FBSyxHQUFvQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDM0UsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBRTFCLElBQUksQ0FBQyxFQUFFLFNBQVM7Z0JBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDcEQsSUFBSSxDQUFDLEVBQUUsV0FBVztnQkFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztZQUUxRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsNkRBQUMsQ0FBQztRQUVJLHNCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsTUFBTSxHQUFHLEdBQTRCLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUNqRSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFMUIsSUFBSSxDQUFDLEVBQUUsT0FBTztnQkFBRSxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUMxRCxJQUFJLENBQUMsRUFBRSxRQUFRO2dCQUFFLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQzdELElBQUksQ0FBQyxFQUFFLE1BQU07Z0JBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7WUFFdkQsSUFBSSxDQUFDLEVBQUUsT0FBTztnQkFBRSxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUMxRCxJQUFJLENBQUMsRUFBRSxRQUFRO2dCQUFFLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQzdELElBQUksQ0FBQyxFQUFFLE1BQU07Z0JBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7WUFFdkQsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLDZEQUFDLENBQUM7UUFFYSxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxxREFBQyxDQUFDO1FBQ3JELGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLHFEQUFDLENBQUM7S0FDdEU7OEdBOUJxQixvQ0FBb0M7a0hBQXBDLG9DQUFvQzs7MkZBQXBDLG9DQUFvQztrQkFEekQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBHcmlkSXRlbUJveFN0cmluZyB9IGZyb20gJy4uL2hlbHBlci9wcm9wZXJ0eS1lZGl0b3IudHlwZSc7XG5pbXBvcnQgeyBBWFBGbGV4QmFzZUxheW91dFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4vZmxleC1iYXNlLXdpZGdldC5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQR3JpZEl0ZW1CYXNlTGF5b3V0V2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgQVhQRmxleEJhc2VMYXlvdXRXaWRnZXRDb21wb25lbnQge1xuICBwcml2YXRlIGdyaWRJdGVtID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCkgYXMgQVhQR3JpZEl0ZW1Cb3hTdHJpbmcgfCB1bmRlZmluZWQpO1xuXG4gIHB1YmxpYyBob3N0R3JpZEl0ZW1TdHlsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzdHlsZTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPiA9IHsgLi4udGhpcy5ob3N0RmxleFN0eWxlKCkgfTtcbiAgICBjb25zdCBnID0gdGhpcy5ncmlkSXRlbSgpO1xuXG4gICAgaWYgKGc/LmFsaWduU2VsZikgc3R5bGVbJ2FsaWduLXNlbGYnXSA9IGcuYWxpZ25TZWxmO1xuICAgIGlmIChnPy5qdXN0aWZ5U2VsZikgc3R5bGVbJ2p1c3RpZnktc2VsZiddID0gZy5qdXN0aWZ5U2VsZjtcblxuICAgIHJldHVybiBzdHlsZTtcbiAgfSk7XG5cbiAgcHVibGljIGhvc3RHcmlkSXRlbUNsYXNzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNsczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7IC4uLnRoaXMuaG9zdEZsZXhDbGFzcygpIH07XG4gICAgY29uc3QgZyA9IHRoaXMuZ3JpZEl0ZW0oKTtcblxuICAgIGlmIChnPy5jb2xTcGFuKSBjbHNbYGxnOmF4LWNvbC1zcGFuLSR7Zy5jb2xTcGFufWBdID0gdHJ1ZTtcbiAgICBpZiAoZz8uY29sU3RhcnQpIGNsc1tgbGc6YXgtY29sLXN0YXJ0LSR7Zy5jb2xTdGFydH1gXSA9IHRydWU7XG4gICAgaWYgKGc/LmNvbEVuZCkgY2xzW2BsZzpheC1jb2wtZW5kLSR7Zy5jb2xFbmR9YF0gPSB0cnVlO1xuXG4gICAgaWYgKGc/LnJvd1NwYW4pIGNsc1tgbGc6YXgtcm93LXNwYW4tJHtnLnJvd1NwYW59YF0gPSB0cnVlO1xuICAgIGlmIChnPy5yb3dTdGFydCkgY2xzW2BsZzpheC1yb3ctc3RhcnQtJHtnLnJvd1N0YXJ0fWBdID0gdHJ1ZTtcbiAgICBpZiAoZz8ucm93RW5kKSBjbHNbYGxnOmF4LXJvdy1lbmQtJHtnLnJvd0VuZH1gXSA9IHRydWU7XG5cbiAgICByZXR1cm4gY2xzO1xuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgaG9zdENsYXNzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5ob3N0R3JpZEl0ZW1DbGFzcygpKTtcbiAgcHVibGljIG92ZXJyaWRlIGhvc3RTdHlsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaG9zdEdyaWRJdGVtU3R5bGUoKSk7XG59XG4iXX0=","import { Injectable, computed } from '@angular/core';\nimport { AXPBlockBaseLayoutWidgetComponent } from './block-base-widget.component';\nimport * as i0 from \"@angular/core\";\nexport class AXPTableBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent {\n constructor() {\n super(...arguments);\n this.hostTableClass = computed(() => ({\n ...this.blockClass(),\n }), ...(ngDevMode ? [{ debugName: \"hostTableClass\" }] : []));\n this.hostTableStyle = computed(() => {\n const style = { ...this.blockStyle() };\n style['overflow-x'] = 'auto';\n return style;\n }, ...(ngDevMode ? [{ debugName: \"hostTableStyle\" }] : []));\n this.hostClass = computed(() => this.hostTableClass(), ...(ngDevMode ? [{ debugName: \"hostClass\" }] : []));\n this.hostStyle = computed(() => this.hostTableStyle(), ...(ngDevMode ? [{ debugName: \"hostStyle\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPTableBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPTableBaseLayoutWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPTableBaseLayoutWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYmFzZS13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvYmFzZS13aWRnZXQvdGFibGUtYmFzZS13aWRnZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUdsRixNQUFNLE9BQWdCLGlDQUFrQyxTQUFRLGlDQUFpQztJQURqRzs7UUFFUyxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3RDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRTtTQUNyQixDQUFDLDBEQUFDLENBQUM7UUFFRyxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsTUFBTSxLQUFLLEdBQW9DLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUN4RSxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsTUFBTSxDQUFDO1lBQzdCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQywwREFBQyxDQUFDO1FBRWEsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLHFEQUFDLENBQUM7UUFDbEQsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLHFEQUFDLENBQUM7S0FDbkU7OEdBYnFCLGlDQUFpQztrSEFBakMsaUNBQWlDOzsyRkFBakMsaUNBQWlDO2tCQUR0RCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEJsb2NrQmFzZUxheW91dFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4vYmxvY2stYmFzZS13aWRnZXQuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUFRhYmxlQmFzZUxheW91dFdpZGdldENvbXBvbmVudCBleHRlbmRzIEFYUEJsb2NrQmFzZUxheW91dFdpZGdldENvbXBvbmVudCB7XG4gIHB1YmxpYyBob3N0VGFibGVDbGFzcyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgLi4udGhpcy5ibG9ja0NsYXNzKCksXG4gIH0pKTtcblxuICBwdWJsaWMgaG9zdFRhYmxlU3R5bGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc3R5bGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4gPSB7IC4uLnRoaXMuYmxvY2tTdHlsZSgpIH07XG4gICAgc3R5bGVbJ292ZXJmbG93LXgnXSA9ICdhdXRvJztcbiAgICByZXR1cm4gc3R5bGU7XG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBob3N0Q2xhc3MgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmhvc3RUYWJsZUNsYXNzKCkpO1xuICBwdWJsaWMgb3ZlcnJpZGUgaG9zdFN0eWxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5ob3N0VGFibGVTdHlsZSgpKTtcbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { AXPBlockBaseLayoutWidgetComponent } from './block-base-widget.component';\nimport * as i0 from \"@angular/core\";\nexport class AXPTableItemOpsBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPTableItemOpsBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPTableItemOpsBaseLayoutWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPTableItemOpsBaseLayoutWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaXRlbS1vcHMtYmFzZS13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvYmFzZS13aWRnZXQvdGFibGUtaXRlbS1vcHMtYmFzZS13aWRnZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBR2xGLE1BQU0sT0FBZ0Isd0NBQXlDLFNBQVEsaUNBQWlDOzhHQUFsRix3Q0FBd0M7a0hBQXhDLHdDQUF3Qzs7MkZBQXhDLHdDQUF3QztrQkFEN0QsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEJsb2NrQmFzZUxheW91dFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4vYmxvY2stYmFzZS13aWRnZXQuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUFRhYmxlSXRlbU9wc0Jhc2VMYXlvdXRXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBBWFBCbG9ja0Jhc2VMYXlvdXRXaWRnZXRDb21wb25lbnQge1xuICAvLyBDb2x1bW5zIChyZWxhdGl2ZSB0byBjdXJyZW50IGNlbGwpXG4gIGFic3RyYWN0IGluc2VydENvbHVtbkxlZnQoKTogdm9pZDtcbiAgYWJzdHJhY3QgaW5zZXJ0Q29sdW1uUmlnaHQoKTogdm9pZDtcblxuICAvLyBSb3dzIHJlbGF0aXZlIHRvIGN1cnJlbnQgY2VsbFxuICBhYnN0cmFjdCBpbnNlcnRSb3dBYm92ZSgpOiB2b2lkO1xuICBhYnN0cmFjdCBpbnNlcnRSb3dCZWxvdygpOiB2b2lkO1xuXG4gIC8vIENlbGwtbGV2ZWwgaW5zZXJ0IG9wZXJhdGlvbnMgKHJlbGF0aXZlIHRvIGN1cnJlbnQgY2VsbClcbiAgYWJzdHJhY3QgaW5zZXJ0Q2VsbFNoaWZ0UmlnaHQoKTogdm9pZDsgLy8gaW5zZXJ0IHRvIHRoZSBsZWZ0IG9mIHRhcmdldCwgc2hpZnQgcmlnaHQsIGluY3JlYXNlIGNvbHVtbnNcbiAgYWJzdHJhY3QgaW5zZXJ0Q2VsbFNoaWZ0RG93bigpOiB2b2lkOyAvLyBpbnNlcnQgYWJvdmUgdGFyZ2V0IHJvdywgc2hpZnQgZG93biwgaW5jcmVhc2Ugcm93c1xufVxuIl19","import { Injectable, computed } from '@angular/core';\nimport { AXPTableItemOpsBaseLayoutWidgetComponent } from './table-item-ops-base-widget.component';\nimport * as i0 from \"@angular/core\";\nexport class AXPTableItemBaseLayoutWidgetComponent extends AXPTableItemOpsBaseLayoutWidgetComponent {\n constructor() {\n super(...arguments);\n this.colSpan = computed(() => {\n const v = this.options()?.colSpan;\n return v ? Math.max(1, v) : 1;\n }, ...(ngDevMode ? [{ debugName: \"colSpan\" }] : []));\n this.rowSpan = computed(() => {\n const v = this.options()?.rowSpan;\n return v ? Math.max(1, v) : 1;\n }, ...(ngDevMode ? [{ debugName: \"rowSpan\" }] : []));\n this.hostClass = computed(() => this.blockClass(), ...(ngDevMode ? [{ debugName: \"hostClass\" }] : []));\n this.hostStyle = computed(() => this.blockStyle(), ...(ngDevMode ? [{ debugName: \"hostStyle\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPTableItemBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPTableItemBaseLayoutWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPTableItemBaseLayoutWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaXRlbS1iYXNlLXdpZGdldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci9iYXNlLXdpZGdldC90YWJsZS1pdGVtLWJhc2Utd2lkZ2V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7QUFHbEcsTUFBTSxPQUFnQixxQ0FBc0MsU0FBUSx3Q0FBd0M7SUFENUc7O1FBRVksWUFBTyxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUU7WUFDeEMsTUFBTSxDQUFDLEdBQUksSUFBSSxDQUFDLE9BQU8sRUFBVSxFQUFFLE9BQTZCLENBQUM7WUFDakUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxtREFBQyxDQUFDO1FBQ08sWUFBTyxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUU7WUFDeEMsTUFBTSxDQUFDLEdBQUksSUFBSSxDQUFDLE9BQU8sRUFBVSxFQUFFLE9BQTZCLENBQUM7WUFDakUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxtREFBQyxDQUFDO1FBRWEsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLHFEQUFDLENBQUM7UUFDOUMsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLHFEQUFDLENBQUM7S0FDL0Q7OEdBWnFCLHFDQUFxQztrSEFBckMscUNBQXFDOzsyRkFBckMscUNBQXFDO2tCQUQxRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFRhYmxlSXRlbU9wc0Jhc2VMYXlvdXRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWl0ZW0tb3BzLWJhc2Utd2lkZ2V0LmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBUYWJsZUl0ZW1CYXNlTGF5b3V0V2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgQVhQVGFibGVJdGVtT3BzQmFzZUxheW91dFdpZGdldENvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBjb2xTcGFuID0gY29tcHV0ZWQ8bnVtYmVyPigoKSA9PiB7XG4gICAgY29uc3QgdiA9ICh0aGlzLm9wdGlvbnMoKSBhcyBhbnkpPy5jb2xTcGFuIGFzIG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdiA/IE1hdGgubWF4KDEsIHYpIDogMTtcbiAgfSk7XG4gIHByb3RlY3RlZCByb3dTcGFuID0gY29tcHV0ZWQ8bnVtYmVyPigoKSA9PiB7XG4gICAgY29uc3QgdiA9ICh0aGlzLm9wdGlvbnMoKSBhcyBhbnkpPy5yb3dTcGFuIGFzIG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdiA/IE1hdGgubWF4KDEsIHYpIDogMTtcbiAgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGhvc3RDbGFzcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYmxvY2tDbGFzcygpKTtcbiAgcHVibGljIG92ZXJyaWRlIGhvc3RTdHlsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYmxvY2tTdHlsZSgpKTtcbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport class AXPWidgetRegistryService {\n /**\n *\n */\n constructor() {\n this.types = new Map();\n AXPWidgetRegistryService.instance = this;\n }\n register(widget) {\n this.types.set(widget.name, widget);\n }\n extend(parentName, widget) {\n const parentWidget = this.resolve(parentName);\n const newWidget = merge({}, parentWidget, widget);\n newWidget.name = widget.name;\n this.register(newWidget);\n }\n resolve(name) {\n const widget = this.types.get(name);\n if (!widget) {\n throw new Error(`Widget with name \"${name}\" does not exist.`);\n }\n return widget;\n }\n all() {\n return Array.from(this.types.values());\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetRegistryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXJlZ2lzdGVyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvd2lkZ2V0LXJlZ2lzdGVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFNbEMsTUFBTSxPQUFPLHdCQUF3QjtJQUtuQzs7T0FFRztJQUNIO1FBUFEsVUFBSyxHQUFpQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBUXRELHdCQUF3QixDQUFDLFFBQVEsR0FBQyxJQUFJLENBQUM7SUFDekMsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUF1QjtRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBa0IsRUFBRSxNQUF1QjtRQUNoRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELFNBQVMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBWTtRQUNsQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixJQUFJLG1CQUFtQixDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxHQUFHO1FBQ1IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDOzhHQWpDVSx3QkFBd0I7a0hBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzsyRkFFUCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q29uZmlnIH0gZnJvbSAnLi93aWRnZXQudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB0eXBlczogTWFwPHN0cmluZywgQVhQV2lkZ2V0Q29uZmlnPiA9IG5ldyBNYXAoKTtcblxuICBwdWJsaWMgc3RhdGljICBpbnN0YW5jZTpBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2U7XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UuaW5zdGFuY2U9dGhpcztcbiAgfVxuXG4gIHJlZ2lzdGVyKHdpZGdldDogQVhQV2lkZ2V0Q29uZmlnKSB7XG4gICAgdGhpcy50eXBlcy5zZXQod2lkZ2V0Lm5hbWUsIHdpZGdldCk7XG4gIH1cblxuICBleHRlbmQocGFyZW50TmFtZTogc3RyaW5nLCB3aWRnZXQ6IEFYUFdpZGdldENvbmZpZykge1xuICAgIGNvbnN0IHBhcmVudFdpZGdldCA9IHRoaXMucmVzb2x2ZShwYXJlbnROYW1lKTtcbiAgICBjb25zdCBuZXdXaWRnZXQgPSBtZXJnZSh7fSwgcGFyZW50V2lkZ2V0LCB3aWRnZXQpO1xuICAgIG5ld1dpZGdldC5uYW1lID0gd2lkZ2V0Lm5hbWU7XG4gICAgdGhpcy5yZWdpc3RlcihuZXdXaWRnZXQpO1xuICB9XG5cbiAgcmVzb2x2ZShuYW1lOiBzdHJpbmcpOiBBWFBXaWRnZXRDb25maWcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHdpZGdldCA9IHRoaXMudHlwZXMuZ2V0KG5hbWUpO1xuICAgIGlmICghd2lkZ2V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFdpZGdldCB3aXRoIG5hbWUgXCIke25hbWV9XCIgZG9lcyBub3QgZXhpc3QuYCk7XG4gICAgfVxuICAgIHJldHVybiB3aWRnZXQ7XG4gIH1cblxuICBwdWJsaWMgYWxsKCk6IEFYUFdpZGdldENvbmZpZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnR5cGVzLnZhbHVlcygpKTtcbiAgfVxufVxuIl19","import { AXBaseDataTable, AXDataTableColumnComponent } from '@acorex/components/data-table';\nimport { getSmart } from '@acorex/platform/core';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Injector, Input, TemplateRef, ViewChild, inject, signal, } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXP_WIDGET_COLUMN_TOKEN } from './widget.types';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/core/translation\";\nexport class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {\n constructor() {\n super(...arguments);\n this.widgetRegistery = inject(AXPWidgetRegistryService);\n this.grid = inject(AXBaseDataTable);\n this.mergedOptions = signal({}, ...(ngDevMode ? [{ debugName: \"mergedOptions\" }] : []));\n this.loadingRow = signal(null, ...(ngDevMode ? [{ debugName: \"loadingRow\" }] : []));\n this.injector = inject(Injector);\n this.cdr = inject(ChangeDetectorRef);\n }\n get node() {\n return this._node;\n }\n set node(v) {\n this._node = v;\n }\n get renderFooterTemplate() {\n return this.footerTemplate ?? this._contentFooterTemplate;\n }\n get renderCellTemplate() {\n return this.cellTemplate ?? this._contentCellTemplate;\n }\n async handleExpandRow(row) {\n this.loadingRow.set(row);\n await this.grid.expandRow(row);\n this.loadingRow.set(null);\n // if (row.data?.__meta__?.expanded === undefined) {\n // this.width = `${parseInt(this.width as string) + 24}px`;\n // }\n }\n get renderHeaderTemplate() {\n return this.headerTemplate ?? this._contentHeaderTemplate;\n }\n get loadingEnabled() {\n return true;\n }\n get name() {\n return `col-${this.node.path}`;\n }\n async ngOnInit() {\n const widget = this.widgetRegistery.resolve(this.node.type);\n const mode = 'column';\n this.component = await widget?.components[mode]?.component();\n //\n const props = widget?.components[mode]?.properties\n ?.filter((c) => c.schema.defaultValue)\n .map((c) => ({ [c.name]: c.schema.defaultValue }))\n .reduce((acc, curr) => {\n return { ...acc, ...curr };\n }, {});\n //\n this.mergedOptions.set(merge(props, this.node.options) || {});\n const tokenValue = {\n path: this.node.path,\n options: this.mergedOptions(),\n };\n this.widgetInjector = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_COLUMN_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n this.width = this.customWidth ? this.customWidth : (this.mergedOptions().width ?? '200px');\n this.allowResizing = this.mergedOptions().allowResizing || true;\n this.cdr.detectChanges();\n }\n getInputs(data) {\n return {\n rawValue: getSmart(data, this.node.path),\n rowData: data,\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetColumnRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPWidgetColumnRendererComponent, isStandalone: false, selector: \"axp-widget-column-renderer\", inputs: { caption: \"caption\", customExpandIcon: \"customExpandIcon\", customCollapseIcon: \"customCollapseIcon\", customWidth: \"customWidth\", node: \"node\", footerTemplate: \"footerTemplate\", expandHandler: \"expandHandler\", cellTemplate: \"cellTemplate\", headerTemplate: \"headerTemplate\" }, providers: [\n AXPLayoutBuilderService,\n { provide: AXDataTableColumnComponent, useExisting: AXPWidgetColumnRendererComponent },\n ], viewQueries: [{ propertyName: \"_contentFooterTemplate\", first: true, predicate: [\"footer\"], descendants: true }, { propertyName: \"_contentCellTemplate\", first: true, predicate: [\"cell\"], descendants: true }, { propertyName: \"_contentHeaderTemplate\", first: true, predicate: [\"header\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n <ng-template #header>{{ caption | translate | async }}</ng-template>\n <ng-template #cell let-row>\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n @if (expandHandler) {\n <div\n (click)=\"handleExpandRow(row)\"\n class=\"ax-expand-handler\"\n [class.ax-invisible]=\"row.data.hasChild === false\"\n id=\"ax-expand-handler-container\"\n [style.padding-inline-start.rem]=\"row.data?.__meta__?.level * 2\"\n >\n @if (loadingRow() === row) {\n <i class=\"fas fa-spinner-third ax-animate-twSpin ax-animate-infinite\"></i>\n } @else {\n @if (row.data?.__meta__?.expanded) {\n <i [class]=\"customCollapseIcon || 'far fa-minus-square ax-text-md ax-opacity-75'\"></i>\n } @else {\n <i [class]=\"customExpandIcon || 'far fa-plus-square ax-text-md ax-opacity-75'\"></i>\n }\n }\n </div>\n }\n @if (component && widgetInjector && row?.data) {\n <ng-container\n *ngComponentOutlet=\"component; injector: widgetInjector; inputs: getInputs(row.data)\"\n ></ng-container>\n }\n </div>\n </ng-template>\n <ng-template #footer></ng-template>\n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1.NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: [\"ngComponentOutlet\", \"ngComponentOutletInputs\", \"ngComponentOutletInjector\", \"ngComponentOutletEnvironmentInjector\", \"ngComponentOutletContent\", \"ngComponentOutletNgModule\", \"ngComponentOutletNgModuleFactory\"], exportAs: [\"ngComponentOutlet\"] }, { kind: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i2.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetColumnRendererComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-widget-column-renderer',\n template: `\n <ng-template #header>{{ caption | translate | async }}</ng-template>\n <ng-template #cell let-row>\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n @if (expandHandler) {\n <div\n (click)=\"handleExpandRow(row)\"\n class=\"ax-expand-handler\"\n [class.ax-invisible]=\"row.data.hasChild === false\"\n id=\"ax-expand-handler-container\"\n [style.padding-inline-start.rem]=\"row.data?.__meta__?.level * 2\"\n >\n @if (loadingRow() === row) {\n <i class=\"fas fa-spinner-third ax-animate-twSpin ax-animate-infinite\"></i>\n } @else {\n @if (row.data?.__meta__?.expanded) {\n <i [class]=\"customCollapseIcon || 'far fa-minus-square ax-text-md ax-opacity-75'\"></i>\n } @else {\n <i [class]=\"customExpandIcon || 'far fa-plus-square ax-text-md ax-opacity-75'\"></i>\n }\n }\n </div>\n }\n @if (component && widgetInjector && row?.data) {\n <ng-container\n *ngComponentOutlet=\"component; injector: widgetInjector; inputs: getInputs(row.data)\"\n ></ng-container>\n }\n </div>\n </ng-template>\n <ng-template #footer></ng-template>\n `,\n providers: [\n AXPLayoutBuilderService,\n { provide: AXDataTableColumnComponent, useExisting: AXPWidgetColumnRendererComponent },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['caption'],\n standalone: false,\n }]\n }], propDecorators: { customExpandIcon: [{\n type: Input\n }], customCollapseIcon: [{\n type: Input\n }], customWidth: [{\n type: Input\n }], node: [{\n type: Input,\n args: [{ required: true }]\n }], footerTemplate: [{\n type: Input\n }], _contentFooterTemplate: [{\n type: ViewChild,\n args: ['footer']\n }], expandHandler: [{\n type: Input\n }], cellTemplate: [{\n type: Input\n }], _contentCellTemplate: [{\n type: ViewChild,\n args: ['cell']\n }], headerTemplate: [{\n type: Input\n }], _contentHeaderTemplate: [{\n type: ViewChild,\n args: ['header']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbHVtbi1yZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL3dpZGdldC1jb2x1bW4tcmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsUUFBUSxFQUNSLEtBQUssRUFDTCxXQUFXLEVBQ1gsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQXVCLHVCQUF1QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUE0QzlFLE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSwwQkFBMEI7SUExQ2hGOztRQTJDWSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3JELFNBQUksR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFnQi9CLGtCQUFhLEdBQUcsTUFBTSxDQUFNLEVBQUUseURBQUMsQ0FBQztRQUM5QixlQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksc0RBQUMsQ0FBQztRQW9ENUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7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LElBQUksRUFBRTtnQkFZbEIsY0FBYztzQkFEcEIsS0FBSztnQkFJRSxzQkFBc0I7c0JBRDdCLFNBQVM7dUJBQUMsUUFBUTtnQkFRWixhQUFhO3NCQURuQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUUsb0JBQW9CO3NCQUQzQixTQUFTO3VCQUFDLE1BQU07Z0JBUVYsY0FBYztzQkFEcEIsS0FBSztnQkFJRSxzQkFBc0I7c0JBRDdCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQmFzZURhdGFUYWJsZSwgQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGF0YS10YWJsZSc7XG5pbXBvcnQgeyBnZXRTbWFydCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyU2VydmljZSB9IGZyb20gJy4vYnVpbGRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vd2lkZ2V0LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUFdpZGdldENvbHVtbk5vZGUsIEFYUF9XSURHRVRfQ09MVU1OX1RPS0VOIH0gZnJvbSAnLi93aWRnZXQudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtd2lkZ2V0LWNvbHVtbi1yZW5kZXJlcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+e3sgY2FwdGlvbiB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LXJvdz5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWdhcC0yIGF4LWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICBAaWYgKGV4cGFuZEhhbmRsZXIpIHtcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlRXhwYW5kUm93KHJvdylcIlxuICAgICAgICAgICAgY2xhc3M9XCJheC1leHBhbmQtaGFuZGxlclwiXG4gICAgICAgICAgICBbY2xhc3MuYXgtaW52aXNpYmxlXT1cInJvdy5kYXRhLmhhc0NoaWxkID09PSBmYWxzZVwiXG4gICAgICAgICAgICBpZD1cImF4LWV4cGFuZC1oYW5kbGVyLWNvbnRhaW5lclwiXG4gICAgICAgICAgICBbc3R5bGUucGFkZGluZy1pbmxpbmUtc3RhcnQucmVtXT1cInJvdy5kYXRhPy5fX21ldGFfXz8ubGV2ZWwgKiAyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKGxvYWRpbmdSb3coKSA9PT0gcm93KSB7XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXNwaW5uZXItdGhpcmQgYXgtYW5pbWF0ZS10d1NwaW4gYXgtYW5pbWF0ZS1pbmZpbml0ZVwiPjwvaT5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICBAaWYgKHJvdy5kYXRhPy5fX21ldGFfXz8uZXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiY3VzdG9tQ29sbGFwc2VJY29uIHx8ICdmYXIgZmEtbWludXMtc3F1YXJlIGF4LXRleHQtbWQgYXgtb3BhY2l0eS03NSdcIj48L2k+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCJjdXN0b21FeHBhbmRJY29uIHx8ICdmYXIgZmEtcGx1cy1zcXVhcmUgYXgtdGV4dC1tZCAgYXgtb3BhY2l0eS03NSdcIj48L2k+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGNvbXBvbmVudCAmJiB3aWRnZXRJbmplY3RvciAmJiByb3c/LmRhdGEpIHtcbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdDb21wb25lbnRPdXRsZXQ9XCJjb21wb25lbnQ7IGluamVjdG9yOiB3aWRnZXRJbmplY3RvcjsgaW5wdXRzOiBnZXRJbnB1dHMocm93LmRhdGEpXCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNmb290ZXI+PC9uZy10ZW1wbGF0ZT5cbiAgYCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UsXG4gICAgeyBwcm92aWRlOiBBWERhdGFUYWJsZUNvbHVtbkNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYUFdpZGdldENvbHVtblJlbmRlcmVyQ29tcG9uZW50IH0sXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbnB1dHM6IFsnY2FwdGlvbiddLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV2lkZ2V0Q29sdW1uUmVuZGVyZXJDb21wb25lbnQgZXh0ZW5kcyBBWERhdGFUYWJsZUNvbHVtbkNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCB3aWRnZXRSZWdpc3RlcnkgPSBpbmplY3QoQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBncmlkID0gaW5qZWN0KEFYQmFzZURhdGFUYWJsZSk7XG5cbiAgQElucHV0KCkgY3VzdG9tRXhwYW5kSWNvbjogc3RyaW5nO1xuICBASW5wdXQoKSBjdXN0b21Db2xsYXBzZUljb246IHN0cmluZztcblxuICBASW5wdXQoKSBjdXN0b21XaWR0aDogc3RyaW5nO1xuXG4gIHByaXZhdGUgX25vZGU6IEFYUFdpZGdldENvbHVtbk5vZGU7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHB1YmxpYyBnZXQgbm9kZSgpOiBBWFBXaWRnZXRDb2x1bW5Ob2RlIHtcbiAgICByZXR1cm4gdGhpcy5fbm9kZTtcbiAgfVxuICBwdWJsaWMgc2V0IG5vZGUodjogQVhQV2lkZ2V0Q29sdW1uTm9kZSkge1xuICAgIHRoaXMuX25vZGUgPSB2O1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZWRPcHRpb25zID0gc2lnbmFsPGFueT4oe30pO1xuICBwcm90ZWN0ZWQgbG9hZGluZ1JvdyA9IHNpZ25hbChudWxsKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBWaWV3Q2hpbGQoJ2Zvb3RlcicpXG4gIHByaXZhdGUgX2NvbnRlbnRGb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgZ2V0IHJlbmRlckZvb3RlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5mb290ZXJUZW1wbGF0ZSA/PyB0aGlzLl9jb250ZW50Rm9vdGVyVGVtcGxhdGU7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgZXhwYW5kSGFuZGxlcjogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2VsbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBAVmlld0NoaWxkKCdjZWxsJylcbiAgcHJpdmF0ZSBfY29udGVudENlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgZ2V0IHJlbmRlckNlbGxUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuY2VsbFRlbXBsYXRlID8/IHRoaXMuX2NvbnRlbnRDZWxsVGVtcGxhdGU7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBWaWV3Q2hpbGQoJ2hlYWRlcicpXG4gIHByaXZhdGUgX2NvbnRlbnRIZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUV4cGFuZFJvdyhyb3c6IGFueSkge1xuICAgIHRoaXMubG9hZGluZ1Jvdy5zZXQocm93KTtcbiAgICBhd2FpdCB0aGlzLmdyaWQuZXhwYW5kUm93KHJvdyk7XG4gICAgdGhpcy5sb2FkaW5nUm93LnNldChudWxsKTtcbiAgICAvLyBpZiAocm93LmRhdGE/Ll9fbWV0YV9fPy5leHBhbmRlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gICB0aGlzLndpZHRoID0gYCR7cGFyc2VJbnQodGhpcy53aWR0aCBhcyBzdHJpbmcpICsgMjR9cHhgO1xuICAgIC8vIH1cbiAgfVxuXG4gIGdldCByZW5kZXJIZWFkZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuaGVhZGVyVGVtcGxhdGUgPz8gdGhpcy5fY29udGVudEhlYWRlclRlbXBsYXRlO1xuICB9XG5cbiAgZ2V0IGxvYWRpbmdFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGNvbC0ke3RoaXMubm9kZS5wYXRofWA7XG4gIH1cblxuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcm90ZWN0ZWQgd2lkZ2V0SW5qZWN0b3IhOiBJbmplY3RvcjtcbiAgcHJvdGVjdGVkIGNvbXBvbmVudCE6IGFueTtcblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCB3aWRnZXQgPSB0aGlzLndpZGdldFJlZ2lzdGVyeS5yZXNvbHZlKHRoaXMubm9kZS50eXBlKTtcbiAgICBjb25zdCBtb2RlID0gJ2NvbHVtbic7XG4gICAgdGhpcy5jb21wb25lbnQgPSBhd2FpdCB3aWRnZXQ/LmNvbXBvbmVudHNbbW9kZV0/LmNvbXBvbmVudCgpO1xuICAgIC8vXG4gICAgY29uc3QgcHJvcHMgPSB3aWRnZXQ/LmNvbXBvbmVudHNbbW9kZV0/LnByb3BlcnRpZXNcbiAgICAgID8uZmlsdGVyKChjKSA9PiBjLnNjaGVtYS5kZWZhdWx0VmFsdWUpXG4gICAgICAubWFwKChjKSA9PiAoeyBbYy5uYW1lXTogYy5zY2hlbWEuZGVmYXVsdFZhbHVlIH0pKVxuICAgICAgLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiB7XG4gICAgICAgIHJldHVybiB7IC4uLmFjYywgLi4uY3VyciB9O1xuICAgICAgfSwge30pO1xuICAgIC8vXG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLnNldChtZXJnZShwcm9wcywgdGhpcy5ub2RlLm9wdGlvbnMpIHx8IHt9KTtcblxuICAgIGNvbnN0IHRva2VuVmFsdWUgPSB7XG4gICAgICBwYXRoOiB0aGlzLm5vZGUucGF0aCxcbiAgICAgIG9wdGlvbnM6IHRoaXMubWVyZ2VkT3B0aW9ucygpLFxuICAgIH07XG4gICAgdGhpcy53aWRnZXRJbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFYUF9XSURHRVRfQ09MVU1OX1RPS0VOLFxuICAgICAgICAgIHVzZVZhbHVlOiB0b2tlblZhbHVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIHRoaXMud2lkdGggPSB0aGlzLmN1c3RvbVdpZHRoID8gdGhpcy5jdXN0b21XaWR0aCA6ICh0aGlzLm1lcmdlZE9wdGlvbnMoKS53aWR0aCA/PyAnMjAwcHgnKTtcbiAgICB0aGlzLmFsbG93UmVzaXppbmcgPSB0aGlzLm1lcmdlZE9wdGlvbnMoKS5hbGxvd1Jlc2l6aW5nIHx8IHRydWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZ2V0SW5wdXRzKGRhdGE6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJhd1ZhbHVlOiBnZXRTbWFydChkYXRhLCB0aGlzLm5vZGUucGF0aCEpLFxuICAgICAgcm93RGF0YTogZGF0YSxcbiAgICB9O1xuICB9XG59XG4iXX0=","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, computed, effect, inject, } from '@angular/core';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPLayoutBuilderContextStore } from './context-store.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPWidgetContainerComponent {\n set context(value) {\n this.contextService.set(value);\n }\n set functions(v) {\n this.builderService.setFunctions(v);\n }\n constructor() {\n this.contextService = inject(AXPLayoutBuilderContextStore);\n this.builderService = inject(AXPLayoutBuilderService);\n this.onContextChanged = new EventEmitter();\n this.status = computed(() => {\n return this.builderService.status();\n }, ...(ngDevMode ? [{ debugName: \"status\" }] : []));\n this.isBusy = computed(() => {\n return this.builderService.isBusy();\n }, ...(ngDevMode ? [{ debugName: \"isBusy\" }] : []));\n effect(() => {\n if (this.contextService.isChanged()) {\n this.onContextChanged.emit(this.contextService.changeEvent());\n }\n });\n }\n refresh() {\n this.builderService.refresh();\n }\n find(name) {\n return this.builderService.waitForWidget(name);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPWidgetContainerComponent, isStandalone: false, selector: \"axp-widgets-container\", inputs: { context: \"context\", functions: \"functions\" }, outputs: { onContextChanged: \"onContextChanged\" }, host: { styleAttribute: \"display: contents;\" }, providers: [AXPLayoutBuilderService, AXPLayoutBuilderContextStore], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetContainerComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-widgets-container',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'display: contents;' },\n providers: [AXPLayoutBuilderService, AXPLayoutBuilderContextStore],\n standalone: false,\n }]\n }], ctorParameters: () => [], propDecorators: { onContextChanged: [{\n type: Output\n }], context: [{\n type: Input\n }], functions: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci93aWRnZXQtY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNEJBQTRCLEVBQStCLE1BQU0seUJBQXlCLENBQUM7O0FBVXBHLE1BQU0sT0FBTywyQkFBMkI7SUFPdEMsSUFDSSxPQUFPLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFDVyxTQUFTLENBQUMsQ0FBTTtRQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7UUFoQmdCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDdEQsbUJBQWMsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUdqRCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBK0IsQ0FBQztRQW9CNUUsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RDLENBQUMsa0RBQUMsQ0FBQztRQUVJLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzVCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0QyxDQUFDLGtEQUFDLENBQUM7UUFiRCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ2hFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFXTSxPQUFPO1FBQ1osSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sSUFBSSxDQUFDLElBQVk7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRCxDQUFDOzhHQXhDVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixnT0FIM0IsQ0FBQyx1QkFBdUIsRUFBRSw0QkFBNEIsQ0FBQywwQkFIeEQsMkJBQTJCOzsyRkFNMUIsMkJBQTJCO2tCQVJ2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUU7b0JBQ3JDLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixFQUFFLDRCQUE0QixDQUFDO29CQUNsRSxVQUFVLEVBQUUsS0FBSztpQkFDbEI7d0RBTWlCLGdCQUFnQjtzQkFEL0IsTUFBTTtnQkFJSCxPQUFPO3NCQURWLEtBQUs7Z0JBTUssU0FBUztzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi9idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlckNvbnRleHRTdG9yZSwgQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50IH0gZnJvbSAnLi9jb250ZXh0LXN0b3JlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtd2lkZ2V0cy1jb250YWluZXInLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBzdHlsZTogJ2Rpc3BsYXk6IGNvbnRlbnRzOycgfSxcbiAgcHJvdmlkZXJzOiBbQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UsIEFYUExheW91dEJ1aWxkZXJDb250ZXh0U3RvcmVdLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV2lkZ2V0Q29udGFpbmVyQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IGNvbnRleHRTZXJ2aWNlID0gaW5qZWN0KEFYUExheW91dEJ1aWxkZXJDb250ZXh0U3RvcmUpO1xuICBwdWJsaWMgcmVhZG9ubHkgYnVpbGRlclNlcnZpY2UgPSBpbmplY3QoQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgb25Db250ZXh0Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50PigpO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBjb250ZXh0KHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnNldCh2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGZ1bmN0aW9ucyh2OiBhbnkpIHtcbiAgICB0aGlzLmJ1aWxkZXJTZXJ2aWNlLnNldEZ1bmN0aW9ucyh2KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5jb250ZXh0U2VydmljZS5pc0NoYW5nZWQoKSkge1xuICAgICAgICB0aGlzLm9uQ29udGV4dENoYW5nZWQuZW1pdCh0aGlzLmNvbnRleHRTZXJ2aWNlLmNoYW5nZUV2ZW50KCkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXR1cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5idWlsZGVyU2VydmljZS5zdGF0dXMoKTtcbiAgfSk7XG5cbiAgcHVibGljIGlzQnVzeSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5idWlsZGVyU2VydmljZS5pc0J1c3koKTtcbiAgfSk7XG5cblxuICBwdWJsaWMgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmJ1aWxkZXJTZXJ2aWNlLnJlZnJlc2goKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmJ1aWxkZXJTZXJ2aWNlLndhaXRGb3JXaWRnZXQobmFtZSk7XG4gIH1cbn1cbiJdfQ==","import { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/skeleton\";\nexport class AXPWidgetPlaceholderComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetPlaceholderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPWidgetPlaceholderComponent, isStandalone: true, selector: \"axp-widget-placeholder\", ngImport: i0, template: `<div>\n <ax-skeleton class=\"ax-w-full ax-h-10 ax-rounded-md\"></ax-skeleton>\n </div>`, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXSkeletonModule }, { kind: \"component\", type: i1.AXSkeletonComponent, selector: \"ax-skeleton\", inputs: [\"animated\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetPlaceholderComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-widget-placeholder',\n template: `<div>\n <ax-skeleton class=\"ax-w-full ax-h-10 ax-rounded-md\"></ax-skeleton>\n </div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXSkeletonModule],\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXBsYWNlaG9sZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL3dpZGdldC1wbGFjZWhvbGRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBV25FLE1BQU0sT0FBTyw2QkFBNkI7OEdBQTdCLDZCQUE2QjtrR0FBN0IsNkJBQTZCLGtGQVA5Qjs7U0FFSCwyREFFRyxnQkFBZ0I7OzJGQUdmLDZCQUE2QjtrQkFUekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7O1NBRUg7b0JBQ1AsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFNrZWxldG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NrZWxldG9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLXdpZGdldC1wbGFjZWhvbGRlcicsXG4gIHRlbXBsYXRlOiBgPGRpdj5cbiAgICA8YXgtc2tlbGV0b24gY2xhc3M9XCJheC13LWZ1bGwgYXgtaC0xMCBheC1yb3VuZGVkLW1kXCI+PC9heC1za2VsZXRvbj5cbiAgPC9kaXY+YCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtBWFNrZWxldG9uTW9kdWxlXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV2lkZ2V0UGxhY2Vob2xkZXJDb21wb25lbnQge31cbiJdfQ==","import { AXTranslationService } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { AXPExpressionEvaluatorService } from '@acorex/platform/core';\nimport { Directive, Injector, ViewContainerRef, effect, inject, input, output, signal, } from '@angular/core';\nimport { cloneDeep, get, isEmpty, isEqual, isString, merge, set, sum } from 'lodash-es';\nimport { Subject, filter } from 'rxjs';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPLayoutBuilderContextStore } from './context-store.service';\nimport { AXPWidgetPlaceholderComponent } from './widget-placeholder.component';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXPWidgetStatus } from './widget-status.types';\nimport { AXP_WIDGET_TOKEN, } from './widget.types';\nimport * as i0 from \"@angular/core\";\nexport class AXPWidgetRendererDirective {\n //#endregion\n //#endregion\n constructor() {\n this.parentNode = input(...(ngDevMode ? [undefined, { debugName: \"parentNode\" }] : []));\n this.index = input(...(ngDevMode ? [undefined, { debugName: \"index\" }] : []));\n this.mode = input.required(...(ngDevMode ? [{ debugName: \"mode\" }] : []));\n this.node = input.required(...(ngDevMode ? [{ debugName: \"node\" }] : []));\n this._options = signal({}, ...(ngDevMode ? [{ debugName: \"_options\" }] : []));\n this.options = this._options.asReadonly();\n this.onOptionsChanged = output();\n this.onValueChanged = output();\n //#region ---- Properties ----\n this.mergedOptions = signal({}, ...(ngDevMode ? [{ debugName: \"mergedOptions\" }] : []));\n this.injector = inject(Injector);\n this.builderService = inject(AXPLayoutBuilderService);\n this.contextService = inject(AXPLayoutBuilderContextStore);\n this.widgetRegistery = inject(AXPWidgetRegistryService);\n this.unsubscriber = inject(AXUnsubscriber);\n this.translateService = inject(AXTranslationService);\n this.widgetService = inject(AXPWidgetRegistryService);\n this.expressionEvaluator = inject(AXPExpressionEvaluatorService);\n this.viewContainerRef = inject(ViewContainerRef);\n this.isLoading = signal(false, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n this.expressionEvaluators = new Map();\n this.renderTimeoutId = null;\n this.hasInitialRender = false;\n this.onContextChanged = new Subject();\n //#region ---- Performance Optimization Properties ----\n this.contextUpdateQueue = new Set();\n this.contextUpdateTimeout = null;\n this.CONTEXT_UPDATE_DEBOUNCE_MS = 4; // ~250fps for large forms\n // Removed visibility detection - not needed for current implementation\n // Expression result caching\n this.expressionCache = new Map();\n this.EXPRESSION_CACHE_TTL = 500; // Cache for 500ms (increased for better hit rate)\n // Options change tracking\n this.lastAppliedOptions = null;\n // Expression result tracking\n this.lastExpressionResults = new Map();\n // Buffer for context changes that happen before initial render completes\n this.preRenderContextQueue = new Set();\n effect(async () => {\n const changed = this.contextService.changeEvent();\n // Don't trigger re-render during initial setup\n if (!this.hasInitialRender) {\n if (changed.path) {\n this.preRenderContextQueue.add(changed.path);\n console.log(`📝 [${this.node().type}] Buffered pre-render context change: ${changed.path}`);\n }\n return;\n }\n // CRITICAL PERFORMANCE FIX: Only respond to relevant context changes\n if (changed.path && this.isRelevantContextChange(changed.path)) {\n console.log(`🎯 [${this.node().type}] Context change detected: ${changed.path}`);\n this.queueContextUpdate(changed.path);\n }\n });\n this.builderService.onRefresh.pipe(this.unsubscriber.takeUntilDestroy).subscribe(async () => {\n await this.processBatchedUpdates();\n });\n }\n //#region ---- Expression Caching Methods ----\n getCachedExpressionResult(expressionKey) {\n const cached = this.expressionCache.get(expressionKey);\n if (cached && performance.now() - cached.timestamp < this.EXPRESSION_CACHE_TTL) {\n console.log(`💾 [${this.node().type}] Using cached expression result for '${expressionKey}'`);\n return cached.value;\n }\n return null;\n }\n setCachedExpressionResult(expressionKey, value) {\n this.expressionCache.set(expressionKey, {\n value,\n timestamp: performance.now(),\n });\n }\n clearExpressionCache() {\n this.expressionCache.clear();\n }\n isPathAffectingExpressions(changedPath) {\n console.log(`🔍 [${this.node().type}] Checking if path '${changedPath}' affects expressions. Expression count: ${this.expressionEvaluators.size}`);\n // If widget has no expressions, no need to clear cache\n if (this.expressionEvaluators.size === 0) {\n console.log(`🔍 [${this.node().type}] Path '${changedPath}' - no expressions, keeping cache`);\n return false;\n }\n // Use the same logic as hasExpressionDependency to check for actual dependencies\n if (this.hasExpressionDependency(changedPath)) {\n console.log(`🔍 [${this.node().type}] Path '${changedPath}' affects expressions - clearing cache`);\n return true;\n }\n console.log(`🔍 [${this.node().type}] Path '${changedPath}' does not affect expressions - keeping cache`);\n return false;\n }\n //#endregion\n //#region ---- Context Batching Methods ----\n queueContextUpdate(path) {\n if (path) {\n console.log(`🔄 [${this.node().type}] Queueing context update for path: ${path}`);\n this.contextUpdateQueue.add(path);\n // Clear existing timeout\n if (this.contextUpdateTimeout) {\n clearTimeout(this.contextUpdateTimeout);\n }\n // Debounce updates\n this.contextUpdateTimeout = setTimeout(() => {\n console.log(`⚡ [${this.node().type}] Processing batched updates for ${this.contextUpdateQueue.size} paths`);\n this.processBatchedUpdates();\n }, this.CONTEXT_UPDATE_DEBOUNCE_MS);\n }\n }\n async processBatchedUpdates() {\n if (this.contextUpdateQueue.size === 0)\n return;\n const startTime = performance.now();\n const paths = Array.from(this.contextUpdateQueue);\n this.contextUpdateQueue.clear();\n console.log(`📊 [${this.node().type}] Processing ${paths.length} paths:`, paths);\n // Clear expression cache only if changed paths affect this widget's expressions\n const shouldClearCache = paths.some((path) => this.isPathAffectingExpressions(path));\n if (shouldClearCache) {\n console.log(`🗑️ [${this.node().type}] Clearing expression cache due to expression-affecting path change`);\n this.clearExpressionCache();\n }\n // Process updates in batches\n const optionsStartTime = performance.now();\n const hasOptionsUpdate = await this.updateOptionsBasedOnContext();\n const optionsTime = performance.now() - optionsStartTime;\n if (typeof hasOptionsUpdate === 'number' && hasOptionsUpdate > 0) {\n console.log(`🔧 [${this.node().type}] Options updated (${optionsTime.toFixed(2)}ms)`);\n this.applyOptions();\n }\n // Check formulas for any of the changed paths\n const formulaStartTime = performance.now();\n const formulaNeedsUpdate = paths.some((path) => this.checkFormulaForUpdate(this.node().formula, path));\n if (formulaNeedsUpdate) {\n console.log(`🧮 [${this.node().type}] Formula needs update`);\n await this.updateValueBasedOnFormula();\n }\n const formulaTime = performance.now() - formulaStartTime;\n // Emit context changes\n paths.forEach((path) => {\n this.onContextChanged.next({ path });\n });\n const totalTime = performance.now() - startTime;\n console.log(`✅ [${this.node().type}] Batch processing completed in ${totalTime.toFixed(2)}ms (options: ${optionsTime.toFixed(2)}ms, formula: ${formulaTime.toFixed(2)}ms)`);\n }\n //#endregion\n //#region ---- Context Relevance Filtering ----\n isRelevantContextChange(changedPath) {\n const node = this.node();\n // 1. Direct path match - widget's own field\n if (node.path === changedPath) {\n return true;\n }\n // 2. Parent path match - widget is inside the changed container\n if (node.path && changedPath.startsWith(node.path + '.')) {\n return true;\n }\n // 3. Child path match - changed field is inside this widget's container\n if (node.path && node.path.startsWith(changedPath + '.')) {\n return true;\n }\n // 4. Expression dependency check - if widget has expressions that depend on this path\n if (this.hasExpressionDependency(changedPath)) {\n return true;\n }\n // 5. Formula dependency check - if widget's formula depends on this path\n if (node.formula && this.checkFormulaForUpdate(node.formula, changedPath)) {\n return true;\n }\n // 6. Trigger dependency check - if widget has triggers that depend on this path\n if (this.hasTriggerDependency(changedPath)) {\n return true;\n }\n return false;\n }\n hasExpressionDependency(changedPath) {\n // Check if any cached expressions depend on the changed path\n for (const [path, evaluator] of this.expressionEvaluators) {\n // Check if the expression path itself contains the changed path\n if (path.includes(changedPath)) {\n return true;\n }\n // Parse the actual expression content to check for context.eval() calls\n // We need to get the original expression string to analyze it\n const node = this.node();\n const expressionValue = this.getExpressionValueFromNode(node, path);\n if (expressionValue && typeof expressionValue === 'string') {\n // Look for context.eval() calls that reference the changed path\n const contextEvalRegex = /context\\.eval\\(['\"]([^'\\\"]+)['\"]\\)/g;\n let match;\n while ((match = contextEvalRegex.exec(expressionValue)) !== null) {\n const evalPath = match[1];\n // Normalize Id-suffixed segments to dot-id form (e.g., 'typeId' -> 'type.id', 'party.typeId' -> 'party.type.id')\n const normalizePath = (p) => {\n if (!p)\n return p;\n const parts = p.split('.');\n const last = parts[parts.length - 1];\n if (last && last.endsWith('Id')) {\n parts.splice(parts.length - 1, 1, last.slice(0, -2), 'id');\n }\n return parts.join('.');\n };\n const isSegmentSuffix = (a, b) => {\n if (!a || !b)\n return false;\n const pa = a.split('.');\n const pb = b.split('.');\n if (pb.length > pa.length)\n return false;\n for (let i = 1; i <= pb.length; i++) {\n if (pa[pa.length - i] !== pb[pb.length - i])\n return false;\n }\n return true;\n };\n const evalNorm = normalizePath(evalPath);\n const changedNorm = normalizePath(changedPath);\n // Debug log for dependency check\n console.log(`🧭 [${this.node().type}] dep-check expr='${path}', changed='${changedPath}', eval='${evalPath}', evalNorm='${evalNorm}', changedNorm='${changedNorm}'`);\n // Generic direct and hierarchical dependency checks (raw and normalized)\n const rawMatch = evalPath === changedPath ||\n evalPath.startsWith(changedPath + '.') ||\n changedPath.startsWith(evalPath + '.') ||\n isSegmentSuffix(evalPath, changedPath) ||\n isSegmentSuffix(changedPath, evalPath);\n const normMatch = evalNorm === changedNorm ||\n evalNorm.startsWith(changedNorm + '.') ||\n changedNorm.startsWith(evalNorm + '.') ||\n isSegmentSuffix(evalNorm, changedNorm) ||\n isSegmentSuffix(changedNorm, evalNorm);\n if (rawMatch || normMatch) {\n console.log(`🔍 [${this.node().type}] Expression '${path}' depends on '${changedPath}' via context.eval('${evalPath}') (generic match)`);\n return true;\n }\n // Check for path aliases/mappings (e.g., typeId.id <-> type.id)\n if (this.isPathAlias(evalPath, changedPath)) {\n console.log(`🔍 [${this.node().type}] Expression '${path}' depends on '${changedPath}' via context.eval('${evalPath}') (path alias)`);\n return true;\n }\n }\n }\n }\n return false;\n }\n isPathAlias(evalPath, changedPath) {\n // Dynamic path alias detection based on 'Id' suffix pattern\n // Examples: typeId.id <-> type.id, categoryId.name <-> category.name\n // Check if evalPath ends with 'Id' and has a property\n if (evalPath.endsWith('Id') && evalPath.includes('.')) {\n const basePath = evalPath.substring(0, evalPath.lastIndexOf('Id'));\n const property = evalPath.substring(evalPath.lastIndexOf('.') + 1);\n const mappedPath = `${basePath}.${property}`;\n if (changedPath === mappedPath) {\n console.log(`🔍 [${this.node().type}] Path alias detected: '${evalPath}' <-> '${changedPath}'`);\n return true;\n }\n }\n // Check if changedPath ends with 'Id' and has a property\n if (changedPath.endsWith('Id') && changedPath.includes('.')) {\n const basePath = changedPath.substring(0, changedPath.lastIndexOf('Id'));\n const property = changedPath.substring(changedPath.lastIndexOf('.') + 1);\n const mappedPath = `${basePath}.${property}`;\n if (evalPath === mappedPath) {\n console.log(`🔍 [${this.node().type}] Path alias detected: '${evalPath}' <-> '${changedPath}'`);\n return true;\n }\n }\n // Check for direct 'Id' suffix mapping (e.g., typeId <-> type.id)\n if (evalPath.endsWith('Id') && !evalPath.includes('.')) {\n const basePath = evalPath.substring(0, evalPath.lastIndexOf('Id'));\n const mappedPath = `${basePath}.id`;\n if (changedPath === mappedPath) {\n console.log(`🔍 [${this.node().type}] Path alias detected: '${evalPath}' <-> '${changedPath}'`);\n return true;\n }\n }\n if (changedPath.endsWith('Id') && !changedPath.includes('.')) {\n const basePath = changedPath.substring(0, changedPath.lastIndexOf('Id'));\n const mappedPath = `${basePath}.id`;\n if (evalPath === mappedPath) {\n console.log(`🔍 [${this.node().type}] Path alias detected: '${evalPath}' <-> '${changedPath}'`);\n return true;\n }\n }\n return false;\n }\n getExpressionValueFromNode(node, path) {\n try {\n // Navigate through the node structure to find the expression value\n const pathParts = path.split('.');\n let current = node.options || {};\n // Navigate through the path parts\n for (const part of pathParts) {\n if (current && typeof current === 'object' && part in current) {\n current = current[part];\n }\n else {\n return null;\n }\n }\n return typeof current === 'string' ? current : null;\n }\n catch (error) {\n console.error('Error extracting expression value from node:', error);\n return null;\n }\n }\n hasTriggerDependency(changedPath) {\n const node = this.node();\n const triggers = node.triggers || node.options?.['triggers'] || this.mergedOptions()?.triggers;\n if (!triggers)\n return false;\n // Check if any trigger event depends on the changed path\n for (const trigger of triggers) {\n if (trigger.event && trigger.event.includes(changedPath)) {\n return true;\n }\n }\n return false;\n }\n //#endregion\n // Removed visibility detection methods - not needed for current implementation\n // Detect input changes\n ngOnChanges(changes) {\n if (changes['mode'] || changes['node']) {\n // Check if either 'mode' or 'node' has changed\n this.rerenderComponent();\n }\n }\n rerenderComponent() {\n // Clear any pending render operation to prevent double rendering\n if (this.renderTimeoutId) {\n clearTimeout(this.renderTimeoutId);\n this.renderTimeoutId = null;\n }\n // Reset loading state to allow re-rendering\n this.isLoading.set(false);\n // Schedule the component loading\n this.renderTimeoutId = setTimeout(async () => {\n await this.loadComponent();\n this.renderTimeoutId = null;\n });\n }\n ngOnDestroy() {\n if (this.renderTimeoutId) {\n clearTimeout(this.renderTimeoutId);\n }\n if (this.contextUpdateTimeout) {\n clearTimeout(this.contextUpdateTimeout);\n }\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n }\n async loadComponent() {\n if (this.isLoading()) {\n return;\n }\n this.isLoading.set(true);\n try {\n // Destroy the existing component if it exists\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n this.viewContainerRef.clear();\n //\n const widget = this.widgetRegistery.resolve(this.node().type);\n //\n const propertiesToProcess = [\n ...(widget?.properties ?? []),\n ...(widget?.components[this.mode()]?.properties ?? []),\n ]?.filter((c) => c.schema.defaultValue != null);\n // Process default values (evaluate expressions if needed)\n const props = {};\n for (const property of propertiesToProcess) {\n const defaultValue = property.schema.defaultValue;\n if (typeof defaultValue === 'string' && this.expressionEvaluator.isExpression(defaultValue)) {\n // Evaluate expression for default value\n try {\n const evaluatedValue = await this.evaluateExpression(defaultValue);\n props[property.name] = evaluatedValue;\n }\n catch (error) {\n console.error(`Error evaluating default value expression for property ${property.name}:`, error);\n props[property.name] = cloneDeep(defaultValue); // Fallback to original value\n }\n }\n else {\n // Use static default value\n props[property.name] = cloneDeep(defaultValue);\n }\n }\n //\n this.mergedOptions.set(merge(props, widget?.options, this.node().options) || {});\n this.expressionEvaluators.clear();\n // Register expressions from widget defaults and node options to cover related-entity cases\n this.preprocessAndInitialOptions(cloneDeep(widget?.options));\n this.preprocessAndInitialOptions(cloneDeep(this.node().options));\n await this.updateOptionsBasedOnContext();\n //\n this._options.update((val) => ({ ...val, ...this.mergedOptions() }));\n // Evaluate default value\n let defaultValue = this.node().defaultValue;\n if (defaultValue && this.expressionEvaluator.isExpression(defaultValue)) {\n defaultValue = await this.evaluateExpression(defaultValue);\n }\n //\n const tokenValue = {\n node: this.node(),\n defaultValue: defaultValue,\n options: this.mergedOptions(),\n config: widget,\n };\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n //\n const loadingRef = this.viewContainerRef.createComponent(AXPWidgetPlaceholderComponent);\n //\n const com = await widget?.components[this.mode()]?.component();\n if (!com) {\n console.error(`${this.node().type} widget component not found with mode: ${this.mode()}`);\n return;\n }\n this.componentRef = this.viewContainerRef.createComponent(com, { injector: token });\n this.instance = this.componentRef.instance;\n this.instance.setStatus(AXPWidgetStatus.Rendering);\n this.instance.parent = this.parentNode();\n this.instance.index = this.index();\n this.instance.mode = this.mode();\n this.instance.setStatus(AXPWidgetStatus.Rendered);\n this.instance?.onOptionsChanged?.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onOptionsChanged.emit({ sender: this, widget: c.sender });\n });\n this.instance?.onValueChanged?.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onValueChanged.emit({ sender: this, widget: c.sender });\n });\n await this.updateValueBasedOnFormula();\n await this.assignTriggers();\n //\n loadingRef.destroy();\n // Mark that initial render is complete\n this.hasInitialRender = true;\n // Re-evaluate expressions after initial render to catch late-arriving related context\n if (this.expressionEvaluators.size > 0) {\n console.log(`🔄 [${this.node().type}] Re-evaluating expressions after initial render`);\n await this.updateOptionsBasedOnContext();\n this.applyOptions();\n }\n // Process any buffered pre-render context changes now that the component is ready\n if (this.preRenderContextQueue.size > 0) {\n console.log(`🚀 [${this.node().type}] Processing ${this.preRenderContextQueue.size} buffered pre-render changes`);\n this.preRenderContextQueue.forEach((p) => this.contextUpdateQueue.add(p));\n this.preRenderContextQueue.clear();\n await this.processBatchedUpdates();\n }\n }\n catch (error) {\n console.error('Error loading component:', error);\n }\n finally {\n this.isLoading.set(false);\n }\n }\n applyOptions() {\n if (!this.instance)\n return;\n const currentOptions = this.mergedOptions();\n // Check if options have actually changed\n if (this.hasOptionsChanged(currentOptions)) {\n console.log('applyOptions', this.node().path, '- options changed');\n this._options.update((val) => ({ ...val, ...currentOptions }));\n this.instance.setOptions(currentOptions);\n this.lastAppliedOptions = cloneDeep(currentOptions); // Deep clone using Lodash\n }\n else {\n console.log('applyOptions', this.node().path, '- no changes, skipping');\n }\n }\n hasOptionsChanged(newOptions) {\n if (!this.lastAppliedOptions) {\n return true; // First time, always apply\n }\n // Deep comparison of options using Lodash isEqual\n return !isEqual(newOptions, this.lastAppliedOptions);\n }\n // Removed deepCloneValue method - now using Lodash cloneDeep\n checkFormulaForUpdate(formula, path) {\n if (formula) {\n const regex = /context\\.eval\\('([^']+)'\\)/g;\n const matches = formula.match(regex);\n const nodes = matches ? matches.map((match) => match.match(/'([^']+)'/)[1]) : [];\n return nodes.includes(path);\n }\n else\n return false;\n }\n preprocessAndInitialOptions(obj, pathPrefix = '') {\n if (!obj) {\n return;\n }\n Object.entries(obj).forEach(([key, value]) => {\n const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;\n // CRITICAL FIX: Skip trigger actions during options processing\n //\n // PROBLEM: Trigger actions were being evaluated immediately during widget setup/options processing,\n // causing them to execute before the actual trigger event occurred. This meant triggers would fire\n // during initialization instead of when the specified context path actually changed.\n //\n // ROOT CAUSE: The expression evaluator was processing trigger action expressions (like console.log\n // or widget.setValue calls) as part of the normal options preprocessing, treating them as dynamic\n // expressions that needed immediate evaluation.\n //\n // SOLUTION: Detect when we're processing trigger actions and store them as static values without\n // expression evaluation. This ensures trigger actions are only evaluated when the trigger's\n // subscription callback actually fires (when the event condition is met).\n //\n // RESULT: Triggers now only execute when their event filters pass (e.g., when the specified\n // context path changes), not during widget initialization.\n if (currentPath.includes('triggers') && (key === 'action' || currentPath.endsWith('.action'))) {\n // Apply static values directly without expression evaluation\n this.mergedOptions.update((currentOptions) => {\n return set(currentOptions, currentPath, value);\n });\n return;\n }\n if (typeof value === 'string' && this.expressionEvaluator.isExpression(value)) {\n // Cache dynamic expression for later evaluation\n this.expressionEvaluators.set(currentPath, () => this.evaluateExpression(value));\n }\n else if (typeof value === 'object' &&\n value !== null &&\n (value.constructor === Object || Array.isArray(value))) {\n // Recursively handle nested objects\n this.preprocessAndInitialOptions(value, currentPath);\n }\n else {\n // Apply static values directly\n this.mergedOptions.update((currentOptions) => {\n return set(currentOptions, currentPath, value);\n });\n }\n });\n }\n async updateOptionsBasedOnContext() {\n // Early return if no expressions to evaluate\n if (this.expressionEvaluators.size === 0) {\n return 0;\n }\n console.log(`🔍 [${this.node().type}] Evaluating ${this.expressionEvaluators.size} expressions`);\n const updatePromises = Array.from(this.expressionEvaluators).map(async ([path, evaluator]) => {\n // Check cache first\n const cachedValue = this.getCachedExpressionResult(path);\n if (cachedValue !== null) {\n console.log(`💾 [${this.node().type}] Using cached expression result for '${path}'`);\n return { path, newValue: cachedValue, fromCache: true };\n }\n // Evaluate expression if not cached\n const evalStartTime = performance.now();\n const newValue = await evaluator();\n const evalTime = performance.now() - evalStartTime;\n // Check if result has actually changed using Lodash isEqual\n const lastValue = this.lastExpressionResults.get(path);\n const hasChanged = !isEqual(newValue, lastValue);\n if (hasChanged) {\n console.log(`📝 [${this.node().type}] Expression '${path}' evaluated in ${evalTime.toFixed(2)}ms - value changed`);\n // Cache the result and track it\n this.setCachedExpressionResult(path, newValue);\n this.lastExpressionResults.set(path, cloneDeep(newValue));\n return { path, newValue, fromCache: false, hasChanged: true };\n }\n else {\n console.log(`📝 [${this.node().type}] Expression '${path}' evaluated in ${evalTime.toFixed(2)}ms - value unchanged, skipping update`);\n // Cache the result but don't update\n this.setCachedExpressionResult(path, newValue);\n this.lastExpressionResults.set(path, cloneDeep(newValue));\n return { path, newValue, fromCache: false, hasChanged: false };\n }\n });\n // Wait for all evaluators to complete\n const updates = await Promise.all(updatePromises);\n // Filter updates to only include those that have actually changed\n const changedUpdates = updates.filter((update) => update.hasChanged !== false);\n // Apply updates to mergedOptions only for changed values\n if (changedUpdates.length > 0) {\n this.mergedOptions.update((o) => {\n const updatedOptions = { ...o };\n changedUpdates.forEach(({ path, newValue }) => {\n set(updatedOptions, path, newValue);\n });\n return updatedOptions;\n });\n }\n const cacheHits = updates.filter((update) => update.fromCache).length;\n const skippedUpdates = updates.length - changedUpdates.length;\n console.log(`📋 [${this.node().type}] Applied ${changedUpdates.length} expression updates (${cacheHits} cache hits, ${skippedUpdates} skipped)`);\n return changedUpdates.length;\n }\n async updateValueBasedOnFormula() {\n if (this.node().formula) {\n const value = await this.evaluateExpression(this.node().formula);\n this.instance.setValue(value);\n }\n }\n async evaluateExpression(templateExpression) {\n try {\n const scope = this.buildExpressionScope();\n return await this.expressionEvaluator.evaluate(templateExpression, scope);\n }\n catch (error) {\n console.error('Error evaluating expression:', error);\n return false;\n }\n }\n buildExpressionScope() {\n return {\n context: this.getContextScope(),\n events: this.getEventScope(),\n widget: this.getWidgetScope(),\n methods: this.getFunctionScope(),\n vars: this.getVariablesScope(),\n };\n }\n getContextScope() {\n return {\n eval: (path) => {\n //TODO: Handle array index\n const fullPath = path.startsWith('>') ? `${this.instance?.parentPath()}.${path.substring(1)}` : path;\n const value = this.contextService.getValue(fullPath);\n return value;\n },\n set: (path, value) => {\n this.contextService.update(path, value);\n },\n data: () => {\n return this.contextService.data();\n },\n isDirty: () => {\n return this.contextService.isDirty();\n },\n };\n }\n getEventScope() {\n return {\n context: (path) => {\n return this.onContextChanged.pipe(filter((c) => {\n // If no path filter specified, pass all events\n if (path == null || path === '') {\n return true;\n }\n // Ensure c.path exists\n if (!c.path) {\n return false;\n }\n // Pattern: \"prefix*\" - matches paths that start with prefix\n if (path.endsWith('*')) {\n const prefix = path.substring(0, path.length - 1);\n return c.path.startsWith(prefix);\n }\n // Pattern: \"*suffix\" - matches paths that end with suffix\n else if (path.startsWith('*')) {\n const suffix = path.substring(1);\n return c.path.endsWith(suffix);\n }\n // Exact match\n else {\n return c.path === path;\n }\n }));\n },\n from: (event) => get(this.instance.api(), event),\n };\n }\n getWidgetScope() {\n return {\n call: (name, ...args) => {\n this.instance.call(name, ...args);\n },\n setValue: (value) => {\n this.instance.setValue(value);\n },\n clear: () => {\n this.instance.setValue(undefined);\n },\n refresh: () => {\n const refresh = this.instance?.['refresh'];\n if (refresh && typeof refresh === 'function') {\n refresh.bind(this.instance)();\n }\n },\n output: (name) => {\n this.instance.output(name);\n },\n find: (id) => {\n return this.builderService.getWidget(id);\n },\n };\n }\n getFunctionScope() {\n const scope = {\n sum: (values) => {\n return sum(values);\n },\n translate: (text, options) => {\n return this.translateService.translateAsync(text, options);\n },\n widgetInfo: (name) => {\n return this.widgetService.resolve(name);\n },\n };\n // Add custom functions from builder service\n Object.entries(this.builderService.functions).forEach(([key, fn]) => {\n scope[key] = (...args) => {\n return fn(...args);\n };\n });\n return scope;\n }\n getVariablesScope() {\n return {\n eval: (path) => get(this.builderService.variables, path),\n };\n }\n async assignTriggers() {\n const node = this.node();\n // Check multiple possible locations for triggers\n const triggers = node.triggers || node.options?.['triggers'] || this.mergedOptions()?.triggers;\n if (!triggers) {\n return;\n }\n for (const trigger of triggers) {\n try {\n const event = await this.evaluateTrigger(trigger.event);\n if (event) {\n event.pipe(this.unsubscriber.takeUntilDestroy).subscribe(() => {\n const exec = async (action) => {\n if (!isEmpty(action) && isString(action)) {\n await this.evaluateAction(action);\n }\n };\n const actions = Array.isArray(trigger.action) ? trigger.action : [trigger.action];\n actions.forEach(async (a) => await exec(a));\n });\n }\n }\n catch (error) {\n console.error('Error assigning trigger:', error);\n }\n }\n }\n async evaluateTrigger(templateExpression) {\n try {\n const scope = this.buildExpressionScope();\n const result = await this.expressionEvaluator.evaluate(templateExpression, scope);\n // Check if result is an Observable\n if (result && typeof result.subscribe === 'function') {\n return result;\n }\n else {\n return null;\n }\n }\n catch (error) {\n console.error('Error evaluating trigger expression:', error);\n return null;\n }\n }\n async evaluateAction(templateExpression) {\n try {\n const scope = this.buildExpressionScope();\n await this.expressionEvaluator.evaluate(templateExpression, scope);\n }\n catch (error) {\n console.error('Error evaluating action expression:', templateExpression, error);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetRendererDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.8\", type: AXPWidgetRendererDirective, isStandalone: false, selector: \"[axp-widget-renderer]\", inputs: { parentNode: { classPropertyName: \"parentNode\", publicName: \"parentNode\", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: \"index\", publicName: \"index\", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: \"mode\", publicName: \"mode\", isSignal: true, isRequired: true, transformFunction: null }, node: { classPropertyName: \"node\", publicName: \"node\", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onOptionsChanged: \"onOptionsChanged\", onValueChanged: \"onValueChanged\" }, providers: [\n {\n provide: AXUnsubscriber,\n },\n ], exportAs: [\"widgetRenderer\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetRendererDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-widget-renderer]',\n exportAs: 'widgetRenderer',\n providers: [\n {\n provide: AXUnsubscriber,\n },\n ],\n standalone: false,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXJlbmRlcmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL3dpZGdldC1yZW5kZXJlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQStCLDZCQUE2QixFQUFlLE1BQU0sdUJBQXVCLENBQUM7QUFDaEgsT0FBTyxFQUVMLFNBQVMsRUFDVCxRQUFRLEVBRVIsZ0JBQWdCLEVBRWhCLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEYsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFLTCxnQkFBZ0IsR0FDakIsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFjeEIsTUFBTSxPQUFPLDBC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QUFFLGNBQWM7YUFDeEI7U0FDRjs7MkZBR1UsMEJBQTBCO2tCQVZ0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsY0FBYzt5QkFDeEI7cUJBQ0Y7b0JBQ0QsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhUcmFuc2xhdGVPcHRpb25zLCBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFVuc3Vic2NyaWJlciB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XG5pbXBvcnQgeyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUsIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlLCBBWFBNZXRhRGF0YSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQge1xuICBDb21wb25lbnRSZWYsXG4gIERpcmVjdGl2ZSxcbiAgSW5qZWN0b3IsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFdyaXRhYmxlU2lnbmFsLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZ2V0LCBpc0VtcHR5LCBpc0VxdWFsLCBpc1N0cmluZywgbWVyZ2UsIHNldCwgc3VtIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGZpbHRlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UgfSBmcm9tICcuL2J1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyQ29udGV4dFN0b3JlIH0gZnJvbSAnLi9jb250ZXh0LXN0b3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQQmFzZVdpZGdldENvbXBvbmVudCwgQVhQTGF5b3V0QmFzZVdpZGdldENvbXBvbmVudCwgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBXaWRnZXRQbGFjZWhvbGRlckNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0LXBsYWNlaG9sZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL3dpZGdldC1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRTdGF0dXMgfSBmcm9tICcuL3dpZGdldC1zdGF0dXMudHlwZXMnO1xuaW1wb3J0IHtcbiAgQVhQV2lkZ2V0Q29uZmlnLFxuICBBWFBXaWRnZXROb2RlLFxuICBBWFBXaWRnZXROb2RlVG9rZW4sXG4gIEFYUFdpZGdldFJlbmRlck1vZGUsXG4gIEFYUF9XSURHRVRfVE9LRU4sXG59IGZyb20gJy4vd2lkZ2V0LnR5cGVzJztcblxuZXhwb3J0IHR5cGUgQVhQV2lkZ2V0UmVuZGVyZXJEaXJlY3RpdmVPcHRpb25zID0gQVhQTWV0YURhdGE7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1theHAtd2lkZ2V0LXJlbmRlcmVyXScsXG4gIGV4cG9ydEFzOiAnd2lkZ2V0UmVuZGVyZXInLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFVuc3Vic2NyaWJlcixcbiAgICB9LFxuICBdLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV2lkZ2V0UmVuZGVyZXJEaXJlY3RpdmUge1xuICBwYXJlbnROb2RlID0gaW5wdXQ8QVhQTGF5b3V0QmFzZVdpZGdldENvbXBvbmVudCB8IG51bGw+KCk7XG5cbiAgaW5kZXggPSBpbnB1dDxudW1iZXIgfCBudWxsPigpO1xuXG4gIG1vZGUgPSBpbnB1dC5yZXF1aXJlZDxBWFBXaWRnZXRSZW5kZXJNb2RlPigpO1xuICBub2RlID0gaW5wdXQucmVxdWlyZWQ8QVhQV2lkZ2V0Tm9kZT4oKTtcblxuICBwcml2YXRlIF9vcHRpb25zID0gc2lnbmFsPEFYUFdpZGdldFJlbmRlcmVyRGlyZWN0aXZlT3B0aW9ucz4oe30pO1xuICBwdWJsaWMgb3B0aW9ucyA9IHRoaXMuX29wdGlvbnMuYXNSZWFkb25seSgpO1xuXG4gIHB1YmxpYyBvbk9wdGlvbnNDaGFuZ2VkID0gb3V0cHV0PHsgc2VuZGVyOiBBWFBXaWRnZXRSZW5kZXJlckRpcmVjdGl2ZTsgd2lkZ2V0OiBBWFBCYXNlV2lkZ2V0Q29tcG9uZW50IH0+KCk7XG4gIHB1YmxpYyBvblZhbHVlQ2hhbmdlZCA9IG91dHB1dDx7IHNlbmRlcjogQVhQV2lkZ2V0UmVuZGVyZXJEaXJlY3RpdmU7IHdpZGdldDogQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfT4oKTtcblxuICAvLyNyZWdpb24gLS0tLSAgIFByb3BlcnRpZXMgICAtLS0tXG5cbiAgcHJvdGVjdGVkIG1lcmdlZE9wdGlvbnM6IFdyaXRhYmxlU2lnbmFsPGFueT4gPSBzaWduYWw8YW55Pih7fSk7XG5cbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByb3RlY3RlZCBidWlsZGVyU2VydmljZSA9IGluamVjdChBWFBMYXlvdXRCdWlsZGVyU2VydmljZSk7XG4gIHByb3RlY3RlZCBjb250ZXh0U2VydmljZSA9IGluamVjdChBWFBMYXlvdXRCdWlsZGVyQ29udGV4dFN0b3JlKTtcbiAgcHJvdGVjdGVkIHdpZGdldFJlZ2lzdGVyeSA9IGluamVjdChBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgdW5zdWJzY3JpYmVyID0gaW5qZWN0KEFYVW5zdWJzY3JpYmVyKTtcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgd2lkZ2V0U2VydmljZSA9IGluamVjdChBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgZXhwcmVzc2lvbkV2YWx1YXRvciA9IGluamVjdChBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2VydmljZSk7XG4gIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblxuICBwcm90ZWN0ZWQgaXNMb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgLy9UT0RPIGNoZWNrIGlmIGluc3RhbmNlIGNhbm5vdCBiZSBwdWJsaWMgY2hhbmdlIGl0OlxuICBwdWJsaWMgaW5zdGFuY2UhOiBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDtcbiAgcHJpdmF0ZSBleHByZXNzaW9uRXZhbHVhdG9yczogTWFwPHN0cmluZywgKCkgPT4gUHJvbWlzZTxhbnk+PiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+O1xuICBwcml2YXRlIHJlbmRlclRpbWVvdXRJZDogYW55ID0gbnVsbDtcbiAgcHJpdmF0ZSBoYXNJbml0aWFsUmVuZGVyID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBvbkNvbnRleHRDaGFuZ2VkID0gbmV3IFN1YmplY3Q8eyBwYXRoOiBzdHJpbmcgfT4oKTtcblxuICAvLyNyZWdpb24gLS0tLSAgIFBlcmZvcm1hbmNlIE9wdGltaXphdGlvbiBQcm9wZXJ0aWVzICAgLS0tLVxuXG4gIHByaXZhdGUgY29udGV4dFVwZGF0ZVF1ZXVlID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgY29udGV4dFVwZGF0ZVRpbWVvdXQ6IGFueSA9IG51bGw7XG4gIHByaXZhdGUgcmVhZG9ubHkgQ09OVEVYVF9VUERBVEVfREVCT1VOQ0VfTVMgPSA0OyAvLyB+MjUwZnBzIGZvciBsYXJnZSBmb3Jtc1xuXG4gIC8vIFJlbW92ZWQgdmlzaWJpbGl0eSBkZXRlY3Rpb24gLSBub3QgbmVlZGVkIGZvciBjdXJyZW50IGltcGxlbWVudGF0aW9uXG5cbiAgLy8gRXhwcmVzc2lvbiByZXN1bHQgY2FjaGluZ1xuICBwcml2YXRlIGV4cHJlc3Npb25DYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCB7IHZhbHVlOiBhbnk7IHRpbWVzdGFtcDogbnVtYmVyIH0+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgRVhQUkVTU0lPTl9DQUNIRV9UVEwgPSA1MDA7IC8vIENhY2hlIGZvciA1MDBtcyAoaW5jcmVhc2VkIGZvciBiZXR0ZXIgaGl0IHJhdGUpXG5cbiAgLy8gT3B0aW9ucyBjaGFuZ2UgdHJhY2tpbmdcbiAgcHJpdmF0ZSBsYXN0QXBwbGllZE9wdGlvbnM6IGFueSA9IG51bGw7XG5cbiAgLy8gRXhwcmVzc2lvbiByZXN1bHQgdHJhY2tpbmdcbiAgcHJpdmF0ZSBsYXN0RXhwcmVzc2lvblJlc3VsdHMgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuXG4gIC8vIEJ1ZmZlciBmb3IgY29udGV4dCBjaGFuZ2VzIHRoYXQgaGFwcGVuIGJlZm9yZSBpbml0aWFsIHJlbmRlciBjb21wbGV0ZXNcbiAgcHJpdmF0ZSBwcmVSZW5kZXJDb250ZXh0UXVldWUgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNlbmRyZWdpb25cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY2hhbmdlZCA9IHRoaXMuY29udGV4dFNlcnZpY2UuY2hhbmdlRXZlbnQoKTtcblxuICAgICAgLy8gRG9uJ3QgdHJpZ2dlciByZS1yZW5kZXIgZHVyaW5nIGluaXRpYWwgc2V0dXBcbiAgICAgIGlmICghdGhpcy5oYXNJbml0aWFsUmVuZGVyKSB7XG4gICAgICAgIGlmIChjaGFuZ2VkLnBhdGgpIHtcbiAgICAgICAgICB0aGlzLnByZVJlbmRlckNvbnRleHRRdWV1ZS5hZGQoY2hhbmdlZC5wYXRoKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhg8J+TnSBbJHt0aGlzLm5vZGUoKS50eXBlfV0gQnVmZmVyZWQgcHJlLXJlbmRlciBjb250ZXh0IGNoYW5nZTogJHtjaGFuZ2VkLnBhdGh9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBDUklUSUNBTCBQRVJGT1JNQU5DRSBGSVg6IE9ubHkgcmVzcG9uZCB0byByZWxldmFudCBjb250ZXh0IGNoYW5nZXNcbiAgICAgIGlmIChjaGFuZ2VkLnBhdGggJiYgdGhpcy5pc1JlbGV2YW50Q29udGV4dENoYW5nZShjaGFuZ2VkLnBhdGgpKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGDwn46vIFske3RoaXMubm9kZSgpLnR5cGV9XSBDb250ZXh0IGNoYW5nZSBkZXRlY3RlZDogJHtjaGFuZ2VkLnBhdGh9YCk7XG4gICAgICAgIHRoaXMucXVldWVDb250ZXh0VXBkYXRlKGNoYW5nZWQucGF0aCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmJ1aWxkZXJTZXJ2aWNlLm9uUmVmcmVzaC5waXBlKHRoaXMudW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCB0aGlzLnByb2Nlc3NCYXRjaGVkVXBkYXRlcygpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8jcmVnaW9uIC0tLS0gICBFeHByZXNzaW9uIENhY2hpbmcgTWV0aG9kcyAgIC0tLS1cblxuICBwcml2YXRlIGdldENhY2hlZEV4cHJlc3Npb25SZXN1bHQoZXhwcmVzc2lvbktleTogc3RyaW5nKTogYW55IHwgbnVsbCB7XG4gICAgY29uc3QgY2FjaGVkID0gdGhpcy5leHByZXNzaW9uQ2FjaGUuZ2V0KGV4cHJlc3Npb25LZXkpO1xuICAgIGlmIChjYWNoZWQgJiYgcGVyZm9ybWFuY2Uubm93KCkgLSBjYWNoZWQudGltZXN0YW1wIDwgdGhpcy5FWFBSRVNTSU9OX0NBQ0hFX1RUTCkge1xuICAgICAgY29uc29sZS5sb2coYPCfkr4gWyR7dGhpcy5ub2RlKCkudHlwZX1dIFVzaW5nIGNhY2hlZCBleHByZXNzaW9uIHJlc3VsdCBmb3IgJyR7ZXhwcmVzc2lvbktleX0nYCk7XG4gICAgICByZXR1cm4gY2FjaGVkLnZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2FjaGVkRXhwcmVzc2lvblJlc3VsdChleHByZXNzaW9uS2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmV4cHJlc3Npb25DYWNoZS5zZXQoZXhwcmVzc2lvbktleSwge1xuICAgICAgdmFsdWUsXG4gICAgICB0aW1lc3RhbXA6IHBlcmZvcm1hbmNlLm5vdygpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckV4cHJlc3Npb25DYWNoZSgpOiB2b2lkIHtcbiAgICB0aGlzLmV4cHJlc3Npb25DYWNoZS5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1BhdGhBZmZlY3RpbmdFeHByZXNzaW9ucyhjaGFuZ2VkUGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBg8J+UjSBbJHt0aGlzLm5vZGUoKS50eXBlfV0gQ2hlY2tpbmcgaWYgcGF0aCAnJHtjaGFuZ2VkUGF0aH0nIGFmZmVjdHMgZXhwcmVzc2lvbnMuIEV4cHJlc3Npb24gY291bnQ6ICR7dGhpcy5leHByZXNzaW9uRXZhbHVhdG9ycy5zaXplfWAsXG4gICAgKTtcblxuICAgIC8vIElmIHdpZGdldCBoYXMgbm8gZXhwcmVzc2lvbnMsIG5vIG5lZWQgdG8gY2xlYXIgY2FjaGVcbiAgICBpZiAodGhpcy5leHByZXNzaW9uRXZhbHVhdG9ycy5zaXplID09PSAwKSB7XG4gICAgICBjb25zb2xlLmxvZyhg8J+UjSBbJHt0aGlzLm5vZGUoKS50eXBlfV0gUGF0aCAnJHtjaGFuZ2VkUGF0aH0nIC0gbm8gZXhwcmVzc2lvbnMsIGtlZXBpbmcgY2FjaGVgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBVc2UgdGhlIHNhbWUgbG9naWMgYXMgaGFzRXhwcmVzc2lvbkRlcGVuZGVuY3kgdG8gY2hlY2sgZm9yIGFjdHVhbCBkZXBlbmRlbmNpZXNcbiAgICBpZiAodGhpcy5oYXNFeHByZXNzaW9uRGVwZW5kZW5jeShjaGFuZ2VkUGF0aCkpIHtcbiAgICAgIGNvbnNvbGUubG9nKGDwn5SNIFske3RoaXMubm9kZSgpLnR5cGV9XSBQYXRoICcke2NoYW5nZWRQYXRofScgYWZmZWN0cyBleHByZXNzaW9ucyAtIGNsZWFyaW5nIGNhY2hlYCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZyhg8J+UjSBbJHt0aGlzLm5vZGUoKS50eXBlfV0gUGF0aCAnJHtjaGFuZ2VkUGF0aH0nIGRvZXMgbm90IGFmZmVjdCBleHByZXNzaW9ucyAtIGtlZXBpbmcgY2FjaGVgKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIENvbnRleHQgQmF0Y2hpbmcgTWV0aG9kcyAgIC0tLS1cblxuICBwcml2YXRlIHF1ZXVlQ29udGV4dFVwZGF0ZShwYXRoOiBzdHJpbmcpIHtcbiAgICBpZiAocGF0aCkge1xuICAgICAgY29uc29sZS5sb2coYPCflIQgWyR7dGhpcy5ub2RlKCkudHlwZX1dIFF1ZXVlaW5nIGNvbnRleHQgdXBkYXRlIGZvciBwYXRoOiAke3BhdGh9YCk7XG4gICAgICB0aGlzLmNvbnRleHRVcGRhdGVRdWV1ZS5hZGQocGF0aCk7XG5cbiAgICAgIC8vIENsZWFyIGV4aXN0aW5nIHRpbWVvdXRcbiAgICAgIGlmICh0aGlzLmNvbnRleHRVcGRhdGVUaW1lb3V0KSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNvbnRleHRVcGRhdGVUaW1lb3V0KTtcbiAgICAgIH1cblxuICAgICAgLy8gRGVib3VuY2UgdXBkYXRlc1xuICAgICAgdGhpcy5jb250ZXh0VXBkYXRlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhg4pqhIFske3RoaXMubm9kZSgpLnR5cGV9XSBQcm9jZXNzaW5nIGJhdGNoZWQgdXBkYXRlcyBmb3IgJHt0aGlzLmNvbnRleHRVcGRhdGVRdWV1ZS5zaXplfSBwYXRoc2ApO1xuICAgICAgICB0aGlzLnByb2Nlc3NCYXRjaGVkVXBkYXRlcygpO1xuICAgICAgfSwgdGhpcy5DT05URVhUX1VQREFURV9ERUJPVU5DRV9NUyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcm9jZXNzQmF0Y2hlZFVwZGF0ZXMoKSB7XG4gICAgaWYgKHRoaXMuY29udGV4dFVwZGF0ZVF1ZXVlLnNpemUgPT09IDApIHJldHVybjtcblxuICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgIGNvbnN0IHBhdGhzID0gQXJyYXkuZnJvbSh0aGlzLmNvbnRleHRVcGRhdGVRdWV1ZSk7XG4gICAgdGhpcy5jb250ZXh0VXBkYXRlUXVldWUuY2xlYXIoKTtcblxuICAgIGNvbnNvbGUubG9nKGDwn5OKIFske3RoaXMubm9kZSgpLnR5cGV9XSBQcm9jZXNzaW5nICR7cGF0aHMubGVuZ3RofSBwYXRoczpgLCBwYXRocyk7XG5cbiAgICAvLyBDbGVhciBleHByZXNzaW9uIGNhY2hlIG9ubHkgaWYgY2hhbmdlZCBwYXRocyBhZmZlY3QgdGhpcyB3aWRnZXQncyBleHByZXNzaW9uc1xuICAgIGNvbnN0IHNob3VsZENsZWFyQ2FjaGUgPSBwYXRocy5zb21lKChwYXRoKSA9PiB0aGlzLmlzUGF0aEFmZmVjdGluZ0V4cHJlc3Npb25zKHBhdGgpKTtcbiAgICBpZiAoc2hvdWxkQ2xlYXJDYWNoZSkge1xuICAgICAgY29uc29sZS5sb2coYPCfl5HvuI8gWyR7dGhpcy5ub2RlKCkudHlwZX1dIENsZWFyaW5nIGV4cHJlc3Npb24gY2FjaGUgZHVlIHRvIGV4cHJlc3Npb24tYWZmZWN0aW5nIHBhdGggY2hhbmdlYCk7XG4gICAgICB0aGlzLmNsZWFyRXhwcmVzc2lvbkNhY2hlKCk7XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyB1cGRhdGVzIGluIGJhdGNoZXNcbiAgICBjb25zdCBvcHRpb25zU3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgY29uc3QgaGFzT3B0aW9uc1VwZGF0ZSA9IGF3YWl0IHRoaXMudXBkYXRlT3B0aW9uc0Jhc2VkT25Db250ZXh0KCk7XG4gICAgY29uc3Qgb3B0aW9uc1RpbWUgPSBwZXJmb3JtYW5jZS5ub3coKSAtIG9wdGlvbnNTdGFydFRpbWU7XG5cbiAgICBpZiAodHlwZW9mIGhhc09wdGlvbnNVcGRhdGUgPT09ICdudW1iZXInICYmIGhhc09wdGlvbnNVcGRhdGUgPiAwKSB7XG4gICAgICBjb25zb2xlLmxvZyhg8J+UpyBbJHt0aGlzLm5vZGUoKS50eXBlfV0gT3B0aW9ucyB1cGRhdGVkICgke29wdGlvbnNUaW1lLnRvRml4ZWQoMil9bXMpYCk7XG4gICAgICB0aGlzLmFwcGx5T3B0aW9ucygpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvcm11bGFzIGZvciBhbnkgb2YgdGhlIGNoYW5nZWQgcGF0aHNcbiAgICBjb25zdCBmb3JtdWxhU3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgY29uc3QgZm9ybXVsYU5lZWRzVXBkYXRlID0gcGF0aHMuc29tZSgocGF0aCkgPT4gdGhpcy5jaGVja0Zvcm11bGFGb3JVcGRhdGUodGhpcy5ub2RlKCkuZm9ybXVsYSwgcGF0aCkpO1xuXG4gICAgaWYgKGZvcm11bGFOZWVkc1VwZGF0ZSkge1xuICAgICAgY29uc29sZS5sb2coYPCfp64gWyR7dGhpcy5ub2RlKCkudHlwZX1dIEZvcm11bGEgbmVlZHMgdXBkYXRlYCk7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZVZhbHVlQmFzZWRPbkZvcm11bGEoKTtcbiAgICB9XG4gICAgY29uc3QgZm9ybXVsYVRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKSAtIGZvcm11bGFTdGFydFRpbWU7XG5cbiAgICAvLyBFbWl0IGNvbnRleHQgY2hhbmdlc1xuICAgIHBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAgIHRoaXMub25Db250ZXh0Q2hhbmdlZC5uZXh0KHsgcGF0aCB9KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRvdGFsVGltZSA9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgYOKchSBbJHt0aGlzLm5vZGUoKS50eXBlfV0gQmF0Y2ggcHJvY2Vzc2luZyBjb21wbGV0ZWQgaW4gJHt0b3RhbFRpbWUudG9GaXhlZCgyKX1tcyAob3B0aW9uczogJHtvcHRpb25zVGltZS50b0ZpeGVkKDIpfW1zLCBmb3JtdWxhOiAke2Zvcm11bGFUaW1lLnRvRml4ZWQoMil9bXMpYCxcbiAgICApO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBDb250ZXh0IFJlbGV2YW5jZSBGaWx0ZXJpbmcgICAtLS0tXG5cbiAgcHJpdmF0ZSBpc1JlbGV2YW50Q29udGV4dENoYW5nZShjaGFuZ2VkUGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMubm9kZSgpO1xuXG4gICAgLy8gMS4gRGlyZWN0IHBhdGggbWF0Y2ggLSB3aWRnZXQncyBvd24gZmllbGRcbiAgICBpZiAobm9kZS5wYXRoID09PSBjaGFuZ2VkUGF0aCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gMi4gUGFyZW50IHBhdGggbWF0Y2ggLSB3aWRnZXQgaXMgaW5zaWRlIHRoZSBjaGFuZ2VkIGNvbnRhaW5lclxuICAgIGlmIChub2RlLnBhdGggJiYgY2hhbmdlZFBhdGguc3RhcnRzV2l0aChub2RlLnBhdGggKyAnLicpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyAzLiBDaGlsZCBwYXRoIG1hdGNoIC0gY2hhbmdlZCBmaWVsZCBpcyBpbnNpZGUgdGhpcyB3aWRnZXQncyBjb250YWluZXJcbiAgICBpZiAobm9kZS5wYXRoICYmIG5vZGUucGF0aC5zdGFydHNXaXRoKGNoYW5nZWRQYXRoICsgJy4nKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gNC4gRXhwcmVzc2lvbiBkZXBlbmRlbmN5IGNoZWNrIC0gaWYgd2lkZ2V0IGhhcyBleHByZXNzaW9ucyB0aGF0IGRlcGVuZCBvbiB0aGlzIHBhdGhcbiAgICBpZiAodGhpcy5oYXNFeHByZXNzaW9uRGVwZW5kZW5jeShjaGFuZ2VkUGF0aCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIDUuIEZvcm11bGEgZGVwZW5kZW5jeSBjaGVjayAtIGlmIHdpZGdldCdzIGZvcm11bGEgZGVwZW5kcyBvbiB0aGlzIHBhdGhcbiAgICBpZiAobm9kZS5mb3JtdWxhICYmIHRoaXMuY2hlY2tGb3JtdWxhRm9yVXBkYXRlKG5vZGUuZm9ybXVsYSwgY2hhbmdlZFBhdGgpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyA2LiBUcmlnZ2VyIGRlcGVuZGVuY3kgY2hlY2sgLSBpZiB3aWRnZXQgaGFzIHRyaWdnZXJzIHRoYXQgZGVwZW5kIG9uIHRoaXMgcGF0aFxuICAgIGlmICh0aGlzLmhhc1RyaWdnZXJEZXBlbmRlbmN5KGNoYW5nZWRQYXRoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNFeHByZXNzaW9uRGVwZW5kZW5jeShjaGFuZ2VkUGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgLy8gQ2hlY2sgaWYgYW55IGNhY2hlZCBleHByZXNzaW9ucyBkZXBlbmQgb24gdGhlIGNoYW5nZWQgcGF0aFxuICAgIGZvciAoY29uc3QgW3BhdGgsIGV2YWx1YXRvcl0gb2YgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9ycykge1xuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGV4cHJlc3Npb24gcGF0aCBpdHNlbGYgY29udGFpbnMgdGhlIGNoYW5nZWQgcGF0aFxuICAgICAgaWYgKHBhdGguaW5jbHVkZXMoY2hhbmdlZFBhdGgpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBQYXJzZSB0aGUgYWN0dWFsIGV4cHJlc3Npb24gY29udGVudCB0byBjaGVjayBmb3IgY29udGV4dC5ldmFsKCkgY2FsbHNcbiAgICAgIC8vIFdlIG5lZWQgdG8gZ2V0IHRoZSBvcmlnaW5hbCBleHByZXNzaW9uIHN0cmluZyB0byBhbmFseXplIGl0XG4gICAgICBjb25zdCBub2RlID0gdGhpcy5ub2RlKCk7XG4gICAgICBjb25zdCBleHByZXNzaW9uVmFsdWUgPSB0aGlzLmdldEV4cHJlc3Npb25WYWx1ZUZyb21Ob2RlKG5vZGUsIHBhdGgpO1xuXG4gICAgICBpZiAoZXhwcmVzc2lvblZhbHVlICYmIHR5cGVvZiBleHByZXNzaW9uVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIC8vIExvb2sgZm9yIGNvbnRleHQuZXZhbCgpIGNhbGxzIHRoYXQgcmVmZXJlbmNlIHRoZSBjaGFuZ2VkIHBhdGhcbiAgICAgICAgY29uc3QgY29udGV4dEV2YWxSZWdleCA9IC9jb250ZXh0XFwuZXZhbFxcKFsnXCJdKFteJ1xcXCJdKylbJ1wiXVxcKS9nO1xuICAgICAgICBsZXQgbWF0Y2g7XG4gICAgICAgIHdoaWxlICgobWF0Y2ggPSBjb250ZXh0RXZhbFJlZ2V4LmV4ZWMoZXhwcmVzc2lvblZhbHVlKSkgIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBldmFsUGF0aCA9IG1hdGNoWzFdO1xuXG4gICAgICAgICAgLy8gTm9ybWFsaXplIElkLXN1ZmZpeGVkIHNlZ21lbnRzIHRvIGRvdC1pZCBmb3JtIChlLmcuLCAndHlwZUlkJyAtPiAndHlwZS5pZCcsICdwYXJ0eS50eXBlSWQnIC0+ICdwYXJ0eS50eXBlLmlkJylcbiAgICAgICAgICBjb25zdCBub3JtYWxpemVQYXRoID0gKHA6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gICAgICAgICAgICBpZiAoIXApIHJldHVybiBwO1xuICAgICAgICAgICAgY29uc3QgcGFydHMgPSBwLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICBjb25zdCBsYXN0ID0gcGFydHNbcGFydHMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBpZiAobGFzdCAmJiBsYXN0LmVuZHNXaXRoKCdJZCcpKSB7XG4gICAgICAgICAgICAgIHBhcnRzLnNwbGljZShwYXJ0cy5sZW5ndGggLSAxLCAxLCBsYXN0LnNsaWNlKDAsIC0yKSwgJ2lkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGFydHMuam9pbignLicpO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCBpc1NlZ21lbnRTdWZmaXggPSAoYTogc3RyaW5nLCBiOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICAgICAgICAgIGlmICghYSB8fCAhYikgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgcGEgPSBhLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICBjb25zdCBwYiA9IGIuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgIGlmIChwYi5sZW5ndGggPiBwYS5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHBiLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgIGlmIChwYVtwYS5sZW5ndGggLSBpXSAhPT0gcGJbcGIubGVuZ3RoIC0gaV0pIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCBldmFsTm9ybSA9IG5vcm1hbGl6ZVBhdGgoZXZhbFBhdGgpO1xuICAgICAgICAgIGNvbnN0IGNoYW5nZWROb3JtID0gbm9ybWFsaXplUGF0aChjaGFuZ2VkUGF0aCk7XG5cbiAgICAgICAgICAvLyBEZWJ1ZyBsb2cgZm9yIGRlcGVuZGVuY3kgY2hlY2tcbiAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgIGDwn6etIFske3RoaXMubm9kZSgpLnR5cGV9XSBkZXAtY2hlY2sgZXhwcj0nJHtwYXRofScsIGNoYW5nZWQ9JyR7Y2hhbmdlZFBhdGh9JywgZXZhbD0nJHtldmFsUGF0aH0nLCBldmFsTm9ybT0nJHtldmFsTm9ybX0nLCBjaGFuZ2VkTm9ybT0nJHtjaGFuZ2VkTm9ybX0nYCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgLy8gR2VuZXJpYyBkaXJlY3QgYW5kIGhpZXJhcmNoaWNhbCBkZXBlbmRlbmN5IGNoZWNrcyAocmF3IGFuZCBub3JtYWxpemVkKVxuICAgICAgICAgIGNvbnN0IHJhd01hdGNoID1cbiAgICAgICAgICAgIGV2YWxQYXRoID09PSBjaGFuZ2VkUGF0aCB8fFxuICAgICAgICAgICAgZXZhbFBhdGguc3RhcnRzV2l0aChjaGFuZ2VkUGF0aCArICcuJykgfHxcbiAgICAgICAgICAgIGNoYW5nZWRQYXRoLnN0YXJ0c1dpdGgoZXZhbFBhdGggKyAnLicpIHx8XG4gICAgICAgICAgICBpc1NlZ21lbnRTdWZmaXgoZXZhbFBhdGgsIGNoYW5nZWRQYXRoKSB8fFxuICAgICAgICAgICAgaXNTZWdtZW50U3VmZml4KGNoYW5nZWRQYXRoLCBldmFsUGF0aCk7XG5cbiAgICAgICAgICBjb25zdCBub3JtTWF0Y2ggPVxuICAgICAgICAgICAgZXZhbE5vcm0gPT09IGNoYW5nZWROb3JtIHx8XG4gICAgICAgICAgICBldmFsTm9ybS5zdGFydHNXaXRoKGNoYW5nZWROb3JtICsgJy4nKSB8fFxuICAgICAgICAgICAgY2hhbmdlZE5vcm0uc3RhcnRzV2l0aChldmFsTm9ybSArICcuJykgfHxcbiAgICAgICAgICAgIGlzU2VnbWVudFN1ZmZpeChldmFsTm9ybSwgY2hhbmdlZE5vcm0pIHx8XG4gICAgICAgICAgICBpc1NlZ21lbnRTdWZmaXgoY2hhbmdlZE5vcm0sIGV2YWxOb3JtKTtcblxuICAgICAgICAgIGlmIChyYXdNYXRjaCB8fCBub3JtTWF0Y2gpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICBg8J+UjSBbJHt0aGlzLm5vZGUoKS50eXBlfV0gRXhwcmVzc2lvbiAnJHtwYXRofScgZGVwZW5kcyBvbiAnJHtjaGFuZ2VkUGF0aH0nIHZpYSBjb250ZXh0LmV2YWwoJyR7ZXZhbFBhdGh9JykgKGdlbmVyaWMgbWF0Y2gpYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBDaGVjayBmb3IgcGF0aCBhbGlhc2VzL21hcHBpbmdzIChlLmcuLCB0eXBlSWQuaWQgPC0+IHR5cGUuaWQpXG4gICAgICAgICAgaWYgKHRoaXMuaXNQYXRoQWxpYXMoZXZhbFBhdGgsIGNoYW5nZWRQYXRoKSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgIGDwn5SNIFske3RoaXMubm9kZSgpLnR5cGV9XSBFeHByZXNzaW9uICcke3BhdGh9JyBkZXBlbmRzIG9uICcke2NoYW5nZWRQYXRofScgdmlhIGNvbnRleHQuZXZhbCgnJHtldmFsUGF0aH0nKSAocGF0aCBhbGlhcylgLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGlzUGF0aEFsaWFzKGV2YWxQYXRoOiBzdHJpbmcsIGNoYW5nZWRQYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAvLyBEeW5hbWljIHBhdGggYWxpYXMgZGV0ZWN0aW9uIGJhc2VkIG9uICdJZCcgc3VmZml4IHBhdHRlcm5cbiAgICAvLyBFeGFtcGxlczogdHlwZUlkLmlkIDwtPiB0eXBlLmlkLCBjYXRlZ29yeUlkLm5hbWUgPC0+IGNhdGVnb3J5Lm5hbWVcblxuICAgIC8vIENoZWNrIGlmIGV2YWxQYXRoIGVuZHMgd2l0aCAnSWQnIGFuZCBoYXMgYSBwcm9wZXJ0eVxuICAgIGlmIChldmFsUGF0aC5lbmRzV2l0aCgnSWQnKSAmJiBldmFsUGF0aC5pbmNsdWRlcygnLicpKSB7XG4gICAgICBjb25zdCBiYXNlUGF0aCA9IGV2YWxQYXRoLnN1YnN0cmluZygwLCBldmFsUGF0aC5sYXN0SW5kZXhPZignSWQnKSk7XG4gICAgICBjb25zdCBwcm9wZXJ0eSA9IGV2YWxQYXRoLnN1YnN0cmluZyhldmFsUGF0aC5sYXN0SW5kZXhPZignLicpICsgMSk7XG4gICAgICBjb25zdCBtYXBwZWRQYXRoID0gYCR7YmFzZVBhdGh9LiR7cHJvcGVydHl9YDtcblxuICAgICAgaWYgKGNoYW5nZWRQYXRoID09PSBtYXBwZWRQYXRoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGDwn5SNIFske3RoaXMubm9kZSgpLnR5cGV9XSBQYXRoIGFsaWFzIGRldGVjdGVkOiAnJHtldmFsUGF0aH0nIDwtPiAnJHtjaGFuZ2VkUGF0aH0nYCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIGNoYW5nZWRQYXRoIGVuZHMgd2l0aCAnSWQnIGFuZCBoYXMgYSBwcm9wZXJ0eVxuICAgIGlmIChjaGFuZ2VkUGF0aC5lbmRzV2l0aCgnSWQnKSAmJiBjaGFuZ2VkUGF0aC5pbmNsdWRlcygnLicpKSB7XG4gICAgICBjb25zdCBiYXNlUGF0aCA9IGNoYW5nZWRQYXRoLnN1YnN0cmluZygwLCBjaGFuZ2VkUGF0aC5sYXN0SW5kZXhPZignSWQnKSk7XG4gICAgICBjb25zdCBwcm9wZXJ0eSA9IGNoYW5nZWRQYXRoLnN1YnN0cmluZyhjaGFuZ2VkUGF0aC5sYXN0SW5kZXhPZignLicpICsgMSk7XG4gICAgICBjb25zdCBtYXBwZWRQYXRoID0gYCR7YmFzZVBhdGh9LiR7cHJvcGVydHl9YDtcblxuICAgICAgaWYgKGV2YWxQYXRoID09PSBtYXBwZWRQYXRoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGDwn5SNIFske3RoaXMubm9kZSgpLnR5cGV9XSBQYXRoIGFsaWFzIGRldGVjdGVkOiAnJHtldmFsUGF0aH0nIDwtPiAnJHtjaGFuZ2VkUGF0aH0nYCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBkaXJlY3QgJ0lkJyBzdWZmaXggbWFwcGluZyAoZS5nLiwgdHlwZUlkIDwtPiB0eXBlLmlkKVxuICAgIGlmIChldmFsUGF0aC5lbmRzV2l0aCgnSWQnKSAmJiAhZXZhbFBhdGguaW5jbHVkZXMoJy4nKSkge1xuICAgICAgY29uc3QgYmFzZVBhdGggPSBldmFsUGF0aC5zdWJzdHJpbmcoMCwgZXZhbFBhdGgubGFzdEluZGV4T2YoJ0lkJykpO1xuICAgICAgY29uc3QgbWFwcGVkUGF0aCA9IGAke2Jhc2VQYXRofS5pZGA7XG5cbiAgICAgIGlmIChjaGFuZ2VkUGF0aCA9PT0gbWFwcGVkUGF0aCkge1xuICAgICAgICBjb25zb2xlLmxvZyhg8J+UjSBbJHt0aGlzLm5vZGUoKS50eXBlfV0gUGF0aCBhbGlhcyBkZXRlY3RlZDogJyR7ZXZhbFBhdGh9JyA8LT4gJyR7Y2hhbmdlZFBhdGh9J2ApO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFBhdGguZW5kc1dpdGgoJ0lkJykgJiYgIWNoYW5nZWRQYXRoLmluY2x1ZGVzKCcuJykpIHtcbiAgICAgIGNvbnN0IGJhc2VQYXRoID0gY2hhbmdlZFBhdGguc3Vic3RyaW5nKDAsIGNoYW5nZWRQYXRoLmxhc3RJbmRleE9mKCdJZCcpKTtcbiAgICAgIGNvbnN0IG1hcHBlZFBhdGggPSBgJHtiYXNlUGF0aH0uaWRgO1xuXG4gICAgICBpZiAoZXZhbFBhdGggPT09IG1hcHBlZFBhdGgpIHtcbiAgICAgICAgY29uc29sZS5sb2coYPCflI0gWyR7dGhpcy5ub2RlKCkudHlwZX1dIFBhdGggYWxpYXMgZGV0ZWN0ZWQ6ICcke2V2YWxQYXRofScgPC0+ICcke2NoYW5nZWRQYXRofSdgKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFeHByZXNzaW9uVmFsdWVGcm9tTm9kZShub2RlOiBBWFBXaWRnZXROb2RlLCBwYXRoOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICB0cnkge1xuICAgICAgLy8gTmF2aWdhdGUgdGhyb3VnaCB0aGUgbm9kZSBzdHJ1Y3R1cmUgdG8gZmluZCB0aGUgZXhwcmVzc2lvbiB2YWx1ZVxuICAgICAgY29uc3QgcGF0aFBhcnRzID0gcGF0aC5zcGxpdCgnLicpO1xuICAgICAgbGV0IGN1cnJlbnQ6IGFueSA9IG5vZGUub3B0aW9ucyB8fCB7fTtcblxuICAgICAgLy8gTmF2aWdhdGUgdGhyb3VnaCB0aGUgcGF0aCBwYXJ0c1xuICAgICAgZm9yIChjb25zdCBwYXJ0IG9mIHBhdGhQYXJ0cykge1xuICAgICAgICBpZiAoY3VycmVudCAmJiB0eXBlb2YgY3VycmVudCA9PT0gJ29iamVjdCcgJiYgcGFydCBpbiBjdXJyZW50KSB7XG4gICAgICAgICAgY3VycmVudCA9IGN1cnJlbnRbcGFydF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHR5cGVvZiBjdXJyZW50ID09PSAnc3RyaW5nJyA/IGN1cnJlbnQgOiBudWxsO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBleHRyYWN0aW5nIGV4cHJlc3Npb24gdmFsdWUgZnJvbSBub2RlOicsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFzVHJpZ2dlckRlcGVuZGVuY3koY2hhbmdlZFBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLm5vZGUoKTtcbiAgICBjb25zdCB0cmlnZ2VycyA9IG5vZGUudHJpZ2dlcnMgfHwgbm9kZS5vcHRpb25zPy5bJ3RyaWdnZXJzJ10gfHwgdGhpcy5tZXJnZWRPcHRpb25zKCk/LnRyaWdnZXJzO1xuXG4gICAgaWYgKCF0cmlnZ2VycykgcmV0dXJuIGZhbHNlO1xuXG4gICAgLy8gQ2hlY2sgaWYgYW55IHRyaWdnZXIgZXZlbnQgZGVwZW5kcyBvbiB0aGUgY2hhbmdlZCBwYXRoXG4gICAgZm9yIChjb25zdCB0cmlnZ2VyIG9mIHRyaWdnZXJzKSB7XG4gICAgICBpZiAodHJpZ2dlci5ldmVudCAmJiB0cmlnZ2VyLmV2ZW50LmluY2x1ZGVzKGNoYW5nZWRQYXRoKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8gUmVtb3ZlZCB2aXNpYmlsaXR5IGRldGVjdGlvbiBtZXRob2RzIC0gbm90IG5lZWRlZCBmb3IgY3VycmVudCBpbXBsZW1lbnRhdGlvblxuXG4gIC8vIERldGVjdCBpbnB1dCBjaGFuZ2VzXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snbW9kZSddIHx8IGNoYW5nZXNbJ25vZGUnXSkge1xuICAgICAgLy8gQ2hlY2sgaWYgZWl0aGVyICdtb2RlJyBvciAnbm9kZScgaGFzIGNoYW5nZWRcbiAgICAgIHRoaXMucmVyZW5kZXJDb21wb25lbnQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlcmVuZGVyQ29tcG9uZW50KCkge1xuICAgIC8vIENsZWFyIGFueSBwZW5kaW5nIHJlbmRlciBvcGVyYXRpb24gdG8gcHJldmVudCBkb3VibGUgcmVuZGVyaW5nXG4gICAgaWYgKHRoaXMucmVuZGVyVGltZW91dElkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5yZW5kZXJUaW1lb3V0SWQpO1xuICAgICAgdGhpcy5yZW5kZXJUaW1lb3V0SWQgPSBudWxsO1xuICAgIH1cblxuICAgIC8vIFJlc2V0IGxvYWRpbmcgc3RhdGUgdG8gYWxsb3cgcmUtcmVuZGVyaW5nXG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcblxuICAgIC8vIFNjaGVkdWxlIHRoZSBjb21wb25lbnQgbG9hZGluZ1xuICAgIHRoaXMucmVuZGVyVGltZW91dElkID0gc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCB0aGlzLmxvYWRDb21wb25lbnQoKTtcbiAgICAgIHRoaXMucmVuZGVyVGltZW91dElkID0gbnVsbDtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnJlbmRlclRpbWVvdXRJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVuZGVyVGltZW91dElkKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29udGV4dFVwZGF0ZVRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNvbnRleHRVcGRhdGVUaW1lb3V0KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkQ29tcG9uZW50KCkge1xuICAgIGlmICh0aGlzLmlzTG9hZGluZygpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBEZXN0cm95IHRoZSBleGlzdGluZyBjb21wb25lbnQgaWYgaXQgZXhpc3RzXG4gICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgfVxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAvL1xuICAgICAgY29uc3Qgd2lkZ2V0ID0gdGhpcy53aWRnZXRSZWdpc3RlcnkucmVzb2x2ZSh0aGlzLm5vZGUoKS50eXBlKTtcbiAgICAgIC8vXG4gICAgICBjb25zdCBwcm9wZXJ0aWVzVG9Qcm9jZXNzID0gW1xuICAgICAgICAuLi4od2lkZ2V0Py5wcm9wZXJ0aWVzID8/IFtdKSxcbiAgICAgICAgLi4uKHdpZGdldD8uY29tcG9uZW50c1t0aGlzLm1vZGUoKV0/LnByb3BlcnRpZXMgPz8gW10pLFxuICAgICAgXT8uZmlsdGVyKChjKSA9PiBjLnNjaGVtYS5kZWZhdWx0VmFsdWUgIT0gbnVsbCk7XG5cbiAgICAgIC8vIFByb2Nlc3MgZGVmYXVsdCB2YWx1ZXMgKGV2YWx1YXRlIGV4cHJlc3Npb25zIGlmIG5lZWRlZClcbiAgICAgIGNvbnN0IHByb3BzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXNUb1Byb2Nlc3MpIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdFZhbHVlID0gcHJvcGVydHkuc2NoZW1hLmRlZmF1bHRWYWx1ZTtcbiAgICAgICAgaWYgKHR5cGVvZiBkZWZhdWx0VmFsdWUgPT09ICdzdHJpbmcnICYmIHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5pc0V4cHJlc3Npb24oZGVmYXVsdFZhbHVlKSkge1xuICAgICAgICAgIC8vIEV2YWx1YXRlIGV4cHJlc3Npb24gZm9yIGRlZmF1bHQgdmFsdWVcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZXZhbHVhdGVkVmFsdWUgPSBhd2FpdCB0aGlzLmV2YWx1YXRlRXhwcmVzc2lvbihkZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgcHJvcHNbcHJvcGVydHkubmFtZV0gPSBldmFsdWF0ZWRWYWx1ZTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgZXZhbHVhdGluZyBkZWZhdWx0IHZhbHVlIGV4cHJlc3Npb24gZm9yIHByb3BlcnR5ICR7cHJvcGVydHkubmFtZX06YCwgZXJyb3IpO1xuICAgICAgICAgICAgcHJvcHNbcHJvcGVydHkubmFtZV0gPSBjbG9uZURlZXAoZGVmYXVsdFZhbHVlKTsgLy8gRmFsbGJhY2sgdG8gb3JpZ2luYWwgdmFsdWVcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gVXNlIHN0YXRpYyBkZWZhdWx0IHZhbHVlXG4gICAgICAgICAgcHJvcHNbcHJvcGVydHkubmFtZV0gPSBjbG9uZURlZXAoZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy9cbiAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5zZXQobWVyZ2UocHJvcHMsIHdpZGdldD8ub3B0aW9ucywgdGhpcy5ub2RlKCkub3B0aW9ucykgfHwge30pO1xuXG4gICAgICB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3JzLmNsZWFyKCk7XG4gICAgICAvLyBSZWdpc3RlciBleHByZXNzaW9ucyBmcm9tIHdpZGdldCBkZWZhdWx0cyBhbmQgbm9kZSBvcHRpb25zIHRvIGNvdmVyIHJlbGF0ZWQtZW50aXR5IGNhc2VzXG4gICAgICB0aGlzLnByZXByb2Nlc3NBbmRJbml0aWFsT3B0aW9ucyhjbG9uZURlZXAod2lkZ2V0Py5vcHRpb25zKSk7XG4gICAgICB0aGlzLnByZXByb2Nlc3NBbmRJbml0aWFsT3B0aW9ucyhjbG9uZURlZXAodGhpcy5ub2RlKCkub3B0aW9ucykpO1xuICAgICAgYXdhaXQgdGhpcy51cGRhdGVPcHRpb25zQmFzZWRPbkNvbnRleHQoKTtcbiAgICAgIC8vXG4gICAgICB0aGlzLl9vcHRpb25zLnVwZGF0ZSgodmFsKSA9PiAoeyAuLi52YWwsIC4uLnRoaXMubWVyZ2VkT3B0aW9ucygpIH0pKTtcbiAgICAgIC8vIEV2YWx1YXRlIGRlZmF1bHQgdmFsdWVcbiAgICAgIGxldCBkZWZhdWx0VmFsdWUgPSB0aGlzLm5vZGUoKS5kZWZhdWx0VmFsdWU7XG4gICAgICBpZiAoZGVmYXVsdFZhbHVlICYmIHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5pc0V4cHJlc3Npb24oZGVmYXVsdFZhbHVlKSkge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBhd2FpdCB0aGlzLmV2YWx1YXRlRXhwcmVzc2lvbihkZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgICAgLy9cbiAgICAgIGNvbnN0IHRva2VuVmFsdWUgPSB7XG4gICAgICAgIG5vZGU6IHRoaXMubm9kZSgpLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRWYWx1ZSxcbiAgICAgICAgb3B0aW9uczogdGhpcy5tZXJnZWRPcHRpb25zKCksXG4gICAgICAgIGNvbmZpZzogd2lkZ2V0LFxuICAgICAgfSBhcyBBWFBXaWRnZXROb2RlVG9rZW47XG4gICAgICBjb25zdCB0b2tlbiA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvcixcbiAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQVhQX1dJREdFVF9UT0tFTixcbiAgICAgICAgICAgIHVzZVZhbHVlOiB0b2tlblZhbHVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICAgIC8vXG4gICAgICBjb25zdCBsb2FkaW5nUmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChBWFBXaWRnZXRQbGFjZWhvbGRlckNvbXBvbmVudCk7XG4gICAgICAvL1xuICAgICAgY29uc3QgY29tID0gYXdhaXQgd2lkZ2V0Py5jb21wb25lbnRzW3RoaXMubW9kZSgpXT8uY29tcG9uZW50KCk7XG4gICAgICBpZiAoIWNvbSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMubm9kZSgpLnR5cGV9IHdpZGdldCBjb21wb25lbnQgbm90IGZvdW5kIHdpdGggbW9kZTogJHt0aGlzLm1vZGUoKX1gKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50PEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50PGFueT4+KGNvbSwgeyBpbmplY3RvcjogdG9rZW4gfSk7XG4gICAgICB0aGlzLmluc3RhbmNlID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgICB0aGlzLmluc3RhbmNlLnNldFN0YXR1cyhBWFBXaWRnZXRTdGF0dXMuUmVuZGVyaW5nKTtcbiAgICAgIHRoaXMuaW5zdGFuY2UucGFyZW50ID0gdGhpcy5wYXJlbnROb2RlKCk7XG4gICAgICB0aGlzLmluc3RhbmNlLmluZGV4ID0gdGhpcy5pbmRleCgpO1xuICAgICAgdGhpcy5pbnN0YW5jZS5tb2RlID0gdGhpcy5tb2RlKCk7XG4gICAgICB0aGlzLmluc3RhbmNlLnNldFN0YXR1cyhBWFBXaWRnZXRTdGF0dXMuUmVuZGVyZWQpO1xuICAgICAgdGhpcy5pbnN0YW5jZT8ub25PcHRpb25zQ2hhbmdlZD8ucGlwZSh0aGlzLnVuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgICAgdGhpcy5vbk9wdGlvbnNDaGFuZ2VkLmVtaXQoeyBzZW5kZXI6IHRoaXMsIHdpZGdldDogYy5zZW5kZXIgfSk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuaW5zdGFuY2U/Lm9uVmFsdWVDaGFuZ2VkPy5waXBlKHRoaXMudW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLmVtaXQoeyBzZW5kZXI6IHRoaXMsIHdpZGdldDogYy5zZW5kZXIgYXMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfSk7XG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlVmFsdWVCYXNlZE9uRm9ybXVsYSgpO1xuICAgICAgYXdhaXQgdGhpcy5hc3NpZ25UcmlnZ2VycygpO1xuICAgICAgLy9cbiAgICAgIGxvYWRpbmdSZWYuZGVzdHJveSgpO1xuXG4gICAgICAvLyBNYXJrIHRoYXQgaW5pdGlhbCByZW5kZXIgaXMgY29tcGxldGVcbiAgICAgIHRoaXMuaGFzSW5pdGlhbFJlbmRlciA9IHRydWU7XG5cbiAgICAgIC8vIFJlLWV2YWx1YXRlIGV4cHJlc3Npb25zIGFmdGVyIGluaXRpYWwgcmVuZGVyIHRvIGNhdGNoIGxhdGUtYXJyaXZpbmcgcmVsYXRlZCBjb250ZXh0XG4gICAgICBpZiAodGhpcy5leHByZXNzaW9uRXZhbHVhdG9ycy5zaXplID4gMCkge1xuICAgICAgICBjb25zb2xlLmxvZyhg8J+UhCBbJHt0aGlzLm5vZGUoKS50eXBlfV0gUmUtZXZhbHVhdGluZyBleHByZXNzaW9ucyBhZnRlciBpbml0aWFsIHJlbmRlcmApO1xuICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZU9wdGlvbnNCYXNlZE9uQ29udGV4dCgpO1xuICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucygpO1xuICAgICAgfVxuXG4gICAgICAvLyBQcm9jZXNzIGFueSBidWZmZXJlZCBwcmUtcmVuZGVyIGNvbnRleHQgY2hhbmdlcyBub3cgdGhhdCB0aGUgY29tcG9uZW50IGlzIHJlYWR5XG4gICAgICBpZiAodGhpcy5wcmVSZW5kZXJDb250ZXh0UXVldWUuc2l6ZSA+IDApIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYPCfmoAgWyR7dGhpcy5ub2RlKCkudHlwZX1dIFByb2Nlc3NpbmcgJHt0aGlzLnByZVJlbmRlckNvbnRleHRRdWV1ZS5zaXplfSBidWZmZXJlZCBwcmUtcmVuZGVyIGNoYW5nZXNgLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnByZVJlbmRlckNvbnRleHRRdWV1ZS5mb3JFYWNoKChwKSA9PiB0aGlzLmNvbnRleHRVcGRhdGVRdWV1ZS5hZGQocCkpO1xuICAgICAgICB0aGlzLnByZVJlbmRlckNvbnRleHRRdWV1ZS5jbGVhcigpO1xuICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3NCYXRjaGVkVXBkYXRlcygpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIGNvbXBvbmVudDonLCBlcnJvcik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseU9wdGlvbnMoKSB7XG4gICAgaWYgKCF0aGlzLmluc3RhbmNlKSByZXR1cm47XG5cbiAgICBjb25zdCBjdXJyZW50T3B0aW9ucyA9IHRoaXMubWVyZ2VkT3B0aW9ucygpO1xuXG4gICAgLy8gQ2hlY2sgaWYgb3B0aW9ucyBoYXZlIGFjdHVhbGx5IGNoYW5nZWRcbiAgICBpZiAodGhpcy5oYXNPcHRpb25zQ2hhbmdlZChjdXJyZW50T3B0aW9ucykpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdhcHBseU9wdGlvbnMnLCB0aGlzLm5vZGUoKS5wYXRoLCAnLSBvcHRpb25zIGNoYW5nZWQnKTtcbiAgICAgIHRoaXMuX29wdGlvbnMudXBkYXRlKCh2YWwpID0+ICh7IC4uLnZhbCwgLi4uY3VycmVudE9wdGlvbnMgfSkpO1xuICAgICAgdGhpcy5pbnN0YW5jZS5zZXRPcHRpb25zKGN1cnJlbnRPcHRpb25zKTtcbiAgICAgIHRoaXMubGFzdEFwcGxpZWRPcHRpb25zID0gY2xvbmVEZWVwKGN1cnJlbnRPcHRpb25zKTsgLy8gRGVlcCBjbG9uZSB1c2luZyBMb2Rhc2hcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coJ2FwcGx5T3B0aW9ucycsIHRoaXMubm9kZSgpLnBhdGgsICctIG5vIGNoYW5nZXMsIHNraXBwaW5nJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYXNPcHRpb25zQ2hhbmdlZChuZXdPcHRpb25zOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMubGFzdEFwcGxpZWRPcHRpb25zKSB7XG4gICAgICByZXR1cm4gdHJ1ZTsgLy8gRmlyc3QgdGltZSwgYWx3YXlzIGFwcGx5XG4gICAgfVxuXG4gICAgLy8gRGVlcCBjb21wYXJpc29uIG9mIG9wdGlvbnMgdXNpbmcgTG9kYXNoIGlzRXF1YWxcbiAgICByZXR1cm4gIWlzRXF1YWwobmV3T3B0aW9ucywgdGhpcy5sYXN0QXBwbGllZE9wdGlvbnMpO1xuICB9XG5cbiAgLy8gUmVtb3ZlZCBkZWVwQ2xvbmVWYWx1ZSBtZXRob2QgLSBub3cgdXNpbmcgTG9kYXNoIGNsb25lRGVlcFxuXG4gIHByaXZhdGUgY2hlY2tGb3JtdWxhRm9yVXBkYXRlKGZvcm11bGE6IHN0cmluZyB8IHVuZGVmaW5lZCwgcGF0aD86IHN0cmluZyB8IG51bGwpOiBib29sZWFuIHtcbiAgICBpZiAoZm9ybXVsYSkge1xuICAgICAgY29uc3QgcmVnZXggPSAvY29udGV4dFxcLmV2YWxcXCgnKFteJ10rKSdcXCkvZztcbiAgICAgIGNvbnN0IG1hdGNoZXMgPSBmb3JtdWxhLm1hdGNoKHJlZ2V4KTtcbiAgICAgIGNvbnN0IG5vZGVzID0gbWF0Y2hlcyA/IG1hdGNoZXMubWFwKChtYXRjaDogYW55KSA9PiBtYXRjaC5tYXRjaCgvJyhbXiddKyknLylbMV0pIDogW107XG4gICAgICByZXR1cm4gbm9kZXMuaW5jbHVkZXMocGF0aCk7XG4gICAgfSBlbHNlIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByZXByb2Nlc3NBbmRJbml0aWFsT3B0aW9ucyhvYmo6IGFueSwgcGF0aFByZWZpeDogc3RyaW5nID0gJycpOiB2b2lkIHtcbiAgICBpZiAoIW9iaikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBPYmplY3QuZW50cmllcyhvYmopLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudFBhdGggPSBwYXRoUHJlZml4ID8gYCR7cGF0aFByZWZpeH0uJHtrZXl9YCA6IGtleTtcblxuICAgICAgLy8gQ1JJVElDQUwgRklYOiBTa2lwIHRyaWdnZXIgYWN0aW9ucyBkdXJpbmcgb3B0aW9ucyBwcm9jZXNzaW5nXG4gICAgICAvL1xuICAgICAgLy8gUFJPQkxFTTogVHJpZ2dlciBhY3Rpb25zIHdlcmUgYmVpbmcgZXZhbHVhdGVkIGltbWVkaWF0ZWx5IGR1cmluZyB3aWRnZXQgc2V0dXAvb3B0aW9ucyBwcm9jZXNzaW5nLFxuICAgICAgLy8gY2F1c2luZyB0aGVtIHRvIGV4ZWN1dGUgYmVmb3JlIHRoZSBhY3R1YWwgdHJpZ2dlciBldmVudCBvY2N1cnJlZC4gVGhpcyBtZWFudCB0cmlnZ2VycyB3b3VsZCBmaXJlXG4gICAgICAvLyBkdXJpbmcgaW5pdGlhbGl6YXRpb24gaW5zdGVhZCBvZiB3aGVuIHRoZSBzcGVjaWZpZWQgY29udGV4dCBwYXRoIGFjdHVhbGx5IGNoYW5nZWQuXG4gICAgICAvL1xuICAgICAgLy8gUk9PVCBDQVVTRTogVGhlIGV4cHJlc3Npb24gZXZhbHVhdG9yIHdhcyBwcm9jZXNzaW5nIHRyaWdnZXIgYWN0aW9uIGV4cHJlc3Npb25zIChsaWtlIGNvbnNvbGUubG9nXG4gICAgICAvLyBvciB3aWRnZXQuc2V0VmFsdWUgY2FsbHMpIGFzIHBhcnQgb2YgdGhlIG5vcm1hbCBvcHRpb25zIHByZXByb2Nlc3NpbmcsIHRyZWF0aW5nIHRoZW0gYXMgZHluYW1pY1xuICAgICAgLy8gZXhwcmVzc2lvbnMgdGhhdCBuZWVkZWQgaW1tZWRpYXRlIGV2YWx1YXRpb24uXG4gICAgICAvL1xuICAgICAgLy8gU09MVVRJT046IERldGVjdCB3aGVuIHdlJ3JlIHByb2Nlc3NpbmcgdHJpZ2dlciBhY3Rpb25zIGFuZCBzdG9yZSB0aGVtIGFzIHN0YXRpYyB2YWx1ZXMgd2l0aG91dFxuICAgICAgLy8gZXhwcmVzc2lvbiBldmFsdWF0aW9uLiBUaGlzIGVuc3VyZXMgdHJpZ2dlciBhY3Rpb25zIGFyZSBvbmx5IGV2YWx1YXRlZCB3aGVuIHRoZSB0cmlnZ2VyJ3NcbiAgICAgIC8vIHN1YnNjcmlwdGlvbiBjYWxsYmFjayBhY3R1YWxseSBmaXJlcyAod2hlbiB0aGUgZXZlbnQgY29uZGl0aW9uIGlzIG1ldCkuXG4gICAgICAvL1xuICAgICAgLy8gUkVTVUxUOiBUcmlnZ2VycyBub3cgb25seSBleGVjdXRlIHdoZW4gdGhlaXIgZXZlbnQgZmlsdGVycyBwYXNzIChlLmcuLCB3aGVuIHRoZSBzcGVjaWZpZWRcbiAgICAgIC8vIGNvbnRleHQgcGF0aCBjaGFuZ2VzKSwgbm90IGR1cmluZyB3aWRnZXQgaW5pdGlhbGl6YXRpb24uXG4gICAgICBpZiAoY3VycmVudFBhdGguaW5jbHVkZXMoJ3RyaWdnZXJzJykgJiYgKGtleSA9PT0gJ2FjdGlvbicgfHwgY3VycmVudFBhdGguZW5kc1dpdGgoJy5hY3Rpb24nKSkpIHtcbiAgICAgICAgLy8gQXBwbHkgc3RhdGljIHZhbHVlcyBkaXJlY3RseSB3aXRob3V0IGV4cHJlc3Npb24gZXZhbHVhdGlvblxuICAgICAgICB0aGlzLm1lcmdlZE9wdGlvbnMudXBkYXRlKChjdXJyZW50T3B0aW9ucykgPT4ge1xuICAgICAgICAgIHJldHVybiBzZXQoY3VycmVudE9wdGlvbnMsIGN1cnJlbnRQYXRoLCB2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5pc0V4cHJlc3Npb24odmFsdWUpKSB7XG4gICAgICAgIC8vIENhY2hlIGR5bmFtaWMgZXhwcmVzc2lvbiBmb3IgbGF0ZXIgZXZhbHVhdGlvblxuICAgICAgICB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3JzLnNldChjdXJyZW50UGF0aCwgKCkgPT4gdGhpcy5ldmFsdWF0ZUV4cHJlc3Npb24odmFsdWUpKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgKHZhbHVlLmNvbnN0cnVjdG9yID09PSBPYmplY3QgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG4gICAgICApIHtcbiAgICAgICAgLy8gUmVjdXJzaXZlbHkgaGFuZGxlIG5lc3RlZCBvYmplY3RzXG4gICAgICAgIHRoaXMucHJlcHJvY2Vzc0FuZEluaXRpYWxPcHRpb25zKHZhbHVlLCBjdXJyZW50UGF0aCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBBcHBseSBzdGF0aWMgdmFsdWVzIGRpcmVjdGx5XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy51cGRhdGUoKGN1cnJlbnRPcHRpb25zKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHNldChjdXJyZW50T3B0aW9ucywgY3VycmVudFBhdGgsIHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVPcHRpb25zQmFzZWRPbkNvbnRleHQoKSB7XG4gICAgLy8gRWFybHkgcmV0dXJuIGlmIG5vIGV4cHJlc3Npb25zIHRvIGV2YWx1YXRlXG4gICAgaWYgKHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvcnMuc2l6ZSA9PT0gMCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coYPCflI0gWyR7dGhpcy5ub2RlKCkudHlwZX1dIEV2YWx1YXRpbmcgJHt0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3JzLnNpemV9IGV4cHJlc3Npb25zYCk7XG5cbiAgICBjb25zdCB1cGRhdGVQcm9taXNlcyA9IEFycmF5LmZyb20odGhpcy5leHByZXNzaW9uRXZhbHVhdG9ycykubWFwKGFzeW5jIChbcGF0aCwgZXZhbHVhdG9yXSkgPT4ge1xuICAgICAgLy8gQ2hlY2sgY2FjaGUgZmlyc3RcbiAgICAgIGNvbnN0IGNhY2hlZFZhbHVlID0gdGhpcy5nZXRDYWNoZWRFeHByZXNzaW9uUmVzdWx0KHBhdGgpO1xuICAgICAgaWYgKGNhY2hlZFZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGDwn5K+IFske3RoaXMubm9kZSgpLnR5cGV9XSBVc2luZyBjYWNoZWQgZXhwcmVzc2lvbiByZXN1bHQgZm9yICcke3BhdGh9J2ApO1xuICAgICAgICByZXR1cm4geyBwYXRoLCBuZXdWYWx1ZTogY2FjaGVkVmFsdWUsIGZyb21DYWNoZTogdHJ1ZSB9O1xuICAgICAgfVxuXG4gICAgICAvLyBFdmFsdWF0ZSBleHByZXNzaW9uIGlmIG5vdCBjYWNoZWRcbiAgICAgIGNvbnN0IGV2YWxTdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gYXdhaXQgZXZhbHVhdG9yKCk7XG4gICAgICBjb25zdCBldmFsVGltZSA9IHBlcmZvcm1hbmNlLm5vdygpIC0gZXZhbFN0YXJ0VGltZTtcblxuICAgICAgLy8gQ2hlY2sgaWYgcmVzdWx0IGhhcyBhY3R1YWxseSBjaGFuZ2VkIHVzaW5nIExvZGFzaCBpc0VxdWFsXG4gICAgICBjb25zdCBsYXN0VmFsdWUgPSB0aGlzLmxhc3RFeHByZXNzaW9uUmVzdWx0cy5nZXQocGF0aCk7XG4gICAgICBjb25zdCBoYXNDaGFuZ2VkID0gIWlzRXF1YWwobmV3VmFsdWUsIGxhc3RWYWx1ZSk7XG5cbiAgICAgIGlmIChoYXNDaGFuZ2VkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGDwn5OdIFske3RoaXMubm9kZSgpLnR5cGV9XSBFeHByZXNzaW9uICcke3BhdGh9JyBldmFsdWF0ZWQgaW4gJHtldmFsVGltZS50b0ZpeGVkKDIpfW1zIC0gdmFsdWUgY2hhbmdlZGAsXG4gICAgICAgICk7XG4gICAgICAgIC8vIENhY2hlIHRoZSByZXN1bHQgYW5kIHRyYWNrIGl0XG4gICAgICAgIHRoaXMuc2V0Q2FjaGVkRXhwcmVzc2lvblJlc3VsdChwYXRoLCBuZXdWYWx1ZSk7XG4gICAgICAgIHRoaXMubGFzdEV4cHJlc3Npb25SZXN1bHRzLnNldChwYXRoLCBjbG9uZURlZXAobmV3VmFsdWUpKTtcbiAgICAgICAgcmV0dXJuIHsgcGF0aCwgbmV3VmFsdWUsIGZyb21DYWNoZTogZmFsc2UsIGhhc0NoYW5nZWQ6IHRydWUgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGDwn5OdIFske3RoaXMubm9kZSgpLnR5cGV9XSBFeHByZXNzaW9uICcke3BhdGh9JyBldmFsdWF0ZWQgaW4gJHtldmFsVGltZS50b0ZpeGVkKDIpfW1zIC0gdmFsdWUgdW5jaGFuZ2VkLCBza2lwcGluZyB1cGRhdGVgLFxuICAgICAgICApO1xuICAgICAgICAvLyBDYWNoZSB0aGUgcmVzdWx0IGJ1dCBkb24ndCB1cGRhdGVcbiAgICAgICAgdGhpcy5zZXRDYWNoZWRFeHByZXNzaW9uUmVzdWx0KHBhdGgsIG5ld1ZhbHVlKTtcbiAgICAgICAgdGhpcy5sYXN0RXhwcmVzc2lvblJlc3VsdHMuc2V0KHBhdGgsIGNsb25lRGVlcChuZXdWYWx1ZSkpO1xuICAgICAgICByZXR1cm4geyBwYXRoLCBuZXdWYWx1ZSwgZnJvbUNhY2hlOiBmYWxzZSwgaGFzQ2hhbmdlZDogZmFsc2UgfTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFdhaXQgZm9yIGFsbCBldmFsdWF0b3JzIHRvIGNvbXBsZXRlXG4gICAgY29uc3QgdXBkYXRlcyA9IGF3YWl0IFByb21pc2UuYWxsKHVwZGF0ZVByb21pc2VzKTtcblxuICAgIC8vIEZpbHRlciB1cGRhdGVzIHRvIG9ubHkgaW5jbHVkZSB0aG9zZSB0aGF0IGhhdmUgYWN0dWFsbHkgY2hhbmdlZFxuICAgIGNvbnN0IGNoYW5nZWRVcGRhdGVzID0gdXBkYXRlcy5maWx0ZXIoKHVwZGF0ZSkgPT4gdXBkYXRlLmhhc0NoYW5nZWQgIT09IGZhbHNlKTtcblxuICAgIC8vIEFwcGx5IHVwZGF0ZXMgdG8gbWVyZ2VkT3B0aW9ucyBvbmx5IGZvciBjaGFuZ2VkIHZhbHVlc1xuICAgIGlmIChjaGFuZ2VkVXBkYXRlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLm1lcmdlZE9wdGlvbnMudXBkYXRlKChvKSA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRPcHRpb25zID0geyAuLi5vIH07XG4gICAgICAgIGNoYW5nZWRVcGRhdGVzLmZvckVhY2goKHsgcGF0aCwgbmV3VmFsdWUgfSkgPT4ge1xuICAgICAgICAgIHNldCh1cGRhdGVkT3B0aW9ucywgcGF0aCwgbmV3VmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWRPcHRpb25zO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgY2FjaGVIaXRzID0gdXBkYXRlcy5maWx0ZXIoKHVwZGF0ZSkgPT4gdXBkYXRlLmZyb21DYWNoZSkubGVuZ3RoO1xuICAgIGNvbnN0IHNraXBwZWRVcGRhdGVzID0gdXBkYXRlcy5sZW5ndGggLSBjaGFuZ2VkVXBkYXRlcy5sZW5ndGg7XG5cbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGDwn5OLIFske3RoaXMubm9kZSgpLnR5cGV9XSBBcHBsaWVkICR7Y2hhbmdlZFVwZGF0ZXMubGVuZ3RofSBleHByZXNzaW9uIHVwZGF0ZXMgKCR7Y2FjaGVIaXRzfSBjYWNoZSBoaXRzLCAke3NraXBwZWRVcGRhdGVzfSBza2lwcGVkKWAsXG4gICAgKTtcbiAgICByZXR1cm4gY2hhbmdlZFVwZGF0ZXMubGVuZ3RoO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlVmFsdWVCYXNlZE9uRm9ybXVsYSgpIHtcbiAgICBpZiAodGhpcy5ub2RlKCkuZm9ybXVsYSkge1xuICAgICAgY29uc3QgdmFsdWUgPSBhd2FpdCB0aGlzLmV2YWx1YXRlRXhwcmVzc2lvbih0aGlzLm5vZGUoKS5mb3JtdWxhISk7XG4gICAgICB0aGlzLmluc3RhbmNlLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV2YWx1YXRlRXhwcmVzc2lvbih0ZW1wbGF0ZUV4cHJlc3Npb246IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNjb3BlID0gdGhpcy5idWlsZEV4cHJlc3Npb25TY29wZSgpO1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZSh0ZW1wbGF0ZUV4cHJlc3Npb24sIHNjb3BlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZXZhbHVhdGluZyBleHByZXNzaW9uOicsIGVycm9yKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRXhwcmVzc2lvblNjb3BlKCk6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRleHQ6IHRoaXMuZ2V0Q29udGV4dFNjb3BlKCksXG4gICAgICBldmVudHM6IHRoaXMuZ2V0RXZlbnRTY29wZSgpLFxuICAgICAgd2lkZ2V0OiB0aGlzLmdldFdpZGdldFNjb3BlKCksXG4gICAgICBtZXRob2RzOiB0aGlzLmdldEZ1bmN0aW9uU2NvcGUoKSxcbiAgICAgIHZhcnM6IHRoaXMuZ2V0VmFyaWFibGVzU2NvcGUoKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250ZXh0U2NvcGUoKTogeyBbbmFtZTogc3RyaW5nXTogRnVuY3Rpb24gfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGV2YWw6IChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgLy9UT0RPOiBIYW5kbGUgYXJyYXkgaW5kZXhcbiAgICAgICAgY29uc3QgZnVsbFBhdGggPSBwYXRoLnN0YXJ0c1dpdGgoJz4nKSA/IGAke3RoaXMuaW5zdGFuY2U/LnBhcmVudFBhdGgoKX0uJHtwYXRoLnN1YnN0cmluZygxKX1gIDogcGF0aDtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmdldFZhbHVlKGZ1bGxQYXRoKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSxcbiAgICAgIHNldDogKHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnVwZGF0ZShwYXRoLCB2YWx1ZSk7XG4gICAgICB9LFxuICAgICAgZGF0YTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0U2VydmljZS5kYXRhKCk7XG4gICAgICB9LFxuICAgICAgaXNEaXJ0eTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0U2VydmljZS5pc0RpcnR5KCk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldEV2ZW50U2NvcGUoKTogeyBbbmFtZTogc3RyaW5nXTogRnVuY3Rpb24gfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRleHQ6IChwYXRoPzogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9uQ29udGV4dENoYW5nZWQucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKGMpID0+IHtcbiAgICAgICAgICAgIC8vIElmIG5vIHBhdGggZmlsdGVyIHNwZWNpZmllZCwgcGFzcyBhbGwgZXZlbnRzXG4gICAgICAgICAgICBpZiAocGF0aCA9PSBudWxsIHx8IHBhdGggPT09ICcnKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRW5zdXJlIGMucGF0aCBleGlzdHNcbiAgICAgICAgICAgIGlmICghYy5wYXRoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFBhdHRlcm46IFwicHJlZml4KlwiIC0gbWF0Y2hlcyBwYXRocyB0aGF0IHN0YXJ0IHdpdGggcHJlZml4XG4gICAgICAgICAgICBpZiAocGF0aC5lbmRzV2l0aCgnKicpKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHByZWZpeCA9IHBhdGguc3Vic3RyaW5nKDAsIHBhdGgubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICAgIHJldHVybiBjLnBhdGguc3RhcnRzV2l0aChwcmVmaXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gUGF0dGVybjogXCIqc3VmZml4XCIgLSBtYXRjaGVzIHBhdGhzIHRoYXQgZW5kIHdpdGggc3VmZml4XG4gICAgICAgICAgICBlbHNlIGlmIChwYXRoLnN0YXJ0c1dpdGgoJyonKSkge1xuICAgICAgICAgICAgICBjb25zdCBzdWZmaXggPSBwYXRoLnN1YnN0cmluZygxKTtcbiAgICAgICAgICAgICAgcmV0dXJuIGMucGF0aC5lbmRzV2l0aChzdWZmaXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRXhhY3QgbWF0Y2hcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gYy5wYXRoID09PSBwYXRoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIGZyb206IChldmVudDogc3RyaW5nKSA9PiBnZXQodGhpcy5pbnN0YW5jZS5hcGkoKSwgZXZlbnQpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFdpZGdldFNjb3BlKCk6IHsgW25hbWU6IHN0cmluZ106IEZ1bmN0aW9uIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBjYWxsOiAobmFtZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgICAgICB0aGlzLmluc3RhbmNlLmNhbGwobmFtZSwgLi4uYXJncyk7XG4gICAgICB9LFxuICAgICAgc2V0VmFsdWU6ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuaW5zdGFuY2Uuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgfSxcbiAgICAgIGNsZWFyOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuaW5zdGFuY2Uuc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgIH0sXG4gICAgICByZWZyZXNoOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlZnJlc2ggPSAodGhpcy5pbnN0YW5jZSBhcyBhbnkpPy5bJ3JlZnJlc2gnXTtcbiAgICAgICAgaWYgKHJlZnJlc2ggJiYgdHlwZW9mIHJlZnJlc2ggPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICByZWZyZXNoLmJpbmQodGhpcy5pbnN0YW5jZSkoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG91dHB1dDogKG5hbWU6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmluc3RhbmNlLm91dHB1dChuYW1lKTtcbiAgICAgIH0sXG4gICAgICBmaW5kOiAoaWQ6IHN0cmluZykgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5idWlsZGVyU2VydmljZS5nZXRXaWRnZXQoaWQpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGdW5jdGlvblNjb3BlKCk6IHsgW25hbWU6IHN0cmluZ106IEZ1bmN0aW9uIH0ge1xuICAgIGNvbnN0IHNjb3BlOiB7IFtuYW1lOiBzdHJpbmddOiBGdW5jdGlvbiB9ID0ge1xuICAgICAgc3VtOiAodmFsdWVzOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHN1bSh2YWx1ZXMpO1xuICAgICAgfSxcbiAgICAgIHRyYW5zbGF0ZTogKHRleHQ6IHN0cmluZywgb3B0aW9ucz86IEFYVHJhbnNsYXRlT3B0aW9ucykgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKHRleHQsIG9wdGlvbnMpO1xuICAgICAgfSxcbiAgICAgIHdpZGdldEluZm86IChuYW1lOiBzdHJpbmcpOiBBWFBXaWRnZXRDb25maWcgfCB1bmRlZmluZWQgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy53aWRnZXRTZXJ2aWNlLnJlc29sdmUobmFtZSk7XG4gICAgICB9LFxuICAgIH07XG5cbiAgICAvLyBBZGQgY3VzdG9tIGZ1bmN0aW9ucyBmcm9tIGJ1aWxkZXIgc2VydmljZVxuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuYnVpbGRlclNlcnZpY2UuZnVuY3Rpb25zKS5mb3JFYWNoKChba2V5LCBmbl0pID0+IHtcbiAgICAgIHNjb3BlW2tleV0gPSAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgICAgcmV0dXJuIGZuKC4uLmFyZ3MpO1xuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHJldHVybiBzY29wZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmFyaWFibGVzU2NvcGUoKTogeyBbbmFtZTogc3RyaW5nXTogRnVuY3Rpb24gfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGV2YWw6IChwYXRoOiBzdHJpbmcpID0+IGdldCh0aGlzLmJ1aWxkZXJTZXJ2aWNlLnZhcmlhYmxlcywgcGF0aCksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYXNzaWduVHJpZ2dlcnMoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMubm9kZSgpO1xuICAgIC8vIENoZWNrIG11bHRpcGxlIHBvc3NpYmxlIGxvY2F0aW9ucyBmb3IgdHJpZ2dlcnNcbiAgICBjb25zdCB0cmlnZ2VycyA9IG5vZGUudHJpZ2dlcnMgfHwgbm9kZS5vcHRpb25zPy5bJ3RyaWdnZXJzJ10gfHwgdGhpcy5tZXJnZWRPcHRpb25zKCk/LnRyaWdnZXJzO1xuXG4gICAgaWYgKCF0cmlnZ2Vycykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgdHJpZ2dlciBvZiB0cmlnZ2Vycykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZXZlbnQgPSBhd2FpdCB0aGlzLmV2YWx1YXRlVHJpZ2dlcih0cmlnZ2VyLmV2ZW50KTtcbiAgICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICAgZXZlbnQucGlwZSh0aGlzLnVuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXhlYyA9IGFzeW5jIChhY3Rpb246IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICBpZiAoIWlzRW1wdHkoYWN0aW9uKSAmJiBpc1N0cmluZyhhY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5ldmFsdWF0ZUFjdGlvbihhY3Rpb24pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgYWN0aW9ucyA9IEFycmF5LmlzQXJyYXkodHJpZ2dlci5hY3Rpb24pID8gdHJpZ2dlci5hY3Rpb24gOiBbdHJpZ2dlci5hY3Rpb25dO1xuICAgICAgICAgICAgYWN0aW9ucy5mb3JFYWNoKGFzeW5jIChhOiBzdHJpbmcpID0+IGF3YWl0IGV4ZWMoYSkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBhc3NpZ25pbmcgdHJpZ2dlcjonLCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBldmFsdWF0ZVRyaWdnZXIodGVtcGxhdGVFeHByZXNzaW9uOiBzdHJpbmcpOiBQcm9taXNlPE9ic2VydmFibGU8YW55PiB8IG51bGw+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2NvcGUgPSB0aGlzLmJ1aWxkRXhwcmVzc2lvblNjb3BlKCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUodGVtcGxhdGVFeHByZXNzaW9uLCBzY29wZSk7XG5cbiAgICAgIC8vIENoZWNrIGlmIHJlc3VsdCBpcyBhbiBPYnNlcnZhYmxlXG4gICAgICBpZiAocmVzdWx0ICYmIHR5cGVvZiByZXN1bHQuc3Vic2NyaWJlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZXZhbHVhdGluZyB0cmlnZ2VyIGV4cHJlc3Npb246JywgZXJyb3IpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBldmFsdWF0ZUFjdGlvbih0ZW1wbGF0ZUV4cHJlc3Npb246IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzY29wZSA9IHRoaXMuYnVpbGRFeHByZXNzaW9uU2NvcGUoKTtcbiAgICAgIGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZSh0ZW1wbGF0ZUV4cHJlc3Npb24sIHNjb3BlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZXZhbHVhdGluZyBhY3Rpb24gZXhwcmVzc2lvbjonLCB0ZW1wbGF0ZUV4cHJlc3Npb24sIGVycm9yKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { Inject, NgModule, Optional } from '@angular/core';\nimport { AXPWidgetColumnRendererComponent } from './widget-column-renderer';\nimport { AXPWidgetContainerComponent } from './widget-container.component';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXPWidgetRendererDirective } from './widget-renderer.directive';\nimport * as i0 from \"@angular/core\";\nconst COMPONENTS = [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective];\nexport class AXPLayoutBuilderModule {\n static forRoot(config) {\n return {\n ngModule: AXPLayoutBuilderModule,\n providers: [\n {\n provide: 'AXPLayoutBuilderModuleFactory',\n useFactory: (registry) => async () => {\n await Promise.all(config?.widgets?.map((w) => Promise.resolve(registry.register(w))) || []);\n await Promise.all(config?.extendedWidgets?.map((ew) => Promise.resolve(registry.extend(ew.parentName, ew.widget))) || []);\n },\n deps: [AXPWidgetRegistryService],\n multi: true,\n },\n ],\n };\n }\n static forChild(config) {\n return {\n ngModule: AXPLayoutBuilderModule,\n providers: [\n {\n provide: 'AXPLayoutBuilderModuleFactory',\n useFactory: (registry) => async () => {\n await Promise.all(config?.widgets?.map((w) => Promise.resolve(registry.register(w))) || []);\n await Promise.all(config?.extendedWidgets?.map((ew) => Promise.resolve(registry.extend(ew.parentName, ew.widget))) || []);\n },\n deps: [AXPWidgetRegistryService],\n multi: true,\n },\n ],\n };\n }\n /**\n * @ignore\n */\n constructor(instances) {\n instances?.forEach((f) => {\n f();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBuilderModule, deps: [{ token: 'AXPLayoutBuilderModuleFactory', optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBuilderModule, declarations: [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective], imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule, AXTranslationModule], exports: [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBuilderModule, imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule, AXTranslationModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPLayoutBuilderModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule, AXTranslationModule],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: ['AXPLayoutBuilderModuleFactory']\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci9idWlsZGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBUXpFLE1BQU0sVUFBVSxHQUFHLENBQUMsMkJBQTJCLEVBQUUsZ0NBQWdDLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztBQU8vRyxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBc0M7UUFDbkQsT0FBTztZQUNMLFFBQVEsRUFBRSxzQkFBc0I7WUFDaEMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSwrQkFBK0I7b0JBQ3hDLFVBQVUsRUFBRSxDQUFDLFFBQWtDLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFO3dCQUM3RCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7d0JBRTVGLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQ3ZHLENBQUM7b0JBQ0osQ0FBQztvQkFDRCxJQUFJLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztvQkFDaEMsS0FBSyxFQUFFLElBQUk7aUJBQ1o7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFzQztRQUNwRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLCtCQUErQjtvQkFDeEMsVUFBVSxFQUFFLENBQUMsUUFBa0MsRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUU7d0JBQzdELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQzt3QkFFNUYsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FDdkcsQ0FBQztvQkFDSixDQUFDO29CQUNELElBQUksRUFBRSxDQUFDLHdCQUF3QixDQUFDO29CQUNoQyxLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQWlFLFNBQWdCO1FBQy9FLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN2QixDQUFDLEVBQUUsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FoRFUsc0JBQXNCLGtCQTRDRCwrQkFBK0I7K0dBNUNwRCxzQkFBc0IsaUJBUGYsMkJBQTJCLEVBQUUsZ0NBQWdDLEVBQUUsMEJBQTBCLGFBR2pHLFlBQVksRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixhQUh2RSwyQkFBMkIsRUFBRSxnQ0FBZ0MsRUFBRSwwQkFBMEI7K0dBT2hHLHNCQUFzQixZQUp2QixZQUFZLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxtQkFBbUI7OzJGQUk5RSxzQkFBc0I7a0JBTGxDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLENBQUM7b0JBQzFGLE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO29CQUN4QixZQUFZLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQztpQkFDOUI7OzBCQTZDYyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYU2tlbGV0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2tlbGV0b24nO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q29sdW1uUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldC1jb2x1bW4tcmVuZGVyZXInO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL3dpZGdldC1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRSZW5kZXJlckRpcmVjdGl2ZSB9IGZyb20gJy4vd2lkZ2V0LXJlbmRlcmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb25maWcsIGV4dGVuZGVkV2lkZ2V0IH0gZnJvbSAnLi93aWRnZXQudHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUExheW91dEJ1aWxkZXJNb2R1bGVDb25maWdzIHtcbiAgd2lkZ2V0cz86IEFYUFdpZGdldENvbmZpZ1tdO1xuICBleHRlbmRlZFdpZGdldHM/OiBleHRlbmRlZFdpZGdldFtdO1xufVxuXG5jb25zdCBDT01QT05FTlRTID0gW0FYUFdpZGdldENvbnRhaW5lckNvbXBvbmVudCwgQVhQV2lkZ2V0Q29sdW1uUmVuZGVyZXJDb21wb25lbnQsIEFYUFdpZGdldFJlbmRlcmVyRGlyZWN0aXZlXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUG9ydGFsTW9kdWxlLCBBWFNrZWxldG9uTW9kdWxlLCBDb21tb25Nb2R1bGUsIEFYVHJhbnNsYXRpb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UU10sXG4gIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVFNdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnPzogQVhQTGF5b3V0QnVpbGRlck1vZHVsZUNvbmZpZ3MpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYUExheW91dEJ1aWxkZXJNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFYUExheW91dEJ1aWxkZXJNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6ICdBWFBMYXlvdXRCdWlsZGVyTW9kdWxlRmFjdG9yeScsXG4gICAgICAgICAgdXNlRmFjdG9yeTogKHJlZ2lzdHJ5OiBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UpID0+IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGNvbmZpZz8ud2lkZ2V0cz8ubWFwKCh3KSA9PiBQcm9taXNlLnJlc29sdmUocmVnaXN0cnkucmVnaXN0ZXIodykpKSB8fCBbXSk7XG5cbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICBjb25maWc/LmV4dGVuZGVkV2lkZ2V0cz8ubWFwKChldykgPT4gUHJvbWlzZS5yZXNvbHZlKHJlZ2lzdHJ5LmV4dGVuZChldy5wYXJlbnROYW1lLCBldy53aWRnZXQpKSkgfHwgW10sXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVwczogW0FYUFdpZGdldFJlZ2lzdHJ5U2VydmljZV0sXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZm9yQ2hpbGQoY29uZmlnPzogQVhQTGF5b3V0QnVpbGRlck1vZHVsZUNvbmZpZ3MpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYUExheW91dEJ1aWxkZXJNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFYUExheW91dEJ1aWxkZXJNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6ICdBWFBMYXlvdXRCdWlsZGVyTW9kdWxlRmFjdG9yeScsXG4gICAgICAgICAgdXNlRmFjdG9yeTogKHJlZ2lzdHJ5OiBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UpID0+IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGNvbmZpZz8ud2lkZ2V0cz8ubWFwKCh3KSA9PiBQcm9taXNlLnJlc29sdmUocmVnaXN0cnkucmVnaXN0ZXIodykpKSB8fCBbXSk7XG5cbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICBjb25maWc/LmV4dGVuZGVkV2lkZ2V0cz8ubWFwKChldykgPT4gUHJvbWlzZS5yZXNvbHZlKHJlZ2lzdHJ5LmV4dGVuZChldy5wYXJlbnROYW1lLCBldy53aWRnZXQpKSkgfHwgW10sXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVwczogW0FYUFdpZGdldFJlZ2lzdHJ5U2VydmljZV0sXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdCgnQVhQTGF5b3V0QnVpbGRlck1vZHVsZUZhY3RvcnknKSBpbnN0YW5jZXM6IGFueVtdKSB7XG4gICAgaW5zdGFuY2VzPy5mb3JFYWNoKChmKSA9PiB7XG4gICAgICBmKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","export class AXPPropertyEditorHelper {\n static expandShorthand(values) {\n switch (values.length) {\n case 1:\n return [values[0], values[0], values[0], values[0]];\n case 2:\n return [values[0], values[1], values[0], values[1]];\n case 3:\n return [values[0], values[1], values[2], values[1]];\n case 4:\n return values;\n default:\n throw new Error(`Invalid shorthand value count. Input: ${values}`);\n }\n }\n static condenseShorthand(values) {\n if (values.length !== 4) {\n throw new Error('Expected 4 values for condensation.');\n }\n if (values[0] === values[1] && values[1] === values[2] && values[2] === values[3]) {\n return `${values[0]}`;\n }\n else if (values[0] === values[2] && values[1] === values[3]) {\n return `${values[0]} ${values[1]}`;\n }\n else if (values[1] === values[3]) {\n return `${values[0]} ${values[1]} ${values[2]}`;\n }\n else {\n return `${values[0]} ${values[1]} ${values[2]} ${values[3]}`;\n }\n }\n static parseSides(input) {\n const values = this.expandShorthand(input.match(/(?:rgb\\([^)]+\\)|[^ ]+)/g)?.map((value) => value.trim()) || []);\n return { top: values[0], right: values[1], bottom: values[2], left: values[3] };\n }\n static parseSidesWithUnits(input) {\n const values = this.expandShorthand(input.match(/(?:rgb\\([^)]+\\)|[^ ]+)/g)?.map((value) => value.trim()) || []);\n return {\n top: AXPPropertyEditorHelper.getValueWithUnit(values[0]).value,\n right: AXPPropertyEditorHelper.getValueWithUnit(values[1]).value,\n bottom: AXPPropertyEditorHelper.getValueWithUnit(values[2]).value,\n left: AXPPropertyEditorHelper.getValueWithUnit(values[3]).value,\n };\n }\n static parseCorners(input) {\n const values = this.expandShorthand(input.split(' ').map((value) => value.trim()));\n return {\n 'top-left': AXPPropertyEditorHelper.getValueWithUnit(values[0]).value,\n 'top-right': AXPPropertyEditorHelper.getValueWithUnit(values[1]).value,\n 'bottom-left': AXPPropertyEditorHelper.getValueWithUnit(values[2]).value,\n 'bottom-right': AXPPropertyEditorHelper.getValueWithUnit(values[3]).value,\n };\n }\n static parseSpacingBox(input) {\n return {\n margin: this.parseSidesWithUnits(input.margin),\n padding: this.parseSidesWithUnits(input.padding),\n };\n }\n static parseBorderBox(input) {\n return {\n width: this.parseSidesWithUnits(input.width),\n radius: this.parseCorners(input.radius),\n color: this.parseSides(input.color),\n style: this.parseSides(input.style),\n };\n }\n static parseSpacingBoxReverse(input, units) {\n const format = (value, unit) => `${value}${unit}`;\n return {\n margin: AXPPropertyEditorHelper.condenseShorthand([\n format(input.margin.top, units.margin.top),\n format(input.margin.right, units.margin.right),\n format(input.margin.bottom, units.margin.bottom),\n format(input.margin.left, units.margin.left),\n ]),\n padding: AXPPropertyEditorHelper.condenseShorthand([\n format(input.padding.top, units.padding.top),\n format(input.padding.right, units.padding.right),\n format(input.padding.bottom, units.padding.bottom),\n format(input.padding.left, units.padding.left),\n ]),\n };\n }\n static parseBorderBoxReverse(input, units) {\n const format = (value, unit) => `${value}${unit}`;\n return {\n width: AXPPropertyEditorHelper.condenseShorthand([\n format(input.width.top, units.width.top),\n format(input.width.right, units.width.right),\n format(input.width.bottom, units.width.bottom),\n format(input.width.left, units.width.left),\n ]),\n radius: AXPPropertyEditorHelper.condenseShorthand([\n format(input.radius['top-left'], units.radius['top-left']),\n format(input.radius['top-right'], units.radius['top-right']),\n format(input.radius['bottom-right'], units.radius['bottom-right']),\n format(input.radius['bottom-left'], units.radius['bottom-left']),\n ]),\n color: AXPPropertyEditorHelper.condenseShorthand([\n `${input.color.top}${units.color.top}`,\n `${input.color.right}${units.color.right}`,\n `${input.color.bottom}${units.color.bottom}`,\n `${input.color.left}${units.color.left}`,\n ]),\n style: AXPPropertyEditorHelper.condenseShorthand([\n `${input.style.top}${units.style.top}`,\n `${input.style.right}${units.style.right}`,\n `${input.style.bottom}${units.style.bottom}`,\n `${input.style.left}${units.style.left}`,\n ]),\n };\n }\n static getValueWithUnit(input) {\n if (typeof input === 'number')\n return { value: input, unit: 'px' };\n if (input === 'auto')\n return { value: 0, unit: 'px' };\n const match = input.match(/^([0-9.]+)([a-z%]*)$/i);\n if (!match)\n throw new Error(`Invalid unit format: ${input}`);\n return { value: parseFloat(match[1]), unit: match[2] || '' };\n }\n static getValueFromUnit(value, unit) {\n return unit ? `${value}${unit}` : `${value}`;\n }\n static parseGap(gap) {\n const parts = gap.split(/\\s+/);\n const match = parts[0].match(/^(\\d+\\.?\\d*)([a-z%]+)$/);\n if (!match) {\n throw new Error('Invalid gap format');\n }\n const [, xValue, unit] = match;\n let yValue = parseFloat(xValue);\n if (parts.length === 2) {\n const secondMatch = parts[1].match(/^(\\d+\\.?\\d*)[a-z%]+$/);\n if (!secondMatch) {\n throw new Error('Invalid gap format');\n }\n yValue = parseFloat(secondMatch[1]);\n }\n return {\n values: {\n x: parseFloat(xValue),\n y: yValue,\n },\n unit,\n };\n }\n static parseGridTemplate(gridTemplate) {\n const match = gridTemplate.match(/^repeat\\((\\d+),\\s*(?:1fr|auto|minmax\\([^)]*\\))\\)$/);\n if (!match) {\n throw new Error(\"Invalid grid template format. Expected 'repeat(N, 1fr|auto|minmax(...))'.\");\n }\n return parseInt(match[1], 10);\n }\n static createGridTemplate(repetitionCount) {\n if (repetitionCount <= 0) {\n throw new Error('Repetition count must be a positive integer.');\n }\n return `repeat(${repetitionCount}, 1fr)`;\n }\n}\nexport function findNonEmptyBreakpoints(values) {\n const breakpoints = ['default', 'sm', 'md', 'lg', 'xl', '2xl', '3xl'];\n const nonEmptyBreakpoints = [];\n for (const breakpoint of breakpoints) {\n if (values[breakpoint] !== undefined) {\n nonEmptyBreakpoints.push(breakpoint);\n }\n }\n return nonEmptyBreakpoints;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZWRpdG9yLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL2hlbHBlci9wcm9wZXJ0eS1lZGl0b3IuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE1BQU0sT0FBTyx1QkFBdUI7SUFDMUIsTUFBTSxDQUFDLGVBQWUsQ0FBbUIsTUFBVztRQUMxRCxRQUFRLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QixLQUFLLENBQUM7Z0JBQ0osT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RELEtBQUssQ0FBQztnQkFDSixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEQsS0FBSyxDQUFDO2dCQUNKLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RCxLQUFLLENBQUM7Z0JBQ0osT0FBTyxNQUFNLENBQUM7WUFDaEI7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN2RSxDQUFDO0lBQ0gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBSSxNQUFXO1FBQzdDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FB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QztJQUNILENBQUM7SUFFRCxPQUFPLG1CQUFtQixDQUFDO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWFBCb3JkZXJCb3gsXG4gIEFYUEJvcmRlckJveFN0cmluZyxcbiAgQVhQQnJlYWtwb2ludHMsXG4gIEFYUEJyZWFrcG9pbnRWYWx1ZXMsXG4gIEFYUFByb3BlcnR5Q29ybmVycyxcbiAgQVhQUHJvcGVydHlTaWRlcyxcbiAgQVhQU3BhY2luZ0JveCxcbiAgQVhQU3BhY2luZ0JveFN0cmluZyxcbn0gZnJvbSAnLi9wcm9wZXJ0eS1lZGl0b3IudHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBBWFBQcm9wZXJ0eUVkaXRvckhlbHBlciB7XG4gIHByaXZhdGUgc3RhdGljIGV4cGFuZFNob3J0aGFuZDxUIGV4dGVuZHMgc3RyaW5nPih2YWx1ZXM6IFRbXSk6IFRbXSB7XG4gICAgc3dpdGNoICh2YWx1ZXMubGVuZ3RoKSB7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHJldHVybiBbdmFsdWVzWzBdLCB2YWx1ZXNbMF0sIHZhbHVlc1swXSwgdmFsdWVzWzBdXTtcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgcmV0dXJuIFt2YWx1ZXNbMF0sIHZhbHVlc1sxXSwgdmFsdWVzWzBdLCB2YWx1ZXNbMV1dO1xuICAgICAgY2FzZSAzOlxuICAgICAgICByZXR1cm4gW3ZhbHVlc1swXSwgdmFsdWVzWzFdLCB2YWx1ZXNbMl0sIHZhbHVlc1sxXV07XG4gICAgICBjYXNlIDQ6XG4gICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgc2hvcnRoYW5kIHZhbHVlIGNvdW50LiBJbnB1dDogJHt2YWx1ZXN9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY29uZGVuc2VTaG9ydGhhbmQ8VD4odmFsdWVzOiBUW10pOiBzdHJpbmcge1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoICE9PSA0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIDQgdmFsdWVzIGZvciBjb25kZW5zYXRpb24uJyk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlc1swXSA9PT0gdmFsdWVzWzFdICYmIHZhbHVlc1sxXSA9PT0gdmFsdWVzWzJdICYmIHZhbHVlc1syXSA9PT0gdmFsdWVzWzNdKSB7XG4gICAgICByZXR1cm4gYCR7dmFsdWVzWzBdfWA7XG4gICAgfSBlbHNlIGlmICh2YWx1ZXNbMF0gPT09IHZhbHVlc1syXSAmJiB2YWx1ZXNbMV0gPT09IHZhbHVlc1szXSkge1xuICAgICAgcmV0dXJuIGAke3ZhbHVlc1swXX0gJHt2YWx1ZXNbMV19YDtcbiAgICB9IGVsc2UgaWYgKHZhbHVlc1sxXSA9PT0gdmFsdWVzWzNdKSB7XG4gICAgICByZXR1cm4gYCR7dmFsdWVzWzBdfSAke3ZhbHVlc1sxXX0gJHt2YWx1ZXNbMl19YDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGAke3ZhbHVlc1swXX0gJHt2YWx1ZXNbMV19ICR7dmFsdWVzWzJdfSAke3ZhbHVlc1szXX1gO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHBhcnNlU2lkZXMoaW5wdXQ6IHN0cmluZyk6IEFYUFByb3BlcnR5U2lkZXMge1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuZXhwYW5kU2hvcnRoYW5kKGlucHV0Lm1hdGNoKC8oPzpyZ2JcXChbXildK1xcKXxbXiBdKykvZyk/Lm1hcCgodmFsdWUpID0+IHZhbHVlLnRyaW0oKSkgfHwgW10pO1xuICAgIHJldHVybiB7IHRvcDogdmFsdWVzWzBdLCByaWdodDogdmFsdWVzWzFdLCBib3R0b206IHZhbHVlc1syXSwgbGVmdDogdmFsdWVzWzNdIH07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBwYXJzZVNpZGVzV2l0aFVuaXRzKGlucHV0OiBzdHJpbmcpOiBBWFBQcm9wZXJ0eVNpZGVzPG51bWJlcj4ge1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuZXhwYW5kU2hvcnRoYW5kKGlucHV0Lm1hdGNoKC8oPzpyZ2JcXChbXildK1xcKXxbXiBdKykvZyk/Lm1hcCgodmFsdWUpID0+IHZhbHVlLnRyaW0oKSkgfHwgW10pO1xuICAgIHJldHVybiB7XG4gICAgICB0b3A6IEFYUFByb3BlcnR5RWRpdG9ySGVscGVyLmdldFZhbHVlV2l0aFVuaXQodmFsdWVzWzBdKS52YWx1ZSxcbiAgICAgIHJpZ2h0OiBBWFBQcm9wZXJ0eUVkaXRvckhlbHBlci5nZXRWYWx1ZVdpdGhVbml0KHZhbHVlc1sxXSkudmFsdWUsXG4gICAgICBib3R0b206IEFYUFByb3BlcnR5RWRpdG9ySGVscGVyLmdldFZhbHVlV2l0aFVuaXQodmFsdWVzWzJdKS52YWx1ZSxcbiAgICAgIGxlZnQ6IEFYUFByb3BlcnR5RWRpdG9ySGVscGVyLmdldFZhbHVlV2l0aFVuaXQodmFsdWVzWzNdKS52YWx1ZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcGFyc2VDb3JuZXJzKGlucHV0OiBzdHJpbmcpOiBBWFBQcm9wZXJ0eUNvcm5lcnM8bnVtYmVyPiB7XG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5leHBhbmRTaG9ydGhhbmQoaW5wdXQuc3BsaXQoJyAnKS5tYXAoKHZhbHVlKSA9PiB2YWx1ZS50cmltKCkpKTtcbiAgICByZXR1cm4ge1xuICAgICAgJ3RvcC1sZWZ0JzogQVhQUHJvcGVydHlFZGl0b3JIZWxwZXIuZ2V0VmFsdWVXaXRoVW5pdCh2YWx1ZXNbMF0pLnZhbHVlLFxuICAgICAgJ3RvcC1yaWdodCc6IEFYUFByb3BlcnR5RWRpdG9ySGVscGVyLmdldFZhbHVlV2l0aFVuaXQodmFsdWVzWzFdKS52YWx1ZSxcbiAgICAgICdib3R0b20tbGVmdCc6IEFYUFByb3BlcnR5RWRpdG9ySGVscGVyLmdldFZhbHVlV2l0aFVuaXQodmFsdWVzWzJdKS52YWx1ZSxcbiAgICAgICdib3R0b20tcmlnaHQnOiBBWFBQcm9wZXJ0eUVkaXRvckhlbHBlci5nZXRWYWx1ZVdpdGhVbml0KHZhbHVlc1szXSkudmFsdWUsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2VTcGFjaW5nQm94KGlucHV0OiBBWFBTcGFjaW5nQm94U3RyaW5nKTogQVhQU3BhY2luZ0JveDxudW1iZXI+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbWFyZ2luOiB0aGlzLnBhcnNlU2lkZXNXaXRoVW5pdHMoaW5wdXQubWFyZ2luKSxcbiAgICAgIHBhZGRpbmc6IHRoaXMucGFyc2VTaWRlc1dpdGhVbml0cyhpbnB1dC5wYWRkaW5nKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBwYXJzZUJvcmRlckJveChpbnB1dDogQVhQQm9yZGVyQm94U3RyaW5nKTogQVhQQm9yZGVyQm94PG51bWJlciB8IHN0cmluZz4ge1xuICAgIHJldHVybiB7XG4gICAgICB3aWR0aDogdGhpcy5wYXJzZVNpZGVzV2l0aFVuaXRzKGlucHV0LndpZHRoKSxcbiAgICAgIHJhZGl1czogdGhpcy5wYXJzZUNvcm5lcnMoaW5wdXQucmFkaXVzKSxcbiAgICAgIGNvbG9yOiB0aGlzLnBhcnNlU2lkZXMoaW5wdXQuY29sb3IpLFxuICAgICAgc3R5bGU6IHRoaXMucGFyc2VTaWRlcyhpbnB1dC5zdHlsZSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2VTcGFjaW5nQm94UmV2ZXJzZShcbiAgICBpbnB1dDogQVhQU3BhY2luZ0JveDxudW1iZXI+LFxuICAgIHVuaXRzOiBBWFBTcGFjaW5nQm94PHN0cmluZz4sXG4gICk6IEFYUFNwYWNpbmdCb3hTdHJpbmcge1xuICAgIGNvbnN0IGZvcm1hdCA9ICh2YWx1ZTogbnVtYmVyLCB1bml0OiBzdHJpbmcpID0+IGAke3ZhbHVlfSR7dW5pdH1gO1xuICAgIHJldHVybiB7XG4gICAgICBtYXJnaW46IEFYUFByb3BlcnR5RWRpdG9ySGVscGVyLmNvbmRlbnNlU2hvcnRoYW5kKFtcbiAgICAgICAgZm9ybWF0KGlucHV0Lm1hcmdpbi50b3AsIHVuaXRzLm1hcmdpbi50b3ApLFxuICAgICAgICBmb3JtYXQoaW5wdXQubWFyZ2luLnJpZ2h0LCB1bml0cy5tYXJnaW4ucmlnaHQpLFxuICAgICAgICBmb3JtYXQoaW5wdXQubWFyZ2luLmJvdHRvbSwgdW5pdHMubWFyZ2luLmJvdHRvbSksXG4gICAgICAgIGZvcm1hdChpbnB1dC5tYXJnaW4ubGVmdCwgdW5pdHMubWFyZ2luLmxlZnQpLFxuICAgICAgXSksXG4gICAgICBwYWRkaW5nOiBBWFBQcm9wZXJ0eUVkaXRvckhlbHBlci5jb25kZW5zZVNob3J0aGFuZChbXG4gICAgICAgIGZvcm1hdChpbnB1dC5wYWRkaW5nLnRvcCwgdW5pdHMucGFkZGluZy50b3ApLFxuICAgICAgICBmb3JtYXQoaW5wdXQucGFkZGluZy5yaWdodCwgdW5pdHMucGFkZGluZy5yaWdodCksXG4gICAgICAgIGZvcm1hdChpbnB1dC5wYWRkaW5nLmJvdHRvbSwgdW5pdHMucGFkZGluZy5ib3R0b20pLFxuICAgICAgICBmb3JtYXQoaW5wdXQucGFkZGluZy5sZWZ0LCB1bml0cy5wYWRkaW5nLmxlZnQpLFxuICAgICAgXSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2VCb3JkZXJCb3hSZXZlcnNlKFxuICAgIGlucHV0OiBBWFBCb3JkZXJCb3g8bnVtYmVyIHwgc3RyaW5nPixcbiAgICB1bml0czogQVhQQm9yZGVyQm94PHN0cmluZz4sXG4gICk6IEFYUEJvcmRlckJveFN0cmluZyB7XG4gICAgY29uc3QgZm9ybWF0ID0gKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIHVuaXQ6IHN0cmluZykgPT4gYCR7dmFsdWV9JHt1bml0fWA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgd2lkdGg6IEFYUFByb3BlcnR5RWRpdG9ySGVscGVyLmNvbmRlbnNlU2hvcnRoYW5kKFtcbiAgICAgICAgZm9ybWF0KGlucHV0LndpZHRoLnRvcCwgdW5pdHMud2lkdGgudG9wKSxcbiAgICAgICAgZm9ybWF0KGlucHV0LndpZHRoLnJpZ2h0LCB1bml0cy53aWR0aC5yaWdodCksXG4gICAgICAgIGZvcm1hdChpbnB1dC53aWR0aC5ib3R0b20sIHVuaXRzLndpZHRoLmJvdHRvbSksXG4gICAgICAgIGZvcm1hdChpbnB1dC53aWR0aC5sZWZ0LCB1bml0cy53aWR0aC5sZWZ0KSxcbiAgICAgIF0pLFxuICAgICAgcmFkaXVzOiBBWFBQcm9wZXJ0eUVkaXRvckhlbHBlci5jb25kZW5zZVNob3J0aGFuZChbXG4gICAgICAgIGZvcm1hdChpbnB1dC5yYWRpdXNbJ3RvcC1sZWZ0J10sIHVuaXRzLnJhZGl1c1sndG9wLWxlZnQnXSksXG4gICAgICAgIGZvcm1hdChpbnB1dC5yYWRpdXNbJ3RvcC1yaWdodCddLCB1bml0cy5yYWRpdXNbJ3RvcC1yaWdodCddKSxcbiAgICAgICAgZm9ybWF0KGlucHV0LnJhZGl1c1snYm90dG9tLXJpZ2h0J10sIHVuaXRzLnJhZGl1c1snYm90dG9tLXJpZ2h0J10pLFxuICAgICAgICBmb3JtYXQoaW5wdXQucmFkaXVzWydib3R0b20tbGVmdCddLCB1bml0cy5yYWRpdXNbJ2JvdHRvbS1sZWZ0J10pLFxuICAgICAgXSksXG4gICAgICBjb2xvcjogQVhQUHJvcGVydHlFZGl0b3JIZWxwZXIuY29uZGVuc2VTaG9ydGhhbmQoW1xuICAgICAgICBgJHtpbnB1dC5jb2xvci50b3B9JHt1bml0cy5jb2xvci50b3B9YCxcbiAgICAgICAgYCR7aW5wdXQuY29sb3IucmlnaHR9JHt1bml0cy5jb2xvci5yaWdodH1gLFxuICAgICAgICBgJHtpbnB1dC5jb2xvci5ib3R0b219JHt1bml0cy5jb2xvci5ib3R0b219YCxcbiAgICAgICAgYCR7aW5wdXQuY29sb3IubGVmdH0ke3VuaXRzLmNvbG9yLmxlZnR9YCxcbiAgICAgIF0pLFxuICAgICAgc3R5bGU6IEFYUFByb3BlcnR5RWRpdG9ySGVscGVyLmNvbmRlbnNlU2hvcnRoYW5kKFtcbiAgICAgICAgYCR7aW5wdXQuc3R5bGUudG9wfSR7dW5pdHMuc3R5bGUudG9wfWAsXG4gICAgICAgIGAke2lucHV0LnN0eWxlLnJpZ2h0fSR7dW5pdHMuc3R5bGUucmlnaHR9YCxcbiAgICAgICAgYCR7aW5wdXQuc3R5bGUuYm90dG9tfSR7dW5pdHMuc3R5bGUuYm90dG9tfWAsXG4gICAgICAgIGAke2lucHV0LnN0eWxlLmxlZnR9JHt1bml0cy5zdHlsZS5sZWZ0fWAsXG4gICAgICBdKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRWYWx1ZVdpdGhVbml0KGlucHV0OiBzdHJpbmcgfCBudW1iZXIpOiB7IHZhbHVlOiBudW1iZXI7IHVuaXQ6IHN0cmluZyB9IHtcbiAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnbnVtYmVyJykgcmV0dXJuIHsgdmFsdWU6IGlucHV0LCB1bml0OiAncHgnIH07XG4gICAgaWYgKGlucHV0ID09PSAnYXV0bycpIHJldHVybiB7IHZhbHVlOiAwLCB1bml0OiAncHgnIH07XG5cbiAgICBjb25zdCBtYXRjaCA9IGlucHV0Lm1hdGNoKC9eKFswLTkuXSspKFthLXolXSopJC9pKTtcbiAgICBpZiAoIW1hdGNoKSB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdW5pdCBmb3JtYXQ6ICR7aW5wdXR9YCk7XG5cbiAgICByZXR1cm4geyB2YWx1ZTogcGFyc2VGbG9hdChtYXRjaFsxXSksIHVuaXQ6IG1hdGNoWzJdIHx8ICcnIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldFZhbHVlRnJvbVVuaXQodmFsdWU6IG51bWJlciwgdW5pdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdW5pdCA/IGAke3ZhbHVlfSR7dW5pdH1gIDogYCR7dmFsdWV9YDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2VHYXAoZ2FwOiBzdHJpbmcpOiB7IHZhbHVlczogUmVjb3JkPCd4JyB8ICd5JywgbnVtYmVyPjsgdW5pdDogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHBhcnRzID0gZ2FwLnNwbGl0KC9cXHMrLyk7XG4gICAgY29uc3QgbWF0Y2ggPSBwYXJ0c1swXS5tYXRjaCgvXihcXGQrXFwuP1xcZCopKFthLXolXSspJC8pO1xuICAgIGlmICghbWF0Y2gpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBnYXAgZm9ybWF0Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgWywgeFZhbHVlLCB1bml0XSA9IG1hdGNoO1xuICAgIGxldCB5VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7XG4gICAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgY29uc3Qgc2Vjb25kTWF0Y2ggPSBwYXJ0c1sxXS5tYXRjaCgvXihcXGQrXFwuP1xcZCopW2EteiVdKyQvKTtcbiAgICAgIGlmICghc2Vjb25kTWF0Y2gpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGdhcCBmb3JtYXQnKTtcbiAgICAgIH1cbiAgICAgIHlWYWx1ZSA9IHBhcnNlRmxvYXQoc2Vjb25kTWF0Y2hbMV0pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB2YWx1ZXM6IHtcbiAgICAgICAgeDogcGFyc2VGbG9hdCh4VmFsdWUpLFxuICAgICAgICB5OiB5VmFsdWUsXG4gICAgICB9LFxuICAgICAgdW5pdCxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBwYXJzZUdyaWRUZW1wbGF0ZShncmlkVGVtcGxhdGU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgbWF0Y2ggPSBncmlkVGVtcGxhdGUubWF0Y2goL15yZXBlYXRcXCgoXFxkKyksXFxzKig/OjFmcnxhdXRvfG1pbm1heFxcKFteKV0qXFwpKVxcKSQvKTtcbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGdyaWQgdGVtcGxhdGUgZm9ybWF0LiBFeHBlY3RlZCAncmVwZWF0KE4sIDFmcnxhdXRvfG1pbm1heCguLi4pKScuXCIpO1xuICAgIH1cbiAgICByZXR1cm4gcGFyc2VJbnQobWF0Y2hbMV0sIDEwKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlR3JpZFRlbXBsYXRlKHJlcGV0aXRpb25Db3VudDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAocmVwZXRpdGlvbkNvdW50IDw9IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVwZXRpdGlvbiBjb3VudCBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlci4nKTtcbiAgICB9XG4gICAgcmV0dXJuIGByZXBlYXQoJHtyZXBldGl0aW9uQ291bnR9LCAxZnIpYDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZE5vbkVtcHR5QnJlYWtwb2ludHM8VD4odmFsdWVzOiBBWFBCcmVha3BvaW50VmFsdWVzPFQ+KTogQVhQQnJlYWtwb2ludHNbXSB7XG4gIGNvbnN0IGJyZWFrcG9pbnRzOiBBWFBCcmVha3BvaW50c1tdID0gWydkZWZhdWx0JywgJ3NtJywgJ21kJywgJ2xnJywgJ3hsJywgJzJ4bCcsICczeGwnXTtcbiAgY29uc3Qgbm9uRW1wdHlCcmVha3BvaW50czogQVhQQnJlYWtwb2ludHNbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgYnJlYWtwb2ludCBvZiBicmVha3BvaW50cykge1xuICAgIGlmICh2YWx1ZXNbYnJlYWtwb2ludF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgbm9uRW1wdHlCcmVha3BvaW50cy5wdXNoKGJyZWFrcG9pbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBub25FbXB0eUJyZWFrcG9pbnRzO1xufVxuIl19","export const AXP_WIDGETS_LAYOUT_CATEGORY = {\n name: 'layout',\n order: 1,\n title: 'Layout',\n};\nexport const AXP_WIDGETS_EDITOR_CATEGORY = {\n name: 'editor',\n order: 2,\n title: 'Editors',\n};\nexport const AXP_WIDGETS_ACTION_CATEGORY = {\n name: 'action',\n order: 3,\n title: 'Action',\n};\nexport const AXP_WIDGETS_ADVANCE_CATEGORY = {\n name: 'advance',\n order: 4,\n title: 'Advance',\n};\nexport const AXP_WIDGETS_CATEGORIES = [\n AXP_WIDGETS_LAYOUT_CATEGORY,\n AXP_WIDGETS_EDITOR_CATEGORY,\n AXP_WIDGETS_ACTION_CATEGORY,\n AXP_WIDGETS_ADVANCE_CATEGORY,\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNhdGVnb3JpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci93aWRnZXQtY2F0ZWdvcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBc0I7SUFDNUQsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsQ0FBQztJQUNSLEtBQUssRUFBRSxRQUFRO0NBQ2hCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBc0I7SUFDNUQsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsQ0FBQztJQUNSLEtBQUssRUFBRSxTQUFTO0NBQ2pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBc0I7SUFDNUQsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsQ0FBQztJQUNSLEtBQUssRUFBRSxRQUFRO0NBQ2hCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBc0I7SUFDN0QsSUFBSSxFQUFFLFNBQVM7SUFDZixLQUFLLEVBQUUsQ0FBQztJQUNSLEtBQUssRUFBRSxTQUFTO0NBQ2pCLENBQUM7QUFJRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBd0I7SUFDekQsMkJBQTJCO0lBQzNCLDJCQUEyQjtJQUMzQiwyQkFBMkI7SUFDM0IsNEJBQTRCO0NBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldENhdGVnb3J5IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBvcmRlcjogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgQVhQX1dJREdFVFNfTEFZT1VUX0NBVEVHT1JZOiBBWFBXaWRnZXRDYXRlZ29yeSA9IHtcbiAgbmFtZTogJ2xheW91dCcsXG4gIG9yZGVyOiAxLFxuICB0aXRsZTogJ0xheW91dCcsXG59O1xuXG5leHBvcnQgY29uc3QgQVhQX1dJREdFVFNfRURJVE9SX0NBVEVHT1JZOiBBWFBXaWRnZXRDYXRlZ29yeSA9IHtcbiAgbmFtZTogJ2VkaXRvcicsXG4gIG9yZGVyOiAyLFxuICB0aXRsZTogJ0VkaXRvcnMnLFxufTtcblxuZXhwb3J0IGNvbnN0IEFYUF9XSURHRVRTX0FDVElPTl9DQVRFR09SWTogQVhQV2lkZ2V0Q2F0ZWdvcnkgPSB7XG4gIG5hbWU6ICdhY3Rpb24nLFxuICBvcmRlcjogMyxcbiAgdGl0bGU6ICdBY3Rpb24nLFxufTtcblxuZXhwb3J0IGNvbnN0IEFYUF9XSURHRVRTX0FEVkFOQ0VfQ0FURUdPUlk6IEFYUFdpZGdldENhdGVnb3J5ID0ge1xuICBuYW1lOiAnYWR2YW5jZScsXG4gIG9yZGVyOiA0LFxuICB0aXRsZTogJ0FkdmFuY2UnLFxufTtcblxuXG5cbmV4cG9ydCBjb25zdCBBWFBfV0lER0VUU19DQVRFR09SSUVTOiBBWFBXaWRnZXRDYXRlZ29yeVtdID0gW1xuICBBWFBfV0lER0VUU19MQVlPVVRfQ0FURUdPUlksXG4gIEFYUF9XSURHRVRTX0VESVRPUl9DQVRFR09SWSxcbiAgQVhQX1dJREdFVFNfQUNUSU9OX0NBVEVHT1JZLFxuICBBWFBfV0lER0VUU19BRFZBTkNFX0NBVEVHT1JZLFxuXTtcbiJdfQ==","export var AXPWidgetGroupEnum;\n(function (AXPWidgetGroupEnum) {\n AXPWidgetGroupEnum[\"FormElement\"] = \"form-element\";\n AXPWidgetGroupEnum[\"DashboardWidget\"] = \"dashboard-widget\";\n AXPWidgetGroupEnum[\"FormTemplate\"] = \"form-template\";\n AXPWidgetGroupEnum[\"PropertyEditor\"] = \"property-editor\";\n AXPWidgetGroupEnum[\"MetaData\"] = \"meta-data\";\n AXPWidgetGroupEnum[\"SettingWidget\"] = \"setting-widget\";\n AXPWidgetGroupEnum[\"EntityWidget\"] = \"entity-widget\";\n})(AXPWidgetGroupEnum || (AXPWidgetGroupEnum = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWdyb3VwLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvd2lkZ2V0LWdyb3VwLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE1BQU0sQ0FBTixJQUFZLGtCQVFYO0FBUkQsV0FBWSxrQkFBa0I7SUFDNUIsa0RBQTRCLENBQUE7SUFDNUIsMERBQW9DLENBQUE7SUFDcEMsb0RBQThCLENBQUE7SUFDOUIsd0RBQWtDLENBQUE7SUFDbEMsNENBQXNCLENBQUE7SUFDdEIsc0RBQWdDLENBQUE7SUFDaEMsb0RBQThCLENBQUE7QUFDaEMsQ0FBQyxFQVJXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFRN0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBBWFBXaWRnZXRHcm91cCA9XG4gICdmb3JtLWVsZW1lbnQnIHxcbiAgJ2Rhc2hib2FyZC13aWRnZXQnIHxcbiAgJ2Zvcm0tdGVtcGxhdGUnIHxcbiAgJ3Byb3BlcnR5LWVkaXRvcicgfFxuICAnbWV0YS1kYXRhJyB8XG4gICdzZXR0aW5nLXdpZGdldCcgfFxuICAnZW50aXR5LXdpZGdldCc7XG5cblxuZXhwb3J0IGVudW0gQVhQV2lkZ2V0R3JvdXBFbnVtIHtcbiAgRm9ybUVsZW1lbnQgPSAnZm9ybS1lbGVtZW50JyxcbiAgRGFzaGJvYXJkV2lkZ2V0ID0gJ2Rhc2hib2FyZC13aWRnZXQnLFxuICBGb3JtVGVtcGxhdGUgPSAnZm9ybS10ZW1wbGF0ZScsXG4gIFByb3BlcnR5RWRpdG9yID0gJ3Byb3BlcnR5LWVkaXRvcicsXG4gIE1ldGFEYXRhID0gJ21ldGEtZGF0YScsXG4gIFNldHRpbmdXaWRnZXQgPSAnc2V0dGluZy13aWRnZXQnLFxuICBFbnRpdHlXaWRnZXQgPSAnZW50aXR5LXdpZGdldCcsXG59Il19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWxheW91dC1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvYWNvcmV4LXBsYXRmb3JtLWxheW91dC1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1"],"mappings":"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"}
|