@acorex/platform 20.3.0-next.7 → 20.3.0-next.8

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.
Files changed (32) hide show
  1. package/core/index.d.ts +331 -2
  2. package/fesm2022/acorex-platform-core.mjs +347 -45
  3. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  4. package/fesm2022/acorex-platform-layout-builder.mjs +2 -2
  5. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  6. package/fesm2022/acorex-platform-layout-components.mjs +670 -51
  7. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  8. package/fesm2022/acorex-platform-layout-entity.mjs +9 -5
  9. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-layout-views.mjs +15 -0
  11. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  12. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-KpZWpnOJ.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BgEh06Tn.mjs} +21 -11
  13. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BgEh06Tn.mjs.map +1 -0
  14. 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
  15. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-AeOQxjbS.mjs.map +1 -0
  16. 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
  17. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DEVzRd6-.mjs.map +1 -0
  18. package/fesm2022/acorex-platform-themes-shared.mjs +51 -15
  19. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  20. package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-C-4bWr9G.mjs → acorex-platform-widgets-checkbox-widget-view.component-KYCQ2qTJ.mjs} +51 -35
  21. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-KYCQ2qTJ.mjs.map +1 -0
  22. package/fesm2022/acorex-platform-widgets.mjs +1089 -1657
  23. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  24. package/layout/builder/index.d.ts +2 -3
  25. package/layout/components/index.d.ts +286 -7
  26. package/layout/entity/index.d.ts +8 -1
  27. package/package.json +1 -1
  28. package/widgets/index.d.ts +1240 -284
  29. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-KpZWpnOJ.mjs.map +0 -1
  30. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BvOiVCgt.mjs.map +0 -1
  31. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BW0rfkjk.mjs.map +0 -1
  32. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-C-4bWr9G.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1zdG9yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvY29udGV4dC1zdG9yZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFPLE9BQU8sRUFBUyxNQUFNLFdBQVcsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUlqRCxNQUFNLE9BQU8sMkJBQTJCO0NBTXZDO0FBRUQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsV0FBVztBQUNuRCxnQkFBZ0I7QUFDaEIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDYixJQUFJLEVBQUUsRUFBRSxFQUFFLHNCQUFzQjtJQUNoQyxLQUFLLEVBQUUsV0FBb0MsRUFBRSxnQkFBZ0I7SUFDN0QsZUFBZSxFQUFFLEVBQUUsRUFBRSwwQ0FBMEM7SUFDL0QsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLGlDQUFpQztJQUN2RCxVQUFVLEVBQUU7UUFDUixLQUFLLEVBQUUsV0FBVztLQUNVLEVBQUUsb0JBQW9CO0NBQ3pELENBQUMsQ0FBQztBQUVILG1CQUFtQjtBQUNuQixZQUFZLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLFNBQVMsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEtB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QUFDO0lBQ1AsQ0FBQztJQUVELHVCQUF1QjtJQUN2QixRQUFRLENBQUMsSUFBWTtRQUNqQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNKLENBQUMsQ0FBQyxDQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaWduYWxTdG9yZSwgd2l0aFN0YXRlLCB3aXRoQ29tcHV0ZWQsIHdpdGhNZXRob2RzLCBwYXRjaFN0YXRlIH0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGdldCwgc2V0LCBpc0VxdWFsLCBtZXJnZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2V0U21hcnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBBWFBMYXlvdXRDb250ZXh0U3RhdGUgPSAnaW5pdGlhdGVkJyB8ICdyZXN0b3JlZCcgfCAnY2hhbmdlZCcgfCAncGF0Y2gnO1xuXG5leHBvcnQgY2xhc3MgQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50IHtcbiAgICBvbGRWYWx1ZT86IGFueTtcbiAgICBuZXdWYWx1ZT86IGFueTtcbiAgICBwYXRoPzogc3RyaW5nO1xuICAgIHN0YXRlOiBBWFBMYXlvdXRDb250ZXh0U3RhdGU7XG4gICAgZGF0YTogYW55O1xufVxuXG5leHBvcnQgY29uc3QgQVhQTGF5b3V0QnVpbGRlckNvbnRleHRTdG9yZSA9IHNpZ25hbFN0b3JlKFxuICAgIC8vIEluaXRpYWwgU3RhdGVcbiAgICB3aXRoU3RhdGUoKCkgPT4gKHtcbiAgICAgICAgZGF0YToge30sIC8vIFNoYXJlZCBjb250ZXh0IGRhdGFcbiAgICAgICAgc3RhdGU6ICdpbml0aWF0ZWQnIGFzIEFYUExheW91dENvbnRleHRTdGF0ZSwgLy8gQ3VycmVudCBzdGF0ZVxuICAgICAgICBpbml0aWFsU25hcHNob3Q6IHt9LCAvLyBTbmFwc2hvdCBvZiB0aGUgZmlyc3QgaW5pdGlhbGl6ZWQgc3RhdGVcbiAgICAgICAgcHJldmlvdXNTbmFwc2hvdDoge30sIC8vIFNuYXBzaG90IG9mIHRoZSBwcmV2aW91cyBzdGF0ZVxuICAgICAgICBsYXN0Q2hhbmdlOiB7XG4gICAgICAgICAgICBzdGF0ZTogJ2luaXRpYXRlZCcsXG4gICAgICAgIH0gYXMgQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50LCAvLyBMYXN0IGNoYW5nZSBldmVudFxuICAgIH0pKSxcblxuICAgIC8vIENvbXB1dGVkIFNpZ25hbHNcbiAgICB3aXRoQ29tcHV0ZWQoKHsgZGF0YSwgc3RhdGUsIGxhc3RDaGFuZ2UsIGluaXRpYWxTbmFwc2hvdCwgcHJldmlvdXNTbmFwc2hvdCB9KSA9PiAoe1xuICAgICAgICBpc0NoYW5nZWQ6IGNvbXB1dGVkKCgpID0+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/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1zdG9yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvY29udGV4dC1zdG9yZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFPLE9BQU8sRUFBUyxNQUFNLFdBQVcsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUlqRCxNQUFNLE9BQU8sMkJBQTJCO0NBTXZDO0FBRUQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsV0FBVztBQUNuRCxnQkFBZ0I7QUFDaEIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDYixJQUFJLEVBQUUsRUFBRSxFQUFFLHNCQUFzQjtJQUNoQyxLQUFLLEVBQUUsV0FBb0MsRUFBRSxnQkFBZ0I7SUFDN0QsZUFBZSxFQUFFLEVBQUUsRUFBRSwwQ0FBMEM7SUFDL0QsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLGlDQUFpQztJQUN2RCxVQUFVLEVBQUU7UUFDUixLQUFLLEVBQUUsV0FBVztLQUNVLEVBQUUsb0JBQW9CO0NBQ3pELENBQUMsQ0FBQztBQUVILG1CQUFtQjtBQUNuQixZQUFZLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLFNBQVMsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEtB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QUFDO0lBQ1AsQ0FBQztJQUVELHVCQUF1QjtJQUN2QixRQUFRLENBQUMsSUFBWTtRQUNqQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNKLENBQUMsQ0FBQyxDQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaWduYWxTdG9yZSwgd2l0aFN0YXRlLCB3aXRoQ29tcHV0ZWQsIHdpdGhNZXRob2RzLCBwYXRjaFN0YXRlIH0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGdldCwgc2V0LCBpc0VxdWFsLCBtZXJnZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2V0U21hcnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBBWFBMYXlvdXRDb250ZXh0U3RhdGUgPSAnaW5pdGlhdGVkJyB8ICdyZXN0b3JlZCcgfCAnY2hhbmdlZCcgfCAncGF0Y2gnO1xuXG5leHBvcnQgY2xhc3MgQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50IHtcbiAgICBvbGRWYWx1ZT86IGFueTtcbiAgICBuZXdWYWx1ZT86IGFueTtcbiAgICBwYXRoPzogc3RyaW5nO1xuICAgIHN0YXRlOiBBWFBMYXlvdXRDb250ZXh0U3RhdGU7XG4gICAgZGF0YTogYW55O1xufVxuXG5leHBvcnQgY29uc3QgQVhQTGF5b3V0QnVpbGRlckNvbnRleHRTdG9yZSA9IHNpZ25hbFN0b3JlKFxuICAgIC8vIEluaXRpYWwgU3RhdGVcbiAgICB3aXRoU3RhdGUoKCkgPT4gKHtcbiAgICAgICAgZGF0YToge30sIC8vIFNoYXJlZCBjb250ZXh0IGRhdGFcbiAgICAgICAgc3RhdGU6ICdpbml0aWF0ZWQnIGFzIEFYUExheW91dENvbnRleHRTdGF0ZSwgLy8gQ3VycmVudCBzdGF0ZVxuICAgICAgICBpbml0aWFsU25hcHNob3Q6IHt9LCAvLyBTbmFwc2hvdCBvZiB0aGUgZmlyc3QgaW5pdGlhbGl6ZWQgc3RhdGVcbiAgICAgICAgcHJldmlvdXNTbmFwc2hvdDoge30sIC8vIFNuYXBzaG90IG9mIHRoZSBwcmV2aW91cyBzdGF0ZVxuICAgICAgICBsYXN0Q2hhbmdlOiB7XG4gICAgICAgICAgICBzdGF0ZTogJ2luaXRpYXRlZCcsXG4gICAgICAgIH0gYXMgQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50LCAvLyBMYXN0IGNoYW5nZSBldmVudFxuICAgIH0pKSxcblxuICAgIC8vIENvbXB1dGVkIFNpZ25hbHNcbiAgICB3aXRoQ29tcHV0ZWQoKHsgZGF0YSwgc3RhdGUsIGxhc3RDaGFuZ2UsIGluaXRpYWxTbmFwc2hvdCwgcHJldmlvdXNTbmFwc2hvdCB9KSA9PiAoe1xuICAgICAgICBpc0NoYW5nZWQ6IGNvbXB1dGVkKCgpID0+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNhdGFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci93aWRnZXQtY2F0YWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLGlCQUFpQixHQUFzQjtJQUMzQyxZQUFZLEVBQUUsZUFBZTtJQUM3QixPQUFPLEVBQUUsZ0JBQWdCO0lBQ3pCLFFBQVEsRUFBRSxpQkFBaUI7SUFDM0IsS0FBSyxFQUFFLGNBQWM7SUFDckIsT0FBTyxFQUFFLGdCQUFnQjtJQUN6QixRQUFRLEVBQUUsa0JBQWtCO0lBQzVCLEtBQUssRUFBRSxjQUFjO0lBQ3JCLFNBQVMsRUFBRSxtQkFBbUI7SUFDOUIsSUFBSSxFQUFFLGFBQWE7SUFDbkIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsVUFBVSxFQUFFLG9CQUFvQjtJQUNoQyxRQUFRLEVBQUUsaUJBQWlCO0lBQzNCLEtBQUssRUFBRSxjQUFjO0lBQ3JCLFFBQVEsRUFBRSxrQkFBa0I7SUFDNUIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsYUFBYSxFQUFFLHVCQUF1QjtJQUN0QyxJQUFJLEVBQUUsYUFBYTtJQUNuQixLQUFLLEVBQUUsY0FBYztJQUNyQixNQUFNLEVBQUUsZUFBZTtJQUN2QixXQUFXLEVBQUUsY0FBYztJQUMzQixVQUFVLEVBQUUsYUFBYTtJQUN6QixjQUFjLEVBQUUsaUJBQWlCO0lBQ2pDLGVBQWUsRUFBRSxtQkFBbUI7SUFDcEMsWUFBWSxFQUFFLGVBQWU7SUFDN0IsaUJBQWlCLEVBQUUscUJBQXFCO0lBQ3hDLEdBQUcsRUFBRSxLQUFLO0lBQ1YsV0FBVyxFQUFFLGNBQWM7SUFDM0IsS0FBSyxFQUFFLE9BQU87SUFDZCxPQUFPLEVBQUUsU0FBUztJQUNsQixTQUFTLEVBQUUsV0FBVztJQUN0QixZQUFZLEVBQUUsZUFBZTtJQUM3QixRQUFRLEVBQUUsaUJBQWlCO0lBQzNCLE1BQU0sRUFBRSxlQUFlO0lBQ3ZCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFlBQVksRUFBRSxzQkFBc0I7SUFDcEMsZ0JBQWdCLEVBQUUsMkJBQTJCO0lBQzdDLElBQUksRUFBRSxhQUFhO0lBQ25CLFFBQVEsRUFBRSxrQkFBa0I7SUFDNUIsOEJBQThCO0lBQzlCLGNBQWMsRUFBRSxpQkFBaUI7SUFDakMsUUFBUSxFQUFFLFVBQVU7SUFDcEIsZ0JBQWdCLEVBQUUsbUJBQW1CO0lBQ3JDLE9BQU8sRUFBRSxVQUFVO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFNBQVMsRUFBRSxXQUFXO0lBQ3RCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFVBQVUsRUFBRSxhQUFhO0lBQ3pCLFFBQVEsRUFBRSxrQkFBa0I7SUFDNUIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsbUJBQW1CLEVBQUUsdUJBQXVCO0lBQzVDLGdCQUFnQixFQUFFLG9CQUFvQjtJQUN0QyxzQkFBc0IsRUFBRSwwQkFBMEI7SUFDbEQsZ0JBQWdCLEVBQUUsb0JBQW9CO0lBQ3RDLGVBQWUsRUFBRSxtQkFBbUI7SUFDcEMsV0FBVyxFQUFFLGNBQWM7SUFDM0IsaUJBQWlCLEVBQUUscUJBQXFCO0lBQ3hDLFdBQVcsRUFBRSxjQUFjO0lBQzNCLGVBQWUsRUFBRSxtQkFBbUI7SUFDcEMsbUJBQW1CLEVBQUUsdUJBQXVCO0lBQzVDLFlBQVksRUFBRSxlQUFlO0lBQzdCLFlBQVksRUFBRSxlQUFlO0lBQzdCLGNBQWMsRUFBRSxpQkFBaUI7SUFDakMsYUFBYSxFQUFFLGdCQUFnQjtJQUMvQixZQUFZLEVBQUUsZUFBZTtJQUM3QixXQUFXLEVBQUUsY0FBYztJQUMzQixlQUFlLEVBQUUsbUJBQW1CO0lBQ3BDLFlBQVksRUFBRSxlQUFlO0lBQzdCLGtCQUFrQixFQUFFLHFCQUFxQjtJQUN6QywyQkFBMkIsRUFBRSwrQkFBK0I7SUFDNUQsbUJBQW1CLEVBQUUsdUJBQXVCO0lBQzVDLG1CQUFtQixFQUFFLHVCQUF1QjtJQUM1QyxrQkFBa0IsRUFBRSxzQkFBc0I7SUFDMUMscUJBQXFCLEVBQUUseUJBQXlCO0lBQ2hELGlCQUFpQixFQUFFLG9CQUFvQjtJQUN2QyxlQUFlLEVBQUUsa0JBQWtCO0lBQ25DLGtCQUFrQixFQUFFLHFCQUFxQjtJQUN6QyxVQUFVLEVBQUUsYUFBYTtJQUN6QixTQUFTLEVBQUUsWUFBWTtJQUN2QixRQUFRLEVBQUUsV0FBVztJQUNyQixVQUFVLEVBQUUsYUFBYTtJQUN6QixVQUFVLEVBQUUsYUFBYTtJQUN6QixhQUFhLEVBQUUsZ0JBQWdCO0lBQy9CLFdBQVcsRUFBRSxjQUFjO0lBQzNCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLGNBQWMsRUFBRSxpQkFBaUI7SUFDakMsZUFBZSxFQUFFLGtCQUFrQjtJQUNuQyxRQUFRLEVBQUUsa0JBQWtCO0lBQzVCLGNBQWMsRUFBRSxxQkFBcUI7SUFDckMsS0FBSyxFQUFFLE9BQU87SUFDZCxZQUFZLEVBQUUsY0FBYztJQUM1QixTQUFTLEVBQUUsWUFBWTtJQUN2QixPQUFPLEVBQUUsU0FBUztJQUNsQixJQUFJLEVBQUUsTUFBTTtJQUNaLFdBQVcsRUFBRSxjQUFjO0lBQzNCLFVBQVUsRUFBRSxhQUFhO0lBRXpCLGdCQUFnQixFQUFFLG1CQUFtQjtDQUN0QyxDQUFDO0FBRUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBXaWRnZXRUeXBlc01hcCB9IGZyb20gJy4vd2lkZ2V0LW1hcCc7XG5cbmNvbnN0IEFYUFdpZGdldHNDYXRhbG9nOiBBWFBXaWRnZXRUeXBlc01hcCA9IHtcbiAgdGltZUR1cmF0aW9uOiAndGltZS1kdXJhdGlvbicsXG4gIHRhZ2FibGU6ICd0YWdhYmxlLWVkaXRvcicsXG4gIGNoZWNrYm94OiAnY2hlY2tib3gtZWRpdG9yJyxcbiAgY29sb3I6ICdjb2xvci1lZGl0b3InLFxuICBjb250YWN0OiAnY29udGFjdC1lZGl0b3InLFxuICBkYXRlVGltZTogJ2RhdGUtdGltZS1lZGl0b3InLFxuICBlbWFpbDogJ2VtYWlsLWVkaXRvcicsXG4gIGxhcmdlVGV4dDogJ2xhcmdlLXRleHQtZWRpdG9yJyxcbiAgbGluazogJ2xpbmstZWRpdG9yJyxcbiAgbnVtYmVyOiAnbnVtYmVyLWVkaXRvcicsXG4gIG51bWJlclVuaXQ6ICdudW1iZXItdW5pdC1lZGl0b3InLFxuICBwYXNzd29yZDogJ3Bhc3N3b3JkLWVkaXRvcicsXG4gIHBob25lOiAncGhvbmUtZWRpdG9yJyxcbiAgcmljaFRleHQ6ICdyaWNoLXRleHQtZWRpdG9yJyxcbiAgc2VsZWN0OiAnc2VsZWN0LWVkaXRvcicsXG4gIHNlbGVjdGlvbkxpc3Q6ICdzZWxlY3Rpb24tbGlzdC1lZGl0b3InLFxuICB0ZXh0OiAndGV4dC1lZGl0b3InLFxuICB0YWJsZTogJ3RhYmxlLWVkaXRvcicsXG4gIHRvZ2dsZTogJ3RvZ2dsZS1lZGl0b3InLFxuICBibG9ja0xheW91dDogJ2Jsb2NrLWxheW91dCcsXG4gIHBhZ2VMYXlvdXQ6ICdwYWdlLWxheW91dCcsXG4gIHJlcGVhdGVyTGF5b3V0OiAncmVwZWF0ZXItbGF5b3V0JyxcbiAgdGV4dEJsb2NrTGF5b3V0OiAndGV4dC1ibG9jay1sYXlvdXQnLFxuICBmaWxlVXBsb2FkZXI6ICdmaWxlLXVwbG9hZGVyJyxcbiAgZmlsZVR5cGVFeHRlbnNpb246ICdmaWxlLXR5cGUtZXh0ZW5zaW9uJyxcbiAgbWFwOiAnbWFwJyxcbiAgaW1hZ2VNYXJrZXI6ICdpbWFnZS1tYXJrZXInLFxuICBpbWFnZTogJ2ltYWdlJyxcbiAgZ2FsbGVyeTogJ2dhbGxlcnknLFxuICBzaWduYXR1cmU6ICdzaWduYXR1cmUnLFxuICBidXR0b25BY3Rpb246ICdidXR0b24tYWN0aW9uJyxcbiAgZG9jdW1lbnQ6ICdkb2N1bWVudC1sYXlvdXQnLFxuICBsb29rdXA6ICdsb29rdXAtZWRpdG9yJyxcbiAgZm9ybUZpZWxkOiAnZm9ybS1maWVsZCcsXG4gIHFyY29kZTogJ3FyY29kZScsXG4gIGFkdmFuY2VkR3JpZDogJ2FkdmFuY2VkLWdyaWQtbGF5b3V0JyxcbiAgYWR2YW5jZWRHcmlkSXRlbTogJ2FkdmFuY2VkLWdyaWQtaXRlbS1sYXlvdXQnLFxuICBncmlkOiAnZ3JpZC1sYXlvdXQnLFxuICBncmlkSXRlbTogJ2dyaWQtaXRlbS1sYXlvdXQnLFxuICAvLyBncmlkUm93OiAnZ3JpZC1yb3ctbGF5b3V0JyxcbiAgd2lkZ2V0U2VsZWN0b3I6ICd3aWRnZXQtc2VsZWN0b3InLFxuICB0ZW1wbGF0ZTogJ3RlbXBsYXRlJyxcbiAgdGVtcGxhdGVEZXNpZ25lcjogJ3RlbXBsYXRlLWRlc2lnbmVyJyxcbiAgY3JvbkpvYjogJ2Nyb24tam9iJyxcbiAgc3BhY2luZzogJ3NwYWNpbmcnLFxuICBkaXJlY3Rpb246ICdkaXJlY3Rpb24nLFxuICBib3JkZXI6ICdib3JkZXInLFxuICBmbGV4TGF5b3V0OiAnZmxleC1sYXlvdXQnLFxuICBmbGV4SXRlbTogJ2ZsZXgtaXRlbS1sYXlvdXQnLFxuICBhdmF0YXI6ICdhdmF0YXInLFxuICB0aGVtZVBhbGV0dGVDaG9vc2VyOiAndGhlbWUtcGFsZXR0ZS1jaG9vc2VyJyxcbiAgdGhlbWVNb2RlQ2hvb3NlcjogJ3RoZW1lLW1vZGUtY2hvb3NlcicsXG4gIG1lbnVPcmllbnRhdGlvbkNob29zZXI6ICdtZW51LW9yaWVudGF0aW9uLWNob29zZXInLFxuICBmb250U3R5bGVDaG9vc2VyOiAnZm9udC1zdHlsZS1jaG9vc2VyJyxcbiAgZm9udFNpemVDaG9vc2VyOiAnZm9udC1zaXplLWNob29zZXInLFxuICBpY29uQ2hvb3NlcjogJ2ljb24tY2hvb3NlcicsXG4gIHRoZW1lQ29sb3JDaG9vc2VyOiAndGhlbWUtY29sb3ItY2hvb3NlcicsXG4gIGdyaWRPcHRpb25zOiAnZ3JpZC1vcHRpb25zJyxcbiAgZ3JpZEl0ZW1PcHRpb25zOiAnZ3JpZC1pdGVtLW9wdGlvbnMnLFxuICBhZHZhbmNlZEdyaWRPcHRpb25zOiAnYWR2YW5jZWQtZ3JpZC1vcHRpb25zJyxcbiAgc3RyaW5nRmlsdGVyOiAnc3RyaW5nLWZpbHRlcicsXG4gIG51bWJlckZpbHRlcjogJ251bWJlci1maWx0ZXInLFxuICBkYXRlVGltZUZpbHRlcjogJ2RhdGV0aW1lLWZpbHRlcicsXG4gIGJvb2xlYW5GaWx0ZXI6ICdib29sZWFuLWZpbHRlcicsXG4gIGxvb2t1cEZpbHRlcjogJ2xvb2t1cC1maWx0ZXInLFxuICBmbGV4T3B0aW9uczogJ2ZsZXgtb3B0aW9ucycsXG4gIGZsZXhJdGVtT3B0aW9uczogJ2ZsZXgtaXRlbS1vcHRpb25zJyxcbiAgc2VsZWN0RmlsdGVyOiAnc2VsZWN0LWZpbHRlcicsXG4gIHJlcXVpcmVkVmFsaWRhdGlvbjogJ3JlcXVpcmVkLXZhbGlkYXRpb24nLFxuICByZWd1bGFyRXhwcmVzc2lvblZhbGlkYXRpb246ICdyZWd1bGFyLWV4cHJlc3Npb24tdmFsaWRhdGlvbicsXG4gIG1pbkxlbmd0aFZhbGlkYXRpb246ICdtaW4tbGVuZ3RoLXZhbGlkYXRpb24nLFxuICBtYXhMZW5ndGhWYWxpZGF0aW9uOiAnbWF4LWxlbmd0aC12YWxpZGF0aW9uJyxcbiAgbGVzc1RoYW5WYWxpZGF0aW9uOiAnbGVzcy10aGFuLXZhbGlkYXRpb24nLFxuICBncmVhdGVyVGhhblZhbGlkYXRpb246ICdncmVhdGVyLXRoYW4tdmFsaWRhdGlvbicsXG4gIGJldHdlZW5WYWxpZGF0aW9uOiAnYmV0d2Vlbi12YWxpZGF0aW9uJyxcbiAgZXF1YWxWYWxpZGF0aW9uOiAnZXF1YWwtdmFsaWRhdGlvbicsXG4gIGNhbGxiYWNrVmFsaWRhdGlvbjogJ2NhbGxiYWNrLXZhbGlkYXRpb24nLFxuICBkb251dENoYXJ0OiAnZG9udXQtY2hhcnQnLFxuICBsaW5lQ2hhcnQ6ICdsaW5lLWNoYXJ0JyxcbiAgYmFyQ2hhcnQ6ICdiYXItY2hhcnQnLFxuICBnYXVnZUNoYXJ0OiAnZ2F1Z2UtY2hhcnQnLFxuICBzdGlja3lOb3RlOiAnc3RpY2t5LW5vdGUnLFxuICBjbG9ja0NhbGVuZGFyOiAnY2xvY2stY2FsZW5kYXInLFxuICBhbmFsb2dDbG9jazogJ2FuYWxvZy1jbG9jaycsXG4gIHdlYXRoZXI6ICd3ZWF0aGVyJyxcbiAgbWluaW1hbFdlYXRoZXI6ICdtaW5pbWFsLXdlYXRoZXInLFxuICBhZHZhbmNlZFdlYXRoZXI6ICdhZHZhbmNlZC13ZWF0aGVyJyxcbiAgbWV0YURhdGE6ICdtZXRhLWRhdGEtZWRpdG9yJyxcbiAgdGVtcGxhdGVFZGl0b3I6ICd0ZW1wbGF0ZS1ib3gtZWRpdG9yJyxcbiAgcGFuZWw6ICdwYW5lbCcsXG4gIG5vdGlmaWNhdGlvbjogJ25vdGlmaWNhdGlvbicsXG4gIHRhc2tCb2FyZDogJ3Rhc2stYm9hcmQnLFxuICBjb21tZW50OiAnY29tbWVudCcsXG4gIGxpc3Q6ICdsaXN0JyxcbiAgbGlzdFRvb2xiYXI6ICdsaXN0LXRvb2xiYXInLFxuICBlbnRpdHlMaXN0OiAnZW50aXR5LWxpc3QnLFxuXG4gIGRvY3VtZW50VXBsb2FkZXI6ICdkb2N1bWVudC11cGxvYWRlcicsXG59O1xuXG5leHBvcnQgeyBBWFBXaWRnZXRzQ2F0YWxvZyB9O1xuIl19","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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Q0FBQyxPQUFPLENBQUMsVUFBVSxDQUFXLENBQUM7UUFDbkQsY0FBUyxHQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFNLENBQUM7UUFFdkQsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDOUIsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUNuRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDeEIsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN2QixDQUFDLGlEQUFDLENBQUM7S0FDSjs4R0FoQnFCLHdCQUF3QjtrSEFBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUQ3QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRhU291cmNlLCBBWFZhbHVlQ2hhbmdlZEV2ZW50LCBjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2UgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHtcbiAgQVhQRGF0YVNvdXJjZURlZmluaXRpb25Qcm92aWRlclNlcnZpY2UsXG4gIEFYUFZhbGlkYXRpb25SdWxlLFxuICBBWFBWYWxpZGF0aW9uUnVsZXMsXG4gIGV4dHJhY3RWYWx1ZSxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IGNvbXB1dGVkLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0YWJsZSwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZ2V0LCBpc0VxdWFsLCBpc05pbCwgaXNPYmplY3RMaWtlLCBpc1VuZGVmaW5lZCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJTZXJ2aWNlLCBBWFBMYXlvdXRFbGVtZW50IH0gZnJvbSAnLi9idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlckNvbnRleHRTdG9yZSB9IGZyb20gJy4vY29udGV4dC1zdG9yZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUFdpZGdldFN0YXR1cyB9IGZyb20gJy4vd2lkZ2V0LXN0YXR1cy50eXBlcyc7XG5pbXBvcnQgeyBBWFBfV0lER0VUX0NPTFVNTl9UT0tFTiwgQVhQX1dJREdFVF9UT0tFTiwgQVhQV2lkZ2V0Tm9kZSwgQVhQV2lkZ2V0UmVuZGVyTW9kZSB9IGZyb20gJy4vd2lkZ2V0LnR5cGVzJztcblxuZXhwb3J0IHR5cGUgQVhQQ2xhc3NNYXAgPSBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj47XG5leHBvcnQgdHlwZSBBWFBTdHlsZU1hcCA9IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4+O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQQmFzZVdpZGdldENvbXBvbmVudCBleHRlbmRzIEFYUExheW91dEVsZW1lbnQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9rZW4gPSBpbmplY3QoQVhQX1dJREdFVF9UT0tFTik7XG4gIHB1YmxpYyByZWFkb25seSBob3N0ID0gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTERpdkVsZW1lbnQ7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxheW91dFNlcnZpY2UgPSBpbmplY3QoQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udGV4dFNlcnZpY2UgPSBpbmplY3QoQVhQTGF5b3V0QnVpbGRlckNvbnRleHRTdG9yZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbmZpZyA9IHRoaXMudG9rZW4uY29uZmlnO1xuICBwdWJsaWMgcmVhZG9ubHkgbm9kZSA9IHRoaXMudG9rZW4ubm9kZTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmFtZSA9IHRoaXMudG9rZW4ubm9kZS5uYW1lO1xuXG4gIHByb3RlY3RlZCBfaWQ6IHN0cmluZyB8IG51bGw7XG4gIHB1YmxpYyBnZXQgaWQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2lkO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9vcHRpb25zID0gc2lnbmFsKHRoaXMudG9rZW4ub3B0aW9ucyA/PyB7fSk7XG4gIHB1YmxpYyBvcHRpb25zID0gdGhpcy5fb3B0aW9ucy5hc1JlYWRvbmx5KCk7XG5cbiAgcHVibGljIG9uT3B0aW9uc0NoYW5nZWQgPSBuZXcgU3ViamVjdDx7IHNlbmRlcjogQVhQQmFzZVdpZGdldENvbXBvbmVudCB9PigpO1xuXG4gIHByaXZhdGUgX3N0YXR1cyA9IHNpZ25hbDxBWFBXaWRnZXRTdGF0dXM+KEFYUFdpZGdldFN0YXR1cy5SZW5kZXJpbmcpO1xuICBwdWJsaWMgc3RhdHVzID0gdGhpcy5fc3RhdHVzLmFzUmVhZG9ubHkoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb25TdGF0dXNDaGFuZ2VkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBWFBXaWRnZXRTdGF0dXM+KHRoaXMuX3N0YXR1cygpKTtcblxuICAjc3RhdHVzRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5uZXh0KHRoaXMuc3RhdHVzKCkpO1xuICB9KTtcblxuICBwdWJsaWMgaXNCdXN5ID0gY29tcHV0ZWQoKCkgPT4gW0FYUFdpZGdldFN0YXR1cy5SZW5kZXJpbmcsIEFYUFdpZGdldFN0YXR1cy5Qcm9jZXNzaW5nXS5pbmNsdWRlcyh0aGlzLnN0YXR1cygpKSk7XG5cbiAgcGFyZW50OiBBWFBMYXlvdXRCYXNlV2lkZ2V0Q29tcG9uZW50IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgaW5kZXg6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIG1vZGU6IEFYUFdpZGdldFJlbmRlck1vZGU7XG4gIGxvY2tlZDogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgb3V0cHV0cygpOiAoc3RyaW5nIHwgeyBbbmFtZTogc3RyaW5nXTogdW5rbm93biB9KVtdIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoZ2V0KHRoaXMubm9kZSwgJ19fbWV0YV9fLmFkZGVkJykpIHtcbiAgICAgIHRoaXMub25BZGRlZCgpO1xuICAgIH1cbiAgICB0aGlzLnNldFN0YXR1cyhBWFBXaWRnZXRTdGF0dXMuUmVuZGVyZWQpO1xuICB9XG5cbiAgcHVibGljIHNldFN0YXR1cyhzdGF0dXM6IEFYUFdpZGdldFN0YXR1cykge1xuICAgIHRoaXMuX3N0YXR1cy5zZXQoc3RhdHVzKTtcbiAgICB0aGlzLmxheW91dFNlcnZpY2UudXBkYXRlU3RhdHVzKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0T3B0aW9ucyh2YWx1ZXM6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5vcHRpb25zKCk7XG4gICAgY29uc3QgdmFsdWUgPSBjbG9uZURlZXAodmFsdWVzKTtcbiAgICB0aGlzLl9vcHRpb25zLnNldCh7IC4uLm9sZFZhbHVlLCAuLi52YWx1ZSB9KTtcbiAgICB0aGlzLm9uT3B0aW9uc0NoYW5nZWQubmV4dCh7IHNlbmRlcjogdGhpcyB9KTtcbiAgfVxuXG4gIG91dHB1dDxUID0gYW55PihuYW1lOiBzdHJpbmcpOiBUIHtcbiAgICBjb25zdCBvdXRwdXRzID0gdGhpcy5vdXRwdXRzKCkubWFwKChjKSA9PiAodHlwZW9mIGMgPT0gJ3N0cmluZycgPyB7IG5hbWU6IGMsIHZhbHVlOiBjIH0gOiBjKSkgYXMge1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgdmFsdWU6IHVua25vd247XG4gICAgfVtdO1xuXG4gICAgaWYgKG91dHB1dHMuc29tZSgoYykgPT4gYy5uYW1lID09IG5hbWUpKSB7XG4gICAgICBjb25zdCBvcHQgPSBnZXQodGhpcywgbmFtZSk7XG4gICAgICBpZiAodHlwZW9mIG9wdCA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBvcHQoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvcHQ7XG4gICAgfVxuICAgIHJldHVybiBudWxsIGFzIFQ7XG4gIH1cblxuICBjYWxsKG5hbWU6IHN0cmluZywgLi4uYXJnczogYW55W10pOiB2b2lkIHtcbiAgICBjb25zdCBmbiA9IGdldCh0aGlzLCBuYW1lKSBhcyBGdW5jdGlvbjtcbiAgICBpZiAoZm4gJiYgdHlwZW9mIGZuID09ICdmdW5jdGlvbicpIHtcbiAgICAgIGZuLmJpbmQodGhpcykoLi4uYXJncyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jaGlsZHJlbiA9IHNpZ25hbCh0aGlzLnRva2VuLm5vZGUuY2hpbGRyZW4gPz8gW10pO1xuICBwcm90ZWN0ZWQgY2hpbGRyZW4gPSB0aGlzLl9jaGlsZHJlbi5hc1JlYWRvbmx5KCk7XG5cbiAgc2V0Q2hpbGRyZW4oY2hpbGRyZW46IEFYUFdpZGdldE5vZGVbXSkge1xuICAgIHRoaXMuX2NoaWxkcmVuLnNldChbLi4uY2hpbGRyZW5dKTtcbiAgfVxuXG4gIG9uQWRkZWQoKSB7fVxuXG4gIGhvc3RDbGFzcz8oKTogQVhQQ2xhc3NNYXA7XG4gIGhvc3RTdHlsZT8oKTogQVhQU3R5bGVNYXA7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBMYXlvdXRCYXNlV2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgQVhQQmFzZVdpZGdldENvbXBvbmVudCB7fVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQ8VCA9IGFueSB8IG51bGw+IGV4dGVuZHMgQVhQTGF5b3V0QmFzZVdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3RlY3RlZCByZWFkb25seSBwYXRoID0gdGhpcy50b2tlbi5ub2RlLnBhdGg7XG4gIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0VmFsdWUgPSB0aGlzLnRva2VuLmRlZmF1bHRWYWx1ZSA/PyB0aGlzLnRva2VuLm5vZGUuZGVmYXVsdFZhbHVlO1xuXG4gIHByaXZhdGUgX2lzVmFsdWVXaWRnZXQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc1ZhbHVlV2lkZ2V0ID0gKCkgPT4gdGhpcy5faXNWYWx1ZVdpZGdldDtcblxuICBwdWJsaWMgb25WYWx1ZUNoYW5nZWQgPSBuZXcgU3ViamVjdDx7IHNlbmRlcjogQVhQQmFzZVdpZGdldENvbXBvbmVudCB9PigpO1xuXG4gIHB1YmxpYyBmdWxsUGF0aCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHBhcmVudFBhdGggPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5faXNWYWx1ZVdpZGdldCA9IHRoaXMuY29uZmlnLnByb3BlcnRpZXM/LnNvbWUoKGMpID0+IGMubmFtZSA9PSAncGF0aCcpID8/IGZhbHNlO1xuICAgIGlmICh0aGlzLmlzVmFsdWVXaWRnZXQoKSkge1xuICAgICAgdGhpcy5kZXRlY3RGdWxsUGF0aCgpO1xuICAgICAgaWYgKCFpc05pbCh0aGlzLmRlZmF1bHRWYWx1ZSkgJiYgaXNOaWwodGhpcy5nZXRWYWx1ZSgpKSkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKHRoaXMuZGVmYXVsdFZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy9cbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICB9XG5cbiAgcHVibGljIGdldFZhbHVlID0gY29tcHV0ZWQ8VD4oXG4gICAgKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZnVsbFBhdGgoKSA/IHRoaXMuZXh0cmFjdFZhbHVlKHRoaXMuZnVsbFBhdGgoKSEpIDogbnVsbDtcbiAgICB9LFxuICAgIHsgZXF1YWw6IGlzRXF1YWwgfSxcbiAgKTtcblxuICBwcm90ZWN0ZWQgdmFsaWRhdGlvblJ1bGVzID0gY29tcHV0ZWQ8QVhQVmFsaWRhdGlvblJ1bGVzPigoKSA9PiB7XG4gICAgY29uc3QgdmFsaWRhdGlvbnNSYXcgPSB0aGlzLm9wdGlvbnMoKVsndmFsaWRhdGlvbnMnXTtcbiAgICBpZiAodmFsaWRhdGlvbnNSYXcgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLm9wdGlvbnMoKVsndmFsaWRhdGlvbnMnXSlcbiAgICAgIC5maWx0ZXIoKGMpID0+IGMgIT0gbnVsbClcbiAgICAgIC5tYXAoXG4gICAgICAgIChjOiBhbnkpID0+XG4gICAgICAgICAgKHtcbiAgICAgICAgICAgIHJ1bGU6IGMucnVsZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGMubWVzc2FnZSxcbiAgICAgICAgICAgIG9wdGlvbnM6IGMub3B0aW9ucyxcbiAgICAgICAgICB9KSBhcyBBWFBWYWxpZGF0aW9uUnVsZSxcbiAgICAgICk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBleHRyYWN0VmFsdWUocGF0aDogc3RyaW5nKTogYW55IHtcbiAgICBjb25zdCByYXdWYWx1ZSA9IHRoaXMuY29udGV4dFNlcnZpY2UuZ2V0VmFsdWUocGF0aCk7XG4gICAgaWYgKHRoaXMubm9kZS52YWx1ZVRyYW5zZm9ybXM/LmdldHRlcikge1xuICAgICAgcmV0dXJuIHRoaXMubm9kZS52YWx1ZVRyYW5zZm9ybXM/LmdldHRlcihyYXdWYWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiByYXdWYWx1ZTtcbiAgfVxuXG4gIHNldFZhbHVlKHZhbHVlOiBUIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh0aGlzLm5vZGUudmFsdWVUcmFuc2Zvcm1zPy5zZXR0ZXIpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5ub2RlLnZhbHVlVHJhbnNmb3Jtcz8uc2V0dGVyKHZhbHVlKTtcbiAgICB9XG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgdmFsdWUgPSBpc1VuZGVmaW5lZCh2YWx1ZSkgPyBudWxsIDogdmFsdWU7XG4gICAgaWYgKGlzTmlsKHZhbHVlKSAmJiBpc05pbChvbGRWYWx1ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGlzRXF1YWwob2xkVmFsdWUsIHZhbHVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5mdWxsUGF0aCgpKSB7XG4gICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnVwZGF0ZSh0aGlzLmZ1bGxQYXRoKCkhLCB2YWx1ZSk7XG4gICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLm5leHQoeyBzZW5kZXI6IHRoaXMgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZXRlY3RGdWxsUGF0aCgpIHtcbiAgICBjb25zdCBzZWN0aW9ucyA9IFtdO1xuICAgIGNvbnN0IGlkcyA9IFtdO1xuICAgIC8vXG4gICAgbGV0IHBhcmVudDogQVhQTGF5b3V0QmFzZVdpZGdldENvbXBvbmVudCB8IG51bGwgfCB1bmRlZmluZWQgPSB0aGlzIGFzIEFYUExheW91dEJhc2VXaWRnZXRDb21wb25lbnQ7XG4gICAgLy9cbiAgICB3aGlsZSAocGFyZW50KSB7XG4gICAgICBjb25zdCBpc1ZhbHVlV2lkZ2V0ID0gcGFyZW50IGluc3RhbmNlb2YgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgJiYgcGFyZW50LmlzVmFsdWVXaWRnZXQoKTtcbiAgICAgIGNvbnN0IHZhbHVlUGFyZW50ID0gcGFyZW50IGFzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50PGFueT47XG4gICAgICBjb25zdCBwYXRoID0gdmFsdWVQYXJlbnQucGF0aCA/PyAoaXNWYWx1ZVdpZGdldCA/IHZhbHVlUGFyZW50Lm5hbWUgOiBudWxsKTtcbiAgICAgIGNvbnN0IGlkID0gdmFsdWVQYXJlbnQubmFtZTtcbiAgICAgIC8vXG4gICAgICBpZiAocGF0aCkge1xuICAgICAgICBzZWN0aW9ucy5wdXNoKHBhdGgpO1xuICAgICAgfVxuICAgICAgaWYgKHBhcmVudC5pbmRleCAhPSBudWxsICYmIGlzVmFsdWVXaWRnZXQpIHtcbiAgICAgICAgc2VjdGlvbnMucHVzaChgWyR7cGFyZW50LmluZGV4fV1gKTtcbiAgICAgIH1cbiAgICAgIGlmIChpZCkge1xuICAgICAgICBpZHMucHVzaChpZCk7XG4gICAgICAgIGlmIChwYXJlbnQuaW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgIGlkcy5wdXNoKGAke3BhcmVudC5pbmRleH1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudDtcbiAgICB9XG4gICAgLy9cbiAgICB0aGlzLmZ1bGxQYXRoLnNldChzZWN0aW9ucy5yZXZlcnNlKCkuam9pbignLicpKTtcbiAgICB0aGlzLnBhcmVudFBhdGguc2V0KHNlY3Rpb25zLnNsaWNlKDAsIHNlY3Rpb25zLmxlbmd0aCAtIDEpLmpvaW4oJy4nKSk7XG4gICAgdGhpcy5faWQgPSB0aGlzLm5hbWUgfHwgdGhpcy5wYXJlbnQgPyBpZHMucmV2ZXJzZSgpLmpvaW4oJ18nKSA6IG51bGw7XG4gICAgaWYgKHRoaXMuX2lkKSB7XG4gICAgICB0aGlzLmxheW91dFNlcnZpY2UucmVnaXN0ZXJXaWRnZXQodGhpcy5faWQsIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVWYWx1ZUNoYW5nZWQoZTogQVhWYWx1ZUNoYW5nZWRFdmVudDxUPikge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICB0aGlzLnNldFZhbHVlKGUudmFsdWUpO1xuICAgIH1cbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQRGF0YUxpc3RXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxhbnk+IHtcbiAgcHJpdmF0ZSBkYXRhU2VydmljZSA9IGluamVjdChBWFBEYXRhU291cmNlRGVmaW5pdGlvblByb3ZpZGVyU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIHRleHRGaWVsZCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ3RleHRGaWVsZCddID8/ICd0aXRsZScpO1xuICBwcm90ZWN0ZWQgdmFsdWVGaWVsZCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gKHRoaXMub3B0aW9ucygpWyd2YWx1ZUZpZWxkJ10gYXMgc3RyaW5nKSA/PyAnaWQnKTtcbiAgcHJvdGVjdGVkIGRhdGFTb3VyY2UgPSBzaWduYWw8QVhEYXRhU291cmNlPGFueT4+KGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZTxhbnk+KFtdKSk7XG5cbiAgcHJvdGVjdGVkIGlzUmVhZHkgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5kYXRhU291cmNlKCkuY29uZmlnPy5rZXk7XG4gICAgY29uc3QgdmFsdWVGaWVsZCA9IHRoaXMudmFsdWVGaWVsZCgpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGtleSA9PSB2YWx1ZUZpZWxkO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xuXG4gIHB1YmxpYyBzZWxlY3RlZEl0ZW1zID0gc2lnbmFsPGFueVtdPihbXSk7XG5cbiAgcHJpdmF0ZSByZiA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmF3VmFsdWUgPSB0aGlzLm9wdGlvbnMoKVsnZGF0YVNvdXJjZSddO1xuICAgIC8vIHN0YXRpYyAgZGF0YXNvdXJjZSBjbGFzc1xuICAgIGlmIChyYXdWYWx1ZSBpbnN0YW5jZW9mIEFYRGF0YVNvdXJjZSkge1xuICAgICAgdGhpcy5kYXRhU291cmNlLnNldChyYXdWYWx1ZSk7XG4gICAgfVxuICAgIC8vIHN0YXRpYyBhcnJheSBkYXRhc291cmNlXG4gICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShyYXdWYWx1ZSkpIHtcbiAgICAgIGNvbnN0IGRzID0gbmV3IEFYRGF0YVNvdXJjZSh7XG4gICAgICAgIGtleTogdGhpcy52YWx1ZUZpZWxkKCksXG4gICAgICAgIHBhZ2VTaXplOiAxMCxcbiAgICAgICAgbG9hZDogYXN5bmMgKGU6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJhdyA9IHRoaXMub3B0aW9ucygpWydkYXRhU291cmNlJ107XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGl0ZW1zOiByYXcsXG4gICAgICAgICAgICB0b3RhbDogcmF3Lmxlbmd0aCxcbiAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICBieUtleTogKGtleTogdW5rbm93bikgPT4ge1xuICAgICAgICAgIGNvbnN0IHJhdyA9IHRoaXMub3B0aW9ucygpWydkYXRhU291cmNlJ107XG4gICAgICAgICAgY29uc3QgaXRlbSA9IHJhdy5maWx0ZXIoKGM6IGFueSkgPT4gY1t0aGlzLnZhbHVlRmllbGQoKV0gPT0ga2V5KTtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGl0ZW1bMF0pIGFzIGFueTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kYXRhU291cmNlLnNldChkcyk7XG4gICAgfVxuICAgIC8vIHJlc29sdmUgZGF0YSBzb3VyY2UgYnkgbmFtZVxuICAgIGVsc2UgaWYgKHJhd1ZhbHVlICYmICh0eXBlb2YgcmF3VmFsdWUgPT0gJ3N0cmluZycgfHwgdHlwZW9mIHJhd1ZhbHVlID09ICdvYmplY3QnKSkge1xuICAgICAgY29uc3QgaWQgPSB0eXBlb2YgcmF3VmFsdWUgPT0gJ29iamVjdCcgPyByYXdWYWx1ZVsnaWQnXSA6IHJhd1ZhbHVlO1xuICAgICAgY29uc3QgYyA9IGF3YWl0IHRoaXMuZGF0YVNlcnZpY2UuZ2V0KGlkKTtcbiAgICAgIGlmICh0aGlzLm1vZGUgPT0gJ2Rlc2lnbmVyJyAmJiBjPy5zYW1wbGVzPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLnNldChcbiAgICAgICAgICBjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2UoYy5zYW1wbGVzLCB7XG4gICAgICAgICAgICBrZXk6IHRoaXMudmFsdWVGaWVsZCgpLFxuICAgICAgICAgICAgcGFnZVNpemU6IDUwMCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRzID0gYz8uc291cmNlKCk7XG4gICAgICAgIGlmIChkcyAmJiBkcyBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICBjb25zdCBkID0gYXdhaXQgZHM7XG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlLnNldChkKTtcbiAgICAgICAgfSBlbHNlIGlmIChkcykge1xuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZXQoZHMpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVtcHR5IGRhdGFzb3VyY2VcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlLnNldChjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2U8YW55PihbXSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIGVtcHR5IGRhdGFzb3VyY2VcbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZXQoY29udmVydEFycmF5VG9EYXRhU291cmNlPGFueT4oW10pKTtcbiAgICB9XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBhc3luYyBleHRyYWN0SXRlbShpdGVtOiB1bmtub3duKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAoaXNOaWwoaXRlbSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAoaXNPYmplY3RMaWtlKGl0ZW0pICYmIGdldChpdGVtLCB0aGlzLnRleHRGaWVsZCgpKSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9XG4gICAgY29uc3Qga2V5ID0gZXh0cmFjdFZhbHVlKGl0ZW0sIHRoaXMudmFsdWVGaWVsZCgpKTtcbiAgICBjb25zdCBkcyA9IHRoaXMuZGF0YVNvdXJjZSgpO1xuICAgIGlmIChkcy5jb25maWc/LmJ5S2V5KSB7XG4gICAgICBjb25zdCBmb3VuZCA9IGF3YWl0IGRzLmNvbmZpZz8uYnlLZXkoa2V5KTtcbiAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICByZXR1cm4gZm91bmQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpc09iamVjdExpa2UoaXRlbSlcbiAgICAgID8gaXRlbVxuICAgICAgOiB7XG4gICAgICAgICAgW3RoaXMudmFsdWVGaWVsZCgpXTogaXRlbSxcbiAgICAgICAgICBbdGhpcy50ZXh0RmllbGQoKV06IGl0ZW0sXG4gICAgICAgIH07XG4gIH1cblxuICBwcml2YXRlIGVmZmVjdDIgPSBlZmZlY3QoYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgIGNvbnN0IGl0ZW1zOiBhbnlbXSA9IFtdO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgaXRlbXMucHVzaCguLi4oYXdhaXQgUHJvbWlzZS5hbGwodmFsdWUubWFwKChpdGVtOiBhbnkpID0+IHRoaXMuZXh0cmFjdEl0ZW0oaXRlbSkpKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpdGVtcy5wdXNoKGF3YWl0IHRoaXMuZXh0cmFjdEl0ZW0odmFsdWUpKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChpdGVtcy5maWx0ZXIoKGMpID0+IGMgIT0gbnVsbCkpO1xuICB9KTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUENvbHVtbldpZGdldENvbXBvbmVudDxUID0gYW55IHwgbnVsbCB8IHZvaWQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSB0b2tlbiA9IGluamVjdChBWFBfV0lER0VUX0NPTFVNTl9UT0tFTik7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhdGggPSB0aGlzLnRva2VuLnBhdGg7XG4gIHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zID0gdGhpcy50b2tlbi5vcHRpb25zID8/IHt9O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmF3VmFsdWU6IFQgPSBudWxsIGFzIFQ7XG4gIHByb3RlY3RlZCByZWFkb25seSByb3dEYXRhOiBhbnk7XG4gIHByb3RlY3RlZCByZWFkb25seSBudWxsVGV4dDogYW55ID0gdGhpcy5vcHRpb25zWydudWxsVGV4dCddIGFzIHN0cmluZztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG51bGxWYWx1ZTogVCA9IHRoaXMub3B0aW9uc1snbnVsbFZhbHVlJ10gYXMgVDtcblxuICBwcm90ZWN0ZWQgdmFsdWUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKGlzTmlsKHRoaXMucmF3VmFsdWUpICYmICFpc05pbCh0aGlzLm51bGxWYWx1ZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLm51bGxWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucmF3VmFsdWU7XG4gIH0pO1xufVxuIl19","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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LW1vZGVsLXdpZGdldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci9iYXNlLXdpZGdldC9ib3gtbW9kZWwtd2lkZ2V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQWUsNEJBQTRCLEVBQWUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFHbEcsTUFBTSxPQUFnQixnQ0FBaUMsU0FBUSw0QkFBNEI7SUFEM0Y7O1FBRVMsaUJBQVksR0FBRyxRQUFRLENBQWMsR0FBRyxFQUFFO1lBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUUvQixNQUFNLEtBQUssR0FBb0MsRUFBRSxDQUFDO1lBRWxELE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBb0MsQ0FBQztZQUN4RSxNQUFNLE1BQU0sR0FBRyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQW1DLENBQUM7WUFFckUsTUFBTSxlQUFlLEdBQUcsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQXVCLENBQUM7WUFDM0UsTUFBTSxTQUFTLEdBQUcsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUF1QixDQUFDO1lBRS9ELE1BQU0sUUFBUSxHQUFHLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBdUIsQ0FBQztZQUM3RCxNQUFNLFNBQVMsR0FBRyxPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQXVCLENBQUM7WUFDL0QsTUFBTSxTQUFTLEdBQUcsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUF1QixDQUFDO1lBRS9ELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLGVBQWUsSUFBSSxFQUFFLENBQUM7WUFDbEQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLE9BQU8sRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDO1lBQzFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxPQUFPLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUV4QyxLQUFLLENBQUMsZUFBZSxDQUFDLEdBQUcsTUFBTSxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUM7WUFDOUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLE1BQU0sRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzVDLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxNQUFNLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUM1QyxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7WUFFNUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDbkMsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLFNBQVMsSUFBSSxFQUFFLENBQUM7WUFDdEMsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLFNBQVMsSUFBSSxFQUFFLENBQUM7WUFFdEMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLFNBQVMsSUFBSSxFQUFFLENBQUM7WUFFckMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLHdEQUFDLENBQUM7UUFFTyxlQUFVLEdBQUcsUUFBUSxDQUFjLEdBQUcsRUFBRTtZQUNoRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFFL0IsTUFBTSxLQUFLLEdBQW9DLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztZQUUxRSxNQUFNLEtBQUssR0FBRyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQXVCLENBQUM7WUFDdkQsTUFBTSxRQUFRLEdBQUcsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUF1QixDQUFDO1lBQzdELE1BQU0sUUFBUSxHQUFHLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBdUIsQ0FBQztZQUU3RCxNQUFNLE1BQU0sR0FBRyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQXVCLENBQUM7WUFDekQsTUFBTSxTQUFTLEdBQUcsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUF1QixDQUFDO1lBQy9ELE1BQU0sU0FBUyxHQUFHLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBdUIsQ0FBQztZQUUvRCxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNwQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUM3QixLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUVwQyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsU0FBUyxJQUFJLEVBQUUsQ0FBQztZQUN0QyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUMvQixLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsU0FBUyxJQUFJLEVBQUUsQ0FBQztZQUV0QyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsc0RBQUMsQ0FBQztRQUVPLGdCQUFXLEdBQUcsUUFBUSxDQUFjLEdBQUcsRUFBRTtZQUNqRCxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztRQUNwQyxDQUFDLHVEQUFDLENBQUM7UUFFTyxlQUFVLEdBQUcsUUFBUSxDQUFjLEdBQUcsRUFBRTtZQUNoRCxPQUFPO2dCQUNMLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixXQUFXLEVBQUUsSUFBSTtnQkFDakIsNkJBQTZCO2FBQzlCLENBQUM7UUFDSixDQUFDLHNEQUFDLENBQUM7UUFFTyxnQkFBVyxHQUFHLFFBQVEsQ0FBYyxHQUFHLEVBQUU7WUFDakQsT0FBTztnQkFDTCxpQkFBaUIsRUFBRSxJQUFJO2FBQ3hCLENBQUM7UUFDSixDQUFDLHVEQUFDLENBQUM7S0FDSjs4R0EzRXFCLGdDQUFnQztrSEFBaEMsZ0NBQWdDOzsyRkFBaEMsZ0NBQWdDO2tCQURyRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEJvcmRlckJveFN0cmluZywgQVhQU3BhY2luZ0JveFN0cmluZyB9IGZyb20gJy4uL2hlbHBlcic7XG5pbXBvcnQgeyBBWFBDbGFzc01hcCwgQVhQTGF5b3V0QmFzZVdpZGdldENvbXBvbmVudCwgQVhQU3R5bGVNYXAgfSBmcm9tICcuLi93aWRnZXQtYmFzZS5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQQm94TW9kZWxMYXlvdXRXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBBWFBMYXlvdXRCYXNlV2lkZ2V0Q29tcG9uZW50IHtcbiAgcHVibGljIGhvc3RCb3hTdHlsZSA9IGNvbXB1dGVkPEFYUFN0eWxlTWFwPigoKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucygpO1xuXG4gICAgY29uc3Qgc3R5bGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4gPSB7fTtcblxuICAgIGNvbnN0IHNwYWNpbmcgPSBvcHRpb25zPy5bJ3NwYWNpbmcnXSBhcyBBWFBTcGFjaW5nQm94U3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGJvcmRlciA9IG9wdGlvbnM/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 } 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, 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":";;;;;;;;;;;;;;;;;AAAU,IAAC;AACX,CAAC,UAAU,aAAa,EAAE;AAC1B;AACA,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM;AAClC;AACA,IAAI,aAAa,CAAC,WAAW,CAAC,GAAG,WAAW;AAC5C,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,UAAU;AAC1C;AACA,IAAI,aAAa,CAAC,YAAY,CAAC,GAAG,YAAY;AAC9C;AACA,IAAI,aAAa,CAAC,YAAY,CAAC,GAAG,YAAY;AAC9C,IAAI,aAAa,CAAC,WAAW,CAAC,GAAG,WAAW;AAC5C;AACA,IAAI,aAAa,CAAC,YAAY,CAAC,GAAG,YAAY;AAC9C,IAAI,aAAa,CAAC,WAAW,CAAC,GAAG,WAAW;AAC5C;AACA,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO;AACpC,CAAC,EAAE,aAAa,KAAK,aAAa,GAAG,EAAE,CAAC,CAAC;AAC/B,IAAC;AACX,CAAC,UAAU,eAAe,EAAE;AAC5B;AACA,IAAI,eAAe,CAAC,WAAW,CAAC,GAAG,WAAW;AAC9C,IAAI,eAAe,CAAC,UAAU,CAAC,GAAG,UAAU;AAC5C;AACA,IAAI,eAAe,CAAC,YAAY,CAAC,GAAG,YAAY;AAChD;AACA,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO;AACtC,CAAC,EAAE,eAAe,KAAK,eAAe,GAAG,EAAE,CAAC,CAAC;;ACtBtC,MAAM,gBAAgB,CAAC;AAC9B,IAAI,GAAG,GAAG;AACV,QAAQ,OAAO,EAAE;AACjB,IAAI;AACJ;AACO,MAAM,uBAAuB,CAAC;AACrC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzF,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzF,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,EAAE;AACtC,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE;AAChC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,IAAI,OAAO,EAAE;AAC/C,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxG,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAC/C,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;AACrC,YAAY,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AACxH,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,IAAI;AACJ,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,UAAU,EAAE;AAChC,IAAI;AACJ,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,UAAU,EAAE;AAChC,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;AACtD,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;AACjF;AACA,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,KAAK,eAAe,CAAC,SAAS,CAAC,EAAE;AAC7E,YAAY,OAAO,aAAa,CAAC,SAAS;AAC1C,QAAQ;AACR,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,MAAM,KAAK,eAAe,CAAC,QAAQ,CAAC,EAAE;AAC7E,YAAY,OAAO,aAAa,CAAC,QAAQ;AACzC,QAAQ;AACR;AACA,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,KAAK,eAAe,CAAC,UAAU,CAAC,EAAE;AAC9E,YAAY,OAAO,aAAa,CAAC,UAAU;AAC3C,QAAQ;AACR;AACA,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE;AACzE,YAAY,OAAO,aAAa,CAAC,KAAK;AACtC,QAAQ;AACR,QAAQ,OAAO,aAAa,CAAC,QAAQ,CAAC;AACtC,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,UAAU,CAAC,MAAM;AACzB,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACjC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACb,IAAI;AACJ,IAAI,SAAS,CAAC,MAAM,EAAE;AACtB,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;AAChC,IAAI;AACJ,IAAI,YAAY,CAAC,GAAG,IAAI,EAAE;AAC1B,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;AAC5B,YAAY;AACZ,aAAa,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;AACjC,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxC,aAAa,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AACnC,YAAY,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,QAAQ;AACR,IAAI;AACJ,IAAI,YAAY,CAAC,GAAG,IAAI,EAAE;AAC1B,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;AAC5B,YAAY;AACZ,aAAa,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;AACjC,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxC,aAAa,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AACnC,YAAY,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,QAAQ;AACR,IAAI;AACJ,IAAI,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE;AAC/B,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC;AACpC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;AACpD,IAAI;AACJ,IAAI,SAAS,CAAC,EAAE,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AACnC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE;AACvC,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AAC7C,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,OAAO,QAAQ;AAC3B,QAAQ;AACR,QAAQ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACxC,YAAY,IAAI,QAAQ,GAAG,KAAK;AAChC,YAAY,IAAI,KAAK,GAAG,IAAI;AAC5B,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK;AAC5F,gBAAgB,IAAI,YAAY,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;AACtD,oBAAoB,QAAQ,GAAG,IAAI;AACnC,oBAAoB,GAAG,CAAC,WAAW,EAAE;AACrC,oBAAoB,IAAI,KAAK,EAAE;AAC/B,wBAAwB,YAAY,CAAC,KAAK,CAAC;AAC3C,oBAAoB;AACpB,oBAAoB,OAAO,CAAC,MAAM,CAAC;AACnC,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd,YAAY,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,GAAG,CAAC,EAAE;AACpD,gBAAgB,KAAK,GAAG,UAAU,CAAC,MAAM;AACzC,oBAAoB,IAAI,CAAC,QAAQ,EAAE;AACnC,wBAAwB,QAAQ,GAAG,IAAI;AACvC,wBAAwB,GAAG,CAAC,WAAW,EAAE;AACzC,wBAAwB,OAAO,CAAC,SAAS,CAAC;AAC1C,oBAAoB;AACpB,gBAAgB,CAAC,EAAE,SAAS,CAAC;AAC7B,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,GAAG,EAAE;AACpB,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC1L,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;AAC7I;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,CAAC;AACjI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;ACxHN,MAAM,2BAA2B,CAAC;AACzC;AACY,MAAC,4BAA4B,GAAG,WAAW;AACvD;AACA,SAAS,CAAC,OAAO;AACjB,IAAI,IAAI,EAAE,EAAE;AACZ,IAAI,KAAK,EAAE,WAAW;AACtB,IAAI,eAAe,EAAE,EAAE;AACvB,IAAI,gBAAgB,EAAE,EAAE;AACxB,IAAI,UAAU,EAAE;AAChB,QAAQ,KAAK,EAAE,WAAW;AAC1B,KAAK;AACL,CAAC,CAAC,CAAC;AACH;AACA,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM;AAClF,IAAI,SAAS,EAAE,QAAQ,CAAC,MAAM,KAAK,EAAE,KAAK,SAAS,CAAC;AACpD,IAAI,OAAO,EAAE,QAAQ,CAAC,MAAM,KAAK,EAAE,KAAK,UAAU,CAAC;AACnD,IAAI,WAAW,EAAE,QAAQ,CAAC,MAAM,KAAK,EAAE,KAAK,WAAW,CAAC;AACxD,IAAI,OAAO,EAAE,QAAQ,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7D,IAAI,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC;AACjE,IAAI,QAAQ,EAAE,QAAQ,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/C,IAAI,OAAO,EAAE,QAAQ,CAAC,MAAM,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC;AACzD,IAAI,QAAQ,EAAE,QAAQ,CAAC,MAAM,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC3D,IAAI,WAAW,EAAE,QAAQ,CAAC,MAAM,UAAU,EAAE,CAAC;AAC7C,CAAC,CAAC,CAAC;AACH;AACA,WAAW,CAAC,CAAC,KAAK,MAAM;AACxB;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;AACxB,QAAQ,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACnD,QAAQ,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC;AAC/C;AACA,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;AACtC,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9D,QAAQ,MAAM,WAAW,GAAG;AAC5B,YAAY,QAAQ;AACpB,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,IAAI;AAChB,YAAY,KAAK,EAAE,SAAS;AAC5B,YAAY,IAAI,EAAE,WAAW;AAC7B,SAAS;AACT;AACA,QAAQ,UAAU,CAAC,KAAK,EAAE;AAC1B,YAAY,gBAAgB,EAAE,KAAK,CAAC,QAAQ,EAAE;AAC9C,YAAY,IAAI,EAAE,WAAW;AAC7B,YAAY,KAAK,EAAE,SAAS;AAC5B,YAAY,UAAU,EAAE,WAAW;AACnC,SAAS,CAAC;AACV,IAAI,CAAC;AACL,IAAI,KAAK,CAAC,OAAO,EAAE;AACnB,QAAQ,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACnD;AACA,QAAQ,MAAM,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,EAAE;AAC1D,QAAQ,MAAM,WAAW,GAAG;AAC5B,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,IAAI,EAAE,WAAW;AAC7B,SAAS;AACT;AACA,QAAQ,UAAU,CAAC,KAAK,EAAE;AAC1B,YAAY,gBAAgB,EAAE,KAAK,CAAC,QAAQ,EAAE;AAC9C,YAAY,IAAI,EAAE,WAAW;AAC7B,YAAY,KAAK,EAAE,SAAS;AAC5B,YAAY,UAAU,EAAE,WAAW;AACnC,SAAS,CAAC;AACV,IAAI,CAAC;AACL;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,EAAE;AAC3C,QAAQ,MAAM,WAAW,GAAG;AAC5B,YAAY,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC7C,YAAY,QAAQ,EAAE,SAAS,CAAC,WAAW,CAAC;AAC5C,YAAY,IAAI,EAAE,EAAE;AACpB,YAAY,KAAK,EAAE,UAAU;AAC7B,YAAY,IAAI,EAAE,WAAW;AAC7B,SAAS;AACT,QAAQ,UAAU,CAAC,KAAK,EAAE;AAC1B,YAAY,gBAAgB,EAAE,KAAK,CAAC,QAAQ,EAAE;AAC9C,YAAY,IAAI,EAAE,WAAW;AAC7B,YAAY,KAAK,EAAE,UAAU;AAC7B,YAAY,UAAU,EAAE,WAAW;AACnC,SAAS,CAAC;AACV,IAAI,CAAC;AACL;AACA,IAAI,GAAG,CAAC,WAAW,EAAE;AACrB,QAAQ,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,EAAE;AACxC,QAAQ,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE;AAC/C,YAAY,OAAO;AACnB,QAAQ;AACR,QAAQ,MAAM,WAAW,GAAG;AAC5B,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,QAAQ,EAAE,SAAS,CAAC,WAAW,CAAC;AAC5C,YAAY,IAAI,EAAE,EAAE;AACpB,YAAY,KAAK,EAAE,WAAW;AAC9B,YAAY,IAAI,EAAE,WAAW;AAC7B,SAAS;AACT,QAAQ,UAAU,CAAC,KAAK,EAAE;AAC1B,YAAY,eAAe,EAAE,SAAS,CAAC,WAAW,CAAC;AACnD,YAAY,gBAAgB,EAAE,KAAK,CAAC,QAAQ,EAAE;AAC9C,YAAY,IAAI,EAAE,WAAW;AAC7B,YAAY,KAAK,EAAE,WAAW;AAC9B,YAAY,UAAU,EAAE,WAAW;AACnC,SAAS,CAAC;AACV,IAAI,CAAC;AACL;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC;AACtC,IAAI,CAAC;AACL,CAAC,CAAC,CAAC;;AClHE,MAAC,iBAAiB,GAAG;AAC1B,IAAI,YAAY,EAAE,eAAe;AACjC,IAAI,OAAO,EAAE,gBAAgB;AAC7B,IAAI,QAAQ,EAAE,iBAAiB;AAC/B,IAAI,KAAK,EAAE,cAAc;AACzB,IAAI,OAAO,EAAE,gBAAgB;AAC7B,IAAI,QAAQ,EAAE,kBAAkB;AAChC,IAAI,KAAK,EAAE,cAAc;AACzB,IAAI,SAAS,EAAE,mBAAmB;AAClC,IAAI,IAAI,EAAE,aAAa;AACvB,IAAI,MAAM,EAAE,eAAe;AAC3B,IAAI,UAAU,EAAE,oBAAoB;AACpC,IAAI,QAAQ,EAAE,iBAAiB;AAC/B,IAAI,KAAK,EAAE,cAAc;AACzB,IAAI,QAAQ,EAAE,kBAAkB;AAChC,IAAI,MAAM,EAAE,eAAe;AAC3B,IAAI,aAAa,EAAE,uBAAuB;AAC1C,IAAI,IAAI,EAAE,aAAa;AACvB,IAAI,KAAK,EAAE,cAAc;AACzB,IAAI,MAAM,EAAE,eAAe;AAC3B,IAAI,WAAW,EAAE,cAAc;AAC/B,IAAI,UAAU,EAAE,aAAa;AAC7B,IAAI,cAAc,EAAE,iBAAiB;AACrC,IAAI,eAAe,EAAE,mBAAmB;AACxC,IAAI,YAAY,EAAE,eAAe;AACjC,IAAI,iBAAiB,EAAE,qBAAqB;AAC5C,IAAI,GAAG,EAAE,KAAK;AACd,IAAI,WAAW,EAAE,cAAc;AAC/B,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,SAAS,EAAE,WAAW;AAC1B,IAAI,YAAY,EAAE,eAAe;AACjC,IAAI,QAAQ,EAAE,iBAAiB;AAC/B,IAAI,MAAM,EAAE,eAAe;AAC3B,IAAI,SAAS,EAAE,YAAY;AAC3B,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,YAAY,EAAE,sBAAsB;AACxC,IAAI,gBAAgB,EAAE,2BAA2B;AACjD,IAAI,IAAI,EAAE,aAAa;AACvB,IAAI,QAAQ,EAAE,kBAAkB;AAChC;AACA,IAAI,cAAc,EAAE,iBAAiB;AACrC,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,gBAAgB,EAAE,mBAAmB;AACzC,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,SAAS,EAAE,WAAW;AAC1B,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,UAAU,EAAE,aAAa;AAC7B,IAAI,QAAQ,EAAE,kBAAkB;AAChC,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,mBAAmB,EAAE,uBAAuB;AAChD,IAAI,gBAAgB,EAAE,oBAAoB;AAC1C,IAAI,sBAAsB,EAAE,0BAA0B;AACtD,IAAI,gBAAgB,EAAE,oBAAoB;AAC1C,IAAI,eAAe,EAAE,mBAAmB;AACxC,IAAI,WAAW,EAAE,cAAc;AAC/B,IAAI,iBAAiB,EAAE,qBAAqB;AAC5C,IAAI,WAAW,EAAE,cAAc;AAC/B,IAAI,eAAe,EAAE,mBAAmB;AACxC,IAAI,mBAAmB,EAAE,uBAAuB;AAChD,IAAI,YAAY,EAAE,eAAe;AACjC,IAAI,YAAY,EAAE,eAAe;AACjC,IAAI,cAAc,EAAE,iBAAiB;AACrC,IAAI,aAAa,EAAE,gBAAgB;AACnC,IAAI,YAAY,EAAE,eAAe;AACjC,IAAI,WAAW,EAAE,cAAc;AAC/B,IAAI,eAAe,EAAE,mBAAmB;AACxC,IAAI,YAAY,EAAE,eAAe;AACjC,IAAI,kBAAkB,EAAE,qBAAqB;AAC7C,IAAI,2BAA2B,EAAE,+BAA+B;AAChE,IAAI,mBAAmB,EAAE,uBAAuB;AAChD,IAAI,mBAAmB,EAAE,uBAAuB;AAChD,IAAI,kBAAkB,EAAE,sBAAsB;AAC9C,IAAI,qBAAqB,EAAE,yBAAyB;AACpD,IAAI,iBAAiB,EAAE,oBAAoB;AAC3C,IAAI,eAAe,EAAE,kBAAkB;AACvC,IAAI,kBAAkB,EAAE,qBAAqB;AAC7C,IAAI,UAAU,EAAE,aAAa;AAC7B,IAAI,SAAS,EAAE,YAAY;AAC3B,IAAI,QAAQ,EAAE,WAAW;AACzB,IAAI,UAAU,EAAE,aAAa;AAC7B,IAAI,UAAU,EAAE,aAAa;AAC7B,IAAI,aAAa,EAAE,gBAAgB;AACnC,IAAI,WAAW,EAAE,cAAc;AAC/B,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,cAAc,EAAE,iBAAiB;AACrC,IAAI,eAAe,EAAE,kBAAkB;AACvC,IAAI,QAAQ,EAAE,kBAAkB;AAChC,IAAI,cAAc,EAAE,qBAAqB;AACzC,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,YAAY,EAAE,cAAc;AAChC,IAAI,SAAS,EAAE,YAAY;AAC3B,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,WAAW,EAAE,cAAc;AAC/B,IAAI,UAAU,EAAE,aAAa;AAC7B,IAAI,gBAAgB,EAAE,mBAAmB;AACzC;;AC/FO,SAAS,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE;AAChD,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;AAC7C;AACO,SAAS,oBAAoB,CAAC,IAAI,EAAE;AAC3C,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,IAAI,CAAC,IAAI;AACvB,QAAQ,KAAK,EAAE,IAAI,CAAC,KAAK;AACzB,QAAQ,KAAK,EAAE,IAAI,CAAC,KAAK;AACzB,QAAQ,MAAM,EAAE;AAChB,YAAY,QAAQ,EAAE,QAAQ;AAC9B,YAAY,YAAY,EAAE,IAAI,CAAC,YAAY;AAC3C,YAAY,SAAS,EAAE;AACvB,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI;AAC/B,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;AAC5C,gBAAgB,IAAI,EAAE,iBAAiB,CAAC,IAAI;AAC5C,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3D,KAAK;AACL;AACO,SAAS,oBAAoB,CAAC,IAAI,EAAE;AAC3C,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,IAAI,CAAC,IAAI;AACvB,QAAQ,KAAK,EAAE,IAAI,CAAC,KAAK;AACzB,QAAQ,KAAK,EAAE,IAAI,CAAC,KAAK;AACzB,QAAQ,MAAM,EAAE;AAChB,YAAY,QAAQ,EAAE,QAAQ;AAC9B,YAAY,YAAY,EAAE,IAAI,CAAC,YAAY;AAC3C,YAAY,SAAS,EAAE;AACvB,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI;AAC/B,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;AAC5C,gBAAgB,IAAI,EAAE,iBAAiB,CAAC,MAAM;AAC9C,gBAAgB,OAAO,EAAE,IAAI,CAAC,OAAO;AACrC,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3D,KAAK;AACL;AACO,SAAS,qBAAqB,CAAC,IAAI,EAAE;AAC5C,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,IAAI,CAAC,IAAI;AACvB,QAAQ,KAAK,EAAE,IAAI,CAAC,KAAK;AACzB,QAAQ,KAAK,EAAE,IAAI,CAAC,KAAK;AACzB,QAAQ,MAAM,EAAE;AAChB,YAAY,QAAQ,EAAE,SAAS;AAC/B,YAAY,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,KAAK;AACpD,YAAY,SAAS,EAAE;AACvB,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI;AAC/B,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;AAC5C,gBAAgB,IAAI,EAAE,iBAAiB,CAAC,MAAM;AAC9C,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;AACrC,KAAK;AACL;AACO,SAAS,oBAAoB,CAAC,IAAI,EAAE;AAC3C,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,IAAI,CAAC,IAAI;AACvB,QAAQ,KAAK,EAAE,IAAI,CAAC,KAAK;AACzB,QAAQ,KAAK,EAAE,IAAI,CAAC,KAAK;AACzB,QAAQ,MAAM,EAAE;AAChB,YAAY,QAAQ,EAAE,QAAQ;AAC9B,YAAY,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY;AACzD,kBAAkB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,OAAO,IAAI,KAAK,QAAQ,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AAClG,kBAAkB,OAAO,IAAI,CAAC,YAAY,KAAK;AAC/C,sBAAsB,EAAE,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY;AACvE,sBAAsB,IAAI,CAAC,YAAY;AACvC,YAAY,SAAS,EAAE;AACvB,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI;AAC/B,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;AAC5C,gBAAgB,IAAI,EAAE,iBAAiB,CAAC,MAAM;AAC9C,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,OAAO,IAAI,KAAK,QAAQ,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AAC5H,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;AACrC,KAAK;AACL;AACY,MAAC,gBAAgB,GAAG,IAAI,cAAc,CAAC,kBAAkB;AACzD,MAAC,uBAAuB,GAAG,IAAI,cAAc,CAAC,yBAAyB;;ACzE5E,MAAM,sBAAsB,SAAS,gBAAgB,CAAC;AAC7D,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC7C,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa;AACpD,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC5D,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAClE,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;AACvC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;AACnC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;AACxC,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3G,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AACjD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,OAAO,EAAE;AAC7C,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1G,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAC/C,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AAClE,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM;AAC1C,YAAY,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AACpD,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClE,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtK,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnH,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;AACnD,IAAI;AACJ,IAAI,IAAI,EAAE,GAAG;AACb,QAAQ,OAAO,IAAI,CAAC,GAAG;AACvB,IAAI;AACJ,IAAI,aAAa;AACjB,IAAI,OAAO,GAAG;AACd,QAAQ,OAAO,EAAE;AACjB,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE;AAC9C,YAAY,IAAI,CAAC,OAAO,EAAE;AAC1B,QAAQ;AACR,QAAQ,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC;AAChD,IAAI;AACJ,IAAI,SAAS,CAAC,MAAM,EAAE;AACtB,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;AAChC,QAAQ,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;AACzC,IAAI;AACJ,IAAI,UAAU,CAAC,MAAM,EAAE;AACvB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE;AACvC,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;AACvC,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,EAAE,CAAC;AACpD,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACpD,IAAI;AACJ,IAAI,MAAM,CAAC,IAAI,EAAE;AACjB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,QAAQ,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACrG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE;AACjD,YAAY,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;AACvC,YAAY,IAAI,OAAO,GAAG,IAAI,UAAU,EAAE;AAC1C,gBAAgB,OAAO,GAAG,EAAE;AAC5B,YAAY;AACZ,YAAY,OAAO,GAAG;AACtB,QAAQ;AACR,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE;AACxB,QAAQ,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;AAClC,QAAQ,IAAI,EAAE,IAAI,OAAO,EAAE,IAAI,UAAU,EAAE;AAC3C,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;AAClC,QAAQ;AACR,IAAI;AACJ,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC1B,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;AACzC,IAAI;AACJ,IAAI,OAAO,GAAG,EAAE;AAChB,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC3L,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC;AAC5I;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC;AAChI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;AACN,MAAM,4BAA4B,SAAS,sBAAsB,CAAC;AACzE,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACjM,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC;AAClJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,UAAU,EAAE,CAAC;AACtI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;AACN,MAAM,uBAAuB,SAAS,4BAA4B,CAAC;AAC1E,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;AACxC,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY;AACnF,QAAQ,IAAI,CAAC,cAAc,GAAG,KAAK;AACnC,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc;AACtD,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,OAAO,EAAE;AAC3C,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvF,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3F,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM;AACvC,YAAY,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI;AAC9E,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AAC/F,QAAQ,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,MAAM;AAC9C,YAAY,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC;AAChE,YAAY,IAAI,cAAc,IAAI,IAAI,EAAE;AACxC,gBAAgB,OAAO,EAAE;AACzB,YAAY;AACZ,YAAY,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC;AAC9D,iBAAiB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AACxC,iBAAiB,GAAG,CAAC,CAAC,CAAC,MAAM;AAC7B,gBAAgB,IAAI,EAAE,CAAC,CAAC,IAAI;AAC5B,gBAAgB,OAAO,EAAE,CAAC,CAAC,OAAO;AAClC,gBAAgB,OAAO,EAAE,CAAC,CAAC,OAAO;AAClC,aAAa,CAAC,CAAC;AACf,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpE,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK;AAC5F,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AAClC,YAAY,IAAI,CAAC,cAAc,EAAE;AACjC,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;AACrE,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;AAChD,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,KAAK,CAAC,QAAQ,EAAE;AACxB,IAAI;AACJ,IAAI,YAAY,CAAC,IAAI,EAAE;AACvB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC3D,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE;AAC/C,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC;AAC9D,QAAQ;AACR,QAAQ,OAAO,QAAQ;AACvB,IAAI;AACJ,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE;AAC/C,YAAY,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC;AAC5D,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AACxC,QAAQ,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK;AACjD,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC7C,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;AACtC,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AAC7B,YAAY,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC;AAC9D,YAAY,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACtD,QAAQ;AACR,IAAI;AACJ,IAAI,cAAc,GAAG;AACrB,QAAQ,MAAM,QAAQ,GAAG,EAAE;AAC3B,QAAQ,MAAM,GAAG,GAAG,EAAE;AACtB;AACA,QAAQ,IAAI,MAAM,GAAG,IAAI;AACzB;AACA,QAAQ,OAAO,MAAM,EAAE;AACvB,YAAY,MAAM,aAAa,GAAG,MAAM,YAAY,uBAAuB,IAAI,MAAM,CAAC,aAAa,EAAE;AACrG,YAAY,MAAM,WAAW,GAAG,MAAM;AACtC,YAAY,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,KAAK,aAAa,GAAG,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;AACtF,YAAY,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI;AACvC;AACA,YAAY,IAAI,IAAI,EAAE;AACtB,gBAAgB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,YAAY;AACZ,YAAY,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,aAAa,EAAE;AACvD,gBAAgB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClD,YAAY;AACZ,YAAY,IAAI,EAAE,EAAE;AACpB,gBAAgB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AAC5B,gBAAgB,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE;AAC1C,oBAAoB,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,gBAAgB;AAChB,YAAY;AACZ,YAAY,MAAM,GAAG,MAAM,CAAC,MAAM;AAClC,QAAQ;AACR;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvD,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7E,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI;AAC5E,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE;AACtB,YAAY,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AAC7D,QAAQ;AACR,IAAI;AACJ,IAAI,kBAAkB,CAAC,CAAC,EAAE;AAC1B,QAAQ,IAAI,CAAC,CAAC,iBAAiB,EAAE;AACjC,YAAY,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC5L,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;AAC7I;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,CAAC;AACjI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;AACN,MAAM,0BAA0B,SAAS,uBAAuB,CAAC;AACxE,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,sCAAsC,CAAC;AACzE,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,OAAO,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnI,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnI,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,EAAE,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnH,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM;AACtC,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,GAAG;AACrD,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AAChD,YAAY,MAAM,MAAM,GAAG,GAAG,IAAI,UAAU;AAC5C,YAAY,OAAO,MAAM;AACzB,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5D,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/F,QAAQ,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,YAAY;AACrC,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC;AACzD;AACA,YAAY,IAAI,QAAQ,YAAY,YAAY,EAAE;AAClD,gBAAgB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC7C,YAAY;AACZ;AACA,iBAAiB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAC9C,gBAAgB,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC;AAC5C,oBAAoB,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE;AAC1C,oBAAoB,QAAQ,EAAE,EAAE;AAChC,oBAAoB,IAAI,EAAE,OAAO,CAAC,KAAK;AACvC,wBAAwB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC;AAChE,wBAAwB,OAAO;AAC/B,4BAA4B,KAAK,EAAE,GAAG;AACtC,4BAA4B,KAAK,EAAE,GAAG,CAAC,MAAM;AAC7C,yBAAyB;AACzB,oBAAoB,CAAC;AACrB,oBAAoB,KAAK,EAAE,CAAC,GAAG,KAAK;AACpC,wBAAwB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC;AAChE,wBAAwB,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,GAAG,CAAC;AACnF,wBAAwB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,oBAAoB,CAAC;AACrB,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;AACvC,YAAY;AACZ;AACA,iBAAiB,IAAI,QAAQ,KAAK,OAAO,QAAQ,IAAI,QAAQ,IAAI,OAAO,QAAQ,IAAI,QAAQ,CAAC,EAAE;AAC/F,gBAAgB,MAAM,EAAE,GAAG,OAAO,QAAQ,IAAI,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ;AAClF,gBAAgB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;AACxD,gBAAgB,IAAI,IAAI,CAAC,IAAI,IAAI,UAAU,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE;AACnE,oBAAoB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,OAAO,EAAE;AAC5E,wBAAwB,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE;AAC9C,wBAAwB,QAAQ,EAAE,GAAG;AACrC,qBAAqB,CAAC,CAAC;AACvB,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE;AAC1C,oBAAoB,IAAI,EAAE,IAAI,EAAE,YAAY,OAAO,EAAE;AACrD,wBAAwB,MAAM,CAAC,GAAG,MAAM,EAAE;AAC1C,wBAAwB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,oBAAoB;AACpB,yBAAyB,IAAI,EAAE,EAAE;AACjC,wBAAwB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;AAC/C,oBAAoB;AACpB;AACA,yBAAyB;AACzB,wBAAwB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;AACzE,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;AACjE,YAAY;AACZ,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvD,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,YAAY;AAC1C,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AACzC,YAAY,MAAM,KAAK,GAAG,EAAE;AAC5B,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACtC,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/F,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACzD,YAAY;AACZ,YAAY,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;AAClE,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5D,IAAI;AACJ,IAAI,MAAM,WAAW,CAAC,IAAI,EAAE;AAC5B,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;AACzB,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,IAAI,EAAE;AACvE,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AACzD,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;AACpC,QAAQ,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE;AAC9B,YAAY,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC;AACrD,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,YAAY,CAAC,IAAI;AAChC,cAAc;AACd,cAAc;AACd,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI;AACzC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI;AACxC,aAAa;AACb,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC/L,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;AAChJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,UAAU,EAAE,CAAC;AACpI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;AACN,MAAM,wBAAwB,CAAC;AACtC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,uBAAuB,CAAC;AACpD,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;AACnC,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE;AAC/C,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI;AAC5B,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;AAChD,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;AAClD,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM;AACpC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AAChE,gBAAgB,OAAO,IAAI,CAAC,SAAS;AACrC,YAAY;AACZ,YAAY,OAAO,IAAI,CAAC,QAAQ;AAChC,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1D,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC3L,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC;AAC9I;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;ACpUN,MAAM,gCAAgC,SAAS,4BAA4B,CAAC;AACnF,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM;AAC3C,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1C,YAAY,MAAM,KAAK,GAAG,EAAE;AAC5B,YAAY,MAAM,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAChD,YAAY,MAAM,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC9C,YAAY,MAAM,eAAe,GAAG,OAAO,GAAG,iBAAiB,CAAC;AAChE,YAAY,MAAM,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;AACpD,YAAY,MAAM,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAClD,YAAY,MAAM,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;AACpD,YAAY,MAAM,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;AACpD,YAAY,KAAK,CAAC,kBAAkB,CAAC,GAAG,eAAe,IAAI,EAAE;AAC7D,YAAY,KAAK,CAAC,SAAS,CAAC,GAAG,OAAO,EAAE,OAAO,IAAI,EAAE;AACrD,YAAY,KAAK,CAAC,QAAQ,CAAC,GAAG,OAAO,EAAE,MAAM,IAAI,EAAE;AACnD,YAAY,KAAK,CAAC,eAAe,CAAC,GAAG,MAAM,EAAE,MAAM,IAAI,EAAE;AACzD,YAAY,KAAK,CAAC,cAAc,CAAC,GAAG,MAAM,EAAE,KAAK,IAAI,EAAE;AACvD,YAAY,KAAK,CAAC,cAAc,CAAC,GAAG,MAAM,EAAE,KAAK,IAAI,EAAE;AACvD,YAAY,KAAK,CAAC,cAAc,CAAC,GAAG,MAAM,EAAE,KAAK,IAAI,EAAE;AACvD,YAAY,KAAK,CAAC,UAAU,CAAC,GAAG,QAAQ,IAAI,EAAE;AAC9C,YAAY,KAAK,CAAC,YAAY,CAAC,GAAG,SAAS,IAAI,EAAE;AACjD,YAAY,KAAK,CAAC,YAAY,CAAC,GAAG,SAAS,IAAI,EAAE;AACjD,YAAY,KAAK,CAAC,WAAW,CAAC,GAAG,SAAS,IAAI,EAAE;AAChD,YAAY,OAAO,KAAK;AACxB,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM;AACzC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1C,YAAY,MAAM,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE;AACpD,YAAY,MAAM,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC;AAC5C,YAAY,MAAM,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAClD,YAAY,MAAM,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAClD,YAAY,MAAM,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC9C,YAAY,MAAM,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;AACpD,YAAY,MAAM,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;AACpD,YAAY,KAAK,CAAC,WAAW,CAAC,GAAG,QAAQ,IAAI,EAAE;AAC/C,YAAY,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,EAAE;AACxC,YAAY,KAAK,CAAC,WAAW,CAAC,GAAG,QAAQ,IAAI,EAAE;AAC/C,YAAY,KAAK,CAAC,YAAY,CAAC,GAAG,SAAS,IAAI,EAAE;AACjD,YAAY,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,EAAE;AAC1C,YAAY,KAAK,CAAC,YAAY,CAAC,GAAG,SAAS,IAAI,EAAE;AACjD,YAAY,OAAO,KAAK;AACxB,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/D,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM;AAC1C,YAAY,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE;AAC7C,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChE,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM;AACzC,YAAY,OAAO;AACnB,gBAAgB,UAAU,EAAE,IAAI;AAChC,gBAAgB,WAAW,EAAE,IAAI;AACjC;AACA,aAAa;AACb,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/D,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM;AAC1C,YAAY,OAAO;AACnB,gBAAgB,iBAAiB,EAAE,IAAI;AACvC,aAAa;AACb,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChE,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACrM,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC,CAAC;AACtJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,UAAU,EAAE,CAAC;AAC1I,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;AChEN,MAAM,iCAAiC,SAAS,gCAAgC,CAAC;AACxF,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9G,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9G,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACtM,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAC,CAAC;AACvJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,UAAU,EAAE,CAAC;AAC3I,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;ACVN,MAAM,gCAAgC,SAAS,iCAAiC,CAAC;AACxF,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjG,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM;AAC5C,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AAChD,YAAY,MAAM,KAAK,GAAG,EAAE,GAAG,UAAU,EAAE;AAC3C,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACpC,YAAY,IAAI,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE;AAC5C,gBAAgB,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE;AAC5C,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,aAAa;AAC5D,YAAY;AACZ,YAAY,IAAI,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;AACvC,gBAAgB,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;AACvC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,QAAQ;AAClD,YAAY;AACZ;AACA,YAAY,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,EAAE,QAAQ,KAAK,QAAQ,GAAG,MAAM,GAAG,EAAE;AACzE;AACA,YAAY,IAAI,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE;AAC7C,gBAAgB,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE;AAC7C,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,cAAc;AAC9D,YAAY;AACZ,YAAY,IAAI,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;AACzC,gBAAgB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE;AACzC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,UAAU;AACtD,YAAY;AACZ,YAAY,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AAClC,gBAAgB,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;AACjC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG;AACvC,YAAY;AACZ,YAAY,OAAO,KAAK;AACxB,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClE,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM;AAC5C,YAAY,OAAO;AACnB,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAAE;AACpC,gBAAgB,SAAS,EAAE,IAAI;AAC/B,gBAAgB,WAAW,EAAE,IAAI;AACjC,aAAa;AACb,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClE,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACxC,YAAY,OAAO,IAAI,CAAC,aAAa,EAAE;AACvC,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACxC,YAAY,OAAO,IAAI,CAAC,aAAa,EAAE;AACvC,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACrM,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC,CAAC;AACtJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,UAAU,EAAE,CAAC;AAC1I,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;AC/DN,MAAM,kCAAkC,SAAS,gCAAgC,CAAC;AACzF,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/G,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/G,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kCAAkC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACvM,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kCAAkC,EAAE,CAAC,CAAC;AACxJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kCAAkC,EAAE,UAAU,EAAE,CAAC;AAC5I,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;ACVN,MAAM,oCAAoC,SAAS,kCAAkC,CAAC;AAC7F,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzG,QAAQ,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM;AAChD,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE;AACjD,YAAY,MAAM,KAAK,GAAG,EAAE,GAAG,WAAW,EAAE;AAC5C,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;AACtC,YAAY,IAAI,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE;AAClC,gBAAgB,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;AACnC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK;AACzC,YAAY;AACZ,YAAY,IAAI,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE;AACjC,gBAAgB,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;AACvC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI;AAC5C,YAAY;AACZ,YAAY,IAAI,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE;AACnC,gBAAgB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE;AACzC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM;AAChD,YAAY;AACZ,YAAY,IAAI,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE;AAClC,gBAAgB,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE;AACxC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,KAAK;AAC9C,YAAY;AACZ,YAAY,IAAI,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE;AACtC,gBAAgB,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE;AACxC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,SAAS;AAClD,YAAY;AACZ,YAAY,OAAO,KAAK;AACxB,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtE,QAAQ,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM;AAChD,YAAY,OAAO;AACnB,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAAE;AACpC,aAAa;AACb,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtE,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACxC,YAAY,OAAO,IAAI,CAAC,iBAAiB,EAAE;AAC3C,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACxC,YAAY,OAAO,IAAI,CAAC,iBAAiB,EAAE;AAC3C,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACzM,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE,CAAC,CAAC;AAC1J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE,UAAU,EAAE,CAAC;AAC9I,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;AC1DN,MAAM,gCAAgC,SAAS,iCAAiC,CAAC;AACxF,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3G,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM;AAC5C,YAAY,MAAM,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE;AACnD,YAAY,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO;AAC1C,YAAY,IAAI,CAAC,EAAE,GAAG;AACtB,gBAAgB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG;AACpC,YAAY,OAAO,KAAK;AACxB,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClE,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM;AAC5C,YAAY,MAAM,GAAG,GAAG;AACxB,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE;AACrC,gBAAgB,SAAS,EAAE,IAAI;AAC/B,aAAa;AACb,YAAY,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO;AAC1C,YAAY,IAAI,CAAC,EAAE,OAAO;AAC1B,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;AAC1D,YAAY,IAAI,CAAC,EAAE,IAAI;AACvB,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI;AACvD,YAAY,IAAI,CAAC,EAAE,YAAY;AAC/B,gBAAgB,GAAG,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;AACnE,YAAY,IAAI,CAAC,EAAE,UAAU;AAC7B,gBAAgB,GAAG,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;AAC/D,YAAY,IAAI,CAAC,EAAE,QAAQ;AAC3B,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;AAC3D,YAAY,OAAO,GAAG;AACtB,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClE,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjH,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjH,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACrM,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC,CAAC;AACtJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,UAAU,EAAE,CAAC;AAC1I,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;ACrCN,MAAM,oCAAoC,SAAS,gCAAgC,CAAC;AAC3F,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzG,QAAQ,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM;AAChD,YAAY,MAAM,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE;AACrD,YAAY,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;AACrC,YAAY,IAAI,CAAC,EAAE,SAAS;AAC5B,gBAAgB,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS;AACjD,YAAY,IAAI,CAAC,EAAE,WAAW;AAC9B,gBAAgB,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,WAAW;AACrD,YAAY,OAAO,KAAK;AACxB,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtE,QAAQ,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM;AAChD,YAAY,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE;AACnD,YAAY,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;AACrC,YAAY,IAAI,CAAC,EAAE,OAAO;AAC1B,gBAAgB,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;AACzD,YAAY,IAAI,CAAC,EAAE,QAAQ;AAC3B,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;AAC3D,YAAY,IAAI,CAAC,EAAE,MAAM;AACzB,gBAAgB,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;AACvD,YAAY,IAAI,CAAC,EAAE,OAAO;AAC1B,gBAAgB,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;AACzD,YAAY,IAAI,CAAC,EAAE,QAAQ;AAC3B,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;AAC3D,YAAY,IAAI,CAAC,EAAE,MAAM;AACzB,gBAAgB,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;AACvD,YAAY,OAAO,GAAG;AACtB,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtE,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrH,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrH,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACzM,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE,CAAC,CAAC;AAC1J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE,UAAU,EAAE,CAAC;AAC9I,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;ACtCN,MAAM,wBAAwB,CAAC;AACtC;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE;AAC9B,QAAQ,wBAAwB,CAAC,QAAQ,GAAG,IAAI;AAChD,IAAI;AACJ,IAAI,QAAQ,CAAC,MAAM,EAAE;AACrB,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;AAC3C,IAAI;AACJ,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE;AAC/B,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;AACrD,QAAQ,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC;AACzD,QAAQ,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;AACpC,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AAChC,IAAI;AACJ,IAAI,OAAO,CAAC,IAAI,EAAE;AAClB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3C,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACzE,QAAQ;AACR,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,GAAG,GAAG;AACV,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;AAC9C,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC3L,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAClK;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC5BhC,MAAM,gCAAgC,SAAS,0BAA0B,CAAC;AACjF,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAC/D,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,eAAe,CAAC;AAC3C,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/F,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3F,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC5C,IAAI;AACJ,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,KAAK;AACzB,IAAI;AACJ,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE;AAChB,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC;AACtB,IAAI;AACJ,IAAI,IAAI,oBAAoB,GAAG;AAC/B,QAAQ,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,sBAAsB;AACjE,IAAI;AACJ,IAAI,IAAI,kBAAkB,GAAG;AAC7B,QAAQ,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,oBAAoB;AAC7D,IAAI;AACJ,IAAI,MAAM,eAAe,CAAC,GAAG,EAAE;AAC/B,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;AAChC,QAAQ,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;AACtC,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACjC;AACA;AACA;AACA,IAAI;AACJ,IAAI,IAAI,oBAAoB,GAAG;AAC/B,QAAQ,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,sBAAsB;AACjE,IAAI;AACJ,IAAI,IAAI,cAAc,GAAG;AACzB,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACnE,QAAQ,MAAM,IAAI,GAAG,QAAQ;AAC7B,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE;AACpE;AACA,QAAQ,MAAM,KAAK,GAAG,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE;AAChD,cAAc,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY;AACjD,aAAa,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;AAC7D,aAAa,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK;AACnC,YAAY,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE;AACtC,QAAQ,CAAC,EAAE,EAAE,CAAC;AACd;AACA,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACrE,QAAQ,MAAM,UAAU,GAAG;AAC3B,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;AAChC,YAAY,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE;AACzC,SAAS;AACT,QAAQ,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC9C,YAAY,MAAM,EAAE,IAAI,CAAC,QAAQ;AACjC,YAAY,SAAS,EAAE;AACvB,gBAAgB;AAChB,oBAAoB,OAAO,EAAE,uBAAuB;AACpD,oBAAoB,QAAQ,EAAE,UAAU;AACxC,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,IAAI,OAAO,CAAC;AAClG,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,IAAI,IAAI;AACvE,QAAQ,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AAChC,IAAI;AACJ,IAAI,SAAS,CAAC,IAAI,EAAE;AACpB,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACpD,YAAY,OAAO,EAAE,IAAI;AACzB,SAAS;AACT,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACpM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,gCAAgC,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,4BAA4B,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE;AACxe,YAAY,uBAAuB;AACnC,YAAY,EAAE,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAE,gCAAgC,EAAE;AAClG,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,wBAAwB,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,wBAAwB,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC9W;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,mBAAmB,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,sCAAsC,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,kCAAkC,CAAC,EAAE,QAAQ,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACjiB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,UAAU,EAAE,CAAC;AAC1I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,4BAA4B;AAC1D,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB,uBAAuB;AAC/C,wBAAwB,EAAE,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAE,gCAAgC,EAAE;AAC9G,qBAAqB;AACrB,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,MAAM,EAAE,CAAC,SAAS,CAAC;AACvC,oBAAoB,UAAU,EAAE,KAAK;AACrC,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,gBAAgB,EAAE,CAAC;AACjD,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAC;AACrC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE,KAAK;AAC3B,gBAAgB,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;AACzC,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;AACjC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,sBAAsB,EAAE,CAAC;AACzC,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,QAAQ;AAC/B,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;AAC/B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC;AACvC,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,MAAM;AAC7B,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;AACjC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,sBAAsB,EAAE,CAAC;AACzC,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,QAAQ;AAC/B,aAAa,CAAC,EAAE,EAAE,CAAC;;AC5LZ,MAAM,2BAA2B,CAAC;AACzC,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;AACtC,IAAI;AACJ,IAAI,IAAI,SAAS,CAAC,CAAC,EAAE;AACrB,QAAQ,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3C,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAClE,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC7D,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,YAAY,EAAE;AAClD,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;AACrC,YAAY,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;AAC/C,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;AACrC,YAAY,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;AAC/C,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE;AACjD,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;AAC7E,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AACrC,IAAI;AACJ,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC;AACtD,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,2BAA2B,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,oBAAoB,EAAE,EAAE,SAAS,EAAE,CAAC,uBAAuB,EAAE,4BAA4B,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,yBAAyB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACjhB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,CAAC;AACrI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,uBAAuB;AACrD,oBAAoB,QAAQ,EAAE,CAAC,yBAAyB,CAAC;AACzD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACzD,oBAAoB,SAAS,EAAE,CAAC,uBAAuB,EAAE,4BAA4B,CAAC;AACtF,oBAAoB,UAAU,EAAE,KAAK;AACrC,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,gBAAgB,EAAE,CAAC;AAC3E,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,EAAE,CAAC;;AChDZ,MAAM,6BAA6B,CAAC;AAC3C,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC/L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,6BAA6B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,wBAAwB,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AAClN;AACA,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACnP;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,UAAU,EAAE,CAAC;AACvI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,wBAAwB;AACtD,oBAAoB,QAAQ,EAAE,CAAC;AAC/B;AACA,QAAQ,CAAC;AACT,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC/C,oBAAoB,UAAU,EAAE,IAAI;AACpC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACRN,MAAM,0BAA0B,CAAC;AACxC;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/F,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrF,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjF,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjF,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrF,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AACjD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,EAAE;AACxC,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,EAAE;AACtC;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/F,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC7D,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAClE,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAC/D,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AAClD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAC5D,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAC7D,QAAQ,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AACxE,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxD,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1F,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAAE;AAC7C,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI;AACnC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,KAAK;AACrC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,OAAO,EAAE;AAC7C,QAAQ,MAAM,CAAC,YAAY;AAC3B,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AAC7D;AACA,YAAY,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACxC,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,CAAC,MAAM,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,EAAE;AAChE,gBAAgB,IAAI,CAAC,YAAY,EAAE;AACnC,YAAY;AACZ,YAAY,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE;AAC/E,gBAAgB,MAAM,IAAI,CAAC,yBAAyB,EAAE;AACtD,YAAY;AACZ;AACA,YAAY,IAAI,OAAO,CAAC,IAAI,EAAE;AAC9B,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;AAClE,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,YAAY;AACrG,YAAY,IAAI,CAAC,MAAM,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,EAAE;AAChE,gBAAgB,IAAI,CAAC,YAAY,EAAE;AACnC,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AAChD;AACA,YAAY,IAAI,CAAC,iBAAiB,EAAE;AACpC,QAAQ;AACR,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB;AACA,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;AAClC,YAAY,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;AAC9C,YAAY,IAAI,CAAC,eAAe,GAAG,IAAI;AACvC,QAAQ;AACR;AACA,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACjC;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,YAAY;AACtD,YAAY,MAAM,IAAI,CAAC,aAAa,EAAE;AACtC,YAAY,IAAI,CAAC,eAAe,GAAG,IAAI;AACvC,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;AAClC,YAAY,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;AAC9C,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;AAC/B,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACvC,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,aAAa,GAAG;AAC1B,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AAC9B,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAChC,QAAQ,IAAI;AACZ;AACA,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE;AACnC,gBAAgB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AAC3C,YAAY;AACZ,YAAY,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACzC;AACA,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC;AACzE;AACA,YAAY,MAAM,mBAAmB,GAAG;AACxC,gBAAgB,IAAI,MAAM,EAAE,UAAU,IAAI,EAAE,CAAC;AAC7C,gBAAgB,IAAI,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC;AACtE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC;AAC3D;AACA,YAAY,MAAM,KAAK,GAAG,EAAE;AAC5B,YAAY,KAAK,MAAM,QAAQ,IAAI,mBAAmB,EAAE;AACxD,gBAAgB,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY;AACjE,gBAAgB,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;AAC7G;AACA,oBAAoB,IAAI;AACxB,wBAAwB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;AAC1F,wBAAwB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,cAAc;AAC7D,oBAAoB;AACpB,oBAAoB,OAAO,KAAK,EAAE;AAClC,wBAAwB,OAAO,CAAC,KAAK,CAAC,CAAC,uDAAuD,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AACxH,wBAAwB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;AACvE,oBAAoB;AACpB,gBAAgB;AAChB,qBAAqB;AACrB;AACA,oBAAoB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC;AAClE,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAC5F,YAAY,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;AAC5E,YAAY,MAAM,IAAI,CAAC,2BAA2B,EAAE;AACpD;AACA,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AAChF;AACA,YAAY,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY;AACvD,YAAY,IAAI,YAAY,IAAI,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;AACrF,gBAAgB,YAAY,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;AAC1E,YAAY;AACZ;AACA,YAAY,MAAM,UAAU,GAAG;AAC/B,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjC,gBAAgB,YAAY,EAAE,YAAY;AAC1C,gBAAgB,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE;AAC7C,gBAAgB,MAAM,EAAE,MAAM;AAC9B,aAAa;AACb,YAAY,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC1C,gBAAgB,MAAM,EAAE,IAAI,CAAC,QAAQ;AACrC,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB;AACpB,wBAAwB,OAAO,EAAE,gBAAgB;AACjD,wBAAwB,QAAQ,EAAE,UAAU;AAC5C,qBAAqB;AACrB,iBAAiB;AACjB,aAAa,CAAC;AACd;AACA,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,6BAA6B,CAAC;AACnG;AACA,YAAY,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE;AAC1E,YAAY,IAAI,CAAC,GAAG,EAAE;AACtB,gBAAgB,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,uCAAuC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACzG,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC/F,YAAY,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ;AACtD,YAAY,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC;AAC9D,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;AACpD,YAAY,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC9C,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AAC5C,YAAY,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC;AAC7D,YAAY,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;AACvG,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAC9E,YAAY,CAAC,CAAC;AACd,YAAY,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;AACrG,gBAAgB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAC5E,YAAY,CAAC,CAAC;AACd,YAAY,MAAM,IAAI,CAAC,yBAAyB,EAAE;AAClD,YAAY,MAAM,IAAI,CAAC,cAAc,EAAE;AACvC;AACA,YAAY,UAAU,CAAC,OAAO,EAAE;AAChC;AACA,YAAY,IAAI,CAAC,gBAAgB,GAAG,IAAI;AACxC,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC;AAC5D,QAAQ;AACR,gBAAgB;AAChB,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACrC,QAAQ;AACR,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;AAC1B,YAAY;AACZ,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AAC5E,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AACtD,IAAI;AACJ,IAAI,qBAAqB,CAAC,OAAO,EAAE,IAAI,EAAE;AACzC,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,MAAM,KAAK,GAAG,6BAA6B;AACvD,YAAY,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AAChD,YAAY,MAAM,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC5F,YAAY,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;AACvC,QAAQ;AACR;AACA,YAAY,OAAO,KAAK;AACxB,IAAI;AACJ,IAAI,2BAA2B,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,EAAE;AACtD,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AACtD,YAAY,MAAM,WAAW,GAAG,UAAU,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE;AAC3G;AACA,gBAAgB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,cAAc,KAAK;AAC9D,oBAAoB,OAAO,GAAG,CAAC,cAAc,EAAE,WAAW,EAAE,KAAK,CAAC;AAClE,gBAAgB,CAAC,CAAC;AAClB,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AAC3F;AACA,gBAAgB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAChG,YAAY;AACZ,iBAAiB,IAAI,OAAO,KAAK,KAAK,QAAQ;AAC9C,gBAAgB,KAAK,KAAK,IAAI;AAC9B,iBAAiB,KAAK,CAAC,WAAW,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;AACxE;AACA,gBAAgB,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,WAAW,CAAC;AACpE,YAAY;AACZ,iBAAiB;AACjB;AACA,gBAAgB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,cAAc,KAAK;AAC9D,oBAAoB,OAAO,GAAG,CAAC,cAAc,EAAE,WAAW,EAAE,KAAK,CAAC;AAClE,gBAAgB,CAAC,CAAC;AAClB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,2BAA2B,GAAG;AACxC,QAAQ,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK;AACtG,YAAY,MAAM,QAAQ,GAAG,MAAM,SAAS,EAAE;AAC9C,YAAY,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;AACrC,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AACzD;AACA,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,YAAY,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;AAC7C,gBAAgB,MAAM,cAAc,GAAG,EAAE,GAAG,CAAC,EAAE;AAC/C,gBAAgB,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK;AACxD;AACA,oBAAoB,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AACxD,gBAAgB,CAAC,CAAC;AAClB,gBAAgB,OAAO,cAAc;AACrC,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,QAAQ,OAAO,OAAO,CAAC,MAAM;AAC7B,IAAI;AACJ,IAAI,MAAM,yBAAyB,GAAG;AACtC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE;AACjC,YAAY,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC;AAC5E,YAAY,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;AACzC,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,kBAAkB,CAAC,kBAAkB,EAAE;AACjD,QAAQ,IAAI;AACZ,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACrD,YAAY,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC;AACrF,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC;AAChE,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,IAAI;AACJ,IAAI,oBAAoB,GAAG;AAC3B,QAAQ,OAAO;AACf,YAAY,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE;AAC3C,YAAY,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE;AACxC,YAAY,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE;AACzC,YAAY,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE;AAC5C,YAAY,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE;AAC1C,SAAS;AACT,IAAI;AACJ,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK;AAC5B;AACA,gBAAgB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;AACpH,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACpE,gBAAgB,OAAO,KAAK;AAC5B,YAAY,CAAC;AACb,YAAY,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK;AAClC,gBAAgB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;AACvD,YAAY,CAAC;AACb,YAAY,IAAI,EAAE,MAAM;AACxB,gBAAgB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AACjD,YAAY,CAAC;AACb,YAAY,OAAO,EAAE,MAAM;AAC3B,gBAAgB,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AACpD,YAAY,CAAC;AACb,SAAS;AACT,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,OAAO;AACf,YAAY,OAAO,EAAE,CAAC,IAAI,KAAK;AAC/B,gBAAgB,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;AAChE;AACA,oBAAoB,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE;AACrD,wBAAwB,OAAO,IAAI;AACnC,oBAAoB;AACpB;AACA,oBAAoB,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,wBAAwB,OAAO,KAAK;AACpC,oBAAoB;AACpB;AACA,oBAAoB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC5C,wBAAwB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACzE,wBAAwB,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AACxD,oBAAoB;AACpB;AACA,yBAAyB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACnD,wBAAwB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACxD,wBAAwB,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AACtD,oBAAoB;AACpB;AACA,yBAAyB;AACzB,wBAAwB,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI;AAC9C,oBAAoB;AACpB,gBAAgB,CAAC,CAAC,CAAC;AACnB,YAAY,CAAC;AACb,YAAY,IAAI,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC;AAC5D,SAAS;AACT,IAAI;AACJ,IAAI,cAAc,GAAG;AACrB,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,KAAK;AACrC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;AACjD,YAAY,CAAC;AACb,YAAY,QAAQ,EAAE,CAAC,KAAK,KAAK;AACjC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC7C,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,MAAM;AACzB,gBAAgB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;AACjD,YAAY,CAAC;AACb,YAAY,OAAO,EAAE,MAAM;AAC3B,gBAAgB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;AAC1D,gBAAgB,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AAC9D,oBAAoB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACjD,gBAAgB;AAChB,YAAY,CAAC;AACb,YAAY,MAAM,EAAE,CAAC,IAAI,KAAK;AAC9B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AAC1C,YAAY,CAAC;AACb,YAAY,IAAI,EAAE,CAAC,EAAE,KAAK;AAC1B,gBAAgB,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;AACxD,YAAY,CAAC;AACb,SAAS;AACT,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,MAAM,KAAK,GAAG;AACtB,YAAY,GAAG,EAAE,CAAC,MAAM,KAAK;AAC7B,gBAAgB,OAAO,GAAG,CAAC,MAAM,CAAC;AAClC,YAAY,CAAC;AACb,YAAY,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK;AAC1C,gBAAgB,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC;AAC1E,YAAY,CAAC;AACb,YAAY,UAAU,EAAE,CAAC,IAAI,KAAK;AAClC,gBAAgB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC;AACvD,YAAY,CAAC;AACb,SAAS;AACT;AACA,QAAQ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK;AAC7E,YAAY,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK;AACtC,gBAAgB,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;AAClC,YAAY,CAAC;AACb,QAAQ,CAAC,CAAC;AACV,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC;AACpE,SAAS;AACT,IAAI;AACJ,IAAI,MAAM,cAAc,GAAG;AAC3B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AAChC;AACA,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,QAAQ;AACtG,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY;AACZ,QAAQ;AACR,QAAQ,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AACxC,YAAY,IAAI;AAChB,gBAAgB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC;AACvE,gBAAgB,IAAI,KAAK,EAAE;AAC3B,oBAAoB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,MAAM;AACnF,wBAAwB,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK;AACvD,4BAA4B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;AACtE,gCAAgC,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;AACjE,4BAA4B;AAC5B,wBAAwB,CAAC;AACzB,wBAAwB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;AACzG,wBAAwB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;AACnE,oBAAoB,CAAC,CAAC;AACtB,gBAAgB;AAChB,YAAY;AACZ,YAAY,OAAO,KAAK,EAAE;AAC1B,gBAAgB,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC;AAChE,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,eAAe,CAAC,kBAAkB,EAAE;AAC9C,QAAQ,IAAI;AACZ,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACrD,YAAY,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC;AAC7F;AACA,YAAY,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU,EAAE;AAClE,gBAAgB,OAAO,MAAM;AAC7B,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,OAAO,IAAI;AAC3B,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC;AACxE,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,cAAc,CAAC,kBAAkB,EAAE;AAC7C,QAAQ,IAAI;AACZ,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACrD,YAAY,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC;AAC9E,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,kBAAkB,EAAE,KAAK,CAAC;AAC3F,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC5L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,0BAA0B,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE;AACzwB,YAAY;AACZ,gBAAgB,OAAO,EAAE,cAAc;AACvC,aAAa;AACb,SAAS,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9E;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,UAAU,EAAE,CAAC;AACpI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,uBAAuB;AACrD,oBAAoB,QAAQ,EAAE,gBAAgB;AAC9C,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,cAAc;AACnD,yBAAyB;AACzB,qBAAqB;AACrB,oBAAoB,UAAU,EAAE,KAAK;AACrC,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC9cvC,MAAM,UAAU,GAAG,CAAC,2BAA2B,EAAE,gCAAgC,EAAE,0BAA0B,CAAC;AACvG,MAAM,sBAAsB,CAAC;AACpC,IAAI,OAAO,OAAO,CAAC,MAAM,EAAE;AAC3B,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,sBAAsB;AAC5C,YAAY,SAAS,EAAE;AACvB,gBAAgB;AAChB,oBAAoB,OAAO,EAAE,+BAA+B;AAC5D,oBAAoB,UAAU,EAAE,CAAC,QAAQ,KAAK,YAAY;AAC1D,wBAAwB,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACnH,wBAAwB,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACjJ,oBAAoB,CAAC;AACrB,oBAAoB,IAAI,EAAE,CAAC,wBAAwB,CAAC;AACpD,oBAAoB,KAAK,EAAE,IAAI;AAC/B,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,IAAI;AACJ,IAAI,OAAO,QAAQ,CAAC,MAAM,EAAE;AAC5B,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,sBAAsB;AAC5C,YAAY,SAAS,EAAE;AACvB,gBAAgB;AAChB,oBAAoB,OAAO,EAAE,+BAA+B;AAC5D,oBAAoB,UAAU,EAAE,CAAC,QAAQ,KAAK,YAAY;AAC1D,wBAAwB,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACnH,wBAAwB,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACjJ,oBAAoB,CAAC;AACrB,oBAAoB,IAAI,EAAE,CAAC,wBAAwB,CAAC;AACpD,oBAAoB,KAAK,EAAE,IAAI;AAC/B,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA,IAAI,WAAW,CAAC,SAAS,EAAE;AAC3B,QAAQ,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK;AAClC,YAAY,CAAC,EAAE;AACf,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,+BAA+B,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjP,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAC,2BAA2B,EAAE,gCAAgC,EAAE,0BAA0B,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,mBAAmB,CAAC,EAAE,OAAO,EAAE,CAAC,2BAA2B,EAAE,gCAAgC,EAAE,0BAA0B,CAAC,EAAE,CAAC,CAAC;AACtb,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC;AACrO;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC;AAChI,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,mBAAmB,CAAC;AAC9G,oBAAoB,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AAC5C,oBAAoB,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC;AACjD,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACnE,oBAAoB,IAAI,EAAE;AAC1B,iBAAiB,EAAE;AACnB,oBAAoB,IAAI,EAAE,MAAM;AAChC,oBAAoB,IAAI,EAAE,CAAC,+BAA+B;AAC1D,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC;;ACpEjB,MAAM,uBAAuB,CAAC;AACrC,IAAI,OAAO,eAAe,CAAC,MAAM,EAAE;AACnC,QAAQ,QAAQ,MAAM,CAAC,MAAM;AAC7B,YAAY,KAAK,CAAC;AAClB,gBAAgB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACnE,YAAY,KAAK,CAAC;AAClB,gBAAgB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACnE,YAAY,KAAK,CAAC;AAClB,gBAAgB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACnE,YAAY,KAAK,CAAC;AAClB,gBAAgB,OAAO,MAAM;AAC7B,YAAY;AACZ,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,sCAAsC,EAAE,MAAM,CAAC,CAAC,CAAC;AAClF;AACA,IAAI;AACJ,IAAI,OAAO,iBAAiB,CAAC,MAAM,EAAE;AACrC,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,YAAY,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC;AAClE,QAAQ;AACR,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;AAC3F,YAAY,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,QAAQ;AACR,aAAa,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;AACrE,YAAY,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,QAAQ;AACR,aAAa,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;AAC1C,YAAY,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,QAAQ;AACR,aAAa;AACb,YAAY,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,UAAU,CAAC,KAAK,EAAE;AAC7B,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AACvH,QAAQ,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE;AACvF,IAAI;AACJ,IAAI,OAAO,mBAAmB,CAAC,KAAK,EAAE;AACtC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AACvH,QAAQ,OAAO;AACf,YAAY,GAAG,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC1E,YAAY,KAAK,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC5E,YAAY,MAAM,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC7E,YAAY,IAAI,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAC3E,SAAS;AACT,IAAI;AACJ,IAAI,OAAO,YAAY,CAAC,KAAK,EAAE;AAC/B,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1F,QAAQ,OAAO;AACf,YAAY,UAAU,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACjF,YAAY,WAAW,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAClF,YAAY,aAAa,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACpF,YAAY,cAAc,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AACrF,SAAS;AACT,IAAI;AACJ,IAAI,OAAO,eAAe,CAAC,KAAK,EAAE;AAClC,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC;AAC1D,YAAY,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC;AAC5D,SAAS;AACT,IAAI;AACJ,IAAI,OAAO,cAAc,CAAC,KAAK,EAAE;AACjC,QAAQ,OAAO;AACf,YAAY,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC;AACxD,YAAY,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;AACnD,YAAY,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;AAC/C,YAAY,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;AAC/C,SAAS;AACT,IAAI;AACJ,IAAI,OAAO,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE;AAChD,QAAQ,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;AACzD,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,uBAAuB,CAAC,iBAAiB,CAAC;AAC9D,gBAAgB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;AAC1D,gBAAgB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAC9D,gBAAgB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AAChE,gBAAgB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5D,aAAa,CAAC;AACd,YAAY,OAAO,EAAE,uBAAuB,CAAC,iBAAiB,CAAC;AAC/D,gBAAgB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAC5D,gBAAgB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAChE,gBAAgB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AAClE,gBAAgB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAC9D,aAAa,CAAC;AACd,SAAS;AACT,IAAI;AACJ,IAAI,OAAO,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE;AAC/C,QAAQ,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;AACzD,QAAQ,OAAO;AACf,YAAY,KAAK,EAAE,uBAAuB,CAAC,iBAAiB,CAAC;AAC7D,gBAAgB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;AACxD,gBAAgB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5D,gBAAgB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;AAC9D,gBAAgB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;AAC1D,aAAa,CAAC;AACd,YAAY,MAAM,EAAE,uBAAuB,CAAC,iBAAiB,CAAC;AAC9D,gBAAgB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC1E,gBAAgB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC5E,gBAAgB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAClF,gBAAgB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAChF,aAAa,CAAC;AACd,YAAY,KAAK,EAAE,uBAAuB,CAAC,iBAAiB,CAAC;AAC7D,gBAAgB,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtD,gBAAgB,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1D,gBAAgB,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5D,gBAAgB,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACxD,aAAa,CAAC;AACd,YAAY,KAAK,EAAE,uBAAuB,CAAC,iBAAiB,CAAC;AAC7D,gBAAgB,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtD,gBAAgB,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1D,gBAAgB,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5D,gBAAgB,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACxD,aAAa,CAAC;AACd,SAAS;AACT,IAAI;AACJ,IAAI,OAAO,gBAAgB,CAAC,KAAK,EAAE;AACnC,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;AACrC,YAAY,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;AAC/C,QAAQ,IAAI,KAAK,KAAK,MAAM;AAC5B,YAAY,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;AAC3C,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC;AAC1D,QAAQ,IAAI,CAAC,KAAK;AAClB,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5D,QAAQ,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;AACpE,IAAI;AACJ,IAAI,OAAO,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE;AACzC,QAAQ,OAAO,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;AACpD,IAAI;AACJ,IAAI,OAAO,QAAQ,CAAC,GAAG,EAAE;AACzB,QAAQ,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;AACtC,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC;AAC9D,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;AACjD,QAAQ;AACR,QAAQ,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,GAAG,KAAK;AACtC,QAAQ,IAAI,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;AACvC,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,YAAY,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;AACtE,YAAY,IAAI,CAAC,WAAW,EAAE;AAC9B,gBAAgB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;AACrD,YAAY;AACZ,YAAY,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC/C,QAAQ;AACR,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE;AACpB,gBAAgB,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC;AACrC,gBAAgB,CAAC,EAAE,MAAM;AACzB,aAAa;AACb,YAAY,IAAI;AAChB,SAAS;AACT,IAAI;AACJ,IAAI,OAAO,iBAAiB,CAAC,YAAY,EAAE;AAC3C,QAAQ,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,mDAAmD,CAAC;AAC7F,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC;AACxG,QAAQ;AACR,QAAQ,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACrC,IAAI;AACJ,IAAI,OAAO,kBAAkB,CAAC,eAAe,EAAE;AAC/C,QAAQ,IAAI,eAAe,IAAI,CAAC,EAAE;AAClC,YAAY,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;AAC3E,QAAQ;AACR,QAAQ,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC;AAChD,IAAI;AACJ;AACO,SAAS,uBAAuB,CAAC,MAAM,EAAE;AAChD,IAAI,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;AACzE,IAAI,MAAM,mBAAmB,GAAG,EAAE;AAClC,IAAI,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AAC1C,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE;AAC9C,YAAY,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC;AAChD,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,mBAAmB;AAC9B;;AC7KY,MAAC,2BAA2B,GAAG;AAC3C,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,KAAK,EAAE,QAAQ;AACnB;AACY,MAAC,2BAA2B,GAAG;AAC3C,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,KAAK,EAAE,SAAS;AACpB;AACY,MAAC,2BAA2B,GAAG;AAC3C,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,KAAK,EAAE,QAAQ;AACnB;AACY,MAAC,4BAA4B,GAAG;AAC5C,IAAI,IAAI,EAAE,SAAS;AACnB,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,KAAK,EAAE,SAAS;AACpB;AACY,MAAC,sBAAsB,GAAG;AACtC,IAAI,2BAA2B;AAC/B,IAAI,2BAA2B;AAC/B,IAAI,2BAA2B;AAC/B,IAAI,4BAA4B;AAChC;;ACzBU,IAAC;AACX,CAAC,UAAU,kBAAkB,EAAE;AAC/B,IAAI,kBAAkB,CAAC,aAAa,CAAC,GAAG,cAAc;AACtD,IAAI,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,kBAAkB;AAC9D,IAAI,kBAAkB,CAAC,cAAc,CAAC,GAAG,eAAe;AACxD,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,iBAAiB;AAC5D,IAAI,kBAAkB,CAAC,UAAU,CAAC,GAAG,WAAW;AAChD,IAAI,kBAAkB,CAAC,eAAe,CAAC,GAAG,gBAAgB;AAC1D,IAAI,kBAAkB,CAAC,cAAc,CAAC,GAAG,eAAe;AACxD,CAAC,EAAE,kBAAkB,KAAK,kBAAkB,GAAG,EAAE,CAAC,CAAC;;ACTnD;AACA;AACA;;;;"}